Patent Description:
State-of-the-art conversational codecs represent with a very good quality clean speech signals at bitrates of around 8kbps and approach transparency at the bitrate of 16kbps. To sustain this high speech quality at low bitrate a multi-modal coding scheme is generally used. Usually the input signal is split among different categories reflecting its characteristic. The different categories include e.g. voiced speech, unvoiced speech, voiced onsets, etc. The codec then uses different coding modes optimized for these categories.

Speech-model based codecs usually do not render well generic audio signals such as music. Consequently, some deployed speech codecs do not represent music with good quality, especially at low bitrates. When a codec is deployed, it is difficult to modify the encoder due to the fact that the bitstream is standardized and any modifications to the bitstream would break the interoperability of the codec.

Therefore, there is a need for improving music content rendering of speech-model based codecs, for example linear-prediction (LP) based codecs.

According to the present disclosure, there is provided a device for reducing quantization noise in a signal contained in a time-domain excitation decoded by a time-domain decoder. The device comprises a converter of the decoded time-domain excitation into a frequency-domain excitation. Also included is a mask builder to produce a weighting mask for retrieving spectral information lost in the quantization noise. The claimed invention is directed to the mask builder. The device also comprises a modifier of the frequency-domain excitation to increase spectral dynamics by application of the weighting mask. The device further comprises a converter of the modified frequency-domain excitation into a modified time-domain excitation.

The present disclosure also relates to a method for reducing quantization noise in a signal contained in a time-domain excitation decoded by a time-domain decoder. The decoded time-domain excitation is converted into a frequency-domain excitation by the time-domain decoder. A weighting mask is produced for retrieving spectral information lost in the quantization noise. The claimed invention is directed to a computer-implemented mask building method. The frequency-domain excitation is modified to increase spectral dynamics by application of the weighting mask. The modified frequency-domain excitation is converted into a modified time-domain excitation.

The foregoing and other features will become more apparent upon reading of the following non-restrictive description of illustrative embodiments thereof, given by way of example only with reference to the accompanying drawings.

Embodiments of the disclosure will be described by way of example only with reference to the accompanying drawings, in which:.

Various aspects of the present disclosure generally address one or more of the problems of improving music content rendering of speech-model based codecs, for example linear-prediction (LP) based codecs, by reducing quantization noise in a music signal. It should be kept in mind that the teachings of the present disclosure may also apply to other sound signals, for example generic audio signals other than music.

Modifications to the decoder can improve the perceived quality on the receiver side. The present discloses an approach to implement, on the decoder side, a frequency domain post processing for music signals and other sound signals that reduces the quantization noise in the spectrum of the decoded synthesis. The post processing can be implemented without any additional coding delay.

The principle of frequency domain removal of the quantization noise between spectrum harmonics and the frequency post processing used herein are based on <CIT> (hereinafter "Vaillancourt'<NUM>"). In general, such frequency post-processing is applied on the decoded synthesis and requires an increase of the processing delay in order to include an overlap and add process to get a significant quality gain. Moreover, with the traditional frequency domain post processing, shorter is the delay added (i.e. shorter is the transform window), less the post processing is effective due to limited frequency resolution. According to the present disclosure, the frequency post processing achieves higher frequency resolution (a longer frequency transform is used), without adding delay to the synthesis. Furthermore, the information present in the past frames spectrum energy is exploited to create a weighting mask that is applied to the current frame spectrum to retrieve, i.e. enhance, spectral information lost into the coding noise. To achieve this post processing without adding delay to the synthesis, in this example, a symmetric trapezoidal window is used. It is centered on the current frame where the window is flat (it has a constant value of <NUM>), and extrapolation is used to create the future signal. While the post processing might be generally applied directly to the synthesis signal of any codec, the present disclosure introduces an illustrative embodiment in which the post processing is applied to the excitation signal in a framework of the Code-Excited Linear Prediction (CELP) codec, described Technical Specification (TS) <NUM> of the <NUM>rd Generation Partnership Program (3GPP), entitled "Adaptive Multi-Rate - Wideband (AMR-WB) speech codec; Transcoding Functions", available on the web site of the 3GPP. The advantage of working on the excitation signal rather than on the synthesis signal is that any potential discontinuities introduced by the post processing are smoothed out by the subsequent application of the CELP synthesis filter.

In the present disclosure, AMR-WB with an inner sampling frequency of <NUM> is used for illustration purposes. However, the present disclosure can be applied to other low bitrate speech decoders where the synthesis is obtained by an excitation signal filtered through a synthesis filter, for example a LP synthesis filter. It can be applied as well on multi-modal codecs where the music is coded with a combination of time and frequency domain excitation. The next lines summarize the operation of a post filter. A detailed description of an illustrative embodiment using AMR-WB then follows.

First, the complete bitstream is decoded and the current frame synthesis is processed through a first-stage classifier similar to what is disclosed in <CIT>, in <CIT>and in PCT International Application <CIT>. (hereinafter "Vaillancourt'<NUM>"). For the purpose of the present disclosure, this first-stage classifier analyses the frame and sets apart INACTIVE frames and UNVOICED frames, for example frames corresponding to active UNVOICED speech. All frames that are not categorized as INACTIVE frames or as UNVOICED frames in the first-stage are analyzed with a second-stage classifier. The second-stage classifier decides whether to apply the post processing and to what extent. When the post processing is not applied, only the post processing related memories are updated.

For all frames that are not categorized as INACTIVE frames or as active UNVOICED speech frames by the first-stage classifier, a vector is formed using the past decoded excitation, the current frame decoded excitation and an extrapolation of the future excitation. The length of the past decoded excitation and the extrapolated excitation is the same and depends of the desired resolution of the frequency transform. In this example, the length of the frequency transform used is <NUM> samples. Creating a vector with the past and the extrapolated excitation allows for increasing the frequency resolution. In the present example, the length of the past and the extrapolated excitation is the same, but window symmetry is not necessarily required for the post-filter to work efficiently.

