A FAST FREQUENCY TRANSFORMATION TECHIQUE FOR TRANSFORM AUDIO CODERS

Abstract: A method for coding digital audio data in which coded Fast Modified Discrete Cosine Transform (FMDCT) coefficients are computed utilising a Fast Fourier Transform (FFT) method. The described method allows a significant reduction in computations as compared to an ordinary DCT coding procedure. Also, pairs of audio channels can be combined to use a single FFT computation, where the selected transform length for the paired channels is the same. In such cases where pairing of identical transform length channels is not possible, a long transform length channel is combined with a short transform length channel and converted in two short transforms. A windowing function is also combined with a pre-processing stage to the transformation, further decreasing computational requireements.

Description: A FAST FREQUENCY TRANSFORMAΗON TECHNIQUE FOR TRANSFORM AUDIO CODERS Technical Field This invention is applicable in the field of multi-channel audio coders which use modified discrete cosine transform as a step in the compression of audio signals. Background Art In order to more efficiently broadcast or record audio signals, the amount of information required to represent the audio signals may be reduced. In the case of digital audio signals, the amount of digital information needed to accurately reproduce the original pulse code modulation (PCM) samples may be reduced by applying a digital compression algorithm, resulting in a digitally compressed representation of the original signal. The goal of the digital compression algorithm is to produce a digital representation of an audio signal which, when decoded and reproduced, sounds the same as the original signal, while using a minimum of digital information for the compressed or encoded representation. Recent advances in audio coding technology have led to high compression ratios while keeping audible degradation in the compressed signal to a minimum. These coders are intended for a variety of applications, including 5.1 channel film soundtracks, HDTV, laser discs and multimedia. Description of one applicable method can be found in the Advanced Television Systems Committee (ATSC) Standard document entitled "Digital Audio Compression (AC-3) Standard", Document A/52, 20 December, 1995. In the basic approach, at the encoder the time domain audio signal is first converted to the frequency domain using a bank of filters. The frequency domain coefficients, thus generated, are converted to fixed point representation. In fixed point syntax, each coefficient is represented as a mantissa and an exponent. The bulk of the compressed bitstream transmitted to the decoder comprises these exponents and mantissas. - 2 - The exponents are usually transmitted in eir original form. However, each mantissa must be truncated to a fixed or variable number of decimal places. The number of bits to be used for coding each mantissa is obtained from a bit allocation algorithm which may be based on the masking property of the human auditory system. Lower numbers of bits result in higher compression ratios because less space is required to transmit the coefficients. However, this may cause high quantization errors, leading to audible distortion. A good distribution of available bits to each mantissa forms the core of the advanced audio coders. The frequency transformation phase has one of the greatest computation requirements in a transform coder. Therefore, an efficient implementation of this phase can decrease the computation requirement of the system significantly and make real time operation of the encoder more easily attainable. In some encoders such as those specified in the AC-3 standard, the frequency domain transformation of signals is performed by the modified discrete cosine transform (MDCT). If directiy implemented, the MDCT requires OfiV 2 ) additions and multiplications. However it has been found possible to reduce the number of required operations significantly if the MDCT equation is able to be computed in a from that is amenable to the use of the well known Fast Fourier Transform (FFT) method of J.W. Cooley and J.W. Tukey (1960). Moreover, using a single FFT for two channels can result in greater reduction in computational requirements of the system. Summary of the Invention In accordance with the present invention there is provided a method for coding audio data comprising a sequence of digital audio samples, including d e steps of: i) multiplying the input samples with a first trigonometric function factor to generate an intermediate sample sequence; ii) computing a fast Fourier transform of the intermediate sample sequence to generate a Fourier transform coefficient sequence; - 3 - iii) for each transform coefficient in the sequence, multiplying die real and imaginary components of e transform coefficient by respective second trigonometric function factors, adding the multiplied real and imaginary transform coefficient components to generate an addition stream coefficient, and subtracting me multiplied real and imaginary transform coefficient components to generate a subtraction stream coefficient; iv) multiplying the addition and subtraction stream coefficients with respective third trigonometric function factors; and v) subtracting the corresponding multiplied addition and subtraction stream coefficients to generate audio coded frequency domain coefficients. The present invention also provides a method for coding audio data, including the steps of: combining first and second sequences of digital audio samples from first and second audio channels into a single complex sample sequence; determining a Fourier transform coefficient sequence as defined above; generating first and second transform coefficient sequences by combining and/or differencing first and second selected transform coefficients from said Fourier transform coefficient sequence; and for each of me first and second transform coefficient sequences, generating audio coded frequency domain coefficients as defined above, so as to generate respective sequences of said audio coded frequency domain coefficients for the first and second audio channels. The present invention also provides a method for coding audio data including d e steps of: obtaining at least one input sequence of digital audio samples; pre-processing die input sequence samples including applying a pre-multiplication factor to obtain modified input sequence samples; transforming e modified input sequence samples into a transform coefficient sequence utilising a fast Fourier transform; and post-processing the sequence of transform coefficients including applying first post- - 4 - multiplication factors to the real and imaginary coefficient components, differencing and combining die post-multiplied real and imaginary components, applying second post- multiplication factors to die difference and combination results, and differencing to obtain a sequence of modified discrete cosine transform coefficients representing said input sequence of digital audio samples. The present invention also provides a method for coding audio data including die steps of: obtaining first and second input sequences of digital audio samples corresponding to respective first and second audio channels; combining me first and second input sequences of digital audio samples into a single complex input sample sequence; pre-processing the complex input sequence samples including applying a pre- multiplication factor to obtain modified complex input sequence samples; transforming die modified complex input sequence samples into a complex transform coefficient sequence utilising a fast Fourier transform; and post-processing the sequence of complex transform coefficients to obtain first and second sequences of audio coded frequency domain coefficients corresponding to me first and second audio channels including, for each corresponding frequency domain coefficient in d e first and second sequences, selecting first and second complex transform coefficients from said sequence of complex transform coefficients, combining the first complex transform coefficient and die complex conjugate of me second complex transform coefficient for said first channel and differencing die first complex transform coefficient and the complex conjugate of the second complex transform coefficient for said second channel, and applying respective post-multiplication factors to the combination and difference to obtain said audio coded frequency domain coefficients corresponding to the first and second audio channels. The present invention further provides A method for coding audio data including the steps of: obtaining first and second input sequences of digital audio samples x[n], y[n] corresponding to respective first and second audio channels; - 5 - combining the first and second input sequences of digital audio samples into a single complex input sample sequence z[n], where z[n] = x[n] + jy[n]; pre-processing the complex input sequence samples including applying a pre- multiplication factor cos(7m/N) + jsin(πn/N) to obtain modified complex input sequence samples, where N is die number of audio samples in each of die first and second input sequences and n = 0,.... ,(N-l); transforming the modified complex input sequence samples into a complex transform coefficient sequence Z k utilising a fast Fourier transform, wherein k = 0,.... ,(M2-l); and post-processing the sequence of complex transform coefficients to obtain first and second sequences of audio coded frequency domain coefficients corresponding to die first and second audio channels X k , Y k according to: G k = (Z t+ Z;. fc .,)/2 A=0.JV72-1 G' k = (Z k -Z _ k 7/2j *=0.JV72-1 X k = cosγ * (g k Cθs(π(k+\l2)IN)-g k m(π(k+V2)IN) - sinγ * (g kιr sm(π(k+l/2)/N)+g kι cos(π(k+V2)/N) Y k = cosγ * ^cos^^+l^yΛ -^si^π^+l^VΛ - sinγ * (g ; ijr sm(π(£+ l/2)/N) +g^,cos(Tt(A:+l/2)/JV) where G k is a transform coefficient sequence for the first channel; G' k is a transform coefficient sequence for the second channel; g Kr and g u are the real and imaginary transform coefficient components of G k ; g' k r and g' k ! are the real and imaginary transform coefficient components of G' k ; 2 N _ k _, is the complex conjugate of Z N.k. ,; and y(k) = π(2k+ 1)/4. The modified discrete cosine transform equation can be expressed as - 6 - X k = Σ *M * cos(2π*(2«+l)*(2£+l)/4N + π*(2/fc+l)/4) Jfc=0...( 2-l) n=0 where xfnj is the input sequence for a channel and N is die transform length. Instead of evaluating X k in die form given above it could be computed as X k = cosy *(g kr cos(π(k+l/2 N)-g kι sm(π(k+\/2)/N)) -smy *(g kr sin(π(k+l/2)/N)+g kι cos(π(k+V2)/N)) g kr ,g kl e 3t(set of real numbers) n=N-\ where G k - g kr + jg k y ∑ (χ[n}e jπnlN )*e j2π " m . The symbol j represents the n=0 imaginary number <f . The expression ∑ (χ[n]e J7tnW )*e j2l "' m is obtained from die well known FFT metiiod, by first using transformation x'[n] =x[n] * e iπn Ν and dien n=jV-l computing the FFT G k = ∑ x f [n]*e j2mkaf . For a two channel approach, a complex variable z[n] = x[n]*e' m N + jy[n]*e jm/N is defined, where x[n] and y[n] are sample sequence for the two channels and e } , N represents die pre-multiplication factor. Using FFT approach, d e frequency coefficient Z k for the variable z[ ] is computed. From Z k the value G k = (Z k + Z * ^. ti )/2 and G' k =(Z k - 77 N . k .^/2), required to compute the final MDCT for each channel, respectively, is calculated. If either or both the channels require short length transformers, two short transforms are taken using the above approach. If neitiier need short transform, a single long transform is used. As an additional step in reducing computation, the windowing function can be combined with the pre-processing stage. - 7 - Brief Description of die Drawings The invention is described in detail hereinafter, by way of example only, with reference to preferred embodiments diereof and witii aid of d e accompanying drawings, wherein: Figure 1 is a diagrammatic representation of a stream of audio data and die substructure arrangement thereof; Figure 2 is a functional block diagram of a digital audio encoder; Figure 3 is a functional block diagram of a system for encoding a single audio channel; and Figure 4 is a functional block diagram of a system for encoding a pair of audio channels. Detailed Description of die Preferred Embodiments The above mentioned Advanced Television Systems Committee (ATSC) Standard document entitled "Digital Audio Compression (AC-3) Standard" (Document A/52, 20 December, 1995) describes med ods for encoding and decoding audio signals, and is hereby expressly incorporated herein by reference. In general, the input to an audio coder comprises a stream of digitised samples of the time domain analog signal. For a multi-channel encoder the stream consists of interleaved samples for each channel. The input stream is sectioned into blocks, each block containing N consecutive samples of each channel (see Fig. 1). Thus within a block die N samples of a channel form a sequence {x[0], x[l], x[2], ... , x[N-l]}. The time domain samples are next converted to die frequency domain using an analysis filter bank (see Fig. 2). The frequency domain coefficients, thus generated, form a coefficient set which can be identified as (X 0 , X { , X 2 , ..., X N/2Λ ). Since die signal is real only the first Nil frequency components are considered. Here X 0 is the lowest frequency (DC) component while X N/2 _, is the highest frequency component of the signal. - 8 - Audio compression essentially entails finding how much of the information in the set (X 0 , X_, X 2 , .... X N/2 ._) is necessary to reproduce the original analog signal at the decoder with minimal audible distortion. The coefficient set is normally converted into floating point format, where each coefficient is represented by an exponent and mantissa. The exponent set is usually transmitted in its original form. However, the mantissa is truncated to a fixed or variable number of decimal places. The value of number of bits for coding a mantissa is usually obtained from a bit allocation algorithm which for advanced psychoacoustic coders may be based on the masking property of the human auditory system. A low number of bits results in high compression ratio because less space is required to transmit the coefficients. However this causes very high quantization error leading to audible distortion. A good distribution of available bits to each mantissa forms the core of the most advanced encoders. In some encoders such as die AC-3, d e frequency domain transformation of signals is performed by die (MDCT) modified discrete cosine transform (Eq. 1). n=Λ x k = Σ X W * cos(2π*(2n+l)*(2 +l)/4N + π*(2 +l)/4) Jfc=0...(M2-l) Eq. 1 If directly implemented in die form given above, die MDCT requires OζN 2 ) additions and multiplications. Single Channel FFT It is possible to reduce the number of required operations significantly if one is able to evaluate Eq. 1 using the well known Fast Fourier Transform method of J.W. Cooley and J.W. Tukey (1960). The general Discrete Fourier Transform (DFT) is given below (Eq. 2). It requires OiN 2 ) complex additions and multiplications. By using the Fast Fourier Transform method the DFT in Eq. 2 can be computed with 0(N oglN) operations only. n=N-l F k = Σ (x[n] *e 2 * J " m ) k=0. -l Eq. 2 Here j is the symbol for imaginary number, i.e. j = 7-1. Although it may not be immediately apparent how Eq. 1 can be transformed to Eq. 2, a careful analysis shows tiiat this is indeed possible. To simplify Eq. 1, two functions can be defined a(n,k) = 2π(2n+ l)(2jfc+ l)/4N ' Eq. 3 (k) = π(2k+ 1)/4 Eq. 4 Then, using tiiese functions, Eq. 1 can be rewritten as n=ΛM x k = ∑ x[n] *∞s(a(n,k)+y(k)) Eq. 5 n=tf-l = ∑ x[n] *(cos (n,k)cosy(k)-sm (n,k)siny(k)) Eq. 6 «=o In Eq. 6 the trigonometric equality, cos(α-f-b) = cosα cosb-sinα sinb is used for simplification. Furthermore, since the function γ(k) is not dependant on variable n, it can be brought outside the summation expression to give X k = cosγ(A) ∑ x[n] *cos (n,k) - sinγ(λ) ∑ x[ ] *sina(n,k) = ^cosγ^) - r 2 sinγ(Aτ) Eq η n=N- \ n=N-l where T χ = ∑∑ xx[[nn]] **ccoossaa((nn,,kk)) aanndd TT 22 == ∑∑ x[n] *sina(n,k) n=0 n=0 The two terms, T, and T 2 , can now be evaluated separately. Using Euler's identity e' θ = cosθ + ' sinθ, we can express: cosα(Λ,£)=(e iα(n ' k) + e- j " <,α) )/2 and sinα(n,jt) =(e iα( " Λ) -e "jα( "- lc) )/2/ " . - 10- Therefore we can rewrite the term T, as n=N-\ n=V-l T, = ∑ x[«]*(e α +e- jα )/2 = l/2( ∑ x[n]*e a + ∑ x[n\*e^ a ) n Σ=0 n=0 π=0 Eq.8 1/2 ( j _4 2 ) n=/V-l n=V-l where A, = ∑ x[n]*e ja and A 2 = ∑ x[ri\*e 'ja n=0 n=Q Similarly n=N-l Λ=ΛM Λ=Λ T 2 = Σ ]*(e α -e ";α )/2 = 1/2/(5 x W*^ α - Σ M*e "α ) Eq.9 = \l2j{A, - A 2 ) The term A, can thus be evaluated from Eq.8 and Eq.9 A χ = ∑ x[n]*e ja n=.V-l = ^ χ r /ϊ j !)t gΛ2π(2n*l)(^l)4Jv) n=0 _ e jn(k+V2yN * ^ (χ[ n ] * e J*"M\ * e j2vnUN n =o Eq.10 If a complex variable is defined as: x , [n]= n]*e iπn/N Eq.11 then Eq.10 is simply: n=N-\ A _ e k *mw^ x / [n]*e j2lt " m = e^ i *G k Eq . l2 n-W-l where G A = ∑ x '[«] *<?-' ΛM,fcW n=0 - 11 - The complex term G k = g ,r +g k-i , where g k r and g k _, e 3t (set of real numbers) in Eq.12 is essentially die same as F k in Eq.2. Therefore the FFT approach can be used to evaluate G k . This brings down computation from OiN 2 ) to O(NlogN). Similarly, the second term A 2 in Eq.8 and Eq.9 can be evaluated n=ιV-l n=W-l A 2 = ∑ x[n]*e 'M "' k) = e -M V " i ny N * (x[n]*e 'jππ,N )*e 'j2πnk/N n- Q n-0 = e-^'W * G k ' Eq.13 n=/V-l where G k = ∑ (χ[n]*e- J ™ /N )*e- j2πnm n=0 Note that G k * is actually the complex conjugate of G k which was obtained by Eq.12. That is, if G k = g k,r +g k, i» where g k r and g ki e Si as defined earlier, then G k * = g k-r - yg ki . Therefore G k * in Eq.13 does not need to be computed again, and the result from Eq.12 can be re-used. That is, only one FFT needs to be computed for the evaluation of T. The result of Eq.8 to Eq.13 is thus T = \l2( ^ υWN G k +e-^ k+m y N G k ) Eq.14 Next, the term T 2 can be analysed T 2 = ∑ x[nW-e- i2j = \l2j{A -A 2 ) = \l2j(e^ k I2 N G k -e -^^w Q^ £q 15 Finally, after simplifications of Eq.7, 14 and 15 12 X k = cosγ(/fc) \l2(e^ N G k ^ -^ ),N G k ' ) - sinγ(/t) \l2j(e^ mW G k -e - J ** W G k ') = cosγ * (g ir cos(π fc+l/2)/Λ -g i in(π(Λ:+l/2yΛ') - sinγ * (g^ r sin(π(A:+l/2yΛ +^ f ,cos(π(ιt+l/2yΛ = cosγ * T, - sinγ * T 2 Eq 16 The term G k = g kr + jg i is computed in O(NogN) operation by use of FFT algorithms. The additional operation outlined in Eq. 16 to extract the final X k is only of order 9(Λ - Therefore the MDCT can now be computed in 0(Mog 2 N) time. The operations required to obtain die MDCT are illustrated in Fig. 3. Combining Two Channels into Single FFT Suppose die multi-channel encoder is required to process m audio channels. Instead of computing an FFT for each channel as described in die previous section, it is possible to further reduce the computational requirement of the coder by combining two channels and using a single FFT only. In effect, instead of m FFTs only m/2 FFTS need to be computed. If the input sequence are real numbers then it is known that DFT for any two channels can be computed with only one FFT block by considering the input as a complex number. The real part is formed from the sequence for any one channel and the imaginary part is from data of another channel. After the Fourier Transform is computed for the resulting complex variable, the resulting transform for each channel can be easily retrieved. However, in the present case the input data to the FFT block is actually a complex number (formed by multiplying the real data by complex variable e ' m/N ). In this case, there is no straightforward way of retrieving the frequency transform after having combined two channels. However, using some processing after the FFT one can still compute the DFT of two channel using a single FFT block. -13- Let {x[0],x[l],x[2],...,x[N-l]} be N input samples of the first channel and {y[0].)'[l]') ; [2].---}'[N-l]} be the samples for the second channel. As described above, the n-ΛM frequency coefficients G k = ∑ x[ri\e>™' N * e j2κnk,N (Eq. 12 and 13) must be obtained for the first channel; and similarly, for the second channel n-N-\ G = ∑ y[n]e J ™ IN * e j2π " m Defming complex variable z[n] = x[/z]*e jπnN + ; [n]*e jπnN Eq. 17 and computing its DFT using the FFT method, yields n=W-l Z k = Σ 7*e 2 ™ m k=0..N-\ = ∑ ( ] + jy[n])e jππ/N *e J2πnm n=0 = ∑ (Φl + jy[n])*e j2πn(k /2yN n=0 Eq.18 Now substituting N-k for k in the above expression, Z N - k = Σ (Φ] + jy[n])*e J2 *" N - k*U2VN k=0..7l-l - ∑ (Φ] + jy[n])*e j2π " (~k*ιnyM *e- j2 ™ 17=0 n=W-l = Σ (Φl + jy[n])*e j2πn('k nyN «=o Eq.19 Since <- 2πa = l,nel (the set of integers), the term 2na vanishes in the above expression. Taking the complex conjugate of Z N _ k : - k - "∑ (x[ri\-jy[ή\)*e- Wk ^ N n=0 n=W-l = Σ (x[n]-jy[n])*e j2 *"V < - m W n--o Eq.20 - 14 - Using Eq. 18 and 20, separate expressions for G k and G' k are required. In a simple case die conjugates in Eq. 18 and 20 should add and subtract to give die required expressions. However in this instance tiiat is not the case. But, substituting N-k by N-k-] in Eq. 18, the following is obtained Zs- k -x = Σ (x[n]-jy[n])*e J2 ™^ V2 /N Eq. 21 π=0 Now the term e i2πn<lc+1/2) N is common in both Eq. 17 and 19, and it is possible to isolate. ZyZύ- k -x = "∑ x[ri\ *e^"^ myN + j" ~ ∑ y[n]*E J~2« "^ υ2W π=0 rt-0 + ("∑ x[n] *e j2πn ^ l/2yN - j ' ∑ y[ n ] *E j2πn(k*υ2W ) n=0 n=0 n=N- l = 2 ∑ {x[ri\e i ™' N )*e j2πnm n=0 = 2G k Similarly, ZyZ^- . = "∑ χ[ri * e W *m N + j ∑ y[ri *E^ n ^ m N rt=0 π=0 π=W-l n=ΛT-l - ( ∑ χ[n] *e i2πnik nyN - j ∑ y[n]*E j2 *" (k+U2)/N ) n=0 n=0 π=Λ = 2 ∑ (y[n]e jπn/N )*e j2l "' m n=0 2jG That is G k = (Z k +Z^ k _ )l2 /t=0.JV/2-l Eq. 22 and G' k = ( k -Zύ- k __)l2j k=0..N/2-l Eq. 23 - 15 - From the expression from Eq. 22 and 23 into Eq. 16, the MDCT for each channel is obtained. The overall process is illustrated in Fig. 4. Transform Lengtii Adjustment Technique The frequency transform lengtii N is decided by die encoder based on temporal and spectral resolution requirements. The input signal is usually analysed witii a high frequency bandpass filter to detect die presence of transients. This information is used to adjust die block lengtii, restricting quantization noise associated witii die transient within a small temporal region about die transient, avoiding temporal masking. Thus, if transient is detected in a channel, two short transform of length N/2 each are taken. In the absence of transient, a single long transform of length N is used, thus providing higher spectral resolution. From the method described in the previous section for computing MDCT for two channels using a single FFT block, it is evident that the transform length for the two paired channels must be the same. Therefore, pairing for the transformation phase much be such that channels with identical transform length are grouped together. It is however possible tiiat not all channels can be paired with such convenience. Assume that die total number of channels are an even number (if not, take a single FFT for one channel and the rest form an even group). Suppose out of die m channels, need long transform and tiierefore m-l require short transform. If / is an even number, then since die total is even, it follows that l-m is also even. In this case, from the / channels that need long transform, 1/2 pairs are formed and for each of the 1/2 pairs a single FFT is computed to estimate the MDCT for the original paired channels. Similarly, the l-m channels are paired to form (l-m)ll pairs and for the (l-m)ll pairs two short FFTs are computed. Now consider the case when 1 / = 2r + 1 is an odd number. Therefore m - 1 = 2s + 1 is - 16 - also an odd number. The 2r channels requiring long transform are paired togedier to form r pairs and dien 2r transforms are computed using r FFTs only. Similarly, for the Is channels s pairs are formed. What remains is one channel requiring long transform and another requiring two short transforms. Both of tiiese channels are paired togedier and two short FFTs are computed to derive the MDCT. The rationale for constraining die long transform to two short ones is as follows. A short transform is required for restricting quantization noise associated with die transient within a small temporal region about the transient, avoiding temporal masking. A long transform gives slight better frequency resolution but die error is not much compared to die case when in die presence of transient a long transform is utilised. Forcing a long transform onto a channel in the presence of transient leads to greater distortion in die final produced music. This conjecture was proven true by experimental studies on benchmark music streams. Combining Windowing with pre-processing Before d e time domain signal x[n] is transformed to die frequency domain, a windowing function is usually applied. Thus, if the sampled signal is p[ή] then die sequence that is applied to die frequency transformation block is x[n] = p[n] * w[n], where w[n] is the windowing function. From die previous sections we noted tiiat before the FFT is computed for a block a pre-processing is performed as given in Eq. 11 (reproduced below for convenience). Thus x'[n] = x[n] * e jm N = (p[n] * w[n]) * e Jm N = ip[n]* w[n])* (cosm/N + j sin τm/N) = p[n] * ((w[n] * cosππ/Λ + yXvv[/z]*sin πrι/Λ)) Eq. 24 From Eq. 24 we note that the windowing function can be combined with the cosine and sine multiplication required in Eq. 11. This brings down the computation even further since the sine and cosine are usually implemented in a real time system as table-lookup. If - 17 - two tables are constructed as defined below rcos[«] = w[n] * cos( τm/N) rs [ή = w[n]* sin( m/N) then Eq. 11 can be rewritten as 'M = (PW * rcos[n]) + j(p[n]* r sin [n]) Eq. 25 Although the invention has been described herein primarily in terms of its mathematical derivation and application, and the procedures required for implementation, it will be readily recognised by those skilled in the art that die procedures described can be implemented by means of any desired computational apparatus. For example, the invention may be embodied in computer software operating on general purpose computing equipment, or may be embodied in purpose built circuitry or contained in microcode or the like in an integrated circuit or set of integrated circuits. The foregoing detailed description of embodiments of die invention has been presented by way of example only, and is not intended to be considered limiting to die invention as defined in die claims appended hereto. -18- Glossary of Equations: MDCT n=N*\ x k = Σ Φl * cos(2π*(2«+l)*(2 +l)/4N + π*(2/fc+l)/4) k=0...(N/2-l) »=0 = cosγ * g k ^os(π(k+\l2)IN)-g k μn(π(k+\l2)IN) - sinγ * ( A . jr sin(π(A:+l/2)/Λ r )+g tι; cos(π(Λ+l/2)/Λ = T l cosy(k) - T 2 siny(k) n=A/-l n=Λ r, = ∑ x[n] *cosa(n,k) T 2 = ∑ x[n] *sina(n,k) n=0 n-Q = 1204, + A 2 ) = \l2j(A x - A 2 ) A l = Σ Φ]* " * A 2 = Σ Φ]*e "yα n=0 Λ=0 _ e jπ(k+V2 N_ ≠ Q _ e -n(2k+myN ^ Q « »=ΛM n=iV-l G * = Σ (x[n]*e ]nnlN )*e^" m G k = ∑ (x[n]*e- jnn/N )*e- j2 ™ m n=0 „=0 T 2 = M2j( ^ k * myN G k -e - **^ G ^ G k = (^ + ^-*-ιV2 k=0..M2-\ G', = (Z fc -Z . 4-1 )/2/- *=O.JV72-l α(#ι,Jfc) = 2π(2rt+l)(2:+l)/4N γ(Λ) = π(2*+l)/4

Claims: - 19 - Claims 1. A method for coding audio data comprising a sequence of digital audio samples, including the steps of: i) multiplying die input samples with a first trigonometric function factor to generate an intermediate sample sequence; ii) computing a fast Fourier transform of the intermediate sample sequence to generate a Fourier transform coefficient sequence; iii) for each transform coefficient in d e sequence, multiplying die real and imaginary components of die transform coefficient by respective second trigonometric function factors, adding the multiplied real and imaginary transform coefficient components to generate an addition stream coefficient, and subtracting the multiplied real and imaginary transform coefficient components to generate a subtraction stream coefficient; iv) multiplying the addition and subtraction stream coefficients with respective tiiird trigonometric function factors; and v) subtracting the corresponding multiplied addition and subtraction stream coefficients to generate audio coded frequency domain coefficients. 2. A metiiod for coding audio data as claimed in claim 1, wherein the audio coded frequency domain coefficients comprise modified discrete cosine transform coefficients. 3. A method for coding audio data as claimed in claim 1 or 2, wherein the first trigonometric function factor for each audio sample is a function of the audio sample sequence position and die number of samples in die sequence. 4. A method for coding audio data as claimed in claim 3, wherein the respective second trigonometric function factors for each transform coefficient in the sequence are respective functions of the transform coefficient sequence position and the number of coefficients in the sequence. - 20 - 5. A method for coding audio data as claimed in claim 4, wherein the respective third trigonometric function factors are respective functions of the transform coefficient sequence position. 6. A method for coding audio data as claimed in claim 5, wherein step i) comprises multiplying the input sequence samples xfnj by the first trigonometric function factor cos(m/N) to generate the intermediate sample sequence, where: xfnj are the input sequence audio samples; N is the number of input sequence audio samples; and n = 0,.... ,N-l. 7. A method for coding audio data as claimed in claim 6, wherein step ii) comprises computing die fast Fourier transform of the intermediate sample sequence so as to generate said transform coefficient sequence G k = g k . r + jg ! , where: G k is the transform coefficient sequence; g r are the real transform coefficient components; g i are the imaginary transform coefficient components; and k = 0,....,(N/2-l). 8. A method for coding audio data as claimed in claim 7, wherein step iii) comprises determining the addition stream coefficients T 2 and subtraction stream coefficients T t according to: T t = g„ r cos(π(k+l/2)/N) - g , sin(π(k+l/2)/N) T 2 = g kr cos(π(k+l/2)/N) + g i sin(π(k+l/2)/N) where T, and T 2 are the subtraction stream and addition stream coefficients, respectively. 9. A method for coding audio data as claimed in claim 8, wherein steps iv) and v) comprise generating die audio coded frequency domain coefficients X k according to: X k = T, cos(π(2k+l)/4) - T 2 sin(π(2k+l)/4) where X k are the audio coded frequency domain coefficients; and cos(π(2k+l)/4) and sin(π(2k+l)/4) are the third trigonometric function factors. - 21 - 10. A method for coding audio data, including the steps of: combining first and second sequences of digital audio samples from first and second audio channels into a single complex sample sequence; determining a Fourier transform coefficient sequence as defined in any preceding claim; generating first and second transform coefficient sequences by combining and/or differencing first and second selected transform coefficients from said Fourier transform coefficient sequence; and for each of the first and second transform coefficient sequences, generating audio coded frequency domain coefficients as defined in any preceding claim, so as to generate respective sequences of said audio coded frequency domain coefficients for die first and second audio channels. 11. A method for coding audio data as claimed in claim 10, wherein the step of generating first and second transform coefficient sequences comprises, for each corresponding coefficient in the first and second transform coefficient sequences, selecting first and second transform coefficients from said Fourier transform coefficient sequence, determining a complex conjugate of said second transform coefficient, combining said first transform coefficient and said complex conjugate for said first transform coefficient sequence and differencing said first transform coefficient and said complex conjugate for said second transform coefficient sequence. 12. A method for coding audio data as claimed in claim 10 or 11, wherein the multiplying step i) comprises multiplying the input sequence samples zfnj by the first trigonometric function factor cosfiτn/N) + jsin(τm/N) to generate the intermediate sample sequence, where: zfnj — x[n] + jy[n] is die complex sample sequence; x[n] is the first sequence of digital audio samples; y[n] is the second sequence of digital audio samples; N is the number of input sequence audio samples in each sequence; n = 0,.... ,N-1; and - 22 - j is the complex constant. 13. A method for coding audio data as claimed in claim 11 or 12, wherein said first and second transform coefficient sequences are generated according to: 5 c k = (z k + r^n G' k = (Z k - Zr ι ^ 1 )/2i where G k is said first transform coefficient sequence; G' k is said second transform coefficient sequence; N is the number of input sequence audio samples; 10 k = 0,.... ,(N/2-l); Z k is said first transform coefficient; 7 N . M is the complex conjugate of said second transform coefficient; and j is the complex constant. 15 14. A method for coding audio data as claimed in any one of claims 10 to 13, including examining said first and second sequences of digital audio samples to determine a short or long transform length, and coding the audio samples using a short or long transform length as determined. 20 15. A method for coding audio data comprising sequences of digital audio samples from a plurality of audio channels, comprising determining a transform length for each of the channels, pairing the channels according to tiieir determined transform length, and coding the audio samples of first and second channels in each pair, as defined in any one of claims 10 to 13, according to die determined transform length. 25 16. A method for coding audio data as claimed in any preceding claim, including applying a windowing function in combination witii said multiplying step i). 17. A method for coding audio data including the steps of: 30 obtaining at least one input sequence of digital audio samples; pre-processing the input sequence samples including applying a pre-multiplication - 23 - factor to obtain modified input sequence samples; transforming die modified input sequence samples into a transform coefficient sequence utilising a fast Fourier transform- and post-processing the sequence of transform coefficients including applying first post- multiplication factors to the real and imaginary coefficient components, differencing and combining die post-multiplied real and imaginary components, applying second post- multiplication factors to die difference and combination results, and differencing to obtain a sequence of modified discrete cosine transform coefficients representing said input sequence of digital audio samples. 18. A method as claimed in claim 17, wherein the pre-multiplication factor, and first and second post-multiplication factors are trigonometric function factors. 19. A method as claimed in claim 18, wherein the pre-multiplication factor applied to each digital audio sample in die input sequence is a trigonometric function of die audio sample sequence position and die number of samples in the sequence. 20. A method as claimed in claim 18, wherein the first post-multiplication factors for each transform coefficient in the sequence are trigonometric functions of d e transform coefficient sequence position and die number of coefficients in the sequence. 21. A method as claimed in claim 18, wherein the second post-multiplication factor for each difference or combination result is trigonometric functions of the transform coefficient sequence position of die coefficients used in the difference or combination. 22. A method as claimed in any one of claims 17 to 21, wherein the pre-processing operations are performed on each sample in die input sequence individually. 23. A metiiod as claimed in any one of claims 17 to 22, wherein the post-processing operations are performed on each transform coefficient in the sequence individually. - 24 - 24. A method for coding audio data including die steps of: obtaining first and second input sequences of digital audio samples corresponding to respective first and second audio channels; combining the first and second input sequences of digital audio samples into a single complex input sample sequence; pre-processing me complex input sequence samples including applying a pre- multiplication factor to obtain modified complex input sequence samples; transforming the modified complex input sequence samples into a complex transform coefficient sequence utilising a fast Fourier transform; and post-processing die sequence of complex transform coefficients to obtain first and second sequences of audio coded frequency domain coefficients corresponding to the first and second audio channels including, for each corresponding frequency domain coefficient in the first and second sequences, selecting first and second complex transform coefficients from said sequence of complex transform coefficients, combining the first complex transform coefficient and the complex conjugate of the second complex transform coefficient for said first channel and differencing the first complex transform coefficient and the complex conjugate of the second complex transform coefficient for said second channel, and applying respective post-multiplication factors to the combination and difference to obtain said audio coded frequency domain coefficients corresponding to the first and second audio channels. 25. A method as claimed in claim 24, wherein the pre-multiplication factor for each sample in the complex input sample sequence comprises a complex trigonometric function of the complex input sample sequence position and the number of samples in the sequence. 26. A method as claimed in claim 24 or 25, wherein the post-processing for each of the first and second channels includes applying first post-multiplication factors to the real and imaginary coefficient components, differencing and combining the post-multiplied real and imaginary components, applying second post-multiplication factors to the difference and combination results, and differencing to obtain a sequence of modified discrete cosine transform coefficients representing said input sequence of digital audio samples. - 25 - 27. A metiiod for coding audio data including the steps of: obtaining first and second input sequences of digital audio samples x[n], y[n] corresponding to respective first and second audio channels; combining the first and second input sequences of digital audio samples into a single complex input sample sequence z[n], where z[ = x[ ] + jy[n]; pre-processing the complex input sequence samples including applying a pre- multiplication factor cos(τm/N) + jsin(τm/N) to obtain modified complex input sequence samples, where N is the number of audio samples in each of the first and second input sequences and n = 0,....,(N-1); transforming the modified complex input sequence samples into a complex transform coefficient sequence Z k utilising a fast Fourier transform, wherein k = 0,....,(N/2-l); and post-processing the sequence of complex transform coefficients to obtain first and second sequences of audio coded frequency domain coefficients corresponding to die first and second audio channels X k , Y k according to: G k = (Z fe+ z . fc . j )/2 *=0.JV72-1 G = (Z k -Z^_ k . )l2j *=0..N72-1 X k = cosγ * (g-^cos^^+l^yTV -g-^sin^^+l^yΛ^ - sinγ * ( fcjr sin(π(Ar+l/2yN)+^ / cos(π(A:+l/2yΛ Y k = cosγ * C? , fc)r cos(π(t+l/2yΛ -g' A) ,.sin(π(Λ:+l/2)/Λ - sinγ * (g' r sm(π(k+V2)/N)+g' kti cos(π(k+V2)/N) where G k is a transform coefficient sequence for the first channel; G is a transform coefficient sequence for the second channel; g r and g k i are the real and imaginary transform coefficient components of G k ; g' Kr and g' κι are the real and imaginary transform coefficient components of G' k ; Z *. / is the complex conjugate of Z N . k .,; and y(k) = π(2£+ l)/4.

Inventors: ABSAR MOHAMMED JAVED, ALVAREZ-TINOCO ANTONIO MARIO, GEORGE SAPNA, ABSAR, MOHAMMED, JAVED, ALVAREZ-TINOCO, ANTONIO, MARIO, GEORGE, SAPNA
Applicants: ABSAR MOHAMMED JAVED, ALVAREZ TINOCO ANTONIO MARIO, GEORGE SAPNA, SGS THOMSON MICROELECTRONICS A, ABSAR, MOHAMMED, JAVED, ALVAREZ-TINOCO, ANTONIO, MARIO, GEORGE, SAPNA, SGS-THOMSON MICROELECTRONICS ASIA PACIFIC (PTE) LTD
Application year: 1998
Main classification: H04H1
IPC codes: H04H5, H04H20