EP2232833A2 - Traitement d'erreurs binaires dans une trame binaire audionumerique - Google Patents

Traitement d'erreurs binaires dans une trame binaire audionumerique

Info

Publication number
EP2232833A2
EP2232833A2 EP08864421A EP08864421A EP2232833A2 EP 2232833 A2 EP2232833 A2 EP 2232833A2 EP 08864421 A EP08864421 A EP 08864421A EP 08864421 A EP08864421 A EP 08864421A EP 2232833 A2 EP2232833 A2 EP 2232833A2
Authority
EP
European Patent Office
Prior art keywords
bit
bits
frame
category
sensitive
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
Application number
EP08864421A
Other languages
German (de)
English (en)
Inventor
Balazs Kovesi
Stéphane RAGOT
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Publication of EP2232833A2 publication Critical patent/EP2232833A2/fr
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6312Error control coding in combination with data compression
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit

Definitions

  • the present invention relates to the processing of digital signals in the telecommunications field. These signals may be, for example, speech, music, video signals or more generally multimedia signals. More particularly, the invention aims to protect coded data against bit errors and bit error processing in a bit frame.
  • the invention applies more particularly in a hierarchical coding / decoding system.
  • MIC for "Coded Pulse Modulation”
  • ADPCM for "Pulse Modulation and Adaptive Differential Coding" coding
  • CELP coding for "Code Excited Linear Prediction"
  • disturbances may affect the transmitted signal and produce errors on the bitstream received by the decoder. These errors can occur in isolation in the bit stream or in bursts. This type of problem occurs for example for transmissions on mobile networks or a DECT type wireless link (for "Digital Enhanced Cordless Telephone" in English).
  • each sample is represented on 8 bits by a PCM coding using an amplitude compression law in the form of a linear segment function followed by a uniform scalar quantization.
  • G.711 For each sample, G.711 generates 8 code bits that include 1 sign bit, 3 bits to identify the compression law segment, and 4 bits to specify the location of a level on a given segment.
  • An isolated error on the sign bit of a sample of high amplitude causes a very clear discontinuity in the decoded signal, the quality of listening is then very degraded.
  • an isolated error on the least significant bit specifying the location of a level on a segment is virtually inaudible.
  • the sensitivity to bit errors increases with the position of the altered bits.
  • the least sensitive bit being the least significant bit specifying the location of a level on a segment and the most sensitive bit being the most significant bit indicating a segment identifier.
  • the sensitivity of the sign bit depends on the absolute value of the current coded sample.
  • the pitch parameter (or fundamental period) is very sensitive to bit errors.
  • this parameter is coded by a scalar type quantizer. This is the case of the ITU-T G.729 standard, where the signal is encoded in 10 ms frames divided into two subframes.
  • the pitch T; in the first sub-frame of 5 ms is encoded in absolute on
  • T 2 will also be badly decoded because its value is necessarily in the neighborhood of the Ti because of the relative coding.
  • An error on a bit representing the fixed code index of the CELP coding generally has much less impact and does not cause audible degradation.
  • a transform encoder such as the standard encoder
  • the parameters are generally associated with two different information: the spectral envelope and the "fine structure" of the spectrum (that is, the spectrum normalized by the spectral envelope).
  • the cost-term spectrum of the signal is typically divided into a number of subbands and the spectral envelope is defined as the effective value (or r.m.s. in English) of each of the subbands.
  • This envelope is often coded by scalar quantization followed by differential Huffman coding.
  • the first quantization index is encoded in absolute, and the other indices are coded in differential with respect to the preceding subband.
  • a base layer also called “core”
  • the following layers progressively improve the quality of the signal from the decoding operation, each new layer providing new information, which, exploited by the decoder, output a signal of increasing quality.
  • One of the peculiarities of hierarchical codec-decoders is the possibility of intervening at any level of the transmission or storage chain to remove a part of the bit stream without having to give any particular indication to the coder or the decoder.
  • the decoder uses the binary information it receives and produces a signal of corresponding quality.
  • the different layers of bits are usually hierarchical
  • level 3 (hence the name "hierarchical"), ie if we call level 0 the heart, then 1, 2, 3 etc. the following layers, the decoding of the level 3 layer assumes that the bits of layers 0, 1 and 2 are also available.
  • Hierarchical coders are particularly interesting in transmission contexts on heterogeneous access networks: whether they are IP type networks mixing fixed and mobile accesses, broadband (ADSL), low bit rates (56k modems, GPRS) or involving terminals of varying capacities (mobile, PC, ).
  • Hierarchical coding makes it possible to adapt the bit rate of a transmission without requiring transcoding. For example, access to audio content bases in which the audio samples are recorded with the highest bit rate of a hierarchical coder, the transmitted bit rate being then adapted to the capacity (or the quality of service negotiated). ) of the customer served.
  • Another application is heterogeneous access audio-video conferencing, in which terminals having broadband access can communicate at high speed even if one of the terminals of the conference does not have this capability, without requiring transcoding.
  • the EV-VBR (Embedded Variable - Variable Bit Rate) coder currently under study in ITU-T Q.9 / 16 (study period 2004-2008) is an example of a scalable speech coder .
  • This encoder has a binary train structured in 5 layers associated with different rates (8, 12, 16, 24 and 32 kbit / s).
  • a binary error handling method for EV-VBR is described in the draft RFC (Request For Comments) published on November 12, 2007 by the IETF at the following address: hbtp: / / www. ie bf. orq / inter net-draf bs / dr af ⁇ -lakaniemi-avt-r- ⁇ p-evbr-O O.
  • the payload format proposed in the cited document consists of one or more transport blocks containing one or more layers and the header of each transport block contains protection bits in the form of a CRC code (for "Cyclic Redundancy Check") for all the bits included in the corresponding transport block. If an error is detected in a transport block that contains the layer
  • the probability of obtaining a decoding of all the layers of the frame is therefore very low with such a method and that even with a low bit error rate.
  • each layer is sent in a different transport block
  • 5 8-bit CRC codes are transmitted in the payload which gives an additional bit rate of 2 kbit / s for a frame of 20 ms. Even with a low bit error rate the probability of being able to decode the maximum bit rate is low.
  • the invention provides a method for processing bit errors in a bit frame derived from a digital audio encoder, comprising a step of receiving a current bit frame that may include binary errors.
  • the method of the invention is such that the bit frame comprises sensitive bits to protect that are listed in at least one category according to the type of parameter they code and that it further comprises the following steps:
  • the processing to be applied in case of bit error detection in a bit frame is adapted to the erroneous bit.
  • Different processes can then be implemented depending on the classification of the sensitive bits to be protected, the classification depending on the type of parameter that these bits encode. This therefore makes it possible to reduce the number of frames rejected in the event of detected bit errors, since only the sensitive bits of a bit stream are protected.
  • this processing is performed before the actual decoding operation. It can therefore be performed upstream of the decoder, for example by an independent entity.
  • the decoder that receives a modified frame does not need to know if there have been binary errors and does not need to implement methods of hiding erased frames.
  • the invention also makes it possible to protect hierarchical frames whose bit order is fixed by the hierarchical property, the most sensitive bits then not necessarily being at the beginning of the bit frame.
  • the protection bits are defined according to the category in which the sensitive bits to be protected are listed.
  • a protection method is adapted according to the parameters that the bits to be protected encode for a better adaptation of the protection method to the signal.
  • the modification of the current frame comprises replacing the bits of the same category as the detected erroneous bit by non-errored bits received and stored in a previous frame.
  • certain parameters have a slow variation, such as, for example, the energy or the pitch (or fundamental period) to replace the erroneous bits with the bits stored in a previous frame.
  • the modification of the current frame comprises a truncation of the bit frame removing the bits corresponding to the higher rate layers than the one in which the bit is located. erroneous bit detected as well as the layer containing the erroneous bit.
  • the modification of the current frame further comprises a step of modifying a bit rate information in the header of the current bit frame.
  • the decoder is thus directly informed of the decoding rate that it must apply.
  • the bit frame comes from a hierarchical coder of the G.729.1 standardized type in which the bits to be protected are listed in at least two categories, a first category comprising the bits encoding the average energy of the high layer of the encoder and a second category comprising the bits encoding the representation parameters of the transform (MDCT), and in that the protection bits corresponding to the first category is a parity bit and the protection bits corresponding to the second one; category are redundancy bits.
  • the modification of the current frame comprises the replacement of the bits of the first category by non-errored bits received in a previous frame and in the case of detecting an erroneous bit belonging to the second category, The modification of the current frame comprises truncation of the bit frame removing the bits corresponding to the bit rate layers higher than that in which the erroneous bit detected is located, as well as the layer comprising the erroneous bit.
  • the present invention also relates to a device for processing bit errors in a bit frame derived from a digital audio coder, the bit frame being capable of comprising bit errors such that the bit frame comprises sensitive bits to be protected which are listed in FIG. at least one category depending on the type of parameter they encode.
  • the device comprises:
  • bit error detection module according to said received protection bits and said sensitive bits of the received bit frame from the reception module; and a module for modifying the bit frame before decoding implemented in the event of detecting at least one erroneous bit in the bit frame by the detection module, the modification being a function of the category in which the erroneous bit is listed.
  • an encoder able to encode a digital audio signal into a binary field
  • bit frame comprises sensitive bits to protect listed in at least one category according to the type of parameter they encode and that further comprises: a protection device able to determine suitable protection bits; the bits to be protected according to the category in which the bits to be protected are listed;
  • a decoder adapted to decode the modified bit frame from the device for processing bit errors in a digital audio signal. It also aims in an alternative embodiment, a digital audio decoder with a bit error processing device described above.
  • the present invention finally provides a computer program comprising code instructions for implementing the steps of the method according to the invention, when these instructions are executed by a processor.
  • FIG. 1 illustrates a train coding / decoding system binary device comprising a bit error processing device according to the invention
  • FIG. 2 illustrates a G.729.1 type encoder delivering a hierarchical binary train that can be processed according to the binary error processing method of the invention
  • FIG. 3 illustrates a G.729.1 decoder capable of receiving a hierarchical bit stream modified according to the binary error processing method of the invention
  • FIG. 4 illustrates the steps of the bit error processing method according to the invention
  • FIG. 5 illustrates an exemplary embodiment of a bit error processing device according to the invention.
  • FIG. 1 illustrates a system in which a bit error processing device 110 is provided.
  • This system comprises an encoder 10 which outputs a bit stream T.
  • a protection module 12 retrieves the bit stream and reads the value of the sensitive bits to be protected in this bit stream.
  • this protection device lists the sensitive bits to be protected in different categories. These categories are fixed according to the type of coded parameter, to differentiate the treatment to be performed in case of detection of erroneous bits in one of the categories. Protection bits P are then calculated on the bits to be protected which have been identified. The protection bits are determined according to a method that may be different depending on the category in which the bit to be protected is listed. Thus, different levels of protection can be provided according to the classification of the bits to be protected.
  • protection bits are then sent parallel to the bitstream. They can be sent on the same noisy channel as that of the bitstream, for example by being concatenated in the payload of the same packet in an IP communication context.
  • the protection device can be integrated in the encoder 18 and the protection bits can be integrated in the bit stream.
  • disturbances may affect the transmitted signal and produce errors (E) on the bitstream received by the decoder. These errors can both affect the bitstream and the protection bits from the protection device.
  • a bit error processing device 110 according to the invention is provided in the system shown.
  • This device comprises a reception module R referenced 13 receiving both the bitstream T and the protection bits P.
  • the device 110 comprises a module D referenced 14 for detecting binary errors. This module checks whether the protection bits received correspond to those calculated locally on the bit stream. This module thus detects possible bit errors on the sensitive bits.
  • the module 16 modifies the bitstream so that the impact of this error on the quality of the signal is reduced. For this, the action of this module differs according to the type of parameter associated with the (x) wrong bit (s) detected (s) and therefore the category in which the erroneous bit is listed.
  • the bit frame can be modified, for example, by replacing the erroneous bits with bits that have been stored in M referenced in a previous frame when the detection module has not detected binary errors.
  • Another modification of the bit frame may be for example a truncation of the bitstream in the current frame. For a binary train of hierarchical type, this will correspond for example to reject the higher rate layers than the one concerned by the detected erroneous bit as well as the layer concerned.
  • the decoder will use a bit rate lower than that received.
  • the decoder 17 then receives a modified bit train T '.
  • the decoder decodes the modified bitstream without being informed of the modification.
  • the decoder will decode the bitstream with a bit rate lower than that initially provided in the binary bit frame T.
  • bit error processing device may be integrated into the decoder 19.
  • the decoder then receives both the bitstream and the protection bits either separately or together.
  • the present invention is advantageously applicable in the case of a hierarchical audio coding and decoding system.
  • the encoder 10 is a G.729.1 standard type encoder.
  • Figure 2 illustrates the main elements of an ITU-T G.729.1 standardized type hierarchical coder.
  • This hierarchical coder has a very fine scalability, the binary train comprising 12 layers.
  • the corresponding cumulative flows are 8, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 and 32 kbit / s.
  • the G.729.1 encoder is an extension of the ITU-T G.729 standard encoder. It is a modified G.729 core-based coder, producing a bandwidth ranging from narrowband (50-4000 Hz) to wideband (50-7000 Hz) at 8 to 32 kbit / s for conversational services. This standard has been created in particular for IP-based network voice applications (for "Internet Protocol") using UDP (User Datagram Protocol).
  • the broadband input signal s wb sampled at 16 kHz, is first decomposed into 2 subbands by QMF (for "Quadrature Mirror Filter") filtering.
  • the low band (0-4000 Hz) is obtained by LP low-pass filtering (block 200) and decimation (block 201), and the high band (4000-8000 Hz) by HP high-pass filtering (block 202) and decimation (block 203).
  • the LP and HP filters are of length 64.
  • the low band is pretreated with a high-pass filter eliminating the components below 50 Hz (block 204), to obtain the signal s LB , before CELP coding in narrow band (block 205) at 8 and 12 kbit / s.
  • This high-pass filtering takes account of the fact that the broadband is defined as covering the range 50-7000 Hz.
  • the narrow-band CELP coding is a cascaded CELP coding comprising as a first stage a modified G.729 coding without a filter. preprocessing and as a second stage an additional fixed CELP dictionary.
  • the high band is first pretreated (block 206) to compensate for the folding due to the high pass filter (block 202) combined with the decimation (block 203).
  • the high band is then filtered by a low pass filter (block 207) eliminating the components between 3000 and 4000 Hz from the high band (that is, the components between 7000 and 8000 Hz in the original signal) to obtain the signal s HB .
  • a band extension (block 208) is then performed.
  • the error signal d LB of the low band is calculated (block 209) from the output of the CELP coder (block 205) and a predictive coding by transform (for example of the TDAC type for "Time Domain Aliasing Cancellation", block 210) is realized. Additional parameters are transmitted by the block 211 to a peer decoder via the FEC module (for "Frame Erasure Concealment") in order to reconstitute any erased frames.
  • the G.729.1 codec therefore has a three-stage coding architecture comprising:
  • TDBWE for "Time Domain Bandwith Extension”
  • TDAC transform predictive coding applied after an MDCT transformation
  • the different bitstreams generated by the coding blocks 205, 208, 210 and 211 are multiplexed and structured in a hierarchical bit stream in the multiplexing block 212.
  • the coding is performed by sample blocks (or frames) of 20 ms, 320 samples per frame.
  • the bit budget per frame is 640 bits.
  • the core layer includes G.729 parameters; the corresponding bits are in positions 0-159.
  • the second layer includes the additional parameters of the cascaded CELP coding as well as bits used to conceal erased frames (FEC).
  • the upper layers include FEC bits and the TDBWE and TDAC encoder parameters.
  • TDBWE encoder there are three types of parameters:
  • the spectral envelope of the low band (RMS1, variable bit rate, max 51 bits); and the vector quantization indices encoding the fine structure.
  • This G729.1 standardized coding / decoding system has been designed and optimized for fixed link (non-mobile) communications; it is therefore not very robust to binary errors and the quality of the signal deteriorates rapidly with the increase of the bit error rate.
  • the invention improves the quality of the decoded signal in the presence of bit errors by the bit error processing method described with reference to FIG. 4 and implemented by the binary error processing device described with reference.
  • the decoder 17 is a G.729.1 standard type decoder.
  • Figure 3 describes such a decoder.
  • the bit stream of the 8 and 12 kbit / s layers is used by the CELP decoder (block 301) to generate the narrow-band synthesis (0-4000 Hz).
  • the portion of the bit stream associated with the 14 kbit / s layer is decoded by the Tape Expansion Module (block 302).
  • the portion of the bit stream associated with data rates greater than 14 kbit / s is decoded by the TDAC module (block 303).
  • Pre- and post-echo processing is performed by blocks 304 and 307 as well as enrichment (block 305) and aftertreatment of the low band (block 306).
  • the extended band output signal s wb sampled at 16 kHz, is obtained via the QMF synthesis filter bank (blocks 309, 310, 311, 312 and 313) incorporating the inverse folding (block 308).
  • the protection device referenced 12 in FIG. 1 determines, in a first step, the most sensitive bits of the bit stream.
  • the 8 kbit / s core layer follows the G.729 format. This format is considered insensitive to binary errors.
  • the protection of the most sensitive bits is integrated in the bit stream.
  • a parity bit is calculated on the 6 most significant bits (MSB) of the index coding in absolute pitch (or fundamental period) Ti of the first subframe of 5 ms. This parity bit is part of the bitstream.
  • the pitch T 2 is encoded in relative, in the vicinity of the pitch value of the first sub-frame T 1 .
  • Ti for values ⁇ 86 and T 2 have a resolution of V 3 .
  • the decoder calculates the parity of the 6 MSB bits of the received index of the parameter Ti and if this does not correspond to the value of the received parity bit, a concealing procedure is applied: the integer portion of the pitch T 2 of the preceding frame is used instead of the value erroneous for Ti of the current frame.
  • Other precautions were also taken to make the G.729 encoders / decoders robust against bit errors.
  • the LPC (for Linear Predictive Coding) envelope is quantized in the domain of spectral line pairs (LSF) by multi-stage quantization.
  • the gains of the CELP dictionaries are encoded by conjugate structure quantization (or "conjugate structure" in English) which is intrinsically robust to binary errors and ensures that in case of error, the decoded values are close to the values sent, which limits the impact of a binary error on perceived quality.
  • the additional layer of the G.729.1 encoder bringing the bit rate to 12 kbit / s is also not very sensitive to bit errors because it only enriches the excitation of the G.729 coder by adding a fixed dictionary whose parameters are not very sensitive. to binary errors.
  • a certain number of sensitive bits are identified in the layers bringing a rate of 14, 16 and 18 kbit / s.
  • 5-bit sensitive bits positions 240 to 244 of the bitstream
  • at most 56 bits positions 285 to 340 of the bitstream
  • MDCT bits
  • spectral envelope of the transformed layer MDCT variable number of bits per frame between 48 and 82 bits. Since the spectral envelope is coded by variable length codes, it takes between 44 and 92 bits to encode the spectral envelope of the TDAC coder.
  • a binary bit error representing the fine structure of the spectrum is generally well tolerated.
  • the most sensitive bits thus identified are classified in different categories according to the parameters they code and the action recommended in reception when an error is detected on one of the bits thus classified.
  • the 5 bits coding in the TDBWE coding stage are protected by a parity bit. If the parity is verified in the device represented in FIG. 1, for processing the bit errors according to the invention, the device 110 transmits these 5 bits to the decoder 17 without modification of the bitstream. It also memorizes at 15 these 5 bits for a possible subsequent treatment. If a bit error is detected in the detection module 14, the
  • This group of sensitive bits is thus listed in a first category for which the above described processing is applied in case of detection of an erroneous bit of this category.
  • the 56 sensitive bits of the TDAC layer are, according to the invention, protected by a 7-bit Cyclic Redundancy Check (CRC) code.
  • CRC Cyclic Redundancy Check
  • This CRC code can of course be of different length depending on the level of protection desired.
  • a CRC code of 4 bits is for example possible.
  • it is possible to use the generator polynomial 0Xb7 D 8 + D 6 + D 5 + D 3 + D 2 + D + 1 as described in the article "Cyclic Redundancy Code (CRC) Polynomial Selection for Embedded Networks" of P Koopman and T. Chakravarty, The Int. This polynomial can detect all 1, 2, 3, 5, and 7 bit errors and more than 98% of 4 and 6 bit errors.
  • the 56 sensitive bits thus belong to a second category for which, in case of detection of one (or more) error (s) in the bits of this category, the hierarchical property of the G.729.1 bit stream is used by applying a truncation.
  • the device 110 provides the decoder 17 with a modified frame corresponding to a frame with a bit rate of 14 kbit / s.
  • the received rate is 16 kbit / s
  • the bit rate of 16 kbit / s it is better not to use the bit rate of 16 kbit / s.
  • the protection device 12 calculates the 8 protection bits on the encoding side for each 20 ms frames starting from the bit stream T G.729.1.
  • the 8 bits (parity bit + CRC of 7 bits) obtained constituting the protection bits P, are sent to the processing device 110 of the invention. These protection bits can be sent on the same noisy channel (in the same packet) as that of the bitstream or on another channel.
  • the bit error processing device receives both the bit frame T and the 8 protection bits.
  • the detection module D recalculates the 8 redundancy bits on the received bit frame and compares them with the 8 protection bits received.
  • the module for modifying the bit frame replaces the 5 bits. erroneous by the 5 bits previously stored in the bit frame.
  • the G.729.1 decoder 17 will not be informed of this change, it decodes the modified bit frame T 'as a valid frame.
  • the detection module 14 of the device 110 detects an erroneous bit according to the received 7-bit CRC code and the corresponding bits in the received bit frame, the error then corresponds to an error in the TDAC spectral envelope.
  • the bit stream modification module then deletes all the bits corresponding to the TDAC coding stage.
  • the bit frame thus modified T ' is then transmitted to the decoder 17.
  • the modification of the bit frame is carried out at the same time by replacing the erroneous bits of the first category by non-errored bits stored in a previous frame and by truncation of the bit frame removing the bits corresponding to the higher rate layers than the one in which the detected erroneous bit of the second category is located, as well as the layer comprising the erroneous bit.
  • bit stream can for example be carried out in "flying" a bit in the 14 kbit / s layer (FEC pitch LSB bit) and 7 bits in the 16 kbit / s layer (to be removed from the bit budget of the TDAC encoder) - also note that one could do without the bits of the standardization factor MDCT using calculation tips for estimating this factor as in the G.722.1 standard, which amounts to stealing only 3 bits. It is also possible to use a 4-bit CRC code and use only the normalization factor bit location, without stealing additional bits.
  • the G.729.1 decoder can obtain the information of the rate to be decoded either from the number of bits received or this information is given in a header.
  • the modification module of the bit frame 16 also modifies the header to indicate to the decoder that the bit rate to be decoded for the given frame is 14 kbit / s. Even in this case, the decoder 17 is not informed of the presence of a processing device 110. Only the change of flow rate is indicated. The rate change can be caused by any other transmission element than binary errors.
  • Table 2 shows the same type of statistics as those made in relation to the binary error processing method of the document of the state of the art cited, but this time with the method of the invention applied to a G.729.1 system.
  • Decoded layers Decoded rate Probability frame cleared 0 kbit / s 0%
  • the protection device 12 and the bit error processing device 110 are outside the encoder 10 and the decoder 17 and the protection bits are not included in the bit stream.
  • these modules can be integrated in the coder and decoder from the design of the coding / decoding system, and the protection bits can then be part of the bit stream.
  • FIG. 4 generally illustrates the main steps of the bit error processing method according to the invention.
  • Step E41 is a step of receiving both a bit frame and protection bits.
  • the bit frame includes bits to protect listed in at least one category according to the parameters they encode.
  • the protection bits are calculated for the bits to be protected from the bit frame and according to their category.
  • Step E42 consists in reading the received sensitive bits in the current bit frame and detecting the bit errors in the received bit frame as a function of the received protection bits and the received sensitive bits.
  • the number of sensitive bits is smaller than the number of bits of the bit frame.
  • step E42 negative a step of storing (E46) the corresponding bits of the bit frame can be performed, depending on the protection method applied to the bits to be protected.
  • step E43 for modifying the received bit frame is performed. This change is made according to the category in which the erroneous bit is listed.
  • a step (E44) of transmission to the decoder of the modified frame is then performed.
  • FIG. 5 describes a particular embodiment of the device for processing bit errors according to the invention.
  • this device 110 typically comprises a ⁇ P processor cooperating with a memory block BM including a storage and / or working memory, as well as the aforementioned memory MEM as a means for storing bits that do not include bit errors.
  • the memory block can advantageously comprise a computer program comprising code instructions for the implementation of the steps of the method in the sense of the invention, when these instructions are executed by a ⁇ P processor of the device 110 and in particular a first reception step.
  • FIG. 4 can illustrate a flowchart representing the algorithm of such a computer program.
  • the computer program may also be stored on a memory medium readable by a reader of the device or downloadable in the memory space of the device 110.
  • This device 110 may be independent or integrated in a digital audio signal decoder such as a hierarchical decoder type G.729.1 for example.
  • the present invention has been described with two possible types of processing following detection of a bit error. It is quite possible to perform other treatments depending on the category in which the detected erroneous bit is listed. It is possible, for example, to carry out a processing consisting of decoding and memorizing the well-received parameters, and in case of detection of a bit error of this parameter to predict its value as a function of the stored values, to code this predicted value and to replace the erroneous bits by the bits thus obtained.
  • the sensitive bits to be protected can be classified into more than two categories.
  • the present invention can be applied to other types of scalable encoders than that described in the particular embodiment.
  • the invention can indeed be applied in the case of a hierarchical frame resulting from an encoder of the EV-VBR type.
  • the sensitive bits of this bitstream are then different from those described for the G729.1 bit frame, since the coded parameters come from a different coding model.
  • the sensitive bits in the EV-VBR can be identified on statistical and / or experimental bases.
  • VBR is described in ITU-T WP3 / 16, "Extended High-Level Description of the Nokia / VoiceAge Candidate for EV-VBR Coded," April 2007 (Source: Nokia, VoiceAge Corp.).
  • MDCT gains those encoding the MDCT coefficients per se
  • MDCT coef those encoding the MDCT coefficients per se
  • the number of sensitive bits to be protected is variable from one encoder to another as well as the calculation of the appropriate protection bits.
  • the invention applies in all these cases.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

