Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
First Claim
1. A method of requesting media data at a client device using a scalable segment map, comprising:
- receiving the scalable segment map at the client device, the scalable segment map including metadata with one or more byte ranges corresponding to locations of layers of a media segment, wherein the media segment includes one or more blocks and is associated with a scalable video coded stream including multiple layers that are combinable to form one or more representations;
determining, by the client device, one or more layers of a block of the media segment to request;
generating, by the client device, a request for the one or more layers of the block, the request including a byte range corresponding to a location of the one or more layers, wherein the byte range is determined from the metadata included in the segment map;
transmitting, by the client device, the request for the one or more layers of the block;
receiving, at the client device, the one or more layers of the block of media data; and
generating, by the client device, a media representation using the one or more layers of the block.
2 Assignments
0 Petitions
Accused Products
Abstract
A block-request streaming system provides for improvements in the user experience and bandwidth efficiency of such systems, typically using an ingestion system that generates data in a form to be served by a conventional file server (HTTP, FTP, or the like), wherein the ingestion system intakes content and prepares it as files or data elements to be served by the file server, which might or might not include a cache. A client device can be adapted to take advantage of the ingestion process as well as including improvements that make for a better presentation independent of the ingestion process. In the block-request streaming system, the an ingestion system generates data according to erasure codes and the client device, through various selection and timing of requests for media data and redundant data, can efficiently decode media to provide for presentations.
305 Citations
20 Claims
-
1. A method of requesting media data at a client device using a scalable segment map, comprising:
-
receiving the scalable segment map at the client device, the scalable segment map including metadata with one or more byte ranges corresponding to locations of layers of a media segment, wherein the media segment includes one or more blocks and is associated with a scalable video coded stream including multiple layers that are combinable to form one or more representations; determining, by the client device, one or more layers of a block of the media segment to request; generating, by the client device, a request for the one or more layers of the block, the request including a byte range corresponding to a location of the one or more layers, wherein the byte range is determined from the metadata included in the segment map; transmitting, by the client device, the request for the one or more layers of the block; receiving, at the client device, the one or more layers of the block of media data; and generating, by the client device, a media representation using the one or more layers of the block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of providing media data, comprising:
-
providing, by a media ingestion system, a scalable segment map to a client device, the scalable segment map including metadata with one or more byte ranges corresponding to locations of layers of a media segment, wherein the media segment includes one or more blocks and is associated with a scalable video coded stream including multiple layers that are combinable to form a representation, wherein a subset of the multiple layers forms a first version of the representation and a larger subset of the multiple layers forms a second version of the representation having a higher quality than the first version, and wherein the scalable segment map allows the client device to generate a request for one or more layers of a block of the media segment; receiving the request for the one or more layers of the block; and providing the one or more layers of the block to the client device. - View Dependent Claims (11, 12, 13)
-
-
14. A client device configured to request media data using a scalable segment map, comprising:
-
a memory configured to store media data; a receiver configured to receive the scalable segment map, the scalable segment map including metadata with one or more byte ranges corresponding to locations of layers of a media segment, wherein the media segment includes one or more blocks and is associated with a scalable video coded stream including multiple layers that are combinable to form one or more representations; and a processor configured to; determine one or more layers of a block of the media segment to request; and generate a request for the one or more layers of the block, the request including a byte range corresponding to a location of the one or more layers, wherein the byte range is determined from the metadata included in the segment map; wherein the receiver is further configured to receive the one or more layers of the block of media data; and wherein the processor is further configured to generate a media representation using the one or more layers of the block. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A server configured to provide media data, comprising:
-
a transmitter configured to provide a scalable segment map to a client device, the scalable segment map including metadata with one or more byte ranges corresponding to locations of layers of a media segment, wherein the media segment includes one or more blocks and is associated with a scalable video coded stream including multiple layers that are combinable to form a representation, wherein a subset of the multiple layers forms a first version of the representation and a larger subset of the multiple layers forms a second version of the representation having a higher quality than the first version, and wherein the scalable segment map allows the client device to generate a request for one or more layers of a block of the media segment; and a receiver configured to receive the request for the one or more layers of the block; wherein the transmitter is further configured to provide the one or more layers of the block to the client device.
-
Specification