Optimized client side rate control and indexed file layout for streaming media
First Claim
1. A method for optimizing client-side rate control of streaming content, the method comprising:
- receiving, by the client from a server, index information for a program of encoded audio and/or video content;
for each of a plurality of states representing bitrate encodings of streaming segments of the program, performing, entirely by a client, client-side rate control operations comprising;
selecting one or more available paths that end in the state, where the one or more available paths are those paths ending in the state that satisfy a constraint condition;
selecting a best path to the state from the one or more available paths, wherein the best path has the lowest distortion amongst the one or more available paths; and
eliminating, as available paths, all of the one or more available paths other than the best path; and
downloading, by the client from the server, one or more streaming segments encoded at bitrates corresponding to the best path to an ending state through the plurality of states, wherein each of the plurality of states corresponds to a specific bitrate encoding of a specific streaming segment;
wherein the index information is used by the client to identify the plurality of states, select the one or more available paths, and select the best path.
1 Assignment
0 Petitions
Accused Products
Abstract
An indexed file layout, comprising index information, is defined for segmented streaming of multimedia content. The index information can comprise program description information and streaming segment index information. In addition, the layout can comprise files containing streaming segments of the program, where the streaming segments are each encoded at one or more bitrates independently of other streaming segments of the program. The layout supports client switching between different bitrates at segment boundaries. Optimized client-side rate control of streaming content can be provided by defining a plurality of states, selecting available paths based on constraint conditions, and selecting a best path through the states (e.g., based on a distortion measure). In one client-side rate control solution states correspond to a specific bitrate of a specific streaming segment, and in another client-side rate control solution states correspond to a measure of client buffer fullness.
439 Citations
14 Claims
-
1. A method for optimizing client-side rate control of streaming content, the method comprising:
-
receiving, by the client from a server, index information for a program of encoded audio and/or video content; for each of a plurality of states representing bitrate encodings of streaming segments of the program, performing, entirely by a client, client-side rate control operations comprising; selecting one or more available paths that end in the state, where the one or more available paths are those paths ending in the state that satisfy a constraint condition; selecting a best path to the state from the one or more available paths, wherein the best path has the lowest distortion amongst the one or more available paths; and eliminating, as available paths, all of the one or more available paths other than the best path; and downloading, by the client from the server, one or more streaming segments encoded at bitrates corresponding to the best path to an ending state through the plurality of states, wherein each of the plurality of states corresponds to a specific bitrate encoding of a specific streaming segment; wherein the index information is used by the client to identify the plurality of states, select the one or more available paths, and select the best path. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for optimizing client-side rate control of streaming content, the method comprising:
-
receiving, by the client from a server, index information for a program of encoded audio and/or video content; for each of a plurality of states representing bitrate encodings of streaming segments of the program, performing, entirely by a client, client-side rate control operations comprising; selecting one or more available paths that end in the state, where the one or more available paths are those paths ending in the state that satisfy a constraint condition; and retaining the one or more available paths as possible paths to be included in a best end-to-end path; performing an end-to-end analysis of the possible paths to determine the best end-to-end path, wherein the best end-to-end path has the lowest overall distortion; and downloading, by the client from the server, one or more streaming segments encoded at bitrates corresponding to the best end-to-end path through the plurality of states, wherein each of the plurality of states corresponds to a measure of client buffer fullness for a specific bitrate encoding of a specific streaming segment; wherein the index information is used by the client to identify the plurality of states and select the one or more available paths. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computing device comprising:
-
a processing unit; a communication connection; and at least one of memory and storage media storing instructions for causing the computing device to perform operations for optimizing client-side rate control of streaming content, the operations comprising; receiving, by the computing device via the communication connection, index information for a program of encoded audio and/or video content; for each of a plurality of states representing bitrate encodings of streaming segments of the program, performing, entirely by the computing device, client-side rate control operations comprising; selecting one or more available paths that end in the state, where the one or more available paths are those paths ending in the state that satisfy a constraint condition; selecting a best path to the state from the one or more available paths, wherein the best path has the lowest distortion amongst the one or more available paths; and eliminating, as available paths, all of the one or more available paths other than the best path; and downloading, by the computing device via the communication connection, one or more streaming segments encoded at bitrates corresponding to the best path to an ending state through the plurality of states, wherein each of the plurality of states corresponds to a specific bitrate encoding of a specific streaming segment; wherein the index information is used by the computing device to identify the plurality of states, select the one or more available paths, and select the best path. - View Dependent Claims (12, 13, 14)
-
Specification