The present invention relates to audio signal encoding and audio signal decoding and, in particular, to an apparatus and method for MDCT M/S Stereo with Global ILD with improved Mid/Side Detection.
Band-wise M/S processing (M/S=Mid/Side) in MDCT-based coders (MDCT=Modified Discrete Cosine Transform) is a known and effective method for stereo processing. Yet, it is not sufficient for panned signals, and an additional processing, such as complex prediction or a coding of angles between a mid and a side channel, may be used.
In [1], [2], [3] and [4], M/S processing on windowed and transformed non-normalized (not whitened) signals is described.
In [7], prediction between mid and side channels is described. In [7], an encoder is disclosed which encodes an audio signal based on a combination of two audio channels. The audio encoder obtains a combination signal being a mid-signal, and further obtains a prediction residual signal being a predicted side signal derived from the mid signal. The first combination signal and the prediction residual signal are encoded and written into a data stream together with the prediction information. Moreover, [7] discloses a decoder which generates decoded first and second audio channels using the prediction residual signal, the first combination signal and the prediction information.
In [5], the application of M/S stereo coupling after normalization separately on each band is described. In particular, [5] refers to the Opus codec. Opus encodes the mid signal and side signal as normalized signals m=M/∥M∥ and s=s/∥s∥. To recover M and S from m and s, the angle θs=arctan(∥S∥/∥M∥) is encoded. With N being the size of the band and with a being the total number of bits available for m and s, the optimal allocation for m is amid=(a−(N−1)log2 tan θs)/2.
In known approaches (e.g in [2] and [4]), complicated rate/distortion loops are combined with the decision in which bands channels are to be transformed (e.g., using M/S, which also may be followed by M to S prediction residual calculation from [7]), in order to reduce the correlation between channels. This complicated structure has high computational cost. Separating the perceptual model from the rate loop (as in [6a], [6b] and [13]) significantly simplifies the system.
Also, coding of the prediction coefficients or angles in each band involves a significant number of bits (as for example in [5] and [7]).
In [1], [3] and [5] only single decision over the whole spectrum is carried out to decide if the whole spectrum should be M/S or L/R coded.
M/S coding is not efficient, if an ILD (interaural level difference) exists, that is, if channels are panned.
As outlined above, it is known that band-wise M/S processing in MDCT-based coders is an effective method for stereo processing. The M/S processing coding gain varies from 0% for uncorrelated channels to 50% for monophonic or for a π/2 phase difference between the channels. Due to the stereo unmasking and inverse unmasking (see [1]), it is important to have a robust M/S decision.
In [2], each band, where masking thresholds between left and right vary by less than 2 dB, M/S coding is chosen as coding method.
In [1], the M/S decision is based on the estimated bit consumption for M/S coding and for L/R coding (L/R=left/right) of the channels. The bitrate demand for M/S coding and for L/R coding is estimated from the spectra and from the masking thresholds using perceptual entropy (PE). Masking thresholds are calculated for the left and the right channel. Masking thresholds for the mid channel and for the side channel are assumed to be the minimum of the left and the right thresholds.
Moreover, [1] describes how coding thresholds of the individual channels to be encoded are derived. Specifically, the coding thresholds for the left and the right channels are calculated by the respective perceptual models for these channels. In [1], the coding thresholds for the M channel and the S channel are chosen equally and are derived as the minimum of the left and the right coding thresholds
Moreover, [1] describes deciding between L/R coding and M/S coding such that a good coding performance is achieved. Specifically, a perceptual entropy is estimated for the L/R encoding and M/S encoding using the thresholds.
In [1] and [2], as well as in [3] and [4], M/S processing is conducted on windowed and transformed non-normalized (not whitened) signal and the M/S decision is based on the masking threshold and the perceptual entropy estimation.
In [5], an energy of the left channel and the right channel are explicitly coded and the coded angle preserves the energy of the difference signal. It is assumed in [5] that M/S coding is safe, even if L/R coding is more efficient. According to [5], L/R coding is only chosen when the correlation between the channels is not strong enough.
Furthermore, coding of the prediction coefficients or angles in each band involves a significant number of bits (see, for example, [5] and [7]).
According to an embodiment, an apparatus for encoding a first channel and a second channel of an audio input signal having two or more channels to obtain an encoded audio signal may have: a normalizer configured to determine a normalization value for the audio input signal depending on the first channel of the audio input signal and depending on the second channel of the audio input signal, wherein the normalizer is configured to determine a first channel and a second channel of a normalized audio signal by modifying, depending on the normalization value, at least one of the first channel and the second channel of the audio input signal, an encoding unit being configured to generate a processed audio signal having a first channel and a second channel, such that one or more spectral bands of the first channel of the processed audio signal are one or more spectral bands of the first channel of the normalized audio signal, such that one or more spectral bands of the second channel of the processed audio signal are one or more spectral bands of the second channel of the normalized audio signal, such that at least one spectral band of the first channel of the processed audio signal is a spectral band of a mid signal depending on a spectral band of the first channel of the normalized audio signal and depending on a spectral band of the second channel of the normalized audio signal, and such that at least one spectral band of the second channel of the processed audio signal is a spectral band of a side signal depending on a spectral band of the first channel of the normalized audio signal and depending on a spectral band of the second channel of the normalized audio signal, wherein the encoding unit is configured to encode the processed audio signal to obtain the encoded audio signal.
According to another embodiment, a system for encoding four channels of an audio input signal having four or more channels to obtain an encoded audio signal may have: a first inventive apparatus for encoding a first channel and a second channel of the four or more channels of the audio input signal to obtain a first channel and a second channel of the encoded audio signal, and a second inventive apparatus for encoding a third channel and a fourth channel of the four or more channels of the audio input signal to obtain a third channel and a fourth channel of the encoded audio signal.
Another embodiment may have an apparatus for decoding an encoded audio signal having a first channel and a second channel to obtain a first channel and a second channel of a decoded audio signal having two or more channels, wherein the apparatus has a decoding unit configured to determine for each spectral band of a plurality of spectral bands, whether said spectral band of the first channel of the encoded audio signal and said spectral band of the second channel of the encoded audio signal was encoded using dual-mono encoding or using mid-side encoding, wherein the decoding unit is configured to use said spectral band of the first channel of the encoded audio signal as a spectral band of a first channel of an intermediate audio signal and is configured to use said spectral band of the second channel of the encoded audio signal as a spectral band of a second channel of the intermediate audio signal, if the dual-mono encoding was used, wherein the decoding unit is configured to generate a spectral band of the first channel of the intermediate audio signal based on said spectral band of the first channel of the encoded audio signal and based on said spectral band of the second channel of the encoded audio signal, and to generate a spectral band of the second channel of the intermediate audio signal based on said spectral band of the first channel of the encoded audio signal and based on said spectral band of the second channel of the encoded audio signal, if the mid-side encoding was used, and wherein the apparatus has a de-normalizer configured to modify, depending on a de-normalization value, at least one of the first channel and the second channel of the intermediate audio signal to obtain the first channel and the second channel of the decoded audio signal.
According to another embodiment, a system for decoding an encoded audio signal having four or more channels to obtain four channels of a decoded audio signal having four or more channels may have: a first inventive apparatus for decoding a first channel and a second channel of the four or more channels of the encoded audio signal to obtain a first channel and a second channel of the decoded audio signal, and a second inventive apparatus for decoding a third channel and a fourth channel of the four or more channels of the encoded audio signal to obtain a third channel and a fourth channel of the decoded audio signal.
According to another embodiment, a system for generating an encoded audio signal from an audio input signal and for generating a decoded audio signal from the encoded audio signal may have: an inventive apparatus configured to generate the encoded audio signal from the audio input signal, and an inventive apparatus configured to generate the decoded audio signal from the encoded audio signal.
According to another embodiment, a system for generating an encoded audio signal from an audio input signal and for generating a decoded audio signal from the encoded audio signal may have: an inventive system configured to generate the encoded audio signal from the audio input signal, and an inventive system configured to generate the decoded audio signal from the encoded audio signal.
According to another embodiment, a method for encoding a first channel and a second channel of an audio input signal having two or more channels to obtain an encoded audio signal may have the steps of: determining a normalization value for the audio input signal depending on the first channel of the audio input signal and depending on the second channel of the audio input signal, determining a first channel and a second channel of a normalized audio signal by modifying, depending on the normalization value, at least one of the first channel and the second channel of the audio input signal, generating a processed audio signal having a first channel and a second channel, such that one or more spectral bands of the first channel of the processed audio signal are one or more spectral bands of the first channel of the normalized audio signal, such that one or more spectral bands of the second channel of the processed audio signal are one or more spectral bands of the second channel of the normalized audio signal, such that at least one spectral band of the first channel of the processed audio signal is a spectral band of a mid signal depending on a spectral band of the first channel of the normalized audio signal and depending on a spectral band of the second channel of the normalized audio signal, and such that at least one spectral band of the second channel of the processed audio signal is a spectral band of a side signal depending on a spectral band of the first channel of the normalized audio signal and depending on a spectral band of the second channel of the normalized audio signal, and encoding the processed audio signal to obtain the encoded audio signal.
According to another embodiment, a method for decoding an encoded audio signal having a first channel and a second channel to obtain a first channel and a second channel of a decoded audio signal having two or more channels may have the steps of: determining for each spectral band of a plurality of spectral bands, whether said spectral band of the first channel of the encoded audio signal and said spectral band of the second channel of the encoded audio signal was encoded using dual-mono encoding or using mid-side encoding, using said spectral band of the first channel of the encoded audio signal as a spectral band of a first channel of an intermediate audio signal and using said spectral band of the second channel of the encoded audio signal as a spectral band of a second channel of the intermediate audio signal, if dual-mono encoding was used, generating a spectral band of the first channel of the intermediate audio signal based on said spectral band of the first channel of the encoded audio signal and based on said spectral band of the second channel of the encoded audio signal, and generating a spectral band of the second channel of the intermediate audio signal based on said spectral band of the first channel of the encoded audio signal and based on said spectral band of the second channel of the encoded audio signal, if mid-side encoding was used, and modifying, depending on a de-normalization value, at least one of the first channel and the second channel of the intermediate audio signal to obtain the first channel and the second channel of a decoded audio signal.
Another embodiment may have a non-transitory digital storage medium having a computer program stored thereon to perform the inventive methods when said computer program is run by a computer or signal processor.
According to an embodiment, an apparatus for encoding a first channel and a second channel of an audio input signal comprising two or more channels to obtain an encoded audio signal is provided.
The apparatus for encoding comprises a normalizer configured to determine a normalization value for the audio input signal depending on the first channel of the audio input signal and depending on the second channel of the audio input signal, wherein the normalizer is configured to determine a first channel and a second channel of a normalized audio signal by modifying, depending on the normalization value, at least one of the first channel and the second channel of the audio input signal.
Moreover, the apparatus for encoding comprises an encoding unit being configured to generate a processed audio signal having a first channel and a second channel, such that one or more spectral bands of the first channel of the processed audio signal are one or more spectral bands of the first channel of the normalized audio signal, such that one or more spectral bands of the second channel of the processed audio signal are one or more spectral bands of the second channel of the normalized audio signal, such that at least one spectral band of the first channel of the processed audio signal is a spectral band of a mid signal depending on a spectral band of the first channel of the normalized audio signal and depending on a spectral band of the second channel of the normalized audio signal, and such that at least one spectral band of the second channel of the processed audio signal is a spectral band of a side signal depending on a spectral band of the first channel of the normalized audio signal and depending on a spectral band of the second channel of the normalized audio signal. The encoding unit is configured to encode the processed audio signal to obtain the encoded audio signal.
Moreover, an apparatus for decoding an encoded audio signal comprising a first channel and a second channel to obtain a first channel and a second channel of a decoded audio signal comprising two or more channels is provided.
The apparatus for decoding comprises a decoding unit configured to determine for each spectral band of a plurality of spectral bands, whether said spectral band of the first channel of the encoded audio signal and said spectral band of the second channel of the encoded audio signal was encoded using dual-mono encoding or using mid-side encoding.
The decoding unit is configured to use said spectral band of the first channel of the encoded audio signal as a spectral band of a first channel of an intermediate audio signal and is configured to use said spectral band of the second channel of the encoded audio signal as a spectral band of a second channel of the intermediate audio signal, if the dual-mono encoding was used.
Moreover, the decoding unit is configured to generate a spectral band of the first channel of the intermediate audio signal based on said spectral band of the first channel of the encoded audio signal and based on said spectral band of the second channel of the encoded audio signal, and to generate a spectral band of the second channel of the intermediate audio signal based on said spectral band of the first channel of the encoded audio signal and based on said spectral band of the second channel of the encoded audio signal, if the mid-side encoding was used.
Furthermore, the apparatus for decoding comprises a de-normalizer configured to modify, depending on a de-normalization value, at least one of the first channel and the second channel of the intermediate audio signal to obtain the first channel and the second channel of the decoded audio signal.
Moreover, a method for encoding a first channel and a second channel of an audio input signal comprising two or more channels to obtain an encoded audio signal is provided. The method comprises:
Furthermore, a method for decoding an encoded audio signal comprising a first channel and a second channel to obtain a first channel and a second channel of a decoded audio signal comprising two or more channels is provided. The method comprises:
Moreover, computer programs are provided, wherein each of the computer programs is configured to implement one of the above-described methods when being executed on a computer or signal processor.
According to embodiments, new concepts are provided that are able to deal with panned signals using minimal side information.
According to some embodiments, FDNS (FDNS=Frequency Domain Noise Shaping) with the rate-loop is used as described in [6a] and [6b] combined with the spectral envelope warping as described in [8]. In some embodiments, a single ILD parameter on the FDNS-whitened spectrum is used followed by the band-wise decision, whether M/S coding or L/R coding is used for coding. In some embodiments, the M/S decision is based on the estimated bit saving. In some embodiments, bitrate distribution among the band-wise M/S processed channels may, e.g., depend on energy.
Some embodiments provide a combination of single global ILD applied on the whitened spectrum, followed by the band-wise M/S processing with an efficient M/S decision mechanism and with a rate-loop that controls the one single global gain.
Some embodiments inter alia employ FDNS with rate-loop, for example, based on [6a] or [6b], combined with the spectral envelope warping, for example based on [8]. These embodiments provide an efficient and very effective way for separating perceptual shaping of quantization noise and rate-loop. Using the single ILD parameter on the FDNS-whitened spectrum allows simple and effective way of deciding if there is an advantage of M/S processing as described above. Whitening the spectrum and removing the ILD allows efficient M/S processing. Coding single global ILD for the described system is enough and thus bit saving is achieved in contrast to known approaches.
According to embodiments, the M/S processing is done based on a perceptually whitened signal. Embodiments determine coding thresholds and determine, in an optimal manner, a decision, whether an L/R coding or a M/S coding is employed, when processing perceptually whitened and ILD compensated signals.
Moreover, according to embodiments, a new bitrate estimation is provided.
In contrast to [1]-[5], in embodiments, the perceptual model is separated from the rate loop as in [6a], [6b] and [13].
Even though the M/S decision is based on the estimated bitrate as proposed in [1], in contrast to [1] the difference in the bitrate demand of the M/S and the L/R coding is not dependent on the masking thresholds determined by a perceptual model. Instead the bitrate demand is determined by a lossless entropy coder being used. In other words: instead of deriving the bitrate demand from the perceptual entropy of the original signal, the bitrate demand is derived from the entropy of the perceptually whitened signal.
In contrast to [1]-[5], in embodiments, the M/S decision is determined based on a perceptually whitened signal, and a better estimate of the bitrate that may be used is obtained. For this purpose, the arithmetic coder bit consumption estimation as described in [6a] or [6b] may be applied. Masking thresholds do not have to be explicitly considered.
In [1], the masking thresholds for the mid and the side channels are assumed to be the minimum of the left and the right masking thresholds. Spectral noise shaping is done on the mid and the side channel and may, e.g., be based on these masking thresholds.
According to embodiments, spectral noise shaping may, e.g., be conducted on the left and the right channel, and the perceptual envelope may, in such embodiments, be exactly applied where it was estimated.
Furthermore, embodiments are based on the finding that M/S coding is not efficient if ILD exists, that is, if channels are panned. To avoid this, embodiments use a single ILD parameter on the perceptually whitened spectrum.
According to some embodiments, new concepts for the M/S decision are provided that process a perceptually whitened signal.
According to some embodiments, the codec uses new concepts that were not part of classic audio codecs, e.g., as described in [1].
According to some embodiments, perceptually whitened signals are used for further coding, e.g., similar to the way they are used in a speech coder.
Such an approach has several advantages, e.g., the codec architecture is simplified, a compact representation of the noise shaping characteristics and the masking threshold is achieved, e.g., as LPC coefficients. Moreover, transform and speech codec architectures are unified and thus a combined audio/speech coding is enabled.
Some embodiments employ a global ILD parameter to efficiently code panned sources.
In embodiments, the codec employs Frequency Domain Noise Shaping (FDNS) to perceptually whiten the signal with the rate-loop, for example, as described in [6a] or [6b] combined with the spectral envelope warping as described in [8]. In such embodiments, the codec may, e.g., further use a single ILD parameter on the FDNS-whitened spectrum followed by the band-wise M/S vs L/R decision. The band-wise M/S decision may, e.g., be based on the estimated bitrate in each band when coded in the L/R and in the M/S mode. The mode with least required bits is chosen. Bitrate distribution among the band-wise M/S processed channels is based on the energy.
Some embodiments apply a band-wise M/S decision on a perceptually whitened and ILD compensated spectrum using the per band estimated number of bits for an entropy coder.
In some embodiments, FDNS with the rate-loop, for example, as described in [6a] or [6b] combined with the spectral envelope warping as described in [8], is employed. This provides an efficient, very effective way separating perceptual shaping of quantization noise and rate-loop. Using the single ILD parameter on the FDNS-whitened spectrum allows simple and effective way of deciding if there is an advantage of M/S processing as described. Whitening the spectrum and removing the ILD allows efficient M/S processing. Coding single global ILD for the described system is enough and thus bit saving is achieved in contrast to known approaches.
Embodiments modify the concepts provided in [1] when processing perceptually whitened and ILD compensated signals. In particular, embodiments employ an equal global gain for L, R, M and S, that together with the FDNS forms the coding thresholds. The global gain may be derived from an SNR estimation or from some other concept.
The proposed band-wise M/S decision precisely estimates the number of bits that may be used for coding each band with the arithmetic coder. This is possible because the M/S decision is done on the whitened spectrum and directly followed by the quantization. There is no need for experimental search for thresholds.
Embodiments of the present invention will be detailed subsequently referring to the appended drawings, in which:
The apparatus comprises a normalizer 110 configured to determine a normalization value for the audio input signal depending on the first channel of the audio input signal and depending on the second channel of the audio input signal. The normalizer 110 is configured to determine a first channel and a second channel of a normalized audio signal by modifying, depending on the normalization value, at least one of the first channel and the second channel of the audio input signal.
For example, the normalizer 110 may, in an embodiment, for example, be configured to determine the normalization value for the audio input signal depending on a plurality of spectral bands the first channel and of the second channel of the audio input signal, the normalizer 110 may, e.g., be configured to determine the first channel and the second channel of the normalized audio signal by modifying, depending on the normalization value, the plurality of spectral bands of at least one of the first channel and the second channel of the audio input signal.
Or, for example, the normalizer 110 may, e.g., be configured to determine a normalization value for the audio input signal depending on the first channel of the audio input signal being represented in a time domain and depending on the second channel of the audio input signal being represented in the time domain. Moreover, the normalizer 110 is configured to determine the first channel and the second channel of the normalized audio signal by modifying, depending on the normalization value, at least one of the first channel and the second channel of the audio input signal being represented in the time domain. The apparatus further comprises a transform unit (not shown in
Moreover, the apparatus comprises an encoding unit 120 being configured to generate a processed audio signal having a first channel and a second channel, such that one or more spectral bands of the first channel of the processed audio signal are one or more spectral bands of the first channel of the normalized audio signal, such that one or more spectral bands of the second channel of the processed audio signal are one or more spectral bands of the second channel of the normalized audio signal, such that at least one spectral band of the first channel of the processed audio signal is a spectral band of a mid signal depending on a spectral band of the first channel of the normalized audio signal and depending on a spectral band of the second channel of the normalized audio signal, and such that at least one spectral band of the second channel of the processed audio signal is a spectral band of a side signal depending on a spectral band of the first channel of the normalized audio signal and depending on a spectral band of the second channel of the normalized audio signal. The encoding unit 120 is configured to encode the processed audio signal to obtain the encoded audio signal.
In an embodiment, the encoding unit 120 may, e.g., be configured to choose between a full-mid-side encoding mode and a full-dual-mono encoding mode and a band-wise encoding mode depending on a plurality of spectral bands of a first channel of the normalized audio signal and depending on a plurality of spectral bands of a second channel of the normalized audio signal.
In such an embodiment, the encoding unit 120 may, e.g., be configured, if the full-mid-side encoding mode is chosen, to generate a mid signal from the first channel and from the second channel of the normalized audio signal as a first channel of a mid-side signal, to generate a side signal from the first channel and from the second channel of the normalized audio signal as a second channel of the mid-side signal, and to encode the mid-side signal to obtain the encoded audio signal.
According to such an embodiment, the encoding unit 120 may, e.g., be configured, if the full-dual-mono encoding mode is chosen, to encode the normalized audio signal to obtain the encoded audio signal.
Moreover, in such an embodiment, the encoding unit 120 may, e.g., be configured, if the band-wise encoding mode is chosen, to generate the processed audio signal, such that one or more spectral bands of the first channel of the processed audio signal are one or more spectral bands of the first channel of the normalized audio signal, such that one or more spectral bands of the second channel of the processed audio signal are one or more spectral bands of the second channel of the normalized audio signal, such that at least one spectral band of the first channel of the processed audio signal is a spectral band of a mid signal depending on a spectral band of the first channel of the normalized audio signal and depending on a spectral band of the second channel of the normalized audio signal, and such that at least one spectral band of the second channel of the processed audio signal is a spectral band of a side signal depending on a spectral band of the first channel of the normalized audio signal and depending on a spectral band of the second channel of the normalized audio signal, wherein the encoding unit 120 may, e.g., be configured to encode the processed audio signal to obtain the encoded audio signal.
According to an embodiment, the audio input signal may, e.g., be an audio stereo signal comprising exactly two channels. For example, the first channel of the audio input signal may, e.g., be a left channel of the audio stereo signal, and the second channel of the audio input signal may, e.g., be a right channel of the audio stereo signal.
In an embodiment, the encoding unit 120 may, e.g., be configured, if the band-wise encoding mode is chosen, to decide for each spectral band of a plurality of spectral bands of the processed audio signal, whether mid-side encoding is employed or whether dual-mono encoding is employed.
If the mid-side encoding is employed for said spectral band, the encoding unit 120 may, e.g., be configured to generate said spectral band of the first channel of the processed audio signal as a spectral band of a mid signal based on said spectral band of the first channel of the normalized audio signal and based on said spectral band of the second channel of the normalized audio signal. The encoding unit 120 may, e.g., be configured to generate said spectral band of the second channel of the processed audio signal as a spectral band of a side signal based on said spectral band of the first channel of the normalized audio signal and based on said spectral band of the second channel of the normalized audio signal.
If the dual-mono encoding is employed for said spectral band, the encoding unit 120 may, e.g., be configured to use said spectral band of the first channel of the normalized audio signal as said spectral band of the first channel of the processed audio signal, and may, e.g., be configured to use said spectral band of the second channel of the normalized audio signal as said spectral band of the second channel of the processed audio signal. Or the encoding unit 120 is configured to use said spectral band of the second channel of the normalized audio signal as said spectral band of the first channel of the processed audio signal, and may, e.g., be configured to use said spectral band of the first channel of the normalized audio signal as said spectral band of the second channel of the processed audio signal.
According to an embodiment, the encoding unit 120 may, e.g., be configured to choose between the full-mid-side encoding mode and the full-dual-mono encoding mode and the band-wise encoding mode by determining a first estimation estimating a first number of bits that are needed for encoding when the full-mid-side encoding mode is employed, by determining a second estimation estimating a second number of bits that are needed for encoding when the full-dual-mono encoding mode is employed, by determining a third estimation estimating a third number of bits that are needed for encoding when the band-wise encoding mode may, e.g., be employed, and by choosing that encoding mode among the full-mid-side encoding mode and the full-dual-mono encoding mode and the band-wise encoding mode that has a smallest number of bits among the first estimation and the second estimation and the third estimation.
In an embodiment, the encoding unit 120 may, e.g., be configured to estimate the third estimation bBW, estimating the third number of bits that are needed for encoding when the band-wise encoding mode is employed, according to the formula:
wherein nBands is a number of spectral bands of the normalized audio signal, wherein bbwMSi is an estimation for a number of bits that are needed for encoding an i-th spectral band of the mid signal and for encoding the i-th spectral band of the side signal, and wherein bbwLRi is an estimation for a number of bits that are needed for encoding an i-th spectral band of the first signal and for encoding the i-th spectral band of the second signal.
In embodiments, an objective quality measure for choosing between the full-mid-side encoding mode and the full-dual-mono encoding mode and the band-wise encoding mode may, e.g., be employed.
According to an embodiment, the encoding unit 120 may, e.g., be configured to choose between the full-mid-side encoding mode and the full-dual-mono encoding mode and the band-wise encoding mode by determining a first estimation estimating a first number of bits that are saved when encoding in the full-mid-side encoding mode, by determining a second estimation estimating a second number of bits that are saved when encoding in the full-dual-mono encoding mode, by determining a third estimation estimating a third number of bits that are saved when encoding in the band-wise encoding mode, and by choosing that encoding mode among the full-mid-side encoding mode and the full-dual-mono encoding mode and the band-wise encoding mode that has a greatest number of bits that are saved among the first estimation and the second estimation and the third estimation.
In another embodiment, the encoding unit 120 may, e.g., be configured to choose between the full-mid-side encoding mode and the full-dual-mono encoding mode and the band-wise encoding mode by estimating a first signal-to-noise ratio that occurs when the full-mid-side encoding mode is employed, by estimating a second signal-to-noise ratio that occurs when the full-dual-mono encoding mode is employed, by estimating a third signal-to-noise ratio that occurs when the band-wise encoding mode is employed, and by choosing that encoding mode among the full-mid-side encoding mode and the full-dual-mono encoding mode and the band-wise encoding mode that has a greatest signal-to-noise-ratio among the first signal-to-noise-ratio and the second signal-to-noise-ratio and the third signal-to-noise-ratio.
In an embodiment, the normalizer 110 may, e.g., be configured to determine the normalization value for the audio input signal depending on an energy of the first channel of the audio input signal and depending on an energy of the second channel of the audio input signal.
According to an embodiment the audio input signal may, e.g., be represented in a spectral domain. The normalizer 110 may, e.g., be configured to determine the normalization value for the audio input signal depending on a plurality of spectral bands the first channel of the audio input signal and depending on a plurality of spectral bands of the second channel of the audio input signal. Moreover, the normalizer 110 may, e.g., be configured to determine the normalized audio signal by modifying, depending on the normalization value, the plurality of spectral bands of at least one of the first channel and the second channel of the audio input signal.
In an embodiment, the normalizer 110 may, e.g., be configured to determine the normalization value based on the formulae:
wherein MDCTL,k is a k-th coefficient of an MDCT spectrum of the first channel of the audio input signal, and MDCTR,k is the k-th coefficient of the MDCT spectrum of the second channel of the audio input signal. The normalizer 110 may, e.g., be configured to determine the normalization value by quantizing ILD.
According to an embodiment illustrated by
In a particular embodiment, the preprocessing unit 105 may, e.g., be configured to generate the first channel and the second channel of the audio input signal by applying an encoder-side temporal noise shaping operation on the transformed audio signal before applying the encoder-side frequency domain noise shaping operation on the transformed audio signal.
In an embodiment, illustrated by
According to an embodiment, the encoding unit 120 may, e.g., be configured to obtain the encoded audio signal by applying encoder-side Stereo Intelligent Gap Filling on the normalized audio signal or on the processed audio signal.
In another embodiment, illustrated by
The system comprises a first apparatus 170 according to one of the above-described embodiments for encoding a first channel and a second channel of the four or more channels of the audio input signal to obtain a first channel and a second channel of the encoded audio signal. Moreover, the system comprises a second apparatus 180 according to one of the above-described embodiments for encoding a third channel and a fourth channel of the four or more channels of the audio input signal to obtain a third channel and a fourth channel of the encoded audio signal.
The apparatus for decoding comprises a decoding unit 210 configured to determine for each spectral band of a plurality of spectral bands, whether said spectral band of the first channel of the encoded audio signal and said spectral band of the second channel of the encoded audio signal was encoded using dual-mono encoding or using mid-side encoding.
The decoding unit 210 is configured to use said spectral band of the first channel of the encoded audio signal as a spectral band of a first channel of an intermediate audio signal and is configured to use said spectral band of the second channel of the encoded audio signal as a spectral band of a second channel of the intermediate audio signal, if the dual-mono encoding was used.
Moreover, the decoding unit 210 is configured to generate a spectral band of the first channel of the intermediate audio signal based on said spectral band of the first channel of the encoded audio signal and based on said spectral band of the second channel of the encoded audio signal, and to generate a spectral band of the second channel of the intermediate audio signal based on said spectral band of the first channel of the encoded audio signal and based on said spectral band of the second channel of the encoded audio signal, if the mid-side encoding was used.
Furthermore, the apparatus for decoding comprises a de-normalizer 220 configured to modify, depending on a de-normalization value, at least one of the first channel and the second channel of the intermediate audio signal to obtain the first channel and the second channel of the decoded audio signal.
In an embodiment, the decoding unit 210 may, e.g., be configured to determine whether the encoded audio signal is encoded in a full-mid-side encoding mode or in a full-dual-mono encoding mode or in a band-wise encoding mode.
Moreover, in such an embodiment, the decoding unit 210 may, e.g., be configured, if it is determined that the encoded audio signal is encoded in the full-mid-side encoding mode, to generate the first channel of the intermediate audio signal from the first channel and from the second channel of the encoded audio signal, and to generate the second channel of the intermediate audio signal from the first channel and from the second channel of the encoded audio signal, According to such an embodiment, the decoding unit 210 may, e.g., be configured, if it is determined that the encoded audio signal is encoded in the full-dual-mono encoding mode, to use the first channel of the encoded audio signal as the first channel of the intermediate audio signal, and to use the second channel of the encoded audio signal as the second channel of the intermediate audio signal.
Furthermore, in such an embodiment, the decoding unit 210 may, e.g., be configured, if it is determined that the encoded audio signal is encoded in the band-wise encoding mode,
For example, in the full-mid-side encoding mode, the formulae:
L=(M+S)/sqrt(2), and
R=(M−S)/sqrt(2)
may, e.g., be applied to obtain the first channel L of the intermediate audio signal and to obtain the second channel R of the intermediate audio signal, with M being the first channel of the encoded audio signal and S being the second channel of the encoded audio signal.
According to an embodiment, the decoded audio signal may, e.g., be an audio stereo signal comprising exactly two channels. For example, the first channel of the decoded audio signal may, e.g., be a left channel of the audio stereo signal, and the second channel of the decoded audio signal may, e.g., be a right channel of the audio stereo signal.
According to an embodiment, the de-normalizer 220 may, e.g., be configured to modify, depending on the de-normalization value, the plurality of spectral bands of at least one of the first channel and the second channel of the intermediate audio signal to obtain the first channel and the second channel of the decoded audio signal.
In another embodiment shown in
According to an embodiment illustrated by
In similar embodiment, illustrated by
According to another embodiment, illustrated by
In another embodiment, the decoding unit 210 may, e.g., be configured to apply decoder-side Stereo Intelligent Gap Filling on the encoded audio signal.
Moreover, as illustrated in
The system comprises an apparatus 310 for encoding according to one of the above-described embodiments, wherein the apparatus 310 for encoding is configured to generate the encoded audio signal from the audio input signal.
Moreover, the system comprises an apparatus 320 for decoding as described above. The apparatus 320 for decoding is configured to generate the decoded audio signal from the encoded audio signal.
Similarly, a system for generating an encoded audio signal from an audio input signal and for generating a decoded audio signal from the encoded audio signal is provided. The system comprises a system according to the embodiment of
In the following, advantageous embodiments are described.
Moreover,
Furthermore,
Time Domain Transient Detector (TD TD), Windowing, MDCT, MDST and OLA may, e.g., be done as described in [6a] or [6b]. MDCT and MDST form Modulated Complex Lapped Transform (MCLT); performing separately MDCT and MDST is equivalent to performing MCLT; “MCLT to MDCT” represents taking just the MDCT part of the MCLT and discarding MDST (see [12]).
Choosing different window lengths in the left and the right channel may, e.g., force dual mono coding in that frame.
Temporal Noise Shaping (TNS) may, e.g., be done similar as described in [6a] or [6b].
Frequency domain noise shaping (FDNS) and the calculation of FDNS parameters may, e.g., be similar to the procedure described in [8]. One difference may, e.g., be that the FDNS parameters for frames where TNS is inactive are calculated from the MCLT spectrum. In frames where the TNS is active, the MDST may, e.g., be estimated from the MDCT.
The FDNS may also be replaced with the perceptual spectrum whitening in the time domain (as, for example, described in [13]).
Stereo processing consists of global ILD processing, band-wise M/S processing, bitrate distribution among channels.
Single global ILD is calculated as
where MDCTL,k is the k-th coefficient of the MDCT spectrum in the left channel and MDCTR,k is the k-th coefficient of the MDCT spectrum in the right channel. The global ILD is uniformly quantized:
=max(1,min(ILDrange−1,└ILDrange·ILD+0.5┘))
ILDrange=1<<ILDbits
where ILDbits is the number of bits used for coding the global ILD. is stored in the bitstream.
<< is a bit shift operation and shifts the bits by ILDbits to the left by inserting 0 bits.
In other words: ILDrange=2ILDbits.
The energy ratio of the channels is then:
If ratioILD>1 then the right channel is scaled with
otherwise the left channel is scaled with ratioILD. This effectively means that the louder channel is scaled.
If the perceptual spectrum whitening in the time domain is used (as, for example, described in [13]), the single global ILD can also be calculated and applied in the time domain, before the time to frequency domain transformation (i.e. before the MDCT). Or, alternatively, the perceptual spectrum whitening may be followed by the time to frequency domain transformation followed by the single global TLD in the frequency domain. Alternatively the single global ILD may be calculated in the time domain before the time to frequency domain transformation and applied in the frequency domain after the time to frequency domain transformation.
The mid MDCTM,k and the side MDCTS,k channels are formed using the left channel MDCTL,k and the right channel MDCTR,k as MDCTM,k=1/√{square root over (2)}(MDCTL,k+MDCTR,k) and MDCTS,k=1/√{square root over (2)}(MDCTL,k−MDCTR,k). The spectrum is divided into bands and for each band it is decided if the left, right, mid or side channel is used.
A global gain Gest is estimated on the signal comprising the concatenated Left and Right channels. Thus is different from [6b] and [6a]. The first estimate of the gain as described in chapter 5.3.3.2.8.1.1 “Global gain estimator” of [6b] or of [6a] may, for example, be used, for example, assuming an SNR gain of 6 dB per sample per bit from the scalar quantization.
The estimated gain may be multiplied with a constant to get an underestimation or an overestimation in the final Gest. Signals in the left, right, mid and side channels are then quantized using Gest, that is the quantization step size is 1/Gest.
The quantized signals are then coded using an arithmetic coder, a Huffman coder or any other entropy coder, in order to get the number of bits that may be used. For example, the context based arithmetic coder described in chapter 5.3.3.2.8.1.3-chapter 5.3.3.2.8.1.7 of [6b] or of [6a] may be used. Since the rate loop (e.g. 5.3.3.2.8.1.2 in [6b] or in [6a]) will be run after the stereo coding, an estimation of the bits that may be used is enough.
As an example, for each quantized channel number of bits that may be used for context based arithmetic coding is estimated as described in chapter 5.3.3.2.8.1.3-chapter 5.3.3.2.8.1.7 of [6b] or of [6a].
According to an embodiment, the bit estimation for each quantized channel (left, right, mid or side) is determined based on the following example code:
where spectrum is set to point to the quantized spectrum to be coded, start_line is set to 0, end_line is set to the length of the spectrum, lastnz is set to the index of the last non-zero element of spectrum, ctx is set to 0 and probability is set to 1 in 14 bit fixed point notation (16384=1<<14).
As outlined, the above example code may be employed, for example, to obtain a bit estimation for at least one of the left channel, the right channel, the mid channel and the side channel.
Some embodiments employ an arithmetic coder as described in [6b] and [6a]. Further details may, e.g., be found in chapter 5.3.3.2.8 “Arithmetic coder” of [6b].
An estimated number of bits for “full dual mono” (bLR) is then equal to the sum of the bits that may be used for the right and the left channel.
An estimated number of bits for the “full M/S” (bMS) is then equal to the sum of the bits that may be used for the Mid and the Side channel.
In an alternative embodiment, which is an alternative to the above example code, the formula:
may, e.g., be employed to calculate an estimated number of bits for “full dual mono” (bLR).
Moreover, in an alternative embodiment, which is an alternative to the above example code, the formula:
may, e.g., be employed to calculate an estimated number of bits for the “full M/S” (bMS).
For each band i with borders [lbiubi], it is checked how many bits would be used for coding the quantized signal in the band in the L/R (bbwLRi) and in the M/S (bbwMSi) mode. In other words, a band-wise bit estimation is conducted for the L/R mode for each band i: bbwLRi, which results in the L/R mode band-wise bit estimation for band i, and a band-wise bit estimation is conducted for the M/S mode for each band i, which results in the M/S mode band-wise bit estimation for band i: bbwMSi.
The mode with fewer bits is chosen for the band. The number of bits that may be used for arithmetic coding is estimated as described in chapter 5.3.3.2.8.1.3-chapter 5.3.3.2.8.1.7 of [6b] or of [6a]. The total number of bits that may be used for coding the spectrum in the “band-wise M/S” mode (bEW) is equal to the sum of min(bbwLRi,bbwMSi)
The “band-wise M/S” mode needs additional nBands bits for signaling in each band whether L/R or M/S coding is used. The choice between the “band-wise M/S”, the “full dual mono” and the “full M/S” may, e.g., be coded as the stereo mode in the bitstream and then the “full dual mono” and the “full M/S” don't need additional bits, compared to the “band-wise M/S”, for signaling.
For the context based arithmetic coder, bbwLRi used in the calculation of bLR is not equal to bbwLRi used in the calculation of bBW, nor is bbwMSi used in the calculation of bMS equal to bbwMSi used in the calculation of bBW, as the bbwLRi and the bbwMS depend on the choice of the context for the previous bbwLRj and bbwMSj, where j<i. bLR may be calculated as the sum of the bits for the Left and for the Right channel and bMS may be calculated as the sum of the bits for the Mid and for the Side channel, where the bits for each channel can be calculated using the example code context_based_arihmetic_coder_estimate_bandwise where start_line is set to 0 and end_line is set to lastnz.
In an alternative embodiment, which is an alternative to the above example code, the formula:
may, e.g., be employed to calculate an estimated number of bits for “full dual mono” (bLR) and signaling in each band L/R coding may be used.
Moreover, in an alternative embodiment, which is an alternative to the above example code, the formula:
may, e.g., be employed to calculate an estimated number of bits for the “full M/S” (bMS) and signaling in each band M/S coding may be used.
In some embodiments, at first, a gain G may, e.g., be estimated and a quantization step size may, e.g., estimated, for which it is expected that there are enough bits to code the channels in L/R.
In the following, embodiments are provided which describe different ways how to determine a band-wise bit estimation, e.g., it is described how to determine bbwLRi and bbwMSi according to particular embodiments.
As already outlined, according to a particular embodiment, for each quantized channel, the number of bits that may be used for arithmetic coding is estimated, for example, as described in chapter 5.3.3.2.8.1.7 “Bit consumption estimation” of [6b] or of the similar chapter of [6a].
According to an embodiment, the band-wise bit estimation is determined using context_based_arihmetic_coder_estimate for calculating each of bbwLRi and bbwMSi for every i, by setting start_line to lbi, end_line to ubi, lastnz to the index of the last non-zero element of spectrum.
Four contexts (ctxL, ctxR, ctxM, ctxM) and four probabilities (pL, pR, pM, pM) are initialized and then repeatedly updated.
At the beginning of the estimation (for ε=0) each context (ctxL, ctxR, ctxM, ctxM) is set to 0 and each probability (pL, pR, pM, pM) is set to 1 in 14 bit fixed point notation (16384=1<<14).
bbwLRi is calculated as sum of bbwLi and bbwRi, where bbwLi is determined using context_based_arihmetic_coder_estimate by setting spectrum to point to the quantized left spectrum to be coded, ctx is set to ctxL and probability is set to pL and bbwRi is determined using context_based_arihmetic_coder_estimate by setting spectrum to point to the quantized right spectrum to be coded, ctx is set to ctxR and probability is set to pR.
bbwMSi is calculated as sum of bbwMi and bbwSi, where bbwMi is determined using context_based_arihmetic_coder_estimate by setting spectrum to point to the quantized mid spectrum to be coded, ctx is set to ctxM and probability is set to pM and bbwSi is determined using context_based_arihmetic_coder_estimate by setting spectrum to point to the quantized side spectrum to be coded. ctx is set to ctxS and probability is set to pS.
If bbwLRi<bbwMSi then ctxL is set to ctxM, ctxR is set to ctxS, pL is set to pM, pR is set to pS.
If bbwLRi<=bbwMSi then ctxM is set to ctxL, ctxS is set to ctxR, pM is set to pL, pS is set to pR.
In an alternative embodiment, the band-wise bit estimation is obtained as follows:
The spectrum is divided into bands and for each band it is decided if M/S processing should be done. For all bands where M/S is used, MDCTL,k and MDCTR,k are replaced with MDCTM,k=0.5(MDCTL,k+MDCTR,k) and MDCTS,k=0.5(MDCTL,k−MDCTR,k).
Band-wise M/S vs L/R decision may, e.g., be based on the estimated bit saving with the M/S processing:
where NRGR,i is the energy in the i-th band of the right channel, NRGL,i is the energy in the i-th band of the left channel, NRGM,i is the energy in the i-th band of the mid channel, NRGS,i is the energy in the i-th band of the side channel and lines, is the number of spectral coefficients in the i-th band. Mid channel is the sum of the left and the right channel, side channel is the differences of the left and the right channel.
bitsSavedi is limited with the estimated number of bits to be used for the i-th band:
In particular, in
It should be noted that for the context based arithmetic coder, bbwLRi and bbwMSi depend on the arithmetic coder context, which depends on the M/S vs L/R choice in all bands j<i, as, e.g., described above.
If “full dual mono” is chosen then the complete spectrum consists of MDCTL,k and MDCTR,k.
If “full M/S” is chosen then the complete spectrum consists of MDCTM,k and MDCTS,k. If “band-wise M/S” is chosen then some bands of the spectrum consist of MDCTL,k and MDCTR,k and other bands consist of MDCTM,k and MDCTS,k.
The stereo mode is coded in the bitstream. In “band-wise M/S” mode also band-wise M/S decision is coded in the bitstream.
The coefficients of the spectrum in the two channels after the stereo processing are denoted as MDCTLM,k and MDCTRS,k. MDCTLM,k is equal to MDCTM,k in M/S bands or to MDCTL,k in L/R bands and MDCTRS,k is equal to MDCTS,k in M/S bands or to MDCTR,k in L/R bands, depending on the stereo mode and band-wise M/S decision. The spectrum consisting of MDCTLM,k may, e.g., be referred to as jointly coded channel 0 (Joint Chn 0) or may, e.g., be referred to as first channel, and the spectrum consisting of MDCTRS,k may, e.g., be referred to as jointly coded channel 1 (Joint Chn 1) or may, e.g., be referred to as second channel.
The bitrate split ratio is calculated using the energies of the stereo processed channels:
The bitrate split ratio is uniformly quantized:
=max(1,min(rsplitrange−1,└rsplitrange·rsplit+0.5┘))
rsplitrange=1<<rsplitbits
where rsplitbits is the number of bits used for coding the bitrate split ratio. If
then is decreased for
If
then is increased for
is stored in the bitstream.
The bitrate distribution among channels is:
Additionally it is made sure that there are enough bits for the entropy coder in each channel by checking that bitsLM−sideBitsLM>minBits and bitsRS−sideBitsRS>minBits, where minBits is the minimum number of bits that may be used by the entropy coder. If there is not enough bits for the entropy coder then is increased/decreased by 1 till bitsLM−sidBitsLM>minBits and bitsRS−sideBitsRS>minBits are fulfilled.
Quantization, noise filling and the entropy encoding, including the rate-loop, are as described in 5.3.3.2 “General encoding procedure” of 5.3.3 “MDCT based TCX” in [6b] or in [6a]. The rate-loop can be optimized using the estimated Gest. The power spectrum P (magnitude of the MCLT) is used for the tonality/noise measures in the quantization and Intelligent Gap Filling (IGF) as described in [6a] or [6b]. Since whitened and band-wise M/S processed MDCT spectrum is used for the power spectrum, the same FDNS and M/S processing is to be done on the MDST spectrum. The same scaling based on the global ILD of the louder channel is to be done for the MDST as it was done for the MDCT. For the frames where TNS is active, MDST spectrum used for the power spectrum calculation is estimated from the whitened and M/S processed MDCT spectrum: Pk=MDCTk2+(MDCTk+1−MDCTk−1)2.
The decoding process starts with decoding and inverse quantization of the spectrum of the jointly coded channels, followed by the noise filling as described in 6.2.2 “MDCT based TCX” in [6b] or [6a]. The number of bits allocated to each channel is determined based on the window length, the stereo mode and the bitrate split ratio that are coded in the bitstream. The number of bits allocated to each channel may be known before fully decoding the bitstream.
In the intelligent gap filling (IGF) block, lines quantized to zero in a certain range of the spectrum, called the target tile are filled with processed content from a different range of the spectrum, called the source tile. Due to the band-wise stereo processing, the stereo representation (i.e. either L/R or M/S) might differ for the source and the target tile. To ensure good quality, if the representation of the source tile is different from the representation of the target tile, the source tile is processed to transform it to the representation of the target file prior to the gap filling in the decoder. This procedure is already described in [9]. The IGF itself is, contrary to [6a] and [6b], applied in the whitened spectral domain instead of the original spectral domain. In contrast to the known stereo codecs (e.g. [9]), the IGF is applied in the whitened, ILD compensated spectral domain.
Based on the stereo mode and band-wise M/S decision, left and right channel are constructed from the jointly coded channels: MDCTL,k=1/√{square root over (2)}(MDCTLM,k+MDCTRS,k) and MDCTR,k=1/√{square root over (2)}(MDCTLM,k−MDCTRS,k).
If ratioILD>1 then the right channel is scaled with ratioILD, otherwise the left channel is scaled with
For each case where division by 0 could happen, a small epsilon is added to the denominator.
For intermediate bitrates, e.g. 48 kbps, MDCT-based coding may, e.g., lead to too coarse quantization of the spectrum to match the bit-consumption target. That raises the need for parametric coding, which combined with discrete coding in the same spectral region, adapted on a frame-to-frame basis, increases fidelity.
In the following, aspects of some of those embodiments, which employ stereo filling, are described. It should be noted that for the above embodiments, it is not necessary that stereo filling is employed. So, only some of the above-described embodiments employ stereo filling. Other embodiments of the above-described embodiments do not employ stereo filling at all.
Stereo frequency filling in MPEG-H frequency-domain stereo is, for example, described in [11]. In [11] the target energy for each band is reached by exploiting the band energy sent from the encoder in the form of scale factors (for example in AAC). If frequency-domain noise (FDNS) shaping is applied and the spectral envelope is coded by using the LSFs (line spectral frequencies) (see [6a], [6b], [8]) it is not possible to change the scaling only for some frequency bands (spectral bands) as needed from the stereo filling algorithm described in [11].
At first some background information is provided.
When mid/side coding is employed, it is possible to encode the side signals in different ways.
According to a first group of embodiments, a side signal S is encoded in the same way as a mid signal M. Quantization is conducted, but no further steps are conducted to reduce the bit rate that may be used. In general, such an approach aims to allow a quite precise reconstruction of the side signal S on the decoder side, but, on the other hand involves a large amount of bits for encoding.
According to a second group of embodiments, a residual side signal Sres is generated from the original side signal S based on the M signal. In an embodiment, the residual side signal may, for example, be calculated according to the formula:
Sres=S−g·M.
Other embodiments may, e.g., employ other definitions for the residual side signal.
The residual signal Sres is quantized and transmitted to the decoder together with parameter g. By quantizing the residual signal Sres instead of the original side signal S, in general, more spectral values are quantized to zero. This, in general, saves the amount of bits that may be used for encoding and transmitting compared to the quantized original side signal S.
In some of these embodiments of the second group of embodiments, a single parameter g is determined for the complete spectrum and transmitted to the decoder. In other embodiments of the second group of embodiments, each of a plurality of frequency bands/spectral bands of the frequency spectrum may, e.g., comprise two or more spectral values, and a parameter g is determined for each of the frequency bands/spectral bands and transmitted to the decoder.
According to a third group of embodiments, stereo filling is employed. In some of these embodiments, on the decoder side, the side signal S for a certain point-in-time t is generated from a mid signal of the immediately preceding point-in-time t−1.
Generating the side signal S for a certain point-in-time t from a mid signal of the immediately preceding point-in-time t−1 on the decoder side may, for example, be conducted according to the formula:
S(t)=hb·M(t−1).
On the encoder side, the parameter hb is determined for each frequency band of a plurality of frequency bands of the spectrum. After determining the parameters hb, the encoder transmits the parameters hb to the decoder. In some embodiments, the spectral values of the side signal S itself or of a residual of it are not transmitted to the decoder, Such an approach aims to save the number of bits that may be used.
In some other embodiments of the third group of embodiments, at least for those frequency bands where the side signal is louder than the mid signal, the spectral values of the side signal of those frequency bands are explicitly encoded and sent to the decoder.
According to a fourth group of embodiments, some of the frequency bands of the side signal S are encoded by explicitly encoding the original side signal S (see the first group of embodiment) or a residual side signal Sres, while for the other frequency bands, stereo filling is employed. Such an approach combines the first or the second groups of embodiments, with the third group of embodiments, which employs stereo filling. For example, lower frequency bands may, e.g., be encoded by quantizing the original side signal S or the residual side signal Sres, while for the other, upper frequency bands, stereo filling may, e.g., be employed.
Those of the above-described embodiments, which do employ stereo filling, may, for example, employ stereo filling as described in in MPEG-H, see MPEG-H frequency-domain stereo (see, for example, [11]).
Some of the embodiments, which employ stereo filling, may, for example, apply the stereo filling algorithm described in [11] on systems where the spectral envelope is coded as LSF combined with noise filling. Coding the spectral envelope, may, for example, be implemented as for example, described in [6a], [6b], [8]. Noise filling, may, for example, be implemented as described in [6a] and [6b].
In some particular embodiments, stereo-filling processing including stereo filling parameter calculation may, e.g., be conducted in the M/S bands within the frequency region, for example, from a lower frequency, such as 0.08 Fs (Fs=sampling frequency), to, for example, an upper frequency, for example, the IGF cross-over frequency.
For example, for frequency portions lower than the lower frequency (e.g., 0.08 Fe), the original side signal S or a residual side signal derived from the original side signal S, may, e.g., be quantized and transmitted to the decoder. For frequency portions greater than the upper frequency (e.g., the IGF cross-over frequency), Intelligent Gap Filling (IGF) may, e.g., be conducted.
More particularly, in some of the embodiments, the side channel (the second channel), for those frequency bands within the stereo filling range (for example, 0.08 times the sampling frequency up to the IGF cross-over frequency) that are fully quantized to zero, may, for example, be filled using a “copy-over” from the previous frame's whitened MDCT spectrum downmix (IGF=Intelligent Gap Filling). The “copy-over” may, for example, be applied complimentary to the noise filling and scaled accordingly depending on the correction factors that are sent from the encoder. In other embodiments, the lower frequency may exhibit other values than 0.08 Fs.
Instead of being 0.08 Fs, in some embodiments, the lower frequency may, e.g., be a value in the range from 0 to 0.50 Fs In particular, embodiments, the lower frequency may be a value in the range from 0.01 Fs to 0.50 Fs. For example, the lower frequency may, e.g., be for example, 0.12 Fs or 0.20 Fs or 0.25 Fs.
In other embodiments, in addition to or instead of employing Intelligent Gap Filling, for frequencies greater than the upper frequency, Noise Filling may, e.g., be conducted.
In further embodiments, there is no upper frequency and stereo filling is conducted for each frequency portion greater than the lower frequency.
In still further embodiments, there is no lower frequency, and stereo filling is conducted for frequency portions from the lowest frequency band up to the upper frequency.
In still further embodiments, there is no lower frequency and no upper frequency and stereo filling is conducted for the whole frequency spectrum.
In the following, particular embodiments, which employ stereo filling, are described.
In particular, stereo filling with correction factors according to particular embodiments is described. Stereo Filling with correction factors may, e.g., be employed in the embodiments of the stereo filling processing blocks of
In the following,
Stereo filling encoding may be applied when the stereo decision is M/S for all bands (full M/S) or M/S for all stereo filling bands (bandwise M/S).
When it was determined to apply full dual-mono processing stereo filling is bypassed.
Moreover, when L/R coding is chosen for some of the spectral bands (frequency bands), stereo filling is also bypassed for these spectral bands.
Now, particular embodiments employing stereo filling are considered. There, processing within the block may, e.g., be conducted as follows:
For the frequency bands (fb) that fall within the frequency region starting from the lower frequency (e.g., 0.08 Fs (Fs=sampling frequency)), up to the upper frequency, (e.g., the IGF cross-over frequency):
In an embodiment, ε=0. In other embodiments, e.g., 0.1>ε>0, e.g., to avoid a division by 0.
Stereo filling is applied on the side channel after decoding, inverse quantization and noise filling. For the frequency bands, within the stereo filling range, that are quantized to zero, a “copy-over” from the last frame's whitened MDCT spectrum downmix may, e.g., be applied (as seen in
ETfb=correction_factorfb·EprevDmxfb.
The generation of the side signal on the decoder side (which may, e.g, be referred to as a previous downmix “copy-over”) is conducted, for example according to the formula:
Si=Ni+facDmxfb·prevDmxi,i∈[fb,fb+1],
where i denotes the frequency bins (spectral values) within the frequency band fb, N is the noise filled spectrum and facDmxfb is a factor that is applied on the previous downmix, that depends on the stereo filling correction factors sent from the encoder.
facDmxfb may, in a particular embodiment, e.g., be calculated for each frequency band fb as:
facDmxfb=√{square root over (correction_factorfb−ENfb/(EprevDmxfb+ε))}
where ENfb, is the energy of the noise-filled spectrum in band fb and EprevDmxfb is the respective previous frame downmix energy.
On the encoder side, alternative embodiments do not take the MDST spectrum (or the MDCT spectrum) into account. In those embodiments, the proceeding on the encoder side is adapted, for example, as follows:
For the frequency bands (fb) that fall within the frequency region starting from the lower frequency (e.g., 0.08 Fs (Fs=sampling frequency)), up to the upper frequency, (e.g., the IGF cross-over frequency):
According to some of the embodiments, means may, e.g., be provided to apply stereo filling in systems with FDNS, where spectral envelope is coded using LSF (or a similar coding where it is not possible to independently change scaling in single bands).
According to some of the embodiments, means may, e.g., be provided to apply stereo filling in systems without the complex/real prediction.
Some of the embodiments may, e.g., employ parametric stereo filling, in the sense that explicit parameters (stereo filling correction factors) are sent from encoder to decoder, to control the stereo filling (e.g. with the downmix of the previous frame) of the whitened left and right MDCT spectrum.
In more general:
In some of the embodiments, the encoding unit 120 of
According to some of the embodiments, the encoding unit 120 may, e.g., be configured to determine said correction factor for said spectral band of said side signal according to the formula
correction_factorfb=EResfb/(EprevDmxfb+ε)
wherein correction_factorfb indicates said correction factor for said spectral band of said side signal, wherein EResfb indicates a residual energy depending on an energy of a spectral band of said residual, which corresponds to said spectral band of said mid signal, wherein EprevDmxfb indicates a previous energy depending on an energy of the spectral band of the previous mid signal, and wherein ε=0, or wherein 0.1>ε>0.
In some of the embodiments, said residual may, e.g., be defined according to
ResR=SR−aRDmxR,
wherein ResR is said residual, wherein SR is said side signal, wherein aR is a (e.g., real) coefficient (e.g., a prediction coefficient), wherein DmxR is said mid signal, wherein the encoding unit (120) is configured to determine said residual energy according to
EResfb=ΣfbResR2.
According to some of the embodiments, said residual is defined according to
ResR′=SR−aRDmxR−aIDmxI,
wherein ResR is said residual, wherein SR is said side signal, wherein aR is a real part of a complex (prediction) coefficient, and wherein aI is an imaginary part of said complex (prediction) coefficient, wherein DmxR is said mid signal, wherein DmxI is another mid signal depending on the first channel of the normalized audio signal and depending on the second channel of the normalized audio signal, wherein another residual of another side signal SI depending on the first channel of the normalized audio signal and depending on the second channel of the normalized audio signal is defined according to
ResI=SI−aRDmxR−aIDmxI,
wherein the encoding unit 120 may, e.g., be configured to determine said residual energy according to
EResfb=ΣfbResR2+ΣfbResI2
wherein the encoding unit 120 may, e.g., be configured to determine the previous energy depending on the energy of the spectral band of said residual, which corresponds to said spectral band of said mid signal, and depending on an energy of a spectral band of said another residual, which corresponds to said spectral band of said mid signal.
In some of the embodiments, the decoding unit 210 of
According to some of the embodiments, if mid-side encoding was used, the decoding unit 210 may, e.g., be configured to reconstruct said spectral band of the side signal, by reconstructing spectral values of said spectral band of the side signal according to
Si=Ni+facDmxfb·prevDmxi
wherein Si indicates the spectral values of said spectral band of the side signal, wherein prevDmxi indicates spectral values of the spectral band of said previous mid signal, wherein Ni indicates spectral values of a noise filled spectrum, wherein facDmxfb is defined according to
facDmxfb=√{square root over (correction_factorfb−ENfb/(EprevDmxfb+ε))}
wherein correction_factorfb is said correction factor for said spectral band of the side signal, wherein ENfb, is an energy of the noise-filled spectrum, wherein EprevDmxfb is an energy of said spectral band of said previous mid signal, and wherein ε=0, or wherein 0.1>ε>0.
In some of the embodiments, a residual may, e.g., be derived from complex stereo prediction algorithm at encoder, while there is no stereo prediction (real or complex) at decoder side.
According to some of the embodiments, energy correcting scaling of the spectrum at encoder side may, e.g., be used, to compensate for the fact that there is no inverse prediction processing at decoder side.
Although some aspects have been described in the context of an apparatus, it is clear that these aspects also represent a description of the corresponding method, where a block or device corresponds to a method step or a feature of a method step. Analogously, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus. Some or all of the method steps may be executed by (or using) a hardware apparatus, like for example, a microprocessor, a programmable computer or an electronic circuit. In some embodiments, one or more of the most important method steps may be executed by such an apparatus.
Depending on certain implementation requirements, embodiments of the invention can be implemented in hardware or in software or at least partially in hardware or at least partially in software. The implementation can be performed using a digital storage medium, for example a floppy disk, a DVD, a Blu-Ray, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed. Therefore, the digital storage medium may be computer readable.
Some embodiments according to the invention comprise a data carrier having electronically readable control signals, which are capable of cooperating with a programmable computer system, such that one of the methods described herein is performed.
Generally, embodiments of the present invention can be implemented as a computer program product with a program code, the program code being operative for performing one of the methods when the computer program product runs on a computer. The program code may for example be stored on a machine readable carrier.
Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.
In other words, an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.
A further embodiment of the inventive methods is, therefore, a data carrier (or a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer program for performing one of the methods described herein. The data carrier, the digital storage medium or the recorded medium are typically tangible and/or non-transitory.
A further embodiment of the inventive method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or the sequence of signals may for example be configured to be transferred via a data communication connection, for example via the Internet.
A further embodiment comprises a processing means, for example a computer, or a programmable logic device, configured to or adapted to perform one of the methods described herein.
A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
A further embodiment according to the invention comprises an apparatus or a system configured to transfer (for example, electronically or optically) a computer program for performing one of the methods described herein to a receiver. The receiver may, for example, be a computer, a mobile device, a memory device or the like. The apparatus or system may, for example, comprise a file server for transferring the computer program to the receiver.
In some embodiments, a programmable logic device (for example a field programmable gate array) may be used to perform some or all of the functionalities of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor in order to perform one of the methods described herein. Generally, the methods are advantageously performed by any hardware apparatus.
The apparatus described herein may be implemented using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.
The methods described herein may be performed using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and 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 |
---|---|---|---|
16152454 | Jan 2016 | EP | regional |
16152457 | Jan 2016 | EP | regional |
16199895 | Nov 2016 | EP | regional |
This application is a continuation of copending International Application No. PCT/EP2017/051177, filed Jan. 20, 2017, which is incorporated herein by reference in its entirety, which claims priority from European Applications Nos. EP 16152457.4, filed Jan. 22, 2016, EP 16152454.1, filed Jan. 22, 2016, and EP 16199895.0, filed Nov. 21, 2016, which are each incorporated herein in its entirety by this reference thereto.
Number | Name | Date | Kind |
---|---|---|---|
6341165 | Gbur et al. | Jan 2002 | B1 |
6370502 | Wu | Apr 2002 | B1 |
8655670 | Purnhagen et al. | Feb 2014 | B2 |
20030091194 | Teichmann et al. | May 2003 | A1 |
20070208565 | Lakaniemi et al. | Sep 2007 | A1 |
20090228285 | Schnell et al. | Sep 2009 | A1 |
20100262420 | Herre | Oct 2010 | A1 |
20110200198 | Grill et al. | Aug 2011 | A1 |
20120002818 | Heiko et al. | Jan 2012 | A1 |
20120275604 | Vos | Nov 2012 | A1 |
20130028426 | Purnhagen | Jan 2013 | A1 |
20130030819 | Purnhagen et al. | Jan 2013 | A1 |
20130266145 | Purnhagen et al. | Oct 2013 | A1 |
20130332153 | Markovic | Dec 2013 | A1 |
20150287417 | Disch et al. | Oct 2015 | A1 |
20150380001 | Purnhagen et al. | Dec 2015 | A1 |
20160027447 | Dickins et al. | Jan 2016 | A1 |
20170134873 | Beack | May 2017 | A1 |
Number | Date | Country |
---|---|---|
1926610 | Mar 2007 | CN |
102016985 | Apr 2011 | CN |
102124517 | Jul 2011 | CN |
102884570 | Jan 2013 | CN |
104050969 | Sep 2014 | CN |
105023578 | Nov 2015 | CN |
2830054 | Jan 2015 | EP |
2830054 | Jan 2015 | EP |
2830064 | Jan 2015 | EP |
2676266 | Mar 2015 | EP |
H08-095599 | Apr 1996 | JP |
2010530079 | Sep 2010 | JP |
2012-521012 | Sep 2012 | JP |
2013524281 | Jun 2013 | JP |
2014510306 | Apr 2014 | JP |
2015535620 | Dec 2015 | JP |
20130095851 | Feb 2015 | KR |
2559899 | Aug 2015 | RU |
2008065487 | Jun 2008 | WO |
2011124609 | Oct 2011 | WO |
2011124608 | Oct 2011 | WO |
2012121637 | Sep 2012 | WO |
2015010947 | Jan 2015 | WO |
2017087073 | May 2017 | WO |
2017106041 | Jun 2017 | WO |
Entry |
---|
J.-M. Valin, G. Maxwell, T. B. Terriberry and K. Vos, “High-Quality, Low-Delay Music Coding in the Opus Codec,” in Proc. AES 135th Convention, New York, 2013. (Year: 2013). |
Valin, Jean-Marc; Vos, Koen; Terriberry, Timothy B. (Sep. 11, 2012). “Opus Codec Overview”. Definition of the Opus Audio Codec. p. 8. sec. 2. doi:10.17487/RFC6716. ISSN 2070-1721. RFC 6716. (Year: 2012). |
“Information technology—Coding of moving pictures and associated audio for digital storage media at up to About 1.5Mbit/s—Part 3”, ISO/IEC 11172-3, 1993. |
“Information Technology—Generic coding of moving pictures and associated audio anformation”, ISO/IEC 13818-7. Advanced Audio Coding (AAC)., 2003. |
Edler, Bernd et al., “Audio Coding Using a Psychoacoustic Pre- and Post-Filter”, Acoustics, Speech, and Signal Processing, ICASSP 2000; pp. 881-884. |
Helmrich, Christian R. et al., “Efficient Transform Coding of Two-Channel Audio Signals by Means of Complex-Valued Stereo Prediction”, IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2011; pp. 497-500. |
Helmrich, Christian R. et al., “Low-Complexity Semi-Parametric Joint-Stereo Audio Transform Coding”, 2015 23rd European Signal Processing Conference (EUSIPCO), EURASIP, XP032836448, Aug. 31, 2015, pp. 794-798. |
Herre, Jurgen et al., “Combined Stereo Coding”, convention papers, 93rd AES Convention, 1992; 18 pages. |
3GPP TS 26.445 V12.5.0, Codec for Enhanced Voice Services (EVS); Detailed algorithmic description, Dec. 2015; 670 pages. |
3GPP TS 26.445 V13.3.0, Codec for Enhanced Voice Services (EVS); Detailed algorithmic description, Sep. 2016; 673 pages. |
Johnston, J D. et al., “Sum-Difference Stereo Transform Coding”, Proc. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 1992; pp. II-569 to II-572. |
Lindblom, Jonas et al., “Flexible Sum-Difference Stereo Coding Based on Time-Aligned Signal Components”, 2005 IEEE Workshop on Applications of Signal Processing to Audio and Acoustics, Oct. 16-19, 2005, New Paltz, NY; XP010854377, pp. 255-258. |
Malvar, Henrique, “A Modulated Complex Lapped Transform and its Applications to Audio Processing”, Proceedings on IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP), May 1999; 9 pages. |
Valin, Jean-Marc et al., “High-Quality, Low-Delay Music Coding in the Opus Codec”, Proc. AES 135th Convention, Oct. 17-20, 2013; 10 pages. |
Draft International Standard ISO/IEC DIS 23008-3. ISO/IEC JTC 1/SC 29/WG 11, Jul. 25, 2014. |
ETSI TS 103 190-2 V1.1.1, Digital Audio Compression (AC-4) Standard Part 2: Immersive and personalized audio, Sep. 2015 (2015). |
Helmrich, Christian R, et al., “Low-complexity semi-parametric joint-stereo audio transform coding”, 23rd European Signal Processing Conference (EUSIPCO), EURASIP, pp. 794-798, XP032836448, 2015. |
Lindblom, J , et al., “Flexible sum-difference stereo coding based on time-aligned signal components”, Applications of Signal Processing to Audio and Acoustics, 2005. IEEE Workshop on New Paltz, NY, USA Oct. 16-19, 2005, pp. 255-258, XP010854377. |
Number | Date | Country | |
---|---|---|---|
20180330740 A1 | Nov 2018 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/EP2017/051177 | Jan 2017 | US |
Child | 16041691 | US |