WO1995032565A1 - Method for dynamically allocating communication channel bandwidth between competing applications - Google Patents
Method for dynamically allocating communication channel bandwidth between competing applications Download PDFInfo
- Publication number
- WO1995032565A1 WO1995032565A1 PCT/US1995/006136 US9506136W WO9532565A1 WO 1995032565 A1 WO1995032565 A1 WO 1995032565A1 US 9506136 W US9506136 W US 9506136W WO 9532565 A1 WO9532565 A1 WO 9532565A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- εaid
- rate
- data
- entry
- variable rate
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2365—Multiplexing of several video streams
- H04N21/23655—Statistical multiplexing, e.g. by controlling the encoder to alter its bitrate to optimize the bandwidth utilization
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/16—Time-division multiplex systems in which the time allocation to individual channels within a transmission cycle is variable, e.g. to accommodate varying complexity of signals, to vary number of channels transmitted
- H04J3/1682—Allocation of channels according to the instantaneous demands of the users, e.g. concentrated multiplexers, statistical multiplexers
- H04J3/1688—Allocation of channels according to the instantaneous demands of the users, e.g. concentrated multiplexers, statistical multiplexers the demands of the users being taken into account after redundancy removal, e.g. by predictive coding, by variable sampling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/154—Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
- H04N19/197—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
- H04N19/198—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2365—Multiplexing of several video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4347—Demultiplexing of several video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6377—Control signals issued by the client directed to the server or network components directed to server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
Definitions
- This invention relates generally to selecting data for transmission over a communication channel and more particularly to a multiplexer that allocates the
- Decoder 121 decompresses the encoded video data and supplies the resulting signal to post-processor 122, which in turn smooths and enhances the video signal.
- the video signal from post ⁇ processor 122 supplies display driver 123 that drives display unit 130.
- the encoding, i.e., compression, of video signals for storage or transmission and the subsequent decoding is well-known.
- a communication channel rather than just a single application, i.e., video camera 101 as illustrated in Fig. 1.
- “L" applications 201-1 to 201-L are compressed using encoders 202-1 to 202-L, respectively.
- Applications 201-1 to 201-L can be from a variety of signal sources, e.g., video, audio, etc.
- Each application 201-1 to 201-L drives an encoder 202-1 to 202-L, respectively.
- a compression loop 204-1 within encoder 201-1 for example, performs prediction and quantization as the main operations.
- bits of compressed data are written to buffer 205-1.
- a controller (not shown) manages rate control of the compression to prevent buffer 205-1 from overflowing and underflowing.
- the video encoder rate control ensures that encoder 201-1 produces bits of encoded data at an approximately constant rate over some interval of time from buffer 205-1 while maximizing the picture quality of the video sequence.
- Applications 201-1 to 201-L are either fixed rate or variable rate applications.
- a fixed rate application 201-i releases bits to channel 230 at a constant rate.
- a variable rate application 202-i releases bits to channel 230 over a non-constant rate, i.e., the rate may change with time.
- the output data from encoders 202-1 to 202-L are each an input data stream to multiplexer 210.
- the data stream passed through multiplexer 210 is determined by a multiplexer controller circuit 211 that receives input signals from a system controller 250.
- System controller 250 is typically a computer that is programmed to pass signals to multiplexer control circuit 211 so that encoded data are passed through multiplexer 210 in manner that is independent of the content of the transmitted signal or the quality of the resulting image.
- Transfer of information from encoders 202-1 to 202-L to the multiplexer 210 and subsequently to the communication channel usually is done in packets of information.
- Multiplexer 210 passes therethrough to communication channel 220 a packet of data at a time from one of applications 201-1 to 201-L.
- a statistical multiplexer dynamically distributes the total capacity of a communication channel among a plurality of data streams that share for access to the communication channel. At the same time, the statistical multiplexer assures that the communication channel capacity is not exceeded. In other words, the statistical multiplexer of this invention determines what fraction of the communication channel capacity should be allocated for any interval of time to a particular data stream, i.e., an application, so as to maximize the quality of the signals of all applications transmitted over the communication channel.
- the statistical multiplexer implements a statistical multiplexing process for a plurality of data streams competing for access to a communication channel that creates and populates a static table in a memory of the statistical multiplexer.
- the static table has an entry for each unit of data that can be sent over the communication channel in a predetermined time period.
- the statistical multiplexer uses the static table to allocate the communication channel capacity among the plurality of data streams competing for access to the communication channel. Specifically, the statistical multiplexer accesses an entry in the static table to determine the data stream in the plurality of data streams that sends the next unit of data to the communication channel during the predetermined time period.
- the statistical multiplexer is using the static and dynamic tables to allocate the communication channel bandwidth to the various data steams competing for access to the communication channel, the statistical multiplexer is also adjusting a number of units of data, e.g., a number of packets, allocated for transmission over the communication channel for each of the variable rate data streams that has a quality measurement parameter outside a predetermined range.
- the statistical multiplexer generates a second dynamic table using the adjusted number of units of data allocated for transmission over the communication channel.
- the process used to generate the second dynamic table is the same as that used for the first dynamic table, except the new rates are used where necessary.
- the statistical multiplexer allocates each entry in the second dynamic table, in this embodiment, to one of a variable rate data stream and an idle unit of data. If an entry is allocated to a variable rate data stream, the statistical multiplexer stores a pointer to the variable rate data stream in the entry. Each entry in the second dynamic table is a pointer to either a variable rate data stream or an idle unit of data. After a selected timed interval, e.g., in this embodiment, at about the end of a statistical multiplexer cycle, the statistical multiplexer switches from the first dynamic table to the second dynamic table.
- a statistical multiplexing process for a plurality of encoded data streams competing for access to a communication channel includes 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) an idle packet; ii) storing in said entry a pointer to said variable rate encoded data stream upon said entry being allocated to said variable
- Figure 4 is a process flow diagram for rate update operations of the statistical multiplexer of this invention within each statistical multiplexer period.
- Figure 15 is a timing diagram that shows the various relationships of the signals on the application bus when data is driven onto the application bus.
- Figure 16 is a timing diagram that shows the relationship between the various signals on the application bus when a byte is written during a message cycle.
- Figure 18 is a process flow diagram that shows how the statistical multiplexer allocates each packet within a window to either a fixed rate application or a variable rate application.
- a table is stored in memory 313 of controller 310.
- the table has an entry for each unit of encoded data that can be transmitted over communication channel 330 in a predetermined time interval, e.g., one second.
- Each entry in the table is allocated, as explained more completely below, to one of encoders 302-1 to 302-L, i.e, to an encoded data stream from encoder 302-i. More entries are allocated for an encoder 302-i that has a high encoding rate than for an encoder 302-j that has a slower encoding rate.
- the entries in the table define the number of units of data that are transmitted over communication channel 330 in the predetermined time interval for each of encoders 302-1 to 302-L.
- statistical multiplexer 300 dynamically adjusts the data compression rate for each variable rate application 301-i over a selected interval of time that is referred to as a window, so that the quality of the encoded data streams is maximized over the selected time interval.
- Each fixed rate application 301-i receives an allocated quota of packets, i.e., a fraction of the communication channel bandwidth over the selected time interval.
- Figure 4 is a proces ⁇ flow diagram for ⁇ tatistical multiplexer 300.
- statistical multiplexer 300 Upon start-up, i.e., at initial configuration and at reconfiguration, statistical multiplexer 300 enters initialization step 401.
- system supervisor 340 Fig. 3 provides configuration information for use in subsequent operation of statistical multiplexer 300.
- the configuration information is stored in memory 313.
- Distortion D_i itself may be provided to statistical multiplexer 300 by variable rate encoder 302-i or variable rate encoder 302-i can provide parameters to statistical multiplexer 300 so that statistical multiplexer 300 can determine distortion D_i for variable rate encoder 302-i.
- ⁇ tatistical multiplexer 300 polls each variable rate encoder 302-i in a round robin fashion in a pre-defined sequence and reads one byte of information at a time from each variable rate encoder 302-i.
- Distortion D_i is determined once for each picture in the sequence by statistical multiplexer 300.
- the frequency of transferring the distortion parameters from variable rate encoder 302-i to statistical multiplexer 300 is once per picture. Consequently, the collection portion of step 402 i ⁇ performed by ⁇ tati ⁇ tical multiplexer 300 on an ongoing ba ⁇ is.
- int is the integer function. Since the sum of the a ⁇ igned rate ⁇ , which in thi ⁇ embodiment are the guaranteed rate ⁇ , ⁇ hould equal the total communication channel capacity allocated to variable rate encoders 302-i, the sum of the as ⁇ igned rate ⁇ in packet ⁇ /S.T. equals 192.
- the truncation introduced by the integer function may cause the sum of the a ⁇ igned rate ⁇ to be less than the total communication channel capacity allocated to variable rate encoder ⁇ 302-i. In this case, any una ⁇ igned packets are arbitrarily as ⁇ igned to variable rate encoder ⁇ by ⁇ tatistical multiplexer 300.
- OV i ⁇ the number of overhead bits in each packet, which in this embodiment is 24 bits;
- C is the nominal total stati ⁇ tical multiplexer output rate (in bit ⁇ / ⁇ econd) ;
- Rate calibration constant Y i ⁇ provided to each encoder 302-1 to 302-L at configuration time.
- Q is the number of packets/S.T. assigned to an application; and the constant "400" is required by the MPEG compression standard which counts rate ⁇ in multiple ⁇ of 400 bit ⁇ / ⁇ econd.
- Priority number P_i is used to weight the distortion of each variable rate encoder 302-i, a ⁇ explained more completely below. Consequently, a large priority number P_i artificially scale ⁇ up the di ⁇ tortion, re ⁇ ulting in variable rate encoder 302-i demanding more bits of communication channel 330.
- Priority number P_i is a non-negative and, in one embodiment, is an integer within the range of [1, 16].
- stati ⁇ tical multiplexer 300 normalize ⁇ priority number P_i of each variable rate encoder 302-i by dividing priority number P_i by the average of all of priority numbers.
- the resulting normalized priority number which is also indicated by P_i, is stored by ⁇ tati ⁇ tical multiplexer 300 in memory 313 and is used in the operations described below.
- system supervisor 340 also defines maximum buffer size Bmax_i for encoder 302-i.
- Statistical multiplexer 300 use ⁇ maximum buffer ⁇ ize Bmax_i and maximum rate Rmax_i for each variable rate encoder 302-i to determine the end-to-end ⁇ y ⁇ tem delay time ⁇ S_i, i.e., the time in ⁇ econds from when a frame i ⁇ input to an encoding ⁇ y ⁇ tem to when it is ultimately displayed by the decoding sy ⁇ tem.
- ⁇ S_i the end-to-end ⁇ y ⁇ tem delay time
- the end-to-end sy ⁇ tem delay time is actually sy ⁇ tem delay time ⁇ " _i plu ⁇ other time delay ⁇ introduced by frame buffering etc.
- stati ⁇ tical multiplexer 300 can broadcast a byte of information to all encoders 302-1 to 302-L during the mes ⁇ age cycle. If encoder 302-i merely pas ⁇ e ⁇ the parameter ⁇ necessary to determine distortion D_i to statistical multiplexer 300, distortion D_i ⁇ pans several packet times for that encoder.
- stati ⁇ tical multiplexer 300 and encoders 302-1 to 302-L The particular process used to pa ⁇ s data between stati ⁇ tical multiplexer 300 and encoders 302-1 to 302-L is not critical to this invention.
- the important aspect is the data required by statistical multiplexer 300 and how stati ⁇ tical multiplexer 300 processes the data.
- the required data can be pa ⁇ sed in a wide variety of ways. Nevertheless, in one embodiment, all direct communication between stati ⁇ tical multiplexer ⁇ 300 and encoder ⁇ 302-1 to 302-L i ⁇ performed by reading entrie ⁇ from and writing entries to a general communications table in memory 313 of ⁇ tati ⁇ tical multiplexer 300.
- first and second FIFOs and regi ⁇ ter ⁇ are u ⁇ ed, but thi ⁇ i ⁇ illu ⁇ trative only and those skilled in the art will recognize that the communications between encoders 302-i and stati ⁇ tical multiplexer 300 can be accompli ⁇ hed in a wide variety of way ⁇ without affecting the operation of statistical multiplexer 300.
- the important aspect, as indicated above, is that each encoder collect ⁇ di ⁇ tortion and buffer fullne ⁇ data and the data are communicated to ⁇ tati ⁇ tical multiplexer 300 at appropriate interval ⁇ for operation of statistical multiplexer 300.
- statistical multiplexer 300 must communicate new rate information to variable rate encoder ⁇ 302-i once per ⁇ tatistical multiplexer cycle.
- Two processes are used to communicate data from encoder 302-i to statistical multiplexer 300.
- a first proce ⁇ ⁇ tati ⁇ tical multiplexer 300, in the following order, (1) sets the write FIFO owner flag of encoder 302-i to "mux"; (2) reads the write data valid flag and six bytes from the first FIFO; and (3) sets the write FIFO owner flag to "encoder".
- stati ⁇ tical multiplexer 300 examine ⁇ the write data valid flag and if the flag i ⁇ not valid, di ⁇ cards the six byte ⁇ of data.
- Thi ⁇ proce ⁇ i ⁇ repeated for each encoder at least once every twenty milliseconds.
- Statistical multiplexer 300 in the following order, (1) ⁇ ets the read FIFO owner flag of encoder 302-i to "mux"; (2) writes the new rate to the second FIFO; and (3) set ⁇ the read FIFO owner flag to "encoder".
- the writes to the read FIFO owner flag generates interrupts to the encoder proce ⁇ or.
- the encoder proce ⁇ sor read ⁇ data from the ⁇ econd FIFO until the FIFO i ⁇ empty.
- the recursive filter introduces damping which also protects against sudden spike ⁇ in distortion D_i.
- the value of constant ⁇ is determined empirically and a value of 0.8 is used in one embodiment.
- step 503 If di ⁇ tortion D_i i ⁇ too high, proce ⁇ ing tran ⁇ fer ⁇ from ⁇ tep 502 to rate check step 503, and conversely to di ⁇ tortion too low ⁇ tep 506.
- rate check ⁇ tep 503, if rate R_i i ⁇ le ⁇ than guaranteed rate Rgtd_i for application 301-i, processing transfer ⁇ to step 504 and otherwise to step 505.
- step 504 application 301-i is assigned to Clas ⁇ 3 and in ⁇ tep 505, application 301-i is assigned to Clas ⁇ 6. Steps 504 and 505 transfer to additional application step 501.
- Each application 301-i in Cla ⁇ 3 is currently allocated less than guaranteed rate Rgtd_i and is being compre ⁇ sed at a quality level less than the maximum distortion. Consequently, the rates of the applications in Clas ⁇ 3 should be increased.
- Each application 301-i in Class 6 is currently allocated at lea ⁇ t guaranteed rate Rgtd_i and i ⁇ being compre ⁇ sed at a quality level less than the maximum distortion. Applications 301-i in Class 6 compete among themselves for rate increase ⁇ , as described more completely below.
- step 506 If distortion D_i is too low, processing transfers from step 506 to rate check step 507, and conversely to rate check step 510.
- rate check 507 if rate R_i i ⁇ less than guaranteed rate Rgtd_i for variable rate application 301-i, proces ⁇ ing tran ⁇ fer ⁇ to ⁇ tep 508 and otherwise to step 509.
- step 508 application 301-i is as ⁇ igned to Cla ⁇ 1 and in step 509, application 301-i is assigned to Clas ⁇ 4. Step ⁇ 508 and 509 tran ⁇ fer to additional application ⁇ tep 501.
- Clas ⁇ e ⁇ 3 and 6 are revised. Conversely, if after the rate adjustments, the capacity of communication channel 330 is exceeded, the rates of application ⁇ in Cla ⁇ e ⁇ 4 to 6 are revi ⁇ ed.
- all rate ⁇ are mea ⁇ ured in unit ⁇ of packet ⁇ / ⁇ econdary table. The unit u ⁇ ed to mea ⁇ ure the rate affects the choice of coefficients that are determined empirically. Hence, a different unit of measure for the rates will require a different value for the empirically determined coefficients.
- lower rate process 600 uses a proportional feedback loop to decrease current rate R_i for each application 301-i with too low di ⁇ tortion D_i.
- U ⁇ e of a proportional feedback loop a ⁇ umes implicitly that rate R_i and distortion D_i of every application 301-i are inver ⁇ ely proportional to each other.
- rate R_i is allowed to change only in small increments, as described below, and so there is not too much deviation from the actual rate-distortion curve.
- This assumption is utilized in all rate adju ⁇ tment proce ⁇ e ⁇ in thi ⁇ embodiment.
- different functional relation ⁇ hip ⁇ between a rate and distortion could be used.
- different functional relationship ⁇ between a rate and distortion could be used in the various processe ⁇ that make-up ⁇ tep 403.
- Rnew_i Rold_i + ( c * (( D_i - Dmax_i )/Dmax_i))
- con ⁇ tant c has the same values for all application ⁇ in all cla ⁇ es.
- constant c could also be defined on an application by application basis or alternatively on a clas ⁇ by cla ⁇ ba ⁇ i ⁇ .
- adjust rate step 601 check ⁇ new rate Rnew_i to en ⁇ ure that new rate Rnew_i i ⁇ within a predetermined range, i.e., the change in the rate i ⁇ a ⁇ mall decrement.
- new rate Rnew_i mu ⁇ t be in the range of a lower rate bound and an upper rate bound, e.g., :
- the value of con ⁇ tant ⁇ wa ⁇ empirically cho ⁇ en as 0.9. If new rate Rnew_i is less than lower rate bound s*Rold_i, new rate Rnew_i is ⁇ et equal to lower rate bound ⁇ *Rold_i.
- new rate Rnew_i is te ⁇ ted to determine whether new rate Rnew_i i ⁇ less than minimum rate Rmin_i for application 301-i. If new rate Rnew_i is less than minimum rate Rmin_i for application 301-i, new rate Rnew_i is set equal to minimum rate Rmin_i.
- adjust rate step 601 proces ⁇ ing transfers to adjust buffer size step 602.
- a decrease in rate R_i of application 301-i is accompanied by a proportional decrease in the effective buffer size of encoder 302-i.
- adjust buffer size step 602 determines a new effective buffer size.
- new effective buffer size "buf_sz_i" is equal to the product of new rate Rnew_i and system delay time interval ⁇ _i .
- a rate is decreased, it is important to ensure that all the bits that have already been in ⁇ erted into the encoder buffer up to a time ⁇ _i before the rate change are delivered to the decoder in time ⁇ _i .
- Thi ⁇ is an is ⁇ ue becau ⁇ e the new rate, at which bits will be delivered, is lower than the old rate at which they were generated.
- the rate can be decrea ⁇ ed if and only if the buffer fullness over the time interval equal to time ⁇ S_i before the rate change is in ⁇ tituted doe ⁇ not exceed the new buffer size.
- threshold max_buffer_i is compared with new buffer size buf_sz_i. If new buffer ⁇ ize buf_ ⁇ z_i i ⁇ le ⁇ than maximum buffer fullness threshold max_buffer-i, new rate Rnew_i is ⁇ et equal to old rate Rold_i. Otherwi ⁇ e, new rate Rnew_i i ⁇ retained and the operation ⁇ in adjust buffer size step 602 are complete and processing transfers to accumulate rate change step 603. In accumulate rate change step 603, the change in rate for application 301-i, i.e., the difference between new rate Rnew_i and old rate Rold_i is determined and added to delta rate decrease ⁇ D.
- delta rate decrease ⁇ D is the accumulation between new rate Rnew_i and old rate Rold_i for applications 301-i with too low distortions. Recall that above delta rate decrease ⁇ D wa ⁇ initialized to zero and is reset to zero at the start of each statistical multiplexer cycle.
- Delta rate decrease ⁇ D is negative.
- step 604 which in turn checks whether there are additional applications in Classes 1 and 4 for processing. If all applications in Classes 1 and 4 have been processed, step 604 transfers to processes complete step 630 and otherwise to step 601. Applications in Classes 3 and 6 have a di ⁇ tortion D_i that is too high. Applications in Class 3 have a current rate R_i that is less than guaranteed rate Rgtd_i. Each of these applications is proce ⁇ sed in increa ⁇ e rate proce ⁇ 605 within modify rate ⁇ step 403.
- increa ⁇ e rate proce ⁇ 605 uses a proportional feedback loop to increase current rate R_i for each application 301-i in Class 3.
- rate R_i and distortion D_i of every application 301_i in Clas ⁇ 3 are inversely proportional to each other. In general, such an as ⁇ umption i ⁇ not true. However, according to the principle ⁇ of thi ⁇ invention, rate R_i is allowed to change only in small increments, as described below, and ⁇ o there i ⁇ not too much deviation from the actual rate-distortion curve.
- New rate Rnew_i for application 301-i in Clas ⁇ 3 is determined in adjust rate step 606. In adjust rate ⁇ tep 606, old rate Rold_i i ⁇ ⁇ et equal to the current rate R_i for application 301-i. The normalized difference between di ⁇ tortion thre ⁇ hold Dmax_i and di ⁇ tortion D_i is scaled by a constant c and added to old rate Rold_i to generate new rate Rnew_i. Specifically,
- Rnew_i Rold_i + ( c * ( D_i - Dmax_i ) /Dmax_i )
- adjust rate step 606 checks new rate Rnew_i to ensure that the change in rate i ⁇ a ⁇ mall increment.
- new rate Rnew_i mu ⁇ t be in a range defined by a lower rate bound and an upper rate bound, e.g., :
- con ⁇ tant t wa ⁇ empirically selected as 1.1. If new rate Rnew_i is greater than upper rate bound t*Rold_i, new rate Rnew_i is set equal to upper rate bound t*Rold_i. After new rate Rnew_i is tested to determine that the change in the rate is constrained to a ⁇ mall increment, new rate Rnew i is tested to determine whether new rate Rnew_i is greater than guaranteed rate Rgtd_i for application 301-i. If new rate Rnew_i is greater than guaranteed rate Rgtd_i for application 301-i, new rate Rnew_i is set equal to guaranteed rate Rgtd__i.
- delta rate increase ⁇ I the change in rate for application 301-i, i.e., the difference between new rate Rnew_i and old rate Rold_i, is determined and added to delta rate increase ⁇ I, which in turn is stored in memory 313. Recall that above delta rate increase ⁇ I was initialized to zero and is reset to zero at the start of each statistical multiplexer cycle. Specifically,
- Delta rate increase ⁇ I i ⁇ po ⁇ itive Upon completion of accumulate rate change ⁇ tep 607, proce ⁇ sing tran ⁇ fer ⁇ to ⁇ tep 608 which in turn check ⁇ whether there are additional applications in Clas ⁇ 3 for proce ⁇ ing. If all application ⁇ in Cla ⁇ 3 have been proce ⁇ ed, step 607 transfer ⁇ to processes complete step 630 and otherwise to step 606. Thus, process 605 is sequentially performed for each variable rate application 301-i in Clas ⁇ 3.
- the application ⁇ in Cla ⁇ s 6 have a distortion D_i that i ⁇ greater than maximum distortion (K2_i) * (Dmax_i) and a rate R_i that is greater than or equal to guaranteed rate Rgtd_i.
- the application ⁇ in Cla ⁇ 6 are being compre ⁇ sed at distortion values in excess of the target quality de ⁇ pite the fact that the applications have been allocated at least their guaranteed rate. These applications compete amongst themselve ⁇ in competitive increase rate process 610 to equalize their distortions.
- average distortion Davg of all the applications in Cla ⁇ 6 is determined. Specifically,
- Next adju ⁇ t rate ⁇ tep 612 checks new rate Rnew_i to be sure that the change in rate is small. If new rate Rnew_i increa ⁇ ed, new rate Rnew_i must be in the range defined by a lower rate bound and an upper rate bound, e.g., :
- new rate Rnew_i i is set equal to maximum rate Rmax_i.
- processing transfers to rate decrease check step 613. If adjustment of the rate resulted in a rate decrease, proces ⁇ ing tran ⁇ fers from rate decrease check step 613 to adju ⁇ t buffer step 614, and otherwise to accumulate rate change step 615. Adjust buffer 614 step i ⁇ identical to adju ⁇ t buffer step 602 described above and that description is incorporated herein by reference.
- processing transfers to accumulate rate change step 615.
- accumulate rate change step 615 accumulates the difference between the new and old rates for all variable rate applications in Class 6. Specifically,
- ⁇ C can be either positive or negative and is zeroed at the start of each statistical multiplexer cycle.
- step 616 Upon completion of accumulate rate change step 615, proces ⁇ ing tran ⁇ fers to step 616 which in turn checks whether there are additional applications in Class 6 for processing. If all applications in Clas ⁇ 6 have been processed, step 616 transfers to proces ⁇ es complete step 630 and otherwise to step 612. Thus, steps 612 to 616 of process 610 are iteratively performed for each application in Class 6.
- steps 403 processes 600, 605, and 610 can run sequentially or in parallel.
- processes complete check 630 pas ⁇ e ⁇ proce ⁇ ing to accumulate rate change ⁇ ⁇ tep 620.
- Accumulate rate changes step 620 determine ⁇ the total difference between the new rates and the old rates so that capacity of communication channel 330 can be fully utilized but not overloaded.
- net rate change ⁇ i ⁇ determined by ⁇ umming ⁇ D, ⁇ I, and ⁇ C. Specifically,
- check 621 pas ⁇ e ⁇ processing to increase rate ⁇ ⁇ tep 623 which in turn distributes the available bits, as de ⁇ cribed below, among ⁇ t the application ⁇ in Cla ⁇ es 3 and 6 so as to maximize the channel bandwidth usage. If there is a net increase in the allocated rates, check 621 passes ⁇ processing to decrease rates step 622, which in turn reduces the rates of some of the applications so as to operate within the capacity of communication channel 330. If there is no net change in the allocated rates, check 621 transfers processing directly to build packet table step 404. Similarly, upon completion, step 623 transfer processing to step 404. Step 622 tran ⁇ fer ⁇ proce ⁇ ing to ⁇ tep 404, if the rates are successive ⁇ fully decreased and otherwise to step 407.
- step 623 The proces ⁇ of increa ⁇ e rates step 623 is shown in more detail in Figure 7.
- Applications with distortion D_i greater than maximum distortion (K2_i)*(Dmax_i) i.e, applications in Clas ⁇ e ⁇ 3 and 6, are con ⁇ idered as candidates for increased rates.
- applications in Class 3 are initially proces ⁇ ed separately from applications in Cla ⁇ 6.
- parameter excess_i is generated by subtracting new rate Rnew_i from guaranteed rate Rgtd_i.
- parameter excess_i i ⁇ generated by subtracting new rate Rnew_i from maximum rate Rmax_i.
- Parameter excess_i generated in step 704 al ⁇ o i ⁇ ⁇ tored for ⁇ ub ⁇ equent u ⁇ e.
- Parameterize exce ⁇ step 701 transfers proces ⁇ ing to additional applications step 703, which returns proce ⁇ ing to step 701 if additional Clas ⁇ 3 application ⁇ remain to be proce ⁇ ed and otherwi ⁇ e to step 705.
- parameterize exces ⁇ ⁇ tep 704 tran ⁇ fer ⁇ processing to additional applications step 706, which returns proces ⁇ ing to step 704 if
- step 705 begins proces ⁇ ing. Initially, in accumulate exce ⁇ s step 705 a parameter sum_exces ⁇ i ⁇ stored as zero. Accumulate exces ⁇ ⁇ tep 705 retrieves parameter sum_exces ⁇ from memory 313 and add ⁇ each parameter excess_i in succe ⁇ ion to the current value of parameter sum_excess. The final value of parameter sum_exce ⁇ i ⁇ then stored in memory 313.
- revised new rate Rrnew_i is generated by increasing rate Rnew_i by the fraction of the available channel capacity attributable to thi ⁇ application. Recall, that a ⁇ de ⁇ cribed above, two ⁇ tructure ⁇ are used. At this point, the first structure ha ⁇ the original rates for applications 301-i in Classes 2 and 5 and the new rates for applications 301-i in Classes 1, 3, 4, and 6.
- the second structure has the original rates for applications 301-i in Clas ⁇ es 1, 3, 4, and 6.
- new rate Rnew_i refers to the rate in the fir ⁇ t structure at the start of step 707.
- New rate Rnew_i i ⁇ processed to generate a revised new rate Rrnew_i, which is then stored in the fir ⁇ t ⁇ tructure.
- Next adju ⁇ t rate ⁇ tep 707 checks revised new rate Rrnew_i to be sure that the change in rate is a small increment.
- Revised new rate Rrnew_i must be in the range defined by a lower rate bound and an upper rate bound, e.g., :
- constant t was empirically selected as 1.1. If revised new rate Rrnew_i is greater than upper rate bound t*Rold_i, revised new rate Rrnew_i i ⁇ set equal to upper rate bound t*Rold_i.
- ⁇ tep 708 Upon completion of step 707, ⁇ tep 708 checks whether there are any remaining applications in Classe ⁇ 3 and 6 that have not been proce ⁇ ed in ⁇ tep 707. If there are remaining application ⁇ , processing returns to step 707. After each of the applications in Classe ⁇ 3 and 6 have been proce ⁇ sed in ⁇ tep 707, any channel packets that remain unassigned are transmitted a ⁇ idle packet ⁇ .
- decrea ⁇ e rate ⁇ step 622 is shown in more detail in Figure 8. Applications 301_i with rates greater than or equal to guaranteed rate Rgtd_i are considered as candidate ⁇ for decrea ⁇ ing the rates in step 622, i.e., applications 301_i in Clas ⁇ es 4 to 6.
- parameter exces ⁇ _i is generated by subtracting guaranteed rate Rgtd_i from new rate Rnew_i.
- Parameter excess_i is stored in memory.
- Parameterize excess step 801 transfer ⁇ proce ⁇ ing to additional application ⁇ ⁇ tep 802, which return ⁇ proce ⁇ ing to ⁇ tep 801 if additional applications with new rate Rnew_i greater than or equal to guaranteed rate Rgtd_i remain to be processed and otherwise to step 803. Thu ⁇ , upon completion of ⁇ tep 801, parameter exce ⁇ _i is stored in memory for each application with new rate Rnew_i greater than or equal to guaranteed rate Rgtd_i.
- parameter sum_excess is ⁇ tored a ⁇ zero.
- Accumulate excess step 803 retrieves parameter sum_exces ⁇ from memory 313 and then sequentially retrieves each of the stored parameters exce ⁇ _i and adds the retrieved parameter excess_i to the current value of parameter sum_exces ⁇ . The re ⁇ ulting value of parameter sum_exces ⁇ i ⁇ then ⁇ tored in memory 313.
- new rate Rnew_i refer ⁇ to the rate in the fir ⁇ t ⁇ tructure at the ⁇ tart of ⁇ tep 804.
- New rate Rnew_i i ⁇ proce ⁇ ed to generate a revised new rate Rrnew_i which is then ⁇ tored in the fir ⁇ t structure.
- step 805 transfer ⁇ proce ⁇ ing to step 407, and conversely to adjust buffer size 806.
- step 805 transfer ⁇ proce ⁇ ing to step 407, and conversely to adjust buffer size 806.
- adjust buffer size ⁇ tep 806 determine ⁇ a new effective buffer ⁇ ize.
- New effective buffer size "buf_sz_i" is equal to the product of revised new rate Rrnew_i and system delay time interval ⁇ _i .
- step 622 all applications with a rate R_i greater than or equal to guaranteed rate Rgtd_i were proces ⁇ ed.
- Thi ⁇ embodiment is illustrative only and is not intended to limit the invention to the particular ⁇ et of applications.
- an iterative process is used. Initially, only applications in Clas ⁇ 4 are proce ⁇ ed a ⁇ described above for step 622 and the decrea ⁇ e in channel capacity i ⁇ compared with the excess capacity detected in step 621. If the decrease in capacity is more than the exces ⁇ capacity, ⁇ tep 622 i ⁇ complete.
- modify rate step 403, a ⁇ de ⁇ cribed above is modified to reduce the complexity of the process at the cost of some performance efficiency. Specifically, the adju ⁇ t buffer ⁇ ize ⁇ tep ⁇ are eliminated. The adjustment of the buffer size is not done until after all the rate determinations are completed. Then, when new rates are available for all applications, statistical multiplexer 300 performs a buffer size check, i.e., the buffer fullness check, for all those application ⁇ with a new rate that i ⁇ le ⁇ than the old rate. If an application fail ⁇ to satisfy the buffer fullnes ⁇ requirement, the new rates for all the application are dropped and all the applications are assigned the old rates for the next period.
- a buffer size check i.e., the buffer fullness check
- a particular process is used to organize the packet schedule table.
- the process is first considered generally and then specific application ⁇ of the process are considered. This process is only illu ⁇ trative of one way to organize the packet ⁇ chedule table and i ⁇ not intended to limit the invention to this particular proces ⁇ .
- the process of thi ⁇ invention as ⁇ ign ⁇ each packet to the application that i ⁇ the mo ⁇ t de ⁇ erving at the time.
- figure of merit _i(n) is not used because it requires a divide and a multiply which is ⁇ low when implemented in hardware. Rather, an equivalent figure of merit is used that does not require the divide and so the packet ⁇ chedule table can be generated very quickly in hardware.
- new figure of merit ⁇ _i(n) i ⁇ obtained by multiplying figure of merit f_i(n) by the number E of packets in the window, i.e.,
- Additional packet check ⁇ tep 902 increment ⁇ current packet index n and then check ⁇ index n to determine whether index n i ⁇ greater than total number of packet ⁇ E. If index n i ⁇ le ⁇ than or equal to total number of packet ⁇ E, processing transfer ⁇ to additional application check ⁇ tep 903 and otherwise step 404 ends.
- Additional application check step 904 increments current application index i and then check ⁇ index i to determine whether index i i ⁇ greater than total number of applications L. If index i i ⁇ le ⁇ than or equal to total number of application ⁇ L, proce ⁇ ing tran ⁇ fer ⁇ to update figure of merit ⁇ tep 905 and otherwi ⁇ e to a ⁇ ign packet ⁇ tep 906. In update figure of merit ⁇ tep 905, figure of merit ⁇ j_i(n) is first generated. Next, number of packets m_i allocated over thi ⁇ window to application 301-i i ⁇ added to figure of merit rj_i(n) and processing returns to additional application step 904. Notice that this repetitive addition effectively forms the product n * (m_i) in figure of merit ry_i(n) .
- a ⁇ ign packet ⁇ tep 906 the application with the largest positive figure of merit ⁇ j_i(n), is assigned packet n, i.e., a pointer to the encoder for the application as ⁇ igned packet n i ⁇ put in the packet schedule table at location n.
- the pointer is an addre ⁇ that identifie ⁇ the encoder.
- the application with the largest number of packets m_i allocated over this window is as ⁇ igned packet n.
- the application with the ⁇ malle ⁇ t number of packets m_i allocated over this time interval i ⁇ a ⁇ igned packet n.
- other tie-breaking rule ⁇ could al ⁇ o be used. If no figure of merit ⁇ ?_i(n) is greater than zero, the packet is tagged as an idle packet. After packet n i ⁇ a ⁇ signed, total number of packets E i ⁇ ⁇ ubtracted from figure of merit ⁇ j_i(n) for the application a ⁇ igned packet n.
- an idle source can be defined with it ⁇ own allocation of packet ⁇ m_j and ⁇ o in each window m_j packets are transmitted as idle packets.
- processing Upon completion of as ⁇ ign packet ⁇ tep 906, processing returns to additional packet check step 902 and the proces ⁇ i ⁇ repeated a ⁇ de ⁇ cribed above until each of total number of packet ⁇ E ha ⁇ been assigned either to an application or as an idle packet.
- processing returns to additional packet check step 902 and the proces ⁇ i ⁇ repeated a ⁇ de ⁇ cribed above until each of total number of packet ⁇ E ha ⁇ been assigned either to an application or as an idle packet.
- Stati ⁇ tical multiplexer 300 has to schedule packets for applications operating with both variable and fixed rate ⁇ . Although variable rate application ⁇ demand a new packet ⁇ chedule table every window, ⁇ tati ⁇ tical multiplexer 300 mu ⁇ t ensure that the fixed rate applications also get their required share of packet ⁇ .
- the number of packets allocated over the window is m_i, where the number of packets allocated for a particular variable rate application 301-i is defined by multiplying the rate in packet ⁇ per second for application 301-i from the table generated in step 403 by the size of the window in ⁇ econd ⁇ and truncating the product to the largest integer value that is less than thi ⁇ product.
- the number of packets allocated over the window is m_j , where the number of packets allocated for a particular fixed rate application 301-i is defined by multiplying the rate in packets per second for application 301-j provided by ⁇ y ⁇ tem supervisor 340 in step 401 by the size of the window in ⁇ econd ⁇ and truncating the product to the large ⁇ t integer value that i ⁇ le ⁇ than thi ⁇ product.
- the number of packet ⁇ m_i allocated over the window for variable rate application 301-i i ⁇ determined directly in ⁇ tep 403 and the number of packet ⁇ m_j allocated over the window for fixed rate application 301-j i ⁇ provided directly by system supervisor 340.
- the number of packets required for each fixed rate application in a window i ⁇ combined with number of packets required for the variable rate applications and used in building the packet schedule table for the next window, in one embodiment. Thi ⁇ can be done during each window. In other word ⁇ , the packet schedule table is built for all the application ⁇ afre ⁇ h in each window.
- Thi ⁇ approach is preferred if only a few fixed rate applications, e.g., les ⁇ than five, are being handled by ⁇ tati ⁇ tical multiplexer 300.
- the number defined as "a few fixed rate applications” depend ⁇ on the processor utilized in statistical multiplexer 300. The greater the power of the processor, the larger the number of fixed rate applications that can be considered as a few fixed rate application ⁇ .
- typically the number of applications connected to a single ⁇ tatistical multiplexer 300 is quite large — typically of the order of several tens. Mo ⁇ t of these applications are fixed rate applications. In thi ⁇ ⁇ ituation, it i ⁇ gro ⁇ sly inefficient to update the packet schedule ⁇ , i.e., packet ⁇ chedule table ⁇ , frequently.
- stati ⁇ tical multiplexer In addition to the fact that the majority of the application ⁇ are fixed rate, some of the fixed rate applications may operate at very low rates so that these applications do not need packets in every window. For example, if there are ⁇ ix ⁇ tatistical multiplexing windows in a ⁇ econd and a fixed rate application requires only two packets per second, stati ⁇ tical multiplexer must keep track of which of the six windows to send a packet for this application. This add ⁇ to the overall complexity.
- packet ⁇ are allocated within the ⁇ tatic table i ⁇ not a critical part of the invention. Any number of ways can be u ⁇ ed. For example, all the variable rate applications can be considered as one pseudo-application.
- the packet scheduling is done for F+l applications, where F i ⁇ the number of fixed rate applications and the one is the pseudo-application.
- the positions in the static table assigned to the p ⁇ eudo-application have a null code inserted while the other position ⁇ have the pointer for the fixed rate application in ⁇ erted.
- the dynamic packet table i ⁇ built every window in build packet table ⁇ tep 404 u ⁇ ing the new rates for the variable rate applications.
- the number of packets in the dynamic packet table is not the total packet number N but rather the total number of packets allocated to all the variable rate application ⁇ in a ⁇ tati ⁇ tical multiplexer period.
- Proce ⁇ s 404 is utilized to generate the dynamic packet table using the redefined number of total packet ⁇ available in the window in ⁇ tead of total number of packet ⁇ N.
- the static table is configured once at configuration time with null codes inserted for the variable rate applications and the dynamic table is updated, i.e., populated, for the variable rate application ⁇ once per window.
- the u ⁇ e of the dynamic and ⁇ tatic table ⁇ i ⁇ given below in the description of Figure 18.
- a statistical multiplexing period i.e., a window
- the number of entries in the dynamic table in step 404 for the next window is not fixed and can change from window to window.
- a con ⁇ traint on the window ⁇ ize i ⁇ that the window must be large enough so that a predetermined number of distortion value ⁇ , e.g., three, are collected by ⁇ tati ⁇ tical multiplexer 300 from each variable rate encoder during the window.
- the predetermined number of di ⁇ tortion values collected can vary from window to window.
- the dynamic table is limited to no more than 192 entries.
- Thu ⁇ when all the entrie ⁇ in the dynamic table have been acce ⁇ ed, ⁇ tati ⁇ tical multiplexer 300 loop ⁇ from the la ⁇ t entry to the fir ⁇ t entry and begins sequentially acces ⁇ ing the entrie ⁇ again. Thu ⁇ , the 192 entry dynamic table is repetitively used until the end of the window.
- the switch that is de ⁇ cribed more completely below, from one dynamic table to another i ⁇ made during the time period when statistical multiplexer 300 has accessed the last entry in the table and i ⁇ looping back to the fir ⁇ t entry, i.e, after the switch, stati ⁇ tical multiplexer 300 acce ⁇ e ⁇ the fir ⁇ t entry of the other dynamic table.
- statistical multiplexer 300 passes the new rates u ⁇ ed to generate the new dynamic table in ⁇ tep 404 to each of encoders 302-i that are processing a variable rate application 301-i.
- the new variable rate for each encoder 302-i is written to the general communications table and communicated to the encoder using the proces ⁇ de ⁇ cribed above. All of the rate decreases are sent fir ⁇ t and a timer i ⁇ ⁇ tarted. In thi ⁇ embodiment, the timer i ⁇ a thirty-four milli ⁇ econd timer. The timer i ⁇ u ⁇ ed to determine the completion of one picture period after completion of the sending of the rate decrease ⁇ .
- Switch rate step 406 is constrained by hardware in encoder 302-i. Typically, it is not po ⁇ ible to alter the internal rate control of encoder 302-i once encoder 302-i ha ⁇ begun encoding a picture. Therefore, the following di ⁇ cussion of switch rate ⁇ tep 406 assumes that a rate switch in encoder 302-i occurs at the first picture boundary following receipt of the new rate by encoder 302-i. If an encoder 302-i requires more time than the fir ⁇ t picture boundary, the time periods in the following discu ⁇ sion must be lengthened appropriately. Similarly, if an encoder 302-i has the capability to implement a new rate within a picture, the time periods in the following di ⁇ cu ⁇ ion could be ⁇ hortened.
- the required modification ⁇ ba ⁇ ed on performance of encoder 302-i will be apparent to those skilled in the art.
- the encoders can change rate ⁇ at any time and not ju ⁇ t at frame boundarie ⁇ , for example, the ⁇ witching interval, as defined below, can be reduced to zero.
- a ⁇ ⁇ witching interval 1020 (Fig. 10) .
- tick mark ⁇ 1001 to 1010 repre ⁇ ent frame boundries which in the case of NTSC input have a frequency of 30 Hz, actually 29.97 Hz.
- Window 1050 start ⁇ at arrow 1051 and end ⁇ at arrow 1052.
- Modify rates step 403 is completed over time interval 1060.
- Build packet table step 404 is completed over time interval 1070 and pas ⁇ rate ⁇ step 405 over time interval 1080.
- the length of switching interval 1020 in thi ⁇ case, is 2/29.97 ⁇ econd ⁇ .
- the encoder compresse ⁇ each frame in 1/29.97 ⁇ econd ⁇ and idle ⁇ at certain other times to synchronize with the input data rate.
- Statistical multiplexer 300 operates in a cyclic manner with the events within period 1050 being continually repeated.
- the length of period, a ⁇ shown in Figure 10 is not indicative of any real time performance. Indeed, the only conclusion that should be drawn from this figure (and the next) regarding timing is that the bulk of the time during a statistical multiplexer period is ⁇ pent in building the packet schedule table and that the other aspect ⁇ of thi ⁇ invention are executed in a relatively ⁇ hort time.
- the actual time required to execute each proce ⁇ of this invention is dependent on the computational power available in ⁇ tati ⁇ tical multiplexer 300. However, note that there i ⁇ a minimum value beyond which the period cannot be decrea ⁇ ed because, at the least, the period ⁇ hould include switching interval 1020, which is 2/29.97 seconds long.
- di ⁇ tortion D_i was as ⁇ umed known.
- di ⁇ tortion D_i must fir ⁇ t be defined and then data generated to determine distortion D-i as defined for each application.
- distortion D_i ⁇ hould be ⁇ uch that it incorporate ⁇ the characteri ⁇ tic ⁇ of the Human Vi ⁇ ual Sy ⁇ tem (HVS) .
- HVS Human Vi ⁇ ual Sy ⁇ tem
- Low ⁇ patial activity mean ⁇ relatively flat area ⁇ in a frame.
- Low temporal activity mean ⁇ relatively le ⁇ frame-to-frame movement.
- the ⁇ ame "amount" of di ⁇ tortion artifact is more easily vi ⁇ ible to the human eye if the di ⁇ tortion occurred either in relatively flat region ⁇ of an image, or during a relatively still portion of a video sequence than if the ⁇ ame amount of di ⁇ tortion occurred in area ⁇ of high ⁇ patial detail ⁇ of the image or during high motion of a video ⁇ equence.
- the word “amount” refer ⁇ to some absolute error measurement between the recon ⁇ tructed and original video frames, e.g., a mean-squared-error (m ⁇ e) measurement.
- di ⁇ tortion D_i preferably take ⁇ into account the .spatial and temporal characteristic ⁇ of a video sequence.
- SA Frame Spatial Activity
- TA Temporal Activity
- Priority number P was defined above, and that definition is incorporated herein by reference.
- the particular method ⁇ u ⁇ ed to determine the interlace factor, frame ⁇ patial activity, and temporal activity a ⁇ well as the expres ⁇ ion for di ⁇ tortion are not critical to the invention.
- the principles of this invention can be applied to any compres ⁇ ion technology and the particular parameter u ⁇ ed to mea ⁇ ure quality can be different from technology to technology and even within a given technology. Therefore, the following example ⁇ of the mean-squared error, interlace factor, frame spatial activity and temporal activity are illustrative only and are not intended to limit the invention to the particular examples.
- each encoder 302-i generates mean-squared error mse once per frame and that value is passed to stati ⁇ tical multiplexer 300.
- the mean-squared error is not used, but rather an e ⁇ timate of the mean- ⁇ quared error that i ⁇ generated by the encoder that i ⁇ provided by C-Cube Micro ⁇ y ⁇ tems of Milpitas, CA is u ⁇ ed.
- Interlace factor IF in di ⁇ tortion D i ⁇ u ⁇ ed to normalize the effect ⁇ of interlacing in video sequence ⁇ Typical video encoder ⁇ compress a sequence of picture ⁇ without regard to the field/frame structure of the sequence. However, the characteri ⁇ tic of frame ⁇ originating from a video camera (typically at 50 or 60 fields/second) is different from that originating from a film source and converted to digital format (as ⁇ uming that any 3:2 pulldown operations have been reversed). The former has what i ⁇ commonly called "interlace artifacts" while the latter does not. Interlace artifacts are nothing more than motion between the two fields of a frame which i ⁇ introduced becau ⁇ e the two field ⁇ were captured at different time instants.
- interlace factor IF i ⁇ generated using two statistic ⁇ , i.e., a "Difference activity" DA and an "Intra activity” IA.
- Difference activity DA i ⁇ defined a ⁇ the average ab ⁇ olute pixel-to-pixel difference between the two fields belonging to a frame, i.e.,
- a difference accumulator generate ⁇ a difference mea ⁇ ure between every adjacent odd-even line pair belonging to the ⁇ ame field.
- difference mea ⁇ ure "intra activity IA" i ⁇ obtained by ⁇ umming the ab ⁇ olute difference ⁇ between pixel pair ⁇ belonging to the even and odd lines from the same field. Pixel differences are obtained between the following line pairs (0,1), (2,3), (4,5), ...
- the pixel values for even numbered lines are passed to a delay line and then to the differential accumulator, while the pixel values for odd number lines are pas ⁇ ed directly to the differential accumulator.
- both difference activity DA and intra activity IA are generated in hardware. Notice that since the ratio of the two ⁇ tati ⁇ tics is u ⁇ ed, the hardware doe ⁇ not need to use number of pixels nf. Hence, both ⁇ tatistics are implemented using a differential accumulator, as de ⁇ cribed above.
- temporal activity TA i ⁇ obtained from v a ⁇
- Any other function may al ⁇ o be u ⁇ ed a ⁇ long a ⁇ the function i ⁇ ba ⁇ ed on a frame to frame pixel difference.
- both v and V are computed in the encoder and tran ⁇ ferred to ⁇ tati ⁇ tical multiplexer 300 once per frame.
- FIG. 12 A more detailed block diagram of one embodiment of statistical multiplexer 300 is presented in Fig. 12.
- Statistical multiplexer 300 communicate ⁇ with encoder ⁇ 302-1 to 302-L and collect ⁇ compressed application data for transfer to communication channel 330 using application control bu ⁇ 360.
- memory 313 (Fig. 3) include ⁇ a plurality of memorie ⁇ 1201 to 1203 and memorie ⁇ 1205 to 1207, each of which are de ⁇ cribed more completely below.
- statistical multiplexer 300 support ⁇ four di ⁇ tinct application control bu ⁇ e ⁇ through application control bu ⁇ interface circuit 1210. Multiple application control bu ⁇ e ⁇ allow ⁇ redundant application ⁇ 301-i to connect to statistical multiplexer 300 over redundant application control buses 360. If one of the redundant applications fails in a mode that corrupts its application control bus, another of the redundant application ⁇ can ⁇ till ⁇ end data to stati ⁇ tical multiplexer 300 over one of the other three application control bu ⁇ e ⁇ .
- All four application control bu ⁇ e ⁇ are driven in parallel with each application control bu ⁇ having it's own set of drivers. Signal ⁇ received from all four application control bu ⁇ e ⁇ are logically "ORed" together in interface circuit 1210. Any application control bu ⁇ can be disabled if a problem occurs with that application control bus.
- the function ⁇ de ⁇ cribed below of application control bu ⁇ ⁇ tate machine 311 are implemented in a programmable gate array.
- Application control bu ⁇ ⁇ tate machine 311, hereinafter ACB state machine 311 controls application control bu ⁇ 360 through interface circuit 1210 and ⁇ o minimize ⁇ the effect of bu ⁇ operations on microproces ⁇ or 312, which in one embodiment is a Motorola 68302 microprocessor.
- ACB ⁇ tate machine 311 i ⁇ controlled by table ⁇ ⁇ tored in memorie ⁇ 1201 to 1203 and 1207 and registers in state machine 311, both of which are configured by microproces ⁇ or 312.
- the ACB ⁇ tate machine regi ⁇ ter ⁇ that are written to by microproce ⁇ or 312 are regi ⁇ ter ⁇ ACBSMCtr, ACBSMMa ⁇ k, and ACBSMClr.
- the ⁇ e are eight bit regi ⁇ ters and the bit definitions for registers ACBSMCtr and ACBSMMask are given in Table ⁇ III and IV. Writing to regi ⁇ ter ACBMSMCLr clear ⁇ pending interrupts even if an interrupt is masked.
- ACB state machine 311 When bit Reset is low, ACB state machine 311 is reset. ACB state machine 311 can not operate when bit Reset is low. Microproces ⁇ or 312 must set bit Reset to zero and then to one to affect a re ⁇ et of ACB ⁇ tate machine 311.
- Bit StComm i ⁇ set by microproces ⁇ or 312 when microproce ⁇ or 312 ha ⁇ programmed one of the general communications table and is ready for ACB state machine 311 to make a transfer. Bit StComm i ⁇ cleared when ACB ⁇ tate machine 311 reache ⁇ an entry in the general communications table that is off.
- Bit StFIFO is set by microprocessor 312 when the new primary table has been generated, and begun the DMA transfer of this table into FIFO 1201.
- ACB state machine 311 can not perform the primary status message cycles described below, but ABC state machine 311 can perform the other application bus message cycles, described below.
- Bits reserved must always be set low.
- Bit NeedSel define ⁇ which of the two ⁇ econdary table ⁇ in memory 1202 to u ⁇ e, a ⁇ de ⁇ cribed below.
- Bit NeedSel i ⁇ ⁇ et low ACB state machine 311 bit uses secondary table one.
- Bit SecSel is not used. Bit ComSel defines which general communication table in memory 1204 to use. When ComSel is set low ACB state machine 311 uses general bit communication table one.
- VarMa ⁇ k disables the interrupt normally generated when ACB state machine 311 reache ⁇ the end of the ⁇ econdary table. Clearing bit EmtyFIFOMa ⁇ k di ⁇ able ⁇ the interrupt normally generated when FIFO 1201 become ⁇ empty.
- Clearing bit ACBTimeMa ⁇ k di ⁇ ables the interrupt generated when ACB time counter 1242 times out. In this embodiment, this interrupt is not used and so this bit is set low.
- Bit AppBus enables application buse ⁇ four to one re ⁇ pectively. When a particular bit i ⁇ ⁇ et, the corre ⁇ ponding bus is enabled.
- Application control bus 360 includes an eight-bit parallel addre ⁇ /data bu ⁇ ADDR/DATA, an address strobe line AS, a data strobe line DS, a clock line CLOCK, a data clock or return clock line DTACLK, and an enable signal line ENABLE.
- the signals on these lines are differential TTL ⁇ ignal level ⁇ in this embodiment.
- the application control bu ⁇ 360 al ⁇ o include ⁇ reference clock and reference count line ⁇ that carry differential ECL level ⁇ ignal ⁇ in thi ⁇ embodiment.
- Transfer of information on application control bus 360 is divided into packet time intervals, where a packet time interval is defined a ⁇ the time required to transmit one packet of data over communication channel 330.
- the time interval between the rising edges of two consecutive pul ⁇ e ⁇ 1301 and 1302, i.e., packet ⁇ trobe ⁇ , on packet ⁇ trobe line PS (Fig. 13) define ⁇ the packet time interval.
- communication channel 330 provide ⁇ an external clock signal EXCLK.
- External clock signal EXCLK is divided down by statistical multiplexer 300 to generate the packet strobes on line PS.
- Packet strobes are very accurate, very regular pulses.
- Data transfer cycle interval ADB is used by statistical multiplexer 300 when collecting compres ⁇ ed application data for transfer to communication channel.
- Mes ⁇ age cycle interval ACB i ⁇ used by statistical multiplexer 300 for collecting information from encoders 302-1 to 302-L, and for distributing new rates to each of encoders 302-i that proces ⁇ variable rate applications.
- Control and data tran ⁇ fer cycle ⁇ within intervals ACB and ADB are time-multiplexed on data bus DATA/ADR within application control bus 360.
- a plurality of mes ⁇ age ⁇ cycles occur within interval ACB followed by one data packet transfer cycle within interval ADB.
- the three me ⁇ sage cycle ⁇ and their functions are further defined below.
- At least one mes ⁇ age cycle must precede each data transfer cycle to enable the data tran ⁇ fer.
- the number of message cycle ⁇ that may occur between tran ⁇ fer cycle ⁇ is limited by the required data transfer rate. With four me ⁇ age cycles between data tran ⁇ fer ⁇ , and u ⁇ ing a clock rate of approximately 12.5 MHz, the maximum transfer rate of application packet data on application control bus i ⁇ 60 Mbit ⁇ / ⁇ ec.
- Me ⁇ age cycle time interval ACB is determined by an ACB time counter 1242 (Fig. 12) .
- ACB time counter 1242 i ⁇ started in respon ⁇ e to a packet ⁇ trobe on line PS.
- ACB time counter 1242 then count ⁇ a predetermined number of application control bu ⁇ clock tick ⁇ , e.g., 40 bu ⁇ clock ticks, and generate ⁇ an output ⁇ ignal.
- Application bu ⁇ clock CLOCK (Fig. 14) run ⁇ continuou ⁇ ly.
- ACB state machine 311 asserts and deasserts signal ENABLE (Figs. 13 and 14) synchronous with application bus clock CLOCK.
- Signal ENABLE stays active for the number of application control bus clock ticks equal to the number of bytes in a data packet.
- ADB time counter 1241 start ⁇ to count the number of application control bu ⁇ clock ticks upon signal ENABLE going active.
- ADB time counter 1241 ha ⁇ counted the requi ⁇ ite number of clock tick ⁇ , a signal is generated to ACB state machine 311, which in turn drives ⁇ ignal ENABLE inactive.
- the enabled application drive ⁇ data on bus DATA/ADR for the number of clock cycles that ⁇ ignal ENABLE i ⁇ a ⁇ erted.
- ⁇ tati ⁇ tical multiplexer 300 control ⁇ the number of byte ⁇ application 301-i ⁇ ends on application control bus 360 in any one data transfer.
- Application 301-i drive ⁇ data onto bu ⁇ DATA/ADR and a clock signal on line DTACLK synchronou ⁇ ly.
- Application 301-i mu ⁇ t drive the number of byte ⁇ on bus DATA/ADR as determined by the time interval signal ENABLE i ⁇ active.
- Thi ⁇ mean ⁇ the enable latency and disable latency must be the ⁇ ame for any application, but the latency time may vary from one application to the next.
- ACB state machine 311 drives the signal on line ENABLE inactive and ⁇ tati ⁇ tical multiplexer 300 enable ⁇ the next data transfer by appropriate mes ⁇ age cycle ⁇ . Specifically, ⁇ tati ⁇ tical multiplexer 300 wait ⁇ at lea ⁇ t time tEAS (Fig. 14 and Table V) before a ⁇ erting addre ⁇ ⁇ trobe signal AS.
- Timing relationships between the signal ⁇ on lines CLOCK, ENABLE, DTACLK and bus DATA/ADR is pre ⁇ ented in Figure 15.
- Table V explains the interpretation of the set up time tSU, hold time tH and time off tOFF.
- Time tDSE (Fig. 14) is the minimum time ⁇ tati ⁇ tical multiplexer 300 wait ⁇ after data ⁇ trobe ⁇ ignal DS i ⁇ driven inactive.
- Statistical multiplexer 300 count ⁇ the number of byte ⁇ sent over application control bus 360 with ADB byte counter 1240.
- ADB byte counter 1240 is a down counter that generates a signal to ACB state machine 311 if and when the correct number of bytes have been received.
- encoder 302-i When an application 301-i is not driving line DTACLK, the driver for thi ⁇ line i ⁇ set to a high impedance state by encoder 302-i. To avoid glitches on line DTACLK, encoder 302-i takes the driver to a logic zero state at least for time tOFF before disabling or enabling the driver. To di ⁇ able the driver, encoder 302-i fir ⁇ t put ⁇ a logic zero on line DTACLK and then di ⁇ able ⁇ the driver, i.e., the driver i ⁇ set to the high impedance state. Bu ⁇ termination ⁇ hold bu ⁇ 360 in the logic zero ⁇ tate. When the next application 301-j enables its driver, there is not a transition on bu ⁇ 360 because the drivers are enabled in the logic zero ⁇ tate.
- ACB state machine 311 controls application control bus 360 using information ⁇ tored in table ⁇ in memory 311.
- ACB ⁇ tate machine 311 causes the appropriate addres ⁇ generator 1222 to 1223 to address an entry in the appropriate table that contains information to control operation of application control bus 360 or to enable tran ⁇ fer of information from primary FIFO 1201 to bus 360. Entries in each of the stored tables control ⁇ one of the me ⁇ age cycle ⁇ ⁇ hown in Figure 13.
- the po ⁇ ible values for field Type are:
- Bit BC i ⁇ ⁇ et to broadca ⁇ t to all encoder ⁇ on one of the application bu ⁇ e ⁇ when doing general communication ⁇ designate which application bu ⁇ , 0, 1, 2, or 3, to broadca ⁇ t the data byte.
- the two lea ⁇ t ⁇ ignificant bit ⁇ on data bus DATA/ADR are driven a ⁇ logic zero ⁇ .
- the re ⁇ erved bit ⁇ are always ⁇ et to a logic zero.
- Each encoder 302-i is addressed by an application addre ⁇ , that i ⁇ ⁇ ometimes referred to as a service channel identification SCID.
- Addre ⁇ es on application control bus 360 are given by the second and third byte ⁇ in each table entry, with the mo ⁇ t significant byte first.
- the twelve mo ⁇ t significant bits (bit ⁇ 15-4) are the address for encoder 302-i.
- Other embodiments may use a different number of bits to addre ⁇ encoder 302-i.
- the next three bit ⁇ (bit ⁇ 3-1) are the addre ⁇ for ⁇ pecific registers within encoder 302-i.
- the last bit, i.e, the least significant bit, indicates read or write.
- a byte i ⁇ written to an application 301-i during a me ⁇ age cycle the information contained in the fourth byte of the entry table is provided to application 301-i. If a byte is read from an encoder 302-i, the byte is passed to microproces ⁇ or 312 by encoder 302-i writing to thi ⁇ location.
- Reads and writes over bus DATA/ADR during a mes ⁇ age cycle to the fourth byte in a table are enabled by a pul ⁇ e on data ⁇ trobe line DS of application control bus 360. (Figs. 16 and 17.)
- data is latched by addres ⁇ ed encoder 302-i on the trailing edge of the pulse on data strobe line DS.
- ACB ⁇ tate machine latches data on the trailing edge of the pulse on data strobe line DS. When reading, there is no hand ⁇ hake for indicating that the read data i ⁇ valid.
- Thi ⁇ mean ⁇ data mu ⁇ t be placed on application control bus 360 within a specified time of the signal on data strobe line DS being asserted.
- the various timing characteristics between the signal ⁇ on line ⁇ AS, DS and bus DATA/ADDR, as shown in Figs. 16 and 17, are defined in Table VII.
- Read data strobe nsec ⁇ ignal DS on read pulse width allows the application time to find the data and put it on bus DATA/ADR within bus 360.
- tsu Min 40 nsec Addres ⁇ or data is
- the primary table which is defined at configuration time and is ⁇ tored in memory 1207, divide ⁇ a predetermined time interval into packet time ⁇ .
- Each packet time in the predetermined time interval i ⁇ allocated an entry into the primary table.
- Each entry in the primary table i ⁇ an address that specifie ⁇ which application 301-i i ⁇ allocated this packet time. Since the primary table allocates bandwidth at a resolution down to one packet per second, the primary table, in one embodiment, has (39 Mbits/sec) , the statistical multiplexer output rate, times (1/1024 packet/bits) or 29,297 entries.
- ⁇ tati ⁇ tical multiplexer 300 shares respon ⁇ ibility with ⁇ y ⁇ tem ⁇ upervi ⁇ or 340 for building the primary table.
- Statistical multiplexer 300 uses one primary table entry every packet time and so the pointer to the primary table i ⁇ indexed once for every packet period. Thu ⁇ , packet time interval ⁇ over communication channel 330 are offered to applications 301-1 to 301-L according to the information in the primary table.
- Stati ⁇ tical multiplexer 300 actually provide ⁇ for two primary table ⁇ . Thi ⁇ allow ⁇ ⁇ tati ⁇ tical multiplexer 300 to build a "next" primary table and then switch to the next primary table, as described above.
- the primary table is kept in DRAM 1207.
- a DMA transfer is used to move the addres ⁇ ed entry in the primary table from memory 1207 to primary FIFO 1201.
- the DMA controller i ⁇ redirected to the fir ⁇ t entry of the primary table.
- Thi ⁇ cycle i ⁇ continued until a new primary table is built in another section of DRAM. The DMA controller i ⁇ directed to this new primary table when desired.
- ACB state machine 311 reads the control word, i.e., the first byte, of the primary table entry pointed by the primary table pointer. If bit Off i ⁇ set, the rest of the control word is ignored and the rest of this primary table entry is read and trashed and an entry in the secondary table is examined, as de ⁇ cribed below.
- ACB ⁇ tate machine 311 perform ⁇ a read at the encoder' ⁇ addre ⁇ ⁇ pecified in the next two byte ⁇ of the entry.
- the data read at thi ⁇ addre ⁇ is a statu ⁇ that tell ⁇ ⁇ tatistical multiplexer 300 if the addres ⁇ ed encoder want ⁇ thi ⁇ packet's bandwidth. If the addressed encoder declines this packet's bandwidth, the primary table entry's data byte i ⁇ read and tra ⁇ hed.
- the allocate bus mes ⁇ age cycle provide ⁇ directions to the addressed encoder to enable the encoder to use thi ⁇ packet' ⁇ bandwidth.
- the secondary table is used to allocate packets that are not allocated by the primary table. As indicated above, in one embodiment, only fixed rate applications are allocated in the primary table, and variable rate application ⁇ are allocated in the ⁇ econdary table. Thus, when bit Off in the control word of the primary table i ⁇ ⁇ et, the secondary table is acce ⁇ ed.
- ACB ⁇ tate machine 311 read ⁇ the control byte in the addre ⁇ ed entry of the ⁇ econdary table. At initialization, a pointer is positioned at the first entry in the secondary table and after an entry i ⁇ used, the pointer is incremented by ACB state machine 311. Specifically, ACB state machine 311 acces ⁇ es the entries in the secondary table cyclically. ACB state machine 311 use ⁇ a counter to generate a pointer that cycle ⁇ through the entrie ⁇ .
- null code check 1803 passes control to step 1805 and ACB state machine 311 checks the secondary table to see which variable rate application i ⁇ allocated the current packet. After offering the packet to the variable rate application, the pointer ⁇ for both the primary and secondary tables are advanced by one (modulo their respective total number of entries) .
- Thi ⁇ table is built by microprocessor 312 and kept in shared memory 1203.
- ACB state machine 311 accesses the entries in the general communications table cyclically by using a counter to generate a pointer that cycles through the entrie ⁇ . ACB state machine 311 deletes the general communication ⁇ me ⁇ age cycle whenever an entry ha ⁇ bit Off set. The general communications table entry pointer remains at this entry until microproces ⁇ or 312 write ⁇ to the ACB ⁇ tate machine control regi ⁇ ter to send more general communication byte ⁇ . The ACB ⁇ tate machine generate ⁇ an interrupt when it reaches a general communications table entry with bit Off set.
- ACB ⁇ tate machine 311 In the general communication ⁇ me ⁇ age cycle, ACB ⁇ tate machine 311 either read ⁇ a byte from the addres ⁇ ed application and puts the byte into the data byte field of the general communication table entry, or reads the general communication table entry data byte field and writes this byte to the application.
- data ⁇ trobe ⁇ ignal DS may be a ⁇ erted multiple time ⁇ .
- Thi ⁇ allow ⁇ reading and writing from regi ⁇ ters with more than one 8-bit byte.
- Multiple-byte registers use subsequent data ⁇ trobes for succe ⁇ ive byte ⁇ of the register, beginning with the least ⁇ ignificant byte.
- Thu ⁇ to write to a 16-bit register, the bus master a ⁇ ert ⁇ data ⁇ trobe ⁇ ignal DS twice, the fir ⁇ t time with the least significant byte of data, and the second with the most ⁇ ignificant byte of data. Reading the regi ⁇ ter i ⁇ done in the ⁇ ame way.
- Registers are organized so that the bus master may optionally read or write only the lea ⁇ t ⁇ ignificant byte( ⁇ ) . There i ⁇ technically no limit to the number of byte ⁇ a regi ⁇ ter may have. Thu ⁇ , a memory could be treated as a register, doing multiple byte reads or writes.
- Microproce ⁇ or 312 in ⁇ tatistical multiplexer 300 communicates with system supervi ⁇ or 340 over a ⁇ y ⁇ tem ⁇ upervi ⁇ or bu ⁇ .
- statistical multiplexer 300 is configured and controlled by system supervisor 340.
- the information is passed between statistical multiplexer 300 and sy ⁇ tem supervisor 340 over using High Level Data Link Communication protocols.
- the important aspect is the information provided by sy ⁇ tem ⁇ upervisor 340 to statistical multiplexer 300.
- stati ⁇ tical multiplexer 300 ⁇ y ⁇ tem ⁇ upervi ⁇ or tells ⁇ tati ⁇ tical multiplexer 300 which application ⁇ 301-i to 301-L are in the ⁇ ystem and how applications 301-2 to 301-L are configured.
- System supervi ⁇ or 340 al ⁇ o provide ⁇ a method of updating statistical multiplexer software.
Abstract
Description
Claims
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE69535803T DE69535803D1 (en) | 1994-05-20 | 1995-05-19 | METHOD FOR DYNAMICALLY ASSIGNING COMMUNICATION CHANNEL BAND WIDTH BETWEEN COMPETITIVE APPLICATIONS |
CA002190115A CA2190115C (en) | 1994-05-20 | 1995-05-19 | Method for dynamically allocating communication channel bandwidth between competing applications |
JP53037595A JP3233408B2 (en) | 1994-05-20 | 1995-05-19 | Statistical multiplexing method for multiple data streams |
EP95919221A EP0772927B1 (en) | 1994-05-20 | 1995-05-19 | Method for dynamically allocating communication channel bandwidth between competing applications |
AU25166/95A AU2516695A (en) | 1994-05-20 | 1995-05-19 | Method for dynamically allocating communication channel bandwidth between competing applications |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/246,442 US5506844A (en) | 1994-05-20 | 1994-05-20 | Method for configuring a statistical multiplexer to dynamically allocate communication channel bandwidth |
US246,442 | 1994-05-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1995032565A1 true WO1995032565A1 (en) | 1995-11-30 |
Family
ID=22930706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1995/006136 WO1995032565A1 (en) | 1994-05-20 | 1995-05-19 | Method for dynamically allocating communication channel bandwidth between competing applications |
Country Status (8)
Country | Link |
---|---|
US (1) | US5506844A (en) |
EP (2) | EP1542383A1 (en) |
JP (1) | JP3233408B2 (en) |
KR (1) | KR100382690B1 (en) |
AU (1) | AU2516695A (en) |
CA (1) | CA2190115C (en) |
DE (1) | DE69535803D1 (en) |
WO (1) | WO1995032565A1 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000013419A2 (en) * | 1998-08-27 | 2000-03-09 | General Instrument Corporation | Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals |
EP1098521A1 (en) * | 1999-11-05 | 2001-05-09 | THOMSON multimedia | Process for allocating bandwidth to data streams in a broadcasting network |
US6381254B1 (en) | 1996-11-08 | 2002-04-30 | Matsushita Electric Industrial Co., Ltd. | Moving image encoding device/method, moving image multiplexing device/method, and image transmission device |
WO2006094001A2 (en) * | 2005-03-01 | 2006-09-08 | Qualcomm Incorporated | Region-of-interest coding with background skipping for video telephony |
WO2006093999A2 (en) * | 2005-03-01 | 2006-09-08 | Qualcomm Incorporated | Region-of-interest coding in video telephony using rho domain bit allocation |
WO2006094035A1 (en) * | 2005-03-01 | 2006-09-08 | Qualcomm Incorporated | Content-adaptive background skipping for region-of-interest video coding |
WO2008133677A1 (en) * | 2007-04-23 | 2008-11-06 | Qualcomm Incorporated | Methods and systems for quality controlled encoding |
US7724972B2 (en) | 2005-03-01 | 2010-05-25 | Qualcomm Incorporated | Quality metric-biased region-of-interest coding for video telephony |
Families Citing this family (302)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6181703B1 (en) | 1995-09-08 | 2001-01-30 | Sprint Communications Company L. P. | System for managing telecommunications |
US6633561B2 (en) | 1994-05-05 | 2003-10-14 | Sprint Communications Company, L.P. | Method, system and apparatus for telecommunications control |
US6031840A (en) | 1995-12-07 | 2000-02-29 | Sprint Communications Co. L.P. | Telecommunications system |
US6314103B1 (en) | 1994-05-05 | 2001-11-06 | Sprint Communications Company, L.P. | System and method for allocating bandwidth for a call |
US6172977B1 (en) | 1994-05-05 | 2001-01-09 | Sprint Communications Company, L. P. | ATM direct access line system |
US6430195B1 (en) | 1994-05-05 | 2002-08-06 | Sprint Communications Company L.P. | Broadband telecommunications system interface |
RU2138919C1 (en) | 1994-05-05 | 1999-09-27 | Спринт Комьюникейшнз Компани Л.П. | Method, system and device to control telephone communication |
US5926482A (en) | 1994-05-05 | 1999-07-20 | Sprint Communications Co. L.P. | Telecommunications apparatus, system, and method with an enhanced signal transfer point |
US5703876A (en) * | 1994-05-05 | 1997-12-30 | Christie; Joseph Michael | ATM transport system |
US5991301A (en) | 1994-05-05 | 1999-11-23 | Sprint Communications Co. L.P. | Broadband telecommunications system |
US5920562A (en) | 1996-11-22 | 1999-07-06 | Sprint Communications Co. L.P. | Systems and methods for providing enhanced services for telecommunication call |
US6023474A (en) | 1996-11-22 | 2000-02-08 | Sprint Communications C.O.L.P. | Broadband telecommunications system interface |
TW374283B (en) * | 1994-05-25 | 1999-11-11 | Sony Corp | A multiple coding device |
US5625830A (en) * | 1994-08-12 | 1997-04-29 | International Business Machines Corp. | Reduced circuit, high performance, binary select encoder network |
WO1996020575A2 (en) * | 1994-12-28 | 1996-07-04 | Philips Electronics N.V. | Buffer management in variable bit-rate compression systems |
US5854898A (en) | 1995-02-24 | 1998-12-29 | Apple Computer, Inc. | System for automatically adding additional data stream to existing media connection between two end points upon exchange of notifying and confirmation messages therebetween |
DE59608561D1 (en) * | 1995-04-13 | 2002-02-14 | Siemens Ag | METHOD AND DEVICE FOR STORING, SEARCHING AND PLAYING INFORMATION FROM A MULTIMEDIA ELECTRONIC POSTSYSTEM |
US5751694A (en) * | 1995-05-22 | 1998-05-12 | Sony Corporation | Methods and apparatus for synchronizing temporally related data streams |
US5940738A (en) | 1995-05-26 | 1999-08-17 | Hyundai Electronics America, Inc. | Video pedestal network |
US5793410A (en) * | 1995-05-26 | 1998-08-11 | Hyundai Electronics America | Video pedestal network |
US5691986A (en) * | 1995-06-07 | 1997-11-25 | Hitachi America, Ltd. | Methods and apparatus for the editing and insertion of data into an encoded bitstream |
US5734843A (en) * | 1995-06-07 | 1998-03-31 | Advanced Micro Devices Inc. | Reverse data channel as a bandwidth modulator |
GB9517130D0 (en) * | 1995-08-22 | 1995-10-25 | Nat Transcommunications Ltd | Statistical multiplexing |
US6075768A (en) * | 1995-11-09 | 2000-06-13 | At&T Corporation | Fair bandwidth sharing for video traffic sources using distributed feedback control |
JPH09135263A (en) * | 1995-11-13 | 1997-05-20 | Hitachi Ltd | Dynamic assignment system for communication band |
US5956088A (en) * | 1995-11-21 | 1999-09-21 | Imedia Corporation | Method and apparatus for modifying encoded digital video for improved channel utilization |
US5862140A (en) * | 1995-11-21 | 1999-01-19 | Imedia Corporation | Method and apparatus for multiplexing video programs for improved channel utilization |
US5877812A (en) * | 1995-11-21 | 1999-03-02 | Imedia Corporation | Method and apparatus for increasing channel utilization for digital video transmission |
US6081529A (en) * | 1995-11-22 | 2000-06-27 | Sprint Communications Company, L. P. | ATM transport system |
US5686963A (en) * | 1995-12-26 | 1997-11-11 | C-Cube Microsystems | Method for performing rate control in a video encoder which provides a bit budget for each frame while employing virtual buffers and virtual buffer verifiers |
WO1997028622A1 (en) | 1996-02-02 | 1997-08-07 | Sprint Communications Company, L.P. | Atm gateway system |
US5870550A (en) * | 1996-02-26 | 1999-02-09 | Network Engineering Software | Web server employing multi-homed, moldular framework |
US8117298B1 (en) | 1996-02-26 | 2012-02-14 | Graphon Corporation | Multi-homed web server |
US5805600A (en) * | 1996-03-06 | 1998-09-08 | Adtran, Inc. | Mechanism for providing full utilization of high data rate serial communication link conveying data sourced from data terminal equipment and compressed by high compression ratio data compression-protocol engine |
US6041345A (en) * | 1996-03-08 | 2000-03-21 | Microsoft Corporation | Active stream format for holding multiple media streams |
US5864678A (en) * | 1996-05-08 | 1999-01-26 | Apple Computer, Inc. | System for detecting and reporting data flow imbalance between computers using grab rate outflow rate arrival rate and play rate |
US5940393A (en) | 1996-05-28 | 1999-08-17 | Sprint Communications Co. L.P. | Telecommunications system with a connection processing system |
US6101542A (en) * | 1996-07-19 | 2000-08-08 | Hitachi, Ltd. | Service management method and connection oriented network system using such management method |
JP3216534B2 (en) | 1996-08-29 | 2001-10-09 | 三菱電機株式会社 | Multiplexing method |
US5805595A (en) * | 1996-10-23 | 1998-09-08 | Cisco Systems, Inc. | System and method for communicating packetized data over a channel bank |
US6212208B1 (en) * | 1996-11-11 | 2001-04-03 | Matsushita Electric Industrial Co., Ltd. | Method for coding and multiplexing multimedia data, apparatus for coding and multiplexing multimedia data, record media containing program for coding and multiplexing multimedia data |
US6253247B1 (en) * | 1996-11-21 | 2001-06-26 | Ragula Systems | System and method for transmitting a user's data packets concurrently over different telephone lines between two computer networks |
US6002689A (en) | 1996-11-22 | 1999-12-14 | Sprint Communications Co. L.P. | System and method for interfacing a local communication device |
US6115380A (en) | 1996-11-22 | 2000-09-05 | Sprint Communications Co., L.P. | Broadband telecommunications system |
CA2271926C (en) | 1996-11-22 | 2005-10-11 | Sprint Communications Company, L.P. | System and method for transporting a call in a telecommunication network |
US6014378A (en) | 1996-11-22 | 2000-01-11 | Sprint Communications Company, L.P. | Telecommunications tandem system for circuit-based traffic |
DE69735307T2 (en) * | 1996-12-12 | 2006-11-02 | Sony Corp. | DEVICE AND METHOD FOR CODING IMAGE DATA AND METHOD FOR IMAGE DATA TRANSMISSION |
WO1998032252A1 (en) * | 1997-01-21 | 1998-07-23 | Sony Corporation | Coded signal transmission method and device |
US6097435A (en) * | 1997-01-31 | 2000-08-01 | Hughes Electronics Corporation | Video system with selectable bit rate reduction |
US6091455A (en) * | 1997-01-31 | 2000-07-18 | Hughes Electronics Corporation | Statistical multiplexer for recording video |
US6005620A (en) * | 1997-01-31 | 1999-12-21 | Hughes Electronics Corporation | Statistical multiplexer for live and pre-compressed video |
US6084910A (en) * | 1997-01-31 | 2000-07-04 | Hughes Electronics Corporation | Statistical multiplexer for video signals |
US6188436B1 (en) | 1997-01-31 | 2001-02-13 | Hughes Electronics Corporation | Video broadcast system with video data shifting |
US6078958A (en) * | 1997-01-31 | 2000-06-20 | Hughes Electronics Corporation | System for allocating available bandwidth of a concentrated media output |
US6404776B1 (en) * | 1997-03-13 | 2002-06-11 | 8 × 8, Inc. | Data processor having controlled scalable input data source and method thereof |
US6418122B1 (en) * | 1997-03-21 | 2002-07-09 | Scientific-Atlanta, Inc. | Method and apparatus for assuring sufficient bandwidth of a statistical multiplexer |
US6052384A (en) * | 1997-03-21 | 2000-04-18 | Scientific-Atlanta, Inc. | Using a receiver model to multiplex variable-rate bit streams having timing constraints |
US6067299A (en) | 1997-04-16 | 2000-05-23 | Sprint Communications Company, L.P. | Communications system for providing ATM connections and echo cancellation |
US5996013A (en) * | 1997-04-30 | 1999-11-30 | International Business Machines Corporation | Method and apparatus for resource allocation with guarantees |
US6704327B1 (en) | 1997-05-09 | 2004-03-09 | Sprint Communications Company, L.P. | System and method for connecting a call |
US6137800A (en) | 1997-05-09 | 2000-10-24 | Sprint Communications Company, L. P. | System and method for connecting a call |
US6178170B1 (en) | 1997-05-13 | 2001-01-23 | Sprint Communications Company, L. P. | System and method for transporting a call |
US6137779A (en) * | 1997-05-22 | 2000-10-24 | Integrated Device Technology, Inc. | Transmission rate calculation scheme using table-lookup |
US7113523B1 (en) * | 1997-06-11 | 2006-09-26 | Sony Corporation | Data multiplexing device, program distribution system, program transmission system, pay broadcast system, program transmission method, conditional access system, and data reception device |
CA2264392A1 (en) * | 1997-07-01 | 1999-01-14 | Sony Corporation | Device and method for controlling image encoding, encoding system, transmission system and broadcast system |
GB9721947D0 (en) | 1997-10-16 | 1997-12-17 | Thomson Consumer Electronics | Intelligent IP packet scheduler algorithm |
US6407998B1 (en) | 1997-10-02 | 2002-06-18 | Thomson Licensing S.A. | Multimedia decoder for prioritized bi-directional communication in a broadcast system |
US6240094B1 (en) * | 1997-12-22 | 2001-05-29 | Bell Atlantic Network Services, Inc. | Statistical time division multiplexer for a wireless asymmetric local loop communication system |
US6192032B1 (en) | 1998-01-02 | 2001-02-20 | International Business Machines Corporation | Rate attenuation systems, methods and computer program products for reducing low priority video frame packets transmitted over a network |
US6563918B1 (en) | 1998-02-20 | 2003-05-13 | Sprint Communications Company, LP | Telecommunications system architecture for connecting a call |
US7079534B1 (en) | 1998-02-20 | 2006-07-18 | Sprint Communications Company L.P. | System and method for allocating bandwidth for a call |
US6483837B1 (en) | 1998-02-20 | 2002-11-19 | Sprint Communications Company L.P. | System and method for connecting a call with an interworking system |
US6574222B1 (en) | 1998-02-20 | 2003-06-03 | Sprint Communications Company, L.P. | System and method for allocating bandwidth for a call |
US6470019B1 (en) | 1998-02-20 | 2002-10-22 | Sprint Communications Company L.P. | System and method for treating a call for call processing |
US6922409B1 (en) | 1998-02-20 | 2005-07-26 | Sprint Communications Company L.P. | System and method for allocating bandwidth for a call |
US6160871A (en) | 1998-04-10 | 2000-12-12 | Sprint Communications Company, L.P. | Communications test system |
US6249519B1 (en) * | 1998-04-16 | 2001-06-19 | Mantra Communications | Flow based circuit steering in ATM networks |
US6259733B1 (en) | 1998-06-16 | 2001-07-10 | General Instrument Corporation | Pre-processing of bit rate allocation in a multi-channel video encoder |
IL125310A (en) * | 1998-07-12 | 2002-02-10 | Eci Telecom Ltd | Method and system for managing varying traffic load in telecommunication network |
US6959451B1 (en) * | 1998-08-21 | 2005-10-25 | Intel Corporation | Transmission communications management |
GB2341745A (en) * | 1998-09-10 | 2000-03-22 | Snell & Wilcox Ltd | Image encoding |
US6421720B2 (en) * | 1998-10-28 | 2002-07-16 | Cisco Technology, Inc. | Codec-independent technique for modulating bandwidth in packet network |
US6624761B2 (en) | 1998-12-11 | 2003-09-23 | Realtime Data, Llc | Content independent data compression method and system |
WO2000041395A1 (en) * | 1999-01-06 | 2000-07-13 | Sarnoff Corporation | Latency-based statistical multiplexing |
US6665872B1 (en) * | 1999-01-06 | 2003-12-16 | Sarnoff Corporation | Latency-based statistical multiplexing |
US6754241B1 (en) * | 1999-01-06 | 2004-06-22 | Sarnoff Corporation | Computer system for statistical multiplexing of bitstreams |
FI106998B (en) * | 1999-01-15 | 2001-05-15 | Nokia Mobile Phones Ltd | Bit rate control on a multimedia device |
US6490298B1 (en) | 1999-02-26 | 2002-12-03 | Harmonic Inc. | Apparatus and methods of multiplexing data to a communication channel |
JP2000261459A (en) * | 1999-03-10 | 2000-09-22 | Nec Corp | Statistical multiplex transmission system |
US6601104B1 (en) | 1999-03-11 | 2003-07-29 | Realtime Data Llc | System and methods for accelerated data storage and retrieval |
US6604158B1 (en) | 1999-03-11 | 2003-08-05 | Realtime Data, Llc | System and methods for accelerated data storage and retrieval |
US6868081B1 (en) * | 1999-04-13 | 2005-03-15 | Sprint Communications Company L.P. | Method and apparatus for simultaneous multiline phone and data services over a single access facility |
US7103068B1 (en) | 1999-05-04 | 2006-09-05 | Sprint Communication Company L.P. | System and method for configuring bandwidth transmission rates for call connections |
US6594271B1 (en) * | 1999-07-19 | 2003-07-15 | General Instruments Corporation | Implementation of opportunistic data on a statistical multiplexing encoder |
US6781956B1 (en) | 1999-09-17 | 2004-08-24 | Cisco Technology, Inc. | System and method for prioritizing packetized data from a distributed control environment for transmission through a high bandwidth link |
US7564873B1 (en) * | 1999-12-10 | 2009-07-21 | Cox Communications, Inc. | Method and apparatus for providing in-band messaging within a video on demand environment |
DE60029251T2 (en) * | 1999-12-14 | 2007-05-31 | General Instrument Corporation | MPEG UMMULTIPLEXER WITH MULTIPLE INPUTS AND MULTIPLE OUTPUTS |
US6856613B1 (en) * | 1999-12-30 | 2005-02-15 | Cisco Technology, Inc. | Method and apparatus for throttling audio packets according to gateway processing capacity |
US20010047473A1 (en) * | 2000-02-03 | 2001-11-29 | Realtime Data, Llc | Systems and methods for computer initialization |
US20030191876A1 (en) | 2000-02-03 | 2003-10-09 | Fallon James J. | Data storewidth accelerator |
US7050496B2 (en) * | 2000-02-15 | 2006-05-23 | 4Nsys Co., Ltd. | Multi-channel image encoding method and system |
GB2361132B (en) * | 2000-04-07 | 2004-09-08 | Snell & Wilcox Ltd | Multiplexing compressed signals |
US6493388B1 (en) | 2000-04-19 | 2002-12-10 | General Instrument Corporation | Rate control and buffer protection for variable bit rate video programs over a constant rate channel |
US6643327B1 (en) | 2000-05-05 | 2003-11-04 | General Instrument Corporation | Statistical multiplexer and remultiplexer that accommodates changes in structure of group of pictures |
US6731605B1 (en) | 2000-06-19 | 2004-05-04 | Sharp Laboratories Of America, Inc. | Prioritized optimal server side bandwidth allocation in a multimedia session with push and pull sources |
JP4441839B2 (en) * | 2000-08-17 | 2010-03-31 | ソニー株式会社 | Statistical multiplexing system, statistical multiplexing control device, and statistical multiplexing method |
US8692695B2 (en) | 2000-10-03 | 2014-04-08 | Realtime Data, Llc | Methods for encoding and decoding data |
US9143546B2 (en) * | 2000-10-03 | 2015-09-22 | Realtime Data Llc | System and method for data feed acceleration and encryption |
US7417568B2 (en) | 2000-10-03 | 2008-08-26 | Realtime Data Llc | System and method for data feed acceleration and encryption |
US20020104058A1 (en) * | 2000-12-06 | 2002-08-01 | Yigal Rappaport | Packet switched network having error correction capabilities of variable size data packets and a method thereof |
US6594316B2 (en) | 2000-12-12 | 2003-07-15 | Scientific-Atlanta, Inc. | Method and apparatus for adaptive bit rate control in an asynchronized encoding system |
US6987728B2 (en) | 2001-01-23 | 2006-01-17 | Sharp Laboratories Of America, Inc. | Bandwidth allocation system |
US7386046B2 (en) * | 2001-02-13 | 2008-06-10 | Realtime Data Llc | Bandwidth sensitive data compression and decompression |
JPWO2002080572A1 (en) * | 2001-03-29 | 2004-07-22 | ソニー株式会社 | Image processing apparatus, image processing method, image processing program, and recording medium |
JP4591939B2 (en) * | 2001-05-15 | 2010-12-01 | Kddi株式会社 | Adaptive encoding transmission apparatus and receiving apparatus |
US6937619B1 (en) * | 2001-05-29 | 2005-08-30 | Bigband Networks, Inc. | Method and system for comparison-based prioritized bit rate conversion |
US7058087B1 (en) | 2001-05-29 | 2006-06-06 | Bigband Networks, Inc. | Method and system for prioritized bit rate conversion |
US7072393B2 (en) | 2001-06-25 | 2006-07-04 | International Business Machines Corporation | Multiple parallel encoders and statistical analysis thereof for encoding a video sequence |
US20030007516A1 (en) * | 2001-07-06 | 2003-01-09 | Yuri Abramov | System and method for the application of a statistical multiplexing algorithm for video encoding |
US7385970B1 (en) * | 2001-12-07 | 2008-06-10 | Redback Networks, Inc. | Method and apparatus for balancing bandwidth among multiple ports of a network element |
US7301906B2 (en) | 2001-12-17 | 2007-11-27 | Lsi Corporation | Methods and structures for improved buffer management and dynamic adaption of flow control status in high-speed communication networks |
US7376159B1 (en) * | 2002-01-03 | 2008-05-20 | The Directv Group, Inc. | Exploitation of null packets in packetized digital television systems |
US20030156639A1 (en) * | 2002-02-19 | 2003-08-21 | Jui Liang | Frame rate control system and method |
EP1376383A3 (en) | 2002-03-23 | 2005-05-25 | Uwe Noll | Method for processing inputs and outputs data for statistical analysis and method for purging redundancies |
US7936814B2 (en) * | 2002-03-28 | 2011-05-03 | International Business Machines Corporation | Cascaded output for an encoder system using multiple encoders |
US7286473B1 (en) | 2002-07-10 | 2007-10-23 | The Directv Group, Inc. | Null packet replacement with bi-level scheduling |
US8893207B2 (en) * | 2002-12-10 | 2014-11-18 | Ol2, Inc. | System and method for compressing streaming interactive video |
US7352809B2 (en) * | 2003-02-21 | 2008-04-01 | Polycom, Inc. | System and method for optimal transmission of a multitude of video pictures to one or more destinations |
US7647221B2 (en) * | 2003-04-30 | 2010-01-12 | The Directv Group, Inc. | Audio level control for compressed audio |
US7397774B1 (en) | 2003-05-23 | 2008-07-08 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Downlink data multiplexer |
FR2857205B1 (en) * | 2003-07-04 | 2005-09-23 | Nextream France | DEVICE AND METHOD FOR VIDEO DATA CODING |
US7324592B2 (en) * | 2003-08-13 | 2008-01-29 | Mitsubishi Electric Research Laboratories, Inc. | Resource-constrained encoding of multiple videos |
US7912226B1 (en) | 2003-09-12 | 2011-03-22 | The Directv Group, Inc. | Automatic measurement of audio presence and level by direct processing of an MPEG data stream |
KR20060135613A (en) * | 2003-09-24 | 2006-12-29 | 텍사스 인스트루먼츠 인코포레이티드 | 8*8 transform and quantization |
KR20050050322A (en) * | 2003-11-25 | 2005-05-31 | 삼성전자주식회사 | Method for adptive modulation in a ofdma mobile communication system |
US20050208949A1 (en) * | 2004-02-12 | 2005-09-22 | Chiueh Tzi-Cker | Centralized channel assignment and routing algorithms for multi-channel wireless mesh networks |
IL160921A (en) * | 2004-03-18 | 2009-09-01 | Veraz Networks Ltd | Method and device for quality management in communication networks |
US7526001B2 (en) * | 2004-07-26 | 2009-04-28 | General Instrument Corporation | Statistical multiplexer having protective features from extraneous messages generated by redundant system elements |
US7778327B2 (en) * | 2005-02-08 | 2010-08-17 | Texas Instruments Incorporated | H.264 quantization |
CA2595280C (en) * | 2005-03-02 | 2013-11-19 | Rohde & Schwarz Gmbh & Co. Kg | Apparatus, systems and methods for providing enhancements to atsc networks using synchronous vestigial sideband (vsb) frame slicing |
US20070036177A1 (en) * | 2005-08-12 | 2007-02-15 | Sarnoff Corporation | Method and apparatus for managing delivery of video over a digital subscriber line |
US7877517B2 (en) * | 2005-11-09 | 2011-01-25 | International Business Machines Corporation | Determining whether to compress data transmitted over a network |
US7839948B2 (en) | 2005-12-02 | 2010-11-23 | Qualcomm Incorporated | Time slicing techniques for variable data rate encoding |
JP4636267B2 (en) * | 2006-02-28 | 2011-02-23 | 日本電気株式会社 | Encoding device and encoding bit rate switching method |
US20080101405A1 (en) * | 2006-10-26 | 2008-05-01 | General Instrument Corporation | Method and Apparatus for Dynamic Bandwidth Allocation of Video Over a Digital Subscriber Line |
DE102007001379A1 (en) * | 2007-01-09 | 2008-07-10 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Concept for encoding a plurality of information signals for a common transmission in a time division multiplex |
BRPI0807135B1 (en) | 2007-02-01 | 2020-09-24 | Rohde & Schwarz Gmbh & Co. Kg | APPARATUS AND METHOD TO MAKE A DATA STRUCTURE BE ISSUED IN AN AERIAL INTERFACE OF AN ANTENNA AND MEDIA READABLE BY NON-TRANSITIONAL COMPUTER |
DE102008017290A1 (en) * | 2007-12-11 | 2009-06-18 | Rohde & Schwarz Gmbh & Co. Kg | Method and device for forming a common data stream, in particular according to the ATSC standard |
DE102007059959B4 (en) * | 2007-12-12 | 2020-01-02 | Rohde & Schwarz Gmbh & Co. Kg | Method and system for transmitting data between a central radio station and at least one transmitter |
US8141120B2 (en) * | 2008-01-03 | 2012-03-20 | Nec Laboratories America, Inc. | Adaptive scheduling of streaming video over wireless networks |
US9456054B2 (en) | 2008-05-16 | 2016-09-27 | Palo Alto Research Center Incorporated | Controlling the spread of interests and content in a content centric network |
US8355458B2 (en) * | 2008-06-25 | 2013-01-15 | Rohde & Schwarz Gmbh & Co. Kg | Apparatus, systems, methods and computer program products for producing a single frequency network for ATSC mobile / handheld services |
DE102008056703A1 (en) | 2008-07-04 | 2010-01-07 | Rohde & Schwarz Gmbh & Co. Kg | Method and system for time synchronization between a central office and multiple transmitters |
DE102008059028B4 (en) * | 2008-10-02 | 2021-12-02 | Rohde & Schwarz GmbH & Co. Kommanditgesellschaft | Method and device for generating a transport data stream with image data |
MX2011004645A (en) * | 2008-11-06 | 2011-05-30 | Rohde & Schwarz | Method and system for synchronized mapping of data packets in an atsc data stream. |
EP2230784A1 (en) * | 2009-03-19 | 2010-09-22 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Device and method for transferring a number of information signals in a flexible time multiplex |
EP2234357B1 (en) | 2009-03-21 | 2016-07-27 | Rohde & Schwarz GmbH & Co. KG | Method for improving the data rate of mobile data and the quality of channel estimation in an ATSC-M/H transport data stream |
DE102009025219A1 (en) * | 2009-04-07 | 2010-10-14 | Rohde & Schwarz Gmbh & Co. Kg | Method and device for continuously adapting coding parameters to a variable payload data rate |
DE102009057363B4 (en) * | 2009-10-16 | 2013-04-18 | Rohde & Schwarz Gmbh & Co. Kg | Method and device for the efficient transmission of nationwide and regionally broadcast program and service data |
US8923293B2 (en) | 2009-10-21 | 2014-12-30 | Palo Alto Research Center Incorporated | Adaptive multi-interface use for content networking |
US8630412B2 (en) | 2010-08-25 | 2014-01-14 | Motorola Mobility Llc | Transport of partially encrypted media |
US9118939B2 (en) | 2010-12-20 | 2015-08-25 | Arris Technology, Inc. | SVC-to-AVC rewriter with open-loop statistical multiplexer |
US8989021B2 (en) | 2011-01-20 | 2015-03-24 | Rohde & Schwarz Gmbh & Co. Kg | Universal broadband broadcasting |
EP2717529B1 (en) * | 2011-05-31 | 2016-07-20 | Nec Corporation | Wireless transmission device, wireless transmission system, and method for controlling wireless transmission device |
US9729120B1 (en) | 2011-07-13 | 2017-08-08 | The Directv Group, Inc. | System and method to monitor audio loudness and provide audio automatic gain control |
US9280546B2 (en) | 2012-10-31 | 2016-03-08 | Palo Alto Research Center Incorporated | System and method for accessing digital content using a location-independent name |
US9400800B2 (en) | 2012-11-19 | 2016-07-26 | Palo Alto Research Center Incorporated | Data transport by named content synchronization |
US10430839B2 (en) | 2012-12-12 | 2019-10-01 | Cisco Technology, Inc. | Distributed advertisement insertion in content-centric networks |
US10062142B2 (en) * | 2012-12-31 | 2018-08-28 | Nvidia Corporation | Stutter buffer transfer techniques for display systems |
DE102013002648B3 (en) * | 2013-02-15 | 2014-05-22 | Audi Ag | Master bus device for a vehicle communication bus of a motor vehicle |
US9978025B2 (en) | 2013-03-20 | 2018-05-22 | Cisco Technology, Inc. | Ordered-element naming for name-based packet forwarding |
JP6310182B2 (en) * | 2013-03-22 | 2018-04-11 | 株式会社日立国際電気 | Optical transmission equipment |
US9935791B2 (en) | 2013-05-20 | 2018-04-03 | Cisco Technology, Inc. | Method and system for name resolution across heterogeneous architectures |
US9444722B2 (en) | 2013-08-01 | 2016-09-13 | Palo Alto Research Center Incorporated | Method and apparatus for configuring routing paths in a custodian-based routing architecture |
US9407549B2 (en) | 2013-10-29 | 2016-08-02 | Palo Alto Research Center Incorporated | System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers |
US9276840B2 (en) * | 2013-10-30 | 2016-03-01 | Palo Alto Research Center Incorporated | Interest messages with a payload for a named data network |
US9401864B2 (en) | 2013-10-31 | 2016-07-26 | Palo Alto Research Center Incorporated | Express header for packets with hierarchically structured variable-length identifiers |
US10129365B2 (en) | 2013-11-13 | 2018-11-13 | Cisco Technology, Inc. | Method and apparatus for pre-fetching remote content based on static and dynamic recommendations |
US10101801B2 (en) | 2013-11-13 | 2018-10-16 | Cisco Technology, Inc. | Method and apparatus for prefetching content in a data stream |
US9311377B2 (en) | 2013-11-13 | 2016-04-12 | Palo Alto Research Center Incorporated | Method and apparatus for performing server handoff in a name-based content distribution system |
US10089655B2 (en) | 2013-11-27 | 2018-10-02 | Cisco Technology, Inc. | Method and apparatus for scalable data broadcasting |
US9503358B2 (en) | 2013-12-05 | 2016-11-22 | Palo Alto Research Center Incorporated | Distance-based routing in an information-centric network |
US9379979B2 (en) | 2014-01-14 | 2016-06-28 | Palo Alto Research Center Incorporated | Method and apparatus for establishing a virtual interface for a set of mutual-listener devices |
US10098051B2 (en) | 2014-01-22 | 2018-10-09 | Cisco Technology, Inc. | Gateways and routing in software-defined manets |
US10172068B2 (en) | 2014-01-22 | 2019-01-01 | Cisco Technology, Inc. | Service-oriented routing in software-defined MANETs |
US9374304B2 (en) | 2014-01-24 | 2016-06-21 | Palo Alto Research Center Incorporated | End-to end route tracing over a named-data network |
US9954678B2 (en) | 2014-02-06 | 2018-04-24 | Cisco Technology, Inc. | Content-based transport security |
US9678998B2 (en) | 2014-02-28 | 2017-06-13 | Cisco Technology, Inc. | Content name resolution for information centric networking |
US10089651B2 (en) | 2014-03-03 | 2018-10-02 | Cisco Technology, Inc. | Method and apparatus for streaming advertisements in a scalable data broadcasting system |
US9836540B2 (en) | 2014-03-04 | 2017-12-05 | Cisco Technology, Inc. | System and method for direct storage access in a content-centric network |
US9391896B2 (en) | 2014-03-10 | 2016-07-12 | Palo Alto Research Center Incorporated | System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network |
US9626413B2 (en) | 2014-03-10 | 2017-04-18 | Cisco Systems, Inc. | System and method for ranking content popularity in a content-centric network |
US9473405B2 (en) | 2014-03-10 | 2016-10-18 | Palo Alto Research Center Incorporated | Concurrent hashes and sub-hashes on data streams |
US9407432B2 (en) | 2014-03-19 | 2016-08-02 | Palo Alto Research Center Incorporated | System and method for efficient and secure distribution of digital content |
US9916601B2 (en) | 2014-03-21 | 2018-03-13 | Cisco Technology, Inc. | Marketplace for presenting advertisements in a scalable data broadcasting system |
US9363179B2 (en) | 2014-03-26 | 2016-06-07 | Palo Alto Research Center Incorporated | Multi-publisher routing protocol for named data networks |
US9363086B2 (en) | 2014-03-31 | 2016-06-07 | Palo Alto Research Center Incorporated | Aggregate signing of data in content centric networking |
US9716622B2 (en) | 2014-04-01 | 2017-07-25 | Cisco Technology, Inc. | System and method for dynamic name configuration in content-centric networks |
US9390289B2 (en) | 2014-04-07 | 2016-07-12 | Palo Alto Research Center Incorporated | Secure collection synchronization using matched network names |
US10075521B2 (en) | 2014-04-07 | 2018-09-11 | Cisco Technology, Inc. | Collection synchronization using equality matched network names |
US9451032B2 (en) | 2014-04-10 | 2016-09-20 | Palo Alto Research Center Incorporated | System and method for simple service discovery in content-centric networks |
US9992281B2 (en) | 2014-05-01 | 2018-06-05 | Cisco Technology, Inc. | Accountable content stores for information centric networks |
US9609014B2 (en) | 2014-05-22 | 2017-03-28 | Cisco Systems, Inc. | Method and apparatus for preventing insertion of malicious content at a named data network router |
US9455835B2 (en) | 2014-05-23 | 2016-09-27 | Palo Alto Research Center Incorporated | System and method for circular link resolution with hash-based names in content-centric networks |
US9276751B2 (en) | 2014-05-28 | 2016-03-01 | Palo Alto Research Center Incorporated | System and method for circular link resolution with computable hash-based names in content-centric networks |
US9537719B2 (en) | 2014-06-19 | 2017-01-03 | Palo Alto Research Center Incorporated | Method and apparatus for deploying a minimal-cost CCN topology |
US9516144B2 (en) | 2014-06-19 | 2016-12-06 | Palo Alto Research Center Incorporated | Cut-through forwarding of CCNx message fragments with IP encapsulation |
US9426113B2 (en) | 2014-06-30 | 2016-08-23 | Palo Alto Research Center Incorporated | System and method for managing devices over a content centric network |
US9699198B2 (en) | 2014-07-07 | 2017-07-04 | Cisco Technology, Inc. | System and method for parallel secure content bootstrapping in content-centric networks |
US9621354B2 (en) | 2014-07-17 | 2017-04-11 | Cisco Systems, Inc. | Reconstructable content objects |
US9959156B2 (en) | 2014-07-17 | 2018-05-01 | Cisco Technology, Inc. | Interest return control message |
US9729616B2 (en) | 2014-07-18 | 2017-08-08 | Cisco Technology, Inc. | Reputation-based strategy for forwarding and responding to interests over a content centric network |
US9590887B2 (en) | 2014-07-18 | 2017-03-07 | Cisco Systems, Inc. | Method and system for keeping interest alive in a content centric network |
US9535968B2 (en) | 2014-07-21 | 2017-01-03 | Palo Alto Research Center Incorporated | System for distributing nameless objects using self-certifying names |
US9882964B2 (en) | 2014-08-08 | 2018-01-30 | Cisco Technology, Inc. | Explicit strategy feedback in name-based forwarding |
US9729662B2 (en) | 2014-08-11 | 2017-08-08 | Cisco Technology, Inc. | Probabilistic lazy-forwarding technique without validation in a content centric network |
US9503365B2 (en) | 2014-08-11 | 2016-11-22 | Palo Alto Research Center Incorporated | Reputation-based instruction processing over an information centric network |
US9391777B2 (en) | 2014-08-15 | 2016-07-12 | Palo Alto Research Center Incorporated | System and method for performing key resolution over a content centric network |
US9467492B2 (en) | 2014-08-19 | 2016-10-11 | Palo Alto Research Center Incorporated | System and method for reconstructable all-in-one content stream |
US9800637B2 (en) | 2014-08-19 | 2017-10-24 | Cisco Technology, Inc. | System and method for all-in-one content stream in content-centric networks |
US9497282B2 (en) | 2014-08-27 | 2016-11-15 | Palo Alto Research Center Incorporated | Network coding for content-centric network |
US10204013B2 (en) | 2014-09-03 | 2019-02-12 | Cisco Technology, Inc. | System and method for maintaining a distributed and fault-tolerant state over an information centric network |
US9553812B2 (en) | 2014-09-09 | 2017-01-24 | Palo Alto Research Center Incorporated | Interest keep alives at intermediate routers in a CCN |
US10069933B2 (en) | 2014-10-23 | 2018-09-04 | Cisco Technology, Inc. | System and method for creating virtual interfaces based on network characteristics |
US9536059B2 (en) | 2014-12-15 | 2017-01-03 | Palo Alto Research Center Incorporated | Method and system for verifying renamed content using manifests in a content centric network |
US9590948B2 (en) | 2014-12-15 | 2017-03-07 | Cisco Systems, Inc. | CCN routing using hardware-assisted hash tables |
US10237189B2 (en) | 2014-12-16 | 2019-03-19 | Cisco Technology, Inc. | System and method for distance-based interest forwarding |
US9846881B2 (en) | 2014-12-19 | 2017-12-19 | Palo Alto Research Center Incorporated | Frugal user engagement help systems |
US10003520B2 (en) | 2014-12-22 | 2018-06-19 | Cisco Technology, Inc. | System and method for efficient name-based content routing using link-state information in information-centric networks |
US9473475B2 (en) | 2014-12-22 | 2016-10-18 | Palo Alto Research Center Incorporated | Low-cost authenticated signing delegation in content centric networking |
US9660825B2 (en) | 2014-12-24 | 2017-05-23 | Cisco Technology, Inc. | System and method for multi-source multicasting in content-centric networks |
US9954795B2 (en) | 2015-01-12 | 2018-04-24 | Cisco Technology, Inc. | Resource allocation using CCN manifests |
US9602596B2 (en) | 2015-01-12 | 2017-03-21 | Cisco Systems, Inc. | Peer-to-peer sharing in a content centric network |
US9916457B2 (en) | 2015-01-12 | 2018-03-13 | Cisco Technology, Inc. | Decoupled name security binding for CCN objects |
US9946743B2 (en) | 2015-01-12 | 2018-04-17 | Cisco Technology, Inc. | Order encoded manifests in a content centric network |
US9832291B2 (en) | 2015-01-12 | 2017-11-28 | Cisco Technology, Inc. | Auto-configurable transport stack |
US9462006B2 (en) | 2015-01-21 | 2016-10-04 | Palo Alto Research Center Incorporated | Network-layer application-specific trust model |
US9552493B2 (en) | 2015-02-03 | 2017-01-24 | Palo Alto Research Center Incorporated | Access control framework for information centric networking |
US10333840B2 (en) | 2015-02-06 | 2019-06-25 | Cisco Technology, Inc. | System and method for on-demand content exchange with adaptive naming in information-centric networks |
US10075401B2 (en) | 2015-03-18 | 2018-09-11 | Cisco Technology, Inc. | Pending interest table behavior |
US10116605B2 (en) | 2015-06-22 | 2018-10-30 | Cisco Technology, Inc. | Transport stack name scheme and identity management |
US10075402B2 (en) | 2015-06-24 | 2018-09-11 | Cisco Technology, Inc. | Flexible command and control in content centric networks |
US10701038B2 (en) | 2015-07-27 | 2020-06-30 | Cisco Technology, Inc. | Content negotiation in a content centric network |
US9986034B2 (en) | 2015-08-03 | 2018-05-29 | Cisco Technology, Inc. | Transferring state in content centric network stacks |
US10610144B2 (en) | 2015-08-19 | 2020-04-07 | Palo Alto Research Center Incorporated | Interactive remote patient monitoring and condition management intervention system |
US9832123B2 (en) | 2015-09-11 | 2017-11-28 | Cisco Technology, Inc. | Network named fragments in a content centric network |
US9888052B2 (en) | 2015-09-21 | 2018-02-06 | Imagine Communications Corp. | ABR allocation for statistical multiplexing |
US10355999B2 (en) | 2015-09-23 | 2019-07-16 | Cisco Technology, Inc. | Flow control with network named fragments |
US9977809B2 (en) | 2015-09-24 | 2018-05-22 | Cisco Technology, Inc. | Information and data framework in a content centric network |
US10313227B2 (en) | 2015-09-24 | 2019-06-04 | Cisco Technology, Inc. | System and method for eliminating undetected interest looping in information-centric networks |
US10454820B2 (en) | 2015-09-29 | 2019-10-22 | Cisco Technology, Inc. | System and method for stateless information-centric networking |
US10263965B2 (en) | 2015-10-16 | 2019-04-16 | Cisco Technology, Inc. | Encrypted CCNx |
US9794238B2 (en) | 2015-10-29 | 2017-10-17 | Cisco Technology, Inc. | System for key exchange in a content centric network |
US9807205B2 (en) | 2015-11-02 | 2017-10-31 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary |
US10009446B2 (en) | 2015-11-02 | 2018-06-26 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary learning |
US10021222B2 (en) | 2015-11-04 | 2018-07-10 | Cisco Technology, Inc. | Bit-aligned header compression for CCN messages using dictionary |
GB2544296B (en) * | 2015-11-11 | 2020-06-03 | Canon Kk | Method and apparatus for serving and managing storage of data streams in a surveillance and/or monitoring system |
US10097521B2 (en) | 2015-11-20 | 2018-10-09 | Cisco Technology, Inc. | Transparent encryption in a content centric network |
US9912776B2 (en) | 2015-12-02 | 2018-03-06 | Cisco Technology, Inc. | Explicit content deletion commands in a content centric network |
US10097346B2 (en) | 2015-12-09 | 2018-10-09 | Cisco Technology, Inc. | Key catalogs in a content centric network |
US10078062B2 (en) | 2015-12-15 | 2018-09-18 | Palo Alto Research Center Incorporated | Device health estimation by combining contextual information with sensor data |
US10257271B2 (en) | 2016-01-11 | 2019-04-09 | Cisco Technology, Inc. | Chandra-Toueg consensus in a content centric network |
US9949301B2 (en) | 2016-01-20 | 2018-04-17 | Palo Alto Research Center Incorporated | Methods for fast, secure and privacy-friendly internet connection discovery in wireless networks |
US10305864B2 (en) | 2016-01-25 | 2019-05-28 | Cisco Technology, Inc. | Method and system for interest encryption in a content centric network |
US10043016B2 (en) | 2016-02-29 | 2018-08-07 | Cisco Technology, Inc. | Method and system for name encryption agreement in a content centric network |
US10742596B2 (en) | 2016-03-04 | 2020-08-11 | Cisco Technology, Inc. | Method and system for reducing a collision probability of hash-based names using a publisher identifier |
US10003507B2 (en) | 2016-03-04 | 2018-06-19 | Cisco Technology, Inc. | Transport session state protocol |
US10038633B2 (en) | 2016-03-04 | 2018-07-31 | Cisco Technology, Inc. | Protocol to query for historical network information in a content centric network |
US10051071B2 (en) | 2016-03-04 | 2018-08-14 | Cisco Technology, Inc. | Method and system for collecting historical network information in a content centric network |
US9832116B2 (en) | 2016-03-14 | 2017-11-28 | Cisco Technology, Inc. | Adjusting entries in a forwarding information base in a content centric network |
US10212196B2 (en) | 2016-03-16 | 2019-02-19 | Cisco Technology, Inc. | Interface discovery and authentication in a name-based network |
US11436656B2 (en) | 2016-03-18 | 2022-09-06 | Palo Alto Research Center Incorporated | System and method for a real-time egocentric collaborative filter on large datasets |
US10067948B2 (en) | 2016-03-18 | 2018-09-04 | Cisco Technology, Inc. | Data deduping in content centric networking manifests |
US10091330B2 (en) | 2016-03-23 | 2018-10-02 | Cisco Technology, Inc. | Interest scheduling by an information and data framework in a content centric network |
US10033639B2 (en) | 2016-03-25 | 2018-07-24 | Cisco Technology, Inc. | System and method for routing packets in a content centric network using anonymous datagrams |
US10320760B2 (en) | 2016-04-01 | 2019-06-11 | Cisco Technology, Inc. | Method and system for mutating and caching content in a content centric network |
US9930146B2 (en) | 2016-04-04 | 2018-03-27 | Cisco Technology, Inc. | System and method for compressing content centric networking messages |
US10425503B2 (en) | 2016-04-07 | 2019-09-24 | Cisco Technology, Inc. | Shared pending interest table in a content centric network |
US10027578B2 (en) | 2016-04-11 | 2018-07-17 | Cisco Technology, Inc. | Method and system for routable prefix queries in a content centric network |
US10404450B2 (en) | 2016-05-02 | 2019-09-03 | Cisco Technology, Inc. | Schematized access control in a content centric network |
US10320675B2 (en) | 2016-05-04 | 2019-06-11 | Cisco Technology, Inc. | System and method for routing packets in a stateless content centric network |
US10547589B2 (en) | 2016-05-09 | 2020-01-28 | Cisco Technology, Inc. | System for implementing a small computer systems interface protocol over a content centric network |
US10063414B2 (en) | 2016-05-13 | 2018-08-28 | Cisco Technology, Inc. | Updating a transport stack in a content centric network |
US10084764B2 (en) | 2016-05-13 | 2018-09-25 | Cisco Technology, Inc. | System for a secure encryption proxy in a content centric network |
US10103989B2 (en) | 2016-06-13 | 2018-10-16 | Cisco Technology, Inc. | Content object return messages in a content centric network |
US10305865B2 (en) | 2016-06-21 | 2019-05-28 | Cisco Technology, Inc. | Permutation-based content encryption with manifests in a content centric network |
US10148572B2 (en) | 2016-06-27 | 2018-12-04 | Cisco Technology, Inc. | Method and system for interest groups in a content centric network |
US10009266B2 (en) | 2016-07-05 | 2018-06-26 | Cisco Technology, Inc. | Method and system for reference counted pending interest tables in a content centric network |
US9992097B2 (en) | 2016-07-11 | 2018-06-05 | Cisco Technology, Inc. | System and method for piggybacking routing information in interests in a content centric network |
US10122624B2 (en) | 2016-07-25 | 2018-11-06 | Cisco Technology, Inc. | System and method for ephemeral entries in a forwarding information base in a content centric network |
US10069729B2 (en) | 2016-08-08 | 2018-09-04 | Cisco Technology, Inc. | System and method for throttling traffic based on a forwarding information base in a content centric network |
US10956412B2 (en) | 2016-08-09 | 2021-03-23 | Cisco Technology, Inc. | Method and system for conjunctive normal form attribute matching in a content centric network |
US10033642B2 (en) | 2016-09-19 | 2018-07-24 | Cisco Technology, Inc. | System and method for making optimal routing decisions based on device-specific parameters in a content centric network |
US10212248B2 (en) | 2016-10-03 | 2019-02-19 | Cisco Technology, Inc. | Cache management on high availability routers in a content centric network |
US10447805B2 (en) | 2016-10-10 | 2019-10-15 | Cisco Technology, Inc. | Distributed consensus in a content centric network |
US10135948B2 (en) | 2016-10-31 | 2018-11-20 | Cisco Technology, Inc. | System and method for process migration in a content centric network |
US10243851B2 (en) | 2016-11-21 | 2019-03-26 | Cisco Technology, Inc. | System and method for forwarder connection information in a content centric network |
CA3108057A1 (en) * | 2017-04-21 | 2018-10-25 | Zenimax Media Inc. | Systems and methods for rendering a pre-encoded load estimation based encoder hinting |
US10225211B2 (en) | 2017-07-20 | 2019-03-05 | Arris Enterprises Llc | Statistical multiplexer with service priority weighting |
US10608943B2 (en) * | 2017-10-27 | 2020-03-31 | Advanced Micro Devices, Inc. | Dynamic buffer management in multi-client token flow control routers |
GB2570324A (en) * | 2018-01-19 | 2019-07-24 | V Nova Int Ltd | Multi-codec processing and rate control |
GB2599206B (en) * | 2019-01-17 | 2023-05-10 | Brightcove Inc | Optimal multi-codec ABR ladder design |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3864524A (en) * | 1971-10-30 | 1975-02-04 | Electronic Communications | Asynchronous multiplexing of digitized speech |
US4751699A (en) * | 1985-09-12 | 1988-06-14 | Andre Tarridec | Multiplexing and demultiplexing equipments for a synchronous digital link with variable modulation speed and rate |
US5291486A (en) * | 1991-08-19 | 1994-03-01 | Sony Corporation | Data multiplexing apparatus and multiplexed data demultiplexing apparatus |
US5363370A (en) * | 1990-11-09 | 1994-11-08 | France Telecom | Multirate digital multiplexing demultiplexing method and device |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4638476A (en) * | 1985-06-21 | 1987-01-20 | At&T Bell Laboratories | Technique for dynamic resource allocation in a communication system |
US5159447A (en) * | 1991-05-23 | 1992-10-27 | At&T Bell Laboratories | Buffer control for variable bit-rate channel |
JP2861518B2 (en) * | 1991-09-03 | 1999-02-24 | 日本電気株式会社 | Adaptive multiplexing method |
JP3226945B2 (en) * | 1991-10-02 | 2001-11-12 | キヤノン株式会社 | Multimedia communication equipment |
US5216503A (en) * | 1991-12-24 | 1993-06-01 | General Instrument Corporation | Statistical multiplexer for a multichannel image compression system |
CA2104753C (en) * | 1992-10-29 | 1999-02-16 | Kotikalapudi Sriram | Bandwidth allocation, transmission scheduling, and congestion avoidance in broadband atm networks |
-
1994
- 1994-05-20 US US08/246,442 patent/US5506844A/en not_active Expired - Lifetime
-
1995
- 1995-05-19 KR KR1019960706560A patent/KR100382690B1/en not_active IP Right Cessation
- 1995-05-19 AU AU25166/95A patent/AU2516695A/en not_active Abandoned
- 1995-05-19 EP EP20050005560 patent/EP1542383A1/en not_active Ceased
- 1995-05-19 CA CA002190115A patent/CA2190115C/en not_active Expired - Lifetime
- 1995-05-19 WO PCT/US1995/006136 patent/WO1995032565A1/en active Application Filing
- 1995-05-19 DE DE69535803T patent/DE69535803D1/en not_active Expired - Lifetime
- 1995-05-19 JP JP53037595A patent/JP3233408B2/en not_active Expired - Lifetime
- 1995-05-19 EP EP95919221A patent/EP0772927B1/en not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3864524A (en) * | 1971-10-30 | 1975-02-04 | Electronic Communications | Asynchronous multiplexing of digitized speech |
US4751699A (en) * | 1985-09-12 | 1988-06-14 | Andre Tarridec | Multiplexing and demultiplexing equipments for a synchronous digital link with variable modulation speed and rate |
US5363370A (en) * | 1990-11-09 | 1994-11-08 | France Telecom | Multirate digital multiplexing demultiplexing method and device |
US5291486A (en) * | 1991-08-19 | 1994-03-01 | Sony Corporation | Data multiplexing apparatus and multiplexed data demultiplexing apparatus |
Non-Patent Citations (1)
Title |
---|
See also references of EP0772927A4 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6381254B1 (en) | 1996-11-08 | 2002-04-30 | Matsushita Electric Industrial Co., Ltd. | Moving image encoding device/method, moving image multiplexing device/method, and image transmission device |
WO2000013419A2 (en) * | 1998-08-27 | 2000-03-09 | General Instrument Corporation | Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals |
WO2000013419A3 (en) * | 1998-08-27 | 2000-06-15 | Gen Instrument Corp | Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals |
US6167084A (en) * | 1998-08-27 | 2000-12-26 | Motorola, Inc. | Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals |
EP1098521A1 (en) * | 1999-11-05 | 2001-05-09 | THOMSON multimedia | Process for allocating bandwidth to data streams in a broadcasting network |
FR2800960A1 (en) * | 1999-11-05 | 2001-05-11 | Thomson Multimedia Sa | METHOD AND DEVICE FOR ALLOCATING BANDWIDTH TO DATA STREAMS IN A BROADCASTING NETWORK |
WO2006094035A1 (en) * | 2005-03-01 | 2006-09-08 | Qualcomm Incorporated | Content-adaptive background skipping for region-of-interest video coding |
WO2006093999A2 (en) * | 2005-03-01 | 2006-09-08 | Qualcomm Incorporated | Region-of-interest coding in video telephony using rho domain bit allocation |
WO2006094001A2 (en) * | 2005-03-01 | 2006-09-08 | Qualcomm Incorporated | Region-of-interest coding with background skipping for video telephony |
WO2006093999A3 (en) * | 2005-03-01 | 2006-12-28 | Qualcomm Inc | Region-of-interest coding in video telephony using rho domain bit allocation |
WO2006094001A3 (en) * | 2005-03-01 | 2007-01-04 | Qualcomm Inc | Region-of-interest coding with background skipping for video telephony |
US7724972B2 (en) | 2005-03-01 | 2010-05-25 | Qualcomm Incorporated | Quality metric-biased region-of-interest coding for video telephony |
EP2309747A3 (en) * | 2005-03-01 | 2013-06-26 | Qualcomm Incorporated | Region-of-interest coding using RHO domain bit allocation |
EP2046048A3 (en) * | 2005-03-01 | 2013-10-30 | Qualcomm Incorporated | Region-of-interest coding with background skipping for video telephony |
US8693537B2 (en) | 2005-03-01 | 2014-04-08 | Qualcomm Incorporated | Region-of-interest coding with background skipping for video telephony |
US8768084B2 (en) | 2005-03-01 | 2014-07-01 | Qualcomm Incorporated | Region-of-interest coding in video telephony using RHO domain bit allocation |
US9667980B2 (en) | 2005-03-01 | 2017-05-30 | Qualcomm Incorporated | Content-adaptive background skipping for region-of-interest video coding |
WO2008133677A1 (en) * | 2007-04-23 | 2008-11-06 | Qualcomm Incorporated | Methods and systems for quality controlled encoding |
US8582647B2 (en) | 2007-04-23 | 2013-11-12 | Qualcomm Incorporated | Methods and systems for quality controlled encoding |
Also Published As
Publication number | Publication date |
---|---|
DE69535803D1 (en) | 2008-09-18 |
JP3233408B2 (en) | 2001-11-26 |
EP0772927B1 (en) | 2008-08-06 |
US5506844A (en) | 1996-04-09 |
CA2190115A1 (en) | 1995-11-30 |
KR100382690B1 (en) | 2003-08-02 |
EP1542383A1 (en) | 2005-06-15 |
EP0772927A1 (en) | 1997-05-14 |
CA2190115C (en) | 2000-08-01 |
AU2516695A (en) | 1995-12-18 |
MX9605759A (en) | 1998-10-31 |
KR970703662A (en) | 1997-07-03 |
EP0772927A4 (en) | 2002-08-28 |
JPH10500822A (en) | 1998-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0772927A1 (en) | Method for dynamically allocating communication channel bandwidth between competing applications | |
US6052384A (en) | Using a receiver model to multiplex variable-rate bit streams having timing constraints | |
EP0854652B1 (en) | Picture and sound decoding device, picture and sound encoding device, and information transmission system | |
CA2038436C (en) | Atm transmission system with a variable transmission rate | |
TW519834B (en) | Method and apparatus for determining a transmission bit rate in a statistical multiplexer | |
KR100672219B1 (en) | Programmable filter for removing stuffing bits from an MPEG-2-bit-stream | |
EP0748567B1 (en) | Buffering for digital video signal encoders using joint bit-rate control | |
RU2516010C2 (en) | Multichannel video communication system and multichannel video communication processing method | |
US20010031002A1 (en) | Image encoding apparatus and method of same, image decoding apparatus and method of same, image recording apparatus, and image transmitting apparatus | |
EP0841820A2 (en) | Method and apparatus for encoding, multiplexing and transmitting a video signal | |
US20020146023A1 (en) | Transport stream multiplexer utilizing smart FIFO-meters | |
JP2003046582A (en) | Video signal encoder, video signal decoder and video transmission system | |
JP2002536889A (en) | Method and apparatus for ensuring that the bandwidth of a statistical multiplexer is sufficient | |
KR100314329B1 (en) | Multiplexer Using Constant Bit Rate Encoder | |
US6931059B1 (en) | Rate and delivery time multiplexing for bandwidth optimization | |
US5933450A (en) | Complexity determining apparatus | |
KR100340826B1 (en) | Digital communication system | |
KR100340827B1 (en) | Complexity determining apparatus | |
US7050497B2 (en) | Process and device for the video coding of high definition images | |
JP3364335B2 (en) | Multi-program encoder / transmitter with bit rate control function | |
CA3070475A1 (en) | Statistical multiplexer with service priority weighting | |
MXPA96005759A (en) | Method to distribute dynamically communications channel bandwidth complete entreaplications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: PA/a/1996/005759 Country of ref document: MX |
|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AM AT AU BB BG BR BY CA CH CN CZ DE DK EE ES FI GB GE HU IS JP KE KG KP KR KZ LK LR LT LU LV MD MG MN MW MX NO NZ PL PT RO RU SD SE SG SI SK TJ TM TT UA UG UZ |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): KE MW SD SZ UG AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN ML MR NE SN TD TG |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2190115 Country of ref document: CA |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1019960706560 Country of ref document: KR |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1995919221 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
WWP | Wipo information: published in national office |
Ref document number: 1995919221 Country of ref document: EP |