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, wherein each time window of the plurality of time windows overlaps at least one other time window of the plurality of time windows;
combining each new window level control parameters at a window level control parameter combiner, 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, wherein the window level control parameter combiner is further adapted to combine the new window level control parameters for each respective time window of the plurality of time windows using an average of the new window level control parameters for each respective time window of the plurality of time windows; and
calculating a top level control parameter based on the new window level control parameter and the plurality of new window level control parameters.
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.
145 Citations
48 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, wherein each time window of the plurality of time windows overlaps at least one other time window of the plurality of time windows; combining each new window level control parameters at a window level control parameter combiner, 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, wherein the window level control parameter combiner is further adapted to combine the new window level control parameters for each respective time window of the plurality of time windows using an average of the new window level control parameters for each respective time window of the plurality of time windows; and calculating a top level control parameter based on the new window level control parameter and the plurality of new window level control parameters. - View Dependent Claims (2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
7. The method as recited in claim I, wherein the action of generating a window level modifier comprises generating the window level modifier such that the window level modifier is greater the closer the current bitcount is to a target bitcount of a total expected bitcount accumulation that corresponds to the time window.
-
28. 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; a top level control parameter calculator1 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; and wherein the window level control parameter combiner is further adapted to combine the new window level control parameters for each respective time window of the plurality of time windows using an average of the new window level control parameters for each respective time window of the plurality of time windows. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. 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; wherein the top level control parameter calculator is further adapted to calculate the top level control parameter responsive to an autoregressive model in which the combined window level control parameter is weighted versus the plurality of previous top level control parameters.
-
-
41. 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 process or 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, wherein combining the new window level control parameters for each respective time window of the plurality of time windows uses an average of the determined window level control parameters for each respective time window of the plurality of time windows; and modifying a quantization of the data stream based on the combined window level control parameter. - View Dependent Claims (42, 43, 44, 45, 46, 47)
-
-
48. 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; combining the plurality of new window level control parameters to produce a combined window level control parameter; calculating a top level control parameter based on the new window level control parameter and the plurality of new window level control parameters, wherein the top level control parameter is calculated responsive to an autoregressive model in which the combined window level control parameter is weighted versus a plurality of previous top level control parameters stored in a top level control parameter history storage; wherein each time window of the plurality of time windows overlaps at least one other time window of the plurality of time windows.
-
Specification