The energy stability of the frequency representation of the concatenated excitation (including the past decoded excitation, the current frame decoded excitation and the extrapolation of the future excitation) is then analyzed with the second-stage classifier to determine the probability of being in presence of music. In this example, the determination of being in presence of music is performed in a two-stage process. However, music detection can be performed in different ways, for example it might be performed in a single operation prior the frequency transform, or even determined in the encoder and transmitted in the bitstream.

The inter-harmonic quantization noise is reduced similarly as in Vaillancourt'<NUM> by estimating the signal to noise ratio (SNR) per frequency bin and by applying a gain on each frequency bin depending on its SNR. In the present disclosure, the noise energy estimation is however done differently from what is taught in Vaillancourt'<NUM>.

Then an additional processing is used that retrieves the information lost in the coding noise and further increases the dynamics of the spectrum. This process begins with the normalization between <NUM> and <NUM> of the energy spectrum. Then a constant offset is added to the normalized energy spectrum. Finally, a power of <NUM> is applied to each frequency bin of the modified energy spectrum. The resulting scaled energy spectrum is processed through an averaging function along the frequency axis, from low frequencies to high frequencies. Finally, a long term smoothing of the spectrum over time is performed bin by bin.

This second part of the processing results in a mask where the peaks correspond to important spectrum information and the valleys correspond to coding noise. This mask is then used to filter out noise and increase the spectral dynamics by slightly increasing the spectrum bins amplitude at the peak regions while attenuating the bins amplitude in the valleys, therefore increasing the peak to valley ratio. These two operations are done using a high frequency resolution, but without adding delay to the output synthesis.

After the frequency representation of the concatenated excitation vector is enhanced (its noise reduced and its spectral dynamics increased), the inverse frequency transform is performed to create an enhanced version of the concatenated excitation. In the present disclosure, the part of the transform window corresponding to the current frame is substantially flat, and only the parts of the window applied to the past and extrapolated excitation signal need to be tapered. This renders possible to extirpate the current frame of the enhanced excitation after the inverse transform. This last manipulation is similar to multiplying the time-domain enhanced excitation with a rectangular window at the position of the current frame. While this operation could not be done in the synthesis domain without adding important block artifacts, this can alternatively be done in the excitation domain, because the LP synthesis filter helps smoothing the transition from one block to another as shown in Vaillancourt'<NUM>.

The post processing described here is applied on the decoded excitation of the LP synthesis filter for signals like music or reverberant speech. A decision about the nature of the signal (speech, music, reverberant speech, and the like) and a decision about applying the post processing can be signaled by the encoder that sends towards a decoder classification information as a part of an AMR-WB bitstream. If this is not the case, a signal classification can alternatively be done on the decoder side. Depending on the complexity and the classification reliability trade-off, the synthesis filter can optionally be applied on the current excitation to get a temporary synthesis and a better classification analysis. In this configuration, the synthesis is overwritten if the classification results in a category where the post filtering is applied. To minimize the added complexity, the classification can also be done on the past frame synthesis, and the synthesis filter would be applied once, after the post processing.

Referring now to the drawings, <FIG> is a flow chart showing operations of a method for reducing quantization noise in a signal contained in a time-domain excitation decoded by a time-domain decoder according to an embodiment. In <FIG>, a sequence <NUM> comprises a plurality of operations that may be executed in variable order, some of the operations possibly being executed concurrently, some of the operations being optional. At operation <NUM>, the time-domain decoder retrieves and decodes a bitstream produced by an encoder, the bitstream including time domain excitation information in the form of parameters usable to reconstruct the time domain excitation. For this, the time-domain decoder may receive the bitstream via an input interface or read the bitstream from a memory. The time-domain decoder converts the decoded time-domain excitation into a frequency-domain excitation at operation <NUM>. Before converting the excitation signal from time-domain to frequency domain at operation <NUM>, the future time domain excitation may be extrapolated, at operation <NUM>, so that a conversion of the time-domain excitation into a frequency-domain excitation becomes delay-less. That is, better frequency analysis is performed without the need for extra delay. To this end past, current and predicted future time-domain excitation signal may be concatenated before conversion to frequency domain. The time-domain decoder then produces a weighting mask for retrieving spectral information lost in the quantization noise, at operation <NUM>. At operation <NUM>, the time-domain decoder modifies the frequency-domain excitation to increase spectral dynamics by application of the weighting mask. At operation <NUM>, the time-domain decoder converts the modified frequency-domain excitation into a modified time-domain excitation. The time-domain decoder can then produce a synthesis of the modified time-domain excitation at operation <NUM> and generate a sound signal from one of a synthesis of the decoded time-domain excitation and of the synthesis of the modified time-domain excitation at operation <NUM>.

The method illustrated in <FIG> may be adapted using several optional features. For example, the synthesis of the decoded time-domain excitation may be classified into one of a first set of excitation categories and a second set of excitation categories, in which the second set of excitation categories comprises INACTIVE or UNVOICED categories while the first set of excitation categories comprises an OTHER category. A conversion of the decoded time-domain excitation into a frequency-domain excitation may be applied to the decoded time-domain excitation classified in the first set of excitation categories. The retrieved bitstream may comprise classification information usable to classify the synthesis of the decoded time-domain excitation into either of the first set or second sets of excitation categories. For generating the sound signal, an output synthesis can be selected as the synthesis of the decoded time-domain excitation when the time-domain excitation is classified in the second set of excitation categories, or as the synthesis of the modified time-domain excitation when the time-domain excitation is classified in the first set of excitation categories. The frequency-domain excitation may be analyzed to determine whether the frequency-domain excitation contains music. In particular, determining that the frequency-domain excitation contains music may rely on comparing a statistical deviation of spectral energy differences of the frequency-domain excitation with a threshold. The weighting mask may be produced using time averaging or frequency averaging or a combination of both. A signal to noise ratio may be estimated for a selected band of the decoded time-domain excitation and a frequency-domain noise reduction may be performed based on the estimated signal to noise ratio.

