WO2005020557A2 - Procede et systeme de modelisation de la relation entre le bit d'un flux elementaire et le debit binaire d'un flux elementaire porte - Google Patents

Procede et systeme de modelisation de la relation entre le bit d'un flux elementaire et le debit binaire d'un flux elementaire porte Download PDF

Info

Publication number
WO2005020557A2
WO2005020557A2 PCT/US2004/026082 US2004026082W WO2005020557A2 WO 2005020557 A2 WO2005020557 A2 WO 2005020557A2 US 2004026082 W US2004026082 W US 2004026082W WO 2005020557 A2 WO2005020557 A2 WO 2005020557A2
Authority
WO
WIPO (PCT)
Prior art keywords
bit rate
systems layer
program
segments
elementary stream
Prior art date
Application number
PCT/US2004/026082
Other languages
English (en)
Other versions
WO2005020557A3 (fr
Inventor
Jeyendran Balakrishnan
Shu Xiao
Original Assignee
Skystream Networks Inc.
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
Priority claimed from US10/640,866 external-priority patent/US7227899B2/en
Priority claimed from US10/641,322 external-priority patent/US7274742B2/en
Priority claimed from US10/640,871 external-priority patent/US7693222B2/en
Priority claimed from US10/640,872 external-priority patent/US7342968B2/en
Priority claimed from US10/641,323 external-priority patent/US20050036557A1/en
Application filed by Skystream Networks Inc. filed Critical Skystream Networks Inc.
Priority to CA2535453A priority Critical patent/CA2535453C/fr
Publication of WO2005020557A2 publication Critical patent/WO2005020557A2/fr
Publication of WO2005020557A3 publication Critical patent/WO2005020557A3/fr

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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/2368Multiplexing of audio and video streams
    • 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/242Synchronization processes, e.g. processing of PCR [Program Clock References]

Definitions

  • the present invention pertains to signals which are hierarchically organized into a systems layer stream and a lower layered elementary stream, where an elementary stream is streamed information of a component of a program, such as an audio signal or a video signal.
  • An example of a systems layer stream is a transport stream.
  • the invention pertains to control or adaptation of the bit rates of elementary streams relative to the bit rate of the system layer streams that carry them as well as system layer stream specific information, such as systems layer headers.
  • a program signal is composed of one or more component signals referred to herein as elementary streams.
  • An example of an elementary stream can be one (natural or synthetic) audio signal, one (natural or synthetic) video signal, one closed captioning text signal, one private data signal, etc.
  • Several techniques are known for compressing, formatting, storing and conveying such elementary streams.
  • the MPEG-1, MPEG-2, MPEG-4, H.263, H.263++, H.26L, and H.264/MPEG-4 AVC standards provide well-known techniques for encoding (compressing and formatting) video.
  • MPEG-1 including the so-called "MP3"
  • MPEG-2, MPEG-4 and Dolby AC-3 provide techniques for encoding audio.
  • MPEG-2 defines a technique for segmenting each elementary stream into packetized elementary stream (“PES") packets, where each PES packet includes a PES packet header and a segment of the elementary stream as the payload.
  • PES packets may be combined with "pack headers" and other pack specific information to form "packs".
  • the PES packets may be segmented into transport packets of a transport stream, where each transport packet has a transport packet header and a portion of a PES packet as payload.
  • These transport packets, as well as others are serially combined to form a transport stream.
  • elementary streams may be divided into "sync-layer" (or "SL”) packets, including SL packet headers.
  • SL packets may be combined with PES packet headers, to form PES packets, and these PES packets may be segmented and combined with transport packet headers to form transport packets.
  • transport packets are not used. Rather, elementary stream data is segmented and real-time protocol (“RTP") packet headers are appended to each segment to form RTP packets.
  • RTP real-time protocol
  • UDP user datagram protocol
  • TCP transmission control protocol
  • the MPEG-2 PES and transport streams encapsulating MPEG-2 video will be used as a modelibr illustrating .the invention. Also, this invention is illustrated using a hierarchical signal, wherein elementary streams are carried as segments in packets or cells of one or more higher layers.
  • the term "systems layer" is herein used to refer to such higher layers.
  • the MPEG-2 PES streams and transport streams will be used as a specific example of the systems layer. However, those skilled in the art will appreciate that other kinds of hierarchical layers may be used interchangeably as the systems layer for the elementary stream, such as the SL layer, the RTP layer, etc.
  • system layer need not be restricted to the "transport layer” according to the OSI seven layer model but can, if desired, include other layers such as the network layer (e.g., internet protocol or "IP"), the data link layer (e.g., ATM, etc.) and/or the physical layer. Also, other types of elementary streams, such as encoded audio, MPEG-4 video, etc. may be used.
  • the term "transmission” is used herein but should be understood to mean the transfer of information under appropriate circumstances via a communications medium or storage medium to another device, such as an intermediate device or a receiver/decoder.
  • FIG 1 illustrates the hierarchical nature of the transport stream.
  • a video elementary stream is shown which contains multiple compressed pictures or video images 10, Bl, B2, P3, B4, B5, P6, B7, B8, 19. It should be noted that each picture is presented over an integer multiple of a fixed interval of time (e.g., 1, 2 or 3 field periods), but can have a variable amount of information.
  • PES packets can contain a fixed length segment of elementary stream information or a variable length segment of elementary stream information.
  • each PES packet encapsulates the encoded information of the video elementary stream representing orecisely one encoded video picture. This is not a strict_requirement of MPEG-2 but is a requirement of other standards such as ATSC. However, other strategies can be used for segmenting the elementary stream into PES packets.
  • each PES packet may be restricted to have a fixed number of bytes in its payload and/or a fixed total number of bytes (i.e., the sum of the number of bytes in the PES packet header and the number of bytes in the PES payload may be a fixed number).
  • a fixed number of bytes in its payload i.e., the sum of the number of bytes in the PES packet header and the number of bytes in the PES payload may be a fixed number.
  • the headers of PES packets can vary in size, depending on the presence or absence of other PES layer information in the PES header such as: time stamps (e.g., presentation time stamps and/or decoding time stamps), trick mode control information, copyright information, and PES extension data.
  • PES packets themselves are segmented and placed into transport packets. All
  • MPEG-2 transport packets have a fixed length of 188 bytes.
  • a transport packet has a minimum sized header of 4 bytes followed by a payload.
  • the PES packets are divided into segments and each segment is placed in a payload of a transport packet.
  • transport packet headers can also be of variable length depending on whether or not the transport header is also carrying: program clock reference (PCR) time stamps, discontinuity information, bit rate information, splice point information, padding, etc.
  • PCR program clock reference
  • PCR's must be delivered at least at a certain frequency. However, PCR's can be delivered more frequently and need not be delivered at precise moments in time.
  • PCR's may be found in transport packets, nominally at a certain frequency, or more frequently, but not precisely at any frequency. Indeed, transport packets containing PCR's are often moved relative to other transport packets containing PCR's for the same program as a result of remultiplexing.
  • PES packets can only contain data of one elementary stream.
  • transport packets can only contain data from one elementary stream.
  • no transport packet can contain data from two PES packets (even if such PES packets carry data of the same elementary stream). Rather, the first byte of every PES packet must be aligned with the first byte of the payload of the transport packet that carries the beginning of the PES packet.
  • the systems layer signal often must meet certain bit rate requirements of the channel that carries the system layer stream, such as a maximum bit rate, a minimum bit rate or even a certain constant bit rate.
  • bit.rates of both elementary and systems layer streams must be carefully controlled from production to consumption.
  • An encoder is a device that compresses and formats a raw unencoded elementary stream to produce an encoded elementary stream. Often, the encoder outputs the encoded elementary stream in a transport stream, possibly with other encoded elementary streams of the same program.
  • An editor is a device that edits (modifies) an elementary stream and produces an edited encoded elementary stream.
  • An editor can receive encoded or unencoded elementary streams at its input.
  • a transcoder receives an already encoded elementary stream and re- encodes it, e.g., at a different bit rate, according to a different encoding standard, at a different resolution, using different encoding options, etc.
  • a splicer is a device that appends one signal to another or inserts one signal in the middle of the first. For example, a splicer may append one encoded elementary stream at the end of another elementary stream in a program so that they will be presented seamlessly and in sequence.
  • the splicer could insert one program in the middle of another, e.g., in the case of inserting a commercial in the middle of a television show.
  • a remultiplexer is a device that combines or removes programs, substitutes one or more component streams for others in a program, or modifies systems layer information of a systems layer stream. Examples of these devices are described in U.S. Patent Nos. 6,141,447, 6,002,687, 6,038,256, 6,094,457, 6,192,083, 6,005,621, 6,229,850, 6,310,915, 5,717,464, 5,859,660 and 5,861,919.
  • the term "rate shaper” is used to refer to an encoder, transcoder, splicer, editor or remultiplexer which is specifically designed to produce a systems layer signal that meets a certain bit rate constraint.
  • the total bit rate available for carrying information e.g., in a channel
  • each fraction may be allocated to a respective one of multiple programs to be outputted in a systems layer stream, in the form of a transport stream during, that interval.
  • Such a fraction may be set to guarantee a certain quality of service for its respective program.
  • Each allocated fraction of the bit rate is actually the bit rate allocated for all of the transport packets carrying all of the information specific to that program, including the information of the encoded video and audio elementary streams, the PES packet header information and the transport packet header information.
  • Such information is typically provided to a video encoder circuit of the rate shaper.
  • the video encoder encodes, or transcodes, a video signal to produce a certain number of bits for transmission over that interval which is approximately equal to a target number of bits.
  • the encoding or transcoding is also performed in an attempt to minimize the amount of encoding noise or distortion introduced by such encoding or transcoding.
  • the target number of bits is derived from the bit rate fraction allocated to the rate shaper containing the encoder with the intention that, if the target number of bits were produced exactly, the transport stream carrying that program over the interval should be transmitted at, or near, the allocated bit rate fraction communicated to the device.
  • a model which relates the ES bit rate of one elementary stream to the SYS bit rate of at least the portion of the systems layer signal that carries it.
  • a method is provided for transmitting a program bearing systems layer signal (for example, a transport stream) comprising a plurality of sequential segments of systems layer information (for example, packets).
  • a program bearing systems layer signal for example, a transport stream
  • systems layer information for example, packets.
  • Each of at least some of the systems layer segments comprises a segment of an elementary stream representing at least part of the program (for example, in the packet payload), and a segment of information specific to the systems layer but not any elementary stream (for example, the packet header).
  • a dynamically updated model is maintained that relates an ES bit rate of the elementary stream (in the system layer segments of the plurality) to a SYS bit rate of ones of the systems layer segments of the systems layer stream.
  • a first target value related to a target for one of the ES or SYS bit rates, is generated.
  • a second target value related to a target for the other of the ES and SYS bit rates, is generated from the model and first target value.
  • the generation of the sequential segments of the systems layer signal is controlled in an attempt to transmit the elementary stream and systems layer segments at bit rates corresponding to the first and second target values.
  • a third value representing the actual bit rate of the elementary stream, and a fourth value representing the actual bit rate of ones of the systems layer segments, generated as a result of the step of controlling, are determined.
  • the model is then updated according to the third and fourth values.
  • the generation of the first and second target values, and the generation of the sequential segments of the system layer signals are controlled during each of a plurality of successive time intervals.
  • the third and fourth values can be determined, and the model updated, during each of a plurality of successive time intervals.
  • a model is used for a systems layer signal that carries a program that has multiple elementary streams.
  • the model relates the bit rate of only one of the elementary streams of this program to the SYS bit rate of at least the portions of the systems layer signal carrying this elementary stream of that program.
  • a method for transmitting a program bearing systems layer signal (for example, a transport stream) comprising a plurality of sequential segments of systems layer information (for example, packets).
  • a program bearing systems layer signal for example, a transport stream
  • a plurality of sequential segments of systems layer information for example, packets.
  • Each of at least some of the _ systems_layer segments of the plurality comprises a segment of an elementary stream -. - — - representing at least part of the program (for example, in the packet payload), and a segment of information specific to the systems layer but not any elementary stream (for example, a packet header).
  • the program carried in the transport stream comprises at least a first elementary stream and a second elementary stream that is different from the first elementary stream.
  • a first target value is generated.
  • the first target value represents a target for an aggregate bit rate of at least first and second ones of the systems layer segments in the transport stream comprising segments of the first elementary stream of the program and of the second elementary stream of the program, respectively.
  • a portion of the first target value is allocated to the first ones of the systems layer segments that comprise segments of the first elementary stream of the program.
  • At least a first dynamically updated model is maintained that relates an ES bit rate of the first elementary stream of the program, to a SYS bit rate of at least the first ones of the systems layer segments that comprise segments of the first elementary stream.
  • a second target value representing a target for the ES bit rate of the first elementary stream of the program is generated from the portion of the first target value allocated to the first ones of the systems layer segments and the model.
  • the generation of the sequential segments of the systems layer signal is controlled in an attempt to transmit at least the first elementary stream at a bit rate corresponding to the second target value.
  • a model is used in a systems layer signal that carries a program having multiple elementary streams.
  • the model relates the aggregate ES bit rate of multiple elementary streams of the program to the SYS bit rate of at least the portions of the systems layer signal that carry these elementary streams.
  • a method is provided for transmitting ⁇ -program bearing system -layer- signal (for example, a transport stream) comprising a plurality of sequential segments of systems layer information (for example, packets).
  • Each of at least some of the systems layer segments of the plurality comprises a segment of an elementary stream representing at least part of the program (for example, in the packet payload), and a segment of information specific to the systems layer but not any elementary stream (for example, a packet header).
  • the program carried in the systems layer signal comprises a plurality of different elementary streams.
  • a dynamically updated model is maintained.
  • the model relates an ES bit rate, which is an aggregate bit rate of a plurality of the elementary streams of the program, to a SYS bit rate of at least ones of the systems layer segments in the systems layer signal comprising the plurality of elementary streams of the program.
  • a first target value representing a target for the SYS bit rate is generated.
  • a second target value representing a target for the ES bit rate is generated from the first target value and the model.
  • a portion of the second target value is allocated to each of the plurality of elementary streams.
  • the generation of the sequential segments of the systems layer signal is controlled in an attempt to transmit each of the plurality of elementary streams at a bit rate corresponding to a respective portion of the second target value allocated to the corresponding one of the elementary streams.
  • a model is used for a systems layer signal that carries multiple programs. The model relates an ES bit rate for at least one elementary stream of only one program to the SYS bit rate of at least the portions of the systems layer signal that carry the elementary stream(s) to which the ES bit rate pertains.
  • a method for transmitting a systems layer signal (for example, a transport stream) bearing at least a first program and a . second program that is different from the first program.
  • the systems layer signal comprises a plurality of sequential segments of systems layer information (for example, packets).
  • Each of at least some of the systems layer segments of the plurality comprises a segment of an elementary stream representing at least part of one of the first and second programs, and a segment of information specific to the systems layer but not any of the elementary streams (for example, a packet header).
  • a first target value is generated that represents a mux-wide target for an aggregate bit rate for segments of the systems layer signal bearing elementary stream data of the first program and systems layer segments bearing elementary stream data of the second program.
  • a portion of the first target value is allocated to the systems layer segments bearing elementary stream data of the first program.
  • At least a first dynamically updated model is maintained that relates a SYS bit rate of the systems layer segments bearing elementary stream data of the first program, to an ES bit rate of the elementary stream data of the first program.
  • a second target value representing a target for the ES bit rate, is generated from the portion of the first target value allocated to the systems layer segments bearing the first program and the model. The generation of the sequential segments of the systems layer signal is controlled in an attempt to transmit elementary stream data of the first program at a bit rate corresponding to the second target value.
  • the first program has at least one particular elementary stream and the
  • the generation of the second target value includes the following additional steps.
  • a fraction of the portion of the first target value is allocated to only those systems layer segments bearing the one particular elementary stream_of the firsLprogram.
  • the second target value is generated using the model, that relates the ES bit rate of only the one particular elementary stream to the SYS bit rate of the systems layer segments that carry it, and the allocated fraction of the first target value.
  • the first program comprises a plurality of elementary streams and the
  • the generation of the second target value includes the following additional steps.
  • a third target value of the aggregate bit rate of the systems layer segments that carry the plurality of the elementary streams of the first program is generated using the model, that relates the aggregate ES bit rate of the plurality of elementary streams of the first program to the SYS bit rate of the systems layer segments that carry them, and the first portion.
  • a fraction of the third target value is then allocated as the second value.
  • more than one model is maintained, i.e., a first model is used for a first one of the programs, a second model is used for a second one of the programs, etc.
  • These models may be of the same type or different types of models.
  • a model is used which relates the aggregate
  • a method for transmitting a systems layer signal (for example, a transport stream) bearing a plurality of programs comprising a plurality of sequential segments of systems layer information (for example, packets).
  • a systems layer signal for example, a transport stream
  • programs comprising a plurality of sequential segments of systems layer information (for example, packets).
  • Each of at least some of the systems layer segments of the plurality comprises a segment of an elementary stream representing at least part of one of the programs, and a segment of information specific to the systems layer but not any elementary stream (for example, a packet header).
  • a dynamically updated model is maintained that relates a SYS bit rate of at least the systems layer segments comprising a plurality of elementary streams of a plurality of the programs, to an ES bit rate which is an aggregate bit rate of the plurality of elementary streams of the plurality of programs.
  • a first target value representing a target for the SYS bit rate is generated.
  • a second target value representing a target for an aggregate bit rate of the plurality of elementary streams of the plurality of programs is generated from the first target value and the model. At least a first portion of the second target value is allocated to a plurality of the elementary streams of a particular one of the programs.
  • At least a second portion of the first portion of the second target value is allocated to a particular one of the plurality of the elementary streams of the particular one program.
  • the generation of the sequential segments of the systems layer signal is controlled in an attempt to transmit at least the particular one of the plurality of elementary streams of the particular one of the programs at a bit rate corresponding to the second portion of the first portion of the second target value.
  • a first value that relates a bit rate of one or more elementary streams to a bit rate of particular ones of the systems layer segments containing the one or more elementary streams, is dynamically determined.
  • the bit rate of the one or more elementary streams, or the particular systems layer segments, is then varied as a function of the determmed first value.
  • second and third values are measured.
  • the second value depends on the actual bit rate of the one or more elementary streams whose bit rate is varied during a particular one of the time intervals.
  • the third value depends on the bit rate, during the same particular time interval, of the particular ones of the systems layer segments, containing the one or more elementary streams.
  • the first value is dynamically determined as a function of the second and third values.
  • an unknown parameter vector is used to model the relationship of the bit rate of at least one of the one or more elementary streams to the bit rate of system layer segments containing that "at least one" elementary stream.
  • the second and third values are used to estimate the unknown parameter vector.
  • the first value is determined from a function applied to the estimate of the parameter vector.
  • a method for modeling the relationship between a systems layer bit rate and an elementary stream layer bit rate in a systems layer signal.
  • the systems layer bit rate is the bit rate of certain systems layer segments transmitted serially in the systems layer signal.
  • Each systems layer segment comprises a segment of elementary stream information, and a segment of information specific to the system layer but not any elementary stream.
  • the elementary stream layer bit rate is the bit rate of elementary stream segments of certain one or more elementary streams.
  • a first value representing the actual.systems layer bit rate and a second value representing the actual elementary stream layer bit rate during a given time interval are measured. The first and second measured values are used to estimate a finite vector of parameters.
  • a model that relates a third value representing the systems layer bit rate to a fourth value representing the elementary stream layer bit rate is dynamically adapted.
  • the model comprises the estimated vector of parameters and a function, wherein the function can be applied to the estimated vector of parameters and one of the third or fourth values to derive the other of the third and fourth values.
  • One of the third value or the fourth value is used to control the systems layer bit rate, the elementary stream layer bit rate, or both, during a time interval following the given time interval. These steps are then repeated.
  • the model is of the following form with the vector of parameters derived from first and second values
  • RE is the fourth value
  • R T is the third value corresponding to R E
  • is the vector of M > 1 parameters
  • ⁇ j is an i th parameter of the vector ⁇ , where 1 ⁇ i ⁇ M, and
  • ⁇ , ⁇ and/or ⁇ are the dynamically adjustable parameters of the vector of parameters.
  • FIG 1 illustrates the hierarchical nature of a transport stream.
  • FIG 2 illustrates one embodiment of the present invention.
  • FIG 3 is a flow chart illustrating a single elementary stream model.
  • FIG 4 is a flow chart illustrating a multiple elementary stream program, single elementaiy stream model.
  • FIG 5 is a flow chart illustrating a multiple elementary stream program, program model.
  • FIG 6 is a flow chart illustrating a multiple program transport stream, program model.
  • FIG 7 is a flow chart illustrating a multiple program transport stream, multiplex-wide model.
  • an MPEG-2 transport and PES stream collectively, as an example of a systems layer signal, and an MPEG-2 elementary stream (e.g., an encoded video or audio signal), as an example of a lower layer hierarchical signal carried by the systems layer signal, without loss of generality.
  • an MPEG-2 elementary stream e.g., an encoded video or audio signal
  • FIG 2 shows an arrangement employing the invention according to one embodiment.
  • Transport streams are supplied from sources 101 and 102 to a multiplexer 110, which may also be a remultiplexer.
  • An elementary stream bearing signal is also supplied from a source 103 to a rate shaper 130 which processes it, and outputs a transport stream.
  • the rate shaper 130 may be an encoder, transcoder, editor, splicer or remultiplexer.
  • the rate shaper 130 may be implemented, at least in part, using one or more Mediaplex 20TM video services routers, or Source Media RoutersTM provided by SkyStream NetworksTM, Inc., a company located in Sunnyvale, California.
  • the inputted elementary stream bearing signal supplied from the source 103 may be a raw, unencoded elementary stream such as an analog or digital video signal, an encoded elementary stream, a PES stream carrying the elementary stream, a transport stream carrying the elementary stream, a transport stream carrying a single program with multiple elementary streams or a transport stream carrying multiple programs.
  • the rate shaper 130 may actually receive multiple input signals and/or produce multiple output signals. However, for sake of clarity, but without loss of generality, this invention is illustrated below for a rate shaper 130 that receives one input signal and produces one output signal.
  • the output signal produced by the rate shaper 130 is received at an input of a receiver 150.
  • the receiver 150 can be any suitable downstream apparatus, including, an encoder, splicer, multiplexer, remultiplexer demultiplexer, transcoder, decoder (e.g., set top box, television, etc.), router (such as the Edge Media RouterTM or Edge Video RouterTM produced by SkyStream Networks Ine).
  • the input of the receiver 150 can be connected to the multiplexer 110 output by a simple link, such as a wire, coaxial cable, wireless transceiver, etc., by one or more intermediate devices or by a network, such as a telephone, terrestrial, cable, satellite or computer network.
  • the sources 101-103 may be suitable video input jacks, tape players, optical or magnetic disk drivers, memory circuits (e.g., flash memory), antennae, demodulators, cameras, synthetic elementary stream generator computers, etc.
  • Information about at least the transport stream produced by the rate shaper 130 is provided to a rate controller 120 which may be implemented using any known arrangement of circuitry for performing the measurement and calculation features described below.
  • One suitable arrangement is a processor, software and associated memory within the Mediaplex 20TM or Source Media RoutersTM described above.
  • a separate computer terminal may also be provided instead, or to assist in the performance of the tasks, of the rate controller 120 (described below).
  • the rate controller 120 may also perform rate control, at least at a systems stream level, for the sources 101 and 102.
  • the rate shaper 130 receives one or more dynamically determined values from rate controller 120 that relate the bit rate of at least one elementary stream outputted from the rate shaper 130 and the bit rate of at least the systems layer information that carries such elementary stream data from the rate shaper 130.
  • the value can simply be a ratio of bit rates, or a ratio of total number of bits, of an elementary stream and the systems layer stream that carries it.
  • the value is simply the number of bits to produce (or bit rate) for the elementary stream, where the rate shaper 130 also obtains, or otherwise.knows,.the number of bitsio produce (or bit rate) for the transport stream that carries it.
  • the value is simply the number of bits to produce (or bit rate) for the transport stream carrying the elementary stream, where the rate shaper 130 also obtains, or already knows, the number of bits to produce (or bit rate) for that encoded elementary stream.
  • the rate controller 120 one feature which distinguishes the operation of the rate shaper 130 from prior art devices is that the value provided by the rate controller 120 will depend on a dynamically varying relationship of bit rates between an elementary stream and a systems layer stream.
  • the rate shaper 130 processes the input signal (e.g., encodes, transcodes, edits, splices and/or remultiplexes the signal).
  • the rate shaper 130 performs such processing to produce an output transport stream in a rate controlled fashion, specifically to produce an elementary stream (or transport stream that carries it) whose bit rate matches the bit rate indicated or represented by the value provided by the rate controller 120.
  • the rate shaper 130 varies the bit rate of one or more elementary streams, and/or the systems layer segments that carry them, as a function of the values provided by the rate controller 120.
  • the rate shaper 130 attempts to generate an output transport stream having a ratio of an elementary stream bit rate to a systems layer bit rate that matches as closely as possible the ratio on which the value depends.
  • the rate shaper 130 can, for example, measure this mformation itself and communicate that information to the rate_ contrp.ller.120.
  • the rate controller 120 it is-also possible for the rate controller 120 to actively monitor and perform the measurement.
  • An example of measured values can be a count of the actual number of bits of an elementary stream, and a count of the actual number of bits of the systems layer stream segments or packets that carries it, produced by the rate shaper 130 for output.
  • the rate controller 120 can dynamically determine, i.e., estimate and adapt, a subsequent value to be provided to the rate shaper 130 during a subsequent time interval. To achieve this end, the rate controller 120 maintains a model that relates the bit rates of one or more of the elementary streams outputted from the rate shaper 130 (and possibly others) to the corresponding systems layer stream outputted by the rate shaper 130 (and possibly others). The rate controller 120 illustratively updates its internal model(s). Based on the updated model, the rate controller 120 produces a new value for output to the rate shaper 130 to control its generation of a transport stream.
  • a target bit rate is set for the systems layer to be outputted from the rate shaper 130, such as the total transport stream bit rate, the transport stream bit rate of only the transport packets that carry one specific program, or the transport stream bit rate of only the transport packets that carry one specific elementary stream.
  • the rate controller 120 uses this systems layer target bit rate and the model to derive a target bit rate for the elementary stream itself.
  • the rate controller 120 may set a target bit rate for the elementary stream and instead use this elementary stream target bit rate and the model to derive the target bit rate of the systems layer (e.g., the whole transport stream bit rate, the bit rate of the transport packets bearing only the program containing the elementary stream or the bit rate for only the transport packets containing the elementary stream).
  • a rate controller 120 maintains a model based on predetermined initialized values.
  • the rate controller 120 uses the model to produce a value for output to the rate shaper 130.
  • the rate shaper 130 produces a transport stream in a controlled fashion in an attempt to meet the bit rate criterion specified by the value.
  • the rate controller 120 measures the actual elementary stream and systems layer bit rates and updates its model based on these measured bit rates.
  • the updated model is then used in the subsequent time interval to provide a value for controlling the generation of a transport stream by the rate shaper 130.
  • the model relates the bit rate of one elementary stream of a particular program to the systems layer segments (transport packets) that carry it.
  • This model can be used to derive an elementary stream bit rate (or bit count) given a target bit rate for the systems layer segments that carry the elementary stream.
  • the model can be used to derive the bit rate of the systems layer segments that carry an elementary stream, given a bit rate allocated to the elementary stream.
  • the discussion below illustrates the case where a target bit rate is allocated for the systems layer segments that carry the elementary stream and the model is used to derive the bit rate of such an elementary stream from the systems stream target rate.
  • An analogous technique may be used for the other case.
  • the rate controller 120 provides one or more values to the rate shaper 130 to use in generating the systems layer stream which represents the target elementary stream bit rate, such as a target elementary stream bit count (step S10).
  • a predetermined value may be used which may be generated off-line or approximated.
  • the rate shaper 130 performs suitable processing and produces a systems layer stream in such fashion as to attempt to achieve an elementary bit rate that most closely matches the elementary stream target bit rate indicated by the value provided by the rate controller 120 (step SI 1).
  • the rate controller 120 measures a value representing the actual bit rate of the elementary stream (such as the actual number of elementary stream bits produced during that time interval) and a value representing the actual bit rate of the systems layer segments that carry this elementary stream (such as the actual number of bits produced over the same time interval for the transport packets that carry the elementary stream) (step SI 2). Using such information, the rate controller 120 adapts the model (step S13).
  • the rate controller 120 generates or obtains a value representing the target bit rate allocated to the systems layer segments that carry the elementary stream for the next or a subsequent time interval (such as a target number of bits to be produced for such transport packets) (step S14). Using this target value and the model (as adapted), the rate controller 120 generates or derives a new value representing the target bit rate for the elementary stream carried by the systems layer segments (such as a target number of bits to be produced for the elementaiy stream) (step S15). The rate controller 120 then provides this new value representing the target bit rate for the elementary stream to the rate shaper 130 (step S10).
  • this process iteratively and dynamically adapts the model that relates systems layer stream bit rate to elementary stream bit rate, based on the actual bit rates of systems layer segments (transport packets) and the single elementary stream they carry.
  • each model relates a bit rate of a single elementary stream to the bit rate of the systems layer segments (transport packets) that carry that elementary stream.
  • an initial bit rate is provided for the whole program, which must first be divided on a per-elementary stream basis.
  • the rate controller 120 provides to the rate shaper 130 one or more values for each elementary stream modeled by the rate controller 120 and rate shaped by the rate shaper 130 (step S20).
  • the rate controller 120 may provide for each elementary stream a value representing the respective target elementary stream bit rate.
  • the rate shaper 130 performs suitable processing and produces a systems layer stream in such fashion as to attempt to achieve an elementary bit rate for each rate shaped elementary stream that most closely matches the target bit rate indicated by the values provided by the rate controller 120 (step S21).
  • the rate controller 120 measures a value representing the actual bit rate of each rate modeled/rate shaped elementary stream and values representing the actual bit rates of the systems layer segments that carry these elementary streams (step S22). (Thus, separate values are measured for each group of transport packets that carry a corresponding one of the rate modeled/rate shaped elementary streams. Separate values are also measured for each elementary stream.) The rate controller 120 then adapts each model with conesponding values— a model used for a particular elementary stream is adapted with the value representing the actual bit rate measured for that particular elementary stream and the value representing the actual bit rate measured for only the systems layer segments that carry it (step S23).
  • the rate controller 120 adapts the model that relates the bit rate of a first elementary stream to the bit rate of the systems layer segments that carry first elementary stream with the values representing the actual bit rates measured for the first elementary stream and the systems layer segments that carry it.
  • the model that relates the bit rate of a second elementary stream to the bit rate of the systems layer segments that carry this second elementary stream is adapted with the values representing the actual bit rates measured for the second elementary stream and the systems layer segments that carry it, etc.
  • the rate controller 120 generates or obtains the aggregate target bit rate allocated, for the next time interval, to the systems layer segments that carry the entire program composed of the multiple elementary streams (step S24).
  • the rate controller 120 divides this aggregate target bit rate into fractions and allocates each fraction of this entire aggregate target bit rate to the systems layer segments (step S24). More specifically, a first fraction is allocated to the systems layer segments that carry a first elementary stream, a second fraction is allocated to the systems layer segments that carry a second elementary stream, etc.
  • any well-known technique may_be usecLfbr dividing and alloc ating-this aggregate bit rate. For example, some techniques estimate a relative need of bits among all encoded elementary streams. Usually, a requirement of bits can be estimated from a perceived encoding difficulty to achieve a certain fidelity.
  • Perceived difficulty may be approximated based on an actually measured "difficulty," such as a requirement of bits, or level of noise introduced into an encoded signal, from a previous time interval. Other criteria may also be used. Then, the available bit rate is allocated in an attempt to equalize quality among all elementary streams by allocating a fraction of the available bit rate that is proportional to the relative requirement of bits estimated for the respective elementary stream (step S24).
  • the rate controller uses the respective allocated fraction of the aggregate target bit rate and the model (as adapted) to generate or derive the new target value representing the target bit rate for the corresponding elementary stream carried by the systems layer segments (step S25).
  • the rate controller 120 then provides each of these new target values representing the respective target bit rate for each coreesponding elementary stream to the rate shaper 120 (step S20).
  • step S30 Refening to FIG 5, the following steps (S30-S35) recited below are then iterated over each (successive) time interval. Jn this scenario, the rate.c ⁇ ntroller_120 provides to thejrate - shaper 130 one value for each elementary stream to be rate shaped by the rate shaper 130 (although only one model is used for all of the elementary streams of the program, collectively) (step S30). Each value represents a respective one of the target elementary stream bit rates.
  • the rate shaper 130 performs suitable processing and produces a systems layer stream in such fashion as to attempt to achieve a bit rate for each rate shaped elementary stream that most closely matches the target bit rate indicated by the values provided by the rate controller 120 (step S31).
  • the rate controller 120 measures a value representing the actual aggregate or total bit rate of all of the rate shaped elementary streams (collectively), and a value representing the actual bit rate of all of the systems layer segments that carry these elementary streams (step S32).
  • this is two values, namely, a first, single value representing the aggregate bit rate of all of the rate shaped elementary streams and a second value representing the bit rate of all of the systems layer segments that carry them.
  • the rate controller 120 adapts its single model (step S33).
  • the rate controller 120 obtains or generates a value representing the target bit rate allocated, for the next time interval, to the systems layer segments that carry all of the multiple rate shaped elementary streams of the program (step S34).
  • the rate controller 120 uses the allocated target value representing systems layer bit rate and the model (as adapted) to generate or derive a value representing the target aggregate bit rate for all of the rate shaped elementary streams (step S34).
  • this is a single value representing the sum of the target bit rates for all of the rate shaped elementary streams of that program.
  • Each of these fractions is the new value representing the target bit rate for a respective one of the rate shaped elementary streams of the program.
  • any well- known rate allocation technique illustratively may be used for dividing the aggregate target value for allocation.
  • some techniques estimate a relative need of bits among all encoded elementary streams where a need or requirement of bits can be estimated from a perceived encoding difficulty to achieve a certain fidelity.
  • Perceived difficulty may be approximated based on an actually measured "difficulty," such as a requirement of bits, or level of noise introduced into an encoded signal, from a previous time interval. Of course, other criteria may also be used.
  • the available bit rate is then allocated in an attempt to equalize quality among all elementary streams by allocating a fraction of the available bit rate that is proportional to the relative requirement of bits estimated for the respective elementary stream or some other fraction that is expected to average the fidelity over each elementary stream.
  • the rate controller 120 then provides each of these new values representing the respective target bit rate for each corresponding elementary stream to the rate shaper 130 (step S30).
  • the rate shaper 130 is presumed to be rate shaping multiple programs in a single systems layer signal.
  • the rate controller 120 models each program separately. Note that the rate controller 120 may use either the "Multiple Elementary Stream Program, Separate Elementary Stream Modeling" technique (2) or the “Multiple Elementary Stream Program, Program Modeling” technique_(3) .(described above) to model each program..
  • the rate controller 120 provides to the rate shaper 130 one value for each elementary stream rate to be shaped by the rate shaper 130 (step S40).
  • the rate shaper 130 shapes the bit rate of multiple programs. Each value represents a target bit rate for a respective one of the elementary streams.
  • the rate shaper 130 performs suitable processing and produces a systems layer stream in such fashion as to attempt to achieve an elementary bit rate for each rate shaped elementary stream, of each program, that most closely matches the target bit rate represented by the conesponding value provided by the rate controller 120 (step S41).
  • the rate controller 120 measures values representing actual systems layer stream and elementary stream bit rates (step S42). The particular values measured for a respective program depend on whether the rate controller 120 uses the "Multiple Elementary Stream Program, Separate Elementary Stream Modeling" technique (2) or the "Multiple Elementary Stream Program, Program Modeling" technique (3) described above.
  • the rate controller 120 measures a value representing the actual bit rate of each rate modeled/rate shaped elementary stream and values representing the actual bit rates of the systems layer segments that carry these elementary streams (step S22 of FIG 4). (Thus, separate values are measured for each group of transport packets that carry a corresponding one of the rate modeled/rate shaped elementary streams. Separate values are also measured for each elementary stream.) The rate controller 120 then adapts each model with corresponding values — a model used for a particular elementary stream is adapted with the value representing the actual bit rate measured for that particular elementary stream and the value
  • the rate controller 120 adapts the model that relates the bit rate of a first elementary stream to the bit rate of the systems layer segments that carry first elementary stream with the values representing the actual bit rates measured for the first elementary stream and the systems layer segments that carry it.
  • the model that relates the bit rate of a second elementary stream to the bit rate of the systems layer segments that carry this second elementary stream is adapted with the values representing the actual bit rates measured for the second elementary stream and the systems layer segments that carry it, etc.
  • the rate controller 120 measures a value representing the actual aggregate bit rate of all of the rate shaped elementary streams (collectively), and a value representing the actual bit rate of all of the systems layer segments that carry these elementary streams in aggregate (step S32 of FIG 5).
  • this is two values, namely, a single first value representing the bit rate of all of the rate shaped elementary streams and a second value representing the bit rate of all of the systems layer segments that carry them.
  • the rate controller 120 adapts its single model for the respective program (step S43, step S33 of FIG 5).
  • the rate controller 120 generates or obtains a value representing the "multiplex-wide" target bit rate allocated, for the next time interval, to the systems layer segments that carry multiple rate shaped elementary streams of multiple rate shaped programs over the entire multiplex (step S44).
  • the rate controller 120 divides the multiplex-wide target value into fractions and allocates each fraction to a different one of the rate-shaped programs (step S44).
  • a first rate shaped program is allocated a first fraction of the multiplex- wide target value
  • a second rate-shaped program is allocated a second fraction of the multiplex- . widejarget value,_etc. Any wellrkno n techniqnejmay be. used for dividing and allocating.
  • the rate controller 120 uses the respective allocated fraction of the multiplex-wide target value and model (as adapted) to generate or derive one or more values representing target bit rates for the rate shaped elementary streams of that program. Again, the next steps performed depend on which modeling technique is used by the rate controller 120 to model that specific program.
  • the rate controller 120 first divides this fraction of the multiplex-wide target value into sub-fractions (step S45, step S24 of FIG 4). The rate controller 120 then distributes each sub-fraction amongst the systems layer segments of that program (step S24 of FIG 4). More specifically, a first sub-fraction is allocated to the systems layer segments that carry a first elementary stream of the program, a second sub- fraction is allocated to the systems layer segments that carry a second elementary stream of the same program, etc.
  • any well-known technique may be used for dividing the fraction of the multiplex- wide target value into sub-fractions and allocating each sub- fraction.
  • the rate controller uses the respective allocated sub-fraction of the multiplex- wide target value and the model (as adapted) to generate or derive a new value representing the target bit rate for the corresponding elementary stream (step S25 of FIG 4).
  • the rate controller 120 then provides each of these new values representing the respective target bit rate for each conesponding elementary stream to the rate shaper 130 (step S40, step S20 ofFIG 4).
  • the rate controller 120 uses the allocated fraction of .the multiplex- wide.target_value-and its single modeLfor the program to generate or derive_a_ single target value representing the target aggregate bit rate for all of the rate shaped elementary streams belonging to that program (step S45, step S34 of FIG 5). The rate controller 120 then divides this aggregate target bit rate value derived for all of the rate shaped elementary streams of the program into fractions and allocates each fraction of the aggregate bit rate target value to a different one of the rate shaped elementary streams (step S35 of FIG 5). Each of these fractions is the new value representing the target bit rate for a respective one of the rate shaped elementary streams of the program.
  • any well-known rate allocation technique may be used for dividing the aggregate target bit rate value into fractions for allocation.
  • the rate controller 120 then provides each of these new target bit rate values representing the respective target bit rate for each conesponding elementary stream to the rate shaper 130 (step S40, Step S30 of FIG 5).
  • the rate controller 120 uses different models for each program.
  • Each model can be of the same type, e.g., multiple elementary stream, single elementary stream model as in technique (2), multiple elementary stream program, program modeling as in technique (3), etc. Alternatively, different models can be selected for each program. [00107] 5. Multiple Program Transport Stream, Multiplex- Wide Modeling
  • the rate controller 120 maintains a single model for the entire multiplex.
  • This model relates the bit rate of the systems layer segments carrying all of the rate shaped elementary streams (for all of the rate shaped programs) to an aggregate bit rate equal to the sum of all of the bit rates of all of the rate shaped elementary streams (of all of the rate shaped programs).
  • step S50 the rate-controller 120 provides- - to the rate shaper 130 one value representing the target bit rate of that respective elementary stream (step S50).
  • the rate shaper 130 rate-shapes each of the elementary streams of each of the rate shaped programs and produces a systems layer stream containing them (step S51). Again, the rate shaper 130 attempts to produce a systems layer stream in such fashion that the bit rate of each elementary stream canied therein most closely matches the respective target bit rate indicated by the respective target bit rate value supplied by the rate controller 120.
  • the rate controller 120 next measures two values, namely, a first value representing the aggregate bit rate of all of the rate shaped elementary streams of all of the rate shaped programs, and a second value representing the aggregate bit rate of all of the systems layer segments that carry them (step S52). Using these values, the rate controller 120 dynamically adapts its single model (step S53).
  • the rate controller 120 generates or obtains a value representing the multiplex- wide target bit rate for all of the systems layer segments carrying all of the rate shaped elementary streams of all of the rate shaped programs in the multiplex (step S54). Using this multiplex- wide target value and the model, the rate controller 120 generates or derives a value representing the target aggregate bit rate of all of the rate shaped elementary streams of all of the rate shaped programs in the multiplex (step S55). The rate controller 120 then divides this derived aggregate target bit rate value into fractions and allocates a different fraction to each of the rate shaped elementary streams using any allocation technique (step S56). This may be performed in two steps.
  • the derived aggregate target bit rate value may be divided into fractions, including one fraction for each rate shaped program (step S56). Then, for each program, the- fraction-allocated to that program may be further divided. . into sub-fractions and each sub-fraction may be allocated to a respective rate shaped elementary stream of that rate shaped program (where one sub-fraction is allocated to each rate shaped elementary stream of that given program) (step S56).
  • the fractional (sub-fractional) target values allocated, respectively, to their conesponding rate shaped elementary streams serve as the new target bit rate values representing the target bit rates to be used in controlling the generation of the systems layer stream. Most notably, the new target bit rate values are to be used for rate shaping each conesponding elementary stream, on the next subsequent time interval (step S50).
  • Each model comprises a vector of one or more dynamically updated parameters ⁇ , and a predefined function f() that is applied to the vector of parameters ⁇ and the value representing the elementary stream bit rate R E to derive the value representing the systems layer stream bit rate R .
  • the function f() is chosen such that it is invertible to derive R E from R ⁇ and ⁇ .
  • is adapted dynamically in real time according to actually measured values representing R T and R E .
  • the function f(R E , ⁇ ) is chosen such that the following linear relationship may be used to derive the vector of parameters ⁇ :
  • is the vector of M > 1 parameters
  • ⁇ j is an i th parameter of the vector ⁇ , where 1 ⁇ i ⁇ M, and
  • A (g(R EO ,R ⁇ o), g(R ,R ⁇ ),. • ., g(R E N,R ⁇ N)) T
  • any recursive technique may be used to derive the vector of parameters.
  • the vector of parameters ⁇ n+1 for use in the n+l th time interval, is derived from the values R Tn , R En , representing the elementary stream and systems layer stream bit rates obtained in the n th given interval according to:
  • ⁇ n is a vector of parameters used in the n th given time interval
  • is a gain factor selected such that 0 ⁇ ⁇ ⁇ 2, and a is a positive constant.
  • Another recursive technique is the recursive least squares with exponential forgetting.
  • the vector of parameters ⁇ n for use in the n+l th time interval is
  • ⁇ n ⁇ n l + P n - ⁇ ⁇ En ,R Tn ) ⁇ + g ⁇ (R En ,R Tn )P, ⁇ g(R En ,R Tn )
  • P n is an MxM matrix recursively defined by:
  • P_ x is equal to any positive definite matrix
  • is a forgetting factor set to 0 ⁇ ⁇ ⁇ 1.
  • R T and R E [00141]
  • is the sole dynamically adjustable parameter of the vector of parameters.
  • ⁇ and ⁇ are the dynamically adjustable parameters of the vector of parameters.
  • the affine model tends to produce a better result that the linear model because the provision of the constant ⁇ better accounts for the constant overhead in (systems layer segment) transport packet bit count arising by the pseudo-periodic insertion of the PCR. If PCR's are inserted at precise periodic intervals, then ⁇ can be determined off-line and then fixed during system operation.
  • PCR insertion rate is rarely precisely fixed and therefore it is beneficial to adapt ⁇ "on-line" i.e., dynamically in real time.
  • This model also performs well for low bit rates where PCR insertion overhead is not negligible.
  • denotes a best estimate_hetween the ratio of the (systems layer stream) transport stream and elementary stream bit rates or bit counts.
  • a non-linear square root model may be used, which has the following functions Rx that relate R ⁇ and R E :
  • ⁇ , ⁇ and ⁇ are the dynamically adjustable parameters of the vector of parameters.
  • This model may provide the most optimal results for a transport stream carrying elementary streams containing encoded video pictures.
  • this model is well suited to handle PCR insertion overhead, as well as the following two PES packetization strategies: (a) where PES headers are inserted every fixed number of bits of the elementary stream or (b) where PES headers are inserted every encoded picture carried within the elementary stream. Case (b) is specifically accommodated by the term ⁇ R ⁇ .
  • the reason is as follows. For very large bit rates, the ratio of R T to R E is determined primarily by the term ⁇ R E , and not the term ⁇ R E , which tends towards zero for very high R E . This tends to accurately model the actual impact of the ratio of R T to R E .
  • the small amount of PES header information which does not scale up with the increased number of bits produced for each picture at higher bit rates R E , is small or_negligible.
  • ⁇ , ⁇ and ⁇ are the dynamically adjustable parameters of the vector of parameters.
  • ⁇ > 188/184, ⁇ > 0 and ⁇ > 0 for the case where 188 byte transport packets, with headers containing at least 4 bytes, are used for the systems layer.
  • the invention adaptively determines the best relationship between elementary stream bit rate/counts and transport stream bit rate/counts for any rate shaping system or device that generates or modifies elementary streams, in order to output a transport stream intending to meet specified quality of service specifications.
  • the invention can be used dynamically, i.e., in real time, while the rate shaping system is in operation.
  • the invention can be used for any elementary stream, including both video and audio.
  • the invention can be used in any type of rate shaping device, such as an encoder, transcoder, editor, splicer or remultiplexer.
  • Perceptual quality is improved in the elementary streams as a result of stricter adherence to bit rate constraints and thus more optimal use of bits for encoded information
  • the invention is a supplement to systems layer stream or transport stream bit rate allocation algorithms and can be used with virtually any algorithm.
  • the invention can be used for single program systems layer or transport streams as well as multiple program systems layer or transport streams.
  • the relationship between bit rates of elementary streams to (systems layer streams) transport streams can be controlled independently for each program or controlled jointly over all programs.
  • the invention can be used with any systems layer packetization strategy and automatically adapts to dynamic changes in systems layer packetization strategy.
  • the invention supports-simultaneous use of- different systems layer packetization strategiesj r each of multiple bit rate controlled elementary streams.
  • the invention can be used with any PCR or other time stamp insertion strategy and automatically adapts to dynamic changes in the time stamp insertion strategy.
  • the invention supports simultaneous use of different time stamp insertion strategies for each of multiple bit rate controlled elementary streams.
  • (11) The invention automatically adapts to random insertion of optional (systems layer) transport stream header, PES header or other intermediate layer data such as stuffing, private data, trick mode information, copyright information, etc.
  • the invention has been described herein with reference to specific embodiments solely for sake of brevity and illustration. Those skilled in the art can derive numerous alternative embodiments without departing from the spirit and scope of the following claims.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Systems (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

L'invention concerne un procédé et un système de commande de la génération d'un flux de couches supérieures, par exemple un flux de transport, portant un programme formé d'au moins un flux élémentaire, par exemple un signal audio codé ou un signal vidéo codé. Le flux de couches supérieures est formé de segments en série, par exemple des paquets, contenant des informations spécifiques aux couches supérieures, par exemples des en-têtes, et des segments de données de flux élémentaire. Le débit binaire d'un ou de plusieurs flux élémentaires est adapté à une relation de changement dynamique associant le débit binaire desdits flux élémentaires au débit binaire de la partie du flux de couches supérieures portant ceux-ci.
PCT/US2004/026082 2003-08-13 2004-08-12 Procede et systeme de modelisation de la relation entre le bit d'un flux elementaire et le debit binaire d'un flux elementaire porte WO2005020557A2 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA2535453A CA2535453C (fr) 2003-08-13 2004-08-12 Procede et systeme de modelisation de la relation entre le debit binaire d'un flux de transport et le debit binaire d'un flux elementaire porte par ledit flux de transport

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US10/641,322 2003-08-13
US10/640,866 2003-08-13
US10/640,866 US7227899B2 (en) 2003-08-13 2003-08-13 Method and system for re-multiplexing of content-modified MPEG-2 transport streams using interpolation of packet arrival times
US10/641,322 US7274742B2 (en) 2003-08-13 2003-08-13 Model and model update technique in a system for modeling the relationship of the bit rate of a transport stream and the bit rate of an elementary stream carried therein
US10/640,871 US7693222B2 (en) 2003-08-13 2003-08-13 Method and system for re-multiplexing of content-modified MPEG-2 transport streams using PCR interpolation
US10/640,872 US7342968B2 (en) 2003-08-13 2003-08-13 Method and system for modeling the relationship of the bit rate of a transport stream and the bit rate of an elementary stream carried therein
US10/640,871 2003-08-13
US10/641,323 US20050036557A1 (en) 2003-08-13 2003-08-13 Method and system for time synchronized forwarding of ancillary information in stream processed MPEG-2 systems streams
US10/641,323 2003-08-13
US10/640,872 2003-08-13

Publications (2)

Publication Number Publication Date
WO2005020557A2 true WO2005020557A2 (fr) 2005-03-03
WO2005020557A3 WO2005020557A3 (fr) 2008-11-13

Family

ID=34222664

Family Applications (4)

Application Number Title Priority Date Filing Date
PCT/US2004/026125 WO2005020559A2 (fr) 2003-08-13 2004-08-12 Procede et systeme de transmission synchronisee dans le temps d'informations auxiliaires dans des flux continus de systemes mpeg-2 traites en continu
PCT/US2004/026124 WO2005020558A2 (fr) 2003-08-13 2004-08-12 Procede et systeme de remultiplexage de flux de transport mpeg-2 a contenu modifie utilisant l'interpolation des heures d'arrivee des paquets
PCT/US2004/026164 WO2005019999A2 (fr) 2003-08-13 2004-08-12 Procede et systeme de remultiplexage de sequences de transport mpeg-2 a contenu modifie, avec interpolation de la pcr
PCT/US2004/026082 WO2005020557A2 (fr) 2003-08-13 2004-08-12 Procede et systeme de modelisation de la relation entre le bit d'un flux elementaire et le debit binaire d'un flux elementaire porte

Family Applications Before (3)

Application Number Title Priority Date Filing Date
PCT/US2004/026125 WO2005020559A2 (fr) 2003-08-13 2004-08-12 Procede et systeme de transmission synchronisee dans le temps d'informations auxiliaires dans des flux continus de systemes mpeg-2 traites en continu
PCT/US2004/026124 WO2005020558A2 (fr) 2003-08-13 2004-08-12 Procede et systeme de remultiplexage de flux de transport mpeg-2 a contenu modifie utilisant l'interpolation des heures d'arrivee des paquets
PCT/US2004/026164 WO2005019999A2 (fr) 2003-08-13 2004-08-12 Procede et systeme de remultiplexage de sequences de transport mpeg-2 a contenu modifie, avec interpolation de la pcr

Country Status (2)

Country Link
CA (4) CA2535453C (fr)
WO (4) WO2005020559A2 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100391249C (zh) * 2005-09-28 2008-05-28 西安通视数据有限责任公司 一种数字视频广播转换方法及其装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6167084A (en) * 1998-08-27 2000-12-26 Motorola, Inc. Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals
US6330286B1 (en) * 1999-06-09 2001-12-11 Sarnoff Corporation Flow control, latency control, and bitrate conversions in a timing correction and frame synchronization apparatus

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579183A (en) * 1994-04-08 1996-11-26 U.S. Philips Corporation Recording and reproducing an MPEG information signal on/from a record carrier
US5566174A (en) * 1994-04-08 1996-10-15 Philips Electronics North America Corporation MPEG information signal conversion system
JP3575100B2 (ja) * 1994-11-14 2004-10-06 ソニー株式会社 データ送信/受信装置及び方法並びにデータ記録/再生装置及び方法
US5533021A (en) * 1995-02-03 1996-07-02 International Business Machines Corporation Apparatus and method for segmentation and time synchronization of the transmission of multimedia data
JPH09139937A (ja) * 1995-11-14 1997-05-27 Fujitsu Ltd 動画ストリーム変換装置
US5703877A (en) * 1995-11-22 1997-12-30 General Instrument Corporation Of Delaware Acquisition and error recovery of audio data carried in a packetized data stream
US5835493A (en) * 1996-01-02 1998-11-10 Divicom, Inc. MPEG transport stream remultiplexer
US7088725B1 (en) * 1999-06-30 2006-08-08 Sony Corporation Method and apparatus for transcoding, and medium
JP2001251616A (ja) * 2000-03-02 2001-09-14 Media Glue Corp 多重化音響・動画圧縮符号化信号変換方法、装置および変換プログラムを記録した媒体
US6470049B1 (en) * 2000-05-31 2002-10-22 Next Level Communications, Inc. Method for dealing with missing or untimely synchronization signals in digital communications systems
US6931071B2 (en) * 2001-08-31 2005-08-16 Stmicroelectronics, Inc. Apparatus and method for synchronizing video and audio MPEG streams in a video playback device
US6868125B2 (en) * 2001-11-29 2005-03-15 Thomson Licensing S.A. Transport stream to program stream conversion

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6167084A (en) * 1998-08-27 2000-12-26 Motorola, Inc. Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals
US6330286B1 (en) * 1999-06-09 2001-12-11 Sarnoff Corporation Flow control, latency control, and bitrate conversions in a timing correction and frame synchronization apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100391249C (zh) * 2005-09-28 2008-05-28 西安通视数据有限责任公司 一种数字视频广播转换方法及其装置

Also Published As

Publication number Publication date
CA2535457A1 (fr) 2005-03-03
CA2535457C (fr) 2013-04-23
WO2005019999A3 (fr) 2008-11-06
WO2005020559A2 (fr) 2005-03-03
CA2535455A1 (fr) 2005-03-03
CA2535453C (fr) 2014-04-15
WO2005020557A3 (fr) 2008-11-13
CA2535306A1 (fr) 2005-03-03
CA2535453A1 (fr) 2005-03-03
WO2005020558A2 (fr) 2005-03-03
WO2005020558A3 (fr) 2006-02-16
WO2005019999A2 (fr) 2005-03-03
WO2005020559A3 (fr) 2007-01-25

Similar Documents

Publication Publication Date Title
US7227899B2 (en) Method and system for re-multiplexing of content-modified MPEG-2 transport streams using interpolation of packet arrival times
US7274742B2 (en) Model and model update technique in a system for modeling the relationship of the bit rate of a transport stream and the bit rate of an elementary stream carried therein
US10015052B2 (en) Cross layer coordinated channel bonding
US7295520B2 (en) System and method of network adaptive real-time multimedia streaming
US8781003B2 (en) Splicing of encrypted video/audio content
US7400588B2 (en) Dynamic rate adaptation using neural networks for transmitting video data
EP1699240B1 (fr) Methode de traitement de donnees video et dispositif de traitement de donnees video
US7433946B2 (en) Mechanism for transmitting elementary streams in a broadcast environment
US20100312828A1 (en) Server-controlled download of streaming media files
US20090010430A1 (en) Streaming system for distributing encrypted compressed image data, and streaming method therefor
JP2000078573A (ja) 階層符号化データ配信装置
US20100064054A1 (en) Remote fast forward and rewind functionality for client devices
US8873590B2 (en) Apparatus and method for correcting jitter
US7342968B2 (en) Method and system for modeling the relationship of the bit rate of a transport stream and the bit rate of an elementary stream carried therein
US7729383B2 (en) Multiplexer and multiplexing method
US20090168891A1 (en) Method for controlling video encoding bit rate based on transport packet length, and apparatus for coding video using the same
CA2535453C (fr) Procede et systeme de modelisation de la relation entre le debit binaire d'un flux de transport et le debit binaire d'un flux elementaire porte par ledit flux de transport
US9172914B1 (en) Using EQAM video de-jitter memory for processing M-CMTS DEPI PSP priority queues
EP2188973B1 (fr) Procédé, appareil serveur et appareils client pour transférer des données multimédias haute résolution dans un réseau à vitesse élevée
US7949052B1 (en) Method and apparatus to deliver a DVB-ASI compressed video transport stream
WO2022097229A1 (fr) Dispositif d'estimation de débit, procédé d'estimation de débit et programme
WO2010086021A1 (fr) Procédé et appareil de traitement vidéo en aval efficace selon un traitement et une fourniture de métrique en amont
WO2021113205A1 (fr) Correction de base de temps audiovisuelle dans des applications à débit binaire adaptatif
Rexford et al. A Smoothing Proxy Service for Variable-Bit-Rate Video

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 BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG 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 NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

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

121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2535453

Country of ref document: CA

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase