Fine-grained client-side control of scalable media delivery
First Claim
1. A method of facilitating client-side control of delivery of media data organized as plural chunks to a media client across a network, a given chunk of the plural chunks being encoded as plural scalable layers for different quality levels with fine-grained scalability, the method comprising:
- with a computing system that implements a media server, sending, for receipt by the media client across the network, curve information, wherein the curve information at least in part indicates distortion as a function of download time for the given chunk to facilitate determination of a rate-distortion preference for the given chunk, by the media client, that includes;
determining a playback time constraint for a segment of one or more chunks of the plural chunks, the segment including the given chunk; and
for each of the one or more chunks in the segment, selecting a download time so as to reduce overall distortion among the one or more chunks in the segment while satisfying the playback time constraint for the segment; and
for the given chunk of the plural chunks;
receiving feedback from the media client that indicates the rate-distortion preference for the given chunk;
with the computing system that implements the media server, based at least in part upon the rate-distortion preference, selecting one or more scalable layers from among the plural scalable layers of the given chunk; and
sending the selected one or more scalable layers of the given chunk.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques and tools for adjusting quality and bit rate of multiple chunks of media delivered over a network are described. For example, each of the multiple chunks is encoded as multiple layers (e.g., a base layer and multiple embedded residual layers) for fine-grained scalability at different rate/quality points. A server stores the encoded data for the layers of chunks as well as curve information that parameterizes rate-distortion curves for the chunks. The server sends the curve information to a client. For the multiple chunks, the client uses the curve information to determine rate-distortion preferences for the respective chunks, then sends feedback indicating the rate-distortion preferences to the server. For each of the multiple chunks, the server, based at least in part upon the feedback, selects one or more scalable layers of the chunk to deliver to the client.
-
Citations
25 Claims
-
1. A method of facilitating client-side control of delivery of media data organized as plural chunks to a media client across a network, a given chunk of the plural chunks being encoded as plural scalable layers for different quality levels with fine-grained scalability, the method comprising:
-
with a computing system that implements a media server, sending, for receipt by the media client across the network, curve information, wherein the curve information at least in part indicates distortion as a function of download time for the given chunk to facilitate determination of a rate-distortion preference for the given chunk, by the media client, that includes; determining a playback time constraint for a segment of one or more chunks of the plural chunks, the segment including the given chunk; and for each of the one or more chunks in the segment, selecting a download time so as to reduce overall distortion among the one or more chunks in the segment while satisfying the playback time constraint for the segment; and for the given chunk of the plural chunks; receiving feedback from the media client that indicates the rate-distortion preference for the given chunk; with the computing system that implements the media server, based at least in part upon the rate-distortion preference, selecting one or more scalable layers from among the plural scalable layers of the given chunk; and sending the selected one or more scalable layers of the given chunk. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of controlling delivery of media data by a media server across a network, wherein the media data is organized as plural chunks, a given chunk of the plural chunks being encoded as plural scalable layers for different quality levels with fine-grained scalability, the method comprising:
-
at a computing system that implements a media client, receiving curve information, wherein the curve information at least in part indicates distortion as a function of download time for the given chunk; and with the computing system that implements the media client, determining a rate-distortion preference for the given chunk using at least some of the received curve information, wherein the determining the rate-distortion preference includes, for a segment of one or more chunks of the plural chunks, the segment including the given chunk; determining a playback time constraint for the segment; and for each of the one or more chunks in the segment, selecting a download time so as to reduce overall distortion among the one or more chunks in the segment while satisfying the playback time constraint for the segment; and with the computing system that implements the media client, sending, for receipt by the media server across the network, the rate-distortion preference for the given chunk; and receiving one or more scalable layers from among the plural scalable layers of the given chunk. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computing system that implements a media client for controlling delivery of media data by a media server across a network, the system comprising:
-
a processor; a controller for the media client, wherein the controller is adapted to; receive a stream header for media data that includes plural chunks, each of the plural chunks being encoded as plural scalable layers for different quality levels with fine-grained scalability; receive curve information for the plural chunks, wherein, for each of the plural chunks, the curve information for the chunk indicates distortion as a function of download time and a different rate-distortion point is associated with each of the plural scalable layers for the chunk; determine rate-distortion preferences for the plural chunks, respectively, using the received curve information, wherein the controller is adapted to determine the rate-distortion preferences by, for a segment of one or more chunks of the plural chunks; determining a playback time constraint for the segment; and for each of the one or more chunks in the segment, selecting a download time so as to reduce overall distortion among the one or more chunks in the segment while satisfying the playback time constraint for the segment; and send, for receipt by the media server across the network, the rate-distortion preferences for the plural chunks, respectively; and for each of the plural chunks, receive one or more scalable layers from among the plural scalable layers for the chunk; and a scalable media decoder adapted to decode the received scalable layers for the plural chunks. - View Dependent Claims (21, 22, 23)
-
-
24. A computing system that implements a media client to control delivery of media data by a media server across a network, wherein the media data is organized as plural chunks, each of the plural chunks being encoded as plural scalable layers for different quality levels with fine-grained scalability, the system comprising a processor and a controller adapted to perform a method comprising:
-
receiving, by the processor, curve information for the plural chunks, wherein, for each of the plural chunks, for the plural scalable layers of the chunk, the curve information at least in part indicates distortion as a function of download time; and for each of the plural chunks; determining a rate-distortion preference for the chunk using at least some of the received curve information, wherein the determining the rate-distortion preference includes, for a segment of one or more chunks of the plural chunks; determining a playback time constraint for the segment, wherein the playback time constraint for the segment indicates a cumulative time duration; and for each of the one or more chunks in the segment, selecting a download time so as to reduce overall distortion among the one or more chunks in the segment while satisfying the playback time constraint for the segment, wherein the selecting the download time for each of the one or more chunks in the segment comprises setting a weight parameter such that cumulative download time for the segment matches the cumulative time duration, and wherein for each of the one or more chunks in the segment the weight parameter indicates the download time for the chunk according to the curve information for the chunk; sending the rate-distortion preference for the chunk; and receiving one or more scalable layers from among the plural scalable layers of the chunk.
-
-
25. A computing system that implements a media client to control delivery of media data by a media server across a network, wherein the media data is organized as plural chunks, each of the plural chunks being encoded as plural scalable layers for different quality levels with fine-grained scalability, the system comprising a processor and a controller adapted to perform a method comprising:
-
receiving, by the processor, curve information for the plural chunks, wherein, for each of the plural chunks, for the plural scalable layers of the chunk, the curve information at least in part indicates distortion as a function of download time; and for each of the plural chunks; determining a rate-distortion preference for the chunk using at least some of the received curve information, wherein the determining the rate-distortion preference includes, for a segment of one or more chunks of the plural chunks; determining a playback time constraint for the segment; and for each of the one or more chunks in the segment, selecting a download time so as to reduce overall distortion among the one or more chunks in the segment while satisfying the playback time constraint for the segment, wherein the selecting the download time for each of the one or more chunks in the segment comprises splitting the segment into plural sub-segments and, for each of the plural sub-segments, recursively; determining a playback time constraint for the sub-segment; and for each of one or more chunks in the sub-segment, selecting a download time so as to reduce overall distortion among the one or more chunks in the sub-segment while satisfying the playback time constraint for the sub-segment; sending the rate-distortion preference for the chunk; and receiving one or more scalable layers from among the plural scalable layers of the chunk.
-
Specification