WO2002025951A2 - Method and apparatus for determining a transmission bit rate in a statistical multiplexer - Google Patents

Method and apparatus for determining a transmission bit rate in a statistical multiplexer Download PDF

Info

Publication number
WO2002025951A2
WO2002025951A2 PCT/US2001/027171 US0127171W WO0225951A2 WO 2002025951 A2 WO2002025951 A2 WO 2002025951A2 US 0127171 W US0127171 W US 0127171W WO 0225951 A2 WO0225951 A2 WO 0225951A2
Authority
WO
WIPO (PCT)
Prior art keywords
bit rate
transmission bit
time
current
allocated
Prior art date
Application number
PCT/US2001/027171
Other languages
French (fr)
Other versions
WO2002025951A3 (en
Inventor
Vincent Liu
Siu-Wai Wu
Michael Casteloes
Robert J. Stone
Rebecca Lam
Original Assignee
General Instrument Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by General Instrument Corporation filed Critical General Instrument Corporation
Priority to KR10-2003-7004012A priority Critical patent/KR20030061806A/en
Priority to EP01968344A priority patent/EP1320996B1/en
Priority to CA2422131A priority patent/CA2422131C/en
Priority to AU2001288596A priority patent/AU2001288596A1/en
Priority to DE60131993T priority patent/DE60131993T2/en
Publication of WO2002025951A2 publication Critical patent/WO2002025951A2/en
Publication of WO2002025951A3 publication Critical patent/WO2002025951A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling 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/2365Multiplexing of several video streams
    • H04N21/23655Statistical multiplexing, e.g. by controlling the encoder to alter its bitrate to optimize the bandwidth utilization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer

Definitions

  • the present invention relates to a statistical multiplexer for coding and multiplexing multiple channels of digital television data.
  • Digital television has become increasingly popular due to the high quality video image it provides, along with informational and entertainment features, such as pay-per-view, electronic program guides, video-on-demand, stock, weather and stock information, Internet hyperlinks, and so forth.
  • Such television data can be communicated to a user, for example, via a broadband communication network, such as a satellite or cable television network, or via a computer network.
  • bit rate adjustment is to meet the constraint on the total bit rate of the multiplexed stream, while also maintaining a satisfactory video quality for each program.
  • Such a system should employ a number of individual encoders that encode data from a number of incoming channels of source video data. This data may be obtained from a storage media, live feed, or the like. The system should dynamically allocate bits to the individual encoders to encode frames of video data from the channels.
  • the system should distinguish between an encoding bit rate allocation and a transmission bit rate allocation.
  • the system should assign a transmission bit rate to each video channel to prevent a mismatch between the input and output bits of a modeled decoder buffer.
  • the system should check for impending decoder buffer overflow or underflow events to set minimum and maximum limits on the transmission bit rate. These limits should be set based on whether a new transmission bit rate can be implemented before the decoding time stamp (DTS) of the current or next frame.
  • DTS decoding time stamp
  • the system should be usable with essentially any type of video data, including high-definition (HD) and standard-definition (SD) television (TV).
  • HD high-definition
  • SD standard-definition
  • the present invention provides a system having the above and other advantages.
  • the present invention relates to a statistical multiplexer for coding and multiplexing multiple channels of digital television data.
  • VBR variable bit rate
  • a transmission bit rate is calculated by delaying an encoding bit rate by an amount equal to a system delay.
  • An upper bound (max) and lower bound (min) are placed on the transmission bit rate to protect the decoder buffer.
  • the stat mux system includes three distinct parts:
  • the most up-to-date need parameters from all the video channels are collected by a quantization level processor (QLP), or rate control processor.
  • QLP quantization level processor
  • the rate control processor assigns an encoding bandwidth to each video channel in the form of an encoding bit rate. Each channel receives a different encoding bit rate based on its need parameter in relation to the needs of all the other channels.
  • the encoding bit rate is used to control the video encoding of individual channels.
  • the rate control processor also assigns transmission bit rates to the channels, which determine how many bits are sent by each video channel to a decoder.
  • the single-channel encoder uses the encoding bit rate it is given to perform video compression.
  • the primary task here is a rate control function, which involves using the encoding bit rate and the relative complexities of different frame-types (i.e., I, B and P types) to assign a target bit budget for each frame it is about to encode.
  • a particular method for processing a plurality of channels in a statistical multiplexer includes the steps of: allocating an encoding bit rate for coding a current picture of each channel according to a bit rate need parameter thereof, and allocating a transmission bit rate for transmitting the current picture of each channel after encoding thereof.
  • the transmission bit rate is allocated in accordance with the channel's encoding bit rate after the encoding bit rate has been allocated to the channel, and following a system delay of a modeled buffer of a decoder, to minimize a rate mismatch between an input and an output of the modeled decoder buffer.
  • min. and max. limits are provided for the transmission bit rate to avoid a potential overflow or underflow of a modeled decoder buffer. These limits take into account a delay in implementing a new bit rate, and also account for whether the new bit rate can be implemented before the decoding time of the current picture, the next picture, and/or the next, next picture.
  • the pictures can be, e.g., frames or fields.
  • FIG. 1 illustrates a statistically multiplexed multi-channel encoding system for use in accordance with the present invention.
  • FIG. 2 illustrates an encoder for standard definition television data for use in accordance with the present invention.
  • FIG. 3 illustrates an encoder for high-definition television data for use in accordance with the present invention.
  • FIG. 4(a) illustrates a time line where a new maximum transmission bit rate can be implemented before the decoding time stamp (DTS) of the next frame, in accordance with the present invention.
  • FIG. 4(b) illustrates a time line where a new maximum transmission bit rate can not be implemented before the decoding time stamp (DTS) of the next frame, in accordance with the present invention.
  • FIG. 4(c) illustrates a time line where a new minimum transmission bit rate can be implemented before the decoding time stamp (DTS) of the current frame, in accordance with the present invention.
  • FIG. 4(d) illustrates a time line where a new minimum transmission bit rate can not be implemented before the decoding time stamp (DTS) of the current frame, in accordance with the present invention.
  • FIG. 5 illustrates a method for setting minimum and maximum limits on a transmission bit rate in accordance with the present invention.
  • the present invention relates to a statistical multiplexer for coding and multiplexing multiple channels of digital television data.
  • FIG. 1 illustrates a statistically multiplexed multi-channel encoding system for use in accordance with the present invention.
  • the encoding system 100 includes L buffer/need parameter calculation functions 102, 104, .... 106 that receive corresponding uncompressed source video inputs.
  • the functions 102, 104, ..., 106 provide the need parameter data to a rate control processor 125, which in turn provides a corresponding encoding bit rate allocation to each of the encoders 112, 114, ..., 116.
  • the encoders may provide feedback information to the rate control processor regarding the actual encoding bit rate.
  • the encoded data is provided to a mux 120 to provide a multiplexed bitstream, then to a transport packet buffer 130, and to a transmitter 135 for transmission across a channel.
  • the rate control processor 125 may receive a fullness signal from the transport packet buffer 130.
  • FIG. 2 illustrates an encoder for standard definition television for use in accordance with the present invention.
  • the encoder 112 which is an example one of the encoders 112, 114, ..., 116 of FIG. 1, encodes a single channel of input data, and includes a compressor 210 that performs conventional data compression, including motion compensation (for P- and B-frames), discrete cosine transform (DCT) and quantization.
  • a video first-in, first- out (FIFO) buffer 230 temporarily stores the compressed data, and a packet processor 250 forms packets of the compressed data with appropriate header information, e.g., according to the MPEG-2 or other video standard.
  • FIG. 3 illustrates an encoder for high-definition television for use in accordance with the present invention.
  • the encoder 300 encodes a single channel of input data.
  • a panel splitter 305 divides up a video frame such that different sub-regions, or panels, of the frame are routed to respective different compressors 310-324.
  • Eight compressors are shown as an example only. Typically, the same sub-region of successive frames is assigned to the same compressor.
  • a master compression controller (MCC) 370 controls the compression of the data at each compressor via a peripheral component interconnect (PCI) bus 325, and the compressed data is output to a video FIFO 330 for temporary storage.
  • the compressed data is formed into packets for transport at a packet processor 350.
  • MCC peripheral component interconnect
  • a encoding bit rate need parameter for the HDTV channel is determined by the MCC 370 by summing a need parameter for each of the panel compressors.
  • the encoder 300 is an example one of the encoders 112, 114,..., 116 of FIG. 1.
  • one HDTV encoder may be combined with two or three SDTN encoders in a stat mux group.
  • a key part of a statistically multiplexed multi-channel encoding system of the invention is the calculation of the need parameter.
  • the visual characteristics and complexity information regarding the source video are collected and condensed into a single parameter, which is referred to as the "need parameter".
  • a need parameter is calculated for each video channel, and is updated once per frame whenever a new video frame is processed by the corresponding single-channel encoder 112, 114, ..., 116.
  • the need parameter can be updated more often, such as multiple times per frame.
  • the need parameter can be updated once per field.
  • each video service is assumed to provide a picture complexity measure, such as an ME score or activity level, to the rate control processor 125, which handles the tasks of allocating bandwidth for each television service provider (TSP), e.g., channel, and modulating the transmission rates for each channel.
  • TSP television service provider
  • the ME score can be replaced by other measurements such as the actual number of bits coded under a constant quantization level (QL).
  • the encoders 112, 114, ..., 116 collect the ME scores from all the panels and compute the sum along with other parameters such as average pixel level (APL), picture resolution, frame rate, frame type (I, B or P) and total intra-frame activity. It also keeps a record of the sizes and average QL for past frames. Based on the information available, plus the look ahead parameters from scene change, fade and film detection, the MCC 370 can derive a need parameter for that video channel.
  • APL average pixel level
  • picture resolution picture resolution
  • frame rate frame rate
  • I, B or P frame type
  • total intra-frame activity total intra-frame activity
  • the rate control processor 125 receives an updated need parameter from a buffer/need parameter calculation function 102, 104, ..., 106, it reallocates the bandwidths for all the video services based on the latest information.
  • the bandwidth allocation is sent back to each encoder 112, 114, ..., 116 in the form of an encoding bit rate.
  • the rate control processor 125 uses the bandwidth allocation to compute bit budgets for encoding. It keeps an approximate video buffering verifier (VBN) model, such as is know from the MPEG standard, to ensure that each frame is encoded within acceptable size limits.
  • VBN video buffering verifier
  • the rate control processor 125 keeps a bit accurate model of the decoder buffer 184, and if it is given the sizes of each encoded frame along with the decoding time stamp (DTS), the min. and max. limits on the transmission rate can be calculated and used before a transmission rate change is issued.
  • DTS decoding time stamp
  • a DTS is a field that is present in a PES packet header that indicates the time that an access unit (e.g., picture) is decoded in a system target decoder.
  • the min. and max. rates are used for decoder buffer protection. Under normal conditions, one expects transmission rate changes to follow (with a time lag) the changes in the encoding rate as communicated by the encoders to the rate control processor.
  • the time lag, or system delay is the total buffer system delay through both encode and decode buffers, and is assumed to be the same for all video services in the stat mux group.
  • the system delay includes the time between encoding and decoding of a picture. In the case of multiplexing HD and SD channels, their system delays can be approximately the same if a relative weighting of, e.g., five-to-one between HD and SD channels, is assumed.
  • the encoding bit rates and transmission rates are updated as frequently as the rate control processor can handle. Encoding bit rates are passed on (with the buffer system delay) to become the transmission rate for that channel.
  • each single-channel video encoder is allocated an encoding bit rate (BR) which is used to determine the targeted size to encode a video frame.
  • BR encoding bit rate
  • the single-channel encoder receives updates on its encoding bit rate every QL/BR period, which may occur, e.g., more than ninety times per second. However before encoding a particular video frame, only the latest encoding bit rate is used to calculate the targeted budget size for encoding that frame.
  • the other bandwidth allocation process in accordance with the invention involves the assignment of transmission bit rate to each video channel. This can also be calculated every QL/BR period, or at a faster or slower rate.
  • the transmission rate for a video channel determines how many bits of compressed video should be sent by that channel during a QL/BR period.
  • the sum of transmission bit rates over all the video channels for a particular QL/BR period should be equal to, or less than, the total video bandwidth given to the stat mux system.
  • the sum of encoding bit rates over all the video channels for a particular QL/BR period should be equal to, or less than, the total video bandwidth given to the system.
  • the concept of buffer system delay refers to the time lag from the time a video frame is first encoded at the encoder to the time that video frame is decoded by the decoder, e.g., as designated by the frame's DTS.
  • the buffer system delay is constant once the encoding/decoding system is configured to a certain bit rate.
  • a constant buffer system delay may also be assumed for the present stat mux system.
  • the transmission bit rate is chosen to approximately be a time- lagged version of the encoding bit rate. The time lag between the two rates is equal to the buffer system delay.
  • the transmission bit rate is the same as the rate at which video bits arrive at the decoder buffer. Since the encoding bit rate is used in determining the budget for encoding a video frame, one can also think of it as the decoding rate when that particular frame is decoded.
  • the bit arrival rate at the decoder buffer i.e., the transmission bit rate
  • the decoding bit rate also equals the encoding bit rate delayed by the buffer system delay time.
  • the decoding rate (which controls the output rate of the decode buffer) roughly equals the bit arrival rate at the input of the decoder buffer. Therefore, the present invention minimizes any possible rate mismatch between the output and the input to the decoder buffer. In a fixed rate system, this mismatch never occurs since the encoding bit rate and the transmission bit rate are the same fixed rate.
  • the encoding/decoding bit rate refers to the rate at which a video frame is encoded decoded without considering the effects of different frame types.
  • the assignment of bit budgets according to frame types is done by the rate control function at the individual single-channel encoder. For example, for a given encoding bit rate, the rate controller assigns a large bit budget to an I-frame if that is the type for the frame it is about to encode. Conversely, a B-frame is assigned a much smaller bit budget.
  • the transmission bit rate is only approximately a time-lagged version of the encoding bit rate.
  • the rate control processor 125 has the freedom to set the transmission bit rate differently if necessary.
  • the transmission bit rate deviates from the encoding bit rate, the frames that are already encoded and stored in the transport packet buffer 130 may cause the decoder buffer 184 to overflow or underflow. This is because those frame were originally encoded under the assumption that the transmission rate follows the encoding bit rate exactly.
  • the transmission rate may deviate from the encoding bit rate for several reasons, e.g., temporary congestion in the transmission network, or imprecision in the actual number of bits sent over a QL/BR period of time.
  • the packet processor 250 or 350 check for impending overflow/underflow events, and communicates back to the rate control processor 125 through a set of maximum and minimum transmission bit rate requests.
  • the maximum bit rate defines the highest rate at which the packet processor may send video packets for that channel without overflowing that channel's decoder buffer.
  • the minimum bit rate request informs the rate control processor 125 of the lowest rate at which the individual video channel must send its video bits to get the complete video frame over to the decoder before the frame's decoding time starts.
  • the packet processor (250 or 350) to compute the min. and max. limits on the transmission bit rate, it needs to keep track of the decoder buffer through a decoder buffer model, including the current status of the buffer, the number of frames in it, the DTS and sizes of each frame, and the DTS and size of the frame that is currently being transmitted.
  • a picture is transmitted in advance of its DTS time, of course, e.g., up to 0.5 sec before.
  • the picture data is stored in the decoder's buffer prior to being decoded at the DTS time.
  • the DTS is based on a program clock reference (PCR), which is a clock that runs on an encoder board. This time is periodically sent from the encoder to the decoder to synchronize the devices.
  • PCR clock runs at 27 MHz in a common implementation.
  • the rate control (QL) processor 125 polls all the channels for min. and max. allowable bit rates.
  • the packet processor for each channel calculates these limits as follows.
  • CT is the current time
  • Next_DTS is the time for the decoder to decode its next frame
  • the DTS after that is Next iextJDTS.
  • "Latency”, “delay” or “implementation delay” refer to the interval from the current time until the time when the bit rate can be implemented. This delay accounts for factors such as a signal travel time between the packet processor and the rate control processor, and a time for the rate control processor to calculate a new transmission bit rate. The delay depends on the hardware configuration.
  • the transmission bit rate is updated in successive cycles, which can vary from the cycles for updating the encoding bit rate. Thirty-two transmission bit rate update cycles between DTSs can be used.
  • the interval between DTSs is the inverse of the frame rate, e.g., 1/24 or 1/30 sec.
  • the latency is typically a fraction (e.g., 1/3) of a transmission bit rate update cycle.
  • the current _br is the transmission bit rate for the current cycle received from the rate control processor 125, and scaled by 184/188 to remove the transport packet header bits.
  • the packet processor of each channel outputs packets according to the transmission bit rate assigned to it. Assume an MPEG transport packet having 184 payload bytes and 4 header bytes is used. However, other transport schemes may be used, in which case this adjustment is modified as required.
  • current _br is further adjusted by a "margin" of 61 kbits/sec to account for PCR, PES headers and time stamps. For an HDTV encoder, the margin is doubled to 122 kbits/sec.
  • the maximum bit rate limit is used to prevent the modeled decoder buffer from overflowing for each channel. The requirement is that the decoder buffer should not overflow at the next DTS time.
  • the maximum bit rate is given by the amount of empty buffer space divided by the time until the NextJDTS.
  • the timeline 400 of FIG. 4(a) shows the case where the time for implementing the next transmission bit rate update is prior to the Next TS.
  • the timeline 420 of FIG. 4(b) if the time for implementing the next bit rate update is after the Next_DTS, the buffer overflow condition should be checked for the Next_next_DTS.
  • the maximum bit rate calculation is expressed in the following C-language syntax.
  • next_next_DTS - CT- latency When (CT+latency) ⁇ Next_DTS, the numerator represents the modeled decoder buffer fullness at time (CT+latency), and the denominator represents the time period between (CT+latency) and (Next_DTS). Max_br is then the bit rate that will consume the remaining buffer space when implemented in the time period between (CT+latency) and (Next_DTS). See FIG. 4(a).
  • the numerator represents the modeled decoder buffer fullness at time (CT+latency), and the denominator represents the time period between (CT+latency) and (Next_next_DTS).
  • Max_br is then the bit rate that will consume the remaining buffer space when implemented in the time period between (CT+latency) and (Next_next_DTS).
  • picture_size_of(pict ⁇ re_at_Next_DTS) is the size (e.g., in bits) of the picture whose DTS is NextJDTS. See FIG. 4(b).
  • the term "current frame” refers to the coded video frame that is currently being transmitted.
  • the minimum bit rate is derived from the requirement that the current frame of compressed data must be completely transmitted before the DTS for that frame, otherwise the decoder buffer may underflow during the decoding of that frame.
  • minjbr is not meaningful.
  • min_ br is set to zero if the old bit rate can finish delivering all the remaining bits before DTS occurs; otherwise min_br is set to a large enough value to mitigate any potential decoder buffer underflow problem.
  • min_br HARDWARE_MAX/ 4.
  • no_of_bits_left_currentJr ⁇ me is the number of bits left to send in the current frame at time CT.
  • the numerator for min_br represents the number of bits left to send in the current frame at time CT+latency
  • the denominator represents the time period between (CT+latency) and (DTS_of_current_frame).
  • Min_br is then the smallest bit rate that will enable the remainder of the current frame to be transmitted when implemented in the time period between (CT+latency) and (DTS_of_current_frame). See FIG. 4(c).
  • HARDWAREJVIAX is 28 Mbits/sec for SD and 39 Mbits/sec for HD.
  • minjbr ⁇ no_of_ bitsJ.eft_currentJrame - ⁇ current Jbr - margin) * latency) I (one_QLBR_cycle). In this case, whatever is leftover in the current frame must be sent during the new QL/BR cycle.
  • min and max bit rates are converted back into transport bit rates using a scale factor of 188/184 before they are sent back to the rate control processor, since the rate control processor deals with all transmission bit rates at the transport level.
  • the rate control processor 125 handles the transmission bit rate allocation differently depending on whether or not the total hard minimum exceeds the available bandwidth. If it does, the bandwidth is allocated in proportion to the minimum bit rate requested by the packet processor. Otherwise, the rate control processor resorts to the hard minimums and allocates the remaining bandwidth in proportional to the difference between the requested minimums and the hard minimums.
  • bit_rate[i] bit_rate[i] + br_avail * (min_br[i] - hminbrfi]) / tot_dmin; /* use diff in requested and hard mins */
  • totJarget_br totJarget_br + target_br[i];
  • br_avail br_avail - (sav_bravail * target_br[i] / totJarget_br);
  • bit_rate[i] bit_rate[i] + br_avail * excess_br[i]/tot_excess_br; ⁇
  • FIG. 5 illustrates a method for setting minimum and maximum limits on a transmission bit rate in accordance with the present invention. A summary of the above discussions is provided.
  • An encoding bit rate is first allocated for a current picture (block 500), and a transmission bit rate is allocated in response thereto (block 510), and following a system delay. If a new bit rate can be allocated before a decode time of the next picture, a max. bit rate limit is set to avoid a decoder buffer overflow at the decode time of the next picture (block 530). If a new bit rate can not be allocated before the decode time of the next picture, a max. bit rate limit is set to avoid a decoder buffer overflow at the decode time of the next, next picture (block 540).
  • the min. bit rate is set so that a remainder of the current picture is transmitted before the decode time of the current picture (block 560). If a new bit rate can not be allocated before the decode time of the current picture, a determination is made as to whether the current transmission bit rate is sufficient to transmit the remainder of the current picture before the decode time of the current picture (block 570). If the current bit rate is sufficient, the min. bit rate is set to zero (block 580) since there is no need to force the bit rate higher. If the current bit rate is not sufficient, the min.
  • bit rate is set to a maximum value, such as a hardware maximum (block 590), to force the bit rate to the highest possible level to mitigate any possible buffer underflow at the decode time of the current picture.
  • the transmission bit rate for the current picture is adjusted as necessary in view of the min. and max. limits (block 595).
  • the processing then repeats for the next transmission bit rate allocation cycle.
  • the min. and max. limits take into account a delay in implementing a new bit rate, and also account for whether the new bit rate can be implemented before the decoding time of the current picture, the next picture, and/or the next, next picture.
  • the present invention provides a statistical multiplexer for coding and multiplexing multiple channels of digital television data.
  • a bit rate need parameter is determined for each encoder in a stat mux group, and an encoding bit rate is allocated to each channel based on its need parameter. Additionally, a transmission bit rate is allocated to each channel as a time- lagged version of its need parameter to minimize a rate mismatch between the output and the input of a decoder buffer.
  • a packet processor checks for impending decoder buffer overflow or underflow events to set minimum and maximum limits on the transmission bit rate.

