Method and apparatus for effecting seamless data rate changes in a video compression system
AssigneeScientific-Atlanta, Inc.
InventorMichael G. Perkins
Life of this patent
Estimating the term…
Abstract
A video compression system comprises a control computer 52; a plurality of encoders 54, 56, 58; a plurality of encoder buffers 60, 62, 64; a multiplexor 66; a data channel 70; a demultiplexor 80; a decoder buffer 82; a decoder 84; and display 86. The control computer controls the encoders and the multiplexor 66 to avoid overflows and underflows of data provided to the decoder buffer 82.
Claims12
A method for operating a video compression system comprising at least one encoder providing data to an encoder buffer and a decoder taking data from a decoder buffer, comprising the steps of:
- (a) changing the rate at which the encoder provides data to the encoder buffer from a first rate R to a second rate R′;
- and
- (b) maintaining an encoder buffer occupancy be(t) such that:
- (1) prior to time TO−Td, max{0, RTd−Bd}≦be(t)≦min{Be, RTd};
- and (2) after time TO, max{0, R′Td−Bd}≦be(t)≦min{Be, R′Td};
- and (3) during the time TO−Td≦t≦TO, max{0, RTO−Rt+R′t+R′Td−R′TO−Bd}≦be(t)≦min{Be, RTO−Rt+R′t+R′Td−R′TO};
- wherein t represents time, TO represents the time at which the data rate changes from R to R′, Bd represents the maximum capacity of the decoder buffer, Be represents the maximum capacity of the encoder buffer, and Td represents the delay caused by the encoder and decoder buffers.
An apparatus for operating a video compression system comprising at least one encoder providing data to an encoder buffer and a decoder taking data from a decoder buffer, comprising:
- (a) means for changing the rate at which the encoder provides data to the encoder buffer from a first rate R to a second rate R′;
- and
- (b) a control computer operatively coupled to said encoder and being programmed to control the rate at which the encoder provides data to the encoder buffer and to maintain an encoder buffer occupancy be(t) such that:
- (1) prior to time TO−Td, max{0, RTd−Bd}≦be(t)≦min{Be, RTd};
- and (2) after time TO, max{0, R′Td−Bd}≦be(t)≦min{Be, R′Td};
- and (3) during the time TO −Td≦t≦TO, max{0, RTO−Rt+R′t+R′Td−R′TO−Bd}≦be(t)≦min{Be, RTO−Rt+R′t+R′Td−R′TO};
- wherein t represents time, TO represents the time at which the data rate changes from R to R′, Bd represents the maximum capacity of the decoder buffer, Be represents the maximum capacity of the encoder buffer, and Td represents the delay caused by the encoder and decoder buffers.
A system for providing a plurality of programs to a cable operator or subscriber having means for selecting a desired program for viewing, a decoder and a decoder buffer providing the selected program to the decoder, comprising:
- (a) first and second encoders each receiving program data;
- (b) first and second encoder buffers respectively coupled to said first and second encoders;
- (c) a multiplexor receiving data from said first and second encoders and outputting a multiplex to a data channel for reception by said cable operator or subscriber;
- and
- (d) a control computer coupled to said first and second encoders and to said multiplexor, comprising program means for changing the rates at which the encoders provide data to their encoder buffers and the encoder buffers provide data to the multiplexor, and for controlling the occupancies of the encoder buffers such that the decoder buffer neither overflows nor underflows when the rate at which either encoder provides data to its buffer is changed from a first rate R to a second rate R′;
- wherein said control computer maintains each encoder buffer occupancy be(t) such that:
- (1) prior to time TO−Td, max{0, RTd−Bd}<be(t)<min{Be, RTd};
- and (2) after time TO, max{0, R′Td−Bd}<be(t)<min{Be, R′Td};
- and (3) during the time TO −Td<t<TO, max{0, RTO−Rt+R′t+R′Td−R′TO−Bd}<be(t)<min{Be, RTO−Rt+R′t+R′Td−R′TO};
- wherein t represents time, TO represents the time at which the data rate changes from R to R′, Bd represents the maximum capacity of the decoder buffer, Be represents the maximum capacity of the encoder buffer, and Td represents the delay caused by the encoder and decoder buffers.
Dependencies are inferred from the claim text.