Processor and method for processing an audio signal using truncated analysis or synthesis window overlap portions
11664036 · 2023-05-30
Assignee
Inventors
- Guillaume Fuchs (Bubenreuth, DE)
- Markus Multrus (Nuremberg, DE)
- Matthias Neusinger (Rohr, DE)
- Andreas Niedermeier (Munich, DE)
- Markus Schnell (Nuremberg, DE)
Cpc classification
G10L19/025
PHYSICS
International classification
G10L19/022
PHYSICS
G10L19/025
PHYSICS
Abstract
A processor for processing an audio signal has: an analyzer for deriving a window control signal from the audio signal indicating a change from a first asymmetric window to a second window, or indicating a change from a third window to a fourth asymmetric window, wherein the second window is shorter than the first window, or wherein the third window is shorter than the fourth window; a window constructor for constructing the second window using a first overlap portion of the first asymmetric window, wherein the window constructor is configured to determine a first overlap portion of the second window using a truncated first overlap portion of the first asymmetric window, or wherein the window constructor is configured to calculate a second overlap portion of the third window using a truncated second overlap portion of the fourth asymmetric window; and a windower for applying the first and second windows or the third and fourth windows to obtain windowed audio signal portions.
Claims
1. An audio processor for processing an audio signal to obtain a processed audio signal, comprising: an analyzer configured for deriving a window control signal from the audio signal indicating a change from a first asymmetric window comprising a first overlap portion to a second window comprising a first overlap portion, wherein the second window is shorter than the first asymmetric window; a window constructor configured for constructing the second window using the first overlap portion of the first asymmetric window, wherein the window constructor is configured to determine the first overlap portion of the second window using a truncated first overlap portion of the first asymmetric window; and a windower configured for applying the first and second windows to acquire windowed audio signal portions representing the processed audio signal.
2. The audio processor of claim 1, wherein the first and second windows are analysis windows, wherein the audio processor further comprises an audio encoder configured for further processing samples windowed by the first and second windows.
3. The audio processor of claim 1, wherein the window constructor is configured to derive the first overlap portion of the second window by truncating the first overlap portion of the first asymmetric window and by fading-in the truncated portion.
4. The audio processor of claim 3, wherein the window constructor is configured for performing the fade-in or the fade-out using a sine fade-in function or a sine fade-out function.
5. The audio processor of claim 3, wherein the window constructor is configured to calculate the fade-in or fade-out using an overlap portion of any other window used by the processor.
6. The audio processor of claim 5, wherein the window constructor is configured to calculate the fade-in or fade-out using a shortest overlap portion of all overlap portions used.
7. The audio processor of claim 1, further comprising a memory having stored thereon, for a certain sampling rate, the first overlap portion of the first asymmetric window, a second overlap portion of the first asymmetric window and a third overlap portion for a further window shorter than the first asymmetric window, wherein the window constructor is configured for retrieving the first overlap portion of the first asymmetric window from the memory, for truncating the first overlap portion to a length shorter than the length of the first overlap portion, for retrieving the third overlap portion, and for multiplying the truncated first portion by the third overlap portion to generate the first overlap portion of the second window.
8. The audio processor of claim 7, wherein the memory has furthermore stored a fourth overlap portion of an even further window, the even further window comprising a length between a length of the first asymmetric window and a length of the further window.
9. The audio processor of claim 8, wherein the window constructor is configured to construct, depending on the window control signal, a sequence comprising the first asymmetric window, the second window, an additional window constructed using the third overlap portion and the fourth overlap portion or using the third overlap portion only, and a further additional window using the third overlap portion and the second overlap portion of the first asymmetric window.
10. The audio processor of claim 1, wherein the window constructor is configured to determine the first overlap portion of the second window using the truncated first overlap portion of the first asymmetric window being truncated to a length of a second overlap portion of the first asymmetric window.
11. The audio processor of claim 1, wherein the window constructor is configured to determine the second window using the first overlap portion of the second window and a second overlap portion of the second window corresponding to a first overlap portion of a further window following the second window.
12. The audio processor of claim 1, wherein the window constructor is configured to truncate the first overlap portion of the first asymmetric window to a truncation length being shorter or equal than a window length of the second window less a length of the first overlap portion of a further window following the second window.
13. The audio processor of claim 12, wherein, when the truncation length is smaller than the window length less the length of the first overlap portion of the further window or the second overlap portion of the window, the window constructor is configured to insert zeroes before or subsequent to the first and second overlap portions of the second, and wherein the window constructor is furthermore configured to insert a number of “1” values between the first and second overlap portions of the second window.
14. The audio processor of claim 1, wherein the first asymmetric window comprises a first overlap portion, a second overlap portion, a first high value part between the first and second overlap portion and a second low value part subsequent to the second overlap portion, wherein the values in the high value part are greater than 0.9 and the values in the low value part are lower than 0.1, and wherein the length of the second overlap portion is lower than a length of the first overlap portion.
15. The audio processor of claim 1, which is configured to operate at a plurality of different sampling rates, and wherein the processor is configured to store, for each sampling rate, the first and second overlap portions of the first asymmetric window, a symmetric overlap portion of a further window, and a further symmetric overlap portion of an even further window being shorter than the further window; and wherein the symmetric overlap portion and the further symmetric overlap portion are stored as an ascending or a descending portion only, and wherein the window constructor is configured to derive a descending or an ascending portion from the stored ascending or descending portion by arithmetic or logic operations.
16. The audio processor of claim 1, wherein the first asymmetric window is configured for a transform length of 20 ms, wherein the window constructor is configured for further using further windows for a transform length of 10 ms or 5 ms, and wherein the second window is a transition window from the transform length of 20 ms to the transform length of 10 ms or 5 ms.
17. An audio processor for processing an audio signal to obtain a processed audio signal, comprising: an analyzer configured for deriving a window control signal from the audio signal indicating a change from a third window comprising a second overlap portion to a fourth asymmetric window comprising a second overlap portion, wherein the third window is shorter than the fourth asymmetric window; a window constructor configured for constructing the third window using the second overlap portion of the fourth asymmetric window, wherein the window constructor is configured to calculate the second overlap portion of the third window using a truncated second overlap portion of the fourth asymmetric window; and a windower configured for applying the third window and the fourth asymmetric windows to acquire windowed audio signal portions representing the processed audio signal.
18. The audio processor of claim 17, wherein the third window and the fourth asymmetric window are synthesis windows, wherein the audio processor further comprises an overlap-adder configured for overlap-adding samples windowed by the third window and the fourth asymmetric windows.
19. The audio processor of claim 17, wherein the window constructor is configured to derive the second overlap portion of the third window by truncating the second overlap portion of the fourth asymmetric window and by fading-out the truncated portion.
20. The audio processor of claim 17, further comprising a memory having stored thereon, for a certain sampling rate, the second overlap portion of the fourth asymmetric window and a third overlap portion for a further window shorter than the first asymmetric window, wherein the window constructor is configured for retrieving the second overlap portion of the fourth asymmetric window from the memory, for truncating the second overlap portion retrieved to a length shorter than the length of the second overlap portion, for retrieving the third overlap portion; and for multiplying the truncated second overlap portion by the third overlap portion to generate the second overlap portion of the third window.
21. The audio processor of claim 17, wherein the window constructor is configured to determine the second overlap portion of the third window using a second overlap portion of the fourth asymmetric window truncated to a length of the first overlap portion of the fourth asymmetric window.
22. The audio processor of claim 17, wherein the window constructor is configured to construct the third window by using a first overlap portion of the third window corresponding to a second overlap portion of a further window preceding the third window.
23. The audio processor of claim 17, which is configured to operate at a plurality of different sampling rates, and wherein the processor is configured to store, for each sampling rate, the first and second overlap portions of the fourth asymmetric window, a symmetric overlap portion of a further window, and a further symmetric overlap portion of an even further window being shorter than the further window; and wherein the symmetric overlap portion and the further symmetric overlap portion are stored as an ascending or a descending portion only, and wherein the window constructor is configured to derive a descending or an ascending portion from the stored ascending or descending portion by arithmetic or logic operations.
24. The audio processor of claim 17, wherein the fourth asymmetric window is configured for the transform length of 20 ms, and wherein the third window is a transition window from the transform length of 5 ms to 20 ms or from the transform length of 10 ms to 20 ms.
25. A method of processing an audio signal to obtain a processed audio signal, comprising: deriving a window control signal from the audio signal indicating a change from a first asymmetric window comprising a first overlap portion to a second window comprising a first overlap portion, wherein the second window is shorter than the first asymmetric window; constructing the second window using the first overlap portion of the first asymmetric window, wherein the constructing comprises determining the first overlap portion of the second window using a truncated first overlap portion of the first asymmetric window; and applying the first and second windows to acquire windowed audio signal portions representing the processed audio signal.
26. A method of processing an audio signal to obtain a processed audio signal, comprising: deriving a window control signal from the audio signal indicating a change from a third window comprising a second overlap portion to a fourth asymmetric window comprising a second overlap portion, wherein the third window is shorter than the fourth asymmetric window; constructing the third window using the second overlap portion of the fourth asymmetric window, wherein the constructing comprises calculating the second overlap portion of the third window using a truncated second overlap portion of the fourth asymmetric window; and applying the third window and the fourth asymmetric window to acquire windowed audio signal portions representing the processed audio signal.
27. A non-transitory digital storage medium having stored thereon a computer program for performing, when running on a computer, a method of processing an audio signal to obtain a processed audio signal, the method comprising: deriving a window control signal from the audio signal indicating a change from a first asymmetric window comprising a first overlap portion to a second window comprising a first overlap portion, wherein the second window is shorter than the first asymmetric window; constructing the second window using the first overlap portion of the first asymmetric window, wherein the constructing comprises determining a first overlap portion of the second window using a truncated first overlap portion of the first asymmetric window; and applying the first and second windows to acquire windowed audio signal portions representing the processed audio signal.
28. A non-transitory digital storage medium having stored thereon a computer program for performing, when running on a computer, a method of processing an audio signal to obtain a processed audio signal, the method comprising: deriving a window control signal from the audio signal indicating a change from a third window to a fourth asymmetric window, wherein the third window is shorter than the fourth asymmetric window; constructing the third window using the second overlap portion of the fourth asymmetric window, wherein the constructing comprises calculating the second overlap portion of the third window using a truncated second overlap portion of the fourth asymmetric window; and applying the third window and the fourth asymmetric window to acquire windowed audio signal portions representing the processed audio signal.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Embodiments of the present invention are subsequently discussed with respect to the accompanying drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)
(32) and
(33)
DETAILED DESCRIPTION OF THE INVENTION
(34) Embodiments relate to concepts for instantly switching from a long MDCT transform using an asymmetric window to a shorter transform with symmetrically overlapping windows, without the need for inserting an intermediate frame.
(35) When constructing the window shape for the first frame employing a shorter transform length, two restrictions are an issue: The left overlapping part of the window needs to match the shape of the previous asymmetric window in a way so that perfect or near-perfect reconstruction is achieved. The length of the overlapping parts is constrained due to the shorter transform length.
(36) The left overlapping part of the long asymmetric window would satisfy the first condition, but it is too long for shorter transforms, which usually have half or less the size of the long transform. Therefore a shorter window shape needs to be chosen.
(37) It is assumed here that the asymmetric analysis and synthesis windows are symmetric to each other, i.e. the synthesis window is a mirrored version of the analysis window. In this case the window w has to satisfy the following equation for perfect reconstruction:
w.sub.nw.sub.2L−1−n+w.sub.L+nw.sub.L−1−n=1, n=0 . . . L−1,
where L represents the transform length and n the sample index.
(38) For delay reduction the right side overlap of the asymmetric long analysis window has been shortened, which means all of the rightmost window samples have a value of zero. From the equation above it can be seen that if a window sample w.sub.n has a value of zero, an arbitrary value can be chosen for the symmetric sample w.sub.2L−1−n. If the rightmost m samples of the window are zero, the leftmost m samples may therefore be replaced by zeroes as well without losing perfect reconstruction, i.e. the left overlapping part can be truncated down to the length of the right overlapping part.
(39) If the truncated overlap length is short enough, so that sufficient overlap length remains for the right part of the first short transform window, this gives a solution for the first short transform window shape, satisfying both of the above conditions. The left end of the asymmetric window's overlapping part is truncated and combined with the symmetric overlap used for subsequent short windows. An example of the resulting window shape is depicted in
(40) Using a truncated version of the existing long window overlap avoids the need to design a completely new window shape for the transition. It also reduces ROM/RAM demand for hardware on which the algorithm is implemented, as no additional window table is required for the transition.
(41) For synthesis windowing on decoder-side a symmetric approach is used. The asymmetric synthesis window has the long overlap on the right side. A truncated version of the right overlapping part is therefore used for the right window part of the last short transform before switching back to long transforms with asymmetric windows, as depicted in
(42) As shown above the use of a truncated version of the long window allows for perfect reconstruction of the time-domain signal if the spectral data is not modified between analysis and synthesis transform. However, in an audio coder quantization is applied to the spectral data. In the synthesis transform the resulting quantization noise is shaped by the synthesis window. As the truncation of the long window introduces a step in the window shape, discontinuities can occur in the quantization noise of the output signal. These discontinuities can become audible as click-like artifacts.
(43) In order to avoid such artifacts, a fade-out can be applied to the end of the truncated window to smooth the transition to zero. The fade-out can be done in several different ways, e.g. it could be linear, sine or cosine shaped. The length of the fade-out should be chosen large enough so that no audible artifacts occur. The maximum length available for the fade-out without losing perfect reconstruction is determined by the short transform length and the length of the window overlaps. In some cases the available length might be zero or too small to suppress artifacts. For such cases it can be beneficial to extend the fade-out length and accept small reconstruction errors, as these are often less disturbing than discontinuities in the quantization noise. Carefully tuning the fade-out length allows to trade reconstruction errors against quantization error discontinuities, in order to achieve best audio quality.
(44)
(45) Subsequently,
(46) The processor further comprises a window constructor 206 for constructing the second window using a first overlap portion of a first asymmetric window, wherein this window constructor is configured to determine a first overlap portion of the second window using a truncated first overlap portion of the first asymmetric window for the synthesis-side, i.e., case B in
(47) These windows, such as the second window on the analysis-side or the third window on the synthesis-side and, of course, the preceding and/or subsequent windows are transmitted from the window constructor 206 to a windower 208. The windower 208 applies the first and second windows or the third and fourth windows to an audio signal in order to obtain the signal portions at an output 210.
(48) Case A is related to the analysis-side. Here, the input is an audio signal and the actual analyzer 202 performs an actual audio signal analysis such as a transient analysis etc. The first and second windows are analysis windows and the windowed signal is encoder-side processed as will be discussed later on with respect to
(49) Hence, a decoder processor 214 illustrated in
(50) In case B, i.e., when the inventive processing is applied on a synthesis-side, the input is the encoded audio signal such as a bitstream having audio signal information and side information, and the analyzer 202 performs a bitstream analysis or a bitstream or encoded signal parsing in order to retrieve, from the encoded audio signal, a window control signal indicating the window sequence applied by the encoder, from which the window sequence to be applied by the decoder can be derived.
(51) Then, the third and fourth windows are synthesis windows and the windowed signal is subjected to an overlap-add processing for the purpose of an audio signal synthesis as illustrated in
(52)
(53) The controller 108 is configured to select the specific window from a group of at least three windows. The group comprises a first window having a first overlap length, a second window having a second overlap length, and a third window having a third overlap length or no overlap. The first overlap length is greater than the second overlap length and the second overlap length is greater than a zero overlap. The specific window is selected, by the controllable windower 102 based on the transient location such that one of two time-adjacent overlapping windows has first window coefficients at the location of the transient and the other of the two time-adjacent overlapping windows has second window coefficients at the location of the transient and the second window coefficients are at least nine times greater than the first coefficients. This makes sure that the transient is substantially suppressed by the first window having the first (small) coefficients and the transient is quite unaffected by the second window having the second window coefficients. Advantageously, the first window coefficients are equal to 1 within a tolerance of plus/minus 5%, such as between 0.95 and 1.05, and the second window coefficients are advantageously equal to 0 or at least smaller than 0.05. The window coefficients can be negative as well and in this case, the relations and the quantities of the window coefficients are related to the absolute magnitude.
(54) Furthermore, alternatively or in addition, the controller 108 comprises the functionalities of the window constructor 206 as discussed in the context of
(55) Furthermore, blocks 104 and 110 illustrate processing to be performed by the windowed audio signal 210, which corresponds to the windowed audio signal 103 in
(56) As known in the art of MDCT processing, generally, processing using an aliasing-introducing transform, this aliasing-introducing transform can be separated into a folding-in step and a subsequent transform step using a certain non-aliasing introducing transform. In an example, sections are folded in other sections and the result of the folding operation is then transformed into the spectral domain using a transform such as a DCT transform. In the case of an MDCT, a DCT IV transform is applied.
(57) Subsequently, this is exemplified by reference to the MDCT, but other aliasing-introducing transforms can be processed in a similar and analogous manner. As a lapped transform, the MDCT is a bit unusual compared to other Fourier-related transforms in that it has half as many outputs as inputs (instead of the same number). In particular, it is a linear function F: R.sup.2N.fwdarw.R.sup.N (where R denotes the set of real numbers). The 2N real numbers x0, . . . , x2N−1 are transformed into the N real numbers X0, XN−1 according to the formula:
(58)
(59) (The normalization coefficient in front of this transform, here unity, is an arbitrary convention and differs between treatments. Only the product of the normalizations of the MDCT and the IMDCT, below, is constrained.)
(60) The inverse MDCT is known as the IMDCT. Because there are different numbers of inputs and outputs, at first glance it might seem that the MDCT should not be invertible. However, perfect invertibility is achieved by adding the overlapped IMDCTs of time-adjacent overlapping blocks, causing the errors to cancel and the original data to be retrieved; this technique is known as time-domain aliasing cancellation (TDAC).
(61) The IMDCT transforms N real numbers X0, . . . XN−1 into 2N real numbers y0, . . . , y2N−1 according to the formula:
(62)
(63) (Like for the DCT-IV, an orthogonal transform, the inverse has the same form as the forward transform.)
(64) In the case of a windowed MDCT with the usual window normalization (see below), the normalization coefficient in front of the IMDCT should be multiplied by 2 (i.e., becoming 2/N).
(65) In typical signal-compression applications, the transform properties are further improved by using a window function wn (n=0, . . . , 2N−1) that is multiplied with xn and yn in the MDCT and IMDCT formulas, above, in order to avoid discontinuities at the n=0 and 2N boundaries by making the function go smoothly to zero at those points. (That is, we window the data before the MDCT and after the IMDCT.) In principle, x and y could have different window functions, and the window function could also change from one block to the next (especially for the case where data blocks of different sizes are combined), but for simplicity we consider the common case of identical window functions for equal-sized blocks.
(66) The transform remains invertible (that is, TDAC works), for a symmetric window wn=w2N−1−n, as long as w satisfies the Princen-Bradley condition:
w.sub.n.sup.2+w.sub.n+N.sup.2+1
(67) various window functions are used. A window that produces a form known as a modulated lapped transform is given by
(68)
(69) and is used for MP3 and MPEG-2 AAC, and
(70)
(71) for Vorbis. AC-3 uses a Kaiser-Bessel derived (KBD) window, and MPEG-4 AAC can also use a KBD window.
(72) Note that windows applied to the MDCT are different from windows used for some other types of signal analysis, since they fulfill the Princen-Bradley condition. One of the reasons for this difference is that MDCT windows are applied twice, for both the MDCT (analysis) and the IMDCT (synthesis).
(73) As can be seen by inspection of the definitions, for even N the MDCT is essentially equivalent to a DCT-IV, where the input is shifted by N/2 and two N-blocks of data are transformed at once. By examining this equivalence more carefully, important properties like TDAC can be easily derived.
(74) In order to define the precise relationship to the DCT-IV, it is to be kept in mind that the DCT-IV corresponds to alternating even/odd boundary conditions: even at its left boundary (around n=−½), odd at its right boundary (around n=N−½), and so on (instead of periodic boundaries as for a DFT). This follows from the identities:
(75)
(76) Thus, if its inputs are an array x of length N, we can imagine extending this array to (x, −xR, −x, xR, . . . ) and so on, where xR denotes x in reverse order.
(77) Consider an MDCT with 2N inputs and N outputs, where we divide the inputs into four blocks (a, b, c, d) each of size N/2. If we shift these to the right by N/2 (from the +N/2 term in the MDCT definition), then (b, c, d) extend past the end of the N DCT-IV inputs, so we “fold” them back according to the boundary conditions described above.
(78) Thus, the MDCT of 2N inputs (a, b, c, d) is exactly equivalent to a DCT-IV of the N inputs: (−cR−d, a−bR), where R denotes reversal as above.
(79) (In this way, any algorithm to compute the DCT-IV can be trivially applied to the MDCT.) Similarly, the IMDCT formula above is precisely ½ of the DCT-IV (which is its own inverse), where the output is extended (via the boundary conditions) to a length 2N and shifted back to the left by N/2. The inverse DCT-IV would simply give back the inputs (−cR−d, a−bR) from above. When this is extended via the boundary conditions and shifted, one obtains:
IMDCT(MDCT(a,b,c,d))=(a−bR,b−aR,c+dR,d+cR)/2.
(80) Half of the IMDCT outputs are thus redundant, as b−aR=−(a−bR)R, and likewise for the last two terms. If we group the input into bigger blocks A,B of size N, where A=(a, b) and B=(c, d), we can write this result in a simpler way:
IMDCT(MDCT(A,B))=(A−AR,B+BR)/2
(81) One can now understand how TDAC works. Suppose that one computes the MDCT of the time-adjacent, 50% overlapped, 2N block (B, C). The IMDCT will then yield, analogous to the above: (B−BR, C+CR)/2. When this is added with the previous IMDCT result in the overlapping half, the reversed terms cancel and one obtains simply B, recovering the original data.
(82) The origin of the term “time-domain aliasing cancellation” is now clear. The use of input data that extend beyond the boundaries of the logical DCT-IV causes the data to be aliased in the same way that frequencies beyond the Nyquist frequency are aliased to lower frequencies, except that this aliasing occurs in the time domain instead of the frequency domain: we cannot distinguish the contributions of a and of bR to the MDCT of (a, b, c, d), or equivalently, to the result of IMDCT (MDCT (a, b, c, d))=(a−bR, b−aR, c+dR, d+cR)/2. The combinations c−dR and so on, have precisely the right signs for the combinations to cancel when they are added.
(83) For odd N (which are rarely used in practice), N/2 is not an integer so the MDCT is not simply a shift permutation of a DCT-IV. In this case, the additional shift by half a sample means that the MDCT/IMDCT becomes equivalent to the DCT-III/II, and the analysis is analogous to the above.
(84) We have seen above that the MDCT of 2N inputs (a, b, c, d) is equivalent to a DCT-IV of the N inputs (−cR−d, a−bR). The DCT-IV is designed for the case where the function at the right boundary is odd, and therefore the values near the right boundary are close to 0. If the input signal is smooth, this is the case: the rightmost components of a and bR are consecutive in the input sequence (a, b, c, d), and therefore their difference is small. Let us look at the middle of the interval: if we rewrite the above expression as (−cR−d, a−bR)=(−d, a)−(b,c)R, the second term, (b,c)R, gives a smooth transition in the middle. However, in the first term, (−d, a), there is a potential discontinuity where the right end of −d meets the left end of a. This is the reason for using a window function that reduces the components near the boundaries of the input sequence (a, b, c, d) towards 0.
(85) Above, the TDAC property was proved for the ordinary MDCT, showing that adding IMDCTs of time-adjacent blocks in their overlapping half recovers the original data. The derivation of this inverse property for the windowed MDCT is only slightly more complicated.
(86) Consider two overlapping consecutive sets of 2N inputs (A,B) and (B,C), for blocks A,B,C of size N. Recall from above that when (A, B) and (B, C) are MDCTed, IMDCTed, and added in their overlapping half, we obtain (B+B.sub.R)/2+(B−B.sub.R)/2=B, the original data. Now we suppose that we multiply both the MDCT inputs and the IMDCT outputs by a window function of length 2N. As above, we assume a symmetric window function, which is therefore of the form (W, W.sub.R) where W is a length-N vector and R denotes reversal as before. Then the Princen-Bradley condition can be written as W+W.sub.R.sup.2=(1, 1, . . . ), with the squares and additions performed elementwise.
(87) Therefore, instead of MDCTing (A,B), one now MDCTs (WA, W.sub.RB) with all multiplications performed elementwise. When this is IMDCTed and multiplied again (elementwise) by the window function, the last-N half becomes:
W.sub.R′(W.sub.RB+(W.sub.RB).sub.R)=W.sub.R′(W.sub.RB+WB.sub.R)=W.sub.R.sup.2B+WW.sub.RB.sub.R
(88) (Note that we no longer have the multiplication by ½, because the IMDCT normalization differs by a factor of 2 in the windowed case.)
(89) Similarly, the windowed MDCT and IMDCT of (B,C)
(90) yields, in its first-N half:
W.Math.(WB.Math.W.sub.RB.sub.R)=W.sup.2B−WW.sub.RB.sub.R
(91) When one adds these two halves together, one recovers the original data.
(92) The above MDCT discussion describes identical analysis/synthesis windows. For asymmetric windows analysis/synthesis windows are different, but advantageously symmetric to each other; in that case the Princen-Bradley condition changes to the more general equation:
W.sub.nW.sub.2L−1−n+W.sub.L+nW.sub.L−1−n=1, n=0 . . . L−1,
(93)
(94)
(95) Then, the output of the frequency-time converter 170 is input into a synthesis windower which applies the synthesis window which is advantageously symmetric to the encoder-side window. Thus, each sample is, before an overlap-add is performed, windowed by two windows so that the resulting “total windowing” is the product of the analysis window coefficients and the synthesis window coefficients so that the Princen-Bradley condition as discussed before is fulfilled.
(96) Finally, the overlap-adder 174 performs the corresponding correct overlap-add in order to finally obtain the decoded audio signal at output 175.
(97)
(98) Subsequently, an advantageous window is discussed with respect to
(99) In this specific implementation, the first overlap portion 800 is greater than the second overlap portion 802 which allows a low delay implementation and, additionally, in the context of the fact that the low portion 806 precedes the second overlap portion, the asymmetric analysis window illustrated in
(100)
(101) The exemplary length of the corresponding parts is indicated but it is generally of advantage that the first overlap portion 812 is shorter than the second overlap portion 814 and it is furthermore of advantage that the length of the constant or high part 816 is between the length of the first overlap portion and the second overlap portion and it is furthermore of advantage that the length of the first part 810 or the zero part is lower than the length of the first overlap portion 812.
(102) As illustrated in
(103)
(104) Analogously,
(105) Furthermore,
(106)
(107) In this context, it is outlined that
(108)
(109)
(110) Generally, most of the window figures from
(111) Furthermore, it is outlined that the corresponding transformation length corresponds to the distance between the folding points. For example, when
(112) Correspondingly, the window in
(113) In the asymmetric case illustrated in
(114) Necessitated for perfect reconstruction is to maintain the folding line or folding point when the long overlap portion or window edge of the asymmetric window such as 800 or 814 (for the synthesis side) is truncated.
(115) Furthermore, as will be outlined specifically with respect to
(116) Furthermore, it is outlined that for 10 ms transforms, overlaps of 3.75 ms or overlaps of 1.25 ms are used. Hence, even more combinations than illustrated in the window figures from
(117)
(118)
(119)
(120)
(121)
(122)
(123)
(124) The right overlap portion 1202 of
(125)
(126) In particular,
(127)
(128)
(129) Furthermore,
(130) Although not illustrated, a synthesis window corresponding to the situation in
(131)
(132) Furthermore, in
(133) Hence,
(134)
(135)
(136) Regarding the synthesis window sequence in
(137) Subsequently, an implementation of the window constructor 206 is discussed in the context of
(138)
(139) Furthermore, the window constructor is configured to determine, on its own in accordance with corresponding predefined rules, the length and position of the low or zero portions and the high or one-portions of the specific windows as illustrated in the plots from
(140) Thus, only a minimum amount of memory requirements are necessitated for the purpose of implementing an encoder and a decoder. Hence, apart from the fact that encoder and decoder rely on one and the same memory 300, even a waste amount of different windows and transition windows etc., can be implemented only by storing four sets of window coefficients for each sampling rate.
(141) The transform window switching outlined above was implemented in an audio coding system using asymmetric windows for long transforms and low-overlap sine windows for short transforms. The block length is 20 ms for long blocks and 10 ms or 5 ms for short blocks. The left overlap of the asymmetric analysis window has a length of 14.375 ms, the right overlap length is 8.75 ms. The short windows use overlaps of 3.75 ms and 1.25 ms. For the transition from 20 ms to 10 ms or 5 ms transform length on encoder side the left overlapping part of the asymmetric analysis window is truncated to 8.75 ms and used for the left window part of the first short transform. A 1.25 ms sine-shaped fade-in is applied by multiplying the left end of the truncated window with the 1.25 ms ascending short window overlap. Reusing the 1.25 ms overlap window shape for the fade-in avoids the need for an additional ROM/RAM table, as well as the complexity for on-the-fly computation of the fade-in shape.
(142) On decoder side for the transition from 10 ms or 5 ms to 20 ms transform length the right overlapping part of the asymmetric synthesis window is truncated to 8.75 ms and used for the right window part of the last short transform. A 1.25 ms sine-shaped fade-out similar to the fade in on encoder side is applied to the truncated end of the window. The decoder window sequence for the example above is depicted in
(143)
(144) Although not illustrated explicitly in
(145)
(146)
(147) Then, in step 702 the length of the symmetric overlap portion of the window is determined. For the analysis side this means that the length of the second overlap portion is determined while, for the synthesis side, this means that the length for the first overlap portion is determined. The step 702 makes sure that the “fixed” situation of the transition window is acknowledged, i.e., that the transition window has a symmetric overlap. Now, in step 704, the second edge of the window or the other overlap portion of the window is determined. Basically, the maximum truncation length is the difference between the length of the transition window and the length of the symmetric overlap portion. When this length is greater than the length of the long edge of the asymmetric window then no truncation is necessary at all. However, when this difference is smaller than the long edge of the asymmetric window then a truncation is performed. The maximum truncation length, i.e., the length by which a minimum truncation is obtained is equal to this difference. Where necessitated a truncation to this maximum length, i.e., a minimum truncation, can be performed and a certain fade can be applied as illustrated in
(148) Step 704, however, can be bypassed as illustrated by 708. A truncation to a smaller than a maximum length is then performed in step 710 leading to the situation of
(149) Hence, the number of zeros of portion 1131 is equal to a number of zeros immediately close to the first overlap portion 1130, a number of zeros in portion 1133 of
(150) Although the embodiments have been described with window length of 40 ms and transform length of 20 ms as a long window, a block size of 10 ms for intermediate windows and a block size of 5 ms for a short window, it is to be emphasized that a different block or window size can be applied. Furthermore, it is to be emphasized that the present invention also is useful for only two different block sizes but three different block sizes are of advantage in order to have a very good placement of short window functions with respect to a transient as, for example, discussed in detail in PCT/EP2014/053287 additionally discussing multi-overlap portions, i.e., an overlap between more than two windows occurring in the sequences in
(151) Although the present invention has been described in the context of block diagrams where the blocks represent actual or logical hardware components, the present invention can also be implemented by a computer-implemented method. In the latter case, the blocks represent corresponding method steps where these steps stand for the functionalities performed by corresponding logical or physical hardware blocks.
(152) 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, some one or more of the most important method steps may be executed by such an apparatus.
(153) The inventive transmitted or encoded 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.
(154) Depending on certain implementation requirements, embodiments of the invention can be implemented in hardware or in software. The implementation can be performed using a digital storage medium, for example a floppy disc, a DVD, a Blu-Ray, a CD, a ROM, a PROM, and 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.
(155) 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.
(156) 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.
(157) Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.
(158) 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.
(159) A further embodiment of the inventive method is, therefore, a data carrier (or a non-transitory storage medium such as 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.
(160) A further embodiment of the invention 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.
(161) 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.
(162) A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
(163) 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.
(164) 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 may be performed by any hardware apparatus.
(165) While this invention has been described in terms of several embodiments, there are alterations, permutations, and equivalents which will be apparent to others skilled in the art and 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.
REFERENCES
(166) [1] International Organization for Standardization, ISO/IEC 14496-3, “Information Technology—Coding of audio-visual objects—Part 3: Audio,” Geneva, Switzerland, August 2009. [2] Internet Engineering Task Force (IETF), RFC 6716, “Definition of the Opus Audio Codec,” September 2012. [3] C. R. Helmrich, G. Markovic and B. Edler, “Improved Low-Delay MDCT-Based Coding of Both Stationary and Transient Audio Signals,” in Proceedings of the IEEE 2014 Int. Conference on Acoustics, Speech and Signal Processing (ICASSP), 2014 or PCT/EP2014/053287.