Abstract

A statistical multiplexer for coding and multiplexing multiple channels of digital television data, or multiple panels of HDTV digital television data. A bit rate need parameter is determined (102, 104, 106) for each encoder (112, 114, 116) in a stat mux group, and an encoding bit rate is allocated to each channel based on its need parameter. A transmission bit rate is allocated to each channel as a time-lagged version of its need parameter to minimize a rate mismatch between the output and the input of a decoder buffer (184). A packet processor (250, 350) checks for impending decoder buffer overflow or underflow events to set minimum and maximum limits on the transmission bit rate. Moreover, these limits are set based on whether a new transmission bit rate can be implemented before the decoding time stamp (DTS) of the current or next frame.

Description

METHOD AND APPARATUS FOR DETERMINING A TRANSMISSION BIT RATE IN A STATISTICAL MULTIPLEXER
BACKGROUND OF THE INVENTION
The present invention relates to a statistical multiplexer for coding and multiplexing multiple channels of digital television data.
Digital television has become increasingly popular due to the high quality video image it provides, along with informational and entertainment features, such as pay-per-view, electronic program guides, video-on-demand, stock, weather and stock information, Internet hyperlinks, and so forth. Such television data can be communicated to a user, for example, via a broadband communication network, such as a satellite or cable television network, or via a computer network.
However, due to the bandwidth limitations of the communication channel, it is necessary to adjust a bit rate of the digital video programs that are encoded and multiplexed for transmission in a compressed bit stream. A goal of such bit rate adjustment is to meet the constraint on the total bit rate of the multiplexed stream, while also maintaining a satisfactory video quality for each program.
Accordingly, various types of statistical multiplexers have been developed that evaluate statistical information of the source video that is being encoded, and allocate bits for coding the different video channels accordingly. For example, video channels that have hard-to-compress video, such as a fast motion scene, can be allocated more bits, while channels with relatively easy to compress scenes, such as scenes with little motion, can be allocated fewer bits.
However, there is a need for an improved statistical multiplexing system. Such a system should employ a number of individual encoders that encode data from a number of incoming channels of source video data. This data may be obtained from a storage media, live feed, or the like. The system should dynamically allocate bits to the individual encoders to encode frames of video data from the channels.
The system should distinguish between an encoding bit rate allocation and a transmission bit rate allocation. The system should assign a transmission bit rate to each video channel to prevent a mismatch between the input and output bits of a modeled decoder buffer.
Moreover, the system should check for impending decoder buffer overflow or underflow events to set minimum and maximum limits on the transmission bit rate. These limits should be set based on whether a new transmission bit rate can be implemented before the decoding time stamp (DTS) of the current or next frame.
The system should be usable with essentially any type of video data, including high-definition (HD) and standard-definition (SD) television (TV).
The present invention provides a system having the above and other advantages.
SUMMARY OF THE INVENTION
The present invention relates to a statistical multiplexer for coding and multiplexing multiple channels of digital television data.
Bandwidth is dynamically allocated among a number of variable bit rate (VBR) video services that are multiplexed to form a fixed bit rate transport bit stream.
In particular, a transmission bit rate is calculated by delaying an encoding bit rate by an amount equal to a system delay. An upper bound (max) and lower bound (min) are placed on the transmission bit rate to protect the decoder buffer. The stat mux system includes three distinct parts:
1) The collection of visual characteristics and complexity information for individual video channels and a need parameter is generated for each video channel to indicate how difficult it is to compress that channel. This process is repeated once per frame and it is done by the individual single-channel encoders (which could be SD and/or HD).
2) The most up-to-date need parameters from all the video channels are collected by a quantization level processor (QLP), or rate control processor. The rate control processor assigns an encoding bandwidth to each video channel in the form of an encoding bit rate. Each channel receives a different encoding bit rate based on its need parameter in relation to the needs of all the other channels. The encoding bit rate is used to control the video encoding of individual channels. The rate control processor also assigns transmission bit rates to the channels, which determine how many bits are sent by each video channel to a decoder.
3) The single-channel encoder uses the encoding bit rate it is given to perform video compression. The primary task here is a rate control function, which involves using the encoding bit rate and the relative complexities of different frame-types (i.e., I, B and P types) to assign a target bit budget for each frame it is about to encode. A particular method for processing a plurality of channels in a statistical multiplexer includes the steps of: allocating an encoding bit rate for coding a current picture of each channel according to a bit rate need parameter thereof, and allocating a transmission bit rate for transmitting the current picture of each channel after encoding thereof. For each channel, the transmission bit rate is allocated in accordance with the channel's encoding bit rate after the encoding bit rate has been allocated to the channel, and following a system delay of a modeled buffer of a decoder, to minimize a rate mismatch between an input and an output of the modeled decoder buffer. Moreover, min. and max. limits are provided for the transmission bit rate to avoid a potential overflow or underflow of a modeled decoder buffer. These limits take into account a delay in implementing a new bit rate, and also account for whether the new bit rate can be implemented before the decoding time of the current picture, the next picture, and/or the next, next picture. Note that the pictures can be, e.g., frames or fields.
A corresponding apparatus is also presented.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates a statistically multiplexed multi-channel encoding system for use in accordance with the present invention.
FIG. 2 illustrates an encoder for standard definition television data for use in accordance with the present invention.
FIG. 3 illustrates an encoder for high-definition television data for use in accordance with the present invention.
FIG. 4(a) illustrates a time line where a new maximum transmission bit rate can be implemented before the decoding time stamp (DTS) of the next frame, in accordance with the present invention.
FIG. 4(b) illustrates a time line where a new maximum transmission bit rate can not be implemented before the decoding time stamp (DTS) of the next frame, in accordance with the present invention.
FIG. 4(c) illustrates a time line where a new minimum transmission bit rate can be implemented before the decoding time stamp (DTS) of the current frame, in accordance with the present invention.
FIG. 4(d) illustrates a time line where a new minimum transmission bit rate can not be implemented before the decoding time stamp (DTS) of the current frame, in accordance with the present invention. FIG. 5 illustrates a method for setting minimum and maximum limits on a transmission bit rate in accordance with the present invention.
DETAILED DESCRIPTION OF THE INVENTION
The present invention relates to a statistical multiplexer for coding and multiplexing multiple channels of digital television data.
FIG. 1 illustrates a statistically multiplexed multi-channel encoding system for use in accordance with the present invention.
The encoding system 100 includes L buffer/need parameter calculation functions 102, 104, .... 106 that receive corresponding uncompressed source video inputs. The functions 102, 104, ..., 106 provide the need parameter data to a rate control processor 125, which in turn provides a corresponding encoding bit rate allocation to each of the encoders 112, 114, ..., 116. The encoders may provide feedback information to the rate control processor regarding the actual encoding bit rate. The encoded data is provided to a mux 120 to provide a multiplexed bitstream, then to a transport packet buffer 130, and to a transmitter 135 for transmission across a channel. The rate control processor 125 may receive a fullness signal from the transport packet buffer 130.
At a decoding side 180, a receiver 182, decoder buffer 184, demux 186, and decoder 188 are provided to output a decoded video signal, e.g., for display on a television. FIG. 2 illustrates an encoder for standard definition television for use in accordance with the present invention.
The encoder 112, which is an example one of the encoders 112, 114, ..., 116 of FIG. 1, encodes a single channel of input data, and includes a compressor 210 that performs conventional data compression, including motion compensation (for P- and B-frames), discrete cosine transform (DCT) and quantization. A video first-in, first- out (FIFO) buffer 230 temporarily stores the compressed data, and a packet processor 250 forms packets of the compressed data with appropriate header information, e.g., according to the MPEG-2 or other video standard.
FIG. 3 illustrates an encoder for high-definition television for use in accordance with the present invention. The encoder 300 encodes a single channel of input data. However, a panel splitter 305 divides up a video frame such that different sub-regions, or panels, of the frame are routed to respective different compressors 310-324. Eight compressors are shown as an example only. Typically, the same sub-region of successive frames is assigned to the same compressor. A master compression controller (MCC) 370 controls the compression of the data at each compressor via a peripheral component interconnect (PCI) bus 325, and the compressed data is output to a video FIFO 330 for temporary storage. The compressed data is formed into packets for transport at a packet processor 350.
A encoding bit rate need parameter for the HDTV channel is determined by the MCC 370 by summing a need parameter for each of the panel compressors.
Other statistical information, such as motion estimation scores and the like, are also summed from each compressor
Note that it is possible to combine both SDTN and HDTV encoders in a single stat mux group. In this case, the encoder 300 is an example one of the encoders 112, 114,..., 116 of FIG. 1. For example, one HDTV encoder may be combined with two or three SDTN encoders in a stat mux group. Overview
A key part of a statistically multiplexed multi-channel encoding system of the invention is the calculation of the need parameter. The visual characteristics and complexity information regarding the source video are collected and condensed into a single parameter, which is referred to as the "need parameter". A need parameter is calculated for each video channel, and is updated once per frame whenever a new video frame is processed by the corresponding single-channel encoder 112, 114, ..., 116. Optionally, the need parameter can be updated more often, such as multiple times per frame. Moreover, for field-picture mode, the need parameter can be updated once per field. Discussion In the following description of a stat mux, each video service is assumed to provide a picture complexity measure, such as an ME score or activity level, to the rate control processor 125, which handles the tasks of allocating bandwidth for each television service provider (TSP), e.g., channel, and modulating the transmission rates for each channel. In an encoder with look ahead capability, the ME score can be replaced by other measurements such as the actual number of bits coded under a constant quantization level (QL).
For the high-definition encoder that processes multiple panels of a frame in parallel, the encoders 112, 114, ..., 116 collect the ME scores from all the panels and compute the sum along with other parameters such as average pixel level (APL), picture resolution, frame rate, frame type (I, B or P) and total intra-frame activity. It also keeps a record of the sizes and average QL for past frames. Based on the information available, plus the look ahead parameters from scene change, fade and film detection, the MCC 370 can derive a need parameter for that video channel.
As the rate control processor 125 receives an updated need parameter from a buffer/need parameter calculation function 102, 104, ..., 106, it reallocates the bandwidths for all the video services based on the latest information. The bandwidth allocation is sent back to each encoder 112, 114, ..., 116 in the form of an encoding bit rate. Moreover, the rate control processor 125 uses the bandwidth allocation to compute bit budgets for encoding. It keeps an approximate video buffering verifier (VBN) model, such as is know from the MPEG standard, to ensure that each frame is encoded within acceptable size limits.
Note that the VBN model is only approximate because the actual transmission rate changes that occur at the decode time of a frame cannot be precisely modeled in advance, at the time of encoding. The rate control processor 125 keeps a bit accurate model of the decoder buffer 184, and if it is given the sizes of each encoded frame along with the decoding time stamp (DTS), the min. and max. limits on the transmission rate can be calculated and used before a transmission rate change is issued. As known from the MPEG standard, a DTS is a field that is present in a PES packet header that indicates the time that an access unit (e.g., picture) is decoded in a system target decoder.
Here, the min. and max. rates are used for decoder buffer protection. Under normal conditions, one expects transmission rate changes to follow (with a time lag) the changes in the encoding rate as communicated by the encoders to the rate control processor. The time lag, or system delay, is the total buffer system delay through both encode and decode buffers, and is assumed to be the same for all video services in the stat mux group. The system delay includes the time between encoding and decoding of a picture. In the case of multiplexing HD and SD channels, their system delays can be approximately the same if a relative weighting of, e.g., five-to-one between HD and SD channels, is assumed.
Since all the video services need not be frame-synchronized, the encoding bit rates and transmission rates are updated as frequently as the rate control processor can handle. Encoding bit rates are passed on (with the buffer system delay) to become the transmission rate for that channel.
1. Assignment Of Transmission Bit rate To Each Video Channel At the heart of the statistical multiplexing system is the bandwidth allocation process, which is performed by the rate control processor 125. In our stat mux system, a distinction can be made between two different concepts of bandwidth: one is the allocation of bandwidth to each video channel for the purpose of encoding.
From the perspective of the rate control processor, each single-channel video encoder is allocated an encoding bit rate (BR) which is used to determine the targeted size to encode a video frame. The single-channel encoder receives updates on its encoding bit rate every QL/BR period, which may occur, e.g., more than ninety times per second. However before encoding a particular video frame, only the latest encoding bit rate is used to calculate the targeted budget size for encoding that frame.
The other bandwidth allocation process in accordance with the invention involves the assignment of transmission bit rate to each video channel. This can also be calculated every QL/BR period, or at a faster or slower rate. The transmission rate for a video channel determines how many bits of compressed video should be sent by that channel during a QL/BR period. The sum of transmission bit rates over all the video channels for a particular QL/BR period should be equal to, or less than, the total video bandwidth given to the stat mux system. Similarly, the sum of encoding bit rates over all the video channels for a particular QL/BR period should be equal to, or less than, the total video bandwidth given to the system.
1.1 Relationship between Encoding and Transmission Bit Rates For an MPEG-2 video encoding/decoding system, the concept of buffer system delay refers to the time lag from the time a video frame is first encoded at the encoder to the time that video frame is decoded by the decoder, e.g., as designated by the frame's DTS. For most MPEG-2 systems, the buffer system delay is constant once the encoding/decoding system is configured to a certain bit rate. A constant buffer system delay may also be assumed for the present stat mux system. Furthermore, the transmission bit rate is chosen to approximately be a time- lagged version of the encoding bit rate. The time lag between the two rates is equal to the buffer system delay.
The reason for this particular choice is as follows. If one ignores any latency in the transmission path between transport packet buffer 130 at the encoding side and the decoder buffer 184, the transmission bit rate is the same as the rate at which video bits arrive at the decoder buffer. Since the encoding bit rate is used in determining the budget for encoding a video frame, one can also think of it as the decoding rate when that particular frame is decoded. The bit arrival rate at the decoder buffer (i.e., the transmission bit rate) equals the encoding bit rate delayed by the buffer system delay time, and the decoding bit rate also equals the encoding bit rate delayed by the buffer system delay time. Therefore, when a video frame is decoded, the decoding rate (which controls the output rate of the decode buffer) roughly equals the bit arrival rate at the input of the decoder buffer. Therefore, the present invention minimizes any possible rate mismatch between the output and the input to the decoder buffer. In a fixed rate system, this mismatch never occurs since the encoding bit rate and the transmission bit rate are the same fixed rate. In the above discussion, the encoding/decoding bit rate refers to the rate at which a video frame is encoded decoded without considering the effects of different frame types. The assignment of bit budgets according to frame types is done by the rate control function at the individual single-channel encoder. For example, for a given encoding bit rate, the rate controller assigns a large bit budget to an I-frame if that is the type for the frame it is about to encode. Conversely, a B-frame is assigned a much smaller bit budget.
1.2 Min And Max Bit Rate Requests From The Packet Processor Note that the transmission bit rate is only approximately a time-lagged version of the encoding bit rate. The rate control processor 125 has the freedom to set the transmission bit rate differently if necessary. When the transmission bit rate deviates from the encoding bit rate, the frames that are already encoded and stored in the transport packet buffer 130 may cause the decoder buffer 184 to overflow or underflow. This is because those frame were originally encoded under the assumption that the transmission rate follows the encoding bit rate exactly. The transmission rate may deviate from the encoding bit rate for several reasons, e.g., temporary congestion in the transmission network, or imprecision in the actual number of bits sent over a QL/BR period of time. In the present stat mux system, such deviations are allowed for while still maintaining overflow/underflow protections for the decode buffer. This is achieved by having the packet processor 250 or 350 check for impending overflow/underflow events, and communicates back to the rate control processor 125 through a set of maximum and minimum transmission bit rate requests. The maximum bit rate defines the highest rate at which the packet processor may send video packets for that channel without overflowing that channel's decoder buffer. The minimum bit rate request informs the rate control processor 125 of the lowest rate at which the individual video channel must send its video bits to get the complete video frame over to the decoder before the frame's decoding time starts.
For the packet processor (250 or 350) to compute the min. and max. limits on the transmission bit rate, it needs to keep track of the decoder buffer through a decoder buffer model, including the current status of the buffer, the number of frames in it, the DTS and sizes of each frame, and the DTS and size of the frame that is currently being transmitted.
A picture is transmitted in advance of its DTS time, of course, e.g., up to 0.5 sec before. The picture data is stored in the decoder's buffer prior to being decoded at the DTS time. The DTS is based on a program clock reference (PCR), which is a clock that runs on an encoder board. This time is periodically sent from the encoder to the decoder to synchronize the devices. The PCR clock runs at 27 MHz in a common implementation.
Before each new transmission rate is issued, the rate control (QL) processor 125 polls all the channels for min. and max. allowable bit rates. The packet processor for each channel calculates these limits as follows. CT is the current time, Next_DTS is the time for the decoder to decode its next frame, and the DTS after that is Next iextJDTS. "Latency", "delay" or "implementation delay" refer to the interval from the current time until the time when the bit rate can be implemented. This delay accounts for factors such as a signal travel time between the packet processor and the rate control processor, and a time for the rate control processor to calculate a new transmission bit rate. The delay depends on the hardware configuration.
The transmission bit rate is updated in successive cycles, which can vary from the cycles for updating the encoding bit rate. Thirty-two transmission bit rate update cycles between DTSs can be used. The interval between DTSs is the inverse of the frame rate, e.g., 1/24 or 1/30 sec. The latency is typically a fraction (e.g., 1/3) of a transmission bit rate update cycle.
The current _br is the transmission bit rate for the current cycle received from the rate control processor 125, and scaled by 184/188 to remove the transport packet header bits. The packet processor of each channel outputs packets according to the transmission bit rate assigned to it. Assume an MPEG transport packet having 184 payload bytes and 4 header bytes is used. However, other transport schemes may be used, in which case this adjustment is modified as required. In the following equations, current _br is further adjusted by a "margin" of 61 kbits/sec to account for PCR, PES headers and time stamps. For an HDTV encoder, the margin is doubled to 122 kbits/sec. These values, again, are specific to the MPEG coding standard, but the invention is suitable for use with other coding and transmission schemes as well. The maximum bit rate limit is used to prevent the modeled decoder buffer from overflowing for each channel. The requirement is that the decoder buffer should not overflow at the next DTS time. By monitoring the amount of space in the decoder buffer at the Next_DTS time {decode _buffer_size - decode _huffer), assuming no new bits are transmitted, and adjusting for the latency in the rate control processor' s response, the maximum bit rate is given by the amount of empty buffer space divided by the time until the NextJDTS.
The timeline 400 of FIG. 4(a) shows the case where the time for implementing the next transmission bit rate update is prior to the Next TS. As shown in the timeline 420 of FIG. 4(b), if the time for implementing the next bit rate update is after the Next_DTS, the buffer overflow condition should be checked for the Next_next_DTS. The maximum bit rate calculation is expressed in the following C-language syntax. If ( CT + latency ) < Next_DTS then max_br = ( decode_bυffer_size- decode_buffer - [current_br +margin)* latency ) f(Next_DTS - CT- latency); else max__br = ( decode_buffer_size - decode_buffer + picture_size_of(p\cture_aϊ_ Next_DTS ) - {current_br + margin)* latency ) I
( Next_next_DTS - CT- latency) When (CT+latency)<Next_DTS, the numerator represents the modeled decoder buffer fullness at time (CT+latency), and the denominator represents the time period between (CT+latency) and (Next_DTS). Max_br is then the bit rate that will consume the remaining buffer space when implemented in the time period between (CT+latency) and (Next_DTS). See FIG. 4(a).
When (CT+latency)≥Next_DTS, the numerator represents the modeled decoder buffer fullness at time (CT+latency), and the denominator represents the time period between (CT+latency) and (Next_next_DTS). Max_br is then the bit rate that will consume the remaining buffer space when implemented in the time period between (CT+latency) and (Next_next_DTS). picture_size_of(pictαre_at_Next_DTS) is the size (e.g., in bits) of the picture whose DTS is NextJDTS. See FIG. 4(b).
In the code for min. bit rate calculations, below, the term "current frame" refers to the coded video frame that is currently being transmitted. The minimum bit rate is derived from the requirement that the current frame of compressed data must be completely transmitted before the DTS for that frame, otherwise the decoder buffer may underflow during the decoding of that frame. First, check if the next bit rate change occurs before the DTS time of the current frame ( i.e. CT + latency < DTS_of_current_frame). If so, as shown in the timeline 440 of FIG. 4(c), it is meaningful to calculate a minjbr defined as the minimum constant bit rate required to send the remainder of the frame before the DTS time. Xϊminjjr turns out to be zero or less (this could happen if, for a given latency, the no_of_bits_left_current_frame <= current_br * latency) then min_br is set to zero. This means there is no minimum requirement on the new bit rate.
For the special case when the DTS is so close to the current time that CT + latency > DTS_of_current_frame, as shown in the timeline 460 of FIG. 4(d), minjbr is not meaningful. In this case, min_ br is set to zero if the old bit rate can finish delivering all the remaining bits before DTS occurs; otherwise min_br is set to a large enough value to mitigate any potential decoder buffer underflow problem. The minimum bit rate calculation is expressed in the following C-language syntax. If ( latency < DTS_of_current_frame - CT ) then minjor = ( no_of_bits_left_current_frame - (current_br - margin) * latency ) I
(DTS_of_current_frame - CT - latency );
If (min_br < 0) then min_br = 0; else
If ( No_of_bits_left_current_frame < {current_br- margin) *(DTS_of_current_frame - CT) ) then min_br = 0; else min_br = HARDWARE_MAX/ 4. no_of_bits_left_currentJrαme is the number of bits left to send in the current frame at time CT. When {latency < DTS_of_current_frame - CT), the numerator for min_br represents the number of bits left to send in the current frame at time CT+latency, and the denominator represents the time period between (CT+latency) and (DTS_of_current_frame). Min_br is then the smallest bit rate that will enable the remainder of the current frame to be transmitted when implemented in the time period between (CT+latency) and (DTS_of_current_frame). See FIG. 4(c).
Note that setting min_br=0 essentially maintains the current transmission bit rate. The code "minjbr = HARDWARE_MAX/ 4" denotes a "panic mode" where there is not enough bandwidth to send the rest of the picture across the communication channel to the decoder before the DTS of the current picture. HARDWAREJVIAX is 28 Mbits/sec for SD and 39 Mbits/sec for HD. An alternative is to set minjbr = { no_of_ bitsJ.eft_currentJrame - {current Jbr - margin) * latency) I (one_QLBR_cycle). In this case, whatever is leftover in the current frame must be sent during the new QL/BR cycle.
Note that min and max bit rates are converted back into transport bit rates using a scale factor of 188/184 before they are sent back to the rate control processor, since the rate control processor deals with all transmission bit rates at the transport level.
1.3 A C-language syntax for a transmission bit rate process in accordance with the invention
(1) Initialize the bit rate parameters to nominal values.
for (i=0; i<num_mem; i++){ min_br[i] = nom_br; max_br[i] = nom_br; target_br[i] = nom_br; bit_rate[i] = nom_br; br_avail = br_avail - nom_br;
} (2) Calculate the total hard minimum transmission bit rate for the stat mux, then bound the minimum and maximum bit rates by the hard limits. Ignore the hard minimum if the total hard minimum exceeds the available bandwidth. Optionally, the user can set individual hard limits for each channel. totjimin = 0;
for (i=0; i<num_mem; i++) totjimin = totjimin + hminbr[i]; /* total hard minimum */
totjimin = 1.5 * totjimin;
for (i=0; i<num_mem; i++){ if (min_br[i] < hminbr[i]) if (totjimin < br_avail) min_br[i] = hminbrfi];
if (min_br[i] > hmaxbr[i]) min_br[i] = hmaxbr[i];
if (max_br[i] > hmaxbr[i]) max_br[i] = hmaxbr[i];
if (max_br[i] < hminbrfi]) if (totjimin < br_avail) max_br[i] = hminbr[i];
} (3) If the total minimum bit rate requested by the packet processor 250 (PP) of a channel encoder exceeds the available bandwidth, the rate control processor 125 handles the transmission bit rate allocation differently depending on whether or not the total hard minimum exceeds the available bandwidth. If it does, the bandwidth is allocated in proportion to the minimum bit rate requested by the packet processor. Otherwise, the rate control processor resorts to the hard minimums and allocates the remaining bandwidth in proportional to the difference between the requested minimums and the hard minimums.
totaljnin = tot_dmin = 0;
for (i=0; i<num_mem; i++) totjnin = tot_min + min_br[i];
if (totjnin > br_avail){ /* we don't have enough for all mins */; for (i=0; i<num_mem; i++) tot_dmin = tot_dmin + (min_br[i] - hminbr[i]);
if (totjimin > br_avail){ for (i=0; i<num_mem; i++) /* allocate proportional to minbrp] */ bit_rate[i] = br_avail * minbr[i] / tot_min;
} else { for (i = 0; i < num_mem; i++){ bit_rate[i] = hminbr[i]; /* allocate hard minimums first */ br_avail = br_avail - hminbr[i];
} if (br_avail > 0){ for (i = 0; i < num_mem; i++) bit_rate[i] = bit_rate[i] + br_avail * (min_br[i] - hminbrfi]) / tot_dmin; /* use diff in requested and hard mins */
}
}
/* at this point no more br_avail */
br_avail = 0;
}
(4) If the total minimum bit rate requested by the packet processor of a channel does not exceed the available bandwidth, then allocate the minimum requested bandwidth to each channel, and adjust the target bit rate for each channel.
totJarget_br = 0;
for (i=0;i<num_mem;i++){ br_avail=br_avail - min_br[i]; bit_rate[i] = min_br[i]; if (target_br[i] > min_br[i]) target_br[i] = target_br[i] - min_br[i]; else target_br[i] = 0;
totJarget_br = totJarget_br + target_br[i];
} (5) If there is still bandwidth available, distribute it in proportion to the channels' target bandwidths. sav_bravail = br_avail; if (br_avail > 0){ for (i=0; i<num_mem; i++){ if (tot arget_br != 0){ bit_rate[i] = bit_rate[i] +
(sav_bravail * target_br[i] / totJarget_br); br_avail = br_avail - (sav_bravail * target_br[i] / totJarget_br);
} if (bit_rate[i] > max_br[i]){ bit_rate[i] = max_br[i]; br_avail = br_avail + (bit_rate[i] - max_br[i]); }
} }
(6) If there is still bandwidth available, distribute it in proportion to the difference between the max J itrate and the bit rate assigned, without exceeding the max bitrate.
if (br_avail > 0){ tot_excess_br = 0; for (i=0; i<num_mem; i++){ if (bit_rate[i] < max_br[i]) excess jDr[i] = max_br[i]-bit_rate[i]; else excess_br[i] = 0; tot_excess_br = tot_excess_br + excess J)r[i];
} if (tot_excess_br <= br_avail){ for(i=0; i<num_mem; i++) bit__rate[i] = max_br[i]; br_avail = br_avail - tot_excess_br;
} else{ for (i=0; i<num_mem; i++) bit_rate[i] = bit_rate[i] + br_avail * excess_br[i]/tot_excess_br; }
}
FIG. 5 illustrates a method for setting minimum and maximum limits on a transmission bit rate in accordance with the present invention. A summary of the above discussions is provided.
An encoding bit rate is first allocated for a current picture (block 500), and a transmission bit rate is allocated in response thereto (block 510), and following a system delay. If a new bit rate can be allocated before a decode time of the next picture, a max. bit rate limit is set to avoid a decoder buffer overflow at the decode time of the next picture (block 530). If a new bit rate can not be allocated before the decode time of the next picture, a max. bit rate limit is set to avoid a decoder buffer overflow at the decode time of the next, next picture (block 540).
For setting a minimum limit on the transmission bit rate (550), e.g., to avoiding a possible decoder buffer underflow, if a new bit rate can be allocated before the decode time of the current picture, the min. bit rate is set so that a remainder of the current picture is transmitted before the decode time of the current picture (block 560). If a new bit rate can not be allocated before the decode time of the current picture, a determination is made as to whether the current transmission bit rate is sufficient to transmit the remainder of the current picture before the decode time of the current picture (block 570). If the current bit rate is sufficient, the min. bit rate is set to zero (block 580) since there is no need to force the bit rate higher. If the current bit rate is not sufficient, the min. bit rate is set to a maximum value, such as a hardware maximum (block 590), to force the bit rate to the highest possible level to mitigate any possible buffer underflow at the decode time of the current picture. The transmission bit rate for the current picture is adjusted as necessary in view of the min. and max. limits (block 595). The processing then repeats for the next transmission bit rate allocation cycle. The min. and max. limits take into account a delay in implementing a new bit rate, and also account for whether the new bit rate can be implemented before the decoding time of the current picture, the next picture, and/or the next, next picture.
Accordingly, it can be seen that the present invention provides a statistical multiplexer for coding and multiplexing multiple channels of digital television data. A bit rate need parameter is determined for each encoder in a stat mux group, and an encoding bit rate is allocated to each channel based on its need parameter. Additionally, a transmission bit rate is allocated to each channel as a time- lagged version of its need parameter to minimize a rate mismatch between the output and the input of a decoder buffer. A packet processor checks for impending decoder buffer overflow or underflow events to set minimum and maximum limits on the transmission bit rate.
Although the invention has been described in connection with various preferred embodiments, it should be appreciated that various modifications and adaptations may be made thereto without departing from the scope of the invention as set forth in the claims.

