Implementation of opportunistic data on a statistical multiplexing encoder
First Claim
1. A multi-channel statistical multiplexing encoder, comprising:
- a plurality of channel encoders with respective buffers for receiving respective data sources;
an opportunistic data processor with a respective buffer for receiving a respective data source;
a packet multiplexer for receiving encoded data from the channel encoders and the opportunistic data processor for forming a transport stream; and
a quantization level processor associated with the packet multiplexer;
wherein;
the channel encoders and the opportunistic data processor send bandwidth need parameters thereof to the quantization level processor;
the quantization level processor provides bandwidth allocations and a global quantization level to the channel encoders and the opportunistic data processor according to the bandwidth need parameters;
the channel encoders and the opportunistic data processor encode their respective data sources according to the global quantization level and the respective bandwidth allocations;
the opportunistic data processor generates its bandwidth need parameter;
(a) by scaling a bandwidth need thereof by a function of the global quantization level, and (b) according to a threshold quantization level; and
the opportunistic data processor generates its bandwidth need parameter such that essentially no bandwidth is allocated to the opportunistic data processor when the global quantization level exceeds the threshold quantization level.
10 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for providing an opportunistic data capability for an existing statistical multiplexing encoder platform, such as a multi-channel video data encoder. An Opportunistic Data Processor (ODP) is provided as a plug-in card or an external device that can be interfaced with an existing multi-channel encoder. The ODP communicates with a Quantization Level Processor (QLP) and Packet Multiplexer (PM) in the multi-channel encoder as if it was just another channel encoder. The ODP implements a special rate control scheme by encoding data and sending it to the PM only when a global Quantization Level (QL) indicates that spare bandwidth is available. Spare bandwidth is assumed to be available when the global QL is less than a threshold value. Moreover, the OPD sends a bandwidth need parameter to the QLP, as do the other channel encoders. However, the ODP'"'"'s need parameter is scaled by a function of the global QL to attenuate its actual bandwidth need as the global QL increases to provide smooth variations in the ODP'"'"'s encoded data rate.
51 Citations
24 Claims
-
1. A multi-channel statistical multiplexing encoder, comprising:
-
a plurality of channel encoders with respective buffers for receiving respective data sources;
an opportunistic data processor with a respective buffer for receiving a respective data source;
a packet multiplexer for receiving encoded data from the channel encoders and the opportunistic data processor for forming a transport stream; and
a quantization level processor associated with the packet multiplexer;
wherein;
the channel encoders and the opportunistic data processor send bandwidth need parameters thereof to the quantization level processor;
the quantization level processor provides bandwidth allocations and a global quantization level to the channel encoders and the opportunistic data processor according to the bandwidth need parameters;
the channel encoders and the opportunistic data processor encode their respective data sources according to the global quantization level and the respective bandwidth allocations;
the opportunistic data processor generates its bandwidth need parameter;
(a) by scaling a bandwidth need thereof by a function of the global quantization level, and (b) according to a threshold quantization level; and
the opportunistic data processor generates its bandwidth need parameter such that essentially no bandwidth is allocated to the opportunistic data processor when the global quantization level exceeds the threshold quantization level. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
said bandwidth need of said opportunistic data processor is responsive to a fullness level/size ratio of the opportunistic data processor'"'"'s buffer.
-
-
3. The encoder of claim 1, wherein:
said bandwidth need of said opportunistic data processor is scaled by a range of the bandwidth need parameters.
-
4. The encoder of claim 3, wherein:
said bandwidth need of said opportunistic data processor function is responsive to a fullness level of the opportunistic data processor'"'"'s buffer.
-
5. The encoder of claim 1, wherein:
the opportunistic data processor generates its bandwidth need parameter such that bandwidth is allocated to the opportunistic data processor only when the global quantization level is less than the threshold quantization level.
-
6. The encoder of claim 1, wherein:
said function attenuates the bandwidth need of the opportunistic data processor progressively more as the global quantization level is progressively greater.
-
7. The encoder of claim 1, wherein:
said function monotonically decreases as the global quantization level increases.
-
8. The encoder of claim 1, wherein:
said function increases toward a value of one as the global quantization level decreases toward a minimum value.
-
9. The encoder of claim 1, wherein:
the global quantization level is determined according to an average of the bandwidth need parameters of the channel encoders.
-
10. The encoder of claim 9, wherein:
the bandwidth need parameters of the channel encoders are indicative of a local quantization level thereof.
-
11. The encoder of claim 1, further comprising:
an interface for interfacing said opportunistic data processor to said packet multiplexer and said quantization level processor.
-
12. An opportunistic data processor apparatus for use with a multi-channel statistical multiplexing encoder, comprising:
-
an opportunistic data processor with a respective buffer for receiving a respective data source; and
an interface for allowing said opportunistic data processor to communicate with a packet multiplexer and a quantization level processor of the multi-channel statistical multiplexing encoder;
wherein;
said opportunistic data processor provides a bandwidth need parameter to the quantization level processor via said interface, and, in response thereto, receives a bandwidth allocation and a global quantization level from the quantization level processor via said interface;
said opportunistic data processor generates its bandwidth need parameter;
(a) by scaling a bandwidth need thereof by a function of the global quantization level, and (b) according to a threshold quantization level;
said quantization level processor also receives bandwidth need parameters from a plurality of channel encoders, and, in response thereto, provides bandwidth allocations and the global quantization level to the plurality of channel encoders;
the channel encoders and the opportunistic data processor encode their respective data sources according to the global quantization level and the respective bandwidth allocations;
said packet multiplexer receives encoded data from the plurality of channel encoders and the opportunistic data processor for forming a transport stream; and
the opportunistic data processor generates its bandwidth need parameter such that essentially no bandwidth is allocated to the opportunistic data processor when the global quantization level exceeds the threshold quantization level. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
said bandwidth need of said opportunistic data processor is responsive to a fullness level/size ratio of the opportunistic data processor'"'"'s buffer.
-
-
14. The apparatus of claim 12, wherein:
said bandwidth need of said opportunistic data processor is scaled by a range of the bandwidth need parameters.
-
15. The apparatus of claim 14, wherein:
said bandwidth need of said opportunistic data processor function is responsive to a fullness level of the opportunistic data processor'"'"'s buffer.
-
16. The apparatus of claim 12, wherein:
the opportunistic data processor generates its bandwidth need parameter such that bandwidth is allocated to the opportunistic data processor only when the global quantization level is less than the threshold quantization level.
-
17. The apparatus of claim 12, wherein:
said function attenuates the bandwidth need of the opportunistic data processor progressively more as the global quantization level is progressively greater.
-
18. The apparatus of claim 12, wherein:
said function monotonically decreases as the global quantization level increases.
-
19. The apparatus of claim 12, wherein:
said function increases toward a value of one as the global quantization level decreases toward a minimum value.
-
20. The apparatus of claim 12, wherein:
the global quantization level is determined according to an average of the bandwidth need parameters of the channel encoders.
-
21. The apparatus of claim 20, wherein:
the bandwidth need parameters of the channel encoders are indicative of a local quantization level thereof.
-
22. The apparatus of claim 12, wherein:
said interface is provided by a card that plugs into a chassis of said multi-channel statistical multiplexing encoder, said opportunistic data processor being located on said card.
-
23. The apparatus of claim 12, wherein:
said opportunistic data processor is provided externally to the multi-channel statistical multiplexing encoder.
-
24. A method for providing an opportunistic data capability to a multi-channel statistical multiplexing encoder, comprising the steps of:
-
providing an opportunistic data processor with a respective buffer for receiving a respective data source;
coupling said opportunistic data processor to a packet multiplexer and a quantization level processor of the multi-channel statistical multiplexing encoder via an interface to allow communication between the opportunistic data processor and the packet multiplexer, and between the opportunistic data processor and the quantization level processor;
providing a bandwidth need parameter from the opportunistic data processor to the quantization level processor via said interface, and, in response thereto, receiving a bandwidth allocation and a global quantization level at the opportunistic data processor from the quantization level processor via the interface;
generating a bandwidth need parameter at the opportunistic data processor;
(a) by scaling a bandwidth need thereof by a function of the global quantization level, and (b) according to a threshold quantization level;
receiving bandwidth need parameters from a plurality of channel encoders at the quantization level processor, and, in response thereto, providing bandwidth allocations and the global quantization level to the plurality of channel encoders;
encoding the respective data sources at the channel encoders and the opportunistic data processor according to the global quantization level and the respective bandwidth allocations; and
receiving encoded data from the plurality of channel encoders and the opportunistic data processor at the packet multiplexer for forming a transport stream;
wherein the opportunistic data processor generates its bandwidth need parameter such that essentially no bandwidth is allocated to the opportunistic data processor when the global quantization level exceeds the threshold quantization level.
-
Specification