The present invention relates to source coding systems utilising high frequency reconstruction (HFR) such as Spectral Band Replication, SBR [WO 98/57436] or related methods. It improves performance of both high quality methods (SBR), as well as low quality copy-up methods [U.S. Pat. No. 5,127,054]. It is applicable to both speech coding and natural audio coding systems.
High frequency reconstruction (HFR) is a relatively new technology to enhance the quality of audio and speech coding algorithms. To date it has been introduced for use in speech codecs, such as the wideband AMR coder for 3rd generation cellular systems, and audio coders such as mp3 or AAC, where the traditional waveform codecs are supplemented with the high frequency reconstruction algorithm SBR (resulting in mp3PRO or AAC+SBR).
High frequency reconstruction is a very efficient method to code high frequencies of audio and speech signals. As it cannot perform coding on its own, it is always used in combination with a normal waveform based audio coder (e.g. AAC, mp3) or a speech coder. These are responsible for coding the lower frequencies of the spectrum. The basic idea of high frequency reconstruction is that the higher frequencies are not coded and transmitted, but reconstructed in the decoder based on the lower spectrum with help of some additional parameters (mainly data describing the high frequency spectral envelope of the audio signal) which are transmitted in a low bit rate bit stream, which can be transmitted separately or as ancillary data of the base coder. The additional parameters could also be omitted, but as of today the quality reachable by such an approach will be worse compared to a system using additional parameters.
Especially for Audio Coding, HFR significantly improves the coding efficiency especially in the quality range “sounds good, but is not transparent”. This has two main reasons:
A basic parameter for a system using HFR is the so-called cross over frequency (COF), i.e. the frequency where normal waveform coding stops and the HFR frequency range begins. The simplest arrangement is to have the COF at a constant frequency. A more advanced solution that has been introduced already is to dynamically adjust the COF to the characteristics of the signal to be coded.
A main problem with HFR is that an audio signal may contain components in higher frequencies which are difficult to reconstruct with the current HFR method, but could more easily be reproduced by other means, e.g. a waveform coding methods or by synthetic signal generation. A simple example is coding of a signal only consisting of a sine wave above the COF,
A solution to the problems outlined above, and subject of this invention, is therefore the idea of a highly flexible HFR system that does not only allow to change the COF, but allows a much more flexible composition of the decoded/reconstructed spectrum by a frequency selective composition of different methods.
Basis for the invention is a mechanism in the HFR system enabling a frequency dependent selection of different coding or reconstruction methods. This could be done for example with the 64 band filter bank analysis/synthesis system as used in SBR. A complex filter bank providing alias free equalisation functions can be especially useful.
The main inventive step is that the filter bank is now used not only to serve as a filter for the COF and the following envelope adjustment. It is also used in a highly flexible way to select the input for each of the filter bank channels out of the following sources:
Thus, waveform coding, other coding methods and HFR reconstruction can now be used in any arbitrary spectral arrangement to achieve the highest possible quality and coding gain. It should be evident however, that the invention is not limited to the use of a subband filterbank, but it can of course be used with arbitrary frequency selective filtering.
The present invention comprises the following features:
In other embodiments, a method performed in an audio decoder for reconstructing an original audio signal having a lowband portion and a highband portion is disclosed. The method includes receiving an encoded audio signal and extracting reconstruction parameters from the encoded audio signal. The encoded audio signal includes spectral coefficients of the lowband portion and not the highband portion, and the reconstruction parameters include a cross over frequency, spectral envelope information, and location information. The spectral envelope information includes a spectral envelope value for each frequency band of the highband portion, and the location information specifies a particular frequency band of the highband portion. The method further includes decoding the encoded audio signal with a core audio decoder to obtain a decoded lowband portion and regenerating the highband portion based at least in part on the cross over frequency and the decoded lowband portion to obtain a regenerated highband portion. The core audio decoder operates at a first sampling frequency and the regenerating operates at a second sampling frequency that is twice the first sampling frequency. The method also includes creating a synthetic sinusoid with a level based at least in part on the spectral envelope value for the particular subband and a noise floor value for the particular subband and adding the synthetic sinusoid to the regenerated highband portion in the particular frequency band specified by the location information. Finally, the method includes combining the lowband portion and the regenerated highband portion to obtain a full bandwidth audio signal. The audio decoder may be implemented at least in part with hardware.
The present invention will now be described by way of illustrative examples, not limiting the scope or spirit of the invention, with reference to the accompanying drawings, in which:
The below-described embodiments are merely illustrative for the principles of the present invention for improvement of high frequency reconstruction systems. It is understood that modifications and variations of the arrangements and the details described herein will be apparent to others skilled in the art. It is the intent, therefore, to be limited only by the scope of the impending patent claims and not by the specific details presented by way of description and explanation of the embodiments herein.
The inventive encoder in
In the following, the functional interdependence of the above-referenced means will be described.
In particular the inventive encoder is for encoding an audio signal input at an audio signal input 900 to obtain an encoded signal. The encoded signal is intended for decoding using a high frequency regenerating technique which is suited for generating frequency components above a predetermined frequency which is also called the cross-over frequency, based on the frequency components below the predetermined frequency.
It is to be noted here that as a high frequency regeneration technique, a broad variety of such techniques that became known recently can be used. In this regard, the term “frequency component” is to be understood in a broad sense. This term at least includes spectral coefficients obtained by means of a time domain/frequency domain transform such as a FFT, a MDCT or something else. Additionally, the term “frequency component” also includes band pass signals, i.e., signals obtained at the output of frequency-selective filters such as a low pass filter, a band pass filter or a high pass filter.
Irrespective of the fact, whether the core coder 702 is part of the inventive encoder, or whether the inventive encoder is used as an add-on module for an existing core coder, the encoder includes means for providing an encoded input signal, which is a coded representation of an input signal, and which is coded using a coding algorithm. In this regard, it is to be remarked that the input signal represents a frequency content of the audio signal below a predetermined frequency, i.e., below the so-called cross-over frequency. To illustrate the fact that the frequency-content of the input signal only includes a low-band part of the audio signal, a low pass filter 902 is shown in
At the output of the core coder 702, an encoded input signal is present which, with regard to its frequency content, is similar to the input signal but is different from the audio signal in that the encoded input signal does not include any frequency components above the predetermined frequency.
The high frequency regeneration block 703c is for performing the high frequency regeneration technique on the input signal, i.e., the signal input into the core coder 702, or on a coded and again decoded version thereof. In case this alternative is selected, the inventive encoder also includes a core decoder 903 that receives the encoded input signal from the core coder and decodes this signals so that exactly the same situation is obtained that is present at the decoder/receiver side, on which a high frequency regeneration technique is to be performed for enhancing the audio bandwidth for encoded signals that have been transmitted using a low bit rate.
The HFR block 703c outputs a regenerated signal that has frequency components above the predetermined frequency.
As it is shown in
The difference detector output is connected to an input of a difference describer block 703b. The difference describer block 703b is for describing detected differences in a certain way to obtain additional information on the detected differences. These additional information is suitable for being input into a combiner means 705 that combines the encoded input signal, the additional information and several other signals that may be produced to obtain an encoded signal to be transmitted to a receiver or to be stored on a storage medium. A prominent example for an additional information is a spectral envelope information produced by a spectral envelope estimator 704. The spectral envelope estimator 704 is arranged for providing a spectral envelope information of the audio signal above the predetermined frequency, i.e., above the cross-over frequency. This spectral envelope information is used in a HFR module on the decoder side to synthesize spectral components of a decoded audio signal above the predetermined frequency.
In a preferred embodiment of the present invention, the spectral envelope estimator 704 is arranged for providing only a coarse representation of the spectral envelope. In particular, it is preferred to provide only one spectral envelope value for each scale factor band. The use of scale factor bands is known for those skilled in the art. In connection with transform coders such as MP3 or MPEG-AAC, a scale factor band includes several MDCT lines. The detailed organisation of which spectral lines belong to which scale factor band is standardized, but may vary. Generally, a scale factor band includes several spectral lines (for example MDCT lines, wherein MDCT stands for modified discrete cosine transform), or bandpass signals, the number of which varies from scale factor band to scale factor band. Generally, one scale factor band includes at least more than two and normally more than ten or twenty spectral lines or band pass signals.
In accordance with a preferred embodiment of the present invention, the inventive encoder additionally includes a variable cross-over frequency. The control of the cross-over frequency is performed by the inventive difference detector 703a. The control is arranged such that, when the difference detector comes to the conclusion that a higher cross-over frequency would highly contribute to reducing artefacts that would be produced by a pure HFR, the difference detector can instruct the low pass filter 902 and the spectral envelope estimator 704 as well as the core coder 702 to put the cross-over frequency to higher frequencies for extending the bandwidth of the encoded input signal.
On the other hand, the difference detector can also be arranged for reducing the cross-over frequency in case it finds out that a certain bandwidth below the cross-over frequency is acoustically not important and can, therefore, easily be produced by an HFR synthesis in the decoder rather than having to be directly coded by the core coder.
Bits that are saved by decreasing the cross-over frequency can, on the other hand, be used for the case, in which the cross-over frequency has to be increased so that a kind of bit-saving-option can be obtained which is known for a psychoacoustic coating method. In these methods, mainly tonal components that are hard to encode, i.e., that need many bits to be coded without artefacts can consume more bits, when, on the other hand, white noisy signal portions that are easy to code, i.e., that need only a low number of bits for being coded without artefacts are also present in the signal and are recognized by a certain bit-saving control.
To summarize, the cross-over frequency control is arranged for increasing or decreasing the predetermined frequency, i.e., the cross-over frequency in response to findings made by the difference detector which, in general assesses the effectiveness and performance of the HFR block 703c to simulate the actual situation in a decoder.
Preferably, the difference detector 703a is arranged for detecting spectral lines in the audio signal that are not included in the regenerated signal. To do this, the difference detector preferably includes a predictor for performing prediction operations on the regenerated signal and the audio signal, and means for determining a difference in obtained prediction gains for the regenerated signal and the audio signal. In particular, frequency-related portions in the regenerated signal or in the audio signal are determined, in which a difference in predictor gains is larger than the gain threshold which is the significance threshold in this preferred embodiment.
It is to be noted here that the difference detector 703a preferably works as a frequency-selective element in that it assesses corresponding frequency bands in the regenerated signal on the one hand and the audio signal on the other hand. To this end, the difference detector can include time-frequency conversion elements for converting the audio signal and the regenerated signal. In case the regenerated signal produced by the HFR block 703c is already present as a frequency-related representation, which is the case in the preferred high frequency regeneration method applied for the present invention, no such time domain/frequency domain conversion means are necessary.
In case one has to use a time domain-frequency domain conversion element such as for converting the audio signal, which is normally a time-domain signal, a filter bank approach is preferred. An analysis filter bank includes a bank of suitably dimensioned adjacent band pass filter, where each band pass filter outputs a band pass signal having a bandwidth defined by the bandwidth of the respective band pass filter. The band pass filter signal can be interpreted as a time-domain signal having a restricted bandwidth compared to the signal from which it has been derived. The centre frequency of a band pass signal is defined by the location of the respective band pass filter in the analysis filter bank as it is known in the art.
As it will be described later, the preferred method for determining differences above a significance threshold is a determination based on tonality measures and, in particular, on a tonal to noise ratio, since such methods are suited to find out spectral lines in signals or to find out noise-like portions in signals in a robust and efficient manner.
Detection of spectral lines to be coded
In order to be able to code the spectral lines that will be missing in the decoded output after HFR, it essential to detect these in the encoder. In order to accomplish this, a suitable synthesis of the subsequent decoder HFR needs to be performed in the encoder. This does not imply that the output of this synthesis needs to be a time domain output signal similar to that of the decoder. It is sufficient to observe and synthesise an absolute spectral representation of the HFR in the decoder. This can be accomplished by using prediction in a QMF filterbank with subsequent peak-picking of the difference in prediction gain between the original and a HFR counterpart. Instead of peak-picking of the difference in prediction gain, differences of the absolute spectrum can also be used. For both methods the frequency dependent prediction gain or the absolute spectrum of the HFR are synthesised by simply re-arranging the frequency distribution of the components similar to what the HFR will do in the decoder.
Once the two representations are obtained, the original signal and the synthesised HFR signal, the detection can be done in several ways.
In a QMF filterbank linear prediction of low order can be performed, e.g. LPC-order 2, for the different channels. Given the energy of the predicted signal and the total energy of the signal, the tonal to noise ratio can be defined according to
is the energy of the signal block, and E is the energy of the prediction error block, for a given filterbank channel. This can be calculated for the original signal, and given that a representation of how the tonal to noise ratio for different frequency bands in the HFR output in the decoder can be obtained. The difference between the two on an arbitrary frequency selective base (larger than the frequency resolution of the QMF), can thus be calculated. This difference vector representing the difference of tonal to noise ratios, between the original and the expected output from the HFR in the decoder, is subsequently used to determine where an additional coding method is required, in order to compensate for the short-comings of the given HFR technique,
The above detection can also be performed using an arbitrary spectral representation of the original, and a synthesised HFR output, for instance peak-picking in an absolute spectrum [“Extraction of spectral peak parameters using a short-time Fourier transform modeling [sic] and no sidelobe windows.” Ph Depalle, T Hélie, IRCAM], or similar methods, and then compare the tonal components detected in the original and the components detected in the synthesised HFR output.
When a spectral line has been deemed missing from the HFR output, it needs to be coded efficiently, transmitted to the decoder and added to the HFR output. Several approaches can be used; interleaved waveform coding, or e.g. parametric coding of the spectral line.
QMF/hybrid filterbank, interleaved wave form coding.
If the spectral line to be coded is situated below FS/2 of the core coder, it can be coded by the same. This means that the core coder codes the entire frequency range up to COF and also a defined frequency range surrounding the tonal component, that will not be reproduced by the HFR in the decoder. Alternatively, the tonal component can be coded by an arbitrary wave form coder, with this approach the system is not limited by the FS/2 of the core coder, but can operate on the entire frequency range of the original signal.
To this end, the core coder control unit 910 is provided in the inventive encoder. In case the difference detector 703a determines a significant peak above the predetermined frequency but below half the value of the sampling frequency (FS/2), it addresses the core coder 702 to core-encode a band pass signal derived from the audio signal, wherein the frequency band of the band pass signal includes the frequency, where the spectral line has been detected, and, depending on the actual implementation, also a specific frequency band, which embeds the detected spectral line. To this end, the core coder 702 itself or a controllable band pass filter within the core coder filters the relevant portion out of the audio signal, which is directly forwarded to the core coder as it is shown by a dashed line 912.
In this case, the core coder 702 works as the difference describer 703b in that it codes the spectral line above the cross-over frequency that has been detected by the difference detector. The additional information obtained by the difference describer 703b, therefore, corresponds to the encoded signal output by the core coder 702 that relates to the certain band of the audio signal above the predetermined frequency but below half the value of the sampling frequency (FS/2).
To better illustrate the frequency scheduling mentioned before, reference is made to
In case a detected spectral line is above FS/2, the core coder 702 cannot work as the difference describer 703b. In this case, as it is outlined above, completely different coding algorithms have to be applied in the difference describer for the coding/obtaining additional information on spectral lines in the audio signal that will not be reproduced by an ordinary HFR technique.
In the following, reference is made to
In particular, the inventive decoder includes means for obtaining a decoded input signal, which is produced by decoding the encoded input signal in accordance with the coding algorithm. To this end, the inventive decoder can include a core decoder 803 as shown in
As a key component, the inventive decoder additionally includes a high frequency regeneration means for performing a high frequency regeneration technique similar to the high frequency regeneration technique that has been implemented by the HFR block 703c as shown in
In accordance with the present invention, a producer that includes the functionalities of block 806 and 807 from
As will be outlined later, the producer 806, 807 can use the regenerated signal output by the HFR block 804 and simply combine it with the low band decoded signal output by the core decoder 803 and than insert spectral lines based on the additional information. Alternatively, and preferably, the producer also does some manipulation of the HFR-generated spectral lines as will be outlined with respect to
The above proceeding is based on a spectral envelope parameter estimation performed in the encoder. In a spectral band above the predetermined frequency, i.e., the cross-over frequency, in which a spectral line is positioned, the spectral envelope estimator estimates the energy in this band. Such a band is for example a scale factor band. Since the spectral envelope estimator accumulates the energy in this band irrespective of the fact whether the energy stems from noisy spectral lines or certain remarkable peaks, i.e., tonal spectral lines, the spectral envelope estimate for the given scale factor band includes the energy of the spectral line as well as the energy of the “noisy” spectral lines in the given scale factor band.
To use the spectral energy estimate information transmitted in connection with the encoded signal as accurate as possible, the inventive decoder accounts for the energy accumulation method in the encoder by adjusting the inserted spectral line as well as the neighbouring “noisy” spectral lines in the given scale factor band so that the total energy, i.e., the energy of all lines in this band corresponds to the energy dictated by the transmitted spectral envelope estimate for this scale factor band.
The HFR algorithm can be a pure harmonic or an approximate harmonic HFR algorithm or can be a low-complexity HFR algorithm, which includes the transposition of several consecutive analysis filter bank channels below the predetermined frequency to certain consecutive synthesis filter bank channels above the predetermined frequency. Additionally, the block 1208 preferably includes an envelope adjustment function so that the magnitudes of the transposed spectral lines are adjusted such that the accumulated energy of the adjusted spectral lines in one scale factor band for example corresponds to the spectral envelope value for the scale factor band.
From
With respect to the subsequent adaption/sine insertion method, it is to be noted here that this adaption or “manipulation” is done by the producer 806, 807 in
It is to be noted here that a certain channel ls into which the synthetic sine signal is to be inserted is treated different from the other channels in the given scale factor band 1212 as will be outlined below. This “treatment” of the HFR-regenerated channel signals as output by the block 1208 is, as has been outlined above, done by the manipulator 1210 which is part of the producer 806, 807 from
Parametric Coding of Spectral Lines
An example of a filterbank based system using parametric coding of missing spectral lines is outlined below.
When using an HFR method where the system uses adaptive noise floor addition according to [PCT/SE00/00159], only the frequency location of the missing spectral line needs to be coded, since the level of the spectral line is implicitly given by the envelope data and the noise-floor data. The total energy of a given scalefactor band is given by the energy data, and the tonal/noise energy ration is given by the noise floor level data. Furthermore, in the high-frequency domain the exact location of the spectral line is of less importance, since the frequency resolution of the human auditory system is rather coarse at higher frequencies. This implies that the spectral lines can be coded very efficiently, essentially with a vector indicating for each scalefactor band whether a sine should be added in that particular band in the decoder.
The spectral lines can be generated in the decoder in several ways. One approach utilises the QMF filterbank already used for envelope adjustment of the HFR signal. This is very efficient since it is simple to generate sinewaves in a subband filterbank, provided that they are placed in the middle of a filter channel in order to not generate aliasing in adjacent channels. This is not a severe restriction since the frequency location of the spectral line is usually rather coarsely quantised.
If the spectral envelope data sent from the encoder to the decoder is represented by grouped subband filterbank energies, in time and frequency, the spectral envelope vector may at a given time be represented by:
ē=[e(1), e(2), . . . , e(M)],
and the noise-floor level vector may be described according to:
Here the energies and noise floor data are averaged over the QMF filterbank bands described by a vector
containing the QMF-band entries form the lowest QMF-band used (lsb) to the highest (usb), whose length is M+1, and where the limits of each scalefactor band (in QMF bands) are given by:
where ll is the lower limit and lu is the upper limit of scalefactor band n. In the above the noise-floor level data vector
If a synthetic sine is generated in one filterbank channel, this needs to be considered for all the subband filter bank channels included in that particular scalefactorband. Since this is the highest frequency resolution of the spectral envelope in that frequency range. If this frequency resolution is also used for signalling the frequency location of the spectral lines that are missing from the HFR and needs to be added to the output, the generation and compensation for these synthetic sines can be done according to below.
Firstly, all the subband channels within the current scalefactor band need to be adjusted so the average energy for the band is retained, according to:
where ll and lu are the limits for the scalefactor band where a synthetic sine will be added, xre and xim are the real and imaginary subband samples, l is the channel index, and
is the required gain adjustment factor, where n is the current scalefactor band. It is to be mentioned here that the above equation is not valid for the spectral line/band pass signal of the filter bank channel, in which the sine will be placed.
It is to be noted here that the above equation is only valid for the channels in the given scale factor band extending from llow to lup except the band pass signal in the channel having the number ls. This signal is treated by means of the following equation group.
The manipulator 1210 performs the following equation for the channel having the channel number ls, i.e. modulating the band pass signal in the channel ls by means of the complex modulation signal representing a synthetic sine wave. Additionally, the manipulator 1210 performs weighting of the spectral line output from the HFR block 1208 as well as determining the level of the synthetic sine by means of the synthetic sine adjustment factor gsine. Therefore the following equation is valid only for a filterbank channel ls into which a sine will be placed.
Accordingly, the sine is placed in QMF channel ls where ll≦ls<lu according to:
y
re(ls)=xre(ls)·ghfr(ls)+gsin(ls)·
y
im(ls)=xim(ls)·ghfr(ls)+gsin(ls)·(−1)l
where, k is the modulation vector index (0 k<4) and (−1)l
and the level of the synthetic sine is given by:
g
sine (n)=√{square root over (
The above is displayed in
Practical Implementations
The present invention can be implemented in both hardware chips and DSPs, for various kinds of systems, for storage or transmission of signals, analogue or digital, using arbitrary codecs. In
Depending on implementation details, the inventive methods of encoding or decoding can be implemented in hardware or in software. The implementation can take place on a digital storage medium, in particular, a disc, a CD with electronically readable control signals, which can cooperate with a programmable computer system so that the corresponding method is performed. Generally, the present invention also relates to a computer program product with a program code stored on a machine readable carrier for performing the inventive methods, when the computer program product runs on a computer. In other words, the present invention therefore is a computer program with a program code for performing the inventive method of encoding or decoding, when the computer program runs on a computer.
It is to be noted that the above description relates to a complex system. The inventive decoder implementation, however, also works in a real-valued system. In this case the equations performed by the manipulator 1210 only include the quations for the real part.
Number | Date | Country | Kind |
---|---|---|---|
0104004-7 | Nov 2001 | SE | national |
This application is a divisional of U.S. patent application Ser. No. 15/133,410 filed on Apr. 20, 2016, which is a divisional of U.S. patent application Ser. No. 13/865,450 filed on Apr. 18, 2013 (now U.S. Pat. No. 9,431,020), which is continuation application of U.S. patent application Ser. No. 13/206,440 filed on Aug. 9, 2011 (now U.S. Pat. No. 8,447,621), which is a divisional application of U.S. patent application Ser. No. 12/273,782 filed on Nov. 19, 2008 (now U.S. Pat. No. 8,112,284), which is a divisional application of U.S. patent application Ser. No. 10/497,450 filed May 27, 2004 (now U.S. Pat. No. 7,469,206), which is a US national phase application of PCT/EP02/13462 filed on Nov. 28, 2002 which claims priority to Swedish Patent Application No. 0104004-7 filed Nov. 29, 2001. All of these applications are hereby incorporated in their entireties by this reference thereto.
Number | Date | Country | |
---|---|---|---|
Parent | 15133410 | Apr 2016 | US |
Child | 15452948 | US | |
Parent | 13865450 | Apr 2013 | US |
Child | 15133410 | US | |
Parent | 12273782 | Nov 2008 | US |
Child | 13206440 | US | |
Parent | 10497450 | May 2004 | US |
Child | 12273782 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13206440 | Aug 2011 | US |
Child | 13865450 | US |