Claims

What is claimed is:
1. A method for processing a plurality of channels in a statistical multiplexer, comprising the steps of: allocating an encoding bit rate for coding a current picture of each channel according to a bit rate need parameter thereof; and for each channel, allocating a transmission bit rate for transmitting the current picture after encoding thereof, and providing a modeled decoder buffer that receives transmitted pictures therefrom; wherein, for each channel, the transmission bit rate is based on the channel's encoding bit rate, and is allocated following a system delay that follows the allocated encoding bit rate, to minimize a rate mismatch between an input and an output of the modeled decoder buffer.
2. The method of claim 1 , wherein: for at least one of the channels, the transmission bit rate is allowed to deviate from the channel's encoding bit rate to avoid an impending overflow or underflow event of the modeled decoder buffer.
3. The method of claim 1 , comprising the further step of: for at least one of the channels, checking for impending overflow or underflow events of the modeled decoder buffer to set at least one of minimum and maximum limits on the transmission bit rates for the channel.
4. The method of claim 1, wherein for at least one of the channels, when a next update of the allocated transmission bit rate can be implemented, following an implementation delay, before a decode time of a next picture, a maximum limit is set on the allocated transmission bit rate at a current time (CT) in proportion to a fullness of the modeled decoder buffer at a time (CT+delay), and in inverse proportion to a time period between (CT+delay) and the decode time.
5. The method of claim 1 , wherein for at least one of the channels, when a next update of the allocated transmission bit rate can not be implemented, following an implementation delay, before a decode time of a next picture, a maximum limit is set on the allocated transmission bit rate at a current time (CT) in proportion to a fullness of the modeled decoder buffer at a time (CT+delay), and in inverse proportion to a time period between (CT+delay) and a decode time of a picture that follows said next picture.
6. The method of claim 1 , wherein for at least one of the channels, when a next update of the allocated transmission bit rate can be implemented, following an implementation delay, before a decode time of the current picture, a minimum limit is set on the allocated transmission bit rate at a current time (CT) in proportion to a number of remaining bits of the current picture to transmit at a time (CT+delay), and in inverse proportion to a time period between (CT+delay) and the decode time.
7. The method of claim 1 , comprising the further step of: for at least one of the channels, determining whether a current allocated transmission bit rate is sufficient to transmit a number of remaining bits of the current picture in a time period between a current time and a decode time of the current picture, and, if so, maintaining the current allocated transmission bit rate in a next update cycle thereof.
8. The method of claim 1, comprising the further step of: for at least one of the channels, forcing the allocated transmission bit rate to a maximum value in a next update cycle thereof when a current allocated transmission bit rate is not sufficient to transmit a number of remaining bits of the current picture in a time period between a current time and a decode time of the current picture.
9. The method of claim 1 , wherein for at least one of the channels, when a next update of the allocated transmission bit rate can be implemented, following an implementation delay, before a decode time of a next picture, a maximum limit is set on the allocated fransmission bit rate at a current time to avoid an overflow of the modeled decoder buffer at the decode time.
10. The method of claim 1 , wherein for at least one of the channels, when a next update of the allocated transmission bit rate can not be implemented, following an implementation delay, before a decode time of a next picture, a maximum limit is set on the allocated transmission bit rate at a current time to avoid an overflow of the modeled decoder buffer at a decode time of a picture that follows said next picture.
11. The method of claim 1 , wherein: for at least one of the channels, when a next update of the allocated transmission bit rate can be implemented, following an implementation delay, before a decode time of the current picture, a minimum limit is set on the allocated transmission bit rate at a current time such that the current picture is completely transmitted before the decode time.
12. The method of claim 1 , wherein: for at least one of the channels, when a next update of the allocated transmission bit rate can not be implemented, following an implementation delay, before a decode time of the current picture, a minimum limit on the allocated transmission bit rate at a current time is set to a maximum value to mitigate a potential underflow of the modeled decoder buffer.
13. An apparatus for processing a plurality of channels in a statistical multiplexer, comprising: means for allocating an encoding bit rate for coding a current picture of each channel according to a bit rate need parameter thereof; and means for allocating a transmission bit rate for transmitting the current picture after encoding thereof, and providing a modeled decoder buffer that receives transmitted pictures therefrom, for each channel; wherein, for each channel, the transmission bit rate is based on the channel's encoding bit rate, and is allocated following a system delay that follows the allocated encoding bit rate, to minimize a rate mismatch between an input and an output of the modeled decoder buffer.
PCT/US2001/027171 2000-09-20 2001-08-31 Method and apparatus for determining a transmission bit rate in a statistical multiplexer WO2002025951A2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR10-2003-7004012A KR20030061806A (en) 2000-09-20 2001-08-31 Method and apparatus for determining a transmission bit rate in a statistical multiplexer
EP01968344A EP1320996B1 (en) 2000-09-20 2001-08-31 Method and apparatus for determining a transmission bit rate in a statistical multiplexer
CA2422131A CA2422131C (en) 2000-09-20 2001-08-31 Method and apparatus for determining a transmission bit rate in a statistical multiplexer
AU2001288596A AU2001288596A1 (en) 2000-09-20 2001-08-31 Method and apparatus for determining a transmission bit rate in a statistical multiplexer
DE60131993T DE60131993T2 (en) 2000-09-20 2001-08-31 METHOD AND DEVICE FOR DETERMINING THE TRANSMISSION BITRATE IN A STATISTICAL MULTIPLEXER

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/666,901 2000-09-20
US09/666,901 US7418007B1 (en) 2000-09-20 2000-09-20 Method and apparatus for determining a transmission bit rate in a statistical multiplexer

