Method for configuring a statistical multiplexer to dynamically allocate communication channel bandwidth
First Claim
1. A statistical multiplexing process for a plurality of data streams competing for access to a communication channel comprising the steps of:
- a) populating a static table in a memory of a statistical multiplexer wherein said static table has an entry for each unit of data that can be sent over said communication channel in a predetermined time period wherein said static table populating step further comprises;
i) allocating an entry in said static table to one of said plurality of data streams;
ii) storing a predetermined code in said entry if said entry is allocated to a data stream that has a variable rate;
iii) storing a pointer in said entry if said entry is allocated to a data stream that has a fixed rate wherein said pointer identifies the fixed rate data stream; and
iv) repeating steps i) to iii) for each entry in said static table; and
b) using each table entry in said static table in selecting the data stream in said plurality of data streams that sends the next unit of data to the communication channel.
7 Assignments
0 Petitions
Accused Products
Abstract
A statistical multiplexer selectively passes packets of encoded data from a plurality of encoders to a communication channel so as to maximize the quality of the encoded data. The statistical multiplexer determines what fraction of the communication channel capacity should be allocated to an application so as to optimize the quality of the decoded signals of the applications processed by the statistical multiplexer. A table is stored in a memory of the statistical multiplexer that has an entry for each unit of encoded data that can be transmitted over the communication channel in a predetermined time interval. The statistical multiplexer accesses each entry in the table to obtain a pointer, e.g., an address, to an encoder that can transmit the next unit of encoded data to the communication channel. The statistical multiplexer dynamically adjusts the data compression rate for each variable rate application so that the quality of all the encoded data streams are optimized over a window, and builds a new table that reflects the adjusted rates. In one application, the table is broken into a static table and a dynamic table. The static table is built at configuration time and while one dynamic table is being used for a window, a new dynamic table is built for the next window.
-
Citations
31 Claims
-
1. A statistical multiplexing process for a plurality of data streams competing for access to a communication channel comprising the steps of:
-
a) populating a static table in a memory of a statistical multiplexer wherein said static table has an entry for each unit of data that can be sent over said communication channel in a predetermined time period wherein said static table populating step further comprises; i) allocating an entry in said static table to one of said plurality of data streams; ii) storing a predetermined code in said entry if said entry is allocated to a data stream that has a variable rate; iii) storing a pointer in said entry if said entry is allocated to a data stream that has a fixed rate wherein said pointer identifies the fixed rate data stream; and iv) repeating steps i) to iii) for each entry in said static table; and b) using each table entry in said static table in selecting the data stream in said plurality of data streams that sends the next unit of data to the communication channel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A statistical multiplexing process for a plurality of encoded data streams sharing access to a communication channel comprising the steps of:
-
assigning a rate to each variable rate encoder that generates one of said plurality of encoded data streams, and to each fixed rate encoder that generates one of said plurality of encoded data streams; populating a table having a predetermined number of entries using said assigned rates wherein each entry in said table is allocated to one of (i) one of said plurality of encoded data streams and (ii) a variable rate data stream of idle packets; and using each table entry in said table to select an encoded data stream that sends the next packet to the communication channel. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A statistical multiplexing process for a plurality of encoded data streams sharing a communication channel comprising the steps of:
-
collecting data for each variable rate encoded data stream from a variable rate encoder in said plurality of encoded data streams to generate a distortion parameter that characterizes said variable rate encoded data stream; generating for each variable rate encoded data stream said distortion parameter that characterizes a quality of said variable rate encoded data stream; adjusting a number of packets allocated to each of said variable rate encoded data streams in a selected time period if said distortion parameter is outside a predetermined range; populating a table using said adjusted number of allocated packets wherein said table populating step further comprises; i) allocating an entry in said table to one of A) a variable rate encoded data stream in a plurality of variable rate encoded data streams that are included in said plurality of encoded data streams and B) a variable encoded data stream of idle packets; ii) storing in said entry a pointer to said variable rate encoded data stream upon said entry being allocated to said variable rate encoded data stream; and iii) repeating steps i) to ii) for each entry in said table; switching to said table so that said table is used by a statistical multiplexer to determine the variable rate encoded data stream that sends the next packet to said communication channel.
-
Specification