WO2009124779A2 - Method of optimizing transmission of a stream of audio frames with variable bit rate in a transport stream for transmission on a network - Google Patents
Method of optimizing transmission of a stream of audio frames with variable bit rate in a transport stream for transmission on a network Download PDFInfo
- Publication number
- WO2009124779A2 WO2009124779A2 PCT/EP2009/002689 EP2009002689W WO2009124779A2 WO 2009124779 A2 WO2009124779 A2 WO 2009124779A2 EP 2009002689 W EP2009002689 W EP 2009002689W WO 2009124779 A2 WO2009124779 A2 WO 2009124779A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- packet
- stream
- audio
- transport
- elementary
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
- H04N21/4385—Multiplex stream processing, e.g. multiplex stream decrypting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/233—Processing of audio elementary streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2389—Multiplex stream processing, e.g. multiplex stream encrypting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8106—Monomedia components thereof involving special audio data, e.g. different tracks for different languages
Definitions
- a method of optimizing transmission of a variable rate audio frame stream in a transport stream for transmission over a network is a method of optimizing transmission of a variable rate audio frame stream in a transport stream for transmission over a network.
- the present invention relates to the field of variable bit rate digital audio stream transmission to one or more receivers via a packet transport network. More specifically, the invention relates to reducing the bit rate of a variable bit rate (VBR) stream for sending it in a transport stream for transmission over a network.
- VBR variable bit rate
- an encapsulator of audio frames allows the packaging of these frames in view of its adaptation for sending packets on a network.
- the tasks of such an encapsulator include the packaging of an Audio Frame Stream (or "Audio Frame Stream") into Packetized Elementary Stream ("Packetized Elementary Stream”) packets.
- the PES audio stream (s) are then put into transport packets, for example according to the MPEG2-TS format (Moving Pictures Expert Group, Transport Stream, the MPEG2-TS format is described in document ISO / IEC 13818-1). , allowing transmission of the audio frame stream over a packet transport network.
- the audio frames processed by such an encapsulator may be of constant bit rate or of variable bit rate.
- the management of this type of network imposes a given flow limited flow.
- Bandwidth allocated to a stream transported by a packet transport network for example DVB-H (Digital Video Broadcasting - Handheld) or portable devices "in French) or 3GPP (" Third Generation Partnership Project ") is limited for technical, economic or regulatory reasons.
- the process of encapsulating a flow of variable rate audio frames into a transport packet stream causes a delay.
- a short conversion period is advantageous because the delay between sending and receiving such a stream will be reduced, which increases the comfort of use of such a network.
- the conversion of a stream of variable rate audio frames into a transport packet stream is done by adding stuffing bits (or stuffing bits) when packaging the packet. or audio PES packets in a transport stream packet, especially to ensure that a new audio PES packet starts at the beginning of a transport stream packet, which simplifies the encoding of such a stream and its decoding, but this does not optimize the bandwidth of the stream of audio frames thus converted.
- the number of audio frames per packet of elementary stream is fixed, again to facilitate encoding and decoding, but this leads to an encoding delay, because before being able to send a packet of elementary stream thus constructed, the header of this elementary stream packet must be built.
- the header includes the size of the elementary stream packet, which is variable according to the state of the art because it depends on the size of the received audio frames. This process leads to a temporary storage of a number of audio frames before sending in one or more transport stream packets. This temporary storage (“bufferization" in English) results in an encoding delay.
- the prior art does not optimize this delay.
- the maximum throughput of a transport packet stream is in practice subject to maximum throughput constraint.
- adding stuffing data reduces the available bandwidth for the audio data, which has an impact on the quality of the transmitted audio data.
- adding stuffing data to the audio PES packets reduces either the maximum available bit rate for the audio stream, or the video stream, on both.
- the invention aims to overcome at least one of these disadvantages of the prior art.
- the invention aims to optimize the transmission of variable rate audio frames in a transport packet stream.
- One of the optimizations of the transmission obtained by the invention lies in the reduction of the bandwidth taken for the transmission of a transport packet stream constructed according to the invention, in particular by an optimal filling of the elementary flow packets. and transport stream packets.
- the method for optimizing the transmission of variable rate audio frames makes it possible, in particular, not to add stuffing data as well in the packetization step.
- elementary stream of variable rate audio frames only in the elementary stream packet transporting packetization step.
- the transmission method of the invention comprises a step of determining a size of a packet of elementary streams, optimized at the same time to the characteristics of the stream of received audio frames and to the characteristics of the transport stream.
- Another optimization of the transmission obtained by the invention lies in the reduction of the transmission delay of a variable rate audio frame received at the input of a transmitter packaging these frames in a signal stream.
- elementary packets and the packaging of elementary packet streams in a transport stream This optimization is obtained in particular by setting the size of the elementary stream packets according to the method of the invention, and by calculating the time reference of these packets according to the invention, which then makes it possible to know very quickly the parameters which must be put in the header of a packet of elementary stream, and thus be able to transmit audio frames received on the fly, that is to say that the transmission method according to the invention requires only temporary storage of a single audio frame before it is transmitted in a transport packet stream, which reduces the transmission delay of the audio frames.
- the invention proposes a method for optimizing the transmission of a stream of variable rate audio frames in a stream of transport for transmission over a packet transport network.
- the method includes the following steps:
- time reference (63) for each audio frame belonging to a set of received variable rate audio frames, the time reference being associated with a reception timing of the audio frame;
- the audio elementary stream packet encapsulating at least one variable rate audio frame in an elementary audio stream packet (641) with the generated timing reference, the audio elementary stream packet having a size determined according to characteristics of said audio frame rate stream variable and depending on a transport packet payload of the transport stream; encapsulating at least a portion of the audio elementary stream packet in at least one transport packet (642); and
- the transport packet constructed according to the method does not include a stuffing bit added to the audio component present in the transport stream packet,
- a transport packet stream constructed according to the transmission optimization method of the invention, comprising only variable rate audio frames, will therefore also be variable bit rate.
- the transport stream according to the invention can be converted into a constant bit rate transport stream if, for example, the transport stream also comprises a component other than the audio component, for example a video component and / or a data component. which stuffing data is added to make the total transport stream (audio + other components) at a constant rate, a technique included in the state of the art.
- the method comprises a determination of the size of the elementary stream packet according to at least the following criteria: a first minimum size of the out-of-box elementary stream packet is equal to the maximum size of the audio frames of the audio frame stream,
- a second minimum size of the elementary stream packet is greater than or equal to the size of a forward transport packet of the transport stream
- the third maximum size of the elementary stream packet is an integer times the size of a forward transport packet of the transport stream, and the size of the elementary stream packet is a value that is equal to or greater than the larger of the first and second minimum sizes and which is equal to or less than at least the third maximum size.
- the method comprises a step of determining a fourth maximum size of the elementary stream packet as a function of a maximum decoding delay of the transport stream, and that the size of the elementary stream packet is d a value that is equal to or less than the smallest of the third and fourth maximum sizes.
- the method comprises a step of prior analysis of the characteristics of the flow of variable rate audio frames and that said size of said packet of elementary audio stream is determined according to the result of this analysis.
- the value for the size of the audio elementary stream packet is determined from characteristics of the audio frame stream provided to the transmission optimization method.
- the encapsulation step of at least one audio frame, and the encapsulation step of at least a part of the audio elementary stream packet are combined in a single encapsulation step.
- variable rate audio frames in transport packets are combined in a single encapsulation step.
- the encapsulation step of at least one audio frame, and the step of encapsulating at least a portion of the audio elementary stream packet are distinct.
- the step of generating a time reference comprises the following steps:
- the time reference for the header of an audio elementary stream packet is equal to the time reference corresponding to the time of reception of the audio frame
- the time reference for the header of a current audio elementary stream packet is equal to the sum of a reference of corresponding time at the time of reception of the beginning of the audio frame and the duration of reception of the audio frame.
- the time reference of the header of an elementary stream packet makes it possible, on reception, to clock the decoding of the elementary stream. To allow such a timing, the time reference is included in a determined manner. According to for example the ISO / IEC 13818-1 standard, the time reference associated with the time of reception of the first complete audio frame included in the elementary stream packet.
- FIG. 1 shows a schematic block diagram of an infrastructure implementing the invention in two different types of equipment
- FIG. 2 shows an apparatus for implementing the invention according to a particular embodiment of the invention, such an apparatus belonging to the infrastructure of Figure 1;
- FIG. 3 represents an exemplary format of audio frames accepted at the input of the apparatus of FIG. 2;
- FIG. 4 represents an exemplary output data format provided by the apparatus of FIG. 2
- FIG. 5 diagrammatically illustrates the different levels of encapsulation of the data processed by the apparatus of FIG. 2;
- FIGS. 6 to 8 illustrate a method for optimizing the transmission of variable rate audio frames in a transport stream for transmission, according to the invention and implemented in the apparatus of FIG. 2;
- FIG. 9 illustrates a particular embodiment of a method of receiving a transport stream constructed according to the transmission method.
- FIG. 1 presents a schematic block diagram of an infrastructure 1 in two different types of equipment (encapsulator 104 and re-multiplexer 110) embodying the invention.
- the infrastructure 1 comprises: an audio source 100;
- an encoder 102 connected to the source 100 via a connection 101;
- the encapsulator 104 connected to the encoder 102 by a connection 103;
- a first receiver 108 connected to the encapsulator 104 by a first network 106 and connections 105 and 107;
- a remultiplexer 110 connected to the encapsulator 104 by the network 106 and connections 105 and 109;
- the audio source 100 supplies audio data to the encoder 102.
- the encoder 102 provides a variable rate audio frame stream to the transport packet encapsulator 104.
- the encapsulator 104 provides a transport packet stream, including a variable rate audio frame stream, to the first receiver 108 and
- the first receiver 108 is adapted to decode the stream of audio frames included in the transport stream.
- the remultiplexer 110 (sometimes also called rémux, re-encoder, or transcoder) is adapted to receive a stream of transport packets, multiplexed with other streams or not, to extract therefrom a stream of variable rate audio frames, and re-encode this stream of audio frames at another rate and / or according to another standard, and possibly re-multiplex with other streams.
- the remultiplexer 110 re-encodes a stream of audio frames encoded by the encoder 102 to the AAC audio encoding format (according to ISO / IEC 14496-3: 2005) in audio encoding format AC3 (according to the ETSI standard TS 102 366).
- the re-multiplexer 110 then re-encapsulates the audio frame stream resulting from this conversion, to create a new transport packet stream comprising a variable rate audio frame stream, which is transmitted to the second receiver 114 via the second network 112.
- the second receiver 114 is adapted to decode the stream of audio frames included in the transport stream from the remultiplexer 110.
- the remultiplexer receives a stream of multiplexed transport packets with other streams of audio or video type, extracts a stream of variable rate audio frames therefrom, re-encodes it according to another bit rate and / or according to another encoding standard, encapsulates it in a stream of transport packets and transmits it.
- the remultiplexer receives a stream of multiplexed transport packets with other streams of audio or video type, and extracts a stream of variable rate audio frames therefrom, remultiplexing it with at least one other stream of audio or video type , encapsulates it in a stream of transport packets, and transmits it.
- the remultiplexer receives a stream of transport packets, extracts a stream of variable rate audio frames, re-encodes it with another rate, encapsulates it in a stream of transport packets, and transmits it.
- the networks 106 and 112 comprise several audio encoders (for example two, three, four or more) and / or several encapsulators, several rémultiplexers, as well as other equipment useful for proper operation.
- the networks 106 and 112 are represented with a single receiver. According to variants, the networks 106 and
- 112 include a plurality of receivers (eg, two, three, ten, ...) adapted to receive and decode an audio packet stream including a variable rate audio frame stream.
- the transmission optimization method is implemented in the encapsulator 104, the re-multiplexer 110, or any other type of apparatus receiving a stream of variable rate audio frames, encapsulating these frames in transport packets (directly or via encapsulation in a stream of elementary packets), which are transmitted to one or more recipients.
- FIG. 2 schematically illustrates an apparatus 2 implementing the invention according to a particular embodiment.
- the apparatus 2 is for example the encapsulator 104 or the remultiplexer 110.
- the apparatus 2 comprises, interconnected by an address and data bus 23: a microprocessor 21 (or CPU, from the English "Central Processing Unit”);
- an internal clock 25 for associating a time reference with a received audio frame.
- the word "register" used in the description of the memories 20 and 26 designates in each of the memories mentioned, as well a memory area of low capacity (some binary data) that a large memory area (to store an entire program or all or part of the audio data received).
- the ROM 20 includes in particular:
- the algorithms implementing the steps of the method described below are stored in the ROM 20 associated with the device 2 implementing these steps.
- the microprocessor 21 loads and executes the instructions of these algorithms.
- RAM 26 includes in particular:
- a register 261 the operating program of the microprocessor 21 which is charged when the device 2 is powered up; a buffer zone for storing a received audio frame in a register 262; a time reference associated with the moment of receiving an audio frame, in a register 263;
- a register 264 for preparing and storing a transport packet
- a register 265 allowing the storage of the determined size of the elementary stream packets
- the invention is implemented in a purely hardware ("hardware") embodiment, for example in the form of a dedicated component (for example in an ASIC or FPGA or VLSI) (respectively " Application Specifies "Integrated Circuit” in English, meaning “Integrated Circuit for a Specific Application”, “Field-Programmable Gate Array” in English, meaning “In-Situ Programmable Gate Network”, “Very Large Scale Integration” in English , meaning “very large-scale integration”)) or of several electronic components integrated in a device or in the form of a mixture of hardware elements and software elements (“software” in English).
- a dedicated component for example in an ASIC or FPGA or VLSI
- FIG. 3 represents an exemplary format of audio frames 30, 31 and 32 successively received at the input of the apparatus 2.
- the example of FIG. 3 is presented as a simple illustration; the device 2 can receive other audio frames of different lengths and different formats.
- the audio frames 30, 31 and 32 accepted at the input of the apparatus 2 are formatted according to the audio MPEG standard, and in particular MPEG 1 and 2 layer I, II and III (according to ISO / IEC 11172-3 references. ISO / IEC 13818).
- the frame 30 (respectively 31, 32) comprises: a header (or "header” in English) 301 (respectively 311, 321), comprising fields of header 3011 to 3014 (respectively 3111 to 3114, 3211 to 3214). ); and
- a field 302 (respectively 312, 322) of useful audio data (or "payload” in English) whose size is variable from one frame to another.
- the letters in the header 301 represent bit fields; their meaning depends on the associated standard. According to MPEG audio standard mentioned above, the header 301 (respectively 311, 321) comprises four bytes 3011 to 3014 (respectively 3111 to 3114, 3211 to 3214).
- Bytes 3011 and 3012 include, for example, an 11-bit synchronization word (or "syncword” in English) All the bits of the synchronization word are set to "1", This makes it possible to recognize the start of a frame in a stream of audio frames.
- By 3012 (resp 3112, 3212) also includes two bits indicating the version of the MPEG standard, two bits indicating the value of the layer. of the MPEG standard, then a single bit indicating whether the header is followed by a value of sixteen bits of cyclic redundancy check (or "cyclic redundancy check" or "crc" in English) byte 3013 (or 3113).
- 3213 includes an index value in a table according to the audio MPEG standard, representing the rate of coding of the frame ("bit rate" in English)
- Byte 3013 (or 3113, 3213) also includes two bits for sampling rate (or “sampling rate” in English) for the frame, followed by two indicators of presence of an extension bit (" padding bit "in English) and a meaningless bit according to the MPEG audio standard.
- Byte 3014 (or 3114, 3214) includes an indicator for stereo or mono coding, followed by other bits indicating whether it is a copy, whether the frame content is subject to copyrights etc.
- FIG. 4 represents an exemplary output data format provided by the apparatus 2 and more particularly a transport packet comprising successively:
- a transport packet header 40 and a payload comprising a packet of elementary streams; a packet of elementary streams with a header 41;
- a payload portion comprising three audio frames 30, 31 and 32.
- transport packets have a fixed length of 188 bytes, including a four-byte header.
- the header 40 of the transport packet is composed as follows.
- a synchronization word 401 having a fixed value of 47 hexadecimal, allows, in a stream of received transport packets, to find the beginning of a transport package.
- a byte 402 comprising an indicator to know that an error has been detected upstream and an indicator to know if the transport packet comprises a header of a packet of elementary stream or not.
- an indicator gives a priority value for the packet, followed by 13 bits, distributed in bytes 402 and 403 which give an identification value of the transport packet, used for example in a transport stream comprising transport packets. carrying different types of streams (audio, video, ).
- Byte 404 includes a two-bit flag to indicate the type of transport scrambling used, followed by two bits indicating the presence of an adaptation field according to the standard, and then four bits to hold the value of a counter. continuity, to know the sequence number for reassembly of an elementary stream packet if this elementary stream packet is too large to be put completely in a transport packet.
- the elementary stream packet header PES 41 comprises in the example illustrated 9 bytes.
- the first three bytes 411, 412 and 413 comprise a synchronization word or ("Packet Start Code Prefix" in English, for "packet start prefix code”), of a fixed value, making it possible to know a beginning of a packet of elementary streams in a stream.
- a byte 414 which includes the "Streamjd" which is used to identify the type of elementary stream contained in the PES packet.
- a value of Streamjd identifies an elementary audio stream MPEG 1 or MPEG 2
- the following two bytes 415 and 416 comprise a value representative of the length of the header PES, and make it possible to determine where the start of the payload of the PES packet.
- various flags or "flags" in English
- byte 419 indicating the remaining length of the 'on your mind. In the example shown here, the remaining length is zero.
- the headers 40 of the transport packet and 41 of the elementary stream packet are repeated only once for the three audio frames 30, 31 and 32.
- the frequency of occurrence of an elementary flow header at within a transport packet depends on the size of the payload of a transport packet and the size of the elementary stream packet.
- several elementary flow headers are present in a transport packet if the size of the payload of a transport packet allows it.
- an elementary stream packet is longer than a transport packet (for example 2048 bytes); a transport packet transports, according to the standard, the data of a single packet of elementary streams at a time.
- Figure 5 illustrates the encapsulation of several audio frames in a transport packet.
- FIG. 5 diagrammatically illustrates the different levels of encapsulation of the data processed by the apparatus 2 embodying the invention, and more specifically two transport packets 50 and 51.
- the transport packet 50 (respectively 51) comprises:
- a header 501 (respectively 511);
- the payload is not limited to an elementary stream packet and comprises several elementary stream packets.
- the payload comprises a portion of a packet of elementary streams.
- the elementary stream packet 5021 (respectively 5121) comprises:
- a payload portion 50212 (respectively 51212) comprising audio frames 502121, 502122 and 502123 (respectively 512121 and 512212.
- the frame 512121 is the continuation of the frame 502123, which could not be put completely in the transport package 50.
- the frame 512212 is not complete and the data of the frame 512212 not present in the transport packet 51 are inserted into another transport packet which is not illustrated here.
- an elementary stream packet may be longer in length than a transport packet; in this case, the payload of an elementary stream packet is distributed in one or more transport packets, without repeating the header of the elementary stream packet.
- FIG. 6 represents, in the form of an algorithm, a method for optimizing transmission of variable rate audio frames in a stream transport for transmission over a packet transport network implemented in the apparatus 2.
- the method for optimizing transmission of variable rate audio frames in a transport stream for transmission over a packet transport network begins with a step 60 during which various variables necessary for its proper operation are initialized. Then, during a step 62, the device 2 receives a variable rate audio frame 262 (corresponding for example to one of the frames 30, 31 or 32). In a step 63, the apparatus 2 generates a time reference for each received audio frame (audio frame belonging to a set of received variable rate frames), allowing a time reference 263 to be associated with a reception timing. an audio frame.
- the apparatus 2 encapsulates at least one variable rate audio frame in an elementary stream packet with the associated time reference 263, the elementary stream packet having a determined size 265.
- At least a portion of the elementary stream packet is encapsulated in at least one transport packet (for example according to the format of the transport packet of FIG. 4.
- step 65 at least a portion of a transport packet is transmitted, and step 62 is repeated.
- the steps 641 and 642 are distinct. According to an alternative embodiment, the steps 641 and 642 are brought together in a single step 64; according to this variant, a received audio frame is directly encapsulated in a transport packet in accordance with the elementary stream format (without explicit creation of an elementary stream packet), and transmission of the transport packet is performed as soon as at least a determined part of the frame is complete. For example, as soon as the header of the transport packet is ready, the header of the transport packet is transmitted; then, as soon as the header of an elementary stream packet is ready, the header of an elementary stream packet is transmitted, and as soon as an audio frame begins to be read, the read data is transmitted.
- This transmission on the fly is possible with the method, all the information necessary for the construction of at least a portion of a transport packet being available upon receipt of an audio frame.
- This transmission on the fly is advantageous because the method does not require storing and / or receiving all the audio frame data that is inserted into a transport packet for transmission of the transport packet to begin. In fact, the method only requires the temporary storage of only one audio frame at a time, i.e., the last audio frame received. Thus, a delay between the moment of receiving an audio frame and the transmission of at least a portion of a transport packet that includes the audio frame is reduced.
- the transmission of each transport packet starts as soon as a transport packet header is constructed.
- the transmission of data corresponding to a packet of elementary streams, these data being encapsulated in a transport packet begins as soon as a header corresponding to this elementary stream packet is constructed.
- the determination of a size for the elementary flow packets comprises the respect of all or some of the following criteria, allowing an optimal filling rate of the packets:
- the minimum size of the elementary stream packets excluding the header is equal to the maximum size of an audio frame; this so that the audio frames are too large to be contained in a single packet of elementary stream, because in this case it is necessary to distribute the audio frame in several packets of elementary stream, and thus several headers of elementary streams are necessary for the same frame this is not conducive to effective packaging because the number of bits needed to package • an audio frame and increases;
- the minimum size of the elementary stream packets is an integer times the size of the out-of-box transport packets, a constraint that may be imposed by the encoding standard used, such as the MPEG2-system standard, which imposes that can not have multiple PES headers in the same transport packet.
- the determined size is equal to or greater than greater than the minimum values and equal to or less than the maximum value. If two criteria are included in the calculation of the minimum size of a packet of elementary streams, the maximum size is chosen between the two minimum sizes and rounded to a multiple of the payload size of a packet. transport.
- the maximum size of the elementary stream packets is determined by a maximum zapping time; according to this variant, the size of the elementary stream packets is limited to a value enabling a receiver to find, during a change of stream, an elementary stream packet header in a determined maximum time period (judged as acceptable by a user), for example within a maximum of 500 ms.
- this determination of the maximum size of the elementary stream packets can be combined with the determination of the minimum size as described above.
- the determined size of the elementary stream packets is equal to or greater than the largest of the minimum values and equal to or less than the maximum value.
- the size of the elementary stream packets is an editable configurable parameter.
- the size of the elementary stream packets is a pre-recorded and fixed configuration parameter.
- the size of the elementary stream packets is a pre-registered and modifiable configuration parameter.
- a step of prior analysis of the characteristics of the flow of variable rate audio frames is performed; then, a value for the size of the elementary stream packets is determined according to the result of this analysis.
- Such an analysis makes it possible in particular to determine the characteristics such as the maximum bit rate of the frame stream and the maximum size of the audio frames supplied to the transmission optimization method.
- the determination of a value for the size of the elementary stream packets is performed on data on the stream of audio frames supplied to the method.
- transmission optimization such as frame rate and maximum frame size.
- MinNbTpForFrame (MinSizePESHeader + (MaxAudioRebit / DurationAudioTram)) / SizeChargeUtilePackingTransport. in which: - MinNbTpPourTram expresses the minimum number of transport packets necessary for encapsulation of an audio frame;
- - MinSizePESEnter expresses the minimum size of an elementary stream packet header
- - SizeLoadUtilePackageTransport expresses the size of the payload of the transport packets, for example 184.
- MaxAudioRbit / DurationAudioTram gives the maximum size of the audio frame.
- MaxDetAudio is for example 128kbits / s
- TimeTramAudio is for example 10 milliseconds;
- MinNbTpPourFrame thus calculated is then rounded upwards, and is given the value of the integer times the value of the payload of a transport packet. For example, if MinNbTpForFrame gives a value of 134.67, and the payload size of a transport packet is 184, the final value of MinNbTpPourFrame is 184.
- the size of the elementary stream packet is then calculated as follows:
- Size_PES N * MinNbTpForWheel * SizeLoadUtilePackageTransport
- N is minimal equal to 1 and can go up to
- N (ZappingTime / MaximumTimeAudioTrue).
- the ZapTime variable has a value of 0.5 to have an access point every 0.5 seconds, allowing a receiver to begin decoding after a maximum of 0.5 seconds.
- the transmission of at least one complete transport packet is made upon receipt of a variable rate audio frame. This variant of implementation In particular, this work makes it possible to reduce the delay between the reception of an audio frame and the transmission of the transport packets.
- the transmission of at least one complete transport packet is made upon receipt of several variable rate audio frames.
- the number of audio frames received before the transmission of a transport packet can be calculated by observing the delay between the input and the output of an audio frame, taking into account the delay introduced by the addition of the flow headers. elementary and transportation.
- Figure 7 shows in detail an example of implementation of step 63.
- Step 63 begins with a test 631, in which the apparatus 2 checks whether an elementary stream packet header (for example 50211 or
- the device 2 checks whether the treated elementary stream packet starts with a start of an audio frame or not (by for example: the audio frame 502121 starts in the elementary stream packet 5021, and the audio frame 512121 does not start in the elementary stream packet 5121).
- the elementary stream packet starts with an audio frame start, and during a step 633, a time reference corresponding to the time of reception of the processed audio frame is retained and put in the header of the audio frame.
- elementary stream packet (eg 50211).
- the time reference for the elementary stream header is determined as the value of the time reference associated with the the time of reception of the audio frame to which is added the duration of reception of the frame (for example, the reference of time to put in the header of the packet of elementary flow
- Step 63 ends at the end of steps 633 or 634 or if the result of test 631 is negative.
- Fig. 8 shows step 64 of encapsulating variable rate audio frames in transport packets without dissociating steps 641, 642, 643.
- a transport packet is created if necessary, i.e., at the first execution of step 64, or if the transport packet being processed is full. At the end of this step, if a header has been created, it is ready and transmitted.
- a PES packet header or elementary stream is added to the previously created transport packet, if necessary, i.e., at the first execution of step 64, or if the PES package being processed is full.
- the header comprises a time reference, which can be calculated according to the algorithm presented in FIG. 7.
- the header also comprises a value of the length of the elementary stream packet, having a determined value. At the end of this step, if a header is created, it is ready and transmitted.
- the audio frame read is added wholly or in part to the current transport packet until the current elementary stream packet is completely filled, or until the audio frame read is completely processed, that is, added in its entirety to a packet of elementary streams.
- step 82 the device 2 checks whether the current elementary stream packet is full or not. If the current elementary stream packet is full, step 82 is reiterated.
- the device 2 checks whether the current transport packet is full.
- Step 85 a new transport packet is created. Step 83 is then repeated.
- the device 2 checks whether the audio frame whose processing is in progress is completely encapsulated. If this is the case, a new audio frame is read back to step 62. If the audio frame being processed is not yet fully encapsulated, a new transport packet is created in step 85 and step 83 is repeated.
- the steps comprising transmissions provide the data ready to be transmitted to a transmission buffer or FIFO ("first in, first out"), which brings them together before send all or part of it.
- FIFO first in, first out
- This allows to group parts of transport packets or entire transport packets to burst them (or “burst” in English) or, on the contrary, to spread their sending in time, according to the characteristics of the network on which the packets are transmitted.
- the steps comprising transmissions provide the data ready to be transmitted to a transmission buffer in order to be grouped and encapsulated in RTP transport packets according to the IETF RFC 3550 standard (for " Real-time Transport Protocol "in English, for” Real-time Transport Protocol ") allowing, at the reception, to correct the delays of transmission occurred (jitter in French or” jitter "in English) and / or to deliver packets in sequential order for packets that are not received in order.
- the invention also allows the reception of transport packets constructed according to the formats described above.
- the reception is for example implemented in one of the receivers 108 or 114.
- the structure of these receivers is similar to that of the apparatus 2, the interfaces being adapted to the reception of transport packets and to the reference supply. time and audio frames to an application, and the programs being adapted to the implementation of the receiving method.
- Figure 9 illustrates a particular embodiment of a method of receiving a transport stream constructed according to the transmission method.
- the method begins with a step 90 during which the various variables useful for the implementation of the method are initialized.
- the method includes receiving 91 of at least a portion of a transport packet.
- the receiver retrieves a time reference from the transport packet (step 92). Then, it extracts 93 of at least one variable rate audio frame from the received transport packets. This operation is dual of the operation or encapsulation operations performed by the apparatus 2.
- the receiver is suitable for reconstructing audio frames transmitted by the source and encapsulated in transport packets. According to variants, it implements a different coding.
- the extraction of the audio frames begins before the reception of the entirety of a transport packet including the audio frame (s) extracted, thereby reducing latency.
- the invention is not limited to the embodiments described above.
- several of the steps of the method can be executed in parallel, such as frame reception, encapsulation, and transmission, by adding communication means and buffer zones between these steps. This has the particular advantage of allowing a separation of specific tasks.
- the method can be implemented not by a single device, but by a set of separate devices.
- the invention is not limited to the audio frame formats, elementary stream packet format, and the transport stream packet format described; the method can be applied to other audio frame formats, other basic packet formats, and other transport packet formats.
- the invention can be particularly advantageous in an environment of transmissions subject to high maximum throughput constraints, such as television transmission to mobile phones.
- a transport stream comprising audio and video typically should not exceed a few hundred kbit / s (kilobits per second).
- the impact of the audio component on the total bandwidth of the transport stream is relatively high, the audio component typically occupying a bandwidth of the order of 15 to 20% of the total bandwidth (audio + video).
- the video streams entering a mobile phone transmission platform are therefore significantly reduced in bandwidth before transmission.
- the optimization of transmission of variable rate audio frames in a transport stream according to the transmission optimization method of the invention makes it possible to transmit the video with a better quality by making it possible to reduce the bandwidth beforehand. transmission by the gain obtained on the efficiency of the packaging of the audio stream, while making no concession on the quality of the audio stream.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
Description
Méthode d'optimisation de transmission d'un flux de trames audio à débit variable dans un flux de transport pour transmission sur un réseau. A method of optimizing transmission of a variable rate audio frame stream in a transport stream for transmission over a network.
1. Domaine de l'invention.1. Field of the invention
La présente invention se rapporte au domaine de la transmission de flux numérique audio à débit variable vers un ou plusieurs récepteurs via un réseau de transport de paquets. Plus précisément, l'invention concerne la réduction du débit d'un flux de trames audio à débit variable (ou « VBR » pour « Variable Bit Rate » en anglais) pour son envoi dans un flux de transport pour transmission sur un réseau.The present invention relates to the field of variable bit rate digital audio stream transmission to one or more receivers via a packet transport network. More specifically, the invention relates to reducing the bit rate of a variable bit rate (VBR) stream for sending it in a transport stream for transmission over a network.
2. Arrière-plan technologique.2. Technological background.
Selon l'état de la technique, un encapsulateur de trames audio permet l'empaquetage de ces trames en vu de son adaptation pour l'envoi de paquets sur un réseau. Les tâches d'un tel encapsulateur comprennent l'empaquetage d'un flux de trames audio (ou « Audio Frame Stream » en anglais) dans des paquets de flux élémentaire (ou « PES » de l'anglais « Packetized Elementary Stream »). Le ou les flux audio PES sont ensuite mis dans des paquets de transport, comme par exemple selon le format MPEG2-TS (Moving Pictures Expert Group, Transport Stream ; le format MPEG2-TS est décrit dans le document ISO/IEC 13818-1), permettant la transmission du flux de trames audio sur un réseau de transport de paquets.According to the state of the art, an encapsulator of audio frames allows the packaging of these frames in view of its adaptation for sending packets on a network. The tasks of such an encapsulator include the packaging of an Audio Frame Stream (or "Audio Frame Stream") into Packetized Elementary Stream ("Packetized Elementary Stream") packets. The PES audio stream (s) are then put into transport packets, for example according to the MPEG2-TS format (Moving Pictures Expert Group, Transport Stream, the MPEG2-TS format is described in document ISO / IEC 13818-1). , allowing transmission of the audio frame stream over a packet transport network.
Les trames audio traitées par un tel encapsulateur peuvent être de débit constant ou de débit variable. Généralement, la gestion de ce type de réseau impose à un flux donné un débit limité. La bande passante (ou « Bandwidth » en anglais) allouée à un flux transporté par un réseau de transport de paquets (par exemple réseau DVB-H (de l'anglais « Digital Video Broadcasting - Handheld » ou « transmission de vidéo numérique vers des appareils portables » en français) ou 3GPP (« Third Génération Partnership Project » en anglais, pour « projet de coopération de troisième génération)) est limitée pour des raisons techniques, économiques ou réglementaires.The audio frames processed by such an encapsulator may be of constant bit rate or of variable bit rate. Generally, the management of this type of network imposes a given flow limited flow. Bandwidth allocated to a stream transported by a packet transport network (for example DVB-H (Digital Video Broadcasting - Handheld) or portable devices "in French) or 3GPP (" Third Generation Partnership Project ") is limited for technical, economic or regulatory reasons.
Le processus d'encapsulation d'un flux de trames audio à débit variable dans un flux de paquets de transport amène un délai. Dans le cadre du transport de trames audio par un réseau de transport paquets pour la téléphonie mobile, un délai de conversion court est avantageux car le délai entre l'envoi et la réception d'un tel flux se trouvera réduit, ce qui augmente le confort d'utilisation d'un tel réseau.The process of encapsulating a flow of variable rate audio frames into a transport packet stream causes a delay. In the context of the transport of audio frames by a packet transport network for mobile telephony, a short conversion period is advantageous because the delay between sending and receiving such a stream will be reduced, which increases the comfort of use of such a network.
Selon l'état de la technique, la conversion d'un flux de trames audio à débit variable dans un flux de paquets de transport est faite en ajoutant des données de bourrage (ou « stuffing bits » en anglais) lors de l'empaquetage du ou des paquets PES audio dans un paquet de flux de transport, notamment pour faire en sorte qu'un nouveau paquet PES audio commence au début d'un paquet de flux de transport, ce qui simplifie l'encodage d'un tel flux et son décodage, mais ce qui ne permet pas d'optimiser la bande passante du flux de trames audio ainsi converti.According to the state of the art, the conversion of a stream of variable rate audio frames into a transport packet stream is done by adding stuffing bits (or stuffing bits) when packaging the packet. or audio PES packets in a transport stream packet, especially to ensure that a new audio PES packet starts at the beginning of a transport stream packet, which simplifies the encoding of such a stream and its decoding, but this does not optimize the bandwidth of the stream of audio frames thus converted.
Selon l'état de la technique, lors de la conversion d'un flux de trames audio à débit variable dans un flux de paquets de transport, et notamment dans l'empaquetage de trames audio à débit variable, et donc à longueur variable, le nombre de trames audio par paquet de flux élémentaire est fixe, encore pour faciliter l'encodage et le décodage, mais ce qui amène un délai d'encodage, car avant de pouvoir envoyer un paquet de flux élémentaire ainsi construit, l'entête de ce paquet de flux élémentaire doit être construit. L'entête comprend notamment la taille du paquet de flux élémentaire, qui est variable selon l'état de l'art car elle dépend de la taille des trames audio reçues. Ce procédé amène à une mémorisation temporaire d'un certain nombre de trames audio avant envoi dans un ou des paquets de flux de transport. Cette mémorisation temporaire (« bufferization » en anglais) résulte dans un délai d'encodage. Ainsi, l'art antérieur ne permet pas d'optimiser ce délai. Comme mentionné précédemment, le débit maximal d'un flux de paquets de transport est en pratique soumis à une contrainte de débit maximal. Dans ce contexte, l'ajout de données de bourrage réduit la bande passante disponible pour les données audio, ce qui a un impact sur la qualité des données audio transmises. Aussi, dans le cas où un flux PES audio est mis dans un flux de paquets de transport ensemble avec un flux vidéo, l'ajout de données de bourrage aux paquets PES audio réduit soit le débit maximal disponible pour le flux audio, soit sur le flux vidéo, soit sur les deux.According to the state of the art, when converting a stream of variable rate audio frames into a stream of transport packets, and especially in the packaging of variable rate audio frames, and therefore variable length, the the number of audio frames per packet of elementary stream is fixed, again to facilitate encoding and decoding, but this leads to an encoding delay, because before being able to send a packet of elementary stream thus constructed, the header of this elementary stream packet must be built. The header includes the size of the elementary stream packet, which is variable according to the state of the art because it depends on the size of the received audio frames. This process leads to a temporary storage of a number of audio frames before sending in one or more transport stream packets. This temporary storage ("bufferization" in English) results in an encoding delay. Thus, the prior art does not optimize this delay. As previously mentioned, the maximum throughput of a transport packet stream is in practice subject to maximum throughput constraint. In this context, adding stuffing data reduces the available bandwidth for the audio data, which has an impact on the quality of the transmitted audio data. Also, in the case where an audio PES stream is put into a transport packet stream together with a video stream, adding stuffing data to the audio PES packets reduces either the maximum available bit rate for the audio stream, or the video stream, on both.
Aussi, l'état de la technique présente l'inconvénient d'une conversion non optimisée, d'un flux de trames audio à débit variable dans un flux de paquets de transport. 3. Résumé de l'invention.Also, the state of the art has the disadvantage of a non-optimized conversion of a stream of variable rate audio frames in a stream of transport packets. 3. Summary of the invention.
L'invention a pour but de pallier au moins un de ces inconvénients de l'art antérieur.The invention aims to overcome at least one of these disadvantages of the prior art.
Plus particulièrement, l'invention a pour objectif d'optimiser la transmission de trames audio de débit variable dans un flux de paquets de transport.More particularly, the invention aims to optimize the transmission of variable rate audio frames in a transport packet stream.
Une des optimisations de la transmission obtenue par l'invention se situe au niveau de la réduction de la bande passante prise pour la transmission d'un flux de paquets de transport construit selon l'invention, notamment par un remplissage optimale des paquets de flux élémentaire et des paquets de flux de transport. Par un remplissage optimal des paquets de flux élémentaire et des paquets de flux de transport, le procédé d'optimisation de transmission de trames audio à débit variable permet notamment de ne pas ajouter de données de bourrage aussi bien dans l'étape de mise en paquets de flux élémentaire de trames audio à débit variable que dans l'étape de mise en paquets de transport de paquets de flux élémentaire. Pour obtenir cet optimisation, le procédé de transmission de l'invention comprend une étape de détermination d'une taille d'un paquet de flux élémentaire, optimisé à la fois aux caractéristiques du flux de trames audio reçus et aux caractéristiques du flux de transport.One of the optimizations of the transmission obtained by the invention lies in the reduction of the bandwidth taken for the transmission of a transport packet stream constructed according to the invention, in particular by an optimal filling of the elementary flow packets. and transport stream packets. By optimally filling the elementary stream packets and the transport stream packets, the method for optimizing the transmission of variable rate audio frames makes it possible, in particular, not to add stuffing data as well in the packetization step. elementary stream of variable rate audio frames only in the elementary stream packet transporting packetization step. To obtain this optimization, the transmission method of the invention comprises a step of determining a size of a packet of elementary streams, optimized at the same time to the characteristics of the stream of received audio frames and to the characteristics of the transport stream.
Une autre optimisation de la transmission obtenue par l'invention se situe au niveau de la réduction du délai de transmission d'une trame audio de débit variable reçue à l'entrée d'un émetteur effectuant l'empaquetage de ces trames dans un flux de paquets élémentaires et l'empaquetage de flux de paquets élémentaires dans un flux de transport. Cet optimisation est obtenue notamment par la fixation de la taille des paquets de flux élémentaire selon le procédé de l'invention, et par le calcul de la référence de temps de ces paquets selon l'invention, permettant ensuite de connaître très rapidement les paramètres qui doivent être mis dans l'entête d'un paquet de flux élémentaire, et ainsi de pouvoir transmettre des trames audio reçues à la volée, c'est-à-dire que le procédé de transmission selon l'invention ne nécessite que la mémorisation temporaire d'une seule trame audio avant sa transmission dans un flux de paquets de transport, ce qui réduit le délai de transmission des trames audio.Another optimization of the transmission obtained by the invention lies in the reduction of the transmission delay of a variable rate audio frame received at the input of a transmitter packaging these frames in a signal stream. elementary packets and the packaging of elementary packet streams in a transport stream. This optimization is obtained in particular by setting the size of the elementary stream packets according to the method of the invention, and by calculating the time reference of these packets according to the invention, which then makes it possible to know very quickly the parameters which must be put in the header of a packet of elementary stream, and thus be able to transmit audio frames received on the fly, that is to say that the transmission method according to the invention requires only temporary storage of a single audio frame before it is transmitted in a transport packet stream, which reduces the transmission delay of the audio frames.
A cet effet, l'invention propose une méthode d'optimisation de transmission d'un flux de trames audio à débit variable dans un flux de transport pour transmission sur un réseau de transport de paquets. Afin d'optimiser la transmission, la méthode comprend les étapes suivants :For this purpose, the invention proposes a method for optimizing the transmission of a stream of variable rate audio frames in a stream of transport for transmission over a packet transport network. In order to optimize the transmission, the method includes the following steps:
- réception d'au moins une trame audio (62) de débit variable ;receiving at least one audio frame (62) of variable bit rate;
- génération d'une référence de temps (63) pour chaque trame audio appartenant à un ensemble de trames audio de débit variable reçues, la référence de temps étant associée à un moment de réception de la trame audio ;generating a time reference (63) for each audio frame belonging to a set of received variable rate audio frames, the time reference being associated with a reception timing of the audio frame;
- encapsulation d'au moins une trame audio de débit variable dans un paquet de flux élémentaire (641) audio avec la référence de temps générée, le paquet de flux élémentaire audio ayant une taille déterminée en fonction de caractéristiques dudit flux de trames audio à débit variable et en fonction d'une charge utile de paquets de transport du flux de transport ; - encapsulation d'au moins une partie du paquet de flux élémentaire audio dans au moins un paquet de transport (642); etencapsulating at least one variable rate audio frame in an elementary audio stream packet (641) with the generated timing reference, the audio elementary stream packet having a size determined according to characteristics of said audio frame rate stream variable and depending on a transport packet payload of the transport stream; encapsulating at least a portion of the audio elementary stream packet in at least one transport packet (642); and
- transmission (65) d'au moins une partie d'un paquet de transport. Avantageusement, le paquet de transport construit selon la méthode ne comprend pas de bit de bourrage ajouté à la composante audio présente dans le paquet de flux de transport,- Transmission (65) of at least a portion of a transport packet. Advantageously, the transport packet constructed according to the method does not include a stuffing bit added to the audio component present in the transport stream packet,
- ni dans les paquets de flux élémentaire audio,- neither in audio elementary stream packets,
- ni ajouté au paquet de flux élémentaire audio à l'encapsulation dans au moins un paquet de transport.nor added to the audio elementary stream packet to encapsulation in at least one transport packet.
Un flux de paquets de transport construit selon la méthode d'optimisation de transmission de l'invention, ne comprenant que des trames audio à débit variable, sera donc aussi à débit variable. Ensuite, le flux de transport selon l'invention peut être converti en flux de transport à débit constant si, par exemple, le flux de transport comprend aussi une autre composante que la composante audio, par exemple une composante vidéo et/ou données, à laquelle des données de bourrage sont ajoutées pour rendre le flux de transport total (audio + autres composantes) à débit constant, une technique comprise dans l'état de l'art. Avantageusement, la méthode comprend une détermination de la taille du paquet de flux élémentaire selon au moins les critères suivants : - une première taille minimale du paquet de flux élémentaire hors entête est égale à la taille maximale des trames audio du flux de trames audio,A transport packet stream constructed according to the transmission optimization method of the invention, comprising only variable rate audio frames, will therefore also be variable bit rate. Then, the transport stream according to the invention can be converted into a constant bit rate transport stream if, for example, the transport stream also comprises a component other than the audio component, for example a video component and / or a data component. which stuffing data is added to make the total transport stream (audio + other components) at a constant rate, a technique included in the state of the art. Advantageously, the method comprises a determination of the size of the elementary stream packet according to at least the following criteria: a first minimum size of the out-of-box elementary stream packet is equal to the maximum size of the audio frames of the audio frame stream,
- une deuxième taille minimale du paquet de flux élémentaire est supérieure ou égale à la taille d'un paquet de transport hors entête du flux de transport,a second minimum size of the elementary stream packet is greater than or equal to the size of a forward transport packet of the transport stream,
- la troisième taille maximale du paquet de flux élémentaire est un nombre entier fois de la taille d'un paquet de transport hors entête du flux de transport, et que la taille du paquet de flux élémentaire est une valeur qui est égale ou supérieure à la plus grande des première et deuxième tailles minimales et qui est égale ou inférieure à au moins la troisième taille maximale.the third maximum size of the elementary stream packet is an integer times the size of a forward transport packet of the transport stream, and the size of the elementary stream packet is a value that is equal to or greater than the larger of the first and second minimum sizes and which is equal to or less than at least the third maximum size.
Selon un mode de réalisation spécifique, la méthode comprend une étape de détermination d'une quatrième taille maximale du paquet de flux élémentaire en fonction d'un délai maximal de décodage du flux de transport, et que la taille du paquet de flux élémentaire est d'une valeur qui est égale ou inférieure à la plus petite des troisième et quatrième tailles maximales.According to a specific embodiment, the method comprises a step of determining a fourth maximum size of the elementary stream packet as a function of a maximum decoding delay of the transport stream, and that the size of the elementary stream packet is d a value that is equal to or less than the smallest of the third and fourth maximum sizes.
Selon un mode de réalisation spécifique, la méthode comprend une étape d'analyse préalable des caractéristiques du flux de trames audio à débit variable et que ladite taille dudit paquet de flux élémentaire audio est déterminée en fonction du résultat de cette analyse.According to a specific embodiment, the method comprises a step of prior analysis of the characteristics of the flow of variable rate audio frames and that said size of said packet of elementary audio stream is determined according to the result of this analysis.
Selon un mode de réalisation spécifique, la valeur pour la taille du paquet de flux élémentaire audio est déterminée à partir de caractéristiques du flux de trames audio fourni à la méthode d'optimisation de transmission.According to a specific embodiment, the value for the size of the audio elementary stream packet is determined from characteristics of the audio frame stream provided to the transmission optimization method.
Selon un mode de réalisation spécifique, l'étape d'encapsulation d'au moins une trame audio, et l'étape d'encapsulation d'au moins une partie du paquet de flux élémentaire audio sont rassemblées en une seule étape d'encapsulation de trames audio de débit variable dans des paquets de transport.According to a specific embodiment, the encapsulation step of at least one audio frame, and the encapsulation step of at least a part of the audio elementary stream packet are combined in a single encapsulation step. variable rate audio frames in transport packets.
Selon un mode de réalisation spécifique, l'étape d'encapsulation d'au moins une trame audio, et l'étape d'encapsulation d'au moins une partie du paquet de flux élémentaire audio sont distinctes.According to a specific embodiment, the encapsulation step of at least one audio frame, and the step of encapsulating at least a portion of the audio elementary stream packet are distinct.
Selon un mode de réalisation spécifique, l'étape de génération d'une référence de temps comprend les étapes suivantes :According to a specific embodiment, the step of generating a time reference comprises the following steps:
- lorsque la partie charge utile d'un paquet de flux élémentaire audio commence avec le début d'une trame audio, la référence de temps pour l'entête d'un paquet de flux élémentaire audio est égale à la référence de temps correspondant à l'instant de la réception de la trame audio ; etwhen the payload portion of an audio elementary stream packet begins with the start of an audio frame, the time reference for the header of an audio elementary stream packet is equal to the time reference corresponding to the time of reception of the audio frame; and
- lorsque la partie charge utile paquet de flux élémentaire audio ne commence pas avec le début d'une trame audio, la référence de temps pour l'entête d'un paquet de flux élémentaire audio courant est égale à la somme d'une référence de temps de correspondant au moment de la réception du début de la trame audio et la durée de réception de la trame audio. La référence de temps de l'entête d'un paquet de flux élémentaire permet, à la réception, de cadencer le décodage du flux élémentaire. Pour permettre un tel cadencement, la référence de temps est comprise d'une façon déterminée. Selon par exemple la norme ISO/IEC 13818-1 , la référence de temps associé au moment de la réception de la première trame audio complète incluse dans le paquet de flux élémentaire.- when the payload portion of the audio elementary stream packet does not start with the start of an audio frame, the time reference for the header of a current audio elementary stream packet is equal to the sum of a reference of corresponding time at the time of reception of the beginning of the audio frame and the duration of reception of the audio frame. The time reference of the header of an elementary stream packet makes it possible, on reception, to clock the decoding of the elementary stream. To allow such a timing, the time reference is included in a determined manner. According to for example the ISO / IEC 13818-1 standard, the time reference associated with the time of reception of the first complete audio frame included in the elementary stream packet.
4. Liste des figures.4. List of figures.
L'invention sera mieux comprise, et d'autres particularités et avantages apparaîtront à la lecture de la description qui va suivre, la description faisant référence aux dessins annexés parmi lesquels :The invention will be better understood, and other features and advantages will appear on reading the description which follows, the description referring to the appended drawings among which:
- la figure 1 présente un synoptique schématique d'une infrastructure mettant en œuvre l'invention dans deux types d'équipement différents ;- Figure 1 shows a schematic block diagram of an infrastructure implementing the invention in two different types of equipment;
- la figure 2 représente un appareil permettant une mise en œuvre de l'invention selon un mode de réalisation particulier de l'invention, un tel appareil appartenant à l'infrastructure de la figure 1 ;- Figure 2 shows an apparatus for implementing the invention according to a particular embodiment of the invention, such an apparatus belonging to the infrastructure of Figure 1;
- la figure 3 représente un exemple de format de trames audio acceptées à l'entrée de l'appareil de la figure 2 ;FIG. 3 represents an exemplary format of audio frames accepted at the input of the apparatus of FIG. 2;
- la figure 4 représente un exemple de format de données de sortie fourni par l'appareil de la figure 2; - la figure 5 illustre schématiquement les différents niveaux d'encapsulation des données traités par l'appareil de la figure 2 ;FIG. 4 represents an exemplary output data format provided by the apparatus of FIG. 2; FIG. 5 diagrammatically illustrates the different levels of encapsulation of the data processed by the apparatus of FIG. 2;
- les figures 6 à 8 illustrent une méthode d'optimisation de transmission de trames audio à débit variable dans un flux de transport pour transmission, selon l'invention et mise en œuvre dans l'appareil de la figure 2 ; - la figure 9 illustre un mode de réalisation particulier d'une méthode de réception d'un flux de transport construit selon la méthode de transmission.FIGS. 6 to 8 illustrate a method for optimizing the transmission of variable rate audio frames in a transport stream for transmission, according to the invention and implemented in the apparatus of FIG. 2; FIG. 9 illustrates a particular embodiment of a method of receiving a transport stream constructed according to the transmission method.
5. Description détaillée de l'invention.5. Detailed description of the invention.
La figure 1 présente un synoptique schématique d'une infrastructure 1 dans deux types d'équipements (encapsulateur 104 et rémultiplexeur 110) différents mettant en œuvre l'invention.FIG. 1 presents a schematic block diagram of an infrastructure 1 in two different types of equipment (encapsulator 104 and re-multiplexer 110) embodying the invention.
L'infrastructure 1 comprend : - une source audio 100 ;The infrastructure 1 comprises: an audio source 100;
- un encodeur 102, relié à la source 100 par une connexion 101 ;an encoder 102 connected to the source 100 via a connection 101;
- l'encapsulateur 104, relié à l'encodeur 102 par une connexion 103 ;the encapsulator 104, connected to the encoder 102 by a connection 103;
- un premier récepteur 108, relié à l'encapsulateur 104 par un premier réseau 106 et des connexions 105 et 107 ;a first receiver 108 connected to the encapsulator 104 by a first network 106 and connections 105 and 107;
- ue rémultiplexeur 110, relié à l'encapsulateur 104 par le réseau 106 et des connexions 105 et 109 ; eta remultiplexer 110, connected to the encapsulator 104 by the network 106 and connections 105 and 109; and
- un deuxième récepteur 114 relié au rémultiplexeur 110 par un deuxième réseau 112 et des connexions 111 et 113. La source audio 100 fournit des données audio à l'encodeur 102.a second receiver 114 connected to the remultiplexer 110 by a second network 112 and connections 111 and 113. The audio source 100 supplies audio data to the encoder 102.
L'encodeur 102 fournit un flux de trames audio à débit variable à l'encapsulateur de paquets de transport 104. L'encapsulateur 104 fournit un flux de paquets de transport, comprenant un flux de trames audio à débit variable, au premier récepteur 108 et au rémultiplexeur 110 par le premier réseau 106. Le premier récepteur 108 est adapté à décoder le flux de trames audio compris dans le flux de transport. Le rémultiplexeur 110 (parfois aussi appelé rémux, ré-encodeur, ou transcodeur) est adapté à recevoir un flux de paquets de transport, multiplexe avec d'autres flux ou non, d'y extraire un flux de trames audio à débit variable, et de ré-encoder ce flux de trames audio à un autre débit et /ou selon une autre norme, et éventuellement de le ré-multiplexer avec d'autres flux. Par exemple, le rémultiplexeur 110 réencode un flux de trames audio encodés par l'encodeur 102 au format d'encodage audio AAC (selon la norme ISO/IEC 14496-3:2005) en format d'encodage audio AC3 (selon la norme ETSI TS 102 366). Le ré- multiplexeur 110 réencapsule ensuite le flux de trames audio résultant de cette conversion, pour créer un nouveau flux de paquets de transport comprenant un flux de trames audio à débit variable, qui est transmis au deuxième récepteur 114 via le deuxième réseau 112. Le deuxième récepteur 114 est adapté à décoder le flux de trames audio compris dans le flux de transport provenant du rémultiplexeur 110.The encoder 102 provides a variable rate audio frame stream to the transport packet encapsulator 104. The encapsulator 104 provides a transport packet stream, including a variable rate audio frame stream, to the first receiver 108 and The first receiver 108 is adapted to decode the stream of audio frames included in the transport stream. The remultiplexer 110 (sometimes also called rémux, re-encoder, or transcoder) is adapted to receive a stream of transport packets, multiplexed with other streams or not, to extract therefrom a stream of variable rate audio frames, and re-encode this stream of audio frames at another rate and / or according to another standard, and possibly re-multiplex with other streams. For example, the remultiplexer 110 re-encodes a stream of audio frames encoded by the encoder 102 to the AAC audio encoding format (according to ISO / IEC 14496-3: 2005) in audio encoding format AC3 (according to the ETSI standard TS 102 366). The re-multiplexer 110 then re-encapsulates the audio frame stream resulting from this conversion, to create a new transport packet stream comprising a variable rate audio frame stream, which is transmitted to the second receiver 114 via the second network 112. The second receiver 114 is adapted to decode the stream of audio frames included in the transport stream from the remultiplexer 110.
Selon une variante, le rémultiplexeur reçoit un flux de paquets de transport multiplexe avec d'autres flux de type audio ou vidéo, y extrait un flux de trames audio à débit variable, le ré-encode selon un autre débit et/ou selon un autre standard d'encodage, l'encapsule dans un flux de paquets de transport et le transmet.According to one variant, the remultiplexer receives a stream of multiplexed transport packets with other streams of audio or video type, extracts a stream of variable rate audio frames therefrom, re-encodes it according to another bit rate and / or according to another encoding standard, encapsulates it in a stream of transport packets and transmits it.
Selon une variante, le rémultiplexeur reçoit un flux de paquets de transport multiplexe avec d'autres flux de type audio ou vidéo, et y extrait un flux de trames audio à débit variable, le rémultiplexe avec au moins une autre flux de type audio ou vidéo, l'encapsule dans un flux de paquets de transport, et le transmet.According to one variant, the remultiplexer receives a stream of multiplexed transport packets with other streams of audio or video type, and extracts a stream of variable rate audio frames therefrom, remultiplexing it with at least one other stream of audio or video type , encapsulates it in a stream of transport packets, and transmits it.
Selon une variante, le rémultiplexeur reçoit un flux de paquets de transport, y extrait un flux de trames audio à débit variable, le ré-encode avec un autre débit, l'encapsule dans un flux de paquets de transport, et le transmet.Alternatively, the remultiplexer receives a stream of transport packets, extracts a stream of variable rate audio frames, re-encodes it with another rate, encapsulates it in a stream of transport packets, and transmits it.
Selon des variantes, les réseaux 106 et 112 comprennent plusieurs encodeurs audio (par exemple deux, trois, quatre ou plus) et/ou plusieurs encapsulateurs, plusieurs rémultiplexeurs, ainsi que d'autres équipements utiles à un bon fonctionnement.According to variants, the networks 106 and 112 comprise several audio encoders (for example two, three, four or more) and / or several encapsulators, several rémultiplexers, as well as other equipment useful for proper operation.
Afin de simplifier le dessin, les réseaux 106 et 112 sont représentés avec un seul récepteur. Selon des variantes, les réseaux 106 etIn order to simplify the drawing, the networks 106 and 112 are represented with a single receiver. According to variants, the networks 106 and
112 comprennent plusieurs récepteurs (par exemple, deux, trois, dix, ...) adaptés pour recevoir et décoder un flux de paquets audio comprenant un flux de trames audio à débit variable.112 include a plurality of receivers (eg, two, three, ten, ...) adapted to receive and decode an audio packet stream including a variable rate audio frame stream.
Selon des variantes de l'invention, la méthode d'optimisation de transmission est mise en œuvre dans l'encapsulateur 104, le ré-multiplexeur 110, ou encore tout autre type d'appareil recevant un flux de trames audio à débit variable, encapsulant ces trames dans des paquets de transport (directement ou via une encapsulation dans un flux de paquets élémentaires), qui sont transmis vers un ou plusieurs destinataires.According to variants of the invention, the transmission optimization method is implemented in the encapsulator 104, the re-multiplexer 110, or any other type of apparatus receiving a stream of variable rate audio frames, encapsulating these frames in transport packets (directly or via encapsulation in a stream of elementary packets), which are transmitted to one or more recipients.
La figure 2 illustre schématiquement un appareil 2 mettant en œuvre de l'invention selon un mode de réalisation particulier. L'appareil 2 est par exemple l'encapsulateur 104 ou le rémultiplexeur 110.Figure 2 schematically illustrates an apparatus 2 implementing the invention according to a particular embodiment. The apparatus 2 is for example the encapsulator 104 or the remultiplexer 110.
L'appareil 2 comprend, reliés entre eux par un bus d'adresses et de données 23 : - un microprocesseur 21 (ou CPU, de l'Anglais « Central Processing Unit ») ;The apparatus 2 comprises, interconnected by an address and data bus 23: a microprocessor 21 (or CPU, from the English "Central Processing Unit");
- une mémoire non volatile de type ROM (de l'anglais « Read OnIy Memory ») 20 ; - une mémoire vive ou RAM (de l'anglais « Random Accessa non-volatile memory of ROM type (of the English "Read OnIy Memory") 20; - a random access memory or RAM (from the English "Random Access
Memory ») 26 ;Memory ") 26;
- une interface 22 permettant la réception de trames audio à l'entrée ;an interface 22 allowing the reception of audio frames at the input;
- une interface 24 permettant l'envoi d'un flux de paquets de transport sur un réseau de transport de paquets ; etan interface 24 for sending a stream of transport packets on a packet transport network; and
- une horloge interne 25 permettant d'associer une référence de temps à une trame audio reçue.an internal clock 25 for associating a time reference with a received audio frame.
On observe que le mot « registre » utilisé dans la description des mémoires 20 et 26 désigne dans chacune des mémoires mentionnées, aussi bien une zone de mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité (permettant de stocker un programme entier ou tout ou partie des données audio reçues).It is observed that the word "register" used in the description of the memories 20 and 26 designates in each of the memories mentioned, as well a memory area of low capacity (some binary data) that a large memory area (to store an entire program or all or part of the audio data received).
La mémoire ROM 20 comprend notamment :The ROM 20 includes in particular:
- un programme « prog » 201 ; - une adresse d'envoi de diffusion multiple (ou « multicast » en anglais) 202 ;- a "prog" program 201; a multicast sending address (or "multicast" in English) 202;
- une valeur de taille des paquets de transport 203 ;a size value of the transport packets 203;
- une valeur de taille de l'entête des paquets de transport 204 ; et - une valeur de taille de l'entête des paquets de flux élémentairea size value of the header of the transport packets 204; and a size value of the header of the elementary stream packets
205.205.
Les algorithmes mettant en œuvre les étapes du procédé décrit ci- après sont stockés dans la mémoire ROM 20 associée à l'appareil 2 mettant en œuvre ces étapes. A la mise sous tension, le microprocesseur 21 charge et exécute les instructions de ces algorithmes.The algorithms implementing the steps of the method described below are stored in the ROM 20 associated with the device 2 implementing these steps. At power up, the microprocessor 21 loads and executes the instructions of these algorithms.
La mémoire vive 26 comprend notamment :RAM 26 includes in particular:
- dans un registre 261 , le programme de fonctionnement du microprocesseur 21 qui est chargé à la mise sous tension de l'appareil 2 ; - une zone de tampon pour le stockage d'une trame audio reçue, dans un registre 262; - une référence temporelle associée au moment de la réception d'une trame audio, dans un registre 263 ;in a register 261, the operating program of the microprocessor 21 which is charged when the device 2 is powered up; a buffer zone for storing a received audio frame in a register 262; a time reference associated with the moment of receiving an audio frame, in a register 263;
- un registre 264 permettant la préparation et le stockage d'un paquet de transport; - un registre 265 permettant le stockage de la taille déterminée des paquets de flux élémentaire ; eta register 264 for preparing and storing a transport packet; a register 265 allowing the storage of the determined size of the elementary stream packets; and
- une zone de données 266 permettant le stockage temporaire de données nécessaires pour le bon fonctionnement de l'appareil 2. D'autres structures que celle décrite en regard de la figure 2 sont compatibles avec l'invention. En particulier, selon des variantes, l'invention est mise en œuvre selon une réalisation purement matérielle ("hardware" en anglais), par exemple sous forme d'un composant dédié (par exemple dans un ASIC ou FPGA ou VLSI) (respectivement « Application Spécifie Integrated Circuit » en anglais, signifiant « Circuit Intégré à vocation d'une application spécifique », « Field-Programmable Gâte Array » en anglais, signifiant « Réseau de Portes Programmable In-Situ », « Very Large Scale Intégration » en anglais, signifiant « Intégration à très grande échelle »)) ou de plusieurs composants électroniques intégrés dans un appareil ou encore sous forme d'un mélange d'éléments matériels et d'éléments logiciels (« software » en anglais).a data zone 266 allowing the temporary storage of data necessary for the proper functioning of the apparatus 2. Other structures than that described with reference to FIG. 2 are compatible with the invention. In particular, according to variants, the invention is implemented in a purely hardware ("hardware") embodiment, for example in the form of a dedicated component (for example in an ASIC or FPGA or VLSI) (respectively " Application Specifies "Integrated Circuit" in English, meaning "Integrated Circuit for a Specific Application", "Field-Programmable Gate Array" in English, meaning "In-Situ Programmable Gate Network", "Very Large Scale Integration" in English , meaning "very large-scale integration")) or of several electronic components integrated in a device or in the form of a mixture of hardware elements and software elements ("software" in English).
La figure 3 représente un exemple de format de trames audio 30, 31 et 32 reçues successivement à l'entrée de l'appareil 2. L'exemple de la figure 3 est présenté à titre de simple illustration ; l'appareil 2 peut recevoir d'autres trames audio de longueurs différentes et de formats différents.FIG. 3 represents an exemplary format of audio frames 30, 31 and 32 successively received at the input of the apparatus 2. The example of FIG. 3 is presented as a simple illustration; the device 2 can receive other audio frames of different lengths and different formats.
Les trames audio 30, 31 et 32 acceptées à l'entrée de l'appareil 2 sont formatées selon la norme MPEG audio, et notamment MPEG 1 et 2 layer I, II et III (selon les références ISO/IEC 11172-3.et ISO/IEC 13818).The audio frames 30, 31 and 32 accepted at the input of the apparatus 2 are formatted according to the audio MPEG standard, and in particular MPEG 1 and 2 layer I, II and III (according to ISO / IEC 11172-3 references. ISO / IEC 13818).
La trame 30 (respectivement 31 , 32) comprend : - un entête (ou « header » en anglais) 301 (resp. 311 , 321), comprenant des champs d'entêté 3011 à 3014 (resp. 3111 à 3114, 3211 à 3214) ; etThe frame 30 (respectively 31, 32) comprises: a header (or "header" in English) 301 (respectively 311, 321), comprising fields of header 3011 to 3014 (respectively 3111 to 3114, 3211 to 3214). ); and
- un champ 302 (resp. 312, 322) de données audio utiles (ou « payload » en anglais) dont la taille est variable d'une trame à l'autre.a field 302 (respectively 312, 322) of useful audio data (or "payload" in English) whose size is variable from one frame to another.
Les lettres dans l'entête 301 (resp. 311 , 321) représentent des champs de bit ; leur signification dépend de la norme associée. Selon la norme MPEG audio évoquée précédemment, l'entête 301 (resp. 311 , 321) comprend quatre octets 3011 à 3014 (resp. 3111 à 3114, 3211 à 3214). Les octets 3011 et 3012 (resp. 3111 et 3112, 3211 et 3212 comprennent, par exemple, un mot de synchronisation (ou « syncword » en anglais) de 11 bits. Tous les bits du mot de synchronisation sont mis à « 1 », ce qui permet, dans un flux de trames audio, de reconnaitre le début d'une trame. L'octet 3012 (resp. 3112, 3212) comprend également deux bits indiquant la version du standard MPEG , deux bits indiquant la valeur de la couche du standard MPEG, puis un seul bit indiquant si l'entête est suivi par une valeur de seize bits de vérification de redondance cyclique (ou « cyclic redundancy check », ou « crc » en anglais). L'octet 3013 (resp. 3113, 3213) comprend une valeur d'indice dans une table selon la norme MPEG audio, représentant le débit de codage de la trame (« bit rate » en anglais)The letters in the header 301 (respectively 311, 321) represent bit fields; their meaning depends on the associated standard. According to MPEG audio standard mentioned above, the header 301 (respectively 311, 321) comprises four bytes 3011 to 3014 (respectively 3111 to 3114, 3211 to 3214). Bytes 3011 and 3012 (respectively 3111 and 3112, 3211 and 3212 include, for example, an 11-bit synchronization word (or "syncword" in English) All the bits of the synchronization word are set to "1", This makes it possible to recognize the start of a frame in a stream of audio frames.By 3012 (resp 3112, 3212) also includes two bits indicating the version of the MPEG standard, two bits indicating the value of the layer. of the MPEG standard, then a single bit indicating whether the header is followed by a value of sixteen bits of cyclic redundancy check (or "cyclic redundancy check" or "crc" in English) byte 3013 (or 3113). , 3213) includes an index value in a table according to the audio MPEG standard, representing the rate of coding of the frame ("bit rate" in English)
L'octet 3013 (resp. 3113, 3213) comprend également deux bits permettant de connaître le débit d'échantillonnage (ou « sampling rate » en anglais) pour la trame, puis suivent deux indicateurs de présence d'un bit de rallonge (« padding bit » en anglais) et un bit sans signification selon la norme MPEG audio. L'octet 3014 (resp. 3114, 3214) comprend un indicateur permettant de connaître le codage stéréo ou mono, suivi par d'autres bits indiquant s'il s'agit d'une copie, si le contenu de la trame est soumise à des droits d'auteur etc.Byte 3013 (or 3113, 3213) also includes two bits for sampling rate (or "sampling rate" in English) for the frame, followed by two indicators of presence of an extension bit (" padding bit "in English) and a meaningless bit according to the MPEG audio standard. Byte 3014 (or 3114, 3214) includes an indicator for stereo or mono coding, followed by other bits indicating whether it is a copy, whether the frame content is subject to copyrights etc.
Comme évoqué précédemment, la taille d'une trame audio est variable ; la longueur de la trame peut être calculée et fixée à partir d'informations présents dans l'entête de la trame audio. La figure 4 représente un exemple de format de données de sortie fourni par l'appareil 2 et plus particulièrement un paquet de transport comprenant successivement :As mentioned above, the size of an audio frame is variable; the length of the frame can be calculated and fixed from information present in the header of the audio frame. FIG. 4 represents an exemplary output data format provided by the apparatus 2 and more particularly a transport packet comprising successively:
- un entête de paquet de transport 40 et une charge utile comprenant un paquet de flux élémentaire; - un paquet de flux élémentaire avec un entête 41 ; eta transport packet header 40 and a payload comprising a packet of elementary streams; a packet of elementary streams with a header 41; and
- une partie charge utile comprenant trois trames audio 30, 31 et 32.a payload portion comprising three audio frames 30, 31 and 32.
Selon la norme MPEG2-transport (ISO/IEC 13818-1), les paquets de transport ont une longueur fixe de 188 octets, incluant un entête de quatre octets. L'entête 40 du paquet de transport est composée comme suit.According to the MPEG2-transport standard (ISO / IEC 13818-1), transport packets have a fixed length of 188 bytes, including a four-byte header. The header 40 of the transport packet is composed as follows.
D'abord, un mot de synchronisation 401 , ayant une valeur fixe de 47 hexadécimale, permet, dans un flux de paquets de transport reçu, de trouver le début d'un paquet de transport. Suivent un octet 402 comprenant un indicateur permettant de savoir qu'une erreur a été détectée en amont et un indicateur permettant de savoir si le paquet de transport comprend un entête d'un paquet de flux élémentaire ou non. Puis, un indicateur donne une valeur de priorité pour le paquet, suivi par 13 bits, répartis dans les octets 402 et 403 qui donnent une valeur d'identification du paquet de transport, utilisé par exemple dans un flux de transport comprenant des paquets de transport transportant des flux de type différent (audio, vidéo, ...). L'octet 404 comprend un indicateur de deux bits pour indiquer le type d'embrouillage transport utilisé, suivi par deux bits indiquant la présence d'un champ d'adaptation selon la norme, puis quatre bits pour contenir la valeur d'un compteur de continuité, permettant de connaître le numéro de séquence pour le réassemblage d'un paquet de flux élémentaire si ce paquet de flux élémentaire est trop grand pour être mis complètement dans un paquet de transport.First, a synchronization word 401, having a fixed value of 47 hexadecimal, allows, in a stream of received transport packets, to find the beginning of a transport package. There follows a byte 402 comprising an indicator to know that an error has been detected upstream and an indicator to know if the transport packet comprises a header of a packet of elementary stream or not. Then, an indicator gives a priority value for the packet, followed by 13 bits, distributed in bytes 402 and 403 which give an identification value of the transport packet, used for example in a transport stream comprising transport packets. carrying different types of streams (audio, video, ...). Byte 404 includes a two-bit flag to indicate the type of transport scrambling used, followed by two bits indicating the presence of an adaptation field according to the standard, and then four bits to hold the value of a counter. continuity, to know the sequence number for reassembly of an elementary stream packet if this elementary stream packet is too large to be put completely in a transport packet.
Selon l'exemple, l'entête de paquet de flux élémentaire PES 41 , comprend dans l'exemple illustré 9 octets. Les trois premiers octets 411 , 412 et 413 comprennent un mot de synchronisation ou (« Packet Start Code Prefix » en anglais, pour « code de préfixe de début de paquet »), d'une valeur fixe, permettant de connaître un début d'un paquet de flux élémentaire dans un flux. Suit un octet 414 qui comprend le « Streamjd » qui sert à identifier le type de flux élémentaire contenu dans le paquet PES. Selon la norme MPEG2-transport, une valeur de Streamjd identifie un flux élémentaire audio MPEG 1 ou MPEG 2 Les deux octets suivants 415 et 416 comprennent une valeur représentative de la longueur l'entête PES, et permettent de déterminer à quel endroit se trouve le début de la charge utile du paquet PES. Suivent dans les octets 417 et 418, divers drapeaux (ou « flags » en anglais) indiquant entre autres si le paquet est embrouillé (« scrambled » ou « encrypted » en anglais), suivi par l'octet 419 indiquant la longueur restante de l'entête. Dans l'exemple ici illustré, la longueur restante est zéro.According to the example, the elementary stream packet header PES 41 comprises in the example illustrated 9 bytes. The first three bytes 411, 412 and 413 comprise a synchronization word or ("Packet Start Code Prefix" in English, for "packet start prefix code"), of a fixed value, making it possible to know a beginning of a packet of elementary streams in a stream. Follows a byte 414 which includes the "Streamjd" which is used to identify the type of elementary stream contained in the PES packet. According to the MPEG2-transport standard, a value of Streamjd identifies an elementary audio stream MPEG 1 or MPEG 2 The following two bytes 415 and 416 comprise a value representative of the length of the header PES, and make it possible to determine where the start of the payload of the PES packet. Next in bytes 417 and 418, various flags (or "flags" in English) indicating inter alia if the packet is scrambled ("scrambled" or "encrypted" in English), followed by byte 419 indicating the remaining length of the 'on your mind. In the example shown here, the remaining length is zero.
Dans cet exemple, les entêtes 40 du paquet de transport et 41 du paquet de flux élémentaire ne sont répétés qu'une seule fois pour les trois trames audio 30, 31 et 32. La fréquence d'occurrence d'un entête de flux élémentaire au sein d'un paquet de transport dépend de la taille de la charge utile d'un paquet de transport et de la taille du paquet de flux élémentaire. Selon une variante de l'invention, plusieurs entêtes de flux élémentaire sont présents dans un paquet de transport si la taille de la charge utile d'un paquet de transport le permet. Selon une autre variante, un paquet de flux élémentaire est plus long qu'un paquet de transport (par exemple 2048 octets) ; un paquet de transport transporte, selon la norme, les données d'un seul paquet de flux élémentaire à la fois. La figure 5 illustre l'encapsulation de plusieurs trames audio dans un paquet de transport.In this example, the headers 40 of the transport packet and 41 of the elementary stream packet are repeated only once for the three audio frames 30, 31 and 32. The frequency of occurrence of an elementary flow header at within a transport packet depends on the size of the payload of a transport packet and the size of the elementary stream packet. According to a variant of the invention, several elementary flow headers are present in a transport packet if the size of the payload of a transport packet allows it. According to another variant, an elementary stream packet is longer than a transport packet (for example 2048 bytes); a transport packet transports, according to the standard, the data of a single packet of elementary streams at a time. Figure 5 illustrates the encapsulation of several audio frames in a transport packet.
La figure 5 illustre schématiquement les différents niveaux d'encapsulation des données traitées par l'appareil 2 mettant en œuvre l'invention, et plus précisément deux paquets de transport 50 et 51. Le paquet de transport 50 (respectivement 51) comprend :FIG. 5 diagrammatically illustrates the different levels of encapsulation of the data processed by the apparatus 2 embodying the invention, and more specifically two transport packets 50 and 51. The transport packet 50 (respectively 51) comprises:
- un entête 501 (respectivement 511) ; eta header 501 (respectively 511); and
- une partie charge utile 502 (respectivement 512) correspondant à un paquet de flux élémentaire 5021 (respectivement 5121). Selon une variante, la charge utile n'est pas limitée à un paquet de flux élémentaire et comprend plusieurs paquets de flux élémentaire.a payload portion 502 (respectively 512) corresponding to a packet of elementary streams 5021 (respectively 5121). According to one variant, the payload is not limited to an elementary stream packet and comprises several elementary stream packets.
Selon une variante, la charge utile comprend une partie d'un paquet de flux élémentaire.Alternatively, the payload comprises a portion of a packet of elementary streams.
Le paquet de flux élémentaire 5021 (respectivement 5121) comprend :The elementary stream packet 5021 (respectively 5121) comprises:
- un entête 50211 (respectivement 51211) ; eta header 50211 (respectively 51211); and
- une partie charge utile 50212 (respectivement 51212) comprenant des trames audio 502121 , 502122 et 502123 (respectivement 512121 et 512212. Pour illustrer la méthode d'encapsulation, la trame 512121 est la suite de la trame 502123, qui n'a pas pu être mise complètement dans le paquet de transport 50.a payload portion 50212 (respectively 51212) comprising audio frames 502121, 502122 and 502123 (respectively 512121 and 512212. To illustrate the encapsulation method, the frame 512121 is the continuation of the frame 502123, which could not be put completely in the transport package 50.
Aussi, la trame 512212 n'est pas complète et les données de la trame 512212 non présent dans le paquet de transport 51 sont insérées dans un autre paquet de transport qui n'est pas illustré ici.Also, the frame 512212 is not complete and the data of the frame 512212 not present in the transport packet 51 are inserted into another transport packet which is not illustrated here.
Comme évoqué précédemment, un paquet de flux élémentaire peut être d'une longueur plus grande qu'un paquet de transport ; dans ce cas, la charge utile d'un paquet de flux élémentaire est répartie dans un ou plusieurs paquets de transport, sans répétition de l'entête du paquet de flux élémentaire.As previously discussed, an elementary stream packet may be longer in length than a transport packet; in this case, the payload of an elementary stream packet is distributed in one or more transport packets, without repeating the header of the elementary stream packet.
La figure 6 représente, sous forme d'algorithme, une méthode d'optimisation de transmission de trames audio à débit variable dans un flux de transport pour transmission sur un réseau de transport de paquets mis en œuvre dans l'appareil 2.FIG. 6 represents, in the form of an algorithm, a method for optimizing transmission of variable rate audio frames in a stream transport for transmission over a packet transport network implemented in the apparatus 2.
La méthode d'optimisation de transmission de trames audio à débit variable dans un flux de transport pour transmission sur un réseau de transport de paquets commence par une étape 60 au cours de laquelle différentes variables nécessaires à son bon fonctionnement sont initialisées. Ensuite, au cours d'une étape 62, l'appareil 2 reçoit une trame audio 262 à débit variable (correspondant par exemple à l'une des trames 30, 31 ou 32). Lors d'une étape 63, l'appareil 2 génère une référence de temps pour chaque trame audio reçue (trame audio appartenant à un ensemble de trames de débit variable reçues), permettant d'associer une référence de temps 263 à un moment de réception d'une trame audio.The method for optimizing transmission of variable rate audio frames in a transport stream for transmission over a packet transport network begins with a step 60 during which various variables necessary for its proper operation are initialized. Then, during a step 62, the device 2 receives a variable rate audio frame 262 (corresponding for example to one of the frames 30, 31 or 32). In a step 63, the apparatus 2 generates a time reference for each received audio frame (audio frame belonging to a set of received variable rate frames), allowing a time reference 263 to be associated with a reception timing. an audio frame.
Lors d'une étape 641 , l'appareil 2 encapsule au moins une trame audio de débit variable dans un paquet de flux élémentaire avec la référence de temps associée 263, le paquet de flux élémentaire ayant une taille déterminée 265.In a step 641, the apparatus 2 encapsulates at least one variable rate audio frame in an elementary stream packet with the associated time reference 263, the elementary stream packet having a determined size 265.
Lors d'une étape 642, au moins une partie du paquet de flux élémentaire est encapsulée dans au moins un paquet de transport (par exemple selon le format du paquet de transport de la figure 4.During a step 642, at least a portion of the elementary stream packet is encapsulated in at least one transport packet (for example according to the format of the transport packet of FIG. 4.
Lors d'une étape 65, au moins une partie d'un paquet de transport est transmis, et l'étape 62 est réitérée.In a step 65, at least a portion of a transport packet is transmitted, and step 62 is repeated.
Selon l'exemple décrit, les étapes 641 , et 642 sont distinctes Selon une variante de mise en oeuvre, les étapes 641 , et 642 sont rassemblées en une seule étape 64 ; selon cette variante, une trame audio reçue est directement encapsulée dans un paquet de transport en respectant le format de flux élémentaire (sans création explicite d'un paquet de flux élémentaire), et la transmission du paquet de transport est effectuée dès qu'au moins une partie déterminée de la trame est complète. Par exemple, dès que l'entête du paquet de transport est prêt, l'entête du paquet de transport est transmis ; ensuite, dès que l'entête d'un paquet de flux élémentaire est prêt, l'entête d'un paquet de flux élémentaire est transmis, et dès qu'une trame audio commence à être lue, les données lues sont transmises. Cette transmission à la volée est possible avec la méthode, toutes les informations nécessaires pour la construction d'au moins une partie d'un paquet de transport étant disponibles dès la réception d'une trame audio. Cette transmission à la volée est avantageuse, car la méthode ne requiert pas une mémorisation et/ou réception de l'ensemble des données de trames audio qui sont insérées dans un paquet de transport pour que la transmission du paquet de transport commence. En fait, le méthode requiert seulement la mémorisation temporaire d'une seule trame audio à la fois, c'est-à-dire, de la dernière trame audio reçue. Ainsi, un délai entre le moment de réception d'une trame audio et la transmission d'au moins une partie d'un paquet de transport qui comprend la trame audio est réduit. Avantageusement, la transmission de chaque paquet de transport commence dès qu'un entête de paquet de transport est construit. Avantageusement, la transmission des données correspondant à un paquet de flux élémentaire, ces données étant encapsulées dans un paquet de transport, commence dès qu'un entête correspondant à ce paquet de flux élémentaire est construit.According to the example described, the steps 641 and 642 are distinct. According to an alternative embodiment, the steps 641 and 642 are brought together in a single step 64; according to this variant, a received audio frame is directly encapsulated in a transport packet in accordance with the elementary stream format (without explicit creation of an elementary stream packet), and transmission of the transport packet is performed as soon as at least a determined part of the frame is complete. For example, as soon as the header of the transport packet is ready, the header of the transport packet is transmitted; then, as soon as the header of an elementary stream packet is ready, the header of an elementary stream packet is transmitted, and as soon as an audio frame begins to be read, the read data is transmitted. This transmission on the fly is possible with the method, all the information necessary for the construction of at least a portion of a transport packet being available upon receipt of an audio frame. This transmission on the fly is advantageous because the method does not require storing and / or receiving all the audio frame data that is inserted into a transport packet for transmission of the transport packet to begin. In fact, the method only requires the temporary storage of only one audio frame at a time, i.e., the last audio frame received. Thus, a delay between the moment of receiving an audio frame and the transmission of at least a portion of a transport packet that includes the audio frame is reduced. Advantageously, the transmission of each transport packet starts as soon as a transport packet header is constructed. Advantageously, the transmission of data corresponding to a packet of elementary streams, these data being encapsulated in a transport packet, begins as soon as a header corresponding to this elementary stream packet is constructed.
Selon un mode de mise en œuvre avantageuse de l'invention, la détermination d'un taille pour les paquets de flux élémentaire comprend le respect de tous ou partie des critères suivants, permettant un taux de remplissage des paquets optimal :According to an advantageous embodiment of the invention, the determination of a size for the elementary flow packets comprises the respect of all or some of the following criteria, allowing an optimal filling rate of the packets:
- la taille minimale des paquets de flux élémentaire hors entête est égale à la taille maximale d'une trame audio ; ceci pour que les trames audio soient trop grandes pour être contenues dans un seul paquet de flux élémentaire, car dans ce cas il faut répartir la trame audio dans plusieurs paquets de flux élémentaire, et ainsi plusieurs entêtes de flux élémentaire sont nécessaires pour un même trame, ce qui n'est pas favorable à l'efficacité de l'empaquetage car le nombre de bits • nécessaires pour empaqueter une trame audio augmente ainsi ;the minimum size of the elementary stream packets excluding the header is equal to the maximum size of an audio frame; this so that the audio frames are too large to be contained in a single packet of elementary stream, because in this case it is necessary to distribute the audio frame in several packets of elementary stream, and thus several headers of elementary streams are necessary for the same frame this is not conducive to effective packaging because the number of bits needed to package • an audio frame and increases;
- la taille minimale des paquets de flux élémentaire est un nombre entier fois de la taille des paquets de transport hors entête, une contrainte qui peut être imposé par la norme d'encodage utilisée, comme la norme MPEG2-système, qui impose qu'il ne peut y avoir plusieurs entêtes PES dans un même paquet de transport. La taille déterminée est égale ou supérieure à plus grande des valeurs minimales et égale ou inférieure à valeur maximale. Si deux critères sont inclus dans la calcul de la taille minimale d'un paquet de flux élémentaire, on choisit entre les deux tailles minimales la taille maximale que l'on arrondit vers un multiple de la taille de la charge utile d'un paquet de transport. D'un point de vue de l'efficacité de l'empaquetage, il est souhaitable d'inclure le moins possible d'entêtés de flux élémentaire, mais cela a un coût sur le zapping d'un récepteur recevant un tel flux, car quand ce récepteur change de flux lors d'un zapping, il ne peut commencer le décodage que par un entête de flux élémentaire ; si le flux de transport comprend un flux élémentaire avec des entêtes de flux élémentaire très espacées, il faut attendre relativement longtemps avant de pouvoir commencer le décodage d'un tel flux.the minimum size of the elementary stream packets is an integer times the size of the out-of-box transport packets, a constraint that may be imposed by the encoding standard used, such as the MPEG2-system standard, which imposes that can not have multiple PES headers in the same transport packet. The determined size is equal to or greater than greater than the minimum values and equal to or less than the maximum value. If two criteria are included in the calculation of the minimum size of a packet of elementary streams, the maximum size is chosen between the two minimum sizes and rounded to a multiple of the payload size of a packet. transport. From the point of view of the efficiency of the packaging, it is desirable to include the least possible elementary flow stubbornness, but this has a cost on the zapping of a receiver receiving such a stream, because when this receiver changes flux during a zapping, it can begin the decoding only by an elementary stream header; if the transport stream comprises an elementary stream with very spaced elementary stream headers, it is necessary to wait relatively long before decoding of such a stream can begin.
Selon une variante de mise en œuvre de l'invention, la taille maximale des paquets de flux élémentaire est déterminée par un temps de zapping maximal ; selon cette variante, la taille des paquets de flux élémentaire est limitée à une valeur permettant à un récepteur de trouver, lors d'un changement de flux, un entête de paquet de flux élémentaire dans un délai de temps maximal déterminé (jugé comme acceptable par un utilisateur), par exemple dans un délai maximal de 500 ms.According to an implementation variant of the invention, the maximum size of the elementary stream packets is determined by a maximum zapping time; according to this variant, the size of the elementary stream packets is limited to a value enabling a receiver to find, during a change of stream, an elementary stream packet header in a determined maximum time period (judged as acceptable by a user), for example within a maximum of 500 ms.
Selon une variante, cette détermination de la taille maximale des paquets de flux élémentaire peut être combinée avec la détermination de la taille minimale telle que décrite précédemment. Dans un tel cas, la taille déterminée des paquets de flux élémentaire est égale ou supérieure à la plus grande des valeurs minimales et égale ou inférieure à la valeur maximale.According to one variant, this determination of the maximum size of the elementary stream packets can be combined with the determination of the minimum size as described above. In such a case, the determined size of the elementary stream packets is equal to or greater than the largest of the minimum values and equal to or less than the maximum value.
Selon une variante, la taille des paquets de flux élémentaire est un paramètre configurable modifiable.According to one variant, the size of the elementary stream packets is an editable configurable parameter.
Selon une autre variante, la taille des paquets de flux élémentaire est un paramètre de configuration pré-enregistré et fixe.According to another variant, the size of the elementary stream packets is a pre-recorded and fixed configuration parameter.
Selon une autre variante, la taille des paquets de flux élémentaire est un paramètre de configuration pré-enregistré et modifiable.According to another variant, the size of the elementary stream packets is a pre-registered and modifiable configuration parameter.
Selon une variante de mise en œuvre de l'invention, une étape d'analyse préalable des caractéristiques du flux de trames audio à débit variable est effectuée ; ensuite, une valeur pour la taille des paquets de flux élémentaire est déterminée en fonction du résultat de cette analyse. Une telle analyse permet notamment de déterminer les caractéristiques comme le débit maximal du flux de trames et la taille maximale des trames audio fourni à la méthode d'optimisation de transmission. Selon une autre variante de mise en œuvre de l'invention, la détermination d'une valeur pour la taille des paquets de flux élémentaire est effectuée à partir de données sur le flux de trames audio fourni à la méthode d'optimisation de transmission, comme le débit des trames et la taille maximale des trames. Avec cette information, la taille maximale d'une trame audio est calculée, le nombre minimal de paquets de transport permettant d'encapsuler une trame audio découlant de cette taille selon la relation suivante :According to an implementation variant of the invention, a step of prior analysis of the characteristics of the flow of variable rate audio frames is performed; then, a value for the size of the elementary stream packets is determined according to the result of this analysis. Such an analysis makes it possible in particular to determine the characteristics such as the maximum bit rate of the frame stream and the maximum size of the audio frames supplied to the transmission optimization method. According to another variant embodiment of the invention, the determination of a value for the size of the elementary stream packets is performed on data on the stream of audio frames supplied to the method. transmission optimization, such as frame rate and maximum frame size. With this information, the maximum size of an audio frame is calculated, the minimum number of transport packets for encapsulating an audio frame derived from this size according to the following relationship:
MinNbTpPourTrame = (MinTailleEntêtePES + (MaxDébitAudio / DuréeTrameAudio) ) / TailleChargeUtilePaquetTransport. dans laquelle : - MinNbTpPourTrame exprime le nombre minimal de paquets de transport nécessaire pour encapsulation d'une trame audio ;MinNbTpForFrame = (MinSizePESHeader + (MaxAudioRebit / DurationAudioTram)) / SizeChargeUtilePackingTransport. in which: - MinNbTpPourTram expresses the minimum number of transport packets necessary for encapsulation of an audio frame;
- MinTailleEntêtePES exprime la taille minimale d'un entête de paquet de flux élémentaire ; - TailleChargeUtilePaquetTransport exprime la taille de la charge utile des paquets de transport, par exemple 184.- MinSizePESEnter expresses the minimum size of an elementary stream packet header; - SizeLoadUtilePackageTransport expresses the size of the payload of the transport packets, for example 184.
- MaxDébitAudio / DuréeTrameAudio donne la taille maximale de la trame audio. MaxDébitAudio est par exemple 128kbits/s, et DuréeTrameAudio est par exemple 10 millisecondes ; MinNbTpPourTrame ainsi calculé est arrondi ensuite vers le haut, et est donné la valeur du nombre entier de fois la valeur de la charge utile d'un paquet de transport. Par exemple, si MinNbTpPourTrame donne une valeur de 134,67, et que la taille de la charge utile d'un paquet de transport est 184, la valeur finale de MinNbTpPourTrame est 184. La taille du paquet de flux élémentaire est ensuite calculée ainsi :- MaxAudioRbit / DurationAudioTram gives the maximum size of the audio frame. MaxDetAudio is for example 128kbits / s, and TimeTramAudio is for example 10 milliseconds; MinNbTpPourFrame thus calculated is then rounded upwards, and is given the value of the integer times the value of the payload of a transport packet. For example, if MinNbTpForFrame gives a value of 134.67, and the payload size of a transport packet is 184, the final value of MinNbTpPourFrame is 184. The size of the elementary stream packet is then calculated as follows:
Taille_PES = N * MinNbTpPourTrame * TailleChargeUtilePaquetTransportSize_PES = N * MinNbTpForWheel * SizeLoadUtilePackageTransport
La valeur du paramètre N permet de réduire d'avantage le débit du flux de transport mais cela a une implication sur le temps de zapping d'un récepteur d'un tel flux. N est minimal égal à 1 et peut aller jusqu'àThe value of the parameter N makes it possible to reduce the bit rate of the transport stream even more, but this has an implication on the zapping time of a receiver of such a stream. N is minimal equal to 1 and can go up to
N = (TempsDeZapping / DuréeMaximaleTrameAudio) .N = (ZappingTime / MaximumTimeAudioTrue).
La variable TempsDeZapping a par exemple une valeur de 0,5 pour avoir un point d'accès chaque 0,5 secondes, permettant à un récepteur de commencer à décoder après un délai 0,5 secondes maximale. Selon une variante de mise en œuvre de l'invention, la transmission d'au moins un paquet de transport complet est faite dès la réception d'une trame audio à débit variable. Cette variante de mise en œuvre permet notamment de réduire le délai entre la réception d'une trame audio et la transmission des paquets de transport.For example, the ZapTime variable has a value of 0.5 to have an access point every 0.5 seconds, allowing a receiver to begin decoding after a maximum of 0.5 seconds. According to an alternative embodiment of the invention, the transmission of at least one complete transport packet is made upon receipt of a variable rate audio frame. This variant of implementation In particular, this work makes it possible to reduce the delay between the reception of an audio frame and the transmission of the transport packets.
Selon une autre variante de mise en œuvre de l'invention, la transmission d'au moins un paquet de transport complet est faite dès la réception de plusieurs trames audio à débit variable.According to another variant of implementation of the invention, the transmission of at least one complete transport packet is made upon receipt of several variable rate audio frames.
Le nombre de trames audio reçues avant la transmission d'un paquet de transport peut être calculé en observant le délai entre l'entrée et la sortie d'une trame audio, en prenant en compte le délai introduit par l'ajout des entêtes de flux élémentaire et de transport. La figure 7 représente de manière détaillée un exemple de mise en œuvre de l'étape 63.The number of audio frames received before the transmission of a transport packet can be calculated by observing the delay between the input and the output of an audio frame, taking into account the delay introduced by the addition of the flow headers. elementary and transportation. Figure 7 shows in detail an example of implementation of step 63.
L'étape 63 débute par un test 631 , au cours duquel l'appareil 2 vérifie si un entête de paquet de flux élémentaire (par exemple 50211 ouStep 63 begins with a test 631, in which the apparatus 2 checks whether an elementary stream packet header (for example 50211 or
51211 de la figure 5) est nécessaire. Un entête de flux élémentaire est nécessaire chaque fois qu'un nouveau paquet de flux élémentaire commence.51211 of Figure 5) is necessary. An elementary stream header is needed each time a new elementary stream packet starts.
Si lors du test 631 , un entête de flux élémentaire s'avère utile ou nécessaire, lors d'un test 632, l'appareil 2 vérifie si le paquet de flux élémentaire traité commence par un début d'une trame audio ou non (par exemple : la trame audio 502121 commence dans le paquet de flux élémentaire 5021 , et la trame audio 512121 ne commence pas dans le paquet de flux élémentaire 5121).If during the test 631, an elementary flow header is useful or necessary, during a test 632, the device 2 checks whether the treated elementary stream packet starts with a start of an audio frame or not (by for example: the audio frame 502121 starts in the elementary stream packet 5021, and the audio frame 512121 does not start in the elementary stream packet 5121).
Dans l'affirmative, le paquet de flux élémentaire commence par un début de trame audio, et au cours d'une étape 633, une référence de temps correspondant au moment de réception de la trame audio traité est retenue et mise dans l'entête du paquet de flux élémentaire (par exemple 50211).If so, the elementary stream packet starts with an audio frame start, and during a step 633, a time reference corresponding to the time of reception of the processed audio frame is retained and put in the header of the audio frame. elementary stream packet (eg 50211).
Dans la négative, le paquet de flux élémentaire ne commence pas par un début de trame audio et au cours d'une étape 634, la référence de temps pour l'entête de flux élémentaire est déterminée comme étant la valeur du référence de temps associé au moment de la réception de la trame audio auquel on ajoute la durée de réception de la trame (par exemple, la référence de temps à mettre dans l'entête du paquet de flux élémentaireIf not, the elementary stream packet does not start with an audio frame start and during a step 634, the time reference for the elementary stream header is determined as the value of the time reference associated with the the time of reception of the audio frame to which is added the duration of reception of the frame (for example, the reference of time to put in the header of the packet of elementary flow
5121 correspond au moment de la réception de la trame 502123 plus le nombre de bits de cette trame divisé par le débit de la trame 502123). L'étape 63 se termine à l'issue des étapes 633 ou 634 ou si le résultat du test 631 est négatif. La figure 8 représente l'étape 64 d'encapsulation de trames audio à débit variable dans des paquets de transport, sans dissociation des étapes 641 , 642, 643.5121 corresponds to the moment of reception of the frame 502123 plus the number of bits of this frame divided by the bit rate of the frame 502123). Step 63 ends at the end of steps 633 or 634 or if the result of test 631 is negative. Fig. 8 shows step 64 of encapsulating variable rate audio frames in transport packets without dissociating steps 641, 642, 643.
Lors d'une étape 81 , un paquet de transport est créé si cela est nécessaire, c'est-à-dire à la première exécution de l'étape 64, ou si le paquet de transport en cours de traitement est plein. A la fin de cette étape, si un entête a été créé, il est prêt et est transmis.In a step 81, a transport packet is created if necessary, i.e., at the first execution of step 64, or if the transport packet being processed is full. At the end of this step, if a header has been created, it is ready and transmitted.
Lors d'une étape 82, un entête de paquet PES ou flux élémentaire est ajouté au paquet de transport créé précédemment, si cela est nécessaire, c'est-à-dire, à la première exécution de l'étape 64, ou si le paquet PES en cours de traitement est plein. L'entête comprend une référence de temps, qui peut être calculée selon l'algorithme présenté par la figure 7. L'entête comprend aussi une valeur de longueur du paquet de flux élémentaire, ayant une valeur déterminée. A la fin de cette étape, si un entête est créé, il est prêt et est transmis.In a step 82, a PES packet header or elementary stream is added to the previously created transport packet, if necessary, i.e., at the first execution of step 64, or if the PES package being processed is full. The header comprises a time reference, which can be calculated according to the algorithm presented in FIG. 7. The header also comprises a value of the length of the elementary stream packet, having a determined value. At the end of this step, if a header is created, it is ready and transmitted.
Lors d'une étape 83, la trame audio lue est ajoutée entièrement ou en partie au paquet de transport en cours jusqu'à ce que le paquet de flux élémentaire en cours soit complètement rempli, ou jusqu'à ce que la trame audio lue soit complètement traitée, c'est-à-dire ajoutée dans son intégralité à un paquet de flux élémentaire.In a step 83, the audio frame read is added wholly or in part to the current transport packet until the current elementary stream packet is completely filled, or until the audio frame read is completely processed, that is, added in its entirety to a packet of elementary streams.
Lors d'un test 84, l'appareil 2 vérifie si le paquet de flux élémentaire en cours est plein ou non. Si le paquet de flux élémentaire en cours est plein, l'étape 82 est réitérée.During a test 84, the device 2 checks whether the current elementary stream packet is full or not. If the current elementary stream packet is full, step 82 is reiterated.
Si le paquet n'est pas encore plein, lors d'un test 86, l'appareil 2 vérifie si le paquet de transport en cours est plein.If the packet is not yet full, during a test 86, the device 2 checks whether the current transport packet is full.
Si le paquet de transport en cours est plein, lors d'une étape 85, un nouveau paquet de transport est créé. L'étape 83 est ensuite réitérée.If the current transport packet is full, in a step 85, a new transport packet is created. Step 83 is then repeated.
Si le paquet de flux de transport en cours n'est pas encore plein, lors d'un test 87, l'appareil 2 vérifie si la trame audio dont le traitement est en cours, est complètement encapsulée. Si cela est le cas, une nouvelle trame audio est lue en revenant à l'étape 62. Si la trame audio en cours de traitement n'est pas encore complètement encapsulée, un nouveau paquet de transport est créé lors d'une étape 85 et l'étape 83 est réitérée.If the current transport stream packet is not yet full, during a test 87, the device 2 checks whether the audio frame whose processing is in progress is completely encapsulated. If this is the case, a new audio frame is read back to step 62. If the audio frame being processed is not yet fully encapsulated, a new transport packet is created in step 85 and step 83 is repeated.
Selon un variante, les étapes comprenant des transmissions fournissent les données prêtes à être transmises à un buffer de transmission ou FIFO (« first in, first out » en anglais, pour « premier arrivé, premier sorti » ) , qui les rassemble avant d'envoyer tout ou en partie. Cela permet de regrouper des parties de paquets de transport ou des paquets de transport entiers pour les sortir en rafale (ou « burst » en anglais) ou, au contraire, d'étaler leur envoi dans le temps, selon les caractéristiques du réseau sur lequel les paquets sont transmis. Selon une autre variante de mise en œuvre de l'invention, les étapes comprenant des transmissions fournissent les données prêtes à être transmises à un buffer de transmission pour être regroupé et encapsulé dans des paquets de transport RTP selon la norme IETF RFC 3550 (pour « Real-time Transport Protocol » en anglais, pour « Protocole de Transport en temps réel ») permettant, à la réception, de corriger les délais de transmission survenues (jigue en français ou « jitter » en anglais) et/ou de remettre des paquets en ordre séquentielle pour les paquets qui ne sont pas reçus dans l'ordre.According to a variant, the steps comprising transmissions provide the data ready to be transmitted to a transmission buffer or FIFO ("first in, first out"), which brings them together before send all or part of it. This allows to group parts of transport packets or entire transport packets to burst them (or "burst" in English) or, on the contrary, to spread their sending in time, according to the characteristics of the network on which the packets are transmitted. According to another variant embodiment of the invention, the steps comprising transmissions provide the data ready to be transmitted to a transmission buffer in order to be grouped and encapsulated in RTP transport packets according to the IETF RFC 3550 standard (for " Real-time Transport Protocol "in English, for" Real-time Transport Protocol ") allowing, at the reception, to correct the delays of transmission occurred (jitter in French or" jitter "in English) and / or to deliver packets in sequential order for packets that are not received in order.
L'invention permet également la réception de paquets de transport construits selon les formats décrits précédemment. La réception est par exemple mise en œuvre dans l'un des récepteurs 108 ou 114. La structure de ces récepteurs est similaire à celle de l'appareil 2, les interfaces étant adaptés à la réception de paquets de transport et à la fourniture de référence de temps et de trames audio à une application, et les programmes étant adaptés à la mise en œuvre de la méthode de réception.The invention also allows the reception of transport packets constructed according to the formats described above. The reception is for example implemented in one of the receivers 108 or 114. The structure of these receivers is similar to that of the apparatus 2, the interfaces being adapted to the reception of transport packets and to the reference supply. time and audio frames to an application, and the programs being adapted to the implementation of the receiving method.
La figure 9 illustre un mode de réalisation particulier d'une méthode de réception d'un flux de transport construit selon la méthode de transmission. La méthode commence par une étape 90 au cours de laquelle les différentes variables utiles à la mise en œuvre de la méthode sont initialisées.Figure 9 illustrates a particular embodiment of a method of receiving a transport stream constructed according to the transmission method. The method begins with a step 90 during which the various variables useful for the implementation of the method are initialized.
Ensuite la méthode comprend une réception 91 d'au moins une partie d'un paquet de transport.Then the method includes receiving 91 of at least a portion of a transport packet.
Ensuite, le récepteur extrait une référence de temps du paquet de transport (étape 92). Puis, il effectue une extraction 93 d'au moins une trame audio à débit variable des paquets de transport reçus. Cette opération est duale de l'opération ou des opérations d'encapsulation effectuée par l'appareil 2.Then, the receiver retrieves a time reference from the transport packet (step 92). Then, it extracts 93 of at least one variable rate audio frame from the received transport packets. This operation is dual of the operation or encapsulation operations performed by the apparatus 2.
D'une manière générale, le récepteur est adapté à la reconstruction de trames audio émises par la source et encapsulées dans des paquets de transport. Selon des variantes, il met en œuvre un codage différent.In general, the receiver is suitable for reconstructing audio frames transmitted by the source and encapsulated in transport packets. According to variants, it implements a different coding.
Selon différents modes de réalisation, l'extraction des trames audio commence avant la réception de l'intégralité d'un paquet de transport comprenant la ou les trames audio extraites, ce qui permet de réduire la latence.According to various embodiments, the extraction of the audio frames begins before the reception of the entirety of a transport packet including the audio frame (s) extracted, thereby reducing latency.
Bien entendu, l'invention ne se limite pas aux modes de réalisation décrits précédemment. Notamment, plusieurs des étapes de la méthode peuvent être exécutés en parallèle, comme la réception de trames, l'encapsulation, et la transmission, en ajoutant des moyens de communication et des zones de mémoires tampon entre ces étapes. Cela a notamment comme avantage de permettre une séparation de tâches spécifiques. Notamment, la méthode peut être mise en œuvre non pas par un seul appareil, mais par un ensemble d'appareils distincts.Of course, the invention is not limited to the embodiments described above. In particular, several of the steps of the method can be executed in parallel, such as frame reception, encapsulation, and transmission, by adding communication means and buffer zones between these steps. This has the particular advantage of allowing a separation of specific tasks. In particular, the method can be implemented not by a single device, but by a set of separate devices.
Notamment, l'invention ne se limite pas aux formats de trames audio, format de paquets de flux élémentaire, et au format de paquets de flux de transport décrits ; la méthode peut être appliqué à d'autres formats de trames audio, d'autres format de paquets élémentaires, et d'autres formats de paquets de transport.In particular, the invention is not limited to the audio frame formats, elementary stream packet format, and the transport stream packet format described; the method can be applied to other audio frame formats, other basic packet formats, and other transport packet formats.
Plusieurs des avantages procurés par l'invention peuvent être illustrés par l'exemple d'application suivante. L'invention peut être particulièrement avantageuse dans un environnement de transmissions soumises à des fortes contraintes de débit maximal, comme la transmission de télévision vers des téléphones portables. Dans un tel environnement, un flux de transport comprenant de l'audio et de la vidéo ne doit typiquement pas dépasser quelques centaines de kbit/s (kilobits par seconde). Ainsi, l'impact de la composante audio sur la bande passante totale du flux de transport est relativement important, la composante audio occupant typiquement une bande passante de l'ordre de 15 à 20% de la bande passante totale (audio + vidéo). Soumis à la forte contrainte de débit maximal autorisé, les flux vidéo entrant dans une plate-forme de transmission pour téléphone portable sont donc préalablement fortement réduit en bande passante avant transmission. Dans ce contexte, l'optimisation de transmission de trames audio à débit variable dans un flux de transport selon la méthode d'optimisation de transmission de l'invention permet de transmettre la vidéo avec une meilleure qualité en permettant de moins réduire la bande passante avant transmission par le gain obtenu sur l'efficacité de l'empaquetage du flux audio, le tout en ne faisant aucune concession sur la qualité du flux audio. Several of the advantages provided by the invention can be illustrated by the following application example. The invention can be particularly advantageous in an environment of transmissions subject to high maximum throughput constraints, such as television transmission to mobile phones. In such an environment, a transport stream comprising audio and video typically should not exceed a few hundred kbit / s (kilobits per second). Thus, the impact of the audio component on the total bandwidth of the transport stream is relatively high, the audio component typically occupying a bandwidth of the order of 15 to 20% of the total bandwidth (audio + video). Under the strong constraint of maximum authorized bit rate, the video streams entering a mobile phone transmission platform are therefore significantly reduced in bandwidth before transmission. In this context, the optimization of transmission of variable rate audio frames in a transport stream according to the transmission optimization method of the invention makes it possible to transmit the video with a better quality by making it possible to reduce the bandwidth beforehand. transmission by the gain obtained on the efficiency of the packaging of the audio stream, while making no concession on the quality of the audio stream.
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0852467 | 2008-04-11 | ||
| FR0852467 | 2008-04-11 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2009124779A2 true WO2009124779A2 (en) | 2009-10-15 |
| WO2009124779A3 WO2009124779A3 (en) | 2010-07-01 |
Family
ID=40223729
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/EP2009/002689 Ceased WO2009124779A2 (en) | 2008-04-11 | 2009-04-10 | Method of optimizing transmission of a stream of audio frames with variable bit rate in a transport stream for transmission on a network |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2009124779A2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025065659A1 (en) * | 2023-09-28 | 2025-04-03 | 深圳引望智能技术有限公司 | Data transmission method and apparatus |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3990813B2 (en) * | 1998-05-22 | 2007-10-17 | キヤノン株式会社 | Encoding apparatus, encoding method, digital transmission apparatus, and digital transmission system |
| WO2005048609A1 (en) * | 2003-11-13 | 2005-05-26 | Matsushita Electric Industrial Co., Ltd. | Packetization of variable bit rate encoded data based on rate control |
-
2009
- 2009-04-10 WO PCT/EP2009/002689 patent/WO2009124779A2/en not_active Ceased
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025065659A1 (en) * | 2023-09-28 | 2025-04-03 | 深圳引望智能技术有限公司 | Data transmission method and apparatus |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2009124779A3 (en) | 2010-07-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| FR2927216A1 (en) | METHOD FOR TRANSMITTING DIGITAL IMAGES AND RECEIVING TRANSPORT PACKETS. | |
| FR2864869A1 (en) | Digital video broadcasting performing process for e.g. Internet protocol network, involves connecting receiver to part of stream conveying description information of digital services to obtain information on services | |
| CA2674414C (en) | Method of real-time transmission/reception of data in packets between a server and a client terminal, corresponding server and terminal | |
| FR2939994A1 (en) | METHOD FOR TRANSMITTING A MULTI-CHANNEL DATA STREAM ON A MULTI-TRANSPORT TUNNEL, COMPUTER PROGRAM PRODUCT, STORAGE MEDIUM, AND CORRESPONDING TUNNEL HEADS | |
| EP2406929B1 (en) | Method and device for the reliable transmission of data packet flows with compressed headers without increasing the flow rate | |
| FR2929787A1 (en) | METHOD AND DEVICE FOR PROCESSING A DATA STREAM | |
| EP1483915B1 (en) | Method for the transmission of dependent data flows | |
| FR2903253A1 (en) | METHOD FOR DETERMINING COMPRESSION AND PROTECTION PARAMETERS FOR TRANSMITTING MULTIMEDIA DATA ON A WIRELESS CHANNEL. | |
| EP1977600B1 (en) | Method for broadcasting or receiving digital video services, corresponding devices | |
| EP2282432A1 (en) | Method for transmitting multimedia data in ad hoc communication networks | |
| US20090245346A1 (en) | Method and apparatus for generating and processing packet | |
| EP2228922A2 (en) | Information processing device and method, program, and information processing system | |
| WO2011010297A2 (en) | Method for broadcasting digital data | |
| WO2009124779A2 (en) | Method of optimizing transmission of a stream of audio frames with variable bit rate in a transport stream for transmission on a network | |
| WO2009053663A2 (en) | Optimized method of transmitting layered contents to mobile terminals and via a radio infrastructure with access procedure of tdm/tdma/ofdma type, and associated processing device | |
| EP3245794A1 (en) | Method for transmitting a data flow using a direct broadcasting protocol | |
| FR2880749A1 (en) | METHOD FOR TRANSMITTING MPEG FLUX ON IP AND APPARATUS IMPLEMENTING THE METHOD | |
| EP1845685B1 (en) | Optimised transmission of content IP packets by adding to the IP packets content-related information | |
| EP2174433A2 (en) | Method and device for transmitting bursts of variable size | |
| FR3068559B1 (en) | METHOD FOR GENERATING A DATA STREAM, BROADCAST GATEWAY, METHOD AND EQUIPMENT FOR SELECTING A DATA STREAM, AND CORRESPONDING COMPUTER PROGRAM | |
| FR2918832A1 (en) | METHODS FOR TRANSMITTING DATA BY RELAY NODES IN A SYNCHRONOUS COMMUNICATION NETWORK, RECEPTION METHOD, COMPUTER PROGRAM PRODUCT, STORAGE MEDIUM, AND CORRESPONDING NODES. | |
| CN101102485A (en) | Audio and video synchronization device and method of mobile terminal | |
| FR2923970A1 (en) | METHOD AND DEVICE FOR FORMING, TRANSFERING AND RECEIVING TRANSPORT PACKETS ENCAPSULATING DATA REPRESENTATIVE OF A SEQUENCE OF IMAGES | |
| EP2163020B1 (en) | Method based on error corrector codes, applicable to a variable rate multimedia datastream | |
| EP1798999A1 (en) | Method of managing the behaviour of an interactive application when broadcasting a program according to the DVB-H standard |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 09731444 Country of ref document: EP Kind code of ref document: A2 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 09731444 Country of ref document: EP Kind code of ref document: A2 |