<FIG> and <FIG>, collectively referred to as <FIG>, are a simplified schematic diagram of a decoder having frequency domain post processing capabilities for reducing quantization noise in music signals and other sound signals. A decoder <NUM> comprises several elements illustrated on <FIG> and <FIG>, these elements being interconnected by arrows as shown, some of the interconnections being illustrated using connectors A, B, C, D and E that show how some elements of <FIG> are related to other elements of <FIG>. The decoder <NUM> comprises a receiver <NUM> that receives an AMR-WB bitstream from an encoder, for example via a radio communication interface. Alternatively, the decoder <NUM> may be operably connected to a memory (not shown) storing the bitstream. A demultiplexer <NUM> extracts from the bitstream time domain excitation parameters to reconstruct a time domain excitation, a pitch lag information and a voice activity detection (VAD) information. The decoder <NUM> comprises a time domain excitation decoder <NUM> receiving the time domain excitation parameters to decode the time domain excitation of the present frame, a past excitation buffer memory <NUM>, two (<NUM>) LP synthesis filters <NUM> and <NUM>, a first stage signal classifier <NUM> comprising a signal classification estimator <NUM> that receives the VAD signal and a class selection test point <NUM>, an excitation extrapolator <NUM> that receives the pitch lag information, an excitation concatenator <NUM>, a windowing and frequency transform module <NUM>, an energy stability analyzer as a second stage signal classifier <NUM>, a per band noise level estimator <NUM>, a noise reducer <NUM>, a mask builder <NUM> comprising a spectral energy normalizer <NUM>, an energy averager <NUM> and an energy smoother <NUM>, a spectral dynamics modifier <NUM>, a frequency to time domain converter <NUM>, a frame excitation extractor <NUM>, an overwriter <NUM> comprising a decision test point <NUM> controlling a switch <NUM>, and a de-emphasizing filter and resampler <NUM>. An overwrite decision made by the decision test point <NUM> determines, based on an INACTIVE or UNVOICED classification obtained from the first stage signal classifier <NUM> and on a sound signal category eCAT obtained from the second stage signal classifier <NUM>, whether a core synthesis signal <NUM> from the LP synthesis filter <NUM>, or a modified, i.e. enhanced synthesis signal <NUM> from the LP synthesis filter <NUM>, is fed to the de-emphasizing filter and resampler <NUM>. An output of the de-emphasizing filter and resampler <NUM> is fed to a digital to analog (D/A) convertor <NUM> that provides an analog signal, amplified by an amplifier <NUM> and provided further to a loudspeaker <NUM> that generates an audible sound signal. Alternatively, the output of the de-emphasizing filter and resampler <NUM> may be transmitted in digital format over a communication interface (not shown) or stored in digital format in a memory (not shown), on a compact disc, or on any other digital storage medium. As another alternative, the output of the D/A convertor <NUM> may be provided to an earpiece (not shown), either directly or through an amplifier. As yet another alternative, the output of the D/A convertor <NUM> may be recorded on an analog medium (not shown) or transmitted via a communication interface (not shown) as an analog signal.

The following paragraphs provide details of operations performed by the various components of the decoder <NUM> of <FIG>.

In the illustrative embodiment, a first stage classification is performed at the decoder in the first stage classifier <NUM>, in response to parameters of the VAD signal from the demultiplxer <NUM>. The decoder first stage classification is similar as in Vaillancourt'<NUM>. The following parameters are used for the classification at the signal classification estimator <NUM> of the decoder: a normalized correlation rx, a spectral tilt measure et, a pitch stability counter pc, a relative frame energy of the signal at the end of the current frame Es, and a zero-crossing counter zc. The computation of these parameters, which are used to classify the signal, is explained below.

The normalized correlation rx is computed at the end of the frame based on the synthesis signal. The pitch lag of the last subframe is used.

The normalized correlation rx is computed pitch synchronously as <MAT>
where T is the pitch lag of the last subframe, t=L- T, and L is the frame size. If the pitch lag of the last subframe is larger than 3N/<NUM> (N is the subframe size), T is set to the average pitch lag of the last two subframes.

The correlation rx is computed using the synthesis signal x(i). For pitch lags lower than the subframe size (<NUM> samples) the normalized correlation is computed twice at instants t=L-T and t=L-2T, and rx is given as the average of the two computations.

The spectral tilt parameter et contains the information about the frequency distribution of energy. In the present illustrative embodiment, the spectral tilt at the decoder is estimated as the first normalized autocorrelation coefficient of the synthesis signal. It is computed based on the last <NUM> subframes as <MAT>
where x(i) is the synthesis signal, N is the subframe size, and L is the frame size (N=<NUM> and L=<NUM> in this illustrative embodiment).

The pitch stability counter pc assesses the variation of the pitch period. It is computed at the decoder as follows: <MAT>.

The values p<NUM>, p<NUM>, p<NUM> and p<NUM> correspond to the closed-loop pitch lag from the <NUM> subframes.

The relative frame energy Es is computed as a difference between the current frame energy in dB and its long-term average <MAT>.

The long-term averaged energy is updated on active frames using the following relation: <MAT>.

The last parameter is the zero-crossing parameter zc computed on one frame of the synthesis signal. In this illustrative embodiment, the zero-crossing counter zc counts the number of times the signal sign changes from positive to negative during that interval.

To make the first stage classification more robust, the classification parameters are considered together forming a function of merit fm. For that purpose, the classification parameters are first scaled using a linear function. Let us consider a parameter px, its scaled version is obtained using <MAT>.

The scaled pitch stability parameter is clipped between <NUM> and <NUM>. The function coefficients kp and cp have been found experimentally for each of the parameters. The values used in this illustrative embodiment are summarized in Table <NUM>.

The merit function has been defined as <MAT>
where the superscript s indicates the scaled version of the parameters.

The classification is then done (class selection test point <NUM>) using the merit function fm and following the rules summarized in Table <NUM>.

In addition to this first stage classification, information on the voice activity detection (VAD) by the encoder can be transmitted in the bitstream as it is the case with the AMR-WB-based illustrative example. Thus, one bit is sent in the bitstream to specify whether or not the encoder consider the current frame as active content (VAD = <NUM>) or INACTIVE content (background noise, VAD = <NUM>). When the content is considered as INACTIVE, then the classification is overwritten to UNVOICED. The first stage classification scheme also includes a GENERIC AUDIO detection. The GENERIC AUDIO category includes music, reverberant speech and can also include background music. Two parameters are used to identify this category. One of the parameters is the total frame energy Ef as formulated in Equation (<NUM>).

