Abstract:
Improved down mixing of audio channels of compressed digital audio signals by down mixing in the frequency domain. Fast virtual transform is applied to transform short DCT coefficients into long DCT coefficients, and down mixing is performed on the long DCT coefficients. Inverse discrete cosine transform is performed on the down mixed set of long DCT coefficients, generating signals in the windowing domain. The windowing domain signals are then overlapped and added to generate time domain signals suitable for further amplification. Down mixing in the frequency domain reduces the number of computations required.

Description:
This application claims the benefit of provisional U.S. Application No. 60/087,364, filed May 29, 1998, which is hereby incorporated by reference for all purposes. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention. 
     This invention relates generally to a method and device for down mixing compressed digital audio bit stream, and more particularly to a method and device for down mixing the multiple channels of a compressed audio bit stream into a lesser number of audio channels. 
     2. Description of the Prior Art 
     Audio compression techniques are used wherever there is an economic benefit to be obtained by reducing the amount of digital information required to represent the audio signals. Examples are the Dolby AC-3, Digital Theatre Systems (DTS), and the MPEG audio layer compression algorithms. The Dolby AC-3 compression format has been selected as the audio format for the high definition television (HDTV) standard in the U.S. It is also widely adopted for use in Digital Versatile Disk (DVD) films. 
     The AC-3 digital compression algorithm can encode 5.1 channels of source audio from a pulse code modulation (PCM) representation into a serial bit stream at data rates ranging from 32 kbps to 640 kbps. The 0.1 channel refers to a fractional bandwidth channel intended to convey only low frequency (subwoofer) signals. Typically, a compression ratio of 1:10 can be achieved using the AC-3 algorithm. Typical applications are in satellite or terrestrial audio broadcasting, delivery of audio over metallic or optical cables, or storage of audio on, magnetic, optical, semiconductor, or other storage media. 
     The AC-3 algorithm achieves a high compression ratio by coarsely quantizing a frequency domain representation of the audio signal. The first step in the encoding process is to transform the representation of audio from a sequence of PCM time samples into a sequence of blocks of frequency coefficients. The individual frequency coefficients are represented in floating point representation as a binary exponent and a mantissa. These exponents are encoded according to an adaptive coding process and fed to a bit allocation process. The mantissas are then quantized, the degree of quantization determined by the bit allocation process. 
     The decoding process is basically the inverse of the encoding process. A decoder must synchronize to the encoded bit stream check for errors, and de-format the various types of data such as the encoded spectral envelope and the quantized mantissas. The decoding process mainly comprises the following four steps: (1) the spectral envelope is decoded to produce the exponents; (2) the exponents are fed into the bit allocation process; (3) the bit allocation routine determines the number of bits used to unpack and de-quantize the mantissas; and (4) the exponents and mantissas of the frequency coefficients are transformed back into the time domain to produce the decoded PCM time samples. A more detailed description of the decoding process is set forth below. 
     DECODING PROCESS OF THE AC-3 BIT STREAM 
     The AC-3 encoder uses a time-domain-aliasing-cancellation (TDAC) filter bank to transform an input audio sequence x(n) form time domain signals into frequency domain coefficients, or more specifically, DCT (Discrete Cosine Transform) coefficients. The audio sequence is sampled using a 512-point sampling window h(n) to produce a windowed data: 
     
         w(n)=h(n)x.sub.f (n)                                       (1) 
    
     where x f  (n) is the f th  block sample of 512 input data, and x f-1  denotes the (f-1) th  block sample of 512 input data. The x f  (n) and x.sub.(f-1) (n) samples overlap by 256 points. 
     The windowed data w(n) is transformed into DCT coefficients through either a 512-point transform or two 256-point transforms according to the data content. The 512-point transform is called the long DCT transform, and the 256-point transform is called the short DCT transform. For the long DCT transform,,the long DCT coefficients y f  (k) are obtained from the following formula: ##EQU1## For the short DCT transform, the windowed data w f  (n) are segmented into two 256-point data, w f1  (n) and w f2  (n), and transformed into two sets of short DCT coefficients y f1  (k) and y f2  (k): ##EQU2## 
     To reconstruct the original data, an inverse transform is applied to the DCT coefficients. For long DCT coefficients, the inverse transform formula is ##EQU3## For short DCT coefficients, two types of inverse DCT transforms are used: ##EQU4## 
     After the inverse DCT transform, an overlap-and-add procedure is executed. For long transforms, the w f  (n) windowing domain coefficients are multiplied by a synthesis window f(n) and then overlapped and added with previous w f-1  (n) coefficients to obtain the original data: 
     
         xƒ(n)=w.sub.ƒ (n)ƒ(n)+w.sub.ƒ-1 (256+n)ƒ(256+n)0≦n≦255             (6) 
    
     For short transforms, the windowing domain coefficients are combined together: w.sub.ƒ (n)=w.sub.ƒ1 (n)+w.sub.ƒ2 (n), and processed through similar operation as the long transforms. 
     DOWNMIXING 
     In many reproduction systems, the number of loudspeakers will not match the number of encoded audio channels. For example, the left and right speakers of a typical personal computer are used to output the 5 channels of an AC-3 compressed audio program. In order to reproduce all of the sound effects, down mixing is required. Down mixing is a technique in which the 5 (or 5.1) audio channel signals are intermixed, generating a reduced number of audio channel signals while reserving high audio quality. 
     Prior art methods of down mixing are performed in the time domain. Basically, the down mixing process is of the form: ##EQU5## where L(n), C(n), R(n), S L  (n), and S R  (n) are the original left, center, right, left surround, and right surround channel signals respectively. The variables c and s are the center and surround mixing level, typically chosen to be between 1 to 0.5. L 0  (n) and R 0  (n) are the resulting left and right output channels after down mixing. 
     FIG. 1 shows a prior art decoder for down mixing five channels of audio signals into two channels. Inverse discrete cosine transform (IDCT) and overlap-and-add (OA) are performed individually on each, audio channel. The overlap-and-add procedure is required because in the encoding process, overlapping blocks of time samples are multiplied by a time window and transformed into the frequency domain. Due to the overlapping blocks, each PCM input sample is represented in two sequential transformed blocks, and thus have to be reversed in the decoding process. 
     The inverse discrete cosine transform (IDCT) procedure transforms the audio data from frequency domain coefficients into windowing domain coefficients, and the overlap-and-add (OA) procedure reconstructs time domain audio data from the windowing domain coefficients. The windowing domain coefficients refer to the coefficients still requiring the OA procedure. Due to the complexity of the IDCT and OA transformations, it would be desirable to reduce the number of IDCT and OA operations that is required in the down mixing process. 
     FIG. 2 shows an audio decoder with a down mixer in the windowing domain. The audio decoder comprises five inverse discrete cosine transform circuits IDCT --  1, IDCT --  2, IDCT --  3, IDCT --  4, and IDCT --  5, a down mixer, and two overlap-and-add circuits OA --  1 and OA --  2. The inverse discrete cosine transform circuits receive the DCT coefficients of the five audio channels generated from a pre-processor (not shown). The pre-processor receives a compressed audio bit stream, performs error correction and block de-formatting, and separates the DCT coefficients in different channels. These processes are known in the art. 
     The IDCT circuits receive DCT coefficients of the five audio channels, and output windowing domain coefficients to the down mixer. The windowing domain coefficients are intermixed by the down mixer, generating windowing domain coefficients for the left and right channels. The left and right channel windowing domain coefficients are then transformed by the first and second overlap-and-add circuits OA --  1 and OA --  2 into time domain coefficients, which are then output to speaker amplification units (not shown in the figure). 
     The prior art decoder shown in FIG. 2 reduces the number of overlap-and-add circuits, but still requires five inverse discrete cosine transformation circuits to transform the DCT coefficients into windowing domain coefficients. 
     What is needed, therefore, is a method and device for performing the down mixing process in the frequency domain so as to reduce the amount of computation and hardware complexity for an AC-3 decoder. 
     SUMMARY OF THE INVENTION 
     Improved down mixing of digital audio signals is achieved by performing down mixing in the frequency domain. An apparatus for decoding a digital audio bit stream comprising a first set of frequency domain coefficients representing a first set of time domain audio signals from a plurality of audio channels is presented. The apparatus comprising: a means for performing down mixing of the first set of frequency domain coefficients to produce a second set of frequency domain coefficients representing a reduced number of audio channel signals; a means for transforming the second set of frequency domain coefficients into a set of windowing domain coefficients; and a means for performing overlap-and-add function on the set of windowing domain coefficients to generate a second set of time domain signals for a reduced number of audio channels. 
     An algorithm for transforming short DCT coefficients into long DCT coefficients to facilitate the process of down mixing the frequency coefficients is presented. The short DCT coefficients are multiplied with a set of transformation coefficients, with the transformation coefficients being approximated by polynomial expansion coefficients. 
     One advantage of the present invention is to provide a simple method to reduce the total number of multiplications required for down mixing the audio channels of an AC-3 encoded audio signal. This reduces the complexity of the decoder device, reducing the overall construction cost. 
     Another advantage is that by simplifying the computation complexity, it is capable to use software program to perform the AC-3 decoding process, rather than using a dedicated hardware decoder. 
     Other features, advantages and embodiments of the invention will be apparent to those skilled in the art from the following description, accompanying drawings and appended claims. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a schematic diagram of a prior art decoder for down mixing digital audio bit streams in the time domain. 
     FIG. 2 is a drawing of a prior art decoder for down mixing digital audio bit streams in the windowing domain. 
     FIG. 3 is a block diagram of a decoder for down mixing in the frequency domain, using both long discrete cosine transforms and short discrete cosine transforms. 
     FIG. 4 is a block diagram of a preferred embodiment of the present invention. The decoder comprises virtual transformers for transforming the short DCT coefficients into long DCT coefficients, and performs down mixing in the frequency domain. 
    
    
     DESCRIPTION OF THE INVENTION 
     Appendix A is a paper submitted to the IEEE Transactions on Speech and Audio Processing on Dec. 24, 1997. The paper describes the principles incorporated in the present invention for down mixing an AC-3 bit stream. 
     For the convenience of description, equations (1) to (6) are written using matrix representation. For the inverse discrete cosine transform of the long DCT coefficients, equation (4) can be rewritten as: ##EQU6## where Y f  is a 256×256,diagonal matrix comprising of the long DCT coefficients extracted by the pre-processor, and ##EQU7## 
     For the inverse discrete cosine transform of the short DCT coefficients, equation (5) can be rewritten as: ##EQU8## where Y f1  and Y f2  are 128×128 diagonal matrices comprising of the short DCT coefficients extracted by the pre-processor. The matrix Y f1  comprise the first portion of the short DCT coefficients extracted by the pre-processor, and the matrix Y f2  comprise the second portion of the short DCT coefficients. The terms S 1   +  and S 2   +  are denoted by: ##EQU9## For the overlap-and-add process, equation (6) can be rewritten as: ##EQU10## where F 1  and F 2  are 256×256 diagonal matrices with the entries defined as &lt;F 1  &gt; nn  =f(n) and &lt;F 2  &gt; nn  =f(256+n). 
     FIG. 3 shows an audio decoder for down mixing in two DCT domains (the long DCT domain and short DCT domain). Audio decoder 300 comprises a selector 302, a long down mixer 304, a short down mixer 306, two long inverse discrete cosine transform blocks L-IDCT --  1 308 and L-IDCT --  2 310, two short inverse discrete cosine transform blocks S-IDCT --  1 312 and S-IDCT --  2 314, two signal adders 316 and 318, and two overlap-and-add blocks OA --  1 320 and OA --  2 322. 
     The audio decoder 300 performs down mixing, inverse discrete cosine transforms, and overlap-and-add functions to generate a reduced number of audio channels than was originally encoded in the input digital bit stream. 
     The selector 302 receives DCT coefficients from signal lines 324a to 324e, and determines whether the incoming coefficients are long DCT coefficients (Y f ) or short DCT coefficients (Y f1  and Y f2 ). The long and short DCT coefficients are directed to the long down mixer 304 and short down mixer 306 respectively. The long down mixer 304 performs the down mixing to produce the down mixed long DCT coefficients using the following algorithm: ##EQU11## where Y f  (L D ) and Y f  (R D ) are the down mixed DCT coefficients for the left and right channels. The matrices Y f  (L), Y f  (C), Y f  (R), Y f  (S L ), Y f  (R L ) comprise the long DCT coefficients extracted by the pre-processor for the left, center, right, left surround, and right surround channels. The matrix I is an identity matrix, and the matrices C and S are 256×256 diagonal matrices denoted by: ##EQU12## Here c and s are the mixing coefficients for the center and surround channels, typically chosen between 0.5 to 1. 
     The short down mixer 306 performs the down mixing on the short DCT coefficients to generate the down mixed short DCT coefficients using the following equations: ##EQU13## where Y f1  (L D ), Y f1  (R D ), Y f2  (L D ), and Y f2  (R D ) are the down mixed short DCT coefficients for the left and right channels. Here C and S are 128×128 diagonal matrices comprising the center and surround mixing coefficients. 
     The down mixed long DCT coefficients from the long down mixer 304 are sent to the inverse discrete transformers L-IDCT --  1 308 and L-IDCT --  2 310 to process the DCT coefficients for the left and right channels. The L-IDCT --  1 308 and L-IDCT --  2 310 transforms the long DCT coefficients into the long windowing domain coefficients according to the following algorithm: ##EQU14## 
     Likewise, the output coefficients from the short down mixer 306 are sent to the inverse discrete transformers S-IDCT --  1 312 and S-IDCT --  2 314 to process the short DCT coefficients for the left and right channels. The S-IDCT --  1 312 and S-IDCT --  2 314 transforms the DCT coefficients into short windowing domain coefficients according to the following equations: ##EQU15## 
     The short windowing domain coefficients generated by the short inverse discrete cosine transformers S-IDCT --  1 312 and S-IDCT --  2 314 are combined with the long windowing domain coefficients at the signal adders 316 and 318. The combined signals from the signal adders 316 and 318 are then sent to the overlap-and-add blocks OA --  1 320 and OA --  2 322, and transformed into time domain signals according to the algorithm: ##EQU16## where X f  (L 0 ) and X f  (R 0 ) are the down mixed time domain audio signals for the left and right channels. The time domain audio signals are then sent to amplification units or loud speakers. 
     FIG. 4 shows a preferred embodiment of the present invention. To reduce the number of inverse discrete cosine transforms required for the down mixing process, the short DCT coefficients are first transformed to long DCT coefficients, and then down mixing are performed on the long DCT coefficients. The decoder 400 comprises five virtual transformers VT --  1 402a, VT --  2 402b, VT --  3 402c, VT --  4 402d, VT --  5 402e, a down mixer 404, two inverse discrete cosine transformers IDCT --  1 406a and IDCT --  2 406b, and two overlap-and-add blocks OA --  1 408a and OA --2  408b. 
     The virtual transformers receive incoming signals from the five channels, and determine whether the frames contain short DCT coefficients or long DCT coefficient&#39;s. The short DCT coefficients are transformed into long-DCT coefficients using the following equation: ##EQU17## where 
     
         V=[V.sub.1 V.sub.2 ]=[L.sub.1 ·H.sub.1 ·F.sub.1 ·S.sub.1.sup.+ L.sub.2 ·H.sub.2 ·F.sub.2 ·S.sub.2.sup.+ ]                                 (25) 
    
     Here Y f1  and Y f2  comprise the short DCT coefficients, and ##EQU18## The matrices H 1 , H 2  are diagonal matrices with entries &lt;H 1  &gt; nn  =h(n), 0≦n≦255, &lt;H 2  &gt; nn  =h(n+256), 0≦n≦255; and F 1 , F 2 , S 1   + , S 2   +  are similar to those denoted in equations (12), (13), and (14). Equation (25) can be rewritten as: ##EQU19## Which can be further simplified by approximating the terms which are insignificant using 2 nd  or 3 rd  order polynomial expansion. It can be shown that most of the terms of V 1  (k 1 ,k 2 ) concentrates near k 2  =k 1  /2, so the terms farther away from k1/2 can be approximated by polynomial coefficients without losing much accuracy. 
     Rewrite the first term of (29) as ##EQU20## We can separate the terms of the above equation into three portions, one center portion contains the terms at the neighborhood of k2=k1/2, one portion before the center portion, and the remaining portion after the center portion. ##EQU21## Here the center portion has a length of 2M points. We then approximate the first and third terms in equation (30) using p-th order polynomials: ##EQU22## Here a and b are the polynomial expansion coefficients ##EQU23## respectively. Calculating the first and third terms in equation (30) using polynomial approximations is much faster than expanding the summation of V 1  ·Y f1  with all the cosine terms. 
     Furthermore, it can be shown that there is a one-to-one correspondence between V 1  (k 1 ,k 2 ) and V 2  (k 1 ,k 2 ): 
     
         V.sub.2 (k.sub.1,k.sub.2)=(-1).sup.(k1+k2) ×V.sub.1 (255-k.sub.1,127-k.sub.2)                                 (33) 
    
     Therefore, we can calculate V 2  once we have obtained the terms for V 1 . This can be used in the calculation of ##EQU24## By combining the results of equations (31) and (35), we obtain the long DCT coefficients of equation (29). 
     After the virtual transformers VT --  1 402a to VT --  5 402e turns the short DCT coefficients to long DCT coefficients (when appropriate), the long DCT coefficients are sent to the down mixer 404. The down mixer 404 down mixes the long DCT coefficients using equation (16) described above. The down mixed long DCT coefficients are then sent to the inverse discrete cosine transformers 406a and 406b. Then the windowing domain coefficients generated by the inverse discrete cosine transformers 406a, 406b are sent to the overlap-and-add blocks 408a and 408b, which generate time domain audio signals for the left and right channels. 
     While the above is a full description of the specific embodiments, various modifications, alternative constructions and equivalents may be used. For example, down mixing is not limited for used in the AC-3 algorithm. Other audio compression algorithms having more than 2 audio channels, such as MPEG-2 or DTS, may require down mixing to be performed when the number of speaker amplifiers are less than the number of audio channels in the digital-bit stream. Therefore, the above description and illustrations should not be taken as limiting the scope of the present invention which is defined by the appended claims.