Method and apparatus for smoothing and multiplexing video data flows
First Claim
Patent Images
1. A method for improving a flow of video data from a source to a receiver, the method comprising the steps of:
- encoding video data at a first rate;
storing the encoded video data in a buffer;
requesting a rate allocation from a network, wherein a request amount is determined with reference to said first rate and to a frame rate over a smoothing interval;
outputting data from the source buffer at a rate based on the network'"'"'s response to the request for a rate allocation;
monitoring a source delay with reference to buffer capacity, buffer fill status, an encoding rate and a rate allocated to the source in response to a request; and
adjusting a rate for encoding said video data when said monitoring step detects that said source delay exceeds a first threshold.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus provide a smoothing and rate adaptation algorithm to facilitate the flow of video data, maintaining video quality while avoiding potentially harmful buffering delays. The invention uses a smoothing interval to determine a rate to request for allocation. The invention also adapts the encoding rate in relation to a target delay for a source buffer.
-
Citations
28 Claims
-
1. A method for improving a flow of video data from a source to a receiver, the method comprising the steps of:
-
encoding video data at a first rate;
storing the encoded video data in a buffer;
requesting a rate allocation from a network, wherein a request amount is determined with reference to said first rate and to a frame rate over a smoothing interval;
outputting data from the source buffer at a rate based on the network'"'"'s response to the request for a rate allocation;
monitoring a source delay with reference to buffer capacity, buffer fill status, an encoding rate and a rate allocated to the source in response to a request; and
adjusting a rate for encoding said video data when said monitoring step detects that said source delay exceeds a first threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
wherein said step of requesting a rate allocation includes the substep of referring to said determined maximum rate of encoding.
-
-
3. The method of claim 1 wherein said smoothing interval is greater than or equal to a frame periodicity of said encoded video data.
-
4. The method of claim 1 comprising the further step of determining an historical estimate of a local maximum rate of encoding of said video data;
- and
wherein said step of requesting a allocation includes the substep of referring to said determined historical estimate.
- and
-
5. The method of claim 1 wherein said step of requesting a rate comprises the substeps of:
-
monitoring an ideal frame rate for the step of encoding;
averaging the ideal frame rate over said smoothing interval; and
using the result of said step of averaging as a basis for generating a rate allocation request.
-
-
6. The method of claim 5 wherein said step of requesting a rate includes the further substeps of:
-
averaging peak frame rates over a second interval greater than said smoothing interval; and
selecting said rate for the allocation request with reference to the result of averaging peak frame rates.
-
-
7. The method of claim 1 comprising the further step of increasing said smoothing interval when said source delay falls below a first predetermined value.
-
8. The method of claim 7 comprising the further step of decreasing said smoothing interval when said source delay exceeds a second predetermined value.
-
9. A method for improving a flow of video data from a source to a receiver, the method comprising the steps of:
-
encoding video data;
storing the coded data in a source buffer;
monitoring a rate of the encoding of video data over a smoothing interval;
determining a smoothed ideal encoding rate from the monitored rate; and
generating a request for rate allocation with reference to the smoothed ideal rate. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
detecting a source delay with reference to an indication of the fullness of the buffer and a rate at which the source buffer drains; and
modifying the smoothing interval in accordance with a size of said source delay.
-
-
11. The method of claim 9 further comprising the step of determining a maximum rate of encoding of said video data over an interval greater than the smoothing interval;
- and
wherein said step of generating a request for rate allocation includes the substep of referring to said determined maximum rate of encoding.
- and
-
12. The method of claim 11 wherein said smoothing interval is greater than or equal to a frame periodicity of said encoded video data.
-
13. The method of claim 9 wherein said smoothing interval is greater than or equal to a frame periodicity of said encoded video data.
-
14. The method of claim 9 comprising the further step of determining an historical estimate of a local maximum rate of encoding of said video data;
- and
wherein said step of generating a request for allocation includes the substep of referring to said determined historical estimate.
- and
-
15. The method of claim 11 comprising the further step of determining an historical estimate of a local maximum rate of encoding of said video data;
- and
wherein said step of generating a request for allocation includes the substep of referring to said determined historical estimate.
- and
-
16. The method of claim 9 comprising the further steps of:
-
outputting data from the source buffer at a rate based on a response to the request for rate allocation;
monitoring a source delay with reference to an indication of fullness of the buffer, the buffer output rate and the present rate at which data is encoded; and
adjusting a rate for encoding the video data when said step of monitoring a source delay detects that said source delay exceeds a first threshold.
-
-
17. The method of claim 16 comprising the further step of modifying the smoothing interval in accordance with a size of said source delay.
-
18. A method for improving a flow of video data from a source to a receiver, the method comprising the steps of:
-
encoding video data;
monitoring an encoding rate over a first window interval, said first window interval being greater than or equal to a periodicity of the coded video data;
monitoring the encoding rate over a second window interval, greater than said first window interval; and
requesting a rate allocation from a network in accordance with the results of said monitoring steps. - View Dependent Claims (19, 20)
storing the encoded video data in a source buffer;
draining the source buffer in accordance with a rate allocated in response to the request for rate allocation;
detecting a source delay based on the content of the buffer, a rate of drain for the source buffer, and an encoding rate; and
reducing the encoding rate when said source delay is greater than or equal to a target delay.
-
-
20. The method of claim 19 comprising the further step of increasing the encoding rate when said source delay is below a predetermined threshold.
-
21. A method for selecting a data rate allocation request with regard to a flow of video data from a source to a network, the method comprising the steps of:
-
monitoring a rate of encoding video data;
averaging the encoding rate over a smoothing interval equal to or greater than a periodicity the encoded video data; and
calculating a rate allocation request using the result of the step of averaging. - View Dependent Claims (22)
calculating a source delay;
comparing the source delay to a first delay threshold; and
adjusting a size of the smoothing interval based on a result of the step of comparing.
-
-
23. A method of improving a quality of a flow of video data from a source to a receiver via a network, the method comprising the steps of:
-
encoding the video data at a first rate;
storing encoded video data in a source buffer;
detecting a buffer drain rate;
determining a source delay with reference to an encoding rate, a buffer drain rate and a buffer fill level;
if said source delay exceeds a delay bound, setting an encoder target rate to reduce the source delay. - View Dependent Claims (24, 25)
generating a rate allocation request to the network, said request being selected in accordance with an acceptable limit on encoder rate reduction.
-
-
26. A method for improving a flow of video data from a source to a receiver, the method comprising the steps of:
-
encoding video data;
storing the coded video data in a buffer;
monitoring a rate of encoding video data over a smoothing interval;
selecting a data transmission rate based on the encoding rate detected over the smoothing interval. - View Dependent Claims (27, 28)
detecting a network acceptance rate with regard to data transmissions from the source; and
adjusting said data transmission rate in accordance with the detected network acceptance rate.
-
-
28. The method of claim 27 comprising the further steps of:
-
detecting a source delay using the data transmission rate; and
if said source delay exceeds a delay target, adjusting the rate of encoding of the video data.
-
Specification