Dynamic rate control
First Claim
1. A method for providing real-time rate control, comprising:
- tracking a current bitcount in a time window of a plurality of time windows;
noting a current time in the time window;
generating a window level modifier based on the current time and the current bitcount in the time window;
determining a new window level control parameter for the time window based on the window level modifier;
repeating the actions of tracking, noting, generating, and determining for each other time window of the plurality of time windows to produce a plurality of new window level control parameters; and
calculating a top level control parameter based on the new window level control parameter and the plurality of new window level control parameters;
wherein each time window of the plurality of time windows overlaps at least one other time window of the plurality of time windows.
2 Assignments
0 Petitions
Accused Products
Abstract
Dynamic rate control can be implemented in a television-based entertainment environment when forwarding coded data. Real-time information flows are encoded, transcoded, compressed, etc. into data streams that may be forwarded to other components within an apparatus or to other apparatuses across a network. In a described implementation, a bitcount accumulation of a data stream is monitored in multiple overlapping windows. The data stream is compared to a data limit in each window of the multiple overlapping windows to determine whether an expected bitcount accumulation has been exceeded. The data stream is modified responsive to the comparison(s). For example, if the bitcount accumulations in each window exceed the expected bit accumulations at the corresponding relative positions of each window, then the bit rate of the data stream can be modified by reducing bit rate consumption.
-
Citations
88 Claims
-
1. A method for providing real-time rate control, comprising:
-
tracking a current bitcount in a time window of a plurality of time windows;
noting a current time in the time window;
generating a window level modifier based on the current time and the current bitcount in the time window;
determining a new window level control parameter for the time window based on the window level modifier;
repeating the actions of tracking, noting, generating, and determining for each other time window of the plurality of time windows to produce a plurality of new window level control parameters; and
calculating a top level control parameter based on the new window level control parameter and the plurality of new window level control parameters;
wherein each time window of the plurality of time windows overlaps at least one other time window of the plurality of time windows. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A method for providing real-time rate control, comprising:
-
monitoring a current bitcount of an associated data stream in each time window of a plurality of time windows, each time window of the plurality of time windows overlapping at least one other time window of the plurality of time windows;
generating a window level modifier for each time window based on the respective current bitcount for each time window and a respective current time for each time window that corresponds to the respective current bitcount;
determining a window level control parameter for each time window based on the respective window level modifier for each time window;
combining each window level control parameter for each time window of the plurality of time windows to produce a combined window level control parameter; and
modifying a quantization of the data stream based on the combined window level control parameter. - View Dependent Claims (29, 30)
-
-
31. An apparatus, comprising:
-
a time and bitcount monitor, the time and bitcount monitor adapted to monitor a current time and a current bitcount in each time window of a plurality of time windows, each time window of the plurality of time windows overlapping each other time window of the plurality of time windows;
a window level modifier generator, the window level modifier generator receiving the current time and the current bitcount for each time window from the time and bitcount monitor, the window level modifier generator adapted to generate a window level modifier for each time window based on the current time and the current bitcount for each respective time window;
a window level control parameter determiner, the window level control parameter determiner receiving the window level modifier for each time window from the window level modifier generator, the window level control parameter determiner adapted to determine a new window level control parameter for each time window based on the window level modifier for each respective time window;
a window level control parameter combiner, the window level control parameter combiner receiving the new window level control parameter for each time window from the window level control parameter determiner, the window level control parameter combiner adapted to combine the new window level control parameter for each respective time window of the plurality of time windows to produce a combined window level control parameter;
a top level control parameter history storage, the top level control parameter history storage storing a plurality of previous top level control parameters; and
a top level control parameter calculator, the top level control parameter calculator receiving the plurality of previous top level control parameters from the top level control parameter history storage and the combined window level control parameter from the window level control parameter combiner, the top level control parameter calculator adapted to calculate a top level control parameter based on the combined window level control parameter and the plurality of previous top level control parameters. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
-
-
45. An apparatus, comprising:
-
a monitor block that is capable of providing a current time and a current bitcount of a data stream in a plurality of overlapping time windows;
a modifier generating block that is capable of generating a modification recommendation for each time window of the plurality of overlapping time windows based on a respective current time and a respective current bitcount for each time window of the plurality of overlapping time windows; and
a bit rate control parameter ascertaining block that is capable of ascertaining a bit rate control parameter based on the modification recommendation for each respective time window of the plurality of overlapping time windows;
wherein the bit rate control parameter governs a bit rate consumption of the data stream. - View Dependent Claims (46, 47, 48, 49, 50, 51, 52, 53)
-
-
54. An arrangement for dynamic rate control, comprising:
-
means for generating a plurality of window level modifiers from a plurality of overlapping time windows that are applied to a data stream;
means for determining a plurality of window level control parameters from respective window level modifiers of the plurality of window level modifiers; and
means for ascertaining a top level control parameter from the plurality of window level control parameters. - View Dependent Claims (55, 56, 57, 58, 59, 60, 61, 62)
-
-
63. One or more electronically-accessible media comprising instructions that, when executed, direct an electronic apparatus to:
-
create a data stream by coding using a first bit rate parameter;
track the data stream across a plurality of overlapping time windows;
ascertain whether the data stream is consuming bandwidth faster than a predetermined limit responsive to the tracking across the plurality of overlapping time windows; and
if so, create the data stream by coding using a second bit rate parameter;
wherein coding using the second bit rate parameter results in the bandwidth consumption of the data stream being decreased. - View Dependent Claims (64, 65, 66, 67, 68)
-
-
69. An arrangement for dynamically controlling a data stream, comprising:
-
means for monitoring a data stream in a plurality of overlapping windows;
means for comparing the data stream to at least one data limit in the plurality of overlapping windows; and
means for modifying the data stream responsive to the comparisons conducted by the means for comparing. - View Dependent Claims (70, 71, 72)
-
-
73. A client device for a television-based entertainment system, the client device comprising:
-
one or more processors; and
one or more memories in operative communication with the one or more processors, the one or more memories storing processor-executable instructions that, when executed, cause the one or more processors to perform actions comprising;
monitoring a current bitcount of an associated data stream in each time window of a plurality of time windows, each time window of the plurality of time windows overlapping at least one other time window of the plurality of time windows;
generating a window level modifier for each time window based on the respective current bitcount for each time window and a respective current time for each time window that corresponds to the respective current bitcount;
determining a window level control parameter for each time window based on the respective window level modifier for each time window;
combining each window level control parameter for each time window of the plurality of time windows to produce a combined window level control parameter; and
modifying a quantization of the data stream based on the combined window level control parameter. - View Dependent Claims (74, 75, 76, 77, 78, 79)
-
-
80. A method for dynamically controlling a data stream, comprising:
-
monitoring a data stream in a plurality of overlapping windows;
comparing the data stream to at least one data limit in comparisons in each overlapping window of the plurality of overlapping windows; and
modifying the data stream responsive to the comparisons from the action of comparing.
-
-
81. A method for dynamically controlling a data rate, comprising:
-
coding a bit stream using a first bit rate parameter;
monitoring a bit accumulation of the bit stream over time;
determining a plurality of bit accumulation variances of the bit accumulation from a plurality of expected bit accumulations in a plurality of overlapping time windows;
determining a plurality of bit rate recommendations from the plurality of bit accumulation variances in the plurality of overlapping time windows;
combining the plurality of bit rate recommendations into a combined bit rate recommendation;
determining a second bit rate parameter based on the combined bit rate recommendation; and
coding the bit stream using the second bit rate parameter. - View Dependent Claims (82, 83, 84, 85, 86, 87, 88)
-
Specification