First, the module determines the energy difference <MAT> of two adjacent frames, specifically the difference between the energy of the current frame <MAT> and the energy of the previous frame <MAT>. Then the average energy difference Edf over past <NUM> frames is calculated using the following relation: <MAT>.

Then, the module determines a statistical deviation of the energy variation σE over the last fifteen (<NUM>) frames using the following relation: <MAT>.

In a practical realization of the illustrative embodiment, the scaling factor p was found experimentally and set to about <NUM>. The resulting deviation σE gives an indication on the energy stability of the decoded synthesis. Typically, music has a higher energy stability than speech.

The result of the first-stage classification is further used to count the number of frames Nuv between two frames classified as UNVOICED. In the practical realization, only frames with the energy Ef higher than -12dB are counted. Generally, the counter Nuv is initialized to <NUM> when a frame is classified as UNVOICED. However, when a frame is classified as UNVOICED and its energy Ef is greater than -9dB and the long term average energy Elt , is below 40dB, then the counter is initialized to <NUM> in order to give a slight bias toward music decision. Otherwise, if the frame is classified as UNVOICED but the long term average energy Elt is above 40dB, the counter is decreased by <NUM> in order to converge toward speech decision. In the practical realization, the counter is limited between <NUM> and <NUM> for active signal; the counter is also limited between <NUM> and <NUM> for INACTIVE signal in order to get a fast convergence to speech decision when the next active signal is effectively speech. These ranges are not limiting and other ranges may also be contemplated in a particular realization. For this illustrative example, the decision between active and INACTIVE signal is deduced from the voice activity decision (VAD) included in the bitstream.

A long term average Nuv is derived from this UNVOICED frames counter for active signal as follows:NUVlt = <NUM> · NUVlt + <NUM> · NUV <MAT>
and for INACTIVE signal as follows: <MAT>
where t is the frame index. The following pseudo code illustrates the functionality of the UNVOICED counter and its long term average:
<IMG>.

Furthermore, when the long term average Nuv is very high and the deviation σE is also high in a certain frame (Nuv > <NUM> and σE > <NUM> in the current example), meaning that the current signal is unlikely to be music, the long term average is updated differently in that frame. It is updated so that it converges to the value of <NUM> and biases the decision towards speech. This is done as shown below: <MAT>.

This parameter on long term average of the number of frames between UNVOICED classified frames is used to determine if the frame should be considered as GENERIC AUDIO or not. More the UNVOICED frames are close in time, more likely the signal has speech characteristic (less probably it is a GENERIC AUDIO signal). In the illustrative example, the threshold to decide if a frame is considered as GENERIC AUDIO GA is defined as follows: A frame is GA if : <MAT>.

The parameter <MAT>, defined in equation (<NUM>), is used in (<NUM>) to avoid classifying large energy variation as GENERIC AUDIO.

The post processing performed on the excitation depends on the classification of the signal. For some types of signals the post processing module is not entered at all. The next table summarizes the cases where the post processing is performed.

When the post processing module is entered, another energy stability analysis, described hereinbelow, is performed on the concatenated excitation spectral energy. Similarly as in Vaillancourt'<NUM>, this second energy stability analysis gives an indication as where in the spectrum the post processing should start and to what extent it should be applied.

To increase the frequency resolution, a frequency transform longer than the frame length is used. To do so, in the illustrative embodiment, a concatenated excitation vector ec(n) is created in excitation concatenator <NUM> by concatenating the last <NUM> samples of the previous frame excitation stored in past excitation buffer memory <NUM>, the decoded excitation of the current frame e(n) from time domain excitation decoder <NUM>, and an extrapolation of <NUM> excitation samples of the future frame ex(n) from excitation extrapolator <NUM>. This is described below where Lw is the length of the past excitation as well as the length of the extrapolated excitation, and L is the frame length. This corresponds to <NUM> and <NUM> samples respectively, giving the total length Lc= <NUM> samples in the illustrative embodiment: <MAT>.

In a CELP decoder, the time-domain excitation signal e(n) is given by<MAT>
where v(n) is the adaptive codebook contribution, b is the adaptive codebook gain, c(n) is the fixed codebook contribution, and g is the fixed codebook gain. The extrapolation of the future excitation samples ex(n) is computed in the excitation extrapolator <NUM> by periodically extending the current frame excitation signal e(n) from the time domain excitation decoder <NUM> using the decoded factional pitch of the last subframe of the current frame. Given the fractional resolution of the pitch lag, an upsampling of the current frame excitation is performed using a <NUM> samples long Hamming windowed sinc function.

In the windowing and frequency transform module <NUM>, prior to the time-to-frequency transform a windowing is performed on the concatenated excitation. The selected window w(n) has a flat top corresponding to the current frame, and it decreases with the Hanning function to <NUM> at each end. The following equation represents the window used: <MAT>.

When applied to the concatenated excitation, an input to the frequency transform having a total length Lc =<NUM> samples (Lc = <NUM>Lw + L) is obtained in the practical realization. The windowed concatenated excitation ewc (n) is centered on the current frame and is represented with the following equation: <MAT>.

During the frequency-domain post processing phase, the concatenated excitation is represented in a transform-domain. In this illustrative embodiment, the time-to-frequency conversion is achieved in the windowing and frequency transform module <NUM> using a type II DCT giving a resolution of <NUM> but any other transform can be used. In case another transform (or a different transform length) is used, the frequency resolution (defined above), the number of bands and the number of bins per bands (defined further below) may need to be revised accordingly. The frequency representation of the concatenated and windowed time-domain CELP excitation fe is given below: <MAT>.

Where ewc(n), is the concatenated and windowed time-domain excitation and Lc is the length of the frequency transform. In this illustrative embodiment, the frame length L is <NUM> samples, but the length of the frequency transform Lc is <NUM> samples for a corresponding inner sampling frequency of <NUM>.

