Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
A FAST FREQUENCY TRANSFORMATION TECHIQUE FOR TRANSFORM AUDIO CODERS
Document Type and Number:
WIPO Patent Application WO/1999/043110
Kind Code:
A1
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.

Inventors:
ABSAR MOHAMMED JAVED (SG)
GEORGE SAPNA (SG)
ALVAREZ-TINOCO ANTONIO MARIO (SG)
Application Number:
PCT/SG1998/000014
Publication Date:
August 26, 1999
Filing Date:
February 21, 1998
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SGS THOMSON MICROELECTRONICS A (SG)
ABSAR MOHAMMED JAVED (SG)
GEORGE SAPNA (SG)
ALVAREZ TINOCO ANTONIO MARIO (SG)
International Classes:
H04H20/89; H04H5/00; (IPC1-7): H04H1/00
Foreign References:
EP0506111A21992-09-30
EP0590790A21994-04-06
US5181183A1993-01-19
EP0564089A11993-10-06
US5592584A1997-01-07
EP0718746A11996-06-26
Attorney, Agent or Firm:
DONALDSON & BURKINSHAW (Singapore 7, SG)
Download PDF:
Claims:
Claims
1. A method for coding audio data comprising a sequence of digital audio samples, including the 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; iii) for each transform coefficient in the sequence, multiplying the real and imaginary components of the 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 third trigonometric function factors; and v) subtracting the corresponding multiplied addition and subtraction stream coefficients to generate audio coded frequency domain coefficients.
2. A method 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 the number of samples in the 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.
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 x [nJ by the first trigonometric function factor cos (n/N) to generate the intermediate sample sequence, where: x [nS are the input sequence audio samples; N is the number of input sequence audio samples; and n = 0,...., N1.
7. A method for coding audio data as claimed in claim 6, wherein step ii) comprises computing the fast Fourier transform of the intermediate sample sequence so as to generate said transform coefficient sequence Gk = gkr + jgk,i, where: Gk is the transform coefficient sequence; gk, are the real transform coefficient components; , i are the imaginary transform coefficient components; and k = 0,...., (Nl21).
8. A method for coding audio data as claimed in claim 7, wherein step iii) comprises determining the addition stream coefficients T2 and subtraction stream coefficients T, according to: T1 = 8k,isin(#(k+1/2)/N)cos(#(k+1/2)/N) T2 = +8k,rsin(#(K+1/2)/N)cos(#(k+1/2)/N) where T, and T2 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 the audio coded frequency domain coefficients Xk according to: Xk = T, cos(#(2k+1)/4) T2 sin(#(2k+1)/4) where Xk are the audio coded frequency domain coefficients; and cos (#(2k+1)/4) and sin(#(2k+1)/4) are the third trigonometric function factors.
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 the 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 zfn] by the first trigonometric function factor cos (lTn/N) + jsin (nnlN) to generate the intermediate sample sequence, where: zfnj = x [n] + jy [n] is the 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,...., N1; and 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: Gk= (Zk + Z Nk1)/2 (ZkGk'= ZNk1*)/2j where Gk is said first transform coefficient sequence; G'k is said second transform coefficient sequence; N is the number of input sequence audio samples; k = 0,...., (N/21);<BR> Zk is said first transform coefficient;<BR> Z Nk l is the complex conjugate of said second transform coefficient; and j is the complex constant.
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.
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 their 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 the determined transform length.
16. A method for coding audio data as claimed in any preceding claim, including applying a windowing function in combination with said multiplying step i).
17. A method for coding audio data including the steps of: obtaining at least one input sequence of digital audio samples; preprocessing the input sequence samples including applying a premultiplication factor to obtain modified input sequence samples; transforming the modified input sequence samples into a transform coefficient sequence utilising a fast Fourier transform, and postprocessing the sequence of transform coefficients including applying first post multiplication factors to the real and imaginary coefficient components, differencing and combining the postmultiplied 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.
18. A method as claimed in claim 17, wherein the premultiplication factor, and first and second postmultiplication factors are trigonometric function factors.
19. A method as claimed in claim 18, wherein the premultiplication factor applied to each digital audio sample in the input sequence is a trigonometric function of the audio sample sequence position and the number of samples in the sequence.
20. A method as claimed in claim 18, wherein the first postmultiplication factors for each transform coefficient in the sequence are trigonometric functions of the transform coefficient sequence position and the number of coefficients in the sequence.
21. A method as claimed in claim 18, wherein the second postmultiplication factor for each difference or combination result is trigonometric functions of the transform coefficient sequence position of the coefficients used in the difference or combination.
22. A method as claimed in any one of claims 17 to 21, wherein the preprocessing operations are performed on each sample in the input sequence individually.
23. A method as claimed in any one of claims 17 to 22, wherein the postprocessing operations are performed on each transform coefficient in the sequence individually.
24. A method for coding audio data including the 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; preprocessing the 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 postprocessing the 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 postmultiplication 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 premultiplication 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 postprocessing for each of the first and second channels includes applying first postmultiplication factors to the real and imaginary coefficient components, differencing and combining the postmultiplied real and imaginary components, applying second postmultiplication 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.
27. 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; 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]; preprocessing the complex input sequence samples including applying a pre multiplication factor cos (n/N) + jsin (rn/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,...., (N1); transforming the modified complex input sequence samples into a complex transform coefficient sequence Z, utilising a fast Fourier transform, wherein k = 0,...., (N/21); and postprocessing the 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 Xj, Yt according to: Gk = k=0...N/21 Gk' = k=0...N/21 Xk*(gk,rcos(#(k+1/2)/N)gk,isin(#k+1/2)/N)cosγ sinγ (gk,rsin(#(k+1/2)/N)+gk,icos(#(k+1/2)/N) Yk*(gk,r'cos(#(k+1/2)/N)gk,i'sin(#(k+1/2)/N)cosγ *(gk,r1sin(#(k+1/2)/N)+gk,i'cos(#(k+1/2)/N)sinγ where Gk is a transform coefficient sequence for the first channel; G'k is a transform coefficient sequence for the second channel; gk,r and gk,i are the real and imaginary transform coefficient components of Gk; g',,, and g'Ai are the real and imaginary transform coefficient components of G'k; ZNk1* is the complex conjugate of ZNk1 ; and y (k) = s (2k+1)/4.
Description:
A FAST FREQUENCY TRANSFORMATION 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.

The exponents are usually transmitted in their 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 directly implemented, the MDCT requires o (N2) 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 the 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;

iii) for each transform coefficient in the sequence, multiplying the real and imaginary components of the 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 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 the 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 the steps of: obtaining at least one input sequence of digital audio samples; pre-processing the input sequence samples including applying a pre-multiplication factor to obtain modified input sequence samples; transforming the 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 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.

The present invention also provides a method for coding audio data including the 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 the 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 the 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.

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;

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- <BR> <BR> <BR> multiplication factor cos (nnllVj + jsin (znn/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 Zk utilising a fast Fourier transform, wherein k = 0,...., (N/2-1); and post-processing the 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 Xk, Yk according to: Gk = k=0...N/2-1 Gk' = k=0...N/2-1 <BR> <BR> <BR> <BR> <BR> <BR> cosγ*(gk,rcos(#*(k+1/2)/N)-gk,isin(#(k+1/2)/N)Xk= <BR> <BR> <BR> <BR> *(gk,rsin#(k+1/2)/N)+gk,icos(#(k+1/2)/N)-sinγ Yk*(gk,r'cos(#(k+1/2)/N)-gk,i'sin(#(k+1/2)/N)cosγ --sinγ (gk,r'sin(#(k+1/2)/N)+gk,i'cos(#(k+1/2)/N) where Gk is a transform coefficient sequence for the first channel; G'k is a transform coefficient sequence for the second channel; , i are the real and imaginary transform coefficient components of Gk; gk,r' and gk,i' are the real and imaginary transform coefficient components of G'k; Z*N-k-l is the complex conjugate of ZNk-,; and y (k) = 7r (2k+ 1)/4.

The modified discrete cosine transform equation can be expressed as

where jc/n/is the input sequence for a channel and N is the transform length.

Instead of evaluating X, in the form given above it could be computed as Xk = cosγ*(gk,rcos(#(k+1/2)/N)-gk,isin(#(k+1/2)/N) -sinγ*(gk,rsin(#(k+1/2)/N)+gk,icos(#(k+1/2)/N))<BR> <BR> #(setofrealnumbers)gk,r,8k,i# The symbol j represents the imaginary number The expression is obtained from the well known FFT method, by first using transformation x' [n] =x [n] * ej#n/N and then computing the FFT For a two channel approach, a complex variable z [n] = x[n]*ej#n/N + jy[n]*3j#n/N is defined, where x [n] and y are sample sequence for the two channels and e j'IN represents the pre-multiplication factor. Using FFT approach, the frequency coefficient Zk for the variable z [n] is computed. From Zt the value Gk = (Zk + Z Nt) l2 and G k = (Zk- Z*N-k-1)/2j, 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 neither 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.

Brief Description of the Drawings The invention is described in detail hereinafter, by way of example only, with reference to preferred embodiments thereof and with aid of the accompanying drawings, wherein: Figure 1 is a diagrammatic representation of a stream of audio data and the 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 the 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 methods 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 the N samples of a channel form a sequence {x [0], x [1], x [2],..., x [N-l]'J.

The time domain samples are next converted to the 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 (Xo, X"X,..., X N2-I) the signal is real only the first N12 frequency components are considered. Here X is the lowest frequency (DC) component while XN, is the highest frequency component of the signal.

Audio compression essentially entails finding how much of the information in the set (Xo, Xl, X2,., XN/2 X) 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 the AC-3, the frequency domain transformation of signals is performed by the (MDCT) modified discrete cosine transform (Eq. 1). If directly implemented in the form given above, the MDCT requires O (lu2) 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 O (N-') complex additions and multiplications. By using the Fast Fourier Transform method the DFT in Eq. 2 can be computed with O (Mog2N) operations only.

Here j is the symbol for imaginary number, i. e. j = V-1.

Although it may not be immediately apparent how Eq. 1 can be transformed to Eq. 2, a careful analysis shows that this is indeed possible. To simplify Eq. 1, two functions can be defined 2#(2n+1)(2k+1)/4NEq.3α(n,k)= y (k) = s (2k+1) 14 Eq. 4 Then, using these functions, Eq. 1 can be rewritten as In Eq. 6 the trigonometric equality, cos (a+b) = cosa cosb-sina sinb is used for simplification. Furthermore, since the function y (k) is not dependant on variable n, it can be brought outside the summation expression to give The two terms, T, and T2, can now be evaluated separately. Using Euler's identity ei# = cos6 +jsin6, we can express: e-jα(n,k))/2cosα(n,k)=(ejα(n,k)+ and sina (n, k) = (ejα(n,k)-e-jα(n,k))/2j.

Therefore we can rewrite the term T, as The term A, can thus be evaluated from Eq. 8 and Eq. 9 If a complex variable is defined as: 11x'[n]=x[n]*ej#n/NEq. then Eq. 10 is simply:

The complex term Gk = gk,r + gk,i, where gk,r and gk,i # # (set of real numbers) in Eq. 12 is essentially the same as Fk in Eq. 2. Therefore the FFT approach can be used to evaluate Gk. This brings down computation from O (N) to O (MogN). Similarly, the second term A2 in Eq. 8 and Eq. 9 can be evaluated Note that Gk is actually the complex conjugate of Gk which was obtained by Eq. 12. That is, if Gk = gk,r + gk,i, where gk,r and gk,i # # as defined earlier, then Gk* = gk. r-7gk. i- Therefore Gk* 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 Tl.

The result of Eq. 8 to Eq. 13 is thus Next, the term T2 can be analysed Finally, after simplifications of Eq. 7,14 and 15

XkXk= Gk+e-j#(k+1/2)/NGk*)1/2(3j#(k+1/2)/N <BR> <BR> <BR> 1/2j(ej#(k+1/2)/NGk-e-j#(k+1/2)/NGk*)-sinγ(k) <BR> <BR> <BR> <BR> <BR> *(gk,rcos(#(k+1/2)/N)-gk,isin(#(k+1/2)/N)=cosγ <BR> <BR> <BR> <BR> <BR> *(gk,rsin(#(k+1/2)/N)+gk,icos(#(k+1/2)/N)-sinγ = cosy * Tl-siny * T2 Eq. 16 The term Gk = gkr + igai is computed in O (MogN) operation by use of FFT algorithms.

The additional operation outlined in Eq. 16 to extract the final Xk is only of order O (N).

Therefore the MDCT can now be computed in O (Mog7N) time. The operations required to obtain the MDCT are illustrated in Fig. 3.

Combining Two Channels into Single FFT Suppose the multi-channel encoder is required to process m audio channels. Instead of computing an FFT for each channel as described in the 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 ml2 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 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.

Let {x [0], x [l], x [2],..., x [N-1]} be Ninput samples of the first channel and {y [0], y [1], y [2],... y [N-1]} be the samples for the second channel. As described above, the frequency coefficients (Eq. 12 and 13) must be obtained for the first channel; and similarly, for the second channel Defining complex variable z [n] = x[n]*ej#n/N + jy[n]*ej#n/N Eq. 17 and computing its DFT using the FFT method, yields Now substituting N-k for k in the above expression, Since ei2=n = 1, n # I (the set of integers), the term ej2#n vanishes in the above expression.

Taking the complex conjugate of ZN-k:

Using Eq. 18 and 20, separate expressions for Gk and G'k are required. In a simple case the conjugates in Eq. 18 and 20 should add and subtract to give the required expressions.

However in this instance that is not the case. But, substituting N-k by N-k-1 in Eq. 18, the following is obtained Now the term ej2#n(k+1/2)/N common in both Eq. 17 and 19, and it is possible to isolate.

That is Gk = (Zk+zN-k-l)/2 k=O N/2-1 Eq. 22 and (Zk-ZN-k-1*)/2jk=0...N/2-1q.23Gk'=

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 Length Adjustment Technique The frequency transform length N is decided by the encoder based on temporal and spectral resolution requirements. The input signal is usually analysed with a high frequency bandpass filter to detect the presence of transients. This information is used to adjust the block length, restricting quantization noise associated with the transient within a small temporal region about the 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 that not all channels can be paired with such convenience. Assume that the 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 the m channels, I need long transform and therefore m-l require short transform.

If I is an even number, then since the total is even, it follows that l-m is also even. In this case, from the 1 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 (I-m) 12 pairs and for the (l-m)/2 pairs two short FFTs are computed.

Now consider the case when 1 l = 2r + 1 is an odd number. Therefore m-l = 2s + 1 is

also an odd number. The 2r channels requiring long transform are paired together to form r pairs and then 2r transforms are computed using r FFTs only. Similarly, for the 2s channels s pairs are formed. What remains is one channel requiring long transform and another requiring two short transforms. Both of these channels are paired together and two short FFTs are computed to derive the MDCT.

The rationale for constraining the long transform to two short ones is as follows. A short transform is required for restricting quantization noise associated with the transient within a small temporal region about the transient, avoiding temporal masking. A long transform gives slight better frequency resolution but the error is not much compared to the case when in the 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 the final produced music. This conjecture was proven true by experimental studies on benchmark music streams.

Combining Windowing with pre-processing Before the time domain signal x [n] is transformed to the frequency domain, a windowing function is usually applied. Thus, if the sampled signal is p then the sequence that is applied to the frequency transformation block is x [n] = p [n] * w [n], where w [n] is the windowing function. From the previous sections we noted that before the FFT is computed for a block a pre-processing is performed as given in Eq. 11 (reproduced below for convenience). Thus <BR> <BR> <BR> x' [n] = x [n] * e jUm/N<BR> <BR> <BR> <BR> <BR> *w[n])*ej#n/N=(p[n] <BR> <BR> <BR> <BR> <BR> = (p [n] * w [n]) * (cos7rn/N + j sin 7M/A') = p [n] * ((w [n] * coszn/N) + j (w [n] *sinrnlN)) 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

two tables are constructed as defined below rcos [n] w [n] * cos (7rn/N) rsin(n] w [n] * sin (7rnIN) then Eq. 11 can be rewritten as (p[n]*rcos[n])+j[p[n]*rsin[n])Eq.25x'[n]= 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 the 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 the invention has been presented by way of example only, and is not intended to be considered limiting to the invention as defined in the claims appended hereto. Glossary of Equations: MDCT (Zk+ZN-k-1*)/2k=0...N/2-1Gk= Gk' = k=0...N/2-1 2#(2N+1)(2k+1)/4Nα(n,k)= y (k) = w (2k+1)/4