L'invention concerne un procédé de traitement d'erreurs binaires dans une trame binaire issue d'un codeur audionumérique, comportant une étape de réception d'une trame binaire courante susceptible de comporter des erreurs binaires. Selon l'invention, la trame binaire comporte des bits sensibles à protéger qui sont répertoriés dans au moins une catégorie selon le type de paramètre qu'ils codent et le procédé comporte en outre les étapes de réception de bits de protection, de lecture des bits sensibles reçus dans la trame binaire courante, le nombre de bits sensibles étant inférieur au nombre de bits de la trame binaire, de détection d'erreurs binaires en fonction desdits bits de protection reçus et desdits bits sensibles reçus et en cas de détection d'au moins un bit erroné dans la trame binaire, de modification de la trame binaire courante avant décodage, en fonction de la catégorie dans laquelle le bit erroné est répertorié. L'invention se rapporte également à un dispositif mettant en oevre le procédé selon l'invention ainsi qu'un décodeur et un système de codage/décodage comportant un tel dispositif.

Description

Traitement d'erreurs binaires dans une trame binaire audionumérique
La présente invention concerne le traitement de signaux numériques dans le domaine des télécommunications. Ces signaux peuvent être par exemple des signaux de parole, de musique, des signaux vidéo ou plus généralement des signaux multimédia. Plus particulièrement, l'invention vise à protéger les données codées contre les erreurs binaires et le traitement d'erreurs binaires dans une trame binaire.
L'invention s'applique plus particulièrement dans un système de codage/décodage de type hiérarchique.
Différentes techniques existent pour convertir sous forme numérique et compresser un signal audionumérique. Les techniques les plus courantes sont :
- les méthodes de codage de forme d'onde, telles que le codage MIC (pour "Modulation par Impulsions Codées") et MICDA (pour "Modulation par Impulsion et Codage Différentiel Adaptatif), dits aussi "PCM" et "ADPCM" en anglais,
- les méthodes de codage paramétrique par analyse par synthèse comme le codage CELP (pour "Code Excited Linear Prédiction"), et
- les méthodes de codage perceptuel en sous-bandes ou par transformée. Ces techniques traitent le signal d'entrée de façon séquentielle échantillon par échantillon (MIC ou MICDA) ou par blocs d'échantillons dits "trames" (CELP et codage par transformée). Pour tous ces codeurs, les valeurs codées sont ensuite multiplexées en un train binaire qui est transmis sur un canal de transmission.
Selon la fiabilité et le type de canal de transmission, des perturbations peuvent affecter le signal transmis et produire des erreurs sur le train binaire reçu par le décodeur. Ces erreurs peuvent intervenir de manière isolée dans le train binaire ou par rafales. Ce type de problème se rencontre par exemple pour les transmissions sur les réseaux mobiles ou sur une liaison sans fil de type DECT (pour "Digital Enhanced Cordless Téléphone" en anglais).
La conséquence d'un bit erroné dans le train binaire varie en fonction du codeur utilisé et également en fonction du type de paramètre affecté par l'erreur. Bien évidemment la position (ou poids) du bit erroné parmi les bits codant un paramètre est également importante. Par exemple, pour une quantification de type scalaire, une erreur sur le bit plus significatif MSB (pour "Most Significant Bit" en anglais) est plus grave qu'une erreur sur le bit moins significatif LSB (pour "Least Significant Bit" en anglais).
Dans la norme ITU-T G.711, chaque échantillon est représenté sur 8 bits par un codage MIC utilisant une loi de compression d'amplitude sous la forme d'une fonction linéaire par segments suivie d'une quantification scalaire uniforme. Pour chaque échantillon, G.711 génère 8 bits de code qui comprennent 1 bit de signe, 3 bits pour identifier le segment de la loi de compression et 4 bits pour préciser l'emplacement d'un niveau sur un segment donnée. Une erreur isolée sur le bit de signe d'un échantillon de forte amplitude cause une très nette discontinuité dans le signal décodé, la qualité d'écoute est alors très dégradée. A l'opposé, une erreur isolée sur le bit le moins significatif précisant l'emplacement d'un niveau sur un segment, est pratiquement inaudible. Comme il s'agit d'une quantification de type scalaire la sensibilité vis-à-vis des erreurs binaire augmente donc avec la position des bits altérés. Le bit le moins sensible étant le bit le moins significatif précisant l'emplacement d'un niveau sur un segment et le bit le plus sensible étant le bit le plus significatif indiquant un identifiant de segment. La sensibilité du bit de signe dépend de la valeur absolue de l'échantillon courant codé.
Un autre exemple est donnée par le codage de type CELP. Dans ce cas, le paramètre de pitch (ou période fondamentale) est très sensible aux erreurs binaires. En général ce paramètre est codé par un quantificateur de type scalaire. C'est le cas de la norme ITU-T G.729, où le signal est codé par trames de 10 ms divisées en deux sous-trames. Le pitch T; dans la première sous-trame de 5 ms est codé en absolu sur
8 bits; le pitch T '2 dans la seconde sous-trame de 5 ms est codé en relatif par rapport à T1.
Une erreur binaire inversant le premier bit de l'indice associé à T; peut faire passer la valeur du pitch de Ti = 143 à Ti = 61 2/3 . De plus, T2 sera également mal décodé car sa valeur est nécessairement dans le voisinage du Ti à cause du codage relatif. On voit avec cet exemple qu'un seul bit erroné peut altérer complètement le décodage d'une trame de 10 ms. Une erreur sur un bit représentant l'indice du dictionnaire fixe du codage CELP a en général beaucoup moins d'impact et n'engendre pas de dégradation audible. Dans un codeur par transformée, comme par exemple le codeur normalisé
ITU-T G.722.1, ou le codeur propriétaire TDAC de France Télécom (TDAC pour "Time Domain Aliasing Cancellation" en anglais), les paramètres sont en général associés à deux informations différentes: l'enveloppe spectrale et la "structure fine" du spectre (c'est-à-dire le spectre normalisé par l'enveloppe spectrale). Le spectre cout-terme du signal est typiquement divisé en un certain nombre de sous-bandes et l'enveloppe spectrale est définie comme la valeur efficace (ou r.m.s. en anglais) de chacune des sous-bandes. Cette enveloppe est souvent codée par quantification scalaire suivie d'un codage de Huffman différentiel. Ainsi le premier indice de quantification est codé en absolu, et les autres indices sont codés en différentiel par rapport à la sous-bande précédente. De par la nature récursive de ce codage d'enveloppe, une erreur binaire dans une sous-bande donnée se propage donc sur les sous-bandes suivantes jusqu'à la fin du spectre, et l'enveloppe décodée devient donc "aléatoire" à partir de la sous-bande où l'erreur est survenue. De plus, dans certaines variantes où l'allocation dynamique de bits représentant la structure fine du spectre dépend de l'enveloppe spectrale décodée - ce qui est le cas des codeurs G.722.1 et TDAC -, l'impact des erreurs binaires sur l'enveloppe spectrale se propage aussi sur le décodage de la structure fine, laquelle devient alors aberrante. Les exemples précédents montrent que les différents bits du train binaire nécessitent en général différents niveaux de protection et différentes stratégies de dissimulation d'erreurs binaires.
Dans les systèmes de codage dits "hiérarchiques", encore appelés
"scalables", les données binaires issues de l'opération de codage se répartissent en couches successives. Une couche de base, encore appelée "cœur", est formée des éléments binaires absolument nécessaires au décodage du train binaire, et déterminant une qualité minimum de décodage. Les couches suivantes permettent d'améliorer progressivement la qualité du signal issu de l'opération de décodage, chaque nouvelle couche amenant de nouvelles informations, qui, exploitées par le décodeur, fournissent en sortie un signal de qualité croissante. L'une des particularités des codeurs-décodeurs hiérarchiques est la possibilité d'intervenir à n'importe quel niveau de la chaîne de transmission ou de stockage pour supprimer une partie du train binaire sans devoir fournir d'indication particulière au codeur ni au décodeur. Le décodeur utilise les informations binaires qu'il reçoit et produit un signal de qualité correspondante. Les différentes couches d'éléments binaires sont généralement hiérarchisées
(d'où le nom "hiérarchique"), c'est à dire que si l'on appelle niveau 0 le cœur, puis 1, 2, 3 etc .. les couches suivantes, le décodage de la couche de niveau 3 suppose que sont aussi disponibles les éléments binaires des couches 0, 1 et 2.
Les codeurs hiérarchiques sont particulièrement intéressants dans des contextes de transmission sur réseaux à accès hétérogènes: qu'il s'agisse de réseaux de type IP mélangeant des accès fixes et mobiles, hauts débits (ADSL), bas débits (modems 56k, GPRS) ou faisant intervenir des terminaux de capacités variables (mobiles, PC, ...). Le codage hiérarchique permet en effet d'adapter le débit d'une transmission sans nécessiter de transcodage. On peut citer par exemple l'accès à des bases de contenu audio dans lesquelles les échantillons audio sont enregistrés avec le débit le plus élevé d'un codeur hiérarchique, le débit transmis étant ensuite adapté à la capacité (ou à la qualité de service négociée) du client servi. Une autre application est la conférence audio-vidéo sur accès hétérogène, dans laquelle les terminaux possédant un accès haut débit peuvent communiquer à haut débit même si l'un des terminaux de la conférence ne possède pas cette capacité, ceci sans nécessiter de transcodage.
Le codeur EV-VBR (pour Embedded Variable - Variable Bit Rate) actuellement à l'étude dans la question Q.9/16 de l'UIT-T (période d'étude 2004- 2008) est un exemple de codeur de parole scalable. Ce codeur a un train binaire structuré en 5 couches associées à des débits différents (8, 12, 16, 24 et 32 kbits/s). Une méthode de traitement des erreurs binaires pour EV-VBR est décrite dans le draft de RFC (pour Request For Comments) publié le 12 Novembre 2007 par l'IETF à l'adresse suivante: h btp : / /www . ie bf . orq / inter net-draf bs /dr af ε- lakaniemi-avt-r-εp-evbr-O O . txt . Le format de charge utile (ou "payload" en anglais) proposé dans le document cité est constitué d'un ou plusieurs blocs de transport contenant une ou plusieurs couches et l'entête de chaque bloc de transport contient des bits de protection sous la forme d'un code CRC (pour "Cyclic Redundancy Check" en anglais) pour tous les bits inclus dans le bloc de transport correspondant. Si une erreur est détectée dans un bloc de transport qui contient la couche
Ln, seules les couches inférieures (Ll,...L(n-l)) seront décodées pour la trame donnée. La détection d'un bit erroné dans un bloc de transport entraine donc un même traitement: le rejet du bloc erroné et des blocs supérieurs.
La probabilité d'obtenir un décodage de toutes les couches de la trame est donc très faible avec une telle méthode et cela même avec un taux faible d'erreur binaires.
Ainsi, dans le cas où chaque couche est envoyée dans un bloc de transport différent, 5 codes CRC de 8 bits sont transmis dans la charge utile ce qui donne un débit supplémentaire de 2 kbit/s pour une trame de 20 ms. Même avec un taux d'erreur binaire faible la probabilité de pouvoir décoder le débit maximal est faible.
Par exemple avec un taux d'erreur binaire (BER pour "bit error rate") de 0.1%, le tableau 1 suivant donne la probabilité de pouvoir décoder différentes configurations. Ce tableau prend également en compte les erreurs binaires sur les codes CRC.
Couches 3 décodées Débit décodé Probabilité trame effacée 0 kbit/s 15.5%
Ll 8 kbit/s 7.1%
Ll à L2 12 kbit/s 6.5%
Ll à L3 16 kbit/s 11.0%
Ll à L4 24 kbit/s 9.3%
Ll à L5 32 kbit/s 50.6%
Tableau 1 On voit que même avec un taux d'erreur BER aussi faible que 0.1%, 15.5 % des trames seront considérées comme invalides et un algorithme de dissimilation de trames perdues sera alors appliqué. Avec 15.5% de trames perdues la qualité décodée sera alors très médiocre. Dans le cas où toutes les couches sont dans un même bloc de transport, le débit supplémentaire de code CRC est de seulement 0.4 kbit/s. Par contre avec 0.1% de taux d'erreur binaire, près de la moitié des trames seront considérées comme perdues (49.4%). Avec 49.4% de trames perdues la communication devient impossible. II existe donc un besoin d'amélioration de la qualité du signal décodé en présence d'erreurs binaires. La présente invention vient améliorer la situation. A cet effet, l'invention vise un procédé de traitement d'erreurs binaires dans une trame binaire issue d'un codeur audionumérique, comportant une étape de réception d'une trame binaire courante susceptible de comporter des erreurs binaires. Le procédé de l'invention est tel que la trame binaire comporte des bits sensibles à protéger qui sont répertoriés dans au moins une catégorie selon le type de paramètre qu'ils codent et en ce qu'il comporte en outre les étapes suivantes:
- réception de bits de protection utilisés pour une détection d'erreur sur les bits sensibles à protéger; - lecture des bits sensibles reçus dans la trame binaire courante, le nombre de bits sensibles étant inférieur au nombre de bits de la trame binaire;
- détection d'erreurs binaires en fonction desdits bits de protection reçus et desdits bits sensibles reçus ; et
- en cas de détection d'au moins un bit erroné dans la trame binaire, modification de la trame binaire courante avant décodage, la modification étant fonction de la catégorie dans laquelle le bit erroné est répertorié.
Ainsi, le traitement à appliquer en cas de détection d'erreur binaire dans une trame binaire est adapté au bit erroné. Des traitements différents peuvent alors être mis en œuvre en fonction de la classification des bits sensibles à protéger, la classification dépendant du type de paramètre que ces bits codent. Ceci permet donc de diminuer le nombre de trames rejetées en cas d'erreurs binaires détectées, car seuls les bits sensibles d'un train binaire sont protégés.
La détection de bits erronés ne s'effectuant que sur une partie des bits de la trame binaire et non pas sur tout un bloc de transport comme dans le cas de l'état de l'art, cela permet également d'améliorer la probabilité de pouvoir décoder toutes les couches d'une trame binaire hiérarchique et donc d'améliorer la qualité du signal décodé.
De plus, ce traitement est effectué avant l'opération de décodage proprement dite. Elle peut donc être effectuée en amont du décodeur, par une entité indépendante par exemple. Le décodeur qui reçoit une trame modifiée, n'a pas besoin de savoir s'il y a eu des erreurs binaires et n'a pas besoin de mettre en œuvre des méthodes de dissimulation de trames effacées.
Il est à noter qu'il n'est pas nécessaire ici de placer les bits les plus sensibles en début de trame binaire comme cela peut être le cas par exemple pour profiter du mode de protection prévu par le protocole de transport de type UDP-Lite (pour "User Datagram Protocol") dans les réseaux par paquets de type IP (pour Internet Protocol"). En effet, le protocole UDP-Lite prévoit un code CRC qui protège les bits situés en début de trame binaire.
Ainsi, l'invention permet de protéger également des trames hiérarchiques dont l'ordre des bits est fixé par la propriété hiérarchique, les bits les plus sensibles n'étant alors pas nécessairement en début de trame binaire.
Dans un mode de réalisation préféré les bits de protection sont définis en fonction de la catégorie dans laquelle les bits sensibles à protéger sont répertoriés.
Ainsi, une méthode de protection est adaptée en fonction des paramètres que les bits à protéger codent pour une meilleure adaptation de la méthode de protection au signal.
Dans un mode possible de réalisation, la modification de la trame courante comporte le remplacement des bits de la même catégorie que le bit erroné détecté, par des bits non erronés reçus et mémorisés dans une trame précédente. Ainsi, on peut par exemple exploiter le fait que certains paramètres ont une variation lente comme par exemple, l'énergie ou le pitch (ou période fondamentale) pour remplacer les bits erronés par les bits mémorisés dans une trame précédente.
Dans un mode de réalisation possible, la trame binaire étant constituée de couches représentant des débits différents de codage, la modification de la trame courante comporte une troncature de la trame binaire enlevant les bits correspondants aux couches de débit supérieurs à celle dans laquelle se trouve le bit erroné détecté ainsi que la couche comportant le bit erroné.
Ainsi, dans le cas d'une trame hiérarchique, on ne transmet au décodeur que la trame correspondant à un débit inférieur à celle contenant le bit erroné. Le décodeur n'a pas d'autres traitements à effectuer. On tire partie à la fois de l'aspect hiérarchique de la trame binaire et du fait que les erreurs résiduelles sur les bits non sensibles ont peu d'impact perceptuel.
Dans une variante de réalisation, la modification de la trame courante comporte en outre une étape de modification d'une information de débit dans l'entête de la trame binaire courante.
Le décodeur est ainsi informé directement du débit de décodage qu'il doit appliquer.
Dans un mode de réalisation particulier, la trame binaire est issue d'un codeur hiérarchique de type normalisé G.729.1 dans laquelle les bits à protéger sont répertoriés dans au moins deux catégories, une première catégorie comportant les bits codant l'énergie moyenne de la couche haute du codeur et une deuxième catégorie comportant les bits codant les paramètres de représentation de la transformée (MDCT), et en ce que les bits de protection correspondant à la première catégorie est un bit de parité et les bits de protection correspondant à la deuxième catégorie sont des bits de redondance.
Dans ce cas de figure, en cas de détection d'un bit erroné appartenant à la première catégorie, la modification de la trame courante comporte le remplacement des bits de la première catégorie par des bits non erronés reçus dans une trame précédente et en cas de détection d'un bit erroné appartenant la deuxième catégorie, Ia modification de la trame courante comporte une troncature de la trame binaire enlevant les bits correspondants aux couches de débit supérieurs à celle dans laquelle se trouve le bit erroné détecté ainsi que la couche comportant le bit erroné.
La présente invention vise également, un dispositif de traitement d'erreurs binaires dans une trame binaire issue d'un codeur audionumérique, la trame binaire étant susceptible de comporter des erreurs binaires tel que la trame binaire comporte des bits sensibles à protéger qui sont répertoriés dans au moins une catégorie selon le type de paramètre qu'ils codent. Le dispositif comporte:
- un module de réception de bits de protection utiles pour une détection d'erreur sur les bits sensibles à protéger et d'une trame binaire courante;
- un module de lecture des bits sensibles dans la trame binaire courante;
- un module de détection d'erreurs binaires en fonction desdits bits de protection reçus et desdits bits sensibles de la trame binaire reçue issue du module de réception; et - un module de modification de la trame binaire avant décodage mis en œuvre en cas de détection d'au moins un bit erroné dans la trame binaire par le module de détection, la modification étant fonction de la catégorie dans laquelle le bit erroné est répertorié.
Elle vise aussi un système de codage/décodage d'une trame binaire susceptible de comporter des erreurs binaires, comprenant:
- un codeur apte à coder un signal audionumérique en une trame binaire;
Le système est tel que la trame binaire comporte des bits sensibles à protéger répertoriés dans au moins une catégorie selon le type de paramètre qu'ils codent et qu'il comprend en outre: - un dispositif de protection apte à déterminer des bits de protection adaptés aux bits à protéger en fonction de la catégorie dans laquelle les bits à protéger sont répertoriés;
- un dispositif de traitement des erreurs binaires tel que décrit précédemment; et
- un décodeur apte à décoder la trame binaire modifiée issue du dispositif de traitement des erreurs binaires en signal audionumérique. ElIe vise également dans une variante de réalisation, un décodeur audionumérique comportant un dispositif de traitement des erreurs binaires décrit ci- dessus.
La présente invention vise enfin un programme informatique comportant des instructions de code pour la mise en œuvre des étapes du procédé selon l'invention, lorsque ces instructions sont exécutées par un processeur.
D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée, donnée à titre d'exemple ci-après, et des dessins annexés sur lesquels : - la figure 1 illustre un système de codage/décodage de train binaire comportant un dispositif de traitement d'erreurs binaires selon l'invention;
- la figure 2 illustre un codeur de type G.729.1 délivrant un train binaire hiérarchique susceptible d'être traité selon le procédé de traitement d'erreurs binaires de l'invention; - la figure 3 illustre un décodeur de type G.729.1 susceptible de recevoir un train binaire hiérarchique modifié selon le procédé de traitement d'erreurs binaires de l'invention;
- la figure 4 illustre les étapes du procédé de traitement d'erreurs binaires selon l'invention; et - la figure 5 illustre un exemple de réalisation d'un dispositif de traitement d'erreurs binaires selon l'invention.
La figure 1 illustre un système dans lequel un dispositif de traitement d'erreurs binaires 110 est prévu. Ce système comporte un codeur 10 qui délivre en sortie un train binaire T. Un module de protection 12 récupère le train binaire et lit la valeur des bits sensibles à protéger dans ce train binaire. En fonction des paramètres qu'ils codent, ce dispositif de protection répertorie les bits sensibles à protéger dans différentes catégories. Ces catégories sont fixées en fonction du type de paramètre codé, pour différencier le traitement à effectuer en cas de détection de bits erronés dans une des catégories. Des bits de protection P sont ensuite calculés sur les bits à protéger qui ont été identifiés. Les bits de protection sont déterminés selon une méthode qui peut être différente selon la catégorie dans laquelle le bit à protéger est répertorié. Ainsi, différents niveaux de protection peuvent être prévus selon le classement des bits à protéger.
Ces bits de protection sont ensuite envoyés parallèlement au train binaire. Ils peuvent être envoyés sur le même canal bruité que celui du train binaire, par exemple en étant concaténés dans la charge utile d'un même paquet dans un contexte de communication sur protocole IP. Dans un autre mode de réalisation, le dispositif de protection peut être intégré au codeur 18 et les bits de protection peuvent être intégrés dans le train binaire.
Selon la qualité du canal de transmission, des perturbations peuvent affecter le signal transmis et produire des erreurs (E) sur le train binaire reçu par le décodeur. Ces erreurs peuvent à la fois affecter le train binaire et les bits de protection issus du dispositif de protection.
Un dispositif de traitement des erreurs binaires 110 selon l'invention est prévu dans le système représenté. Ce dispositif comporte un module de réception R référencé 13 recevant à la fois le train binaire T et les bits de protection P.
Le dispositif 110 comporte un module D référencé 14 de détection des erreurs binaires. Ce module vérifie si les bits de protection reçus correspondent à ceux calculés localement sur le train binaire. Ce module détecte ainsi d'éventuelles erreurs binaires sur les bits sensibles.
Si une erreur est détectée, le module 16 modifie le train binaire de telle sorte que l'impact de cette erreur sur la qualité du signal soit réduit. Pour cela, l'action de ce module diffère selon le type de paramètre associé au(x) bit(s) erroné(s) détecté(s) et donc de la catégorie dans laquelle le bit erroné est répertorié.
Ainsi, la trame binaire peut être par exemple modifiée en remplaçant les bits erronés par des bits qui ont été mémorisés en M référencé 15 dans une trame précédente lorsque le module de détection n'a pas détecté d'erreurs binaires. Une autre modification de la trame binaire peut être par exemple une troncature du train binaire dans la trame actuelle. Pour un train binaire de type hiérarchique, cela correspondra par exemple à rejeter les couches de débit supérieur à celle concernée par le bit erroné détecté ainsi que la couche concernée. Ainsi, pour une trame traitée par le dispositif selon l'invention, le décodeur utilisera un débit inférieur à celui reçu.
Le décodeur 17 reçoit alors un train binaire T' modifié. Ainsi, le décodeur décode le train binaire modifié sans être informé de la modification. Dans le cas du second traitement décrit appliqué au train binaire, le décodeur décodera le train binaire avec un débit inférieur à celui initialement prévu dans la trame binaire T.
Dans un autre mode de réalisation, le dispositif de traitement des erreurs binaires peut être intégré au décodeur 19. Le décodeur reçoit alors à la fois le train binaire et les bits de protection soit séparément, soit ensemble.
La présente invention s'applique avantageusement dans le cas d'un système de codage et décodage audio hiérarchique. Dans un mode particulier de réalisation de l'invention, le codeur 10, est un codeur de type normalisé G.729.1.
La figure 2 illustre les principaux éléments d'un codeur hiérarchique de type normalisé ITU-T G.729.1.
Ce codeur hiérarchique a une scalabilité très fine, le train binaire comportant 12 couches. Les débits cumulés correspondants sont de 8, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 et 32 kbit/s.
Le codeur G.729.1 est une extension du codeur normalisé UIT-T G.729. C'est un codeur hiérarchique à cœur G.729 modifié, produisant un signal dont la bande va de la bande étroite (50-4000 Hz) à la bande élargie (50-7000 Hz) à un débit de 8 à 32 kbit/s pour les services conversationnels. Cette norme a été crée notamment pour des applications de voix sur réseau de type IP (pour "Internet Protocole") utilisant le protocole UDP (pour User Datagram Protocol").
Ce codeur est par nature interopérable avec la recommandation G.729, ce qui assure une compatibilité avec les équipements de voix sur IP existants (la plupart étant équipés de G.729). Le signal d'entrée en bande élargie swb , échantillonné à 16 kHz, est d'abord décomposé en 2 sous-bandes par filtrage QMF (pour "Quadrature Mirror Filter"). La bande basse (0-4000 Hz) est obtenue par le filtrage passe-bas LP (bloc 200) et décimation (bloc 201), et la bande haute (4000-8000 Hz) par filtrage passe-haut HP (bloc 202) et décimation (bloc 203). Les filtres LP et HP sont de longueur 64.
La bande basse est prétraitée par un filtre passe-haut éliminant les composantes en dessous de 50 Hz (bloc 204), pour obtenir le signal sLB , avant codage CELP en bande étroite (bloc 205) à 8 et 12 kbit/s. Ce filtrage passe-haut tient compte du fait que la bande élargie est définie comme couvrant l'intervalle 50-7000 Hz. Le codage CELP en bande étroite est un codage CELP en cascade comprenant comme premier étage un codage G.729 modifié sans filtre de prétraitement et comme deuxième étage un dictionnaire CELP fixe supplémentaire.
La bande haute est d'abord prétraitée (bloc 206) pour compenser le repliement dû au filtre passe haut (bloc 202) combiné avec la décimation (bloc 203). La bande haute est ensuite filtrée par un filtre passe-bas (bloc 207) éliminant les composantes entre 3000 et 4000 Hz de la bande haute (c'est-à-dire les composantes entre 7000 et 8000 Hz dans le signal original) pour obtenir le signal sHB . Une extension de bande (bloc 208) est ensuite réalisée. Le signal d'erreur dLB de la bande basse est calculé (bloc 209) à partir de la sortie du codeur CELP (bloc 205) et un codage prédictif par transformée (par exemple de type TDAC pour "Time Domain Aliasing Cancellation", bloc 210) est réalisé. Des paramètres supplémentaires sont transmis par le bloc 211 à un décodeur homologue via le module FEC (pour "Frame Erasure Concealment") en vue de reconstituer d'éventuelles trames effacées.
Le codée G.729.1 a donc une architecture en trois étages de codage comprenant :
- un codage CELP en cascade,
- une extension de bande paramétrique par TDBWE (pour "Time Domain Bandwith Extension") et - un codage prédictif par transformée TDAC appliqué après une transformation de type MDCT( pour "Modified Discrète Cosine Transform" ou "transformation en cosinus discrète modifiée").
Les différents flux binaires générés par les blocs de codage 205, 208, 210 et 211 sont multiplexes et structurés en un train binaire hiérarchique dans le bloc de multiplexage 212. Le codage est réalisé par blocs d'échantillons (ou trames) de 20 ms, soit 320 échantillons par trame.
Ainsi, au débit maximal de 32 kbit/s, le budget de bits par trame est de 640 bits. Comme spécifié dans la norme G.729.1, la couche cœur comprend les paramètres G.729 ; les bits correspondant se trouvent en positions 0-159.
La deuxième couche (bits 160-239) comprend les paramètres additionnels du codage CELP en cascade ainsi que des bits servant à la dissimulation de trames effacées (FEC). Les couches supérieures comprennent des bits FEC et les paramètres des codeurs TDBWE et TDAC. En particulier pour le codeur TDBWE on distingue trois types de paramètres:
- l'enveloppe temporelle moyenne (MU) qui est liée à l'énergie du signal bande haute dans la trame courante (bits 240-244);
- les indices de quantification vectorielle de l'enveloppe temporelle (bits 245-258); et - les indices de quantification vectorielle de l'enveloppe fréquentielle (bits 259-272).
Pour le codeur TDAC on distingue quatre types de paramètres:
- un facteur de normalisation global de la MDCT (N) (bits 285-288);
- l'enveloppe spectrale de la bande haute (RMS2, débit variable, max 41 bits);
- l'enveloppe spectrale de la bande basse (RMSl, débit variable, max 51 bits); et - les indices de quantification vectorielle codant la structure fine.
Ce système de codage/décodage normalisé G729.1 a été conçu et optimisé pour les communications sur liens fixes (non mobiles); il n'est donc pas très robuste aux erreurs binaires et la qualité du signal se dégrade rapidement avec l'augmentation du taux d'erreur binaire. Ainsi, l'invention améliore la qualité du signal décodé en cas de présence d'erreurs binaires par le procédé de traitement d'erreurs binaires décrit en référence à la figure 4 et mis en œuvre par le dispositif de traitement des erreurs binaires décrit en référence à la figure 1. D'autre part, dans ce même mode de réalisation particulier de l'invention, le décodeur 17 est un décodeur de type normalisé G.729.1.
La figure 3 décrit un tel décodeur.
Les bits décrivant chaque trame de 20 ms sont démultiplexés dans le bloc
300. Le flux binaire des couches à 8 et 12 kbit/s est utilisé par le décodeur CELP (bloc 301) pour générer la synthèse en bande étroite (0-4000 Hz). La portion du flux binaire associé à la couche à 14 kbit/s est décodée par le module d'extension de bande (bloc 302). La portion du flux binaire associée aux débits supérieurs à 14 kbit/s est décodée par le module TDAC (bloc 303). Un traitement des pré et post échos est réalisé par les blocs 304 et 307 ainsi qu'un enrichissement (bloc 305) et un post-traitement de la bande basse (bloc 306). Le signal de sortie en bande élargie swb , échantillonné à 16 kHz, est obtenu par l'intermédiaire du banc de filtres QMF de synthèse (blocs 309, 310, 311, 312 et 313) intégrant le repliement inverse (bloc 308).
Lorsque la présente invention s'applique pour un train binaire G.729.1, le dispositif de protection référencé 12 sur la figure 1, détermine dans un premier temps, les bits les plus sensibles du train binaire.
La couche cœur à 8 kbit/s suit le format G.729. Ce format est considéré comme peu sensible aux erreurs binaires.
En effet, dans le cas du codeur normalisé G.729, la protection des bits les plus sensibles est intégrée dans le train binaire. Un bit de parité est calculé sur les 6 bits les plus significatifs (MSB) de l'indice codant en absolu le pitch (ou période fondamentale) Ti de la première sous-trame de 5 ms. Ce bit de parité fait partie du train binaire.
Pour la seconde sous-trame de 5 ms, le pitch T2 est encodé en relatif, dans le voisinage de la valeur du pitch de la première sous-trame T1. Ti pour les valeurs < 86 et T2 ont une résolution de V3. Le décodeur calcule la parité des 6 bits MSB de l'indice reçu du paramètre Ti et si celle-ci ne correspond pas à la valeur du bit de parité reçu, une procédure de dissimilation est appliquée : la partie entière du pitch T2 de la trame précédente est utilisée à la place de la valeur erronée pour Ti de la trame courante. D'autres précautions ont été également prises pour rendre les codeurs/décodeurs G.729 robustes vis-à-vis des erreurs binaires. Par exemple l'enveloppe LPC (pour "Linear Prédictive Coding") est quantifiée dans le domaine des paires de raies spectrales (LSF) par quantification multi-étages. De plus, les gains des dictionnaires CELP sont codés par quantification à structure conjuguée (ou "conjugate structure" en anglais) qui est intrinsèquement robuste aux erreurs binaires et assure qu'en cas d'erreur, les valeurs décodées sont proches des valeurs envoyées, ce qui limite l'impact d'une erreur binaire sur la qualité perçue.
La couche supplémentaire du codeur G.729.1 amenant le débit à 12 kbit/s est également peu sensible aux erreurs binaires car elle ne fait qu'enrichir l'excitation du codeur G.729 en ajoutant un dictionnaire fixe, dont les paramètres sont peu sensibles aux erreurs binaires.
Pour les paramètres associés aux codeurs TDBWE et TDAC décrits précédemment, on identifie un certain nombre de bits sensibles dans les couches amenant un débit de 14, 16 et 18 kbit/s. On détermine ainsi comme bits sensibles 5 bits (positions 240 à 244 du train binaire) représentant l'énergie de la bande haute du codeur TDBWE et au plus 56 bits (positions 285 à 340 du train binaire) représentant le facteur de normalisation de la transformée MDCT (4 bits) et l'enveloppe spectrale de la couche transformée MDCT (nombre variable de bits par trame compris entre 48 et 82 bits). L'enveloppe spectrale étant codée par des codes à longueur variable, il faut entre 44 et 92 bits pour coder l'enveloppe spectrale du codeur TDAC. Néanmoins protéger toujours 92 bits qui correspond au pire cas n'est pas un bon choix car ce cas arrive très rarement et en moyenne on consomme moins de bits pour décrire l'enveloppe spectrale, ainsi le plus souvent on protégerait des bits qui n'ont pas besoin de protection. De manière empirique on a déterminé que protéger 56 bits donne un résultat satisfaisant. Bien sûr des valeurs voisines (par exemple 50, 51, 52, 54, 56, 59, 62, ...) peuvent être envisagées et donneront des résultats très similaires.
Dans les couches supérieures, une erreur binaire sur les bits représentant la structure fine du spectre est généralement bien tolérée. Ainsi, dans un mode de réalisation particulier de l'invention, les bits les plus sensibles ainsi identifiés sont classés dans différentes catégories en fonction des paramètres qu'ils codent et de l'action préconisée en réception lors de la détection d'une erreur sur un des bits ainsi classé.
Ainsi les 5 bits codant dans l'étage de codage TDBWE, l'énergie moyenne de la bande haute, sont protégés par un bit de parité. Si la parité est vérifiée dans le dispositif représenté en figure 1 , de traitement des erreurs binaires selon l'invention, le dispositif 110 transmet ces 5 bits au décodeur 17 sans modification de train binaire. Il mémorise également en 15, ces 5 bits pour un traitement éventuel ultérieur. En cas de détection d'une erreur binaire dans le module de détection 14, les
5 bits reçus sont remplacés par les 5 bits mémorisés d'une trame précédente, dans le module de modification de la trame binaire 16. Le dispositif 110 fournit alors au décodeur 17, une trame binaire T' modifiée.
Pour ce groupe de bits sensibles, l'action n'est donc pas de rejeter la couche concernée (couche 14 kbit/s) et toutes les couches supérieures mais de remplacer les bits erronés par les bits mémorisés. Comme l'énergie moyenne du signal en bande haute évolue la plupart du temps lentement cette solution donne un bon résultat. Ce groupe de bits sensibles est ainsi répertorié dans une première catégorie pour laquelle le traitement sus décrit est appliqué en cas de détection d'un bit erroné de cette catégorie.
Les 56 bits sensibles de la couche TDAC (facteur de normalisation MDCT + enveloppe spectrale) sont selon l'invention, protégés par un code CRC (pour Cyclic Redundancy Check) de 7 bits. Ce code CRC peut être bien évidemment de longueur différente selon le niveau de protection voulu. Un code CRC de 4 bits est par exemple envisageable. On peut par exemple utiliser le polynôme générateur 0Xb7 = D8+D6+D5+ D3+ D2+D+l tel que décrit dans l'article "Cyclic Redundancy Code (CRC) Polynomial Sélection for Embedded Networks" de P. Koopman et T. Chakravarty, The Int. Conf on Dependable Systems and Networks (DSN), 2004. Ce polynôme permet de détecter toutes les erreurs de 1, 2, 3, 5 et 7 bits et plus de 98% des erreurs de 4 et 6 bits.
Les 56 bits sensibles appartiennent ainsi à une seconde catégorie pour laquelle, en cas de détection d'une (ou de plusieurs) erreur(s) dans les bits de cette catégorie, on utilise la propriété hiérarchique du train binaire G.729.1 en appliquant une troncature. Ainsi, le dispositif 110 selon l'invention, fournit au décodeur 17, une trame modifiée, correspondant à une trame d'un débit de 14 kbit/s.
Comme mentionné précédemment, une erreur binaire dans l'enveloppe spectrale des coefficients TDAC se propage jusqu'au bout du spectre. Cette erreur binaire provoque également une allocation de bit erronée pour la représentation de la structure fine. Pour éviter cela, le traitement à appliquer est donc un rejet de toute la partie du train binaire associé au codeur TDAC. Pour les trames concernées la sortie sera celle obtenue en décodant le train binaire à 14 kbit/s.
Les bits de protection calculés dans le dispositif de protection 12 sont donc au nombre de 1+7=8 bits de protection pour chaque trame de 20 ms. Cela augmente le débit binaire de 0.4 kbit/s. Si le décodeur ne reçoit que les couches 8 et 12 kbit/s, aucune protection n'est appliquée. S'il reçoit également la couche à 14 kbit/s, le bit de parité est vérifié dans le dispositif 110 sur les 5 bits de l'énergie de la trame binaire reçue.
Si le débit reçu est de 16 kbit/s, il n'y a aucun moyen de vérifier si la couche à un débit de 16 kbit/s est sans erreur car le code CRC de 7 bits est calculé conjointement sur les bits des couches 16 et 18 kbit/s. Ainsi, dans les canaux où il y a un risque d'avoir des erreurs binaires il vaut mieux ne pas utiliser le débit de 16 kbit/s.
A partir de 18 kbit/s la validité de l'enveloppe spectrale de la couche TDAC peut être vérifiée. Ainsi dans ce mode de réalisation, le dispositif de protection 12 calcule les 8 bits de protection du coté encodage pour chaque trames de 20 ms à partir du train binaire T G.729.1. Les 8 bits (bit de parité + CRC de 7 bits) obtenus constituant les bits de protection P, sont envoyés au dispositif de traitement 110 de l'invention. Ces bits de protection peuvent être envoyés sur le même canal bruité (dans le même paquet) que celui du train binaire ou sur un autre canal.
Le dispositif de traitement des erreurs binaires selon l'invention reçoit à la fois la trame binaire T et les 8 bits de protection. Le module de détection D recalcule les 8 bits de redondance sur la trame binaire reçue et les compare avec les 8 bits de protection reçus .
Si le bit de parité sur les 5 bits de l'énergie de la couche de 14 kbit/s est correct, les 5 bits sont mémorisés en mémoire 15. Dans le cas contraire, le module de modification de la trame binaire remplace les 5 bits erronées par les 5 bits mémorisés précédemment dans la trame binaire. Le décodeur G.729.1 17 ne sera pas informé de ce changement, il décode la trame binaire T' modifiée comme une trame valide.
Si le module de détection 14 du dispositif 110, détecte un bit erroné en fonction du code CRC de 7 bits reçus et des bits correspondants dans la trame binaire reçus, l'erreur correspond alors à une erreur dans l'enveloppe spectrale TDAC. Le module de modification du train binaire supprime alors tous les bits correspondant à l'étage de codage TDAC. La trame binaire ainsi modifiée T' est alors transmise au décodeur 17.
Dans le cas où le module de détection détecte à la fois des bits erronés de la première catégorie et des bits erronés de la deuxième catégorie, la modification de la trame binaire s'effectue à la fois par remplacement des bits erronés de la première catégorie par des bits non erronés mémorisés d'une trame précédente et par troncature de la trame binaire enlevant les bits correspondants aux couches de débit supérieurs à celle dans laquelle se trouve le bit erroné détecté de la deuxième catégorie ainsi que la couche comportant le bit erroné.
D'autres types de traitement peuvent être envisagés pour un train binaire de type G.729.1. La modification du train binaire peut par exemple être effectuée en "volant" un bit dans la couche à 14 kbit/s (bit LSB de pitch FEC) et 7 bits dans la couche à 16 kbit/s (à enlever du budget de bits du codeur TDAC) - à noter aussi qu'on pourrait se passer des bits du facteur de normalisation MDCT en utilisant des astuces de calcul d'estimation de ce facteur comme dans la norme G.722.1, ce qui revient à ne voler que 3 bits. On peut également utiliser un code CRC de 4 bits et utiliser uniquement l'emplacement de bits de facteur de normalisation, sans voler de bits supplémentaires.
Selon le système utilisé, le décodeur G.729.1 peut obtenir l'information du débit à décoder soit à partir du nombre de bits reçus soit cette information est donnée dans une entête. Dans ce second cas, quand une erreur est détectée dans les couches TDAC le module de modification de la trame binaire 16 modifie également l'entête pour indiquer au décodeur que le débit à décoder pour la trame donnée est de 14 kbit/s. Même dans ce cas, le décodeur 17 n'est pas informé de la présence d'un dispositif de traitement 110. Seul le changement de débit lui est indiqué. Le changement de débit peut être provoqué par tout autre élément de transmission que des erreurs binaires.
Ainsi, il n'est pas nécessaire de modifier les codeurs ou décodeurs G729.1 existants pour mettre en œuvre l'invention. Il suffit de rajouter un dispositif de protection 12 tel que décrit précédemment et un dispositif de traitement des erreurs binaires 110 tel que décrit ci-dessus sur le chemin entre le codeur G729.1 et le décodeur G.729.1 dans un système de codage/décodage.
Le tableau 2 ci-dessous montre le même type de statistiques que celles faites en relation avec la méthode de traitement des erreurs binaires du document de l'état de l'art cité, mais cette-fois avec la méthode de l'invention appliquée à un système G.729.1.
Couches décodées Débit décodé Probabilité trame effacée 0 kbit / s 0 %
L 1 -L3 1 4 kbit / s 5 . 4 %
L 1 -L 12 32 kbit / s 94 . 5 %
Tableau 2 On peut voir qu'au même débit de 32 kbit/s et qu'au même taux d'erreur binaire (BER = 0.1%), la probabilité de décoder les différentes couches est augmentée. Le taux de trames perdues est de 0%, ce qui augmente la qualité du signal décodé. Ce mode de réalisation particulier décrit ici offre une complexité réduite sur les dispositifs de protection et de traitement des erreurs binaires. Cette complexité peut se mesurer en utilisant la bibliothèque STL2005 de la norme UIT-T G.191 Annexe A. La demanderesse a constaté que le pire cas de complexité observé était de 0.063 WMOPS (pour "Weighted Million Opérations Per Second") pour le dispositif de protection et de 0.067 WMOPS pour le dispositif de traitement des erreurs binaires.
Dans l'exemple décrit le dispositif de protection 12 et le dispositif de traitement des erreurs binaires 110 sont à l'extérieur du codeur 10 et du décodeur 17 et les bits de protection ne sont pas inclus dans le train binaire. Dans une variante de réalisation, on peut intégrer ces modules dans le codeur et décodeur dès la conception du système de codage/décodage, et les bits de protection peuvent alors faire partie du train binaire.
La figure 4 illustre de façon générale les étapes principales du procédé de traitement des erreurs binaires selon l'invention.
Ces étapes sont mises en œuvre par le dispositif de traitement 110 décrit en référence à la figure 1.
L'étape E41 est une étape de réception à la fois d'une trame binaire et de bits de protection. La trame binaire comprend des bits à protéger répertoriés dans au moins une catégorie selon les paramètres qu'ils codent. Les bits de protection sont calculés pour les bits à protéger de la trame binaire et selon leur catégorie.
A noter que les bits de protection sont utilisés uniquement pour la détection d'erreurs sur les bits sensibles. Ils ne comportent pas d'informations permettant d'effectuer la modification de la trame courante après détection d'erreurs. L'étape E42 consiste à lire les bits sensibles reçus dans la trame binaire courante et à détecter les erreurs binaires dans la trame binaire reçue en fonction des bits de protection reçus et des bits sensibles reçus.
Le nombre de bits sensibles est inférieur au nombre de bits de la trame binaire.
En cas de non détection d'erreurs binaires (étape E42 négative), une étape de mémorisation (E46) des bits correspondants de la trame binaire peut être effectuée, en fonction de la méthode de protection appliquée aux bits à protéger.
En cas de détection d'erreurs binaires à l'étape E42, une étape E43 de modification de la trame binaire reçue est effectuée. Cette modification est effectuée en fonction de la catégorie dans laquelle le bit erroné est répertorié.
Une étape (E44) de transmission au décodeur de la trame modifiée est ensuite effectuée.
La trame binaire ainsi traitée est modifiée et non pas perdue en intégralité. La figure 5 décrit un mode de réalisation particulier du dispositif de traitement des erreurs binaires selon l'invention. Matériellement, ce dispositif 110 comporte typiquement un processeur μP coopérant avec un bloc mémoire BM incluant une mémoire de stockage et/ou de travail, ainsi que la mémoire MEM précitée en tant que moyen pour enregistrer des bits ne comportant pas d'erreurs binaires. Le bloc mémoire peut avantageusement comporter un programme informatique comportant des instructions de code pour la mise en œuvre des étapes du procédé au sens de l'invention, lorsque ces instructions sont exécutées par un processeur μP du dispositif 110 et notamment une première étape de réception d'une trame binaire comportant des bits à protéger répertoriés dans au moins une catégorie selon les paramètres qu'ils codent et de bits de protection, une deuxième étape de lecture des bits sensibles reçus dans la trame binaire courante, une troisième étape de détection d'erreurs binaires en fonction des bits de protection et des bits sensibles reçus, et une quatrième étape effectuée en cas de détection d'au moins un bit erroné dans la trame binaire de modification de la trame binaire en fonction de la catégorie dans laquelle le bit erroné détecté est répertorié. Typiquement, la figure 4 peut illustrer un organigramme représentant l'algorithme d'un tel programme informatique.
Le programme informatique peut également être stocké sur un support mémoire lisible par un lecteur du dispositif ou téléchargeable dans l'espace mémoire du dispositif 110.
Ce dispositif 110 selon l'invention peut être indépendant ou intégré dans un décodeur de signal audionumérique tel qu'un décodeur hiérarchique de type G.729.1 par exemple.
La présente invention a été décrite avec deux types de traitement possibles suite à la détection d'une erreur binaire. Il est tout à fait possible d'effectuer d'autres traitements en fonction de la catégorie dans laquelle le bit erroné détecté est répertorié. On peut par exemple effectuer un traitement consistant à décoder et mémoriser les paramètres bien reçus et en cas de détection d'une erreur sur les bits de ce paramètre prédire sa valeur en fonction des valeurs mémorisées, coder cette valeur prédite et remplacer les bits erronées par les bits ainsi obtenus.
De ce fait, les bits sensibles à protéger peuvent être classés en plus de deux catégories.
De même, la présente invention peut s'appliquer à d'autres types de codeurs scalables que celui décrit dans le mode particulier de réalisation. L'invention peut en effet s'appliquer dans le cas de trame hiérarchique issue d'un codeur de type EV-VBR. Les bits sensibles de ce train binaire sont alors différents de ceux décrits pour la trame binaire G729.1, car les paramètres codés sont issus d'un modèle de codage différent. Les bits sensibles dans l'EV-VBR peuvent être identifiés sur des bases statistiques et/ou expérimentales. Le codeur sélectionné pour servir de base au développement du standard EV-
VBR est décrit dans le document UIT-T WP3/16, " Extended High-level description of the Nokia/VoiceAge candidate for EV-VBR Codée," Avril 2007 (Source: Nokia, VoiceAge Corp.). Ainsi, dans le cas d'une trame EV-VBR, on peut par exemple différencier les bits codant les gains MDCT ("MDCT gains") de ceux codant les coefficients MDCT proprement dit ("MDCT coef") et appliquer dans le premier cas un traitement de type remplacement par des bits mémorisés et dans le deuxième cas, un traitement de type troncature de la trame binaire.
Le nombre de bits sensibles à protéger est variable d'un codeur à l'autre ainsi que le calcul des bits de protection adaptés. L'invention s'applique dans tous ces cas de figure.

Claims

REVENDICATIONS
1. Procédé de traitement d'erreurs binaires dans une trame binaire issue d'un codeur audionumérique, comportant une étape de réception d'une trame binaire courante susceptible de comporter des erreurs binaires, caractérisé en ce que la trame binaire comporte des bits sensibles à protéger qui sont répertoriés dans au moins une catégorie selon le type de paramètre qu'ils codent et en ce que le procédé comporte en outre les étapes suivantes:
- réception de bits de protection utilisés pour une détection d'erreur sur les bits sensibles à protéger;
- lecture des bits sensibles reçus dans la trame binaire courante, le nombre de bits sensibles étant inférieur au nombre de bits de la trame binaire;
- détection d'erreurs binaires en fonction desdits bits de protection reçus et desdits bits sensibles reçus ; et - en cas de détection d'au moins un bit erroné dans la trame binaire, modification de la trame binaire courante avant décodage, la modification étant fonction de la catégorie dans laquelle le bit erroné est répertorié.
2. Procédé selon la revendication 1, caractérisé en ce que les bits de protection sont définis en fonction de la catégorie dans laquelle les bits sensibles à protéger sont répertoriés.
3. Procédé selon la revendication 1 , caractérisé en ce que la modification de la trame courante comporte le remplacement des bits de la même catégorie que le bit erroné détecté, par des bits non erronés reçus et mémorisés dans une trame précédente.
4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que la trame binaire étant constituée de couches représentant des débits différents de codage, la modification de la trame courante comporte une troncature de la trame binaire enlevant les bits correspondants aux couches de débit supérieurs à celle dans laquelle se trouve le bit erroné détecté ainsi que la couche comportant le bit erroné.
5. Procédé selon la revendication 4, caractérisé en ce que la modification de la trame courante comporte en outre une étape de modification d'une information de débit dans l'entête de la trame binaire courante.
6. Procédé selon l'une des revendications 1 à 5, caractérisé en ce que la trame binaire est issue d'un codeur hiérarchique de type normalisé G.729.1 dans laquelle les bits à protéger sont répertoriés dans au moins deux catégories, une première catégorie comportant les bits codant l'énergie moyenne de la couche haute du codeur et une deuxième catégorie comportant les bits codant les paramètres de représentation de la transformée (MDCT), et en ce que les bits de protection correspondant à la première catégorie est un bit de parité et les bits de protection correspondant à la deuxième catégorie sont des bits de redondance.
7. Procédé selon la revendication 6, caractérisé en ce qu'en cas de détection d'un bit erroné appartenant à la première catégorie, la modification de la trame courante comporte le remplacement des bits de la première catégorie par des bits non erronés reçus dans une trame précédente et en ce qu'en cas de détection d'un bit erroné appartenant la deuxième catégorie, la modification de la trame courante comporte une troncature de la trame binaire enlevant les bits correspondants aux couches de débit supérieurs à celle dans laquelle se trouve le bit erroné détecté ainsi que la couche comportant le bit erroné.
8. Dispositif de traitement d'erreurs binaires dans une trame binaire issue d'un codeur audionumérique, la trame binaire étant susceptible de comporter des erreurs binaires, caractérisé en ce que la trame binaire comporte des bits sensibles à protéger qui sont répertoriés dans au moins une catégorie selon le type de paramètre qu'ils codent et en ce que le dispositif comporte: - un module de réception de bits de protection utiles pour une détection d'erreur sur les bits sensibles à protéger et d'une trame binaire courante;
- un module de lecture des bits sensibles dans la trame binaire courante;
- un module de détection d'erreurs binaires en fonction desdits bits de protection reçus et desdits bits sensibles de la trame binaire reçue issue du module de réception; et
- un module de modification de la trame binaire avant décodage mis en œuvre en cas de détection d'au moins un bit erroné dans la trame binaire par le module de détection, la modification étant fonction de la catégorie dans laquelle le bit erroné est répertorié.
9. Système de codage/décodage d'une trame binaire susceptible de comporter des erreurs binaires, comprenant:
- un codeur apte à coder un signal audionumérique en une trame binaire; caractérisé en ce que la trame binaire comporte des bits sensibles à protéger répertoriés dans au moins une catégorie selon le type de paramètre qu'ils codent et en ce que le système comprend en outre:
- un dispositif de protection apte à déterminer des bits de protection adaptés aux bits à protéger en fonction de la catégorie dans laquelle les bits à protéger sont répertoriés;
- un dispositif de traitement des erreurs binaires conforme à la revendication 8; et
- un décodeur apte à décoder la trame binaire modifiée issue du dispositif de traitement des erreurs binaires en signal audionumérique.
10. Décodeur audionumérique comportant un dispositif de traitement des erreurs binaires conforme à la revendication 8.
11. Programme informatique comportant des instructions de code pour la mise en œuvre des étapes du procédé selon l'une des revendications 1 à 7, lorsque ces instructions sont exécutées par un processeur.
EP08864421A 2007-12-10 2008-12-10 Traitement d'erreurs binaires dans une trame binaire audionumerique Ceased EP2232833A2 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0759694 2007-12-10
PCT/FR2008/052259 WO2009080982A2 (fr) 2007-12-10 2008-12-10 Traitement d'erreurs binaires dans une trame binaire audionumerique

Publications (1)

Publication Number Publication Date
EP2232833A2 true EP2232833A2 (fr) 2010-09-29

Family

ID=39638687

Family Applications (1)

Application Number Title Priority Date Filing Date
EP08864421A Ceased EP2232833A2 (fr) 2007-12-10 2008-12-10 Traitement d'erreurs binaires dans une trame binaire audionumerique

Country Status (5)

Country Link
US (1) US8418032B2 (fr)
EP (1) EP2232833A2 (fr)
KR (1) KR101563555B1 (fr)
CN (1) CN101939974B (fr)
WO (1) WO2009080982A2 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10361721B1 (en) * 2014-05-01 2019-07-23 Marvell International Ltd. Methods and network device for uncoded bit protection in 10GBASE-T Ethernet

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0936772A2 (fr) * 1998-02-11 1999-08-18 Lucent Technologies Inc. Protection à niveaux inégaux pour codeur perceptuel de signaux audio
EP1018815A2 (fr) * 1999-01-05 2000-07-12 Lucent Technologies Inc. Protection à niveaux inégaux de programme multiples pour radiodiffusion numérique et autres applications
US20060282748A1 (en) * 2002-01-16 2006-12-14 Bader Carl V System and method for transmitting audio or video data using multiple levels of protection

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4771463A (en) * 1986-12-05 1988-09-13 Siemens Transmission Systems, Inc. Digital scrambling without error multiplication
US5519719A (en) * 1991-12-19 1996-05-21 Adc Telecommunications, Inc. Universal pattern generator
US5627835A (en) * 1995-04-04 1997-05-06 Oki Telecom Artificial window size interrupt reduction system for CDMA receiver
DE19605418B4 (de) * 1996-02-14 2014-11-20 Ipcom Gmbh & Co. Kg Verfahren zur Aufbereitung von Daten, insbesondere für die Übertragung mit veränderlicher Kanalbitrate
SE522261C2 (sv) * 2000-05-10 2004-01-27 Global Ip Sound Ab Kodning och avkodning av en digital signal
KR100908117B1 (ko) * 2002-12-16 2009-07-16 삼성전자주식회사 비트율 조절가능한 오디오 부호화 방법, 복호화 방법,부호화 장치 및 복호화 장치
US7643558B2 (en) * 2003-03-24 2010-01-05 Qualcomm Incorporated Method, apparatus, and system for encoding and decoding side information for multimedia transmission

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0936772A2 (fr) * 1998-02-11 1999-08-18 Lucent Technologies Inc. Protection à niveaux inégaux pour codeur perceptuel de signaux audio
EP1018815A2 (fr) * 1999-01-05 2000-07-12 Lucent Technologies Inc. Protection à niveaux inégaux de programme multiples pour radiodiffusion numérique et autres applications
US20060282748A1 (en) * 2002-01-16 2006-12-14 Bader Carl V System and method for transmitting audio or video data using multiple levels of protection

Also Published As

Publication number Publication date
WO2009080982A2 (fr) 2009-07-02
WO2009080982A3 (fr) 2010-07-15
KR20100112128A (ko) 2010-10-18
CN101939974B (zh) 2014-08-13
CN101939974A (zh) 2011-01-05
US8418032B2 (en) 2013-04-09
KR101563555B1 (ko) 2015-10-27
US20100306629A1 (en) 2010-12-02

Similar Documents

Publication Publication Date Title
EP2277172B1 (fr) Dissimulation d&#39;erreur de transmission dans un signal audionumerique dans une structure de decodage hierarchique
EP1907812B1 (fr) Procede de commutation de debit en decodage audio scalable en debit et largeur de bande
EP1316087B1 (fr) Dissimulation d&#39;erreurs de transmission dans un signal audio
EP2176861B1 (fr) Codage hierarchique de signaux audionumeriques
EP2586133B1 (fr) Contrôle d&#39;une boucle de rétroaction de mise en forme de bruit dans un codeur de signal audionumérique
EP2080195A1 (fr) Synthèse de blocs perdus d&#39;un signal audionumérique, avec correction de période de pitch
EP1905010A2 (fr) Dispositif de codage/decodage hierarchique
FR2938688A1 (fr) Codage avec mise en forme du bruit dans un codeur hierarchique
EP1051703A1 (fr) Procede decodage d&#39;un signal audio avec correction des erreurs de transmission
EP2452336A1 (fr) Codage/décodage perfectionne de signaux audionumériques
EP2080194B1 (fr) Attenuation du survoisement, notamment pour la generation d&#39;une excitation aupres d&#39;un decodeur, en absence d&#39;information
Kovesi et al. A scalable speech and audio coding scheme with continuous bitrate flexibility
EP2005424A2 (fr) Procede de post-traitement d&#39;un signal dans un decodeur audio
EP2347411A1 (fr) Attenuation de pre-echos dans un signal audionumerique
EP2203915B1 (fr) Dissimulation d&#39;erreur de transmission dans un signal numerique avec repartition de la complexite
EP2652735B1 (fr) Codage perfectionne d&#39;un etage d&#39;amelioration dans un codeur hierarchique
EP2232833A2 (fr) Traitement d&#39;erreurs binaires dans une trame binaire audionumerique
FR2997250A1 (fr) Detection d&#39;une bande de frequence predeterminee dans un contenu audio code par sous-bandes selon un codage de type modulation par impulsions
FR3007184A1 (fr) Controle du traitement d&#39;attenuation d&#39;un bruit de quantification introduit par un codage en compresssion

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20100702

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MT NL NO PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA MK RS

RIC1 Information provided on ipc code assigned before grant

Ipc: H04M 1/253 20060101AFI20100914BHEP

DAX Request for extension of the european patent (deleted)
RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: ORANGE

17Q First examination report despatched

Effective date: 20170719

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20190711