After the DCT, the resulting spectrum is divided into critical frequency bands (the practical realization uses <NUM> critical bands in the frequency range <NUM>-<NUM> and <NUM> critical frequency bands in the frequency range <NUM>-<NUM>). The critical frequency bands being used are as close as possible to what is specified in <NPL>, and their upper limits are defined as follows: <MAT>.

The <NUM>-point DCT results in a frequency resolution of <NUM> (<NUM>/640pts). The number of frequency bins per critical frequency band is <MAT>.

The average spectral energy per critical frequency band EB(i) is computed as follows: <MAT>
where fe (h) represents the hth frequency bin of a critical band and ji is the index of the first bin in the ith critical band given by <MAT>.

The spectral analysis also computes the energy of the spectrum per frequency bin, EBIN(k) using the following relation: <MAT>.

Finally, the spectral analysis computes a total spectral energy EC of the concatenated excitation as the sum of the spectral energies of the first <NUM> critical frequency bands using the following relation: <MAT>.

As described in Vaillancourt'<NUM>, the method for enhancing decoded generic sound signal includes an additional analysis of the excitation signal designed to further maximize the efficiency of the inter-harmonic noise reduction by identifying which frame is well suited for the inter-tone noise reduction.

The second stage signal classifier <NUM> not only further separates the decoded concatenated excitation into sound signal categories, but it also gives instructions to the inter-harmonic noise reducer <NUM> regarding the maximum level of attenuation and the minimum frequency where the reduction can starts.

In the presented illustrative example, the second stage signal classifier <NUM> has been kept as simple as possible and is very similar to the signal type classifier described in Vaillancourt'<NUM>. The first operation consists in performing an energy stability analysis similarly as done in equations (<NUM>) and (<NUM>), but using as input the total spectral energy of the concatenated excitation EC as formulated in Equation (<NUM>): <MAT>
where Ed represents the average difference of the energies of the concatenated excitation vectors of two adjacent frames, <MAT> represents the energy of the concatenated excitation of the current frame t, and <MAT> represents the energy of the concatenated excitation of the previous frame t-<NUM>. The average is computed over the last <NUM> frames.

Then, a statistical deviation σC of the energy variation over the last fifteen (<NUM>) frames is calculated using the following relation: <MAT>
where, in the practical realization, the scaling factor p is found experimentally and set to about <NUM>. The resulting deviation σC is compared to four (<NUM>) floating thresholds to determine to what extend the noise between harmonics can be reduced. The output of this second stage signal classifier <NUM> is split into five (<NUM>) sound signal categories eCAT, named sound signal categories <NUM> to <NUM>. Each sound signal category has its own inter-tone noise reduction tuning.

The five (<NUM>) sound signal categories <NUM>-<NUM> can be determined as indicated in the following Table.

The sound signal category <NUM> is a non-tonal, non-stable sound signal category which is not modified by the inter-tone noise reduction technique. This category of the decoded sound signal has the largest statistical deviation of the spectral energy variation and in general comprises speech signal.

Sound signal category <NUM> (largest statistical deviation of the spectral energy variation after category <NUM>) is detected when the statistical deviation σC of spectral energy variation is lower than Threshold <NUM> and the last detected sound signal category is ≥ <NUM>. Then the maximum reduction of quantization noise of the decoded tonal excitation within the frequency band <NUM> to <MAT> Hz (<NUM> in this example, where FS is the sampling frequency) is limited to a maximum noise reduction Rmax of <NUM> dB.

Sound signal category <NUM> is detected when the statistical deviation σC of spectral energy variation is lower than Threshold <NUM> and the last detected sound signal category is ≥ <NUM>. Then the maximum reduction of quantization noise of the decoded tonal excitation within the frequency band <NUM> to <MAT> Hz is limited to a maximum of <NUM> dB.

Sound signal category <NUM> is detected when the statistical deviation σC of spectral energy variation is lower than Threshold <NUM> and when the last detected signal type category is ≥ <NUM>. Then the maximum reduction of quantization noise of the decoded tonal excitation within the frequency band <NUM> to <MAT> Hz is limited to a maximum of <NUM> dB.

The floating thresholds <NUM>-<NUM> help preventing wrong signal type classification. Typically, decoded tonal sound signal representing music gets much lower statistical deviation of its spectral energy variation than speech. However, even music signal can contain higher statistical deviation segment, and similarly speech signal can contain segments with lower statistical deviation. It is nevertheless unlikely that speech and music contents change regularly from one to another on a frame basis. The floating thresholds add decision hysteresis and act as reinforcement of previous state to substantially prevent any misclassification that could result in a suboptimal performance of the inter-harmonic noise reducer <NUM>.

Counters of consecutive frames of sound signal category <NUM>, and counters of consecutive frames of sound signal category <NUM> or <NUM>, are used to respectively decrease or increase the thresholds.

For example, if a counter counts a series of more than <NUM> frames of sound signal category <NUM> or <NUM>, all the floating thresholds (<NUM> to <NUM>) are increased by a predefined value for the purpose of allowing more frames to be considered as sound signal category <NUM>.

The inverse is also true with sound signal category <NUM>. For example, if a series of more than <NUM> frames of sound signal category <NUM> is counted, all the floating thresholds (<NUM> to <NUM>) are decreased for the purpose of allowing more frames to be considered as sound signal category <NUM>. All the floating thresholds <NUM>-<NUM> are limited to absolute maximum and minimum values to ensure that the signal classifier is not locked to a fixed category.

In the case of frame erasure, all the thresholds <NUM>-<NUM> are reset to their minimum values and the output of the second stage classifier is considered as non-tonal (sound signal category <NUM>) for three (<NUM>) consecutive frames (including the lost frame).

If information from a Voice Activity Detector (VAD) is available and it is indicating no voice activity (presence of silence), the decision of the second stage classifier is forced to sound signal category <NUM> (eCAT = <NUM>).