Publications (2)

Publication Number Publication Date
WO2002025951A2 true WO2002025951A2 (en) 2002-03-28
WO2002025951A3 WO2002025951A3 (en) 2002-06-13

Family

ID=24675971

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/027171 WO2002025951A2 (en) 2000-09-20 2001-08-31 Method and apparatus for determining a transmission bit rate in a statistical multiplexer

Country Status (10)

Country Link
US (1) US7418007B1 (en)
EP (1) EP1320996B1 (en)
KR (1) KR20030061806A (en)
CN (1) CN1315328C (en)
AT (1) ATE381855T1 (en)
AU (1) AU2001288596A1 (en)
CA (1) CA2422131C (en)
DE (1) DE60131993T2 (en)
TW (1) TW519834B (en)
WO (1) WO2002025951A2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1379091A1 (en) 2002-07-04 2004-01-07 LG Electronics Inc. Video encoding and decoding apparatus and method for a communication terminal
WO2004052015A1 (en) 2002-11-29 2004-06-17 Sony Corporation Encoder and its method
US20050243922A1 (en) * 2004-04-16 2005-11-03 Modulus Video, Inc. High definition scalable array encoding system and method
WO2007038807A2 (en) * 2005-09-29 2007-04-05 Thomson Research Funding Corporation Method and apparatus for constrained variable bit rate (vbr) video encoding
CN100353766C (en) * 2002-11-12 2007-12-05 松下电器产业株式会社 Data stream replaying equipment and method, digital broadcast receiver and correlative computer program
EP1942594A2 (en) 2007-01-08 2008-07-09 General instrument Corporation Method and apparatus for statistically multiplexing services
EP2485441A1 (en) * 2011-01-31 2012-08-08 Alcatel Lucent A video packet scheduling method for multimedia streaming
EP2523456A1 (en) * 2011-05-12 2012-11-14 Alcatel Lucent Method for operating a statistical multiplexing of distributed video streams.
CN103202015A (en) * 2010-09-30 2013-07-10 富士通株式会社 Dynamic image encoding device, dynamic image encoding method, and computer program for dynamic image encoding
EP2667603A1 (en) * 2011-01-18 2013-11-27 Fujitsu Limited Moving picture encoding device, moving picture encoding method and computer program for moving picture encoding

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090219879A1 (en) 1999-05-21 2009-09-03 Wi-Lan, Inc. Method and apparatus for bandwidth request/grant protocols in a wireless communication system
US7006530B2 (en) 2000-12-22 2006-02-28 Wi-Lan, Inc. Method and system for adaptively obtaining bandwidth allocation requests
US6925068B1 (en) 1999-05-21 2005-08-02 Wi-Lan, Inc. Method and apparatus for allocating bandwidth in a wireless communication system
US8462810B2 (en) * 1999-05-21 2013-06-11 Wi-Lan, Inc. Method and system for adaptively obtaining bandwidth allocation requests
US20070019687A1 (en) * 2002-06-04 2007-01-25 Eci Telecom Ltd. Technique for converting bit rates
WO2006099695A1 (en) * 2005-03-21 2006-09-28 Newtec Cy Managing traffic in a satellite transmission system
DE102006034414B4 (en) * 2006-07-25 2010-12-09 Nokia Siemens Networks Gmbh & Co.Kg Arrangement and method for decoding digital data
US9179366B2 (en) * 2006-08-31 2015-11-03 Intel Corporation Scheduling methods and apparatus based on adjusted channel capacity
US8745676B2 (en) * 2006-12-19 2014-06-03 General Instrument Corporation Admitting a data file into a channel
US8068423B2 (en) * 2008-09-09 2011-11-29 Ericsson Television, Inc Packet scheduling system for digital video broadcasting
WO2010138913A1 (en) * 2009-05-29 2010-12-02 Harmonic, Inc. Systems and methods for video statistical multiplexing adapting to internet protocol networks
US8751881B1 (en) * 2009-11-06 2014-06-10 Brocade Communications Systems, Inc. Transmission buffer under-run protection
US9271052B2 (en) * 2010-05-10 2016-02-23 Comcast Cable Communications, Llc Grid encoded media asset data
US9167256B2 (en) * 2010-08-31 2015-10-20 Arris Technology, Inc. Method and apparatus for encoding
US8898718B2 (en) 2011-01-27 2014-11-25 International Business Machines Corporation Systems and methods for managed video services at edge-of-the-network
CN103179434B (en) * 2011-12-22 2016-01-27 晨星软件研发(深圳)有限公司 Package receiver and method for processing packet thereof
FR2990814B1 (en) * 2012-05-18 2014-05-16 Assistance Tech Et Etude De Materiels Electroniques METHOD AND TREATMENT SYSTEM FOR GENERATING AT LEAST TWO COMPRESSED VIDEO STREAMS
US20140112386A1 (en) * 2012-10-22 2014-04-24 General Instrument Corporation Algorithms for determining bitrate for a statistical multiplexing system to account for signal complexity including film mode and gop structural changes
US20140301481A1 (en) * 2013-04-04 2014-10-09 Magnum Semiconductor, Inc. Apparatuses and methods for pooling multiple channels into a multi-program transport stream
US10264043B2 (en) * 2014-04-23 2019-04-16 Ericsson Ab Outage notification with client control modification in an ABR streaming network
CN104639955B (en) * 2015-03-09 2017-10-27 德科仕通信(上海)有限公司 The method for detecting MPEG2 TS VBR code stream quality problems
JP6454006B2 (en) * 2015-04-28 2019-01-16 株式会社日立国際電気 Video surveillance system and video surveillance method
US10070136B2 (en) 2016-02-16 2018-09-04 Arris Enterprises Llc Statistical multiplexing with heterogeneous encoder pool
US10904313B2 (en) * 2017-06-20 2021-01-26 Telefonaktiebolaget Lm Ericsson (Publ) Apparatuses, methods, computer programs, and computer program products for live uplink adaptive streaming
EP3643032B1 (en) * 2017-06-20 2021-04-07 Telefonaktiebolaget LM Ericsson (PUBL) Apparatuses and methods for live uplink adaptive streaming
US10225211B2 (en) 2017-07-20 2019-03-05 Arris Enterprises Llc Statistical multiplexer with service priority weighting
EP4322495A1 (en) * 2022-08-08 2024-02-14 Rohde & Schwarz GmbH & Co. KG Method as well as system for transmitting data by means of radio signals and adapting transmission rate of one or more entities by means of data encoding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0685971A2 (en) * 1994-05-25 1995-12-06 Sony Corporation Video coding apparatus comprising a plurality of encoders
US5550590A (en) * 1994-03-04 1996-08-27 Kokusai Denshin Denwa Kabushiki Kaisha Bit rate controller for multiplexer of encoded video
EP0804035A2 (en) * 1996-04-25 1997-10-29 Matsushita Electric Industrial Co., Ltd. Moving picture encoding apparatus and method
US5793425A (en) * 1996-09-13 1998-08-11 Philips Electronics North America Corporation Method and apparatus for dynamically controlling encoding parameters of multiple encoders in a multiplexed system
FR2790899A1 (en) * 1999-03-09 2000-09-15 Thomson Broadcast Systems DEVICE AND METHOD FOR REGULATING THROUGHPUT IN A SYSTEM FOR STATISTICAL MULTIPLEXING OF STREAMS OF IMAGES CODED ACCORDING TO MPEG 2 CODING

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5159447A (en) * 1991-05-23 1992-10-27 At&T Bell Laboratories Buffer control for variable bit-rate channel
US5216503A (en) 1991-12-24 1993-06-01 General Instrument Corporation Statistical multiplexer for a multichannel image compression system
US6055270A (en) 1994-04-20 2000-04-25 Thomson Cosumer Electronics, Inc. Multiplexer system using constant bit rate encoders
US5933450A (en) 1994-04-20 1999-08-03 Thomson Consumer Electronics, Inc. Complexity determining apparatus
US5606369A (en) * 1994-12-28 1997-02-25 U.S. Philips Corporation Buffering for digital video signal encoders using joint bit-rate control
GB9517130D0 (en) * 1995-08-22 1995-10-25 Nat Transcommunications Ltd Statistical multiplexing
US5861919A (en) * 1995-12-18 1999-01-19 Divicom Dynamic rate optimization for an ensemble of video encoders
US5761398A (en) 1995-12-26 1998-06-02 C-Cube Microsystems Inc. Three stage hierarchal motion vector determination
US5929916A (en) 1995-12-26 1999-07-27 Legall; Didier J. Variable bit rate encoding
US5963256A (en) * 1996-01-11 1999-10-05 Sony Corporation Coding according to degree of coding difficulty in conformity with a target bit rate
WO1998032252A1 (en) * 1997-01-21 1998-07-23 Sony Corporation Coded signal transmission method and device
US6023296A (en) 1997-07-10 2000-02-08 Sarnoff Corporation Apparatus and method for object based rate control in a coding system
EP0944249B1 (en) * 1997-10-03 2007-12-19 Sony Corporation Encoded stream splicing device and method, and an encoded stream generating device and method
US6167084A (en) 1998-08-27 2000-12-26 Motorola, Inc. Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals
US6594271B1 (en) 1999-07-19 2003-07-15 General Instruments Corporation Implementation of opportunistic data on a statistical multiplexing encoder
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5550590A (en) * 1994-03-04 1996-08-27 Kokusai Denshin Denwa Kabushiki Kaisha Bit rate controller for multiplexer of encoded video
EP0685971A2 (en) * 1994-05-25 1995-12-06 Sony Corporation Video coding apparatus comprising a plurality of encoders
EP0804035A2 (en) * 1996-04-25 1997-10-29 Matsushita Electric Industrial Co., Ltd. Moving picture encoding apparatus and method
US5793425A (en) * 1996-09-13 1998-08-11 Philips Electronics North America Corporation Method and apparatus for dynamically controlling encoding parameters of multiple encoders in a multiplexed system
FR2790899A1 (en) * 1999-03-09 2000-09-15 Thomson Broadcast Systems DEVICE AND METHOD FOR REGULATING THROUGHPUT IN A SYSTEM FOR STATISTICAL MULTIPLEXING OF STREAMS OF IMAGES CODED ACCORDING TO MPEG 2 CODING

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WANG L ET AL: "BIT ALLOCATION AND CONSTRAINTS FOR JOINT CODING OF MULTIPLE VIDEO PROGRAMS" IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE INC. NEW YORK, US, vol. 9, no. 6, September 1999 (1999-09), pages 949-959, XP000848859 ISSN: 1051-8215 *

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7522665B2 (en) 2002-07-04 2009-04-21 Lg Electronics Inc. Mobile terminal with camera
EP1379091A1 (en) 2002-07-04 2004-01-07 LG Electronics Inc. Video encoding and decoding apparatus and method for a communication terminal
CN100353766C (en) * 2002-11-12 2007-12-05 松下电器产业株式会社 Data stream replaying equipment and method, digital broadcast receiver and correlative computer program
US8798167B2 (en) 2002-11-29 2014-08-05 Sony Corporation Encoder and its method
US9654812B2 (en) 2002-11-29 2017-05-16 Sony Corporation Encoding apparatus and the method
EP2557785A1 (en) * 2002-11-29 2013-02-13 Sony Corporation Delay controlled decoding method and apparatus
EP2557788A1 (en) * 2002-11-29 2013-02-13 Sony Corporation Encoding apparatus and the method
EP1581004A1 (en) * 2002-11-29 2005-09-28 Sony Corporation Encoder and its method
WO2004052015A1 (en) 2002-11-29 2004-06-17 Sony Corporation Encoder and its method
EP1581004A4 (en) * 2002-11-29 2010-02-24 Sony Corp Encoder and its method
EP2557787A1 (en) * 2002-11-29 2013-02-13 Sony Corporation Encoding apparatus and the method
US9516361B2 (en) 2002-11-29 2016-12-06 Sony Corporation Encoding apparatus and the method
EP2557786A1 (en) * 2002-11-29 2013-02-13 Sony Corporation Delay controlled decoding apparatus and method
US20050243922A1 (en) * 2004-04-16 2005-11-03 Modulus Video, Inc. High definition scalable array encoding system and method
US8477840B2 (en) 2005-09-29 2013-07-02 Thomson Research Funding Corporation Method and apparatus for constrained variable bit rate (VBR) video encoding
WO2007038807A2 (en) * 2005-09-29 2007-04-05 Thomson Research Funding Corporation Method and apparatus for constrained variable bit rate (vbr) video encoding
WO2007038807A3 (en) * 2005-09-29 2007-06-07 Thomson Res Funding Corp Method and apparatus for constrained variable bit rate (vbr) video encoding
EP1942594A2 (en) 2007-01-08 2008-07-09 General instrument Corporation Method and apparatus for statistically multiplexing services
CN103202015A (en) * 2010-09-30 2013-07-10 富士通株式会社 Dynamic image encoding device, dynamic image encoding method, and computer program for dynamic image encoding
EP2624554A1 (en) * 2010-09-30 2013-08-07 Fujitsu Limited Dynamic image encoding device, dynamic image encoding method, and computer program for dynamic image encoding
EP2624554A4 (en) * 2010-09-30 2015-01-07 Fujitsu Ltd Dynamic image encoding device, dynamic image encoding method, and computer program for dynamic image encoding
US9621886B2 (en) 2010-09-30 2017-04-11 Fujitsu Limited Motion video encoding apparatus, motion video encoding method, and motion video encoding computer program
EP2667603A1 (en) * 2011-01-18 2013-11-27 Fujitsu Limited Moving picture encoding device, moving picture encoding method and computer program for moving picture encoding
EP2667603A4 (en) * 2011-01-18 2015-01-07 Fujitsu Ltd Moving picture encoding device, moving picture encoding method and computer program for moving picture encoding
CN103339912A (en) * 2011-01-31 2013-10-02 阿尔卡特朗讯公司 A video packet scheduling method for multimedia streaming
JP2014510438A (en) * 2011-01-31 2014-04-24 アルカテル−ルーセント Video packet scheduling method for multimedia streaming
WO2012104108A1 (en) * 2011-01-31 2012-08-09 Alcatel Lucent A video packet scheduling method for multimedia streaming
EP2485441A1 (en) * 2011-01-31 2012-08-08 Alcatel Lucent A video packet scheduling method for multimedia streaming
EP2523456A1 (en) * 2011-05-12 2012-11-14 Alcatel Lucent Method for operating a statistical multiplexing of distributed video streams.

