Flexible streaming hardware
OwnerRichard T. Oesterreicher, Craig Murphyinventors
Life of this patent
Estimating the term…
Abstract
A hardware engine that streams media asset data from a media buffer to a network under instructions provided by a host PC is disclosed. The PC preferably stores control blocks that provide packet header formatting instructions in a media buffer along with the media asset data to be streamed. In a preferred embodiment, the hardware engine comprises programmable logic devices so that the engine can be upgraded. The present invention further comprises methods for designing the hardware engine, methods for upgrading the hardware engine, and methods for streaming digital media asset data.
Claims14
A system under the control of a general-purpose computer for converting digital media assets into wire data packets for transmission to a client, the assets being stored on a digital media storage device comprising:
- an input interface for retrieving digital media asset data from the storage device;
- a media buffer for receiving the digital media asset data from the storage interface,
- a programmable logic device adapted to transfer the digital media asset data from the input interface to the media buffer, to process the digital media asset data from the media buffer, and to generate wire data packets,
- a network interface coupled to the device and adapted to transmit the wire data packets to the client, and
- a general-purpose interface coupled to the device and adapted to receive control information from the general-purpose computer for storage in the media buffer and to enable the device to communicate with the general-purpose computer.
A secure method of providing an upgrade package for changing the logic in a field programmable gate array used as an engine for streaming digital media, comprising:
- encrypting the upgrade package,
- compressing the upgrade package,
- distributing the upgrade package,
- decompressing the upgrade package,
- decrypting the upgrade package,
- loading the package into the field programmable gate array,
- supplying a key to the field programmable gate array for decrypting the upgrade package, and
- rebooting the field programmable gate array, thereby installing the upgrade package.
A method of streaming a block of a digital media asset across a digital network using a hardware engine, comprising:
- transferring the block of the asset into a media buffer;
- writing wire packet generation control instructions into the media buffer;
- fragmenting the block into one or more data packets;
- generating packet headers for a packet in accordance with the instructions;
- calculating a checksum for the packet;
- transmitting the packet onto the network;
- and
- repeating the generating, calculating, and transmitting steps until all the data packets have been transmitted.
A method for designing a streaming media hardware engine, comprising:
- (a) identifying one or more components that comprise the hardware engine;
- (b) designing a last component having a fully saturated output bandwidth greater than or equal to the required bandwidth of the hardware engine;
- (c) calculating the input bandwidth required to fully saturate the designed component;
- (d) designing an adjacent preceding component having a fully saturated output bandwidth greater than or equal to the input bandwidth calculated in step (c);
- and
- recursively repeating steps (c) and (d) for remaining components identified in step (a).
Dependencies are inferred from the claim text.