Inter-tone or inter-harmonic noise reduction is performed on the frequency representation of the concatenated excitation as a first operation of the enhancement. The reduction of the inter-tone quantization noise is performed in the noise reducer <NUM> by scaling the spectrum in each critical band with a scaling gain gs limited between a minimum and a maximum gain gmin and gmax. The scaling gain is derived from an estimated signal-to-noise ratio (SNR) in that critical band. The processing is performed on frequency bin basis and not on critical band basis. Thus, the scaling gain is applied on all frequency bins, and it is derived from the SNR computed using the bin energy divided by an estimation of the noise energy of the critical band including that bin. This feature allows for preserving the energy at frequencies near harmonics or tones, thus substantially preventing distortion, while strongly reducing the noise between the harmonics.

The inter-tone noise reduction is performed in a per bin manner over all <NUM> bins. After having applied the inter-tone noise reduction on the spectrum, another operation of spectrum enhancement is performed. Then the inverse DCT is used to reconstruct the enhanced concatenated excitation <MAT> signal as described later.

The minimum scaling gain gmin is derived from the maximum allowed inter-tone noise reduction in dB, Rmax. As described above, the second stage of classification makes the maximum allowed reduction varying between <NUM> and <NUM> dB. Thus minimum scaling gain is given by <MAT>.

The scaling gain is computed related to the SNR per bin. Then per bin noise reduction is performed as mentioned above. In the current example, per bin processing is applied on the entire spectrum to the maximum frequency of <NUM>. In this illustrative embodiment, the noise reduction starts at the <NUM>th critical band (i.e. no reduction is performed below <NUM>). To reduce any negative impact of the technique, the second stage classifier can push the starting critical band up to the <NUM>th band (<NUM>). This means that the first critical band on which the noise reduction is performed is between <NUM> and <NUM>, and it can vary on a frame basis. In a more conservative implementation, the minimum band where the noise reduction starts can be set higher.

The scaling for a certain frequency bin k is computed as a function of SNR, given by <MAT>.

Usually gmax is equal to <NUM> (i.e. no amplification is allowed), then the values of ks and cs are determined such as gs = gmin for SNR = 1dB, and gs =<NUM> for SNR = <NUM> dB. That is, for SNRs of <NUM> dB and lower, the scaling is limited to gmin and for SNRs of <NUM> dB and higher, no noise reduction is performed (gs = <NUM>). Thus, given these two end points, the values of ks and cs in Equation (<NUM>) are given by <MAT>.

If gmax is set to a value higher than <NUM>, then it allows the process to slightly amplify the tones having the highest energy. This can be used to compensate for the fact that the CELP codec, used in the practical realization, doesn't match perfectly the energy in the frequency domain. This is generally the case for signals different from voiced speech.

The SNR per bin in a certain critical band i is computed as <MAT>
where <MAT> and <MAT> denote the energy per frequency bin for the past and the current frame spectral analysis, respectively, as computed in Equation (<NUM>), NB(i) denotes the noise energy estimate of the critical band i, ji is the index of the first bin in the ith critical band, and MB(i) is the number of bins in the critical band i as defined above.

The smoothing factor is adaptive and it is made inversely related to the gain itself. In this illustrative embodiment the smoothing factor is given by αgs = <NUM> - gs. That is, the smoothing is stronger for smaller gains gs. This approach substantially prevents distortion in high SNR segments preceded by low SNR frames, as it is the case for voiced onsets. In the illustrative embodiment, the smoothing procedure is able to quickly adapt and to use lower scaling gains on the onset.

In case of per bin processing in a critical band with index i, after determining the scaling gain as in Equation (<NUM>), and using SNR as defined in Equations (<NUM>), the actual scaling is performed using a smoothed scaling gain gBIN,LP updated in every frequency analysis as follows <MAT>.

Temporal smoothing of the gains substantially prevents audible energy oscillations while controlling the smoothing using αgs substantially prevents distortion in high SNR segments preceded by low SNR frames, as it is the case for voiced onsets or attacks.

The scaling in the critical band i is performed as <MAT>
where ji is the index of the first bin in the critical band i and MB(i) is the number of bins in that critical band.

The smoothed scaling gains gBIN,LP(k) are initially set to <NUM>. Each time a non-tonal sound frame is processed eCAT =<NUM>, the smoothed gain values are reset to <NUM> to reduce any possible reduction in the next frame.

Note that in every spectral analysis, the smoothed scaling gains gBIN,LP(k) are updated for all frequency bins in the entire spectrum. Note that in case of low-energy signal, inter-tone noise reduction is limited to -<NUM> dB. This happens when the maximum noise energy in all critical bands, max(NB(i)), i = <NUM>,. ,<NUM>, is less or equal to <NUM>.

In this illustrative embodiment, the inter-tone quantization noise energy per critical frequency band is estimated in per band noise level estimator <NUM> as being the average energy of that critical frequency band excluding the maximum bin energy of the same band. The following formula summarizes the estimation of the quantization noise energy for a specific band i: <MAT>
where ji is the index of the first bin in the critical band i, MB(i) is the number of bins in that critical band, EB(i) is the average energy of a band i, EBIN (h+ ji) is the energy of a particular bin and NB(i) is the resulting estimated noise energy of a particular band i. In the noise estimation equation (<NUM>), q(i) represents a noise scaling factor per band that is found experimentally and can be modified depending on the implementation where the post processing is used. In the practical realization, the noise scaling factor is set such that more noise can be removed in low frequencies and less noise in high frequencies as it is shown below: <MAT>.

The second operation of the frequency post processing provides an ability to retrieve frequency information that is lost within the coding noise. The CELP codecs, especially when used at low bitrates, are not very efficient to properly code frequency content above <NUM>-<NUM>. The main idea here is to take advantage of the fact that music spectrum often does not change substantially from frame to frame. Therefore a long term averaging can be done and some of the coding noise can be eliminated. The following operations are performed to define a frequency-dependent gain function. This function is then used to further enhance the excitation before converting it back to the time domain.