Also Published As

Publication number Publication date
ATE381855T1 (en) 2008-01-15
CA2422131A1 (en) 2002-03-28
TW519834B (en) 2003-02-01
DE60131993T2 (en) 2008-12-11
WO2002025951A3 (en) 2002-06-13
EP1320996A2 (en) 2003-06-25
KR20030061806A (en) 2003-07-22
AU2001288596A1 (en) 2002-04-02
CN1461568A (en) 2003-12-10
EP1320996B1 (en) 2007-12-19
US7418007B1 (en) 2008-08-26
CN1315328C (en) 2007-05-09
CA2422131C (en) 2012-05-15
DE60131993D1 (en) 2008-01-31

Similar Documents

Publication Publication Date Title
CA2422131C (en) Method and apparatus for determining a transmission bit rate in a statistical multiplexer
US6493388B1 (en) Rate control and buffer protection for variable bit rate video programs over a constant rate channel
US6847656B1 (en) Statistical remultiplexing with bandwidth allocation among different transcoding channels
US6845107B1 (en) Video data multiplexer, video data multiplexing control method, method and apparatus for multiplexing encoded stream, and encoding method and apparatus
US8437389B2 (en) Statistical remultiplexing of compressed video segments
CA2361047C (en) Method and apparatus for assuring sufficient bandwidth of a statistical multiplexer
JP2002534921A (en) Method and apparatus for detecting and preventing bandwidth overflow in a statistical multiplexer
US20210235138A1 (en) Statistical multiplexing system for variable bit rate encoding with constant bit rate encoder
CA2924539C (en) Improved algorithms for determining bitrate for a statistical multiplexing system to account for signal complexity including film mode and gop structural changes
EP1942594A2 (en) Method and apparatus for statistically multiplexing services
KR20030061808A (en) Regeneration of program clock reference data for mpeg transport streams
JP2003517743A (en) Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals
US20090232224A1 (en) Optimal rate allocation for a group of channels
US7333515B1 (en) Methods and apparatus to improve statistical remultiplexer performance by use of predictive techniques
US20140112384A1 (en) Algorithms for determining bitrate for a statistical multiplexing system using scene change
US9083971B2 (en) Algorithms for determining bitrate for a statistical multiplexing system to ensure stream alignment from encoders to the multiplexer
CA2321015A1 (en) Method and apparatus for determining a bit rate need parameter in a statistical multiplexer
Drury et al. Picture quality and multiplex management in digital video broadcasting systems

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW 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: 2422131

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 1020037004012

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 018160174

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2001968344

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2001968344

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020037004012

Country of ref document: KR

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

NENP Non-entry into the national phase

Ref country code: JP

WWG Wipo information: grant in national office

Ref document number: 2001968344

Country of ref document: EP