The present invention is related to audio coding and, particularly, to low bit rate audio coding schemes.
In the art, frequency domain coding schemes such as MP3 or AAC are known. These frequency-domain encoders are based on a time-domain/frequency-domain conversion, a subsequent quantization stage, in which the quantization error is controlled using information from a psychoacoustic module, and an encoding stage, in which the quantized spectral coefficients and corresponding side information are entropy-encoded using code tables.
On the other hand there are encoders that are very well suited to speech processing such as the AMR-WB+ as described in 3GPP TS 26.290. Such speech coding schemes perform a Linear Predictive filtering of a time-domain signal. Such a LP filtering is derived from a Linear Prediction analysis of the input time-domain signal. The resulting LP filter coefficients are then quantized/coded and transmitted as side information. The process is known as Linear Prediction Coding (LPC). At the output of the filter, the prediction residual signal or prediction error signal which is also known as the excitation signal is encoded using the analysis-by-synthesis stages of the ACELP encoder or, alternatively, is encoded using a transform encoder, which uses a Fourier transform with an overlap. The decision between the ACELP coding and the Transform Coded eXcitation coding which is also called TCX coding is done using a closed loop or an open loop algorithm.
Frequency-domain audio coding schemes such as the high efficiency-AAC encoding scheme, which combines an AAC coding scheme and a spectral band replication technique can also be combined with a joint stereo or a mufti-channel coding tool which is known under the term “MPEG surround”.
On the other hand, speech encoders such as the AMR-WB+ also have a high frequency enhancement stage and a stereo functionality.
Frequency-domain coding schemes are advantageous in that they show a high quality at low bitrates for music signals. Problematic, however, is the quality of speech signals at low bitrates.
Speech coding schemes show a high quality for speech signals even at low bitrates, but show a poor quality for music signals at low bitrates.
According to an embodiment, an audio encoder for encoding an audio input signal, the audio input signal being in a first domain, may have a first coding branch for encoding an audio signal using a first coding algorithm to acquire a first encoded signal; a second coding branch for encoding an audio signal using a second coding algorithm to acquire a second encoded signal, wherein the first coding algorithm is different from the second coding algorithm; and a first switch for switching between the first coding branch and the second coding branch so that, for a portion of the audio input signal, either the first encoded signal or the second encoded signal is in an encoder output signal, wherein the second coding branch may have a converter for converting the audio signal into a second domain different from the first domain, a first processing branch for processing an audio signal in the second domain to acquire a first processed signal; a second processing branch for converting a signal into a third domain different from the first domain and the second domain and for processing the signal in the third domain to acquire a second processed signal; and a second switch for switching between the first processing branch and the second processing branch so that, for a portion of the audio signal input into the second coding branch, either the first processed signal or the second processed signal is in the second encoded signal.
According to another embodiment, a method of encoding an audio input signal, the audio input signal being in a first domain, may have the steps of encoding an audio signal using a first coding algorithm to acquire a first encoded signal; encoding an audio signal using a second coding algorithm to acquire a second encoded signal, wherein the first coding algorithm is different from the second coding algorithm; and switching between encoding using the first coding algorithm and encoding using the second coding algorithm so that, for a portion of the audio input signal, either the first encoded signal or the second encoded signal is in an encoded output signal, wherein encoding using the second coding algorithm may have the steps of converting the audio signal into a second domain different from the first domain, processing an audio signal in the second domain to acquire a first processed signal; converting a signal into a third domain different from the first domain and the second domain and processing the signal in the third domain to acquire a second processed signal; and switching between processing the audio signal and converting and processing so that, for a portion of the audio signal encoded using the second coding algorithm, either the first processed signal or the second processed signal is in the second encoded signal.
According to another embodiment a decoder for decoding an encoded audio signal, the encoded audio signal having a first coded signal, a first processed signal in a second domain, and a second processed signal in a third domain, wherein the first coded signal, the first processed signal, and the second processed signal are related to different time portions of a decoded audio signal, and wherein a first domain, the second domain and the third domain are different from each other, may have a first decoding branch for decoding the first encoded signal based on the first coding algorithm; a second decoding branch for decoding the first processed signal or the second processed signal, wherein the second decoding branch may have a first inverse processing branch for inverse processing the first processed signal to acquire a first inverse processed signal in the second domain; a second inverse processing branch for inverse processing the second processed signal to acquire a second inverse processed signal in the second domain; a first combiner for combining the first inverse processed signal and the second inverse processed signal to acquire a combined signal in the second domain; and a converter for converting the combined signal to the first domain; and a second combiner for combining the converted signal in the first domain and the first decoded signal output by the first decoding branch to acquire a decoded output signal in the first domain.
According to another embodiment, a method of decoding an encoded audio signal, the encoded audio signal having a first coded signal, a first processed signal in a second domain, and a second processed signal in a third domain, wherein the first coded signal, the first processed signal, and the second processed signal are related to different time portions of a decoded audio signal, and wherein a first domain, the second domain and the third domain are different from each other, may have the steps of decoding the first encoded signal based on a first coding algorithm; decoding the first processed signal or the second processed signal, wherein the decoding the first processed signal or the second processed signal may have the steps of inverse processing the first processed signal to acquire a first inverse processed signal in the second domain; inverse processing the second processed signal to acquire a second inverse processed signal in the second domain; combining the first inverse processed signal and the second inverse processed signal to acquire a combined signal in the second domain; and converting the combined signal to the first domain; and combining the converted signal in the first domain and the decoded first signal to acquire a decoded output signal in the first domain.
According to another embodiment an encoded audio signal may have a first coded signal encoded or to be decoded using a first coding algorithm, a first processed signal in a second domain, and a second processed signal in a third domain, wherein the first processed signal and the second processed signal are encoded using a second coding algorithm, wherein the first coded signal, the first processed signal, and the second processed signal are related to different time portions of a decoded audio signal, wherein a first domain, the second domain and the third domain are different from each other, and side information indicating whether a portion of the encoded signal is the first coded signal, the first processed signal or the second processed signal.
According to another embodiment a computer program for performing, when running on the computer, may have the method of encoding an audio signal, the audio input signal being in a first domain, the method having the steps of encoding an audio signal using a first coding algorithm to acquire a first encoded signal; encoding an audio signal using a second coding algorithm to acquire a second encoded signal, wherein the first coding algorithm is different from the second coding algorithm; and switching between encoding using the first coding algorithm and encoding using the second coding algorithm so that, for a portion of the audio input signal, either the first encoded signal or the second encoded signal is in an encoded output signal, wherein encoding using the second coding algorithm may have the steps of converting the audio signal into a second domain different from the first domain, processing an audio signal in the second domain to acquire a first processed signal; converting a signal into a third domain different from the first domain and the second domain and processing the signal in the third domain to acquire a second processed signal; and switching between processing the audio signal and converting and processing so that, for a portion of the audio signal encoded using the second coding algorithm, either the first processed signal or the second processed signal is in the second encoded signal.
According to another embodiment a computer program for performing, when running on the computer, may have method of decoding an encoded audio signal, the encoded audio signal having a first coded signal, a first processed signal in a second domain, and a second processed signal in a third domain, wherein the first coded signal, the first processed signal, and the second processed signal are related to different time portions of a decoded audio signal, and wherein a first domain, the second domain and the third domain are different from each other, the method having the steps of decoding the first encoded signal based on a first coding algorithm; decoding the first processed signal or the second processed signal, wherein the decoding the first processed signal or the second processed signal may have the steps of inverse processing the first processed signal to acquire a first inverse processed signal in the second domain; inverse processing the second processed signal to acquire a second inverse processed signal in the second domain; combining the first inverse processed signal and the second inverse processed signal to acquire a combined signal in the second domain; and converting the combined signal to the first domain; and combining the converted signal in the first domain and the decoded first signal to acquire a decoded output signal in the first domain.
One aspect of the present invention is an audio encoder for encoding an audio input signal, the audio input signal being in a first domain, comprising: a first coding branch for encoding an audio signal using a first coding algorithm to obtain a first encoded signal; a second coding branch for encoding an audio signal using a second coding algorithm to obtain a second encoded signal, wherein the first coding algorithm is different from the second coding algorithm; and a first switch for switching between the first coding branch and the second coding branch so that, for a portion of the audio input signal, either the first encoded signal or the second encoded signal is in an encoder output signal, wherein the second coding branch comprises: a converter for converting the audio signal into a second domain different from the first domain, a first processing branch for processing an audio signal in the second domain to obtain a first processed signal; a second processing branch for converting a signal into a third domain different from the first domain and the second domain and for processing the signal in the third domain to obtain a second processed signal; and a second switch for switching between the first processing branch and the second processing branch so that, for a portion of the audio signal input into the second coding branch, either the first processed signal or the second processed signal is in the second encoded signal.
A further aspect is a decoder for decoding an encoded audio signal, the encoded audio signal comprising a first coded signal, a first processed signal in a second domain, and a second processed signal in a third domain, wherein the first coded signal, the first processed signal, and the second processed signal are related to different time portions of a decoded audio signal, and wherein a first domain, the second domain and the third domain are different from each other, comprising: a first decoding branch for decoding the first encoded signal based on the first coding algorithm; a second decoding branch for decoding the first processed signal or the second processed signal, wherein the second decoding branch comprises a first inverse processing branch for inverse processing the first processed signal to obtain a first inverse processed signal in the second domain; a second inverse processing branch for inverse processing the second processed signal to obtain a second inverse processed signal in the second domain; a first combiner for combining the first inverse processed signal and the second inverse processed signal to obtain a combined signal in the second domain; and a converter for converting the combined signal to the first domain; and a second combiner for combining the converted signal in the first domain and the decoded first signal output by the first decoding branch to obtain a decoded output signal in the first domain.
In an embodiment of the present invention, two switches are provided in a sequential order, where a first switch decides between coding in the spectral domain using a frequency-domain encoder and coding in the LPC-domain, i.e., processing the signal at the output of an LPC analysis stage. The second switch is provided for switching in the LPC-domain in order to encode the LPC-domain signal either in the LPC-domain such as using an ACELP coder or coding the LPC-domain signal in an LPC-spectral domain, which needs a converter for converting the LPC-domain signal into an LPC-spectral domain, which is different from a spectral domain, since the LPC-spectral domain shows the spectrum of an LPC filtered signal rather than the spectrum of the time-domain signal.
The first switch decides between two processing branches, where one branch is mainly motivated by a sink model and/or a psycho acoustic model, i.e. by auditory masking, and the other one is mainly motivated by a source model and by segmental SNR calculations. Exemplarily, one branch has a frequency domain encoder and the other branch has an LPC-based encoder such as a speech coder. The source model is usually the speech processing and therefore LPC is commonly used.
The second switch again decides between two processing branches, but in a domain different from the “outer” first branch domain. Again one “inner” branch is mainly motivated by a source model or by SNR calculations, and the other “inner” branch can be motivated by a sink model and/or a psycho acoustic model, i.e. by masking or at least includes frequency/spectral domain coding aspects. Exemplarily, one “inner” branch has a frequency domain encoder/spectral converter and the other branch has an encoder coding on the other domain such as the LPC domain, wherein this encoder is for example an CELP or ACELP quantizer/scaler processing an input signal without a spectral conversion.
A further embodiment is an audio encoder comprising a first information sink oriented encoding branch such as a spectral domain encoding branch, a second information source or SNR oriented encoding branch such as an LPC-domain encoding branch, and a switch for switching between the first encoding branch and the second encoding branch, wherein the second encoding branch comprises a converter into a specific domain different from the time domain such as an LPC analysis stage generating an excitation signal, and wherein the second encoding branch furthermore comprises a specific domain such as LPC domain processing branch and a specific spectral domain such as LPC spectral domain processing branch, and an additional switch for switching between the specific domain coding branch and the specific spectral domain coding branch.
A further embodiment of the invention is an audio decoder comprising a first domain such as a spectral domain decoding branch, a second domain such as an LPC domain decoding branch for decoding a signal such as an excitation signal in the second domain, and a third domain such as an LPC-spectral decoder branch for decoding a signal such as an excitation signal in a third domain such as an LPC spectral domain, wherein the third domain is obtained by performing a frequency conversion from the second domain wherein a first switch for the second domain signal and the third domain signal is provided, and wherein a second switch for switching between the first domain decoder and the decoder for the second domain or the third domain is provided.
Embodiments of the present invention are subsequently described with respect to the attached drawings, in which:
The decision stage 300 actuates the switch 200 in order to feed a signal either in a frequency encoding portion 400 illustrated at an upper branch of
Generally, the processing in branch 400 is a processing in a perception based model or information sink model. Thus, this branch models the human auditory system receiving sound. Contrary thereto, the processing in branch 500 is to generate a signal in the excitation, residual or LPC domain. Generally, the processing in branch 500 is a processing in a speech model or an information generation model. For speech signals, this model is a model of the human speech/sound generation system generating sound. If, however, a sound from a different source requiring a different sound generation model is to be encoded, then the processing in branch 500 may be different.
In the lower encoding branch 500, a key element is an LPC device 510, which outputs an LPC information which is used for controlling the characteristics of an LPC filter. This LPC information is transmitted to a decoder. The LPC stage 510 output signal is an LPC-domain signal which consists of an excitation signal and/or a weighted signal.
The LPC device generally outputs an LPC domain signal, which can be any signal in the LPC domain such as the excitation signal in
The decision in the decision stage can be signal-adaptive so that the decision stage performs a music/speech discrimination and controls the switch 200 in such a way that music signals are input into the upper branch 400, and speech signals are input into the lower branch 500. In one embodiment, the decision stage is feeding its decision information into an output bit stream so that a decoder can use this decision information in order to perform the correct decoding operations.
Such a decoder is illustrated in
The input signal into the switch 200 and the decision stage 300 can be a mono signal, a stereo signal, a multi-channel signal or generally an audio signal. Depending on the decision which can be derived from the switch 200 input signal or from any external source such as a producer of the original audio signal underlying the signal input into stage 200, the switch switches between the frequency encoding branch 400 and the LPC encoding branch 500. The frequency encoding branch 400 comprises a spectral conversion stage 410 and a subsequently connected quantizing/coding stage 421. The quantizing/coding stage can include any of the functionalities as known from modem frequency-domain encoders such as the AAC encoder. Furthermore, the quantization operation in the quantizing/coding stage 421 can be controlled via a psychoacoustic module which generates psychoacoustic information such as a psychoacoustic masking threshold over the frequency, where this information is input into the stage 421.
In the LPC encoding branch, the switch output signal is processed via an LPC analysis stage 510 generating LPC side info and an LPC-domain signal. The excitation encoder inventively comprises an additional switch for switching the further processing of the LPC-domain signal between a quantization/coding operation 522 in the LPC-domain or a quantization/coding stage 524, which is processing values in the LPC-spectral domain. To this end, a spectral converter 523 is provided at the input of the quantizing/coding stage 524. The switch 521 is controlled in an open loop fashion or a closed loop fashion depending on specific settings as, for example, described in the AMRWB+ technical specification.
For the closed loop control mode, the encoder additionally includes an inverse quantizer/coder 531 for the LPC domain signal, an inverse quantizer/coder 533 for the LPC spectral domain signal and an inverse spectral converter 534 for the output of item 533. Both encoded and again decoded signals in the processing branches of the second encoding branch are input into the switch control device 525. In the switch control device 525, these two output signals are compared to each other and/or to a target function or a target function is calculated which may be based on a comparison of the distortion in both signals so that the signal having the lower distortion is used for deciding, which position the switch 521 should take. Alternatively, in case both branches provide non-constant bit rates, the branch providing the lower bit rate might be selected even when the signal to noise ratio of this branch is lower than the signal to noise ratio of the other branch. Alternatively, the target function could use, as an input, the signal to noise ratio of each signal and a bit rate of each signal and/or additional criteria in order to find the best decision for a specific goal. If, for example, the goal is such that the bit rate should be as low as possible, then the target function would heavily rely on the bit rate of the two signals output by the elements 531, 534. However, when the main goal is to have the best quality for a certain bit rate, then the switch control 525 might, for example, discard each signal which is above the allowed bit rate and when both signals are below the allowed bit rate, the switch control would select the signal having the better signal to noise ratio, i.e., having the smaller quantization/coding distortions.
The decoding scheme in accordance with the present invention is, as stated before, illustrated in
The common preprocessing scheme may comprise alternatively to the block 101 or in addition to the block 101 a bandwidth extension stage 102. In the
The decision stage 300 receives the signal input into block 101 or input into block 102 in order to decide between, for example, a music mode or a speech mode. In the music mode, the upper encoding branch 400 is selected, while, in the speech mode, the lower encoding branch 500 is selected. The decision stage additionally controls the joint stereo block 101 and/or the bandwidth extension block 102 to adapt the functionality of these blocks to the specific signal. Thus, when the decision stage determines that a certain time portion of the input signal is of the first mode such as the music mode, then specific features of block 101 and/or block 102 can be controlled by the decision stage 300. Alternatively, when the decision stage 300 determines that the signal is in a speech mode or, generally, in a second LPC-domain mode, then specific features of blocks 101 and 102 can be controlled in accordance with the decision stage output.
The spectral conversion of the coding branch 400 is done using an MDCT operation which, even more advantageous, is the time-warped MDCT operation, where the strength or, generally, the warping strength can be controlled between zero and a high warping strength. In a zero warping strength, the MDCT operation in block 411 is a straight-forward MDCT operation known in the art. The time warping strength together with time warping side information can be transmitted/input into the bitstream multiplexer 800 as side information.
In the LPC encoding branch, the LPC-domain encoder may include an ACELP core 526 calculating a pitch gain, a pitch lag and/or codebook information such as a codebook index and gain. The TCX mode as known from 3GPP TS 26.290 incurs a processing of a perceptually weighted signal in the transform domain. A Fourier transformed weighted signal is quantized using a split multi-rate lattice quantization (algebraic VQ) with noise factor quantization. A transform is calculated in 1024, 512, or 256 sample windows. The excitation signal is recovered by inverse filtering the quantized weighted signal through an inverse weighting filter.
In the first coding branch 400, a spectral converter comprises a specifically adapted MDCT operation having certain window functions followed by a quantization/entropy encoding stage which may consist of a single vector quantization stage, but advantageously is a combined scalar quantizer/entropy coder similar to the quantizer/coder in the frequency domain coding branch, i.e., in item 421 of
In the second coding branch, there is the LPC block 510 followed by a switch 521, again followed by an ACELP block 526 or an TCX block 527. ACELP is described in 3GPP TS 26.190 and TCX is described in 3GPP TS 26.290. Generally, the ACELP block 526 receives an LPC excitation signal as calculated by a procedure as described in
In TCX, the transform is applied to the weighted signal computed by filtering the input signal through an LPC-based weighting filter. The weighting filter used embodiments of the invention is given by (1−A(z/γ))/(1−μ−1). Thus, the weighted signal is an LPC domain signal and its transform is an LPC-spectral domain. The signal processed by ACELP block 526 is the excitation signal and is different from the signal processed by the block 527, but both signals are in the LPC domain.
At the decoder side illustrated in
to convert from the weighted domain to the excitation domain.
Although item 510 in
In the second encoding branch (ACELP/TCX) of
In an embodiment, the first switch 200 (see
For example,
The full band signal generated by block 701 is input into the joint stereo/surround processing stage 702, which reconstructs two stereo channels or several multi-channels. Generally, block 702 will output more channels than were input into this block. Depending on the application, the input into block 702 may even include two channels such as in a stereo mode and may even include more channels as long as the output by this block has more channels than the input into this block.
The switch 200 has been shown to switch between both branches so that only one branch receives a signal to process and the other branch does not receive a signal to process. In an alternative embodiment, however, the switch may also be arranged subsequent to for example the audio encoder 421 and the excitation encoder 522, 523, 524, which means that both branches 400, 500 process the same signal in parallel. In order to not double the bitrate, however, only the signal output by one of those encoding branches 400 or 500 is selected to be written into the output bitstream. The decision stage will then operate so that the signal written into the bitstream minimizes a certain cost function, where the cost function can be the generated bitrate or the generated perceptual distortion or a combined rate/distortion cost function. Therefore, either in this mode or in the mode illustrated in the Figures, the decision stage can also operate in a closed loop mode in order to make sure that, finally, only the encoding branch output is written into the bitstream which has for a given perceptual distortion the lowest bitrate or, for a given bitrate, has the lowest perceptual distortion. In the closed loop mode, the feedback input may be derived from outputs of the three quantizer/scaler blocks 421, 522 and 524 in
In the implementation having two switches, i.e., the first switch 200 and the second switch 521, it is advantageous that the time resolution for the first switch is lower than the time resolution for the second switch. Stated differently, the blocks of the input signal into the first switch, which can be switched via a switch operation are larger than the blocks switched by the second switch operating in the LPC-domain. Exemplarily, the frequency domain/LPC-domain switch 200 may switch blocks of a length of 1024 samples, and the second switch 521 can switch blocks having 256 samples each.
Although some of the
The first encoding branch is operative in order to encode an audio intermediate signal 195 in accordance with a first coding algorithm, wherein the first coding algorithm has an information sink model. The first encoding branch 400 generates the first encoder output signal which is an encoded spectral information representation of the audio intermediate signal 195.
Furthermore, the second encoding branch 500 is adapted for encoding the audio intermediate signal 195 in accordance with a second encoding algorithm, the second coding algorithm having an information source model and generating, in a second encoder output signal, encoded parameters for the information source model representing the intermediate audio signal.
The audio encoder furthermore comprises the common pre-processing stage for pre-processing an audio input signal 99 to obtain the audio intermediate signal 195. Specifically, the common pre-processing stage is operative to process the audio input signal 99 so that the audio intermediate signal 195, i.e., the output of the common pre-processing algorithm is a compressed version of the audio input signal.
A method of audio encoding for generating an encoded audio signal, comprises a step of encoding 400 an audio intermediate signal 195 in accordance with a first coding algorithm, the first coding algorithm having an information sink model and generating, in a first output signal, encoded spectral information representing the audio signal; a step of encoding 500 an audio intermediate signal 195 in accordance with a second coding algorithm, the second coding algorithm having an information source model and generating, in a second output signal, encoded parameters for the information source model representing the intermediate signal 195, and a step of commonly pre-processing 100 an audio input signal 99 to obtain the audio intermediate signal 195, wherein, in the step of commonly pre-processing the audio input signal 99 is processed so that the audio intermediate signal 195 is a compressed version of the audio input signal 99, wherein the encoded audio signal includes, for a certain portion of the audio signal either the first output signal or the second output signal. The method includes the further step encoding a certain portion of the audio intermediate signal either using the first coding algorithm or using the second coding algorithm or encoding the signal using both algorithms and outputting in an encoded signal either the result of the first coding algorithm or the result of the second coding algorithm.
Generally, the audio encoding algorithm used in the first encoding branch 400 reflects and models the situation in an audio sink. The sink of an audio information is normally the human ear. The human ear can be modeled as a frequency analyzer. Therefore, the first encoding branch outputs encoded spectral information. The first encoding branch furthermore includes a psychoacoustic model for additionally applying a psychoacoustic masking threshold. This psychoacoustic masking threshold is used when quantizing audio spectral values where the quantization is performed such that a quantization noise is introduced by quantizing the spectral audio values, which are hidden below the psychoacoustic masking threshold.
The second encoding branch represents an information source model, which reflects the generation of audio sound. Therefore, information source models may include a speech model which is reflected by an LPC analysis stage, i.e., by transforming a time domain signal into an LPC domain and by subsequently processing the LPC residual signal, i.e., the excitation signal. Alternative sound source models, however, are sound source models for representing a certain instrument or any other sound generators such as a specific sound source existing in real world. A selection between different sound source models can be performed when several sound source models are available, for example based on an SNR calculation, i.e., based on a calculation, which of the source models is the best one suitable for encoding a certain time portion and/or frequency portion of an audio signal. The switch between encoding branches is performed in the time domain, i.e., that a certain time portion is encoded using one model and a certain different time portion of the intermediate signal is encoded using the other encoding branch.
Information source models are represented by certain parameters. Regarding the speech model, the parameters are LPC parameters and coded excitation parameters, when a modern speech coder such as AMR-WB+ is considered. The AMR-WB+ comprises an ACELP encoder and a TCX encoder. In this case, the coded excitation parameters can be global gain, noise floor, and variable length codes.
An alternative transform from the time domain, for example in the LPC domain is the result of LPC filtering a time domain signal which results in an LPC residual signal or excitation signal. Any other filtering operations producing a filtered signal which has an impact on a substantial number of signal samples before the transform can be used as a transform algorithm as the case may be. Therefore, weighting an audio signal using an LPC based weighting filter is a further transform, which generates a signal in the LPC domain. In a time/frequency transform, the modification of a single spectral value will have an impact on all time domain values before the transform. Analogously, a modification of any time domain sample will have an impact on each frequency domain sample. Similarly, a modification of a sample of the excitation signal in an LPC domain situation will have, due to the length of the LPC filter, an impact on a substantial number of samples before the LPC filtering. Similarly, a modification of a sample before an LPC transformation will have an impact on many samples obtained by this LPC transformation due to the inherent memory effect of the LPC filter.
The audio encoder of
Therefore, the first coding branch 400 for encoding an audio signal uses a first coding algorithm to obtain a first encoded signal, where this first coding algorithm may or may not include a time/frequency conversion algorithm.
The audio encoder furthermore includes a second coding branch 500 for encoding an audio signal. The second coding branch 500 uses a second coding algorithm to obtain a second encoded signal, which is different from the first coding algorithm.
The audio encoder furthermore includes a first switch 200 for switching between the first coding branch 400 and the second coding branch 500 so that for a portion of the audio input signal, either the first encoded signal at the output of block 400 or the second encoded signal at the output of the second encoding branch is included in an encoder output signal. Thus, when for a certain portion of the audio input signal 195, the first encoded signal in the fourth domain is included in the encoder output signal, the second encoded signal which is either the first processed signal in the second domain or the second processed signal in the third domain is not included in the encoder output signal. This makes sure that this encoder is bit rate efficient. In embodiments, any time portions of the audio signal which are included in two different encoded signals are small compared to a frame length of a frame as will be discussed in connection with
As illustrated in
The second encoding branch 500 furthermore comprises a second processing branch 523, 524 which converts the audio signal in the second domain into a third domain, which is different from the first domain and which is also different from the second domain and which processes the audio signal in the third domain to obtain a second processed signal at the output of the second processing branch 523, 524.
Furthermore, the second coding branch comprises a second switch 521 for switching between the first processing branch 522 and the second processing branch 523, 524 so that, for a portion of the audio signal input into the second coding branch, either the first processed signal in the second domain or the second processed signal in the third domain is in the second encoded signal.
The decoder comprises a first decoding branch for decoding based on the first coding algorithm. The first decoding branch is illustrated at 431, 440 in
The decoder of
The second decoding branch furthermore comprises a first combiner 532 for combining the first inverse processed signal and the second inverse processed signal to obtain a signal in the second domain, where this combined signal is, at the first time instant, only influenced by the first inverse processed signal and is, at a later time instant, only influenced by the second inverse processed signal.
The second decoding branch furthermore comprises a converter 540 for converting the combined signal to the first domain.
Finally, the decoder illustrated in
This situation is illustrated, from an encoder perspective, in
In the embodiment, in which the first encoded signal or the second processed signal has been generated by an MDCT processing having e.g. 50 percents overlap, each time domain sample is included in two subsequent frames. Due to the characteristics of the MDCT, however, this does not result in an overhead, since the MDCT is a critically sampled system. In this context, critically sampled means that the number of spectral values is the same as the number of time domain values. The MDCT is advantageous in that the crossover effect is provided without a specific crossover region so that a crossover from an MDCT block to the next MDCT block is provided without any overhead which would violate the critical sampling requirement.
The first coding algorithm in the first coding branch is based on an information sink model, and the second coding algorithm in the second coding branch is based on an information source or an SNR model. An SNR model is a model which is not specifically related to a specific sound generation mechanism but which is one coding mode which can be selected among a plurality of coding modes based e.g. on a closed loop decision. Thus, an SNR model is any available coding model but which does not necessarily have to be related to the physical constitution of the sound generator but which is any parameterized coding model different from the information sink model, which can be selected by a closed loop decision and, specifically, by comparing different SNR results from different models.
As illustrated in
In one embodiment, the first coding branch or the second coding branch comprises an aliasing introducing time/frequency conversion algorithm such as an MDCT or an MDST algorithm, which is different from a straightforward FFT transform, which does not introduce an aliasing effect. Furthermore, one or both branches comprise a quantizer/entropy coder block. Specifically, only the second processing branch of the second coding branch includes the time/frequency converter introducing an aliasing operation and the first processing branch of the second coding branch comprises a quantizer and/or entropy coder and does not introduce any aliasing effects. The aliasing introducing time/frequency converter comprises a windower for applying an analysis window and an MDCT transform algorithm. Specifically, the windower is operative to apply the window function to subsequent frames in an overlapping way so that a sample of a windowed signal occurs in at least two subsequent windowed frames.
In one embodiment, the first processing branch comprises an ACELP coder and a second processing branch comprises an MDCT spectral converter and the quantizer for quantizing spectral components to obtain quantized spectral components, where each quantized spectral component is zero or is defined by one quantizer index of the plurality of different possible quantizer indices.
Furthermore, it is advantageous that the first switch 200 operates in an open loop manner and the second switch operates in a closed loop manner.
As stated before, both coding branches are operative to encode the audio signal in a block wise manner, in which the first switch or the second switch switches in a blockwise manner so that a switching action takes place, at the minimum, after a block of a predefined number of samples of a signal, the predefined number forming a frame length for the corresponding switch. Thus, the granule for switching by the first switch may be, for example, a block of 2048 or 1028 samples, and the frame length, based on which the first switch 200 is switching may be variable but is fixed to such a quite long period.
Contrary thereto, the block length for the second switch 521, i.e., when the second switch 521 switches from one mode to the other, is substantially smaller than the block length for the first switch. Both block lengths for the switches are selected such that the longer block length is an integer multiple of the shorter block length. In the embodiment, the block length of the first switch is 2048 or 1024 and the block length of the second switch is 1024 or more advantageous, 512 and even more advantageous, 256 and even more advantageous 128 samples so that, at the maximum, the second switch can switch 16 times when the first switch switches only a single time. A maximum block length ratio, however, is 4:1.
In a further embodiment, the controller 300, 525 is operative to perform a speech music discrimination for the first switch in such a way that a decision to speech is favored with respect to a decision to music. In this embodiment, a decision to speech is taken even when a portion less than 50% of a frame for the first switch is speech and the portion of more than 50% of the frame is music.
Furthermore, the controller is operative to already switch to the speech mode, when a quite small portion of the first frame is speech and, specifically, when a portion of the first frame is speech, which is 50% of the length of the smaller second frame. Thus, a speech/favouring switching decision already switches over to speech even when, for example, only 6% or 12% of a block corresponding to the frame length of the first switch is speech.
This procedure is in order to fully exploit the bit rate saving capability of the first processing branch, which has a voiced speech core in one embodiment and to not lose any quality even for the rest of the large first frame, which is non-speech due to the fact that the second processing branch includes a converter and, therefore, is useful for audio signals which have non-speech signals as well. This second processing branch includes an overlapping MDCT, which is critically sampled, and which even at small window sizes provides a highly efficient and aliasing free operation due to the time domain aliasing cancellation processing such as overlap and add on the decoder-side. Furthermore, a large block length for the first encoding branch which is an AAC-like MDCT encoding branch is useful, since non-speech signals are normally quite stationary and a long transform window provides a high frequency resolution and, therefore, high quality and, additionally, provides a bit rate efficiency due to a psycho acoustically controlled quantization module, which can also be applied to the transform based coding mode in the second processing branch of the second coding branch.
Regarding the
The first decoding branch and/or the second inverse processing branch includes an MDCT transform for converting from the spectral domain to the time domain. To this end, an overlap-adder is provided to perform a time domain aliasing cancellation functionality which, at the same time, provides a cross fade effect in order to avoid blocking artifacts. Generally, the first decoding branch converts a signal encoded in the fourth domain into the first domain, while the second inverse processing branch performs a conversion from the third domain to the second domain and the converter subsequently connected to the first combiner provides a conversion from the second domain to the first domain so that, at the input of the combiner 600, only first domain signals are there, which represent, in the
On the other hand, however, the
In certain instances, the last block of the first decoder was generated using a window where the window actually performed a fade out of this block. In this case, the weighting factor m1 in block 607a is equal to 1 and, actually, no weighting at all is needed for this branch.
When a switch from the second decoder to the first decoder takes place, and when the second decoder includes a window which actually fades out the output to the end of the block, then the weighter indicated with “m2” would not be needed or the weighting parameter can be set to 1 throughout the whole cross fading region.
When the first block after a switch was generated using a windowing operation, and when this window actually performed a fade in operation, then the corresponding weighting factor can also be set to 1 so that a weighter is not really necessary. Therefore, when the last block is windowed in order to fade out by the decoder and when the first block after the switch is windowed using the decoder in order to provide a fade in, then the weighters 607a, 607b are not needed at all and an addition operation by adder 607c is sufficient.
In this case, the fade out portion of the last frame and the fade in portion of the next frame define the cross fading region indicated in block 609. Furthermore, it is advantageous in such a situation that the last block of one decoder has a certain time overlap with the first block of the other decoder.
If a cross fading operation is not needed or not possible or not desired, and if only a hard switch from one decoder to the other decoder is there, it is advantageous to perform such a switch in silent passages of the audio signal or at least in passages of the audio signal where there is low energy, i.e., which are perceived to be silent or almost silent. The decision stage 300 assures in such an embodiment that the switch 200 is only activated when the corresponding time portion which follows the switch event has an energy which is, for example, lower than the mean energy of the audio signal and is lower than 50% of the mean energy of the audio signal related to, for example, two or even more time portions/frames of the audio signal.
The second encoding rule/decoding rule is an LPC-based coding algorithm. In LPC-based speech coding, a differentiation between quasi-periodic impulse-like excitation signal segments or signal portions, and noise-like excitation signal segments or signal portions, is made. This is performed for very low bit rate LPC vocoders (2.4 kbps) as in
Quasi-periodic impulse-like excitation signal segments, i.e., signal segments having a specific pitch are coded with different mechanisms than noise-like excitation signals. While quasi-periodic impulse-like excitation signals are connected to voiced speech, noise-like signals are related to unvoiced speech.
Exemplarily, reference is made to
Thus, a noise-like portion of the audio signal shows neither any impulse-like time-domain structure nor harmonic frequency-domain structure as illustrated in
Furthermore, quasi-periodic impulse-like portions and noise-like portions can occur in a timely manner, i.e., which means that a portion of the audio signal in time is noisy and another portion of the audio signal in time is quasi-periodic, i.e. tonal. Alternatively, or additionally, the characteristic of a signal can be different in different frequency bands. Thus, the determination, whether the audio signal is noisy or tonal, can also be performed frequency-selective so that a certain frequency band or several certain frequency bands are considered to be noisy and other frequency bands are considered to be tonal. In this case, a certain time portion of the audio signal might include tonal components and noisy components.
S(z)=g/(1−A(z))·X(z),
where g represents the gain, A(z) is the prediction filter as determined by an LP analysis, X(z) is the excitation signal, and S(z) is the synthesis speech output.
While
Subsequently, an analysis-by-synthesis CELP encoder will be discussed in connection with
The CELP algorithm encodes then the residual signal obtained after the short-term and long-term predictions using a codebook of for example Gaussian sequences. The ACELP algorithm, where the “A” stands for “Algebraic” has a specific algebraically designed codebook.
A codebook may contain more or less vectors where each vector is some samples long. A gain factor g scales the code vector and the gained code is filtered by the long-term prediction synthesis filter and the short-term prediction synthesis filter. The “optimum” code vector is selected such that the perceptually weighted mean square error at the output of the subtracter 69 is minimized. The search process in CELP is done by an analysis-by-synthesis optimization as illustrated in
For specific cases, when a frame is a mixture of unvoiced and voiced speech or when speech over music occurs, a TCX coding can be more appropriate to code the excitation in the LPC domain. The TCX coding processes the a weighted signal in the frequency domain without doing any assumption of excitation production. The TCX is then more generic than CELP coding and is not restricted to a voiced or a non-voiced source model of the excitation. TCX is still a source-filter model coding using a linear predictive filter for modelling the formants of the speech-like signals.
In the AMR-WB+-like coding, a selection between different TCX modes and ACELP takes place as known from the AMR-WB+ description. The TCX modes are different in that the length of the block-wise Discrete Fourier Transform is different for different modes and the best mode can be selected by an analysis by synthesis approach or by a direct “feedforward” mode.
As discussed in connection with
An example for a joint multichannel stage on the encoder side 101a, 101b and on the decoder side 702a and 702b is illustrated in the context of
The E input channels are input into a joint multichannel parameter analyzer 101b which generates parametric information. This parametric information is entropy-encoded such as by a difference encoding and subsequent Huffman encoding or, alliteratively, subsequent arithmetic encoding. The encoded parametric information output by block 101b is transmitted to a parameter decoder 702b which may be part of item 702 in
Parametric information may include inter channel level differences, inter channel time differences, inter channel phase differences and/or inter channel coherence measures as is known from the BCC technique or as is known and is described in detail in the MPEG surround standard. The number of transmitted channels may be a single mono channel for ultra-low bit rate applications or may include a compatible stereo application or may include a compatible stereo signal, i.e., two channels. Typically, the number of E input channels may be five or maybe even higher. Alternatively, the number of E input channels may also be E audio objects as it is known in the context of spatial audio object coding (SAOC).
In one implementation, the downmixer performs a weighted or unweighted addition of the original E input channels or an addition of the E input audio objects. In case of audio objects as input channels, the joint multichannel parameter analyzer 101b will calculate audio object parameters such as a correlation matrix between the audio objects for each time portion and even more advantageously for each frequency band. To this end, the whole frequency range may be divided in at least 10 and advantageously 32 or 64 frequency bands.
On the decoder-side, the bandwidth extension block 701 includes a patcher 701a, an adjuster 701b and a combiner 701c. The combiner 701c combines the decoded low band signal and the reconstructed and adjusted high band signal output by the adjuster 701b. The input into the adjuster 701b is provided by a patcher which is operated to derive the high band signal from the low band signal such as by spectral band replication or, generally, by bandwidth extension. The patching performed by the patcher 701a may be a patching performed in a harmonic way or in a non-harmonic way. The signal generated by the patcher 701a is, subsequently, adjusted by the adjuster 701b using the transmitted parametric bandwidth extension information.
As indicated in
Although not discussed in detail for the second switch 521, it is to be emphasized that the second switch 521 can be positioned in a similar way as the first switch 200 as discussed in connection with
Furthermore, the second combiner 600 may have a specific cross fading functionality as discussed in
As discussed before, both switches can be controlled via an open loop decision or a closed loop decision as discussed in connection with
Furthermore, a time warping functionality which is signal-adaptive can exist not only in the first encoding branch or first decoding branch but can also exist in the second processing branch of the second coding branch on the encoder side as well as on the decoder side. Depending on a processed signal, both time warping functionalities can have the same time warping information so that the same time warp is applied to the signals in the first domain and in the second domain. This saves processing load and might be useful in some instances, in cases where subsequent blocks have a similar time warping time characteristic. In alternative embodiments, however, it is advantageous to have independent time warp estimators for the first coding branch and the second processing branch in the second coding branch.
The inventive encoded audio signal can be stored on a digital storage medium or can be transmitted on a transmission medium such as a wireless transmission medium or a wired transmission medium such as the Internet.
In a different embodiment, the switch 200 of
The above-described embodiments are merely illustrative for the principles of the present invention. 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.
Depending on certain implementation requirements of the inventive methods, the inventive methods can be implemented in hardware or in software. The implementation can be performed using a digital storage medium, in particular, a disc, a DVD or a CD having electronically-readable control signals stored thereon, which co-operate with programmable computer systems such that the inventive methods are performed. Generally, the present invention is therefore a computer program product with a program code stored on a machine-readable carrier, the program code being operated for performing the inventive methods when the computer program product runs on a computer. In other words, the inventive methods are, therefore, a computer program having a program code for performing at least one of the inventive methods when the computer program runs on a computer.
While this invention has been described in terms of several embodiments, there are alterations, permutations, and equivalents which fall within the scope of this invention. It should also be noted that there are many alternative ways of implementing the methods and compositions of the present invention. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations and equivalents as fall within the true spirit and scope of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
08017663 | Oct 2008 | EP | regional |
09002271 | Feb 2009 | EP | regional |
This application is a continuation of U.S. patent application Ser. No. 16/834,601, filed Mar. 30, 2020, now U.S. Pat. No. 11,475,902, issued on Oct. 18, 2022, which is a continuation of U.S. patent application Ser. No. 16/398,082, filed Apr. 29, 2019, now U.S. Pat. No. 10,621,996, issued Apr. 14, 2020, which in turn is a continuation of U.S. application Ser. No. 14/580,179, filed Dec. 22, 2014, now U.S. Pat. No. 10,319,384, issued Jun. 11, 2019, which is a continuation of U.S. patent application Ser. No. 13/004,385, filed Jan. 11, 2011, now U.S. Pat. No. 8,930,198, issued Jan. 6, 2015, which is a continuation of copending International Application No. PCT/EP2009/004652, filed Jun. 26, 2009, which is incorporated herein by reference in its entirety, and additionally claims priority from European Applications Nos. EP 08017663.9, filed Oct. 8, 2008, EP 09002271.6, filed Feb. 18, 2009 and U.S. Provisional Patent Application 61/079,854, filed Jul. 11, 2008, which are all incorporated herein by reference in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
5890110 | Gersho et al. | Mar 1999 | A |
6134518 | Cohen et al. | Oct 2000 | A |
6785645 | Khalil et al. | Aug 2004 | B2 |
6978241 | Sluijter et al. | Dec 2005 | B1 |
7139700 | Stachurski et al. | Nov 2006 | B1 |
7222070 | Stachurski et al. | May 2007 | B1 |
7605722 | Beack et al. | Oct 2009 | B2 |
7739120 | Maekinen | Jun 2010 | B2 |
7860709 | Maekinen | Dec 2010 | B2 |
8069034 | Maekinen et al. | Nov 2011 | B2 |
8275626 | Neuendorf et al. | Sep 2012 | B2 |
8321210 | Grill et al. | Nov 2012 | B2 |
8447620 | Neuendorf et al. | May 2013 | B2 |
8484038 | Bessette et al. | Jul 2013 | B2 |
8744843 | Geiger et al. | Jun 2014 | B2 |
8744863 | Neuendorf et al. | Jun 2014 | B2 |
8751246 | Lecomte et al. | Jun 2014 | B2 |
8804970 | Grill et al. | Aug 2014 | B2 |
8930198 | Grill et al. | Jan 2015 | B2 |
8959017 | Grill et al. | Feb 2015 | B2 |
9043215 | Neuendorf et al. | May 2015 | B2 |
10319384 | Grill et al. | Jun 2019 | B2 |
10621996 | Grill et al. | Apr 2020 | B2 |
11475902 | Grill | Oct 2022 | B2 |
20030004711 | Koishida et al. | Jan 2003 | A1 |
20050192797 | Makinen | Sep 2005 | A1 |
20050192798 | Vainio et al. | Sep 2005 | A1 |
20050256701 | Makinen | Nov 2005 | A1 |
20050261892 | Makinen et al. | Nov 2005 | A1 |
20050261900 | Ojala et al. | Nov 2005 | A1 |
20050267742 | Makinen | Dec 2005 | A1 |
20060206334 | Kapoor et al. | Sep 2006 | A1 |
20070106502 | Kim et al. | May 2007 | A1 |
20070147518 | Bessette | Jun 2007 | A1 |
20070174051 | Oh et al. | Jul 2007 | A1 |
20070282599 | Choo et al. | Dec 2007 | A1 |
20080004869 | Herre et al. | Jan 2008 | A1 |
20080033732 | Seefeldt et al. | Feb 2008 | A1 |
20080147414 | Son et al. | Jun 2008 | A1 |
20080162121 | Son et al. | Jul 2008 | A1 |
20080172223 | Oh et al. | Jul 2008 | A1 |
20090110201 | Kim et al. | Apr 2009 | A1 |
20090110203 | Taleb | Apr 2009 | A1 |
20090210234 | Sung et al. | Aug 2009 | A1 |
Number | Date | Country |
---|---|---|
1677492 | Oct 2005 | CN |
0932141 | Jul 1999 | EP |
2144230 | Jan 2010 | EP |
2144231 | Jan 2010 | EP |
2146344 | Jan 2010 | EP |
118835 | Mar 2008 | FI |
2006139794 | Jun 2008 | RU |
2005112004 | Nov 2005 | WO |
2008045846 | Apr 2008 | WO |
2008071353 | Jun 2008 | WO |
Entry |
---|
“3GPP TS 26.290 version 2.0.0 Extended Adaptive Multi-Rate—Wideband codec; Transcoding functions”, Release 6; TSG-SA WG4, TSG SA Meeting #25, Palm Springs, USA, Sep. 2004, 86 pages. |
Ramprashad, Sean, “The Multimode Transform Predictive Coding Paradigm”, IEEE Transactions on Speech and Audio Processing, vol. 11, No. 2, pp. 117-129. |
Spanias, Andreas S, “Speech Coding: A Tutorial Review”, and Falk, H. “Prolog to Speech Coding: A Tutorial Review—A tutorial introduction to the paper by Spanias”; Proceedings of the IEEE vol. 82; Tempe, AZ , Oct. 10, 1994 , pp. 1541-1582, 1539-1540. |
Number | Date | Country | |
---|---|---|---|
20230011775 A1 | Jan 2023 | US |
Number | Date | Country | |
---|---|---|---|
61079854 | Jul 2008 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16834601 | Mar 2020 | US |
Child | 17933583 | US | |
Parent | 16398082 | Apr 2019 | US |
Child | 16834601 | US | |
Parent | 14580179 | Dec 2014 | US |
Child | 16398082 | US | |
Parent | 13004385 | Jan 2011 | US |
Child | 14580179 | US | |
Parent | PCT/EP2009/004652 | Jun 2009 | US |
Child | 13004385 | US |