The first operation consists in creating in the mask builder <NUM> a weighting mask based on the normalized energy of the spectrum of the concatenated excitation. The normalization is done in spectral energy normalizer <NUM> such that the tones (or harmonics) have a value above <NUM> and the valleys a value under <NUM>. To do so, the bin energy spectrum EBIN(k) is normalized between <NUM> and <NUM> to get the normalized energy spectrum En(k) using the following equation: <MAT>
where EBIN(k) represents the bin energy as calculated in equation (<NUM>). Since the normalization is performed in the energy domain, many bins have very low values. In the practical realization, the offset <NUM> has been chosen such that only a small part of the normalized energy bins would have a value below <NUM>. Once the normalization is done, the resulting normalized energy spectrum is processed through a power function to obtain a scaled energy spectrum. In this illustrative example, a power of <NUM> is used to limit the minimum values of the scaled energy spectrum to around <NUM> as shown in the following formula: <MAT>
where En (k) is the normalized energy spectrum and Ep (k) is the scaled energy spectrum. More aggressive power function can be used to reduce furthermore the quantization noise, e.g. a power of <NUM> or <NUM> can be chosen, possibly with an offset closer to one. However, trying to remove too much noise can also result in loss of important information.

Using a power function without limiting its output would rapidly lead to saturation for energy spectrum values higher than <NUM>. A maximum limit of the scaled energy spectrum is thus fixed to <NUM> in the practical realization, creating a ratio of approximately <NUM> between the maximum and minimum normalized energy values. This is useful given that a dominant bin may have a slightly different position from one frame to another so that it is preferable for a weighting mask to be relatively stable from one frame to the next frame. The following equation shows how the function is applied: <MAT>
where Epl(k) represents limited scaled energy spectrum and Ep(k) is the scaled energy spectrum as defined in equation (<NUM>).

With the last two operations, the position of the most energetic pulses begins to take shape. Applying power of <NUM> on the bins of the normalized energy spectrum is a first operation to create an efficient mask for increasing the spectral dynamics. The next two (<NUM>) operations further enhance this spectrum mask. First the scaled energy spectrum is smoothed in energy averager <NUM> along the frequency axis from low frequencies to the high frequencies using an averaging filter. Then, the resulting spectrum is processed in energy smoother <NUM> along the time domain axis to smooth the bin values from frame to frame.

The smoothing of the scaled energy spectrum along the frequency axis can be described with following function: <MAT>.

Finally, the smoothing along the time axis results in a time-averaged amplification/attenuation weighting mask Gm to be applied to the spectrum <MAT>. The weighting mask, also called gain mask, is described with the following equation: <MAT>
where Epl is the scaled energy spectrum smoothed along the frequency axis, t is the frame index, and Gm is the time-averaged weighting mask.

A slower adaptation rate has been chosen for the lower frequencies to substantially prevent gain oscillation. A faster adaptation rate is allowed for higher frequencies since the positions of the tones are more likely to change rapidly in the higher part of the spectrum. With the averaging performed on the frequency axis and the long term smoothing performed along the time axis, the final vector obtained in (<NUM>) is used as a weighting mask to be applied directly on the enhanced spectrum of the concatenated excitation <MAT> of equation (<NUM>).

The weighting mask defined above is applied differently by the spectral dynamics modifier <NUM> depending on the output of the second stage excitation classifier (value of eCAT shown in table <NUM>). The weighting mask is not applied if the excitation is classified as category <NUM> (eCAT = <NUM>; i.e. high probability of speech content). When the bitrate of the codec is high, the level of quantization noise is in general lower and it varies with frequency. That means that the tones amplification can be limited depending on the pulse positions inside the spectrum and the encoded bitrate. Using another encoding method than CELP, e.g. if the excitation signal comprises a combination of time- and frequency-domain coded components, the usage of the weighting mask might be adjusted for each particular case. For example, the pulse amplification can be limited, but the method can be still used as a quantization noise reduction.

