Systems and methods for efficient memory allocation for streaming of multimedia files
First Claim
1. A method of allocating data blocks for streaming a file, comprising:
- determining a data transfer characteristic for streaming the file;
selecting a block size as a function of the data transfer characteristic;
allocating data blocks having a block size on a persistent storage medium, said block size related to the data transfer characteristic;
storing said file as the data blocks on the persistent storage medium;
transferring the data blocks from the persistent storage medium into a first buffer memory, with the data blocks in the first buffer memory having the block size;
determining an actual bit rate to a user;
allocating a second buffer memory to receive from the persistent storage medium additional data blocks based on the actual bit rate to a user, with the data blocks in the second buffer memory having the block size; and
transmitting the additional data blocks from the persistent storage medium to the second buffer memory when an estimated transmit time for streaming a portion of the data blocks remaining in the first buffer to a user is approximately equal to a time required to transfer the additional data blocks from the persistent storage medium into the second buffer.
7 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for streaming of multimedia files over a network are described. A streaming delivery accelerator (SDA) receives content from a content provider, caches at least part of the content, forming a cache file, and streams the cache file to a user. The described systems and methods are directed to separate (shred) the content into contiguous cache files suitable for streaming. The shredded cache files may have different transmission bit rates and/or different content, such as audio, text, etc. Checksums can migrate from the content file to the shredded cache files and between different network protocols without the need for recomputing the checksums.
-
Citations
19 Claims
-
1. A method of allocating data blocks for streaming a file, comprising:
-
determining a data transfer characteristic for streaming the file;
selecting a block size as a function of the data transfer characteristic;
allocating data blocks having a block size on a persistent storage medium, said block size related to the data transfer characteristic;
storing said file as the data blocks on the persistent storage medium;
transferring the data blocks from the persistent storage medium into a first buffer memory, with the data blocks in the first buffer memory having the block size;
determining an actual bit rate to a user;
allocating a second buffer memory to receive from the persistent storage medium additional data blocks based on the actual bit rate to a user, with the data blocks in the second buffer memory having the block size; and
transmitting the additional data blocks from the persistent storage medium to the second buffer memory when an estimated transmit time for streaming a portion of the data blocks remaining in the first buffer to a user is approximately equal to a time required to transfer the additional data blocks from the persistent storage medium into the second buffer. - View Dependent Claims (2, 3, 4)
-
-
5. Device for allocating data blocks for streaming a file, the device comprising:
-
a persistent storage medium storing the data blocks of the file, said data blocks having a block size allocated related to a data transfer characteristic;
a first buffer memory that receives the data blocks from the persistent storage medium, said data blocks in the first buffer memory having the block size;
a second buffer memory that receives additional data blocks from the persistent storage medium, said data blocks in the second buffer memory having the block size, wherein the additional data are received in the second buffer memory when an estimated transmit time for streaming a portion of the data blocks remaining in the first buffer to a user is approximately equal to a time required to transfer the additional data blocks from the persistent storage medium into the second buffer. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. Streaming delivery accelerator (SDA) for efficiently streaming a file, comprising:
-
at least one input channel that receives a content file from a content provider;
at least one output channel with a predetermined streaming characteristic for streaming a cache file to a user;
a persistent storage medium that caches data blocks of the content file and stores the data blocks as the cache file, said data blocks having a block size allocated related to a data transfer characteristic;
a first buffer memory that receives the data blocks from the persistent storage medium, said data blocks in the first buffer memory having the block size;
a second buffer memory that receives additional data blocks from the persistent storage medium, said data blocks in the second buffer memory having the block size, wherein the additional data are received in the second buffer memory when an estimated transmit time for streaming a portion of the data blocks remaining in the first buffer to the user is approximately equal to a time required to transfer the additional data blocks from the persistent storage medium into the second buffer. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
Specification