This invention relates to the reception of digital audio signals and, in particular, to a system and method for concealment of transmission errors occurring in digital audio streaming applications.
The transmission of audio signals in compressed digital packet formats, such as MP3, has revolutionized the process of music distribution. Recent developments in this field have made possible the reception of streaming digital audio with handheld network communication devices, for example. However, with the increase in network traffic, there is often a loss of audio packets because of either congestion or excessive delay in the packet network, such as may occur in a best-effort based IP network.
Under severe conditions, for example, errors resulting from burst packet loss may occur which are beyond the capability of a conventional channel-coding correction method, particularly in wireless networks such as GSM, WCDMA or BLUETOOTH. Under such conditions, sound quality may be improved by the application of an error-concealment algorithm. Error concealment is an important process used to improve the quality of service (QoS) when a compressed audio bit stream is transmitted over an error-prone channel, such as found in mobile network communications and in digital audio broadcasts.
Perceptual audio codecs, such as MPEG-1 Layer III Audio Coding (MP3), as specified in the International Standard ISO/IEC 11172-3 entitled “Information technology of moving pictures and associated audio for digital storage media at up to about 1,5 Mbits/s—Part 3: Audio,” and MPEG-2/4 Advanced Audio Coding (AAC), use frame-wise compression of audio signals, the resulting compressed bit stream then being transmitted over the audio packet network.
One method of decoding and segment-oriented error concealment, as applied to MPEG1 Layer II audio bitstreams, is disclosed in international patent publication WO98/13965. In the reference, decoding is carried out in stages so that the correctness of the current frame is examined and possible errors are concealed using corresponding data of other frames in the window. Detection of errors is based on the allowed values of bit combinations in certain parts of the frame. For an MP3 transmission, the frame length refers to the audio coding frame length, or 576 pulse code modulation (PCM) samples for a frame in one channel. The frame length is approximately thirteen msec for a sampling rate of 44.1 KHz.
Conventional error detection and concealment systems operate with the assumption that the audio signals are stationary. Thus, if the lost or distorted portion of the audio signal includes a short transient signal, such as a ‘beat,’ the conventional system will not be able to recover the signal.
What is needed is an audio data decoding and error concealment system and method which can mitigate the degradation of the audio quality when packet losses occur.
It is an object of the present invention to provide such an audio error concealment system and method which can detect audio transmission errors, and effectively conceal missing or corrupted audio data segments without perceptible distortion to a listener.
It is a further object of the present invention to provide such a method and system audio reception in which the error concealment process uses control input from an enhanced frame error detection and a compressed domain beat detection.
It is a further object of the present invention to provide such a system and method which can recover short, transient signals when lost or distorted.
It is a further object of the present invention to provide a method and device suitable for audio reception in which the process of error concealment utilizes audio frame error detection and replacement.
It is yet another object of the present invention to provide such a device and method in which audio error detection and error concealment resources are efficiently used.
It is another object of the present invention to provide such a device which includes a decoder having enhanced audio frame error detection capability.
It is also an object of the present invention to provide a communication network system incorporating such a device and method in which error concealment is effected by frame replacement of the distorted or corrupted audio data.
Other objects of the invention will be obvious, in part, and, in part, will become apparent when reading the detailed description to follow.
The present invention results from the observations that an audio stream may not be stationary, that a music stream typically exhibits beat characteristics which do remain fairly constant as the music stream continues, and that a segment of audio data lost from one defined interval can be replaced by a corresponding segment of audio data from a corresponding preceding interval. By exploiting the beat pattern of music signals, error concealment performance can be significantly improved, especially in the case of long burst packet loss. The disclosed method, which can be advantageously incorporated into various audio decoding systems, is applicable to digital audio streaming, broadcasting via wireless channels, and downloading audio files for real-time decoding and conversion to audio signals suitable for output to a loudspeaker of an audio device or a digital receiver.
The invention description below refers to the accompanying drawings, of which:
EMBODIMENT There is shown in
The audio bit stream 12 is input to a frame decoder 21 where frame decoding (i.e., frame unpacking) is performed to recover an audio information data signal 13. The audio information data signal 13 is sent to a circular FIFO buffer 50, and a buffer output data signal 14 is returned, as explained in greater detail below. The buffer output data signal 14 is provided to a reconstruction section 23 which outputs a reconstructed audio data signal 15 to an inverse mapping section 25. The inverse mapping section 25 converts the reconstructed audio data signal 15 into a pulse code modulation (PCM) output signal 16.
As noted above, the audio data 11 may have contained errors resulting from missing or corrupted data. When an audio data error is detected by the channel decoder 41, a data error signal 17 is sent to a frame error indicator 45. When a bitstream error found in the frame decoder 21 is detected by a CRC checker 43, a bitstream error signal 18 is sent to the frame error indicator 45. The audio decoder system 10 of the present invention functions to conceal these errors so as to mitigate possible degradation of audio quality in the PCM output signal 16.
Error information 19 is provided by the frame error indicator 45 to a frame replacement decision unit 47. The frame replacement decision unit 47 functions in conjunction with the beat detector 30 to replace corrupted or missing audio frames with one or more error-free audio frames provided to the reconstruction section 23 from the circular FIFO buffer 50. The beat detector 30 identifies and locates the presence of beats in the audio data using a variance beat detector section 31 and a window-type detector section 33, as described in greater detail below. The outputs from the variance beat detector section 31 and from the window-type detector section 33 are provided to an inter-beat interval detector 35 which outputs a signal to the frame replacement decision unit 47.
This process of error concealment can be explained with reference to the flow diagram 100 of FIG. 2. For purpose of illustration, the operation of the audio decoder system 10 is described using MP3-encoded audio data but it should be understood that the invention is not limited to MP3 coding and can be applied to other audio transmission protocols as well. In the flow diagram 100, the frame decoder 21 receives the audio bit stream 12 and reads the header information (i.e., the first thirty two bits) of the current audio frame, at step 101. Information providing sampling frequency is used to select a scale factor band table. The side information is extracted from the audio bit stream 12, at step 103, and stored for use during the decoding of the associated audio frame. Table select information is obtained to select the appropriate Huffman decoder table. The scale factors are decoded, at step 105, and provided to the CRC checker 43 along with the header information read in step 101 and the side information extracted in step 103.
As the audio bitstream 12 is being unpacked, the audio information data signal 13 is provided to the circular FIFO buffer 50, at step 107, and the buffer output data 14 is returned to the reconstruction section 23, at step 109. As explained below, the buffer output data 14 includes the original, error-free audio frames unpacked by the frame decoder 21 and replacement frames for the frames which have been identified as missing or corrupted. The buffer output data 14 is subjected to Huffman decoding, at step 111, and the decoded data spectrum is requantized using a 4/3 power law, at step 113, and reordered into sub-band order, at step 115. If applicable, joint stereo processing is performed, at step 117. Alias reduction is performed, at step 119, to preprocess the frequency lines before being inputted to a synthesis filter bank. Following alias reduction, the reconstructed audio data signal 15 is sent to the inverse mapping section 25 and also provided to the variance detector 31 in the beat detector 30.
In the inverse mapping section 25, the reconstructed audio data signal 15 is blockwise overlapped and transformed via an inverse modified discrete cosine transform (IMDCT), at step 121, and then processed by a polyphase filter bank, at step 123, as is well-known in the relevant art. The processed result is outputted from the audio decoder section 20 as the PCM output signal 16.
The CRC checker 43 performs error detection on the basis of checksums using a cyclic redundancy check (CRC) or a scale factor cyclic redundancy check (SCFCRC), are both specified in the ETS 300401. The CRC check is used for MP3 audio bitstreams, and the SCFCRC is used for Digital Audio Broadcasting (DAB) standard transmission.
The CRC error detection process is based both on the use of checksums and on the use of so-called fundamental sets of allowed values. When a non-allowed bit combination is detected, a transmission error is presumed in the corresponding audio frame. The CRC checker 43 outputs the bitstream error signal 18 to the frame error indicator 45 when a non-allowed frame is detected. The frame error indicator 45 obtains error indications both from the channel decoder 41 and from the CRC checker 43. Whenever an erroneous frame is identified to the frame error indicator 45, the frame replacement decision unit 47 receives an indication of the erroneous frame.
Operation of the audio decoder system 10 can be further described with reference to the compressed domain beat detector 30 diagram of FIG. 3. In general, frequency resolution is provided by means of a hybrid filter bank. Each band is split into 18 frequency lines by use of a modified Discrete Cosine Function (MDCT). The window length of the MDCT is 18, and adaptive window switching is used to control time artifacts also known as ‘pre-echoes.’ The frequency with better time resolution and short blocks (i.e., as defined in the MP3 standard) are used can be selected. The signal parts below a frequency are coded with better frequency resolution. Parts of the signal above are coded with better time resolution. The frequency components are quantized using the non-uniform quantizer and Huffman encoded. A buffer is used to help enhance the coding efficiency of the Huffman coder and to help in the case of pre-echo conditions. The size of the input buffer is the size of one frame at the bit rate of 160 Kb/sec per channel for Layer III.
The short term buffer technique used is called ‘bit reservoir’ because it uses short-term variable bit rate with maximal integral offset from the mean bit rate. Each frame holds the data from two granules. The audio data in a frame is allocated including a main data pointer, side information of both granules, scale factor selection information (SCFSI), and side information of granule 1 and granule 2. The header and audio data constitute the side information stream including the scale factors and Huffman code data granule 1, scale factors, and Huffman code data granule 2, and ancillary data. These data constitute the main data stream. The main data begin pointer specifies a negative offset from the position of the first byte of the header.
The audio frame begins with the main data part, which is located by using a ‘main data begin’ pointer of the current frame. All main data is resident in the input buffer when the header of the next frame is arriving in the input buffer. The audio decoder section 20 has to skip header and side information when doing the decoding of the main data. As noted above, the table select information is used to select the Huffman decoder table and the number of ‘lin’ bits (also known as ESC bits), where the scale factors are decoded, in step 105. The decoded values can be used as entries into a table or used to calculate the factors for each scale factor band directly. When decoding the second granule, the SCFSI has to be considered. In step 103, all necessary information, including the table which realizes the Huffman code tree, can be generated. Decoding is performed until all Huffman code bits have been decoded or until quantized values representing 576 frequency lines have been decoded, whichever comes first.
In step 115, the requantizer uses a power law. For each output value ‘is’ from the Huffman decoder, (is)4/3 is calculated. The calculation can be performed either by using a lookup table or doing explicit calculation. One complete formula describes all the processing from the Huffman decoding values to the input of the synthesis filter bank.
In addition to detecting errors based on the CRC or the SCFCRC, ISO/IEC 11172-3 defines a protection bit which indicates that the audio frame protocol structure includes valid checksum information of 16-bit CRC. It covers third and fourth bytes in the frame header and bit allocation section and the SCFSI part of the audio frame. According to the DAB standard ETS 300401, the audio frame has additionally a second checksum field, which covers the most significant bits of the scale factors.
The 16-bit CRC polynomial generating checksum is G1(X)=X16+X15+X2+1. If the polynomial calculated for the bits of the third and fourth bytes in the frame header and an allocation part does not equal the checksum in the received frame, a transmission error is detected in a frame. The polynomial generating all CRC checksums protecting the scale factors is G2(X)=X8+X4+X3+X2+1.
In step 117, the reconstructed values are processed for MS of intensity stereo modes or both, before the synthesis filter bank stage. In step 123 starts the synthesis filter band functionality section. In step 121, the IMDCT is used as synthesis applied that is dependent on the window switching and the block type. If n is the number of the windowed samples (for short blocks, n=12, for long blocks, n=36). The n/2 values Xk are transformed to n values x. The formula for IMDCT is the following:
for 0≦i≦(n−1).
Different shapes of windows are used. Overlapping and adding with IMDCT blocks is done in step 121 so that the first half of the block of thirty six values is overlapped with a second half of the previous block. The second half of the actual block is stored to be used in the next block. The final audio data synthesizing is then done in step 123 in the polyphase filter bank, which has the input of sub bands labeled 0 through 31, where the 0 band is the lowest sub band.
In the step 121, IMDCT synthesis is done separately for the right and the left channels. The variance analysis is done at this state and the variance result is fed into the beat detector 30 in which the beat detection is made. If an erroneous frame is detected in the frame error indicator 45, a replacement frame is selected from the circular FIFO buffer 50, which is controlled by the frame replacement decision unit 47. The alias reduction of the IMDCT is used as synthesis applied, that is dependent on the window switching and the block type.
Operation of the circular FIFO buffer 50 provides for the next audio data frame (not shown) received via the audio information data signal 13 to be placed into the audio data block 53a. The audio data frame of speech in a GSM system is typically 20 msec in duration. Accordingly, the previously most recent audio data frame is moved from the audio data block 53a to the audio data block 53b, the audio data frame in the audio data block 53b is moved to the audio data block 53c, and so on. The audio data frame originally stored in the audio data block 53n is removed from the circular FIFO buffer 50.
The side information of the audio data frames incoming to the input port 51 are also provided to the beat detector 30 which is used to locate the position of beats in the audio information data signal 13, as explained in greater detail below. A detector port 55 is connected to the frame error indicator 45 in order to provide control input which indicates which audio frame in the circular FIFO buffer 50 is to be decoded next. The replacement frame is searched according to the most suitable frame search method of the frame replacement decision unit 47, and the replacement frame is read and forwarded from the circular FIFO buffer 50 resulting in a more appropriate frame to the inverse filtering. An output port 57 is connected to the reconstruction section 23.
It generally requires about sixteen Kbytes of capacity in the circular FIFO buffer 50 to store inter-beat intervals of a monophonic signal. The audio frame data is fed from the frame decoder 21 to the block 53a, after which the error detection is made for the unpacked audio frame. If the frame error indicator 45 doesn't indicate an erroneous frame, the beat detector 30 enables the audio frame data to be stored to the circular FIFO buffer 50 as a correct audio frame sample.
The beat detector 30 includes a beat pointer (not shown) which serves to identify an audio data frame at which the presence of a beat has been detected, as described in greater detail below. In a preferred embodiment, the time resolution of the beat detector 30 is approximately thirteen msec. The beat pointer moves sequentially along the audio data blocks 53a, 53b, . . . , 53n in the circular FIFO 50 until a beat is detected. The replacement port 57 outputs the audio data frame containing the detected beat by locating the block position identified by the beat pointer.
In a preferred embodiment, the size of the circular FIFO buffer 50 is specified to be large enough so as to hold the audio data frames making up both a first inter-beat interval 167 and a second inter-beat interval 169. In way of example, the bit rate of a monophonic signal is 64 Kbps with an inter-beat interval of approximately 500 msec. It thus requires about sixteen Kbytes of capacity in the circular FIFO buffer 50 to store two inter-beat intervals of audio data frames for a monophonic signal. In the illustration provided, the audio data frames making up the first inter-beat interval 167 have been found error-free.
On the other hand, if errors are detected by the frame error indicator 45, the corresponding erroneous audio data frames are not transmitted to the reconstruction section 23. For example, the frame error indicator 45 will indicate an erroneous audio segment 173 in the audio data frames making up the second inter-beat interval 169. The time interval from the (k+1)th beat 163 to the beginning of the erroneous audio segment 173 is here denoted by the Greek letter ‘τ.’ In accordance with the disclosed invention, the audio decoder system 10 operates to conceal the transmission errors resulting in the erroneous audio segment 173 by replacing the erroneous audio segment 173 with a corresponding replacement audio segment 171 from the first beat interval 167, as indicated by arrow 175.
This error concealment operation begins when the frame error indicator 45 indicates the first audio data frame containing errors in the second inter-beat interval 169. The frame error indicator 45 sends the error detection signal 19 to the frame replacement decision unit 47 which acts to preclude the erroneous audio segment 173 from passing to the reconstruction section 23. Instead, the replacement audio segment 171 passes via the replacement port 57 of the circular FIFO buffer 50 to the reconstruction section 23. After the replacement audio segment 171 has passed to the reconstruction section 23, subsequent error-free data packets are passed to the reconstruction section 23 without replacement.
The replacement audio segment 171 is specified as a contiguous aggregate of replacement audio data frames having essentially the same duration as the erroneous audio segment 173 and occurring a time τ after the first beat 161. That is, each erroneous audio data frame in the erroneous audio segment 173 is replaced on a one-to-one basis by a corresponding replacement audio data frame taken from the replacement audio segment 171 stored in the circular FIFO buffer 50. It should be noted that the time interval τ can have a positive value as shown, a negative value, or a value of zero. Moreover, when τ has a zero value, the duration of the replacement audio segment 171 can be the same as the duration of the entire first inter-beat interval 167.
This can be explained with reference to
Consider an audio data loss of the second waveform 183, occurring between time τ1 and time τ2, an interval approximately 520 msec in duration (i.e., approximately forty MP3 audio data frames). Because most conventional error-concealment methods are not intended to deal with errors greater than an audio frame length used in the applied transfer protocol in duration, the conventional error concealment method will not produce satisfactory results. One conventional approach, for example, is to substitute a muted waveform 185 (
In another conventional approach, shown in the graph of
In accordance with the method of the present invention, a replacement waveform 189 including a replacement beat 197, is copied from the first beat 191 and the first waveform 181, and is substituted for the missing audio segment 185 in the time interval τ1 to τ2, as shown in the graph of FIG. 6D. As can be appreciated by one skilled in the relevant art, the music portion represented by the waveform 189 with the replacement beat 197 is more closely representative of the original waveform 183 and second beat 193 than is the error-concealment waveform 187.
In a preferred embodiment, shown in
A first bar 201 includes the musical information present from a first beat 211 in the first bar 201 to a first beat 221 in a second bar 203. The first bar 201 includes a second beat 212, a third beat 213, and a fourth beat 214. Similarly, the second bar includes a second beat 222, a third beat 223, and a fourth beat 224. As received by the audio decoder system 10, the second bar 203 includes an erroneous audio segment 225 occurring between the second and third beats 222 and 223 and at a time interval τ3 following the second beat 222.
A replacement segment 215, having the same duration as the erroneous audio segment 225, is copied from the audio data frames in the interval 217 between the second and third beats 212 and 213, where the replacement segment 215 is located a time interval τ3 from the second beat 212. The replacement segment 215 is substituted for the erroneous audio segment 225 as indicated by arrow 219. If this replacement occurs in the PCM domain, a cross-fade should be performed to reduce the discontinuities at the boundaries If the audio bit stream is an MP3 audio stream, a cross-fade is usually not necessary because of the overlap and add process performed in step 121, as described above.
Beat Detection
Beat is defined in the relevant art as a series of perceived pulses dividing a musical signal into intervals of approximately the same duration. In the present invention, beat detection can be accomplished by any of three methods. The preferred method uses the variance of the music signal, which variance is derived from decoded Inverse Modified Discrete Cosine Transformation (IMDCT) coefficients as described in greater detail below. The variance method detects primarily strong beats. The second method uses an Envelope scheme to detect both strong beats and offbeats. The third method uses a window-switching pattern to identify the beats present. The window-switching method detects both strong and weaker beats. In one embodiment, a beat pattern is detected by the variance and the window switching methods. The two results are compared to more conclusively identify the strong beats and the offbeats.
In accordance with the variance method, the variance (VAR) of the music signal at time τ is calculated directly by summing the squares of the decoded IMDCT coefficients to give:
where Xj(τ) is the jth IMDCT coefficient decoded at time τ. The location of the beats are determined to be those places where VAR(τ) exceeds a pre-determined threshold value.
In the alternative Envelope method, an envelope measure (ENV) is used, where
where abs(Xj) are the absolute values of the IMDCT coefficients. Equations (2) and (3) are included in the variance beat detector section 31. With a threshold method similar to VAR(τ), ENV(τ) is used to identify both strong and offbeats, while VAR(τ) is used to identify primarily strong beats.
In
As shown in
A ‘confidence score’ parameter on beat detection is introduced to the audio decoder system 10, as exemplified in the embodiments (e.g.,
One recursive method for estimating the inter-beat interval can be described with reference to
IBIi=IBIi-1·(1−α)+IBInew·α (4
to estimate an inter-beat interval 271 recursively. In equation (4), IBIi is the current estimation of the inter-beat interval, IBI(i-1) is the previous estimation of the inter-beat interval, IBInew is the most recently-detected inter-beat interval, and α is a weighting parameter to adjust the influence of the history and new data.
A second recursive method operates by estimating the current inter-beat interval IBIi by averaging a few of the previous inter-beat intervals using the expression,
Alternatively, the inter-beat interval 271 can be estimated by using equation (5) only.
If we assume that both the music inter-beat interval distribution 273 and the beat variance distribution 275 are Gaussian distributions, the respective mean and variance can be estimated recursively in a manner similar to that used with equation (4). As stated above, the variance threshold 277 can be established empirically. In the example provided, a lower bound of 0.06 has been set for the variance threshold 277. The actual value may vary according to the particular application. In
When errors occur in audio transmittal applications using the Global System for Mobile Communications (GSM) protocol, the errors normally occur at random. Occasional losses of single or double packets are more likely to occur in Internet applications, where each packet has a duration of about 20 msec, to give a packet-loss error of about 40 msec in duration. Using this model, the capacity requirement of the circular FIFO buffer 50 can be reduced. When the reduced memory capacity is used, fewer audio data frames need to be stored in the circular FIFO buffer 50.
In an alternative embodiment, the memory storage capacity of the circular FIFO buffer 50 can be reduced by storing only selected audio frames rather than every audio frame in the incoming stream. In a first example, shown in
The group of audio framed denoted by ‘n’ includes four audio frames of which the audio frame 323 (frame 0), indicates the audio frame currently being sent to the listener via a loudspeaker, for example. The previously-received audio frame is audio frame 321 (frame−1), and the next frame after the audio frame 323 is the audio frame 325 (frame+1). The audio frame 325 is the next available audio frame to be decoded.
In another embodiment, shown in
The above is a description of the realization of the invention and its embodiments utilizing examples. It should be self-evident to a person skilled in the relevant art that the invention is not limited to the details of the above presented examples, and that the invention can also be realized in other embodiments without deviating from the characteristics of the invention. Thus, the possibilities to realize and use the invention are limited only by the claims, and by the equivalent embodiments which are included in the scope of the invention.
Number | Name | Date | Kind |
---|---|---|---|
5040217 | Brandenburg et al. | Aug 1991 | A |
5148487 | Nagai et al. | Sep 1992 | A |
5256832 | Miyake | Oct 1993 | A |
5285498 | Johnston | Feb 1994 | A |
5361278 | Vaupel et al. | Nov 1994 | A |
5394473 | Davidson | Feb 1995 | A |
5481614 | Johnston | Jan 1996 | A |
5579430 | Grill et al. | Nov 1996 | A |
5636276 | Brugger | Jun 1997 | A |
5841979 | Schulhof et al. | Nov 1998 | A |
5852805 | Hiratsuka et al. | Dec 1998 | A |
5875257 | Marrin et al. | Feb 1999 | A |
5928330 | Goetz et al. | Jul 1999 | A |
6005658 | Kaluza et al. | Dec 1999 | A |
6064954 | Cohen et al. | May 2000 | A |
6115689 | Malvar | Sep 2000 | A |
6125348 | Levine | Sep 2000 | A |
6141637 | Kondo | Oct 2000 | A |
6175632 | Marx | Jan 2001 | B1 |
6199039 | Chen et al. | Mar 2001 | B1 |
6287258 | Phillips | Sep 2001 | B1 |
6305943 | Pougatchev et al. | Oct 2001 | B1 |
6453282 | Hilpert et al. | Sep 2002 | B1 |
6477150 | Maggenti et al. | Nov 2002 | B1 |
6597961 | Cooke | Jul 2003 | B1 |
6738524 | de Queiroz | May 2004 | B1 |
6787689 | Chen | Sep 2004 | B1 |
6807526 | Touimi et al. | Oct 2004 | B1 |
Number | Date | Country |
---|---|---|
197 36 669 | Oct 1998 | DE |
0 703 712 | Mar 1996 | EP |
0 718 982 | Jun 1996 | EP |
1 207 519 | May 2002 | EP |
WO 9326099 | Jun 1993 | WO |
WO 9813965 | Apr 1998 | WO |
Number | Date | Country | |
---|---|---|---|
20020133764 A1 | Sep 2002 | US |