For the first <NUM> (the first <NUM> bins in the practical realization, the mask is applied if the excitation is not classified as category <NUM> (eCAT≠<NUM>). Attenuation is possible but no amplification is however performed in this frequency range (maximum value of the mask is limited to <NUM>).

If more than <NUM> consecutive frames are classified as category <NUM> (eCAT = <NUM>; i.e. high probability of music content), but not more than <NUM> frames, then the weighting mask is applied without amplification for all the remaining bins (bins <NUM> to <NUM>) (the maximum gain Gmax0 is limited to <NUM>, and there is no limitation on the minimum gain).

When more than <NUM> frames are classified as category <NUM>, for the frequencies between <NUM> and <NUM> (bins <NUM> to <NUM> in the practical realization) the maximum gain Gmax1 is set to <NUM> for bitrates below <NUM> bits per second (bps). Otherwise the maximum gain Gmax1 is set to <NUM>. In this frequency band, the minimum gain Gmin1 is fixed to <NUM> only if the bitrate is higher than <NUM> bps, otherwise there is no limitation on the minimum gain.

For the band <NUM> to <NUM> (bins <NUM> to <NUM> in the practical realization), the maximum gain Gmax2 is limited to <NUM> for bitrates below <NUM> bps, and it is limited to <NUM> for the bitrates equal to or higher than <NUM> bps and lower than <NUM> bps. Otherwise, then maximum gain Gmax2 is limited to <NUM>. Still in this frequency band, the minimum gain Gmin2 is fixed to <NUM> only if the bitrate is higher than <NUM> bps, otherwise there is no limitation on the minimum gain.

For the band <NUM> to <NUM> (bins <NUM> to <NUM> in the practical realization), the maximum gain Gmax3 is limited to <NUM> for bitrates below <NUM> bps and to <NUM> otherwise. In this frequency band, the the minimum gain Gmin<NUM> is fixed to <NUM> only if the bitrate is higher than <NUM> bps, otherwise there is no limitation on the minimum gain. It should be noted that other tunings of the maximum and the minimum gain might be appropriate depending on the characteristics of the codec.

The next pseudo-code shows how the final spectrum of the concatenated excitation f"e is affected when the weighting mask Gm is applied to the enhanced spectrum <MAT>. Note that the first operation of the spectrum enhancement (as described in section <NUM>) is not absolutely needed to do this second enhancement operation of per bin gain modification.

Here f'e represents the spectrum of the concatenated excitation previously enhanced with the SNR related function gBIN,LP(k) of equation (<NUM>), Gm is the weighting mask computed in equation (<NUM>), Gmax and Gmin are the maximum and minimum gains per frequency range as defined above, t is the frame index with t=<NUM> corresponding to the current frame, and finally f" e is the final enhanced spectrum of the concatenated excitation.

After the frequency domain enhancement is completed, an inverse frequency-to-time transform is performed in frequency to time domain converter <NUM> in order to get the enhanced time domain excitation back. In this illustrative embodiment, the frequency-to-time conversion is achieved with the same type II DCT as used for the time-to-frequency conversion. The modified time-domain excitation <MAT> is obtained as <MAT>
where f"e is the frequency representation of the modified excitation, <MAT> is the enhanced concatenated excitation, and Lc is the length of the concatenated excitation vector.

Since it is not desirable to add delay to the synthesis, it has been decided to avoid overlap-and-add algorithm in the construction of the practical realization. The practical realization takes the exact length of the final excitation ef used to generate the synthesis directly from the enhanced concatenated excitation, without overlap as shown in the equation below: <MAT>.

Here Lw represents the windowing length applied on the past excitation prior the frequency transform as explained in equation (<NUM>). Once the excitation modification is done and the proper length of the enhanced, modified time-domain excitation from the frequency to time domain converter <NUM> is extracted from the concatenated vector using the frame excitation extractor <NUM>, the modified time domain excitation is processed through the synthesis filter <NUM> to obtain the enhanced synthesis signal for the current frame. This enhanced synthesis is used to overwrite the originally decoded synthesis from synthesis filter <NUM> in order to increase the perceptual quality. The decision to overwrite is taken by the overwriter <NUM> including a decision test point <NUM> controlling the switch <NUM> as described above in response to the information from the class selection test point <NUM> and from the second stage signal classifier <NUM>.

<FIG> is a simplified block diagram of an example configuration of hardware components forming the decoder of <FIG>. A decoder <NUM> may be implemented as a part of a mobile terminal, as a part of a portable media player, or in any similar device. The decoder <NUM> comprises an input <NUM>, an output <NUM>, a processor <NUM> and a memory <NUM>.

The input <NUM> is configured to receive the AMR-WB bitstream <NUM>. The input <NUM> is a generalization of the receiver <NUM> of <FIG>. Non-limiting implementation examples of the input <NUM> comprise a radio interface of a mobile terminal, a physical interface such as for example a universal serial bus (USB) port of a portable media player, and the like. The output <NUM> is a generalization of the D/A converter <NUM>, amplifier <NUM> and loudspeaker <NUM> of <FIG> and may comprise an audio player, a loudspeaker, a recording device, and the like. Alternatively, the output <NUM> may comprise an interface connectable to an audio player, to a loudspeaker, to a recording device, and the like. The input <NUM> and the output <NUM> may be implemented in a common module, for example a serial input/output device.

The processor <NUM> is operatively connected to the input <NUM>, to the output <NUM>, and to the memory <NUM>. The processor <NUM> is realized as one or more processors for executing code instructions in support of the functions of the time domain excitation decoder <NUM>, of the LP synthesis filters <NUM> and <NUM>, of the first stage signal classifier <NUM> and its components, of the excitation extrapolator <NUM>, of the excitation concatenator <NUM>, of the windowing and frequency transform module <NUM>, of the second stage signal classifier <NUM>, of the per band noise level estimator <NUM>, of the noise reducer <NUM>, of the mask builder <NUM> and its components, of the spectral dynamics modifier <NUM>, of the spectral to time domain converter <NUM>, of the frame excitation extractor <NUM>, of the overwriter <NUM> and its components, and of the de-emphasizing filter and resampler <NUM>.

The memory <NUM> stores results of various post processing operations. More particularly, the memory <NUM> comprises the past excitation buffer memory <NUM>. In some variants, intermediate processing results from the various functions of the processor <NUM> may be stored in the memory <NUM>. The memory <NUM> may further comprise a non-transient memory for storing code instructions executable by the processor <NUM>. The memory <NUM> may also store an audio signal from the de-emphasizing filter and resampler <NUM>, providing the stored audio signal to the output <NUM> upon request from the processor <NUM>.

Those of ordinary skill in the art will realize that the description of the device and method for reducing quantization noise in a music signal or other signal contained in a time-domain excitation decoded by a time-domain decoder are illustrative only and are not intended to be in any way limiting. Other embodiments will readily suggest themselves to such persons with ordinary skill in the art having the benefit of the present disclosure. Furthermore, the disclosed device and method may be customized to offer valuable solutions to existing needs and problems of improving music content rendering of linear-prediction (LP) based codecs.

In the interest of clarity, not all of the routine features of the implementations of the device and method are shown and described. It will, of course, be appreciated that in the development of any such actual implementation of the device and method for reducing quantization noise in a music signal contained in a time-domain excitation decoded by a time-domain decoder, numerous implementation-specific decisions may need to be made in order to achieve the developer's specific goals, such as compliance with application-, system-, network- and business-related constraints, and that these specific goals will vary from one implementation to another and from one developer to another. Moreover, it will be appreciated that a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking of engineering for those of ordinary skill in the field of sound processing having the benefit of the present disclosure.

In accordance with the present disclosure, the components, process operations, and/or data structures described herein may be implemented using various types of operating systems, computing platforms, network devices, computer programs, and/or general purpose machines. In addition, those of ordinary skill in the art will recognize that devices of a less general purpose nature, such as hardwired devices, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), or the like, may also be used. Where a method comprising a series of process operations is implemented by a computer or a machine and those process operations may be stored as a series of instructions readable by the machine, they may be stored on a tangible medium.

Claim 1:
A mask builder implemented in a sound signal decoder for creating a weighting mask for application to an excitation signal, in frequency domain, derived from a decoded synthesis filter excitation, comprising:
a normalizer of an energy spectrum of the decoded synthesis filter excitation to get a normalized energy spectrum;
means for scaling the normalized energy spectrum to obtain a scaled energy spectrum;
means for limiting the scaled energy spectrum to obtain a limited scaled energy spectrum;
an averaging filter for smoothing the limited scaled energy spectrum along a frequency axis; and
an energy spectrum smoother for processing, along a time axis, the limited scaled energy spectrum smoothed in the averaging filter to create the weighting mask.