Apparatus for encoding or decoding an encoded multichannel signal using a filling signal generated by a broad band filter
11341975 · 2022-05-24
Assignee
Inventors
- Jan Büthe (Erlangen, DE)
- Franz Reutelhuber (Erlangen, DE)
- Sascha Disch (Fürth, DE)
- Guillaume Fuchs (Bubenreuth, DE)
- Markus Multrus (Nuremberg, DE)
- Ralf Geiger (Erlangen, DE)
Cpc classification
H04S2420/03
ELECTRICITY
G10L19/008
PHYSICS
International classification
G10L19/008
PHYSICS
G10L19/02
PHYSICS
Abstract
An apparatus for decoding an encoded multichannel signal includes: a base channel decoder for decoding an encoded base channel to obtain a decoded base channel; a decorrelation filter for filtering at least a portion of the decoded base channel to obtain a filling signal; and a multichannel processor for performing a multichannel processing using a spectral representation of the decoded base channel and a spectral representation of the filling signal, wherein the decorrelation filter is a broad band filter and the multichannel processor is configured to apply a narrow band processing to the spectral representation of the decoded base channel and the spectral representation of the filling signal.
Claims
1. An apparatus for decoding an encoded multichannel signal, comprising: a base channel decoder for decoding an encoded base channel to acquire a decoded base channel; a decorrelation filter for filtering at least a portion of the decoded base channel to acquire a filling signal; and a multichannel processor for performing a multichannel processing using a spectral representation of the decoded base channel and a spectral representation of the filling signal, wherein the decorrelation filter is a broad band filter and the multichannel processor is configured to apply a narrow band processing to the spectral representation of the decoded base channel and the spectral representation of the filling signal, (a) wherein the decorrelation filter comprises an allpass time domain filter wherein the allpass time domain filter comprises: a first adder, a second adder, a third adder, a fourth adder, a fifth adder and a sixth adder; a first delay stage, a second delay stage and a third delay stage; a first forward feed with a first forward gain, a first backward feed with a first backward gain, a second forward feed with a second forward gain and a second backward feed with a second backward gain; and a third forward feed with a third forward gain and a third backward feed with a third backward gain, or (b) wherein the decorrelation filter comprises an allpass time domain filter, wherein the allpass time domain filter comprises at least one allpass filter cell, the at least one allpass filter cell comprising two Schroeder allpass filters nested into a third Schroeder allpass filter, or wherein the time domain allpass filter comprises at least one allpass filter cell, the at least one allpass filter cell comprising two cascaded Schroeder allpass filters, wherein an input into the first cascaded Schroeder allpass filter and an output from the cascaded second Schroeder allpass filter are connected, in the direction of the signal flow, before a delay stage of the third Schroeder allpass filter, and wherein the time domain allpass filter comprises two or more allpass filter cells, wherein delay values of the delays of the allpass filter cells are mutually prime, or (c) wherein the decorrelation filter comprises at least one Schroeder allpass filter, wherein a forward gain and a backward gain of the at least one Schroeder allpass filter are equal or different from each other by less than 10% of a greater gain value of the forward gain and the backward gain, or (d) wherein the decorrelation filter comprises two or more allpass filter cells, wherein one of the allpass filter cells comprises two positive gains and one negative gain and another of the allpass filter cells comprises one positive gain and two negative gains, or (e) wherein the decorrelation filter comprises an allpass filter cell comprising three Schroeder allpass filters, wherein a delay value of a first delay stage is lower than a delay value of a second delay stage, and wherein the delay value of the second delay stage is lower than a delay value of a third delay stage of the allpass filter cell comprising the three Schroeder allpass filters, or (f) wherein the decorrelation filter comprises an allpass filter cell comprising three Schroeder allpass filters, wherein a sum of a delay value of a first delay stage and a delay value of a second delay stage is smaller than a delay value of the third delay stage of the allpass filter cell comprising the three Schroeder allpass filters, or (g) wherein the decorrelation filter comprises an allpass time domain filter, wherein the allpass time domain filter comprises at least two allpass filter cells in a cascade, wherein a smallest delay value of an allpass filter later in the cascade is smaller than a highest or second to highest delay value of an allpass filter cell earlier in the cascade, or (h) wherein the decorrelation filter comprises an allpass time domain filter, wherein the allpass time domain filter comprises at least two allpass filter cells in a cascade, wherein each allpass filter cell comprises a first forward gain or a first backward gain, a second forward gain or a second backward gain, and a third forward gain or a third backward gain, a first delay stage, a second delay stage and a third delay stage, wherein the values for the gains and the delays are set within a tolerance range of ±20% of values indicated in the following table: TABLE-US-00001 Filter g.sub.1 d.sub.1 g.sub.2 d.sub.2 g.sub.3 d.sub.3 B.sub.1(z) 0.5 2 −0.2 73 0.5 83 B.sub.2(z) −0.4 11 0.2 67 −0.5 97 B.sub.3(z) 0.4 19 −0.3 61 0.5 103 B.sub.4(z) −0.4 29 0.3 47 −0.5 109 B.sub.5(z) 0.3 37 −0.3 41 0.5 127 wherein B.sub.1(z) is a first allpass filter cell in the cascade, wherein B.sub.2(z) is a second allpass filter cell in the cascade, wherein B.sub.3(z) is a third allpass filter cell in the cascade, wherein B.sub.4(z) is a fourth allpass filter cell in the cascade, and wherein B.sub.5(z) is a fifth allpass filter cell within the cascade, wherein the cascade comprises only the first allpass filter cell B.sub.1 and the second allpass filter cell B.sub.2 or any other two allpass filter cells of the group of allpass filter cells consisting of B.sub.1 to B.sub.5, or wherein the cascade comprises three allpass filter cells selected from the group of five allpass filter cells B.sub.1 to B.sub.5, or wherein the cascade comprises four allpass filter cells selected from the group of allpass filter cells consisting of B.sub.1 to B.sub.5, or wherein the cascade comprises all five allpass filter cells B.sub.1 to B.sub.5, wherein g.sub.1 represents the first forward gain or backward gain of the allpass filter cell, wherein g.sub.2 represents a second backward gain or forward gain of the allpass filter cell, and wherein g.sub.3 represents the third forward gain or backward gain of the allpass filter cell, wherein d.sub.1 represents a delay of the first delay stage of the allpass filter cell, wherein d.sub.2 represents a delay of the second delay stage of the allpass filter cell, and wherein d.sub.3 represents a delay of a third delay stage of the allpass filter cell, or wherein g.sub.1 represents the second forward gain or backward gain of the allpass filter cell, wherein g.sub.2 represents a first backward gain or forward gain of the allpass filter cell, and wherein g.sub.3 represents the third forward gain or backward gain of the allpass filter cell, wherein d.sub.1 represents a delay of the second delay stage of the allpass filter cell, wherein d.sub.2 represents a delay of the first delay stage of the allpass filter cell, and wherein d.sub.3 represents a delay of a third delay stage of the allpass filter cell.
2. The apparatus of claim 1, wherein the decorrelation filter comprises: a filter stage for filtering the decoded base channel to acquire a broad band filling signal or a time domain-filling signal; and a spectral converter for converting the broad band filling signal or the time domain filling signal into the spectral representation of the filling signal.
3. The apparatus of claim 1, further comprising a base channel spectral converter for converting the decoded base channel into the spectral representation of the decoded base channel.
4. The apparatus of claim 1, wherein the decorrelation filter comprises an allpass time domain filter or at least one Schroeder allpass filter.
5. The apparatus of claim 1, wherein the decorrelation filter comprises at least one Schroeder allpass filter having a first adder, a delay stage, a second adder, a forward feed with a forward gain and a backward feed with a backward gain.
6. The apparatus of claim 4, wherein the allpass filter comprises at least one allpass filter cell, the at least one allpass filter cell comprising two Schroeder allpass filters nested into a third Schroeder allpass filter, or wherein the allpass filter comprises at least one allpass filter cell, the at least one allpass filter cell comprising two cascaded Schroeder allpass filters, wherein an input into the first cascaded Schroeder allpass filter and an output from the cascaded second Schroeder allpass filter are connected, in the direction of the signal flow, before a delay stage of the third Schroeder allpass filter.
7. The apparatus of claim 1, wherein an input into the first adder represents an input into the allpass filter, wherein a second input into the first adder is connected to an output of the third delay stage and comprises the third backward feed with a third backward gain, wherein an output of the first adder is connected to an input into the second adder and is connected to an input of the sixth adder via the third forward feed with the third forward gain, wherein a further input into the second adder is connected to the first delay stage via a first backward feed with the first backward gain, wherein an output of the second adder is connected to an input of the first delay stage and is connected to an input of the third adder via the first forward feed with the first forward gain, wherein an output of the first delay stage is connected to a further input of the third adder, wherein an output of the third adder is connected to an input of the fourth adder, wherein a further input into the fourth adder is connected to an output of the second delay stage via the second backward feed with the second backward gain, wherein an output of the fourth adder is connected to an input into the second delay stage and is connected to an input into the fifth adder via the second forward feed with the second forward gain, wherein an output of the second delay stage is connected to a further input into the fifth adder, wherein an output of the fifth adder is connected to an input of the third delay stage, wherein the output of the third delay stage is connected to an input into the sixth adder, wherein a further input into the sixth adder is connected to an output of the first adder via the third forward feed with the third forward gain, and wherein the output of the sixth adder represents an output of the allpass filter.
8. The apparatus of claim 1, wherein the multichannel processor is configured to determine a first upmix channel and a second upmix channel using different weighted combinations of spectral bands of the decoded base channel and a corresponding spectral band of the filling signal, the different weighted combinations depending on a prediction factor and/or a gain factor and/or an envelope or energy normalization factor calculated using a spectral band of the decoded base channel and a corresponding spectral band of the filling signal.
9. The apparatus of claim 8, wherein the multichannel processor is configured to compress the energy normalization factor and to calculate the different weighted combinations using the compressed energy normalization factor.
10. The apparatus of claim 9, wherein the energy normalization factor is compressed using: calculating a logarithm of the energy normalization factor; subjecting the logarithm to a non-linear function; and applying an exponentiation function to a result of the non-linear function.
11. The apparatus of claim 10, wherein the non-linear function is defined based on f(t)=t−∫.sub.0.sup.tc(τ)dτ, wherein the function c is based on 0≤c(t)≤1, wherein t is a real number, and wherein τ is an integration variable.
12. The apparatus of claim 8, wherein the multichannel processor is configured to compress the energy normalization factor and to calculate the different weighted combinations using the compressed energy normalization factor and using a non-linear function, wherein the non-linear function is defined based on f(t)=t−max{min{α,t},−α{, wherein α is a predetermined boundary value, and wherein t is a value between −α and +α.
13. An apparatus for decoding an encoded multichannel signal, comprising: a base channel decoder for decoding an encoded base channel to acquire a decoded base channel; a decorrelation filter for filtering at least a portion of the decoded base channel to acquire a filling signal; and a multichannel processor for performing a multichannel processing using a spectral representation of the decoded base channel and a spectral representation of the filling signal, wherein the decorrelation filter is a broad band filter and the multichannel processor is configured to apply a narrow band processing to the spectral representation of the decoded base channel and the spectral representation of the filling signal, wherein the multichannel processor is configured to calculate a low band first upmix channel and a low band second upmix channel, and wherein the apparatus further comprises a time domain bandwidth expander for expanding the low band first upmix channel and the low band second upmix channel, or a low band base channel, wherein the multichannel processor is configured to determine a first upmix channel and a second upmix channel using different weighted combinations of spectral bands of the decoded base channel and the corresponding spectral band of the filling signal, the different weighted combinations depending on an energy normalization factor calculated using an energy of the spectral band of the decoded base channel and the spectral band of the filling signal, and wherein the energy normalization factor is calculated using an energy estimate derived from an energy of a windowed high band signal.
14. The apparatus of claim 13, wherein the time domain bandwidth expander is configured to use the high band signal without the windowing operation used for the calculation of the energy normalization factor.
15. An apparatus for decoding an encoded multichannel signal, comprising: a base channel decoder for decoding an encoded base channel to acquire a decoded base channel; a decorrelation filter for filtering at least a portion of the decoded base channel to acquire a filling signal; and a multichannel processor for performing a multichannel processing using a spectral representation of the decoded base channel and a spectral representation of the filling signal, wherein the decorrelation filter is a broad band filter and the multichannel processor is configured to apply a narrow band processing to the spectral representation of the decoded base channel and the spectral representation of the filling signal, wherein the base channel decoder is configured to provide a decoded primary base channel and a decoded secondary base channel, wherein the decorrelation filter is configured for filtering the decoded primary base channel to acquire the filling signal, wherein the multichannel processor is configured for performing a multichannel processing by synthesizing one or more residual parts in the multichannel processing using the filling signal, or wherein a shaping filter is applied to the filling signal.
16. The apparatus of claim 15, wherein the primary and the secondary base channels are a result of a transformation of original input channels, the transformation being e.g. a mid/side transformation or a Karhunen Loeve transformation, and wherein the decoded secondary base channel is limited to a smaller bandwidth, wherein the multichannel processor is configured for high pass filtering the filling signal and for using the high pass filtered filling signal as a secondary channel for a bandwidth not comprised by in the bandwidth limited decoded secondary base channel.
17. An apparatus for decoding an encoded multichannel signal, comprising: a base channel decoder for decoding an encoded base channel to acquire a decoded base channel; a decorrelation filter for filtering at least a portion of the decoded base channel to acquire a filling signal; and a multichannel processor for performing a multichannel processing using a spectral representation of the decoded base channel and a spectral representation of the filling signal, wherein the decorrelation filter is a broad band filter and the multichannel processor is configured to apply a narrow band processing to the spectral representation of the decoded base channel and the spectral representation of the filling signal, (a) wherein the multichannel processor is configured for performing different multichannel processing methods, wherein the multichannel processor is furthermore configured to perform the different multichannel processing methods simultaneously, for example separated by bandwidth, or exclusively, for example frequency domain versus time domain processing and connected to a switching decision, and wherein the multichannel processor is configured to use the same filling signal in all multichannel processing methods, or (b) wherein the decorrelation filter comprises as a time domain filter having an optimal peak region of the time domain filter impulse response between 20 ms and 40 ms, or (c) wherein the decorrelation filter is configured for resampling the decoded base channel in a time portion to a predefined or input-dependent target sampling rate, wherein the decorrelation filter is configured to filter a resampled decoded base channel using a decorrelation filter stage, and wherein the multichannel processor is configured to convert a decoded base channel for a further time portion to the predefined or input-dependent target sampling rate, so that the multichannel processor operates using spectral representations of the decoded base channel and the filling signal that are based on the predefined or input-dependent target sampling rate irrespective of different sampling rates of the decoded base channel for the time portions and the further time portion, or wherein the apparatus is configured to perform a resampling before converting to a frequency domain, or when converting to the frequency domain or subsequent to converting to the frequency domain, or (d) further comprising a transient detector for finding a transient in the encoded or decoded base channel, and wherein the decorrelation filter is configured for feeding a decorrelation filter stage with noise or zero values in a time portion, in which the transient detector has found transient signal samples, wherein the decorrelation filter is configured for feeding the decorrelation filter stage with samples of the decoded base channel in a further time portion in which the transient detector has not found a transient in the encoded or decoded base channel, or (e) wherein the base channel decoder comprises: a first decoding branch comprising a low band decoder and a bandwidth extension decoder to generate a first portion of the decoded channel; a second decoding branch having a full band decoder to generate a second portion of the decoded base channel; and a base channel decoder controller for feeding a portion of the encoded base channel either into the first decoding branch or the second decoding branch in accordance with a control signal, or (f) wherein the decorrelation filter comprises: a first resampler for resampling a first portion to a predetermined sampling rate; a second resampler for resampling a second portion to the predetermined sampling rate: an allpass filter unit for allpass filtering an allpass filter input signal to acquire the filling signal; and a controller for feeding a resampled first portion or a resampled second portion into the allpass filter unit.
18. The apparatus of claim 17, wherein the controller is configured to feed, in response to the control signal, either the resampled first portion or the resampled second portion or zero data into the allpass filter unit.
19. An apparatus for decoding an encoded multichannel signal, comprising: a base channel decoder for decoding an encoded base channel to acquire a decoded base channel; a decorrelation filter for filtering at least a portion of the decoded base channel to acquire a filling signal; and a multichannel processor for performing a multichannel processing using a spectral representation of the decoded base channel and a spectral representation of the filling signal, wherein the decorrelation filter is a broad band filter and the multichannel processor is configured to apply a narrow band processing to the spectral representation of the decoded base channel and the spectral representation of the filling signal, (a) wherein the decorrelation filter comprises: a time-to-spectral converter for converting the filling signal into a spectral representation comprising spectral lines with a first spectral resolution, wherein the multi-channel processor comprises an time-to-spectral converter for converting the decoded base channel into a spectral representation using spectral lines with the first spectral resolution, wherein the multi-channel processor is configured to generate spectral lines for a first upmix channel or a second upmix channel, the spectral lines having the first spectral resolution, using, for a certain spectral line, a spectral line of the filling signal, a spectral line of the decoded base channel and one or more parameters, wherein the one or more parameters have associated therewith a second spectral resolution being lower than the first spectral resolution, and wherein the one or more parameters are used to generate a group of spectral lines, the group of spectral lines comprising the certain spectral line and at least one frequency adjacent spectral line, or (b) wherein the multi-channel processor is configured to generate a spectral line for the first upmix channel or the second upmix channel using: a phase rotation factor depending on one or more transmitted parameters; a spectral line of the decoded base channel; a first weight for the spectral line of the decoded base channel, the first weight depending on a transmitted parameter; a spectral line of the filling signal; a second weight for the spectral line of the filling signal, the second weight depending on a transmitted parameter; and an energy normalization factor.
20. The apparatus of claim 19, wherein, for the calculating the second upmix channel, a sign of the second weight is different from a sign of the second weight used in calculating the first upmix channel, or wherein, for calculating the second upmix channel, the phase rotation factor is different from a phase rotation factor used in calculating the first upmix channel, or wherein, for calculating the second upmix channel, the first weight is different from the first weight used in calculating the first upmix channel.
21. An apparatus for decoding an encoded multichannel signal, comprising: a base channel decoder for decoding an encoded base channel to acquire a decoded base channel; a decorrelation filter for filtering at least a portion of the decoded base channel to acquire a filling signal; and a multichannel processor for performing a multichannel processing using a spectral representation of the decoded base channel and a spectral representation of the filling signal, wherein the decorrelation filter is a broad band filter and the multichannel processor is configured to apply a narrow band processing to the spectral representation of the decoded base channel and the spectral representation of the filling signal, wherein the base channel decoder is configured to acquire the decoded base channel with a first bandwidth, wherein the multi-channel processor is configured to generate a spectral representation of a first upmix channel and a second upmix channel, the spectral representation having the first bandwidth and an additional second bandwidth comprising a band above the first bandwidth with respect to frequency, wherein the first bandwidth is generated using the decoded base channel and the filling signal, wherein the second bandwidth is generated using the filling signal without the decoded base channel, wherein the multi-channel processor is configured to convert the first upmix channel or the second upmix channel into a time domain representation, wherein the multi-channel processor further comprises a time domain bandwidth extension processor for generating a time domain extension signal for the first upmix signal or the second upmix signal or the base channel, the time domain extension signal comprising the second bandwidth; and a combiner for combining the time domain extension signal and the time domain representation of the first or second upmix channel or of the base channel to acquire a broadband upmix channel.
22. The apparatus of claim 21, wherein the multi-channel processor is configured to calculate an energy normalization factor used for calculating the first or the second upmix channel in the second bandwidth using an energy of the decoded base channel in the first bandwidth, using an energy of a windowed version of a time extension signal for the first channel or the second channel or for a bandwidth extended downmix signal, and using an energy of the filling signal in the second bandwidth.
23. A method of decoding an encoded multichannel signal, comprising: decoding an encoded base channel to acquire a decoded base channel; decorrelation filtering at least a portion of the decoded base channel to acquire a filling signal; and performing a multichannel processing using a spectral representation of the decoded base channel and a spectral representation of the filling signal, wherein the decorrelation filtering is a broad band filtering and the multichannel processing comprises applying a narrow band processing to the spectral representation of the decoded base channel and the spectral representation of the filling signal, (A) wherein the decorrelation filtering comprises using an allpass time domain filter wherein the allpass time domain filter comprises: a first adder, a second adder, a third adder, a fourth adder, a fifth adder and a sixth adder; a first delay stage, a second delay stage and a third delay stage; a first forward feed with a first forward gain, a first backward feed with a first backward gain, a second forward feed with a second forward gain and a second backward feed with a second backward gain; and a third forward feed with a third forward gain and a third backward feed with a third backward gain, or (b) wherein the decorrelation filtering comprises using an allpass time domain filter, wherein the allpass time domain filter comprises at least one allpass filter cell, the at least one allpass filter cell comprising two Schroeder allpass filters nested into a third Schroeder allpass filter, or wherein the time domain allpass filter comprises at least one allpass filter cell, the at least one allpass filter cell comprising two cascaded Schroeder allpass filters, wherein an input into the first cascaded Schroeder allpass filter and an output from the cascaded second Schroeder allpass filter are connected, in the direction of the signal flow, before a delay stage of the third Schroeder allpass filter, and wherein the time domain allpass filter comprises two or more allpass filter cells, wherein delay values of the delays of the allpass filter cells are mutually prime, or wherein the decorrelation filtering comprises using at least one Schroeder allpass filter, wherein a forward gain and a backward gain of the at least one Schroeder allpass filter are equal or different from each other by less than 10% of a greater gain value of the forward gain and the backward gain, or (c) wherein the decorrelation filtering comprises using two or more allpass filter cells, wherein one of the allpass filter cells comprises two positive gains and one negative gain and another of the allpass filter cells comprises one positive gain and two negative gains, or (d) wherein the decorrelation filtering comprises using an allpass filter cell comprising three Schroeder allpass filters, wherein a delay value of a first delay stage is lower than a delay value of a second delay stage, and wherein the delay value of the second delay stage is lower than a delay value of a third delay stage of the allpass filter cell comprising the three Schroeder allpass filters, or (e) wherein the decorrelation filtering comprises using an allpass filter cell comprising three Schroeder allpass filters, wherein a sum of a delay value of a first delay stage and a delay value of a second delay stage is smaller than a delay value of the third delay stage of the allpass filter cell comprising the three Schroeder allpass filters, or (f) wherein the decorrelation filtering comprises using an allpass time domain filter, wherein the allpass time domain filter comprises at least two allpass filter cells in a cascade, wherein a smallest delay value of an allpass filter later in the cascade is smaller than a highest or second to highest delay value of an allpass filter cell earlier in the cascade, or (g) wherein the decorrelation filtering comprises using an allpass time domain filter, wherein the allpass time domain filter comprises at least two allpass filter cells in a cascade, wherein each allpass filter cell comprises a first forward gain or a first backward gain, a second forward gain or a second backward gain, and a third forward gain or a third backward gain, a first delay stage, a second delay stage and a third delay stage, wherein the values for the gains and the delays are set within a tolerance range of ±20% of values indicated in the following table: TABLE-US-00002 Filter g.sub.1 d.sub.1 g.sub.2 d.sub.2 g.sub.3 d.sub.3 B.sub.1(z) 0.5 2 −0.2 73 0.5 83 B.sub.2(z) −0.4 11 0.2 67 −0.5 97 B.sub.3(z) 0.4 19 −0.3 61 0.5 103 B.sub.4(z) −0.4 29 0.3 47 −0.5 109 B.sub.5(z) 0.3 37 −0.3 41 0.5 127 wherein B.sub.1(z) is a first allpass filter cell in the cascade, wherein B.sub.2(z) is a second allpass filter cell in the cascade, wherein B.sub.3(z) is a third allpass filter cell in the cascade, wherein B.sub.4(z) is a fourth allpass filter cell in the cascade, and wherein B.sub.5(z) is a fifth allpass filter cell within the cascade, wherein the cascade comprises only the first allpass filter cell B.sub.1 and the second allpass filter cell B.sub.2 or any other two allpass filter cells of the group of allpass filter cells consisting of B.sub.1 to B.sub.5, or wherein the cascade comprises three allpass filter cells selected from the group of five allpass filter cells B.sub.1 to B.sub.5, or wherein the cascade comprises four allpass filter cells selected from the group of allpass filter cells consisting of B.sub.1 to B.sub.5, or wherein the cascade comprises all five allpass filter cells B.sub.1 to B.sub.5, wherein g.sub.1 represents the first forward gain or backward gain of the allpass filter cell, wherein g.sub.2 represents a second backward gain or forward gain of the allpass filter cell, and wherein g.sub.3 represents the third forward gain or backward gain of the allpass filter cell, wherein d.sub.1 represents a delay of the first delay stage of the allpass filter cell, wherein d.sub.2 represents a delay of the second delay stage of the allpass filter cell, and wherein d.sub.3 represents a delay of a third delay stage of the allpass filter cell, or wherein g.sub.1 represents the second forward gain or backward gain of the allpass filter cell, wherein g.sub.2 represents a first backward gain or forward gain of the allpass filter cell, and wherein g.sub.3 represents the third forward gain or backward gain of the allpass filter cell, wherein d.sub.1 represents a delay of the second delay stage of the allpass filter cell, wherein d.sub.2 represents a delay of the first delay stage of the allpass filter cell, and wherein d.sub.3 represents a delay of a third delay stage of the allpass filter cell.
24. A non-transitory digital storage medium having a computer program stored thereon to perform, when said computer program is run by a computer, the method of decoding an encoded multichannel signal, comprising: decoding an encoded base channel to acquire a decoded base channel; decorrelation filtering at least a portion of the decoded base channel to acquire a filling signal; and performing a multichannel processing using a spectral representation of the decoded base channel and a spectral representation of the filling signal, wherein the decorrelation filtering is a broad band filtering and the multichannel processing comprises applying a narrow band processing to the spectral representation of the decoded base channel and the spectral representation of the filling signal, (a) wherein the decorrelation filtering comprises using an allpass time domain filter wherein the allpass time domain filter comprises: a first adder, a second adder, a third adder, a fourth adder, a fifth adder and a sixth adder; a first delay stage, a second delay stage and a third delay stage; a first forward feed with a first forward gain, a first backward feed with a first backward gain, a second forward feed with a second forward gain and a second backward feed with a second backward gain; and a third forward feed with a third forward gain and a third backward feed with a third backward gain, or (b) wherein the decorrelation filtering comprises using an allpass time domain filter, wherein the allpass time domain filter comprises at least one allpass filter cell, the at least one allpass filter cell comprising two Schroeder allpass filters nested into a third Schroeder allpass filter, or wherein the time domain allpass filter comprises at least one allpass filter cell, the at least one allpass filter cell comprising two cascaded Schroeder allpass filters, wherein an input into the first cascaded Schroeder allpass filter and an output from the cascaded second Schroeder allpass filter are connected, in the direction of the signal flow, before a delay stage of the third Schroeder allpass filter, and wherein the time domain allpass filter comprises two or more allpass filter cells, wherein delay values of the delays of the allpass filter cells are mutually prime, or (c) wherein the decorrelation filtering comprises using at least one Schroeder allpass filter, wherein a forward gain and a backward gain of the at least one Schroeder allpass filter are equal or different from each other by less than 10% of a greater gain value of the forward gain and the backward gain, or (d) wherein the decorrelation filtering comprises using two or more allpass filter cells, wherein one of the allpass filter cells comprises two positive gains and one negative gain and another of the allpass filter cells comprises one positive gain and two negative gains, or (e) wherein the decorrelation filtering comprises using an allpass filter cell comprising three Schroeder allpass filters, wherein a delay value of a first delay stage is lower than a delay value of a second delay stage, and wherein the delay value of the second delay stage is lower than a delay value of a third delay stage of the allpass filter cell comprising the three Schroeder allpass filters, or (f) wherein the decorrelation filtering comprises using an allpass filter cell comprising three Schroeder allpass filters, wherein a sum of a delay value of a first delay stage and a delay value of a second delay stage is smaller than a delay value of the third delay stage of the allpass filter cell comprising the three Schroeder allpass filters, or (g) wherein the decorrelation filtering comprises using an allpass time domain filter, wherein the allpass time domain filter comprises at least two allpass filter cells in a cascade, wherein a smallest delay value of an allpass filter later in the cascade is smaller than a highest or second to highest delay value of an allpass filter cell earlier in the cascade, or (h) wherein the decorrelation filtering comprises using an allpass time domain filter, wherein the allpass time domain filter comprises at least two allpass filter cells in a cascade, wherein each allpass filter cell comprises a first forward gain or a first backward gain, a second forward gain or a second backward gain, and a third forward gain or a third backward gain, a first delay stage, a second delay stage and a third delay stage, wherein the values for the gains and the delays are set within a tolerance range of ±20% of values indicated in the following table: TABLE-US-00003 Filter g.sub.1 d.sub.1 g.sub.2 d.sub.2 g.sub.3 d.sub.3 B.sub.1(z) 0.5 2 −0.2 73 0.5 83 B.sub.2(z) −0.4 11 0.2 67 −0.5 97 B.sub.3(z) 0.4 19 −0.3 61 0.5 103 B.sub.4(z) −0.4 29 0.3 47 −0.5 109 B.sub.5(z) 0.3 37 −0.3 41 0.5 127 wherein B.sub.1(z) is a first allpass filter cell in the cascade, wherein B.sub.2(z) is a second allpass filter cell in the cascade, wherein B.sub.3(z) is a third allpass filter cell in the cascade, wherein B.sub.4(z) is a fourth allpass filter cell in the cascade, and wherein B.sub.5(z) is a fifth allpass filter cell within the cascade, wherein the cascade comprises only the first allpass filter cell B.sub.1 and the second allpass filter cell B.sub.2 or any other two allpass filter cells of the group of allpass filter cells consisting of B.sub.1 to B.sub.5, or wherein the cascade comprises three allpass filter cells selected from the group of five allpass filter cells B.sub.1 to B.sub.5, or wherein the cascade comprises four allpass filter cells selected from the group of allpass filter cells consisting of B.sub.1 to B.sub.5, or wherein the cascade comprises all five allpass filter cells B.sub.1 to B.sub.5, wherein g.sub.1 represents the first forward gain or backward gain of the allpass filter cell, wherein g.sub.3 represents a second backward gain or forward gain of the allpass filter cell, and wherein g.sub.3 represents the third forward gain or backward gain of the allpass filter cell, wherein d.sub.1 represents a delay of the first delay stage of the allpass filter cell, wherein d.sub.2 represents a delay of the second delay stage of the allpass filter cell, and wherein d.sub.3 represents a delay of a third delay stage of the allpass filter cell, or wherein g.sub.1 represents the second forward gain or backward gain of the allpass filter cell, wherein g.sub.2 represents a first backward gain or forward gain of the allpass filter cell, and wherein g.sub.3 represents the third forward gain or backward gain of the allpass filter cell, wherein d.sub.1 represents a delay of the second delay stage of the allpass filter cell, wherein d.sub.2 represents a delay of the first delay stage of the allpass filter cell, and wherein d.sub.3 represents a delay of a third delay stage of the allpass filter cell.
25. A method of decoding an encoded multichannel signal, comprising: decoding an encoded base channel to acquire a decoded base channel; decorrelation filtering at least a portion of the decoded base channel to acquire a filling signal; and performing a multichannel processing using a spectral representation of the decoded base channel and a spectral representation of the filling signal, wherein the decorrelation filtering is a broad band filtering and the multichannel processing comprises applying a narrow band processing to the spectral representation of the decoded base channel and the spectral representation of the filling signal, (a) wherein the multichannel processing comprises calculating a low band first upmix channel and a low band second upmix channel, and wherein the method further comprises expanding the low band first upmix channel and the low band second upmix channel, or a low band base channel, wherein the multichannel processing comprises determining a first upmix channel and a second upmix channel using different weighted combinations of spectral bands of the decoded base channel and the corresponding spectral band of the filling signal, the different weighted combinations depending on an energy normalization factor calculated using an energy of the spectral band of the decoded base channel and the spectral band of the filling signal, and wherein the energy normalization factor is calculated using an energy estimate derived from an energy of a windowed high band signal, or (b) wherein the decoding provides a decoded primary base channel and a decoded secondary base channel, wherein the decorrelation filter is configured for filtering the decoded primary base channel to acquire the filling signal, wherein the multichannel processing comprises performing a multichannel processing by synthesizing one or more residual parts in the multichannel processing using the filling signal, or wherein a shaping filter is applied to the filling signal, or (c) wherein the multichannel processing comprises performing different multichannel processing methods, performing the different multichannel processing methods simultaneously, for example separated by bandwidth, or exclusively, for example frequency domain versus time domain processing and connected to a switching decision, and using the same filling signal in all multichannel processing methods, or (d) wherein the decorrelation filtering comprises using a time domain filter having an optimal peak region of the time domain filter impulse response between 20 ms and 40 ms, or (e) wherein the decorrelation filtering comprises resampling the decoded base channel in a time portion to a predefined or input-dependent target sampling rate, and filtering a resampled decoded base channel using a decorrelation filter stage, and wherein the multichannel processing comprises converting a decoded base channel for a further time portion to the predefined or input-dependent target sampling rate, so that the multichannel processing operates using spectral representations of the decoded base channel and the filling signal that are based on the predefined or input-dependent target sampling rate irrespective of different sampling rates of the decoded base channel for the time portion and the further time portion, or (f) wherein the method comprises performing a resampling before converting to a frequency domain, or when converting to the frequency domain or subsequent to converting to the frequency domain, or (g) wherein the method further comprises finding a transient in the encoded or decoded base channel, and wherein the decorrelation filtering comprises feeding a decorrelation filter stage with noise or zero values in a time portion, in which the finding has found transient signal samples, and feeding the decorrelation filter stage with samples of the decoded base channel in a further time portion in which the finding has not found a transient in the encoded or decoded base channel, or (h) wherein decoding comprises using: a first decoding branch comprising a low band decoder and a bandwidth extension decoder to generate a first portion of the decoded channel; a second decoding branch having a full band decoder to generate a second portion of the decoded base channel; and a controller for feeding a portion of the encoded base channel either into the first decoding branch or the second decoding branch in accordance with a control signal, or (i) wherein the decorrelation filtering comprises resampling a first portion to a predetermined sampling rate; resampling a second portion to the predetermined sampling rate; and allpass filtering an input signal to acquire the filling signal; and feeding a resampled first portion or a resampled second portion into the allpass filtering, or (j) wherein the decorrelation filtering comprises using: a time-to-spectral converter for converting the filling signal into a spectral representation comprising spectral lines with a first spectral resolution, wherein the multi-channel processing comprises converting the decoded base channel into a spectral representation using spectral lines with the first spectral resolution, and generating spectral lines for a first upmix channel or a second upmix channel, the spectral lines having the first spectral resolution, using, for a certain spectral line, a spectral line of the filling signal, a spectral line of the decoded base channel and one or more parameters, wherein the one or more parameters have associated therewith a second spectral resolution being lower than the first spectral resolution, and wherein the one or more parameters are used to generate a group of spectral lines, the group of spectral lines comprising the certain spectral line and at least one frequency adjacent spectral line, or (k) wherein the multi-channel processing comprises generating a spectral line for the first upmix channel or the second upmix channel using: a phase rotation factor depending on one or more transmitted parameters; a spectral line of the decoded base channel; a first weight for the spectral line of the decoded base channel, the first weight depending on a transmitted parameter; a spectral line of the filling signal; a second weight for the spectral line of the filling signal, the second weight depending on a transmitted parameter; and an energy normalization factor, or (l) wherein the decoding comprises acquiring the decoded base channel with a first bandwidth, wherein the multi-channel processing comprises generating a spectral representation of a first upmix channel and a second upmix channel, the spectral representation having the first bandwidth and an additional second bandwidth comprising a band above the first bandwidth with respect to frequency, wherein the first bandwidth is generated using the decoded base channel and the filling signal, wherein the second bandwidth is generated using the filling signal without the decoded base channel, converting the first upmix channel or the second upmix channel into a time domain representation, and generating a time domain extension signal for the first upmix signal or the second upmix signal or the base channel, the time domain extension signal comprising the second bandwidth; and combining the time domain extension signal and the time domain representation of the first or second upmix channel or of the base channel to acquire a broadband upmix channel.
26. A non-transitory digital storage medium having a computer program stored thereon to perform, when said computer program is run by a computer, the method of decoding an encoded multichannel signal, comprising: decoding an encoded base channel to acquire a decoded base channel; decorrelation filtering at least a portion of the decoded base channel to acquire a filling signal; and performing a multichannel processing using a spectral representation of the decoded base channel and a spectral representation of the filling signal, wherein the decorrelation filtering is a broad band filtering and the multichannel processing comprises applying a narrow band processing to the spectral representation of the decoded base channel and the spectral representation of the filling signal, (a) wherein the multichannel processing comprises calculating a low band first upmix channel and a low band second upmix channel, and wherein the method further comprises expanding the low band first upmix channel and the low band second upmix channel, or a low band base channel, wherein the multichannel processing comprises determining a first upmix channel and a second upmix channel using different weighted combinations of spectral bands of the decoded base channel and the corresponding spectral band of the filling signal, the different weighted combinations depending on an energy normalization factor calculated using an energy of the spectral band of the decoded base channel and the spectral band of the filling signal, and wherein the energy normalization factor is calculated using an energy estimate derived from an energy of a windowed high band signal, or (b) wherein the decoding provides a decoded primary base channel and a decoded secondary base channel, wherein the decorrelation filter is configured for filtering the decoded primary base channel to acquire the filling signal, wherein the multichannel processing comprises performing a multichannel processing by synthesizing one or more residual parts in the multichannel processing using the filling signal, or wherein a shaping filter is applied to the filling signal, or (c) wherein the multichannel processing comprises performing different multichannel processing methods, performing the different multichannel processing methods simultaneously, for example separated by bandwidth, or exclusively, for example frequency domain versus time domain processing and connected to a switching decision, and using the same filling signal in all multichannel processing methods, or (d) wherein the decorrelation filtering comprises using a time domain filter having an optimal peak region of the time domain filter impulse response between 20 ms and 40 ms, or (e) wherein the decorrelation filtering comprises resampling the decoded base channel in a time portion to a predefined or input-dependent target sampling rate, and filtering a resampled decoded base channel using a decorrelation filter stage, and wherein the multichannel processing comprises converting a decoded base channel for a further time portion to the predefined or input-dependent target sampling rate, so that the multichannel processing operates using spectral representations of the decoded base channel and the filling signal that are based on the predefined or input-dependent target sampling rate irrespective of different sampling rates of the decoded base channel for the time portion and the further time portion, or (f) wherein the method comprises performing a resampling before converting to a frequency domain, or when converting to the frequency domain or subsequent to converting to the frequency domain, or (g) wherein the method further comprises finding a transient in the encoded or decoded base channel, and wherein the decorrelation filtering comprises feeding a decorrelation filter stage with noise or zero values in a time portion, in which the finding has found transient signal samples, and feeding the decorrelation filter stage with samples of the decoded base channel in a further time portion in which the finding has not found a transient in the encoded or decoded base channel, or (h) wherein decoding comprises using: a first decoding branch comprising a low band decoder and a bandwidth extension decoder to generate a first portion of the decoded channel; a second decoding branch having a full band decoder to generate a second portion of the decoded base channel; and a controller for feeding a portion of the encoded base channel either into the first decoding branch or the second decoding branch in accordance with a control signal, or (i) wherein the decorrelation filtering comprises resampling a first portion to a predetermined sampling rate; resampling a second portion to the predetermined sampling rate; and allpass filtering an input signal to acquire the filling signal; and feeding a resampled first portion or a resampled second portion into the allpass filtering, or (j) wherein the decorrelation filtering comprises using: a time-to-spectral converter for converting the filling signal into a spectral representation comprising spectral lines with a first spectral resolution, wherein the multi-channel processing comprises converting the decoded base channel into a spectral representation using spectral lines with the first spectral resolution, and generating spectral lines for a first upmix channel or a second upmix channel, the spectral lines having the first spectral resolution, using, for a certain spectral line, a spectral line of the filling signal, a spectral line of the decoded base channel and one or more parameters, wherein the one or more parameters have associated therewith a second spectral resolution being lower than the first spectral resolution, and wherein the one or more parameters are used to generate a group of spectral lines, the group of spectral lines comprising the certain spectral line and at least one frequency adjacent spectral line, or (k) wherein the multi-channel processing comprises generating a spectral line for the first upmix channel or the second upmix channel using: a phase rotation factor depending on one or more transmitted parameters; a spectral line of the decoded base channel; a first weight for the spectral line of the decoded base channel, the first weight depending on a transmitted parameter; a spectral line of the filling signal; a second weight for the spectral line of the filling signal, the second weight depending on a transmitted parameter; and an energy normalization factor, or (l) wherein the decoding comprises acquiring the decoded base channel with a first bandwidth, wherein the multi-channel processing comprises generating a spectral representation of a first upmix channel and a second upmix channel, the spectral representation having the first bandwidth and an additional second bandwidth comprising a band above the first bandwidth with respect to frequency, wherein the first bandwidth is generated using the decoded base channel and the filling signal, wherein the second bandwidth is generated using the filling signal without the decoded base channel, converting the first upmix channel or the second upmix channel into a time domain representation, and generating a time domain extension signal for the first upmix signal or the second upmix signal or the base channel, the time domain extension signal comprising the second bandwidth; and combining the time domain extension signal and the time domain representation of the first or second upmix channel or of the base channel to acquire a broadband upmix channel.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Embodiments of the present invention will be detailed subsequently referring to the appended drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22) Furthermore, the decoded base channel is input into a decorrelation filter 800 for filtering at least a portion of the decoded base channel to obtain a filling signal.
(23) Both the decoded base channel and the filling signal are input into a multi-channel processor 900 for performing a multi-channel processing using a spectral representation of the decoded base channel and, additionally, a spectral representation of the filling signal. The multi-channel processor outputs the decoded multi-channel signal that comprises, for example, a left upmix channel and a right upmix channel in the context of stereo processing or three or more upmix channels in the case of multi-channel processing covering more than two output channels.
(24) The decorrelation filter 800 is configured as a broad band filter, and the multi-channel processor 900 is configured to apply a narrowband processing to the spectral representation of the decoded base channel and the spectral representation of the filling signal. Importantly, broad band filtering is also done, when the signal to be filtered is downsampled from a higher sampling rate such as downsampled to 16 kHz or 12.8 kHz from a higher sampling rate such as 22 kHz or lower.
(25) Thus, the multi-channel processor operates in a spectral granularity that is significantly higher than a spectral granularity, with which the filling signal is generated. In other words, a filter characteristic of the decorrelation filter is selected so that the region of a constant magnitude of the filter characteristic is greater than a spectral granularity of the spectral representation of the decoded base channel and a spectral granularity of the spectral representation of the filling signal.
(26) Thus, for example, when the spectral granularity of the multi-channel processor is so that, for each spectral line of a, for example, 1024 line DFT spectrum the upmix processing is performed, then the decorrelation filter is defined in such a way that the region of constant magnitude of the filter characteristic of the decorrelation filter has a frequency width that is higher than two or more spectral lines of the DFT spectrum. Typically, the decorrelation filter operates in the time domain, and the used spectral band, for example, from 20 Hz to 20 kHz. Such filters are known to be allpass filters, and it is to be noted here that a perfectly constant magnitude range where the magnitude is perfectly constant can be typically not be obtained by allpass filters, but variations from a constant magnitude by +/−10% of an average value also are found to be useful for an allpass filter and, therefore, also represent a “constant magnitude of the filter characteristic”.
(27)
(28)
(29)
(30) Advantageously, each basic allpass unit comprises two Schroeder allpass filters 401, 402 nested into a third Schroeder allpass filter 403. In this implementation, the allpass filter cell 403 is connected to two cascaded Schroeder allpass filters 401, 402, wherein input into the first cascaded Schroeder allpass filter 401 and an output from the cascaded second Schroeder allpass filter 402 are connected, in the direction of the signal flow, before a delay stage 423 of the third Schroeder allpass filter.
(31) Particularly, the allpass filter illustrated in
(32) The connections are illustrated in
(33) Advantageously, as illustrated in
(34) Particularly, the prediction factor and the gain factor typically represent encoded parameters that are decoded on the decoder side and are then used in the parametric stereo upmixing. Contrary thereto, the energy normalization factor is calculated on the decoder-side typically using a spectral band of the decoded base channel and the spectral band of the filling signal. The same is true for the envelope normalization factor. Advantageously, the envelope normalization corresponds to an energy normalization per band.
(35) Although the present invention is discussed with the specific reference encoder illustrated in
(36)
(37) This adding illustrated in
(38) Advantageously, the windower and factor calculator 912 in
(39) Advantageously, the processor 904 for calculating the weighted combination receives, as an input, the energy normalization factor per band. In an embodiment, however, a compression of the energy normalization factor is performed and the different weighted combinations are calculated using the compressed energy normalization factor. Thus, with respect to
(40) Based on the compressed energy normalization factor generated by block 921, different procedures for generating the compressed energy normalization factor are given. In the first alternative, a function is applied to the compressed factor as illustrated in 922, and this function is advantageously a non-linear function. Then, in block 923 the evaluated factor is expanded to obtain a specific compressed energy normalization factor. Hence, block 922 can, for example, be implemented to the function expression in equation (22) that will be given later on, and block 923 is performed by the “exponent” function within equation (22). However, a different alternative resulting in a similar compressed energy normalization factor is given in block 924 and 925. In block 924 an evaluation factor is determined and, in block 925, the evaluation factor is applied to the energy normalization factor obtained from block 920. Thus, the application of the factor to the energy normalization factor as outlined in block 912 can, for example, be implemented by subsequently illustrated equation 27.
(41) Thus, as for example, illustrated in equation 27 later on, the evaluation factor is determined and this factor is simply a factor that can be multiplied by the energy normalization factor g.sub.norm as determined by block 920 without actually performing special function evaluations. Therefore, the calculation of block 925 can also dispensed with, i.e., the specific calculation of the compressed energy normalization factor is not necessary, as soon as the original non-compressed energy normalization factor, and the evaluation factor and a further operand within a multiplication such as a spectral value of the filling signal are multiplied together to obtain a normalized filling signal spectral line.
(42)
(43) However, the result of the channel transformation and, particularly, the result of the decoding operation is that the primary channel is a broad band channel while the secondary channel is a narrow band channel. Then, the broad band channel is input into the decorrelation filter 800 and, a high pass filtering is performed in block 930 to generate a decorrelated high pass signal and this decorrelated high pass signal is then added to the narrow band secondary channel in the band combiner 934 to obtain the broad band secondary channel so that, in the end, the broad band primary channel and the broad band secondary channel are output.
(44)
(45)
(46) Furthermore, both first and second channels are also used in a mid/side processor 1203 to calculate, for each band, a mid signal and a side signal.
(47) Depending on the implementation, only the mid signal M can be forwarded to an encoder 1204, and the side signal is not forwarded to the encoder 1204 so that the output data 1206 only comprises the encoded base channel, the parametric data generated by block 1202 and the IPD information generated by block 1200.
(48) Subsequently, an embodiment is discussed with respect to a reference encoder, but it is to be noted that any other stereo encoders as discussed before can be used as well.
(49) A Reference Stereo Encoder
(50) A DFT based stereo encoder is specified for reference. As usual, time frequency vectors L.sub.t and R.sub.t of the left and right channel are generated by simultaneously applying an analysis window followed by a Discrete Fourier Transform (DFT). The DFT bins are then grouped into subbands (L.sub.t,k).sub.kϵI.sub.b resp. (R.sub.t,k).sub.kϵI.sub.b, where I.sub.b denotes the set of subband indices.
(51) Calculation of IPDs and Downmixing. For the downmix, a bandwise inter-channel-phase-difference (IPD) is calculated as
IPD=arg(Σ.sub.kϵI.sub.
(52) Where z* denotes the complex conjugate of z. This is used to generate a band-wise mid and side signal
(53)
(54) for kϵI.sub.b, where β is an absolute phase rotation parameter e.g. given by
(55)
(56) Calculation of parameters. In addition to the band-wise IPDs, two further stereo parameters are extracted. The optimal coefficient for predicting S.sub.t,b by M.sub.t,b, i.e. the number g.sub.t,b such that the energy of the remainder
P.sub.t,k=S.sub.t,k−g.sub.t,bM.sub.t,k (5)
is minimal, and a relative gain factor r.sub.t,b which, if applied to the mid signal M.sub.t, equalizes the energy of p.sub.t and M.sub.t in each band, i.e.,
(57)
(58) The optimal prediction coefficient can be calculated from the energies in the subbands
E.sub.L,t,b=Σ.sub.kϵI.sub.
(59) and the absolute value of the inner product of L.sub.t and R.sub.t
X.sub.L/R,t,b=|Σ.sub.kϵI.sub.
as
(60)
(61) From this it follows that g.sub.t,b lies in [−1, 1]. The residual gain can be calculated similarly from the energies and the inner product as
(62)
(63) which implies
0≤r.sub.t,b≤√{square root over (1−g.sub.t,b.sup.2)}. (11)
(64)
(65) Then, in block 940a, the primary upmix channel such as L is calculated. Furthermore, in block 940b, the secondary upmix channel is calculated which is, for example, channel R.
(66) Both blocks 940a and 940b are connected to the filling signal generator 800 and receive the parametric data generated by block 1200 in
(67) Advantageously, the parametric data is given in bands having the second spectral resolution and the blocks 940a, 940b operate in high spectral resolution granularity and generate spectral lines with a first spectral resolution that is higher than the second spectral resolution.
(68) The output of blocks 940a, 940b are, for example, input into frequency-time converters 961, 962. These converters can be a DFT or any other transform, and typically also comprise a subsequent synthesis window processing and a further overlap-add operation.
(69) Additionally, the filling signal generator receives the energy normalization factor and, advantageously, the compressed energy normalization factor, and this factor is used for generating a correctly leveled/weighted filling signal spectral line for blocks 940a and 940b.
(70) Subsequently, an implementation of blocks 940a, 940b is given. Both blocks comprise the calculation 941a of phase rotation factor, the calculation of a first weight for the spectral line of the decoded base channel as indicated by 942a and 942b. Furthermore, both blocks comprise the calculation 943a and 943b for the calculation of the second weight for the spectral line of the filling signal.
(71) Furthermore, the filling signal generator 800 receives the energy normalization factor generated by block 945. This block 945 receives the filling signal per band and the base channel signal per band and, then, calculates the same energy normalization factor used for all lines in a band.
(72) Finally, this data is forwarded to the processor 946 for calculating the spectral lines for the first and the second upmix channels. To this end, the processor 946 receives the data from blocks 941a, 941b, 942a, 942b, 943a, 943b and the spectral line for the decoded base channel and the spectral line for the filling signal. The output of block 946 is then a corresponding spectral line for the first and the second upmix channel.
(73) Subsequently, implementations of a decoder are given.
(74) Reference Decoder
(75) A DFT based decoder for reference is specified which corresponds to the encoder described above. The time-frequency transform from both the encoder is applied to the decoded downmix yielding time-frequency vectors {tilde over (M)}.sub.t,b. Using the dequantized values I{tilde over (P)}D.sub.t,b, {tilde over (g)}.sub.t,b, and {tilde over (r)}.sub.t,b, left and right channel are calculated as
(76)
(77) for k ϵI.sub.b where {tilde over (p)}.sub.t,k is a substitute for the missing residual p.sub.t,k from the encoder, and g.sub.norm is the energy normalizing factor
(78)
(79) which turns the relative residual prediction gain r.sub.t,b into an absolute gain. A simple choice for {tilde over (p)}.sub.t,k would be
{tilde over (p)}.sub.t,k={tilde over (M)}.sub.t-d.sub.
(80) where d.sub.b> denotes a band-wise frame-delay but this has certain drawbacks, namely {tilde over (p)}.sub.t and {tilde over (M)}.sub.t can have very different spectral and temporal shapes, even in the case of matching spectral and temporal envelopes, the use of (15) in (12) and (13) induces a frequency dependent ILD and IPD, which varies only slowly in low to mid frequency range. This causes problems e.g. for tonal items, for speech signals, the delay should be chosen small in order to stay below the echo threshold but this causes strong coloration due to comb-filtering.
(81) It is therefore better to use time-frequency bins of the artificial signal which is described below.
(82) The phase rotation factor β is again calculated as
(83)
(84) Synthetic Signal Generation
(85) For replacing missing residual parts in the stereo upmix, a second signal is generated from the time-domain input signal {tilde over (m)}, outputting a second signal {tilde over (m)}.sub.F. The design constrain for this filter is to have a short, dense impulse response. This is achieved by applying several stages of basic allpass filters obtained by nesting two Schroeder allpass filter into a third Schroeder filter, i.e.
B(z)=H((z.sup.−d.sup.
where
(86)
(87) These elementary allpass filters
(88)
(89) have been proposed by Schroeder in the context of artificial reverb generation, where they are applied with both large gains and large delays. Since it is not desirable in this context to have a reverberant output signal, gains and delays are chosen to be rather small. Similarly to the reverb case, a dense and random-like impulse response is best obtained by choosing delays d.sub.i that are pairwise coprime for all allpass filters.
(90) The filter runs at a fixed sampling rate, regardless of the bandwidth or sampling rate of the signal that is delivered by the core coder. When used with the EVS coder, this is needed since the bandwidth may be changed by a bandwidth detector during operation and the fixed sampling rate guarantees a consistent output. The advantageous sampling rate for the allpass filter is 32 kHz, the native super wide band sampling rate, since the absence of residual parts above 16 kHz are usually not audible anymore. When used with the EVS coder, the signal is directly constructed from the core, which incorporates several resampling routines as displayed in
(91) A filter that has been found to work well at 32 kHz sampling rate is
F(z)=Π.sub.i=1.sup.5B.sub.i(z) (21)
(92) where B.sub.i are basic allpass filters with gains and delays displayed in Table 1. The impulse response of this filter is depicted in
(93) The allpass filter unit also provides the functionality to overwrite parts of the input signal by zeros, which is encoder-controlled. This can for instance be used to delete attacks from the filter input.
(94) Compression of the g.sub.norm Factor
(95) To obtain a smoother output it has been found beneficial to apply a compressor to the energy—adjusting gain g.sub.norm which compresses the values towards one. This also compensates a bit for the fact that part of the ambience is typically lost after coding the downmix at lower bitrates.
(96) Such a compressor can be constructed by taking
{tilde over (g)}.sub.norm=exp(f(log(g.sub.norm)), (22)
where,
f(t)=t−∫.sub.0.sup.tc(τ)dτ (23)
(97) and the function c satisfies
0≤c(t)≤1. (24)
(98) The value of c around t then specifies how strongly this region is compressed, where the value 0 corresponds to no compression and the value 1 corresponds to total compression. Furthermore, the compression scheme is symmetric if c is even, i.e., c(t)=c(−t). One example is
(99)
(100) which gives rise to
f(t)=t−max{min{α,t},−α{. (26)
(101) In this case, (22) can be simplified to
{tilde over (g)}.sub.norm=g.sub.norm min{max}exp(−α),1/g.sub.norm}, exp(α)}, (27)
(102) and one can save the special function evaluations.
(103) Use in Combination with a Time Domain Stereo Upmix of the Bandwidth Extension for Acelp Frames
(104) When used with the EVS codec, a low delay audio codec for communication scenarios, it is desirable to perform the stereo upmix of the bandwidth extension in time domain, to safe delay induced by the time domain bandwidth extension (TBE). The stereo bandwidth upmix aims at restoring correct palming in the bandwidth extension range, but does not add a substitute for the missing residual. It is therefore desirable to add the substitute in frequency domain stereo processing, as is depicted in
(105) The notation {tilde over (m)} for the input signal at the decoder, {tilde over (m)}.sub.F for the filtered input signal, {tilde over (M)}.sub.t,k for the time-frequency bins of {tilde over (m)} and {tilde over (p)}.sub.t,k for the time frequency bins of {tilde over (m)}.sub.F are used.
(106) One then faces the problem that {tilde over (M)}.sub.t,k is not known in the bandwidth extension range, hence the energy normalizing factor
(107)
cannot be computed directly if some of the indices kϵI.sub.b lie in the bandwidth extension range. This problem is solved as follows: let I.sub.HB and I.sub.LB denote the high band resp. low band indices of the frequency bins. Then an estimate E.sub.{tilde over (M)},H B of Σ.sub.kϵI.sub.
Σ.sub.kϵI.sub.
(108) Now the summands in the second sum on the right hand side are unknown, but since {tilde over (M)}.sub.F is obtained from {tilde over (m)} by an allpass filter, one can assume that the energy of {tilde over (p)}.sub.t,k and {tilde over (m)}.sub.t,k is similarly distributed and therefore one will have
(109)
(110) Therefore, the second sum on the right hand side of (29) can be estimated as
(111)
(112) Use with Coders that Code a Primary and a Secondary Channel
(113) The artificial signal is also useful for stereo coders, which code a primary and a secondary channel. In this case, the primary channel serves as input for the allpass filter unit. The filtered output may then be used to substitute residual parts in the stereo processing, possibly after applying a shaping filter to it. In the simplest setting primary and secondary channel could be a transformation of the input channels like a mid/side or KL-transform, and the secondary channel could be limited to a smaller bandwidth. The missing part of the secondary channel could then be replaced by the filtered primary channel after applying a high pass filter.
(114) Use with a Decoder that is Capable of Switching Between Stereo Modes
(115) A particularly interesting case for the artificial signal is, when the decoder features different stereo processing methods as depicted in
Benefits and Advantages of Embodiments
(116) The new method has many benefits and advantages over State of the Art Methods as for instance applied in xHE-AAC.
(117) Time domain processing allows for a much higher time resolution as subband processing, which is applied in Parametric Stereo, which makes it possible to design a filter whose impulse response is both dense and fast decaying. This leads to the input signals spectral envelope getting less smeared out over time, or the output signal being less colored and therefore sounding more natural.
(118) Better suitability for speech, where the optimal peak region of the filter's impulse response should lie between 20 and 40 ms.
(119) The filter unit features a resampling functionality for input signals with different sampling rates. This allows for operating the filter at a fixed sampling rate, which is beneficial since it guarantees a similar output at different sampling rates; or smooths discontinuities when switching between signals of different sampling rate. For complexity reasons, the internal sampling rate should be chosen such that the filtered signal covers only the perceptually relevant frequency range.
(120) Since the signal is generated at the input of the decoder and not connected to a filter bank, it may be used in different stereo processing units. This helps to smooth discontinuities when switching between different units, or when operating different units on different parts of the signal.
(121) It also saves complexity, since no re-initialization is needed when switching between units.
(122) The gain compression scheme helps to compensate for loss of ambience due to core coding.
(123) The method relating to bandwidth extension of ACELP frames mitigates the lack of missing residual components in a panning based time domain bandwidth extension upmix, which increases stability when switching between processing the high band in DFT domain and in time domain.
(124) The input may be replaced by zeros on a very fine time scale, which is beneficial for handling attacks.
(125) Subsequently, additional details with respect to
(126)
(127) The switching between both elements is done by a controller 713 illustrated as a switch controlled by a control parameter included in the encoded multi-channel signal for feeding a portion of the encoded base channel either into the first decoding branch comprising block 720, 721 or into the second decoding branch 722. The low band decoder 721 is implemented, for example, as an algebraic code excited linear prediction coder ACELP and the second full band decoder is implemented as a transform coded excitation (TCX)/high quality (HQ) core decoder.
(128) The decoded downmix from blocks 722 or the decoded core signal from block 721 and, additionally, the bandwidth extension signal from block 720 are taken and forwarded to the procedure in
(129) Furthermore, a switching decision 817 is configured that is, for example, implemented as a transient detector. However, the transient detector does not necessarily have to be an actual detector for detecting a transient by a signal analysis, but the transient detector can also be configured to determine a side information or a specific control parameter in the encoded multi-channel signal indicating a transient in the base channel.
(130) The switching decision 817 sets a switch in order to either feed the signal output from switch 815 into the allpass filter unit 802 or a zero input which results in actually deactivating the filling signal addition in the multi-channel processor for certain very specifically selectable time regions, since the EVS allpass signal generator (APSG) indicated at 1000 in
(131) The device illustrated in
(132)
(133) Depending on the implementation, when the decoded downmix signal from the fullband decoder 722 is available, then block 960 is deactivated, and the stereo processing block 904 already outputs the fullband upmix signals such as a fullband left and right channel.
(134) However, when the decoded core signal is input into DFT block 922, then the block 960 is activated and a left channel signal and a right channel signal are added by adders 994a and 994b. However, the addition of the filling signal is nevertheless performed in the spectral domain indicated by block 904 in accordance with the procedures as, for example, discussed within an embodiment based on the equations 28 to 31. Thus, in such a situation, the signal output by DFT block 902 corresponding to the low band mid signal does not have any high band data. However, the signal output by block 804, i.e., the filling signal has low band data and high band data.
(135) In the stereo processing block, the low band data output by block 904 is generated by the decoded base channel and the filling signal but the high band data output by block 904 only consists of the filling signal and does not have any high band information from the decoded base channel, since the decoded base channel was band limited. The high band information from the decoded base channel is generated by bandwidth extension block 720, is upmixed into a left high band channel and right high band channel by block 960 and is then added by the adders 994a, 994b.
(136) The device illustrated in
(137)
(138) 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.
(139) 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.
(140) Depending on certain implementation requirements, embodiments of the invention can be implemented in hardware or in software. The implementation can be performed using a non-transitory storage medium or 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.
(141) 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.
(142) 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.
(143) Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.
(144) 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.
(145) 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-transitionary.
(146) 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.
(147) 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.
(148) A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
(149) 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.
(150) 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.
(151) 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.
(152) 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.
(153) The apparatus described herein, or any components of the apparatus described herein, may be implemented at least partially in hardware and/or in software.
(154) 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.
(155) The methods described herein, or any components of the apparatus described herein, may be performed at least partially by hardware and/or by software.
(156) 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.
(157) In the foregoing description, it can be seen that various features are grouped together in embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments need more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter may lie in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, where each claim may stand on its own as a separate embodiment. While each claim may stand on its own as a separate embodiment, it is to be noted that—although a dependent claim may refer in the claims to a specific combination with one or more other claims—other embodiments may also include a combination of the dependent claim with the subject matter of each other dependent claim or a combination of each feature with other dependent or independent claims. Such combinations are proposed herein unless it is stated that a specific combination is not intended. Furthermore, it is intended to include also features of a claim to any other independent claim even if this claim is not directly made dependent to the independent claim.
(158) It is further to be noted that methods disclosed in the specification or in the claims may be implemented by a device having means for performing each of the respective steps of these methods.
(159) Furthermore, in some embodiments a single step may include or may be broken into multiple sub steps. Such sub steps may be included and part of the disclosure of this single step unless explicitly excluded.
(160) 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.