AU2002358578A1 - Device and method for encoding a time-discrete audio signal and device and method for decoding coded audio data - Google Patents
Device and method for encoding a time-discrete audio signal and device and method for decoding coded audio data Download PDFInfo
- Publication number
- AU2002358578A1 AU2002358578A1 AU2002358578A AU2002358578A AU2002358578A1 AU 2002358578 A1 AU2002358578 A1 AU 2002358578A1 AU 2002358578 A AU2002358578 A AU 2002358578A AU 2002358578 A AU2002358578 A AU 2002358578A AU 2002358578 A1 AU2002358578 A1 AU 2002358578A1
- Authority
- AU
- Australia
- Prior art keywords
- block
- integer
- difference
- spectral values
- quantization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000005236 sound signal Effects 0.000 title claims abstract description 59
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000003595 spectral effect Effects 0.000 claims abstract description 185
- 238000013139 quantization Methods 0.000 claims abstract description 73
- 230000009466 transformation Effects 0.000 claims abstract description 3
- 238000012545 processing Methods 0.000 claims description 33
- 239000011159 matrix material Substances 0.000 claims description 19
- 230000002123 temporal effect Effects 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 4
- 238000007667 floating Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 29
- 230000005540 biological transmission Effects 0.000 description 12
- 238000001228 spectrum Methods 0.000 description 12
- 230000015572 biosynthetic process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 230000002349 favourable effect Effects 0.000 description 5
- 238000003786 synthesis reaction Methods 0.000 description 4
- 241001442234 Cosa Species 0.000 description 3
- 238000013144 data compression Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 244000089409 Erythrina poeppigiana Species 0.000 description 2
- 235000009776 Rathbunia alamosensis Nutrition 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000002592 echocardiography Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/0212—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/0017—Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
Abstract
According to the invention, a time-discrete audio signal is processed (52) in order to provide a quantization block with quantized spectral values (52). In addition, a whole-number spectral representation is generated from a time-discrete audio signal, using a whole-number transformation algorithm (56). The quantization block, which has been generated using a psychoacoustic model (54), is inverse quantized and rounded (58) to form a differential between the whole-number spectral values and the inverse quantized rounded spectral values. The quantization block alone produces a psychoacoustic encoded/decoded audio signal affected by loss after the decoding process, whereas the quantization block together with the combination block provides a loss-free, or practically loss-free encoded and decoded audio signal during said decoding process. The generation of the differential signal in the frequency range allows a simpler encoder/decoder structure to be produced.
Description
National Phase of International Patent Application PCT/EPO2/13623 in Australia Declaration I, Franz Zinkler, Hermann-Roth-Weg 1, 82049 Pullach, Germany declare that I am conversant with the English and German languages and am the translator of the documents attached and I verify that the following is to the best of my knowledge and belief a true and correct translation of the International Patent Application No. PCT/EPO2/13623., Signature of translator Franz Zinkler Dated this 15 day of October 2004 Apparatus and Method for Coding a Time-Discrete Audio Signal and Apparatus and Method for Decoding Coded Audio Data 5 Description The present invention relates to the audio coding/decoding, and in particular to scalable coding/decoding algorithms with a psychoacoustic first scaling layer and a second 10 scaling layer including ancillary audio data for lossless decoding. Modern audio coding methods, such as MPEG Layer3 (MP3) or MPEG AAC, use transforms, such as the so-called modified 15 discrete cosine transform (MDCT), to obtain a block-wise frequency representation of an audio signal. Such an audio coder usually obtains a stream of time-discrete audio samples. A stream of audio samples is windowed to obtain a windowed block of for example 1,024 or 2,048 windowed audio 20 samples. For the windowing, various window functions are employed, such as a sine window, etc. The windowed time-discrete audio samples are then converted to a spectral representation by means of a filter bank. In 25 principle, a Fourier transform, or a variety of the Fourier transform for special reasons, such as a FFT or, as has been set forth, a MDCT, may be employed for this. The block of audio spectral values at the output of the filter bank may then be processed further depending on demand. In the 30 above-referenced audio coders, a quantization of the audio spectral values follows, wherein the quantization stages are typically chosen so that the quantization noise introduced by the quantizing lies below the psychoacoustic masking threshold, i.e. is "masked away". The quantization 35 is a lossy coding. In order to obtain further data amount reduction, the quantized spectral values are then entropy coded for example by means of Huffman coding. By adding side information, such as scale factors etc., a bit stream, - 2 which may be stored or transmitted, is formed from the entropy-coded quantized spectral values by means of a bit stream multiplexer. 5 In the audio decoder, the bit stream is split up in coded quantized spectral values and side information by means of a bit stream de-multiplexer. The entropy-coded quantized spectral values are at first entropy decoded to obtain the quantized spectral values. The quantized spectral values 10 are then inversely quantized to obtain decoded spectral values comprising quantization noise, which, however, lies below the psychoacoustic masking threshold and will thus be inaudible. These spectral values are then converted into a temporal representation by means of a synthesis filter bank 15 to obtain time-discrete decoded audio samples. In the synthesis filter bank, a transform algorithm inverse to the transform algorithm has to be employed. Moreover, the windowing has to be cancelled after the frequency-time inverse or backward transform. 20 In order to achieve good frequency selectivity, modern audio coders typically use block overlap. Such a case is illustrated in Fig. 4a. At first for example 2,048 time discrete audio samples are taken and windowed by means of 25 means 402. The window embodying means 402 has a window length of 2N samples and provides a block of 2N windowed samples at the output side. In order to achieve window overlap, by means of means 404, which is illustrated separate from means 402 only for clarity reasons in Fig. 30 4a, a second block of 2N windowed samples is formed. The 2,048 samples fed to means 404, however, are not the time discrete audio samples immediately ensuing the first window, but contain the second half of the samples windowed by means 402 and additionally contain only 1,024 "new" 35 samples. The overlap is symbolically illustrated by means 406 in Fig. 4a, causing an overlapping degree of 50%. Both the 2N windowed samples output by means 402 and the 2N windowed samples output by means 404 are then subjected to - 3 the MDCT algorithm by means of means 408 and 410, respectively. Means 408 provides N spectral values for the first window according to the known MDCT algorithm, whereas means 410 also provides N spectral values, but for the 5 second window, wherein there is an overlap of 50% between the first window and the second window. In the decoder, the N spectral values of the first window, as it is shown in Fig. 4b, are fed to means 412 performing 10 an inverse modified discrete cosine transform. The same applies for the N spectral values of the second window. These are fed to means 414 also performing an inverse modified discrete cosine transform. Both means 412 and means 414 each provide 2N samples for the first window and 15 2N samples for the second window, respectively. In means 416, designated with TDAC (time domain aliasing cancellation) in Fig. 4b, the fact is taken into account that the two windows are overlapping. In particular, a 20 sample yj of the second half of the first window, i.e. with an index N+k, is summed with a sample Y2 from the first half of the second window, i.e. with an index k, so that N decoded temporal samples result at the output side, i.e. in the decoder. 25 It is to be noted that by the function of means 416, which is also referred to as add function, the windowing performed in the coder schematically illustrated by Fig. 4a is taken into account somewhat automatically, so that in 30 the decoder illustrated by Fig. 4b no explicit "inverse windowing" has to take place. When the window function implemented by means 402 or 404 is designated with w(k), wherein the index k represents the 35 time index, the condition has to be met that the squared window weight w(k) added to the squared window weight w(N+k) together are 1, wherein k runs from 0 to N-1. When a sine window is used, the window weights of which follow the 44 first half-wave of the sine function, this condition is always met, since the square of the sine and the square of the cosine for each angle together result in the value 1. 5 Disadvantageous in the window method with ensuing MDCT function described in Fig. 4a is the fact that the windowing by multiplication of a time-discrete sample, when it is thought of a sine window, it is achieved with a floating-point number, since the sine of an angle between 0 10 and 180 degrees does not yield an integer, apart from the angle 90 degrees. Even when integer time-discrete samples are windowed, floating-point numbers result after the windowing. 15 Therefore, even when no psychoacoustic coder is used, i.e. when lossless coding is to be achieved, quantization is necessary at the output of means 408 or 410 to be able to perform reasonably manageable entropy coding. 20 When known transforms, as they have been described on the basis of Fig. 4a, are to be employed for lossless audio coding, either very fine quantization has to be employed to be able to neglect the resulting error due to rounding the floating-point numbers, or the error signal has to be 25 additionally coded for example in the time domain. Concepts of the former kind, i.e. in which the quantization is so finely adjusted that the resulting error due to the rounding of the floating-point numbers is negligible, are 30 for example disclosed in the German patent DE 197 42 201 Cl. Here, an audio signal is converted to its spectral representation and quantized to obtain quantized spectral values. The quantized spectral values are then inversely quantized, converted to the time domain, and compared with 35 the original audio signal. If the error, i.e. the error between the original audio signal and the quantized/inversely quantized audio signal, lies above an error threshold, the quantizer is more finely adjusted in - 5 feedback, and the comparison is performed again. The iteration is terminated, when the error threshold is underrun. The maybe still present residual signal is coded with a time domain coder and written into a bit stream 5 including, apart from the time-domain-coded residual signal, also coded spectral values having been quantized according to the quantizer adjustments that were present at the time of the cancellation of the iteration. It is to be noted that the quantizer does not have to be controlled 10 from a psychoacoustic model, so that the coded spectral values are typically quantized more accurately than this would have to be due to the psychoacoustic model. In the publication "A Design of Lossy and Lossless Scalable 15 Audio Coding", T. Moriya et al., Proc. ICASSP, 2000, a scalable coder is described, which includes e.g. an MPEG coder as first lossy data compression module, which has a block-wise digital signal form as input signal and generates the compressed bit stream. In an also present 20 local decoder the coding is cancelled again, and a coded/decoded signal is generated. This signal is compared with the original input signal by subtracting the coded/decoded signal from the original input signal. The error signal is then fed to a second module, where a 25 lossless bit conversion is used. This conversion has two steps. The first step consists in a conversion from a two's complement format to a presign-magnitude format. The second step consists in a conversion from a vertical magnitude sequence to a horizontal bit sequence in a processing 30 block. The lossless data conversion is executed to maximize the number of zeros or to maximize the number of successive zeros in a sequence, in order to achieve an as-good-as possible compression of the temporal error signal present as a result of digital numbers. This principle is based on 35 a bit slice arithmetic coding (BSAC) scheme illustrated in the publication "Multi-Layer Bit Sliced Bit Rate Scalable Audio Coder", 103 rd AES Convention, Preprint No. 4520, 1997.
-6 Disadvantageous in the above-described concepts is the fact that the data for the lossless expansion layer, i.e. the ancillary data required to achieve lossless decoding of the audio signal has to be obtained in the time domain. This 5 means that complete decoding including a frequency/time conversion is required to obtain the coded/decoded signal in the time domain, so that by means of a sample-wise difference formation between the original audio input signal and the coded/decoded audio signal, which is lossy 10 due to the psychoacoustic coding, the error signal is calculated. This concept is particularly disadvantageous in that in the coder generating the audio data stream both complete time/frequency conversion means, such as a filter bank or e.g. a MDCT algorithm, is required for the forward 15 transform, and at the same time, only to generate the error signal, a complete inverse filter bank or a complete synthesis algorithm is required. The coder thus, in addition to its inherent coder functionalities, also has to contain the complete decoder functionality. If the coder is 20 implemented in software, both storage capacities and processor capacities are required for this, leading to a coder implementation with increased expenditure. The object of the present invention is to provide a less 25 expensive concept, by which an audio data stream may be generated, which may be decoded in an at least almost lossless manner. This object is achieved by an apparatus for coding a time 30 discrete audio signal of claim 1, by a method of coding a time-discrete audio signal of claim 21, by an apparatus for decoding coded audio data of claim 22, by a method of decoding coded audio data of claim 31, or by a computer program of claim 32 or 33. 35 The present invention is based on the finding that the ancillary audio data enabling lossless decoding of the audio signal may be obtained by providing a block of - 7 quantized spectral values as usual and then inversely quantizing it in order to have inversely quantized spectral values, which are lossy due to the quantization by means of a psychoacoustic model. These inversely quantized spectral 5 values are then rounded to obtain a rounding block of rounded inversely quantized spectral values. As reference for the difference formation, according to the invention, an integer transform algorithm is used, which generates an integer block of spectral values only comprising integer 10 spectral values from a block of integer time-discrete samples. According to the invention, now the combination of the spectral values in the rounding block and in the integer block is performed spectral value-wise, i.e. in the frequency domain, so that in the coder itself no synthesis 15 algorithm, i.e. an inverse filter bank or an inverse MDCT algorithm, etc., is required. The combination block comprising the difference spectral values only includes integer values, which may be entropy coded in some known manner, due to the integer transformation algorithm and the 20 rounded quantization values. It is to be noted that arbitrary entropy coders may be employed for the entropy coding of the combination block, such as Huffman coders or arithmetic coders, etc. 25 For the coding of the quantized spectral values of the quantization block, also arbitrary coders may be employed, such as the known tools usual for modern audio coders. It is to be noted that the inventive coding/decoding 30 concept is compatible with modern coding tools, such as window switching, TNS, or center/side coding for multi channel audio signals. In a preferred embodiment of the present invention, a MDCT 35 is employed for providing a quantization block of spectral values quantized using a psychoacoustic model. In addition, it is preferred to employ a so-called IntMDCT as integer transform algorithm.
-8 In an alternative embodiment of the present invention, it can be done without the usual MDCT, and the IntMDCT may be used as approximation for the MDCT, namely in that the integer spectrum obtained by the integer transform 5 algorithm is fed to a psychoacoustic quantizer to obtain quantized IntMDCT spectral values, which are then again inversely quantized and rounded to be compared with the original integer spectral values. In this case only a single transform is required, namely the IntMDCT generating 10 integer spectral values from integer time-discrete samples. Typically, processors work with integers, or each floating point number may be represented as an integer. If an integer arithmetic is used in a processor, it can be done 15 without the rounding of the inversely quantized spectral values, since due to the arithmetic of the processor rounded values, namely within the accuracy of the LSB, i.e. the least significant bit, are present anyway. In this case, completely lossless processing is achieved, i.e. 20 processing within the accuracy of the used processor system. Alternatively, however, rounding to a rougher accuracy may be performed, in that the difference signal in the combination block is rounded to an accuracy fixed by a rounding function. Introducing rounding beyond the inherent 25 rounding of the processor system enables flexibility in so far as to affect the "degree" of the losslessness of the coding, in order to generate an almost lossless coder in the sense of data compression. 30 The inventive decoder distinguishes itself by both the psychoacoustically coded audio data and the ancillary audio data being extracted from the audio data, being subjected to possibly present entropy decoding, and then being processed as follows. At first the quantization block in 35 the decoder is inversely quantized and rounded using the same rounding function also employed in the coder, in order to be then added to the entropy-decoded ancillary audio data. In the decoder, then both a psychoacoustically -9 compressed spectral representation of the audio signal and a lossless representation of the audio signal are present, wherein the psychoacoustically compressed spectral representation of the audio signal is to be converted to 5 the time domain to obtain a lossy coded/decoded audio signal, whereas the lossless representation is converted in the time domain using an integer transform algorithm inverse to the integer transform algorithm to obtain a losslessly or, as it has been set forth, almost losslessly 10 coded/decoded audio signal. These and other objects and features of the present invention will become clear from the following description taken in conjunction with the accompanying drawings, in 15 which: Fig. 1 is a block circuit diagram of preferred means for processing time-discrete audio samples to obtain integer values from which integer spectral values 20 can be ascertained; Fig. 2 is a schematic illustration of the split-up of a MDCT and an inverse MDCT in Givens rotations and two DCT-IV operations; 25 Fig. 3 is a representation for the illustration of the split-up of the MDCT with 50% overlap in rotations and DCT-IV operations; 30 Fig. 4a is a schematic block circuit diagram of a known coder with MDCT and 50 percent overlap; Fig. 4b is a block circuit diagram of a known decoder for decoding the values generated by Fig. 4a; 35 Fig. 5 is a principle block circuit diagram of a preferred inventive coder; - 10 Fig. 6 is a principle block circuit diagram of an alternative inventively preferred coder; Fig. 7 is a principle block circuit diagram of an 5 inventively preferred decoder; Fig. 8a is a schematic illustration of a bit stream with a first scaling layer and a second scaling layer; 10 Fig. 8b is a schematic illustration of a bit stream with a first scaling layer and several further scaling layers; and Fig. 9 is a schematic illustration of binarily coded 15 difference spectral values for the illustration of possible scalings with regard to the accuracy (bits) of the difference spectral values and/or with regard to the frequency (sample rate) of the difference spectral values. 20 In the following, on the basis of Figs. 5 to 7, it is gone into inventive coder circuits (Fig. 5 and Fig. 6) or an inventively preferred decoder circuit (Fig. 7). The inventive coder shown in Fig. 5 includes an input 50, to 25 which a time-discrete audio signal may be fed, as well as an output 52, from which coded audio data may be output. The time-discrete audio signal fed at the input 50 is fed to means 52 for providing a quantization block, which provides a quantization block of the time-discrete audio 30 signal at the output side, which comprises quantized spectral values of the time-discrete audio signal 50 using a psychoacoustic model 54. The inventive coder further includes means for generating an integer block using an integer transform algorithm 56, wherein the integer 35 algorithm is operative to generate integer spectral values from integer time-discrete samples.
- 11 The inventive coder further includes means 58 for inversely quantizing the quantization block output from means 52 and, when another accuracy than the processor accuracy is required, a rounding function. If it has to be gone up to 5 the accuracy of the processor system, as it has been set forth, the rounding function already is inherently contained in the inversely quantizing of the quantization block, since a processor having an integer arithmetic is incapable of providing non-integer values anyway. Means 58 10 thus provides a so-called rounding block including inversely quantized spectral values, which are integer, i.e. have been inherently or explicitly rounded. Both the rounding block and the integer block are fed to combining means providing a difference block with difference spectral 15 values, using difference formation, wherein the term "difference block" is to imply that the difference spectral values are values including differences between the integer block and the rounding block. 20 Both the quantization block output from means 52 and the difference block output from the difference formation means 58 are fed to processing means 60 performing for example usual processing of the quantization block and also causing for example entropy coding of the difference block. Means 25 60 for processing outputs coded audio data at the output 52, which contains both information on the quantization block and includes information on the difference block. In a first preferred embodiment, as shown in Fig. 6, the 30 time-discrete audio signal is converted to its spectral representation by means of a MDCT and then quantized. The means 52 for providing the quantization block thus consists of the MDCT means 52a and a quantizer 52b. 35 In addition, it is preferred to generate the integer block with an IntMDCT 56 as integer transform algorithm.
- 12 In Fig. 6, the processing means 60 shown in Fig. 5 is also illustrated as bit stream coding means 60a for bit stream coding the quantization block output by means 52b, as well as by an entropy coder 60b for entropy coding the 5 difference block. The bit stream coder 60a outputs the psychoacoustically coded audio data, whereas the entropy coder 60b outputs an entropy-coded difference block. The two output data of blocks 60a and 60b may be combined in a bit stream in a suitable manner, which has the 10 psychoacoustically coded audio data as first scaling layer and which has the additional audio data for lossless decoding as second scaling layer. The scaled bit stream then corresponds to the coded audio data shown in Fig. 5 at the output 52 of the coder. 15 In an alternative, preferred embodiment, it may be done without the MDCT block 52a of Fig. 6, as it is implied in Fig. 5 by a dashed arrow 62. In this case the integer spectrum provided by the integer transform means 56 is both 20 fed to the difference formation means 58 and to the quantizer 52b of Fig. 6. The spectral values generated by the integer transform are here in a way used as approximation for a usual MDCT spectrum. This embodiment has the advantage that only the IntMDCT algorithm is 25 present in the coder, and that not both the IntMDCT algorithm and the MDCT algorithm have to be present in the coder. Again referring.to Fig. 6, it is to be noted that the solid 30 blocks and lines illustrate a usual audio coder according to one of the MPEG standards, whereas the dashed blocks and lines illustrate the extension of such a usual MPEG coder. It is thus to be seen that no fundamental change of the usual MPEG coder is necessary, but that the inventive 35 capture of the ancillary audio data for lossless coding by means of an integer transform may be added without change to the coder/decoder basic structure.
-13 Fig. 7 shows a principle block circuit diagram of an inventive decoder for decoding the coded audio data output at the output 52 of Fig. 5. This is at first split up into psychoacoustically coded audio data on the one hand and the 5 ancillary audio data on the other hand. The psychoacoustically coded audio data is fed to a usual bit stream decoder 70, whereas the ancillary audio data, when having been entropy coded in the coder, is entropy coded by means of an entropy coder 72. At the output of the bit 10 stream decoder 70 of Fig. 7, quantized spectral values are present, which are fed to an inverse quantizer 74, which may in principle be constructed identically with the inverse quantizer in the means of Fig. 6. If an accuracy is aimed at, which does not correspond to the processor 15 accuracy, in the decoder also rounding means 76 is provided, which performs the same algorithm or the same rounding function for mapping a real number to an integer, as it may be also implemented in the means 58 of Fig. 6. In a decoder-side combiner 78, the rounded inversely quantized 20 spectral values are preferably additively combined spectral value-wise with the entropy-coded ancillary audio data, so that in the decoder on the one hand inversely quantized spectral values are present at the output of means 74 and on the other hand integer spectral values are present at 25 the output of the combiner 78. The output-side spectral values of means 74 may then be converted to the time domain by means of means 80 for performing an inverse modified discrete cosine transform, 30 to obtain a lossy psychoacoustically coded and again decoded audio signal. By means of means 82 for performing an inverse integer MDCT (IntMDCT), the output signal of the combiner 78 is also converted to its temporal representation, in order to generate a losslessly 35 coded/decoded audio signal or, when a corresponding rougher rounding has been employed, an almost losslessly coded and again decoded audio signal.
- 14 In the following, it is gone into a special preferred embodiment of the. entropy coder 60b of Fig. 6. Since, in a usual modern MPEG coder, several code tables selected depending on average statistics of the quantized spectral 5 values are present, it is preferred to use the same code tables or code books also for the entropy coding of the difference block at the output of the combiner 58. Since the magnitude of the difference block, i.e. of the residual IntMDCT spectrum, depends on the accuracy of the 10 quantization, a codebook selection of the entropy coder 60b may be performed without ancillary side information. In a MPEG-2 AAC coder, the spectral coefficients, i.e. the quantized spectral values, are grouped into scale factor 15 bands in the quantization block, wherein the spectral values are weighted with a gain factor derived from a corresponding scale factor associated with a scale factor band. Since in this known coder concept a non-uniform quantizer is used to quantize the weighted spectral values, 20 the size of the residual values, i.e. the spectral values at the output of the combiner 58, does not only depend on the scale factors but also on the quantized values themselves. But since both the scale factors and the quantized spectral values are contained in the bit stream, 25 which is generated by the means 60a of Fig. 6, i.e. in the psychoacoustically coded audio data, it is preferred to perform a codebook selection in the coder depending on the size of the difference spectral values and also to ascertain, in the decoder, the code table used in the coder 30 on the basis of both the scale factors transmitted in the bit stream and the--quantized values. Since no side information has to be transmitted for entropy coding the difference spectral values at the output of the combiner 58, the entropy coding only leads to data rate compression, 35 without having to expend any signalization bits in the data stream as side information for the entropy coder 60b.
- 15 In an audio coder according to the standard MPEG-2 AAC, window switching is used to avoid pre-echoes in transient audio signal areas. This technique is based on the possibility to select window shapes individually in each 5 half of the MDCT window, and enables to vary the block size in successive blocks. Similarly, the integer transform algorithm in form of the IntMDCT, which is explained with reference to Figs. 1 to 3, is executed to also use different window shapes in windowing and in the time domain 10 aliasing section of the MDCT split-up. It is thus preferred to use the same window decisions both for the integer transform algorithm and for the transform algorithm for generating the quantization block. 15 In a coder according to MPEG-2 AAC, also several further coding tools exist, of which only TNS (temporal noise shaping) and center/side (CS) stereo coding are to be mentioned. In TNS coding, just like in CS coding, modification of the spectral values prior to the 20 quantization is performed. Consequently, the difference between the IntMDCT values, i.e. the integer block, and the quantized MDCT values increases. According to the invention, the integer transform algorithm is formed to admit both TNS coding and center/side coding also of 25 integer spectral values. The TNS technique is based on adaptive forward prediction of the MDCT values over the frequency. The same prediction filter calculated by a usual TNS module in a signal-adaptive manner is preferably also used to predict the integer spectral values, wherein, if 30 non-integer values arise thereby, downstream rounding may be employed, in order to again generate integer values. This rounding preferably takes place after each prediction step. In the decoder, the original spectrum may again be reconstructed by employing the inverse filter and the same 35 rounding function. Similarly, the CS coding may also be applied to IntMDCT spectral values by applying rounded Givens rotations with an angle of x/4, based on the lifting - 16 scheme. Thereby, the original IntMDCT values in the decoder may be reconstructed again. It is to be noted that the inventive concept in its 5 preferred embodiment with the IntMDCT as integer transform algorithm may be applied to all MDCT-based hearing-adapted audio coders. Only as an example, such coders are coders according to MPEG-4 AAC Scalable, MPEG-4 AAC Low Delay, MPEG-4 BSAC, MPEG-4 Twin VQ, Dolby AC-3 etc. 10 In particular, it is to be noted that the inventive concept is reversely compatible. The hearing-adapted coder or decoder is not changed, but only extended. Ancillary information for the lossless components may be transmitted 15 in the bit stream coded in a hearing-adapted manner in a reversely compatible manner, such as in MPEG-2 AAC in the field "Ancillary Data". The addition to the previous hearing-adapted decoder drawn in a dashed manner in Fig. 7 may evaluate this ancillary data, and reconstruct, together 20 with the quantized MDCT spectrum, the IntMDCT spectrum in a lossless manner from the hearing-adapted decoder. The inventive concept of the psychoacoustic coding, supplemented by lossless or almost lossless coding, is 25 particularly suited for the generation, transmission, and decoding of scalable data streams. It is known that scalable data streams include various scaling layers, at least the lowest scaling layer of which may be transmitted and decoded independently of the higher scaling layers. 30 Further scaling layers or enhancement layers are added to the first scaling layer or base layer in a scalable processing of data. A fully equipped coder may generate a scalable data stream having a first scaling layer and in principle having an arbitrary number of further scaling 35 layers. An advantage of the scaling concept is that, in the case in which a broadband transmission channel is available, the scaled data stream generated by the coder may be transmitted completely, i.e. inclusive of all - 17 scaling layers, via the broadband transmission channel. If, however, only a narrowband transmission channel is present, the coded signal may yet be transmitted via the transmission channel, but only in form of the first scaling 5 layer or a certain number of further scaling layers, wherein the certain number is smaller than the overall number of scaling layers generated by the coder. Of course, the coder, adapted to a channel to which it is connected, may already generate the base scaling layer or first 10 scaling layer and a number of further scaling layers dependent on the channel. On the decoder side, the scalable concept also has the advantage that it is reversely compatible. This means that 15 a decoder that is only able to process the first scaling layer simply ignores the second and further scaling layers in the data stream and can generate a useful output signal. If, however, the decoder is a typically more modern decoder that is able to process several scaling layers from the 20 scaled data stream, this coder may be addressed with the same data stream as a base decoder. In the present invention, the basic scalability is that the quantization block, i.e. the output of the bit stream coder 25 60a, is written to a first scaling layer 81 of Fig. 8, which, when Fig. 6 is considered, includes psychoacoustically coded data e.g. for a frame. The preferably entropy-coded difference spectral values generated by the combining means 58 are written into the 30 second scaling layer at simple scalability, which is designated with 82 in Fig. 8a and thus includes the ancilliary audio data for a frame. If the transmission channel from the coder to the decoder 35 is a broadband transmission channel, both scaling layers 81 and 82 may be transmitted to the decoder. If, however, the transmission channel is a narrowband transmission channel, in which only the first scaling layer "fits", the second - 18 scaling layer may simply be removed from the data stream before the transmission, so that a decoder is only addressed with the first scaling layer. 5 On the decoder side a "base decoder" that is only able to process the psychoacoustically coded data may simply omit the second scaling layer 82, as far it has received it via a broadband transmission channel. If, however, the decoder is a fully equipped decoder including both a psychoacoustic 10 decoding algorithm and an integer decoding algorithm, this fully equipped decoder may take both the first scaling layer and the second scaling layer for decoding to generate a losslessly coded and again decoded output signal. 15 In a preferred embodiment of the present invention, as it is schematically illustrated in Fig. 8a, the psychoacoustically coded data for a frame will again be in a first scaling layer. The second scaling layer of Fig. 8a, however, is now scaled more finely, so that from this 20 second scaling layer in Fig. 8a several scaling layers arise, such as a (smaller) second scaling layer, a third scaling layer, a fourth scaling layer, etc. The difference spectral values output from the adder 58 are 25 particularly well suited for further subscaling, as it is illustrated on the basis of Fig. 9. Fig. 9 schematically illustrates binarily coded spectral values. Each row 90 in Fig. 9 represents a binarily coded difference spectral value. In Fig. 9 the difference spectral values are sorted 30 according to the frequency, as it is implied by an arrow 91. A difference spectral value 92 thus has a higher frequency than the difference spectral value 90. The first column of the tablet in Fig. 9 presents the most significant bit of a difference spectral value. The second 35 digit represents the bit with a significance MSB-1. The third column represents a bit with the significance MSB-2. The last but second column represents a bit with the significance LSB+2. The last but one column represents a - 19 bit with the significance LSB+1. Finally, the last column represents a bit with the significance LSB, i.e. the least significant bit of a difference spectral value. 5 In a preferred embodiment of the present invention, an accuracy scaling is made in that the e.g. 16 most significant bits of a difference spectral value are taken as second scaling, layer, in order to then, if desired, be entropy coded by the entropy coder 60b. A decoder using the 10 second scaling layer obtains difference spectral values with an accuracy of 16 bits at the output side, so that the second scaling layer, together with the first scaling layer, provides a losslessly decoded audio signal in CD quality. It is known that audio samples in CD quality with 15 a width of 16 bits are present. If on the other hand an audio signal in studio quality is fed to the coder, i.e. an audio signal with samples, with each sample including 24 bits, the coder may further 20 generate a third scaling layer including the last eight bits of a difference spectral value and also being entropy coded depending on demand (means 60 of Fig. 6). A fully equipped decoder obtaining the data stream with the 25 first scaling layer, the second scaling layer (16 most significant bits of the difference spectral values), and the third scaling layer (8 less significant bits of a difference spectral value) may provide a losslessly coded/decoded audio signal in studio quality, i.e. with a 30 word width of a sample of 24 bits present at the output of the decoder, using all three scaling layers. It is to be noted that in the studio area higher word lengths of the samples are customary than in the consumer 35 area. In the consumer area the word width is 16 bits in an audio CD, whereas in the studio area 24 bits or 20 bits are employed.
- 20 Based on the concept of the scaling in the IntMDCT area, as it has been set forth, thus all three accuracies (16 bits, 20 bits or 24 bits) or arbitrary accuracies scaled by minimally 1 bit may be scalably coded. 5 Here, the audio signal represented with 24 bit accuracy is represented in the integer spectral region with the aid of the inverse IntMDCT and scalably combined with a hearing adapted MDCT-based audiocoder output signal. 10 The integer difference values present for the lossless representation are now not completely coded in a scaling layer, but at first with lower accuracy. Only in a further scaling layer are the residual values transmitted that 15 necessary for the exact representation. Alternatively however, a difference spectral value could be represented entirely, i.e. with for example 24 bits, also in a further scaling layer, so that for decoding this further scaling layer the underlying scaling layer is not required. This 20 scenario, however, altogether leads to a higher bit stream size, but when the bandwidth of the transmission channel is unproblematic may contribute to a simplification in the decoder, since in the decoder scaling layers do then no longer have to be combined, but always one scaling layer 25 alone is sufficient for decoding. If for example the lower eight LSB, as it is illustrated in Fig. 9, are not transmitted at first, a scalability between 24 bits and 16 bits is achieved. 30 For the inverse transform of the values transmitted with lower accuracy into the time domain, the transmitted values are preferably scaled back to the original region, for example 24 bits, by multiplying them for example by 28. An 35 inverse IntMDCT is then applied to the correspondingly scaled-back values.
- 21 In the inventive accuracy scaling in the frequency domain, it is further preferred to also utilize the redundancy in the LSBs. If an audio signal for example has very little energy in the upper frequency domain, this also shows in 5 very small values in the IntMDCT spectrum, which are for example significantly smaller than values (-128, ..., 127) possible with for example 8 bits. This shows in a compressibility of the LSB values of the IntMDCT spectrum. Furthermore, it is to be noted that in very small 10 difference spectral values typically a number of bits from MSB to MSB-1 are equal to zero, and that then the first, leading 1 in a binarily coded difference spectral value does not occur before a bit with a significance MSB-n-1. In such a case, when a difference spectral value in the second 15 scaling layer includes only zeros, entropy coding is particularly well suited for the further data compression. According to a further embodiment of the present invention, for the second scaling layer 82 of Fig. 8a, a sample rate 20 scalability is preferred. A sample rate scalability is achieved by the difference spectral values up to a first cut-off frequency being contained in the second scaling layer, as it is illustrated in Fig. 9 on the right, whereas in a further scaling layer the difference spectral values 25 with a frequency between the first cut-off frequency and the maximum frequency are contained. Of course, further scaling may be performed, so that several scaling layers are made from the entire frequency domain. 30 In a preferred embodiment of the present invention, the second scaling layer in Fig. 9 includes difference spectral values up to a frequency of 24 kHz, corresponding to a sample rate of 48 kHz. The third scaling layer then contains the difference spectral values from 24 kHz to 48 35 kHz, corresponding to a sample rate of 96 kHz. It is further to be noted that in the second scaling layer and the third scaling layer not necessarily all bits of a - 22 difference spectral value have to be coded. In a further form of the combined scalability, the second scaling layer could include bits MSB to MSB-X of the difference spectral values up to a certain cut-off frequency. A third scaling 5 layer could then include the bits MSB to MSB-X of the difference spectral values from the first cut-off frequency to the maximum frequency. A fourth scaling layer could then include the residual bits for the difference spectral values up to the cut-off frequency. The last scaling layer 10 could then include the residual bits of the difference spectral values for the upper frequencies. This concept will lead to a division of the tablet in Fig. 9 into four quadrants, each quadrant representing a scaling layer. 15 In the scalability in frequency, in a preferred embodiment of the present invention, a scalability between 48 kHz and 96 kHz sample rate is described. The 96 kHz sample signal is at first only coded half in the IntMDCT area in the lossless extension layer and transmitted. If the upper part 20 is not transmitted in addition, it is assumed zero in the decoder. In the inverse IntMDCT (same length as in the coder), then a 96 kHz signal arises, which does not contain energy in the upper frequency domain and may thus be subsampled on 48 kHz without quality losses. 25 The above scaling of the difference spectral values in quadrants of Fig. 9 with fixed boundaries is favorable regarding the size of the scaling layers, because in a scaling layer in fact only e.g. 16 bits or 8 bits or the 30 spectral values up to the cut-off frequency or above the cut-off frequency have to be contained. An alternative scaling is to somewhat "soften" the quadrant boundaries in Fig. 9. In the example of the frequency 35 scalability this would mean not to apply a so-called "brickwall low pass" in that the difference spectral values before a cut-off frequency are unchanged and are zero after the cut-off frequency. Instead, the difference spectral - 23 values could also be filtered with an arbitrary low pass already somewhat impeding the spectral values below the cut-off frequency, but, above the cut-off frequency, leading to here also still being energy, although the 5 difference spectral values are decreasing in energy. In a so-generated scaling layer, then also spectral values above the cut-off frequency are contained. Since these spectral values, however, are relatively small, they are efficiently codable by entropy coding. The highest scaling layer would 10 in this case have the difference between the complete difference spectral values and the spectral values contained in the second scaling layer. The accuracy scaling may also somewhat be softened 15 similarly. The first scaling layer may also have spectral values with e.g. more than 16 bits, wherein the next scaling layer then still has the difference. Generally speaking, the second scaling layer thus has the difference spectral values with lower accuracy, whereas in the next 20 scaling layer the rest, i.e. the difference between the complete spectral values and the spectral values contained in the second scaling layer, is transmitted. With this, variable accuracy reduction is achieved. 25 The inventive method for coding or decoding is preferably stored on a digital storage medium, such as a floppy disc, with electronically readable control signals, wherein the control signals may cooperate with a programmable computer system so that the coding and/or decoding method may be 30 executed. In other words, a computer program product with a program code stored on a machine-readable carrier for performing the coding method and/or the decoding method is present, when the program product is executed on a computer. The inventive method may be realized in a 35 computer program with a program code for performing the inventive methods, when the program is executed on a computer.
- 24 In the following, as an example for an integer transform algorithm, it is gone into the IntMDCT transform algorithm described in "Audio Coding Based on Integer Transforms" 1 1 1 th AES convention, New York, 2001. The IntMDCT is 5 particularly favorable, since it has the attractive properties of the MDCT, such as good spectral representation of the audio signal, critical sampling, and block overlap. A good approximation of the MDCT by an IntMDCT also enables to use only one transform algorithm in 10 the coder shown in Fig. 5, as it is illustrated by an arrow 62 in Fig. 5. On the basis of Figs. 1 to 4, the substantial properties of this special form of an integer transform algorithm are explained. 15 Fig. 1 shows an overview diagram for the inventively preferred apparatus for processing time-discrete samples representing an audio signal, in order to obtain integer values based on which the Int-MDCT integer transform algorithm works. The time-discrete samples are windowed and 20 optionally converted to a spectral representation by the apparatus shown in Fig. 1. The time-discrete samples fed to the apparatus at an input 10 are windowed with a window w with a length corresponding to 2N time-discrete samples, to achieve integer windowed samples at an output 12, which are 25 suited to be converted to a spectral representation by means of a transform and in particular the means 14 for executing an integer DCT. The integer DCT is formed to generate N output values from N input values, which is in contrast to the MDCT function 408 of Fig. 4a, which only 30 generates N spectral values from 2N windowed samples due to the MDCT equation. For windowing the time-discrete samples, at first two time discrete samples are selected in means 16, which together 35 represent a vector of time-discrete samples. A time discrete sample selected by means 16 lies in the first quarter of the window. The other time-discrete sample lies in the second quarter of the window, as it is explained in - 25 still greater detail on the basis of Fig. 3. To the vector generated by means 16 is now a rotation matrix of the dimension 2 x 2 is applied, wherein this operation is not performed immediately, but by means of several so-called 5 lifting matrices. A lifting matrix has the property of only comprising one element dependent on the window w and being unequal "1" or "0 . 10 The factorization of wavelet transforms into lifting steps is illustrated in the publication "Factoring Wavelet Transforms Into Lifting Steps", Ingrid Daubechies and Wim Sweldens, preprint, Bell Laboratories, Lucent Technologies, 15 1996. In general, a lifting scheme is a simple relation between perfectly reconstructed filter pairs having the same low-pass or high-pass filter. Each pair of complementary filters may be factorized into lifting steps. This applies in particular to Givens rotations. Consider 20 the case in which the poly-phase matrix is a Givens rotation. Then, the following applies: cos a -sina 1 "f si- n 1 0 1( (sina cosa (0 1 (in 10 1 ( 25 Each of the three lifting matrices to the right of the equality sign has the value "1" as main diagonal elements. Furthermore, in each lifting matrix an element not on the main diagonal equals 0, and an element not on the main diagonal is dependent on the rotation angle a. 30 The vector is now multiplied by the third lifting matrix, i.e. the lifting matrix on the far right in the above equation, to obtain a first result vector. This is illustrated in Fig. 1 by means 18. Now the first result 35 vector is rounded with an arbitrary rounding function mapping the set of real numbers to the set of integers, as it is illustrated in Fig. 1 by means 20. At the output of - 26 means 20, a rounded first result vector is obtained. The rounded first result vector is now fed to means 22 for multiplying it by the center, i.e. second, lifting matrix, to obtain a second result vector, which is again rounded in 5 means 24, to obtain a rounded second result vector. The rounded second result vector is now fed to means 26 for multiplying it by the lifting matrix set forth on the left in the above equation, i.e. the first one, to obtain a third result vector which is in the end still rounded by 10 means of means 28 to obtain integer windowed samples in the end at the output 12, which now, when a spectral representation thereof is desired, have to be processed by means 14 to obtain integer spectral values at a spectral output 30. 15 Preferably, means 14 is embodied as integer DCT. The discrete cosine transform according to type 4 (DCT-IV) with a length N is given by the following equation: 20 X,(m)= x(k)cos (2k + 1)(2m +1) (2) V N k=o 4 The coefficients of the DCT-IV form an orthonormal N x N matrix. Each orthogonal N x N matrix may be split up into N 25 (N-1)/2 Givens rotations, as it is explained in the publication P. P. Vaidyanathan, "Multirate Systems And Filter Banks", Prentice Hall, Englewood Cliffs, 1993. It is to be noted that there are also further split-ups. 30 With reference to the classifications of the various DCT algorithms, reference is to be made to H. S. Malvar, "Signal Processing With Lapped Transforms", Artech House, 1992. In general, the DCT algorithms differ by the kind of their basis functions. While the DCT-IV, which is preferred 35 here, includes non-symmetrical basis functions, i.e. a cosine quarter wave, a cosine 3/4 wave, a cosine 5/4 wave, a cosine 7/4 wave, etc., the discrete cosine transform e.g.
- 27 of the type II (DCT-II) has axis-symmetrical and point symmetrical basis functions. The 0 th basis function has a DC component, the first basis function is half a cosine wave, the second basis function is a whole cosine wave, 5 etc. Due to the fact that the DCT-II particularly takes the DC component into account, it is used in the video coding, but not in the audio coding, since in the audio coding in contrast to the video coding the DC component is irrelevant. 10 In the following, it is gone into how the rotation angle x of the Givens rotation depends on the window function. A MDCT with a window length of 2N may be reduced to a 15 discrete cosine transform of type IV with a length N. This is achieved by the TDAC operation being performed explicitly in the time domain and the DCT-IV then being applied. With a 50% overlap, the left half of the window for a block t overlaps with the right half of the preceding 20 block, i.e. the block t-1. The overlapping part of two successive blocks t-1 and t is preprocessed in the time domain, i.e. before the transform, i.e. between the input 10 and the output 12 of Fig. 1, as follows: 25 £, (k) _ f + k) - w -, 1-kL, + k) i, (N--k)) w(-Lk) w( + k) x,-l-k 3) The values designated with the tilde are the values at the 30 output 12 of Fig. 1, whereas x values designated without tilde in the above equation are the values at the input 10 or behind the means 16 for selecting. The running index k runs from 0 to N/2-1, while w represents the window function. 35 From the TDAC condition for the window function w, the following connection applies: - 28 { +k) +{ -1-k (4) For certain angles ak, k = 0, ... , N/2-1, this 5 preprocessing in the time domain may be written as Givens rotation, as it has been explained. The angle a of the Givens rotation depends on the window function w as follows: 10 a = arctan[w(N/2-1-k) / w(N/2 + k)] (5) It is to be noted that arbitrary window functions w may be employed as long as they meet this TDAC condition. 15 In the following, on the basis of Fig. 2, a cascaded coder and decoder is described. The time-discrete samples x(0) to x(2N-1) "windowed" together by a window are at first selected by means 16 of Fig. 1 such that the sample x(0) 20 and the sample x(N-1), i.e. a sample from the first quarter of the window and a sample from the second quarter of the window, are selected to form the vector at the output of means 16. The crossing arrows schematically illustrate the lifting multiplications and ensuing roundings of means 18, 25 20 or 22, 24 or 26, 28, in order to obtain the integer windowed samples at the input of the DCT-IV blocks. When the first vector is processed as described above, also a second vector is selected from the samples x(N/2-1) and 30 x(N/2), i.e. again a sample from the first quarter of the window and a sample from the second quarter of the window, and again processed by the algorithm described in Fig. 1. In analogy therewith, all other sample pairs from the first and second quarters of the window are treated. The same 35 processing is performed for the third and fourth quarters of the first window. At the output 12, now N windowed integer samples are present, which are now fed to a DCT-IV - 29 transform, as it is illustrated in Fig. 2. In particular, the integer windowed samples of the second and third quarters are fed to a DCT. The windowed integer samples of the first quarter of the window are processed, together 5 with the windowed integer samples of the fourth quarter of the preceding window, into a preceding DCT-IV. In analogy therewith, the fourth quarter of the windowed integer samples in Fig. 2, together with the first quarter of the next window, is fed to a DCT-IV transform. The center 10 integer DCT-IV transform 32 shown in Fig. 2 now provides N integer spectral values y(0) to y(N-1). These integer spectral values may now for example simply be entropy coded, without an intervening quantization being required, since the windowing and transform provide integer output 15 values. In the right half of Fig. 2, a decoder is illustrated. The decoder including inverse transform and "inverse windowing" works inversely to the coder. It is known that for the 20 inverse transform of a DCT-IV, an inverse DCT-IV may be used, as it is illustrated in Fig. 2. The output values of the decoder DCT-IV 34 are now, as it is illustrated in Fig. 2, inversely processed with the corresponding values of the preceding transform or the following transform, in order to 25 generate again time-discrete audio samples x(0) to x(2N-l) from the integer windowed samples at the output of means 34 or the preceding and following transform. The output-side operation takes place by an inverse Givens 30 rotation, i.e. such that the blocks 26, 28 or 22, 24 or 18, 20 are passed in the opposite direction. This is to be illustrated in greater detail on the basis of the second lifting matrix of equation 1. When (in the coder) the second result vector is formed by multiplication of the 35 rounded first result vector by the second lifting matrix (means 22), the following term results: (x,y) - (x,y+xsina) (6) - 30 The values x, y on the right side of equation 6 are integers. This however does not apply for the value x sin a. Here, the rounding function r has to be introduced, as it is illustrated in the following equation. 5 (x,y) " (x,y + r(xsina)) ( 7 ) This operation executes means 24. 10 The inverse mapping (in the decoder) is defined as follows: (x',y') 1- (x',y'-r(x'sin a)) (8) Due to the minus sign in front of the rounding operation, 15 it becomes apparent that the integer approximation of the lifting step may be reversed, without introducing an error. The application of this approximation to each of the three lifting steps leads to an integer approximation of the Givens rotation. The rounded rotation (in the coder) may be 20 reversed (in the decoder), without introducing an error, namely by passing the inverse rounded lifting steps in reversed order, i.e. when in decoding the algorithm of Fig. 1 is performed from bottom to top. 25 If the rounding function r is point-symmetrical, the inversed rounded rotation is identical to the rounded rotation with the angle -a, and reads as follows: C cosa sina( -sina cosa (9) 30 The lifting matrices for the decoder, i.e. for the inverse Givens rotation, in this case immediately result from equation (1), by simply replacing the term "sin a" by the term "-sin a". 35 In the following, on the basis of Fig. 3, the split-up of a usual MDCT with overlapping windows 40 to 46 is set forth - 31 once again. The windows 40 to 46 each overlap 50%. Per window, at first Givens rotations within the first and second quarters of a window or within the third and fourth quarters of a window are executed, as it is schematically 5 illustrated by the arrows 48. Then, the rotated values, i.e. the windowed integer samples, are fed to an N-to-N DCT such that always the second and third quarters of a window or the fourth and first quarters of a successive window are together converted to a spectral representation by means of 10 a DCT-IV algorithm. Therefore, the usual Givens rotations are split up into lifting matrices, which are executed sequentially, wherein after each lifting matrix multiplication a rounding step is 15 introduced such that the floating-point numbers are rounded immediately after their development such that before each multiplication of a result vector by a lifting matrix the result vector has only integers. 20 The output values always stay integer, it being preferred to also use integer input values. This does not represent a limitation, since any exemplary PCM samples, as they are stored on a CD, are integer number values the value range of which varies depending on bit width, i.e. depending on 25 whether the time-discrete digital input values are 16-bit values or 24-bit values. Nevertheless, as it has been set forth, the entire process is invertible by executing the inverse rotations in reversed order. Thus, an integer approximation of the MDCT with perfect reconstruction 30 exists, namely a lossless transform. The transform shown provides integer output values instead of floating-point values. It provides a perfect reconstruction, so that no error is introduced when a 35 forward and then a backward transform are executed. The transform, according to a preferred embodiment of the present invention, is a replacement for the modified discrete cosine transform. Other transform methods may, - 32 however, also be executed in an integer manner, as long as a split-up into rotations and a split-up of the rotations into lifting steps is possible. 5 The integer MDCT has most of the favorable properties of the MDCT. It has an overlapping structure, whereby better frequency selectivity than in non-overlapping block transforms is obtained. Due to the TDAC function, which is already taken into account when windowing prior to the 10 transform, critical sampling is maintained so that the overall number of spectral values representing an audio signal equals the overall number of input samples. Compared with a normal MDCT providing floating-point 15 samples, in the described preferred integer transform, it shows that only in the spectral region in which there is little signal level the noise is increased in comparison with the normal MDCT, whereas this noise increase does not make itself felt at significant signal levels. For this, 20 the integer processing lends itself for an efficient hardware implementation, since only multiplication steps are used, which may easily be split up into shift/add steps, which may be implemented in hardware easily and quickly. Of course, a software implementation is also 25 possible. The integer transform provides a good spectral representation of the audio signal and yet remains in the area of integers. When it is applied to tonal parts *of an 30 audio signal, this results in good energy concentration. With this, an efficient lossless coding scheme may be built up by simply cascading the windowing/transform illustrated in Fig. 1 with an entropy coder. In particular, stacked coding using escape values, as it is employed in MPEG AAC, 35 is favorable. It is preferred to scale down all values by a certain power of two until they fit in a desired code table, and then code the omitted least significant bits in addition. In comparison with the alternative of the use of - 33 larger code tables, the alternative described is more favorable with regard to the storage consumption for storing the code tables. An almost lossless coder could also be obtained by simply omitting certain of the least 5 significant bits. In particular for tonal signals, entropy coding of the integer spectral values enables high coding gain. For transient parts of the signal, the coding gain is low, 10 namely due to the flat spectrum of transient signals, i.e. due to a small number of spectral values equal to or almost 0. As it is described in J. Herre, J. D. Johnston: "Enhancing the Performance of Perceptual Audio Coders by Using Temporal Noise Shaping (TNS)" 101 st AES Convention, 15 Los Angeles, 1996, preprint 4384, this flatness may however be used by using a linear prediction in the frequency domain. An alternative is a prediction with open loop. Another alternative is the predictor with closed loop. The first alternative, i.e. the predictor with open loop, is 20 called TNS. The quantization after the prediction leads to adaptation of the resulting quantization noise to the temporal structure of the audio signal and thus prevents pre-echoes in psychoacoustic audio coders. For lossless audio coding, the second alternative, i.e. with a predictor 25 with closed loop, is more suited, since the prediction with closed loop allows accurate reconstruction of the input signal. When this technique is applied to a generated spectrum, a rounding step has to be performed after each step of the prediction filter in order to stay in the area 30 of the integers. By using the inverse filter and the same rounding function, the original spectrum may accurately be produced. In order to take advantage of the redundancy between two 35 channels for data reduction, also center-side coding may be employed in a lossless manner, when a rounded rotation with an angle a/4 is used. In comparison with the alternative of calculating the sum and difference of the left and right - 34 channel of a stereo signal, the rounded rotations have the advantage of the energy maintenance. The use of so-called joint stereo coding techniques may be switched on or off for each band, as it is also performed in the standard MPEG 5 AAC. Further rotation angles may also be taken into account to be able to reduce redundancy between two channels more flexibly.
Claims (33)
1. Apparatus for coding a time-discrete audio signal to obtain coded audio data, comprising: 5 means (52) for providing a quantization block of spectral values of the time-discrete audio signal quantized using a psychoacoustic model (54); 10 means (58) for inversely quantizing the quantization block and for rounding the inversely quantized spectral values to obtain a rounding block of rounded inversely quantized spectral values; 15 means (56) for generating an integer block of integer spectral values using an integer transform algorithm formed to generate the integer block of spectral values from a block of integer time-discrete samples; 20 combination means (58) for forming a difference block depending on a spectral value-wise difference between the rounding block and the integer block, to obtain a difference block with difference spectral values; and 25 means (60) for processing the quantization block and the difference block to generate coded audio data including information on the quantization block and information on the difference block. 30
2. Apparatus of claim 1, wherein means (52) for providing is formed to generate a MDCT block of MDCT spectral values from a time block of temporal audio signal values by means of 35 an MDCT, and - 36 quantize the MDCT block using a psychoacoustic model to generate the quantization block comprising quantized MDCT spectral values. 5
3. Apparatus of claim 2, wherein the means (56) for generating the integer block is formed to execute an IntMDCT on the time block to generate the integer block comprising IntMDCT 10 spectral values.
4. Apparatus of one of the preceding claims, wherein the means (52) for providing is formed to 15 calculate the quantization block using a floating point transform algorithm.
5. Apparatus of one of claims 1 to 3, 20 wherein the means (52) for providing is formed to calculate the quantization block using the integer block generated by means (56) for generating.
6. Apparatus of one of the preceding claims, 25 wherein the means (60) for processing is formed to subject (60a) the quantization block to entropy coding, to obtain an entropy-coded quantization block, 30 to subject (60b) the rounding block to entropy coding, to obtain an entropy-coded rounding block, and to convert the entropy-coded quantization block to a first scaling layer of a scaled data stream 35 representing the coded audio data, and to convert the entropy-coded rounding block to a second scaling layer of the scaled data stream. - 37
7. Apparatus of claim 6, wherein the means (60) for processing is further formed to use one of the plurality of code tables 5 depending on the quantized spectral values for the entropy coding of the quantization block, and wherein the means (60) for processing is further formed to select one of a plurality of code tables 10 depending on a property of a quantizer usable in a quantization for generating the quantization block for the entropy coding of the difference block.
8. Apparatus of one of the preceding claims, 15 wherein the means (52) for providing is formed to use one of a plurality of windows for windowing a temporal block of audio signal values depending on a property of the audio signal, and 20 wherein the means (56) for generating is formed to make the same window selection for the integer transform algorithm. 25
9. Apparatus of one of claims 1 to 8, wherein the means for generating is formed to use an integer transform algorithm, comprising: 30 windowing the time-discrete samples with a window (w) with a length corresponding to 2N time-discrete samples, to provide windowed time-discrete samples for a conversion of the time-discrete samples to a spectral representation by means of a transform 35 capable of generating N output values from N input values, wherein the windowing comprises the following substeps: - 38 selecting (16) a time-discrete sample from a quarter of the window and a time-discrete sample from another quarter of the window to obtain a vector of time-discrete samples; 5 applying a square rotation matrix the dimension of which matches the dimension of the vector to the vector, wherein the rotation matrix is representable by a plurality of lifting matrices, 10 wherein a lifting matrix only comprises one element dependent on the window (w) and being unequal to 1 or 0, wherein the substep of applying comprises the following substeps: 15 multiplying (18) the vector by a lifting matrix to obtain a first result vector; rounding (20) a component of the first result vector with a rounding function (r) mapping a 20 real number to an integer to obtain a rounded first result vector; and sequentially performing the steps of multiplying (22) and rounding (24) with another lifting matrix, until 25 all lifting matrices are processed, to obtain a rotated vector comprising an integer windowed sample from the quarter of the window and an integer windowed sample from the other quarter of the window, and 30 performing the step of windowing for all time-discrete samples of the remaining quarters of the window to obtain 2N filtered integer values; and converting (14) N windowed integer samples to a 35 spectral representation by an integer DCT for values with the filtered integer samples of the second quarter and the third quarter of the window, to obtain N integer spectral values. - 39
10. Apparatus of one of the preceding claims, wherein the means (52) for providing the quantization block is formed to perform a prediction of spectral 5 values over the frequency using a prediction filter prior to a quantization step (52b), to obtain prediction residual spectral values representing the quantization block after a quantization; 10 wherein also a prediction means is provided, which is formed to perform a prediction over the frequency of the integer spectral values of the integer block, wherein also rounding means is provided to round prediction residual spectral values due to the integer 15 spectral values representing the rounding block.
11. Apparatus of one of the preceding claims, wherein the time-discrete audio signal comprises at 20 least two channels, wherein the means (52) for providing is formed to perform center/side coding with spectral values of the time-discrete audio signal to obtain the quantization 25 block after quantization of center/side spectral values, and wherein the means (56) for generating the integer block is formed to also perform center/side coding 30 corresponding to the center/side coding of the means (52) for providing.
12. Apparatus of one of the preceding claims, 35 wherein the means (60) for processing is formed to generate a MPEG-2 AAC data stream, wherein in a field Ancillary Data ancillary information for the integer transform algorithm is introduced. - 40
13. Apparatus of one of the preceding claims, wherein the means for processing (60) is formed to output the coded audio data as data stream with a 5 plurality of scaling layers.
14. Apparatus of claim 13, wherein the means for processing (60) is formed to 10 insert information on the quantization block into a first scaling layer (81), and to insert information on the difference block into a second scaling layer (82).
15. Apparatus of claim 13, 15 wherein the means for processing (60) is formed to insert information on the quantization block into a first scaling layer, and to insert the information on the difference block into at least a second and a 20 third scaling layer.
16. Apparatus of claim 15, wherein in the second scaling layer difference 25 spectral values with reduced accuracy are contained, and in one or more higher scaling layers a residual part of the difference spectral values is contained.
17. Apparatus of claim 15 or 16, 30 wherein the information on the difference block includes binarily coded difference spectral values, wherein the second scaling layer for difference 35 spectral values includes a number of bits from a most significant bit (MSB) to a less significant bit (MSB x) for a difference spectral value, and - 41 wherein the third scaling layer includes a number of bits starting from a less significant bit (MSB-x-1) to a least significant bit (LSB). 5
18. Apparatus of claim 17, wherein the time-discrete audio signal is present in form of samples with a width of 24 bits, and 10 wherein the means for processing (60) is formed to Insert more significant 16 bits of difference spectral values into the second scaling layer, and to insert residual 8 bits of a difference spectral value into the third scaling layer, so that a decoder reaches CD 15 quality using the second scaling layer, wherein a decoder reaches studio quality using also the third scaling layer.
19. Apparatus of claim 15, 20 wherein the means (60) for processing is formed to insert at least part of difference spectral values for representation of a low-pass filtered signal into a second scaling layer, and to insert a difference 25 between the difference spectral values in the second scaling layer and original difference spectral values into at least one further scaling layer.
20. Apparatus of claim 15 or 19, 30 wherein the means (60) for processing is formed to insert at least part of different spectral values up to a certain cut-off frequency into a second scaling layer, and to. insert at least part of difference 35 spectral values from the certain cut-off frequency to a higher frequency into a third scaling layer. - 42
21. Method of coding a time-discrete audio signal to obtain coded audio data, comprising: providing (52) a quantization block of spectral values 5 of a time-discrete audio signal quantized using a psychoacoustic model (54); inversely quantizing (58) the quantization block and rounding the inversely quantized spectral values to 10 obtain a rounding block of rounded inversely quantized spectral values; generating (56) an integer block of integer spectral values using an integer transform algorithm formed to 15 generate the integer block of spectral values from a block of integer time-discrete samples; forming (58) a difference block depending on a spectral value-wise difference between the rounding 20 block and the integer block, to obtain a difference block with difference spectral values; and processing (60) the quantization block and the difference block to generate coded audio data 25 including information on the quantization block and information on the difference block.
22. Apparatus for decoding coded audio data having been generated from a time-discrete audio signal by 30 providing (52) a quantization block of spectral values of the time-discrete audio signal quantized using a psychoacoustic model (54), by inversely quantizing (58) the quantization block and rounding the inversely quantized spectral values to obtain a 35 rounding block of rounded inversely quantized spectral values, by generating (56) of an integer block of integer spectral values using an integer transform algorithm formed to generate the integer - 43 block of spectral values from a block of integer time-discrete samples, and by forming (58) a difference block depending on a spectral value-wise difference between the rounding block and the integer 5 block, to obtain a difference block with difference spectral values, comprising: means (70) for processing the coded audio data to obtain a quantization block and a difference block; 10 means (74) for inversely quantizing and rounding the quantization block to obtain an integer inversely quantized quantization block; 15 means (78) for spectral value-wise combining the integer quantization block and the difference block to obtain a combination block; and means (82) for generating a temporal representation 20 of the time-discrete audio signal using the combination block and using an integer transform algorithm inverse to the integer transform algorithm.
23. Apparatus for decoding of claim 22, 25 wherein the coded audio data is scaled and includes a plurality of scaling layers, wherein the means (70) for processing the coded audio 30 data is formed to ascertain the quantization block from the coded audio data as first scaling layer, and to ascertain the difference block from the coded audio data as second scaling layer. 35
24. Apparatus of claim 22, wherein the information on the difference block includes binarily coded difference spectral values, - 44 wherein the coded audio data is scaled and includes a plurality of scaling layers, wherein the means (70) for processing the coded audio 5 data is formed to ascertain the quantization block from the coded audio data as first scaling layer, and to extract a representation of the difference spectral values with reduced accuracy as second scaling layer. 10 25. Apparatus of claim 24, wherein the means (70) for processing the coded audio data is formed to extract a number of bits starting from a most significant bit to a less significant bit, 15 which is more significant than a least significant bit of a difference spectral value, as second scaling layer, and wherein the means (82) for generating a temporal 20 representation of the time-discrete audio signal is formed to synthetically generate missing bits for a difference spectral value before using the integer transform algorithm.
25
26. Apparatus of claim 25, wherein the means (82) is formed to perform an upscaling of the second scaling layer for the synthetical generation, wherein in the upscaling a 30 scale factor is used, which equals 2 n , wherein n is the number of less significant bits not contained in the second scaling layer, or to employ a dithering algorithm for the synthetical generation. 35
27. Apparatus of claim 22, wherein the coded audio data is scaled and includes a plurality of scaling layers, and - 45 wherein the means (70) for processing coded audio data is formed to ascertain the quantization block from the coded audio data as first scaling layer, and to ascertain low-pass filtered difference spectral values 5 as second scaling layer.
28. Apparatus of claim 22 or 27, wherein the coded audio data is scaled and includes a 10 plurality of scaling layers, and wherein the means (70) for processing the coded audio data is formed to ascertain the quantization block of the coded data as first scaling layer, and to 15 ascertain difference spectral values up to a first cut-off frequency as second scaling layer, wherein the first cut-off frequency is smaller than the maximum frequency of a difference spectral value, which may be generated in a coder. 20
29. Apparatus of claim 28, wherein the means (82) for generating a temporal representation is formed to set input values in an 25 integer transform algorithm of full length, which are above the cut-off frequency of the second scaling layer, to a predetermined value, and to downsample the temporal representation of the time-discrete audio signal after using the inverse integer transform 30 algorithm by a factor chosen corresponding to a ratio of a maximum frequency of a difference spectral value, which may be generated by a coder, and the cut-off frequency. 35
30. Apparatus of claim 29, wherein the predetermined value for all input values above the cut-off frequency is zero. - 46
31. Method of decoding coded audio data having been generated from a time-discrete audio signal by providing, inversely quantizing, generating, forming, and processing, comprising: 5 processing (70) the coded audio data to obtain a quantization block and a difference block; inversely quantizing (74) the quantization block and 10 rounding to obtain an integer inversely quantized quantization block; spectral value-wise combining (78) the integer quantization block and the difference block to obtain 15 a combination block; and generating (82) a temporal representation of the time discrete audio signal using a combination block and using an integer transform algorithm inverse to the 20 integer transformation algorithm.
32. Computer program with a program code for performing the method of coding of claim 21, when the program is executed on a computer. 25
33. Computer program with a program code for performing the method of decoding of claim 31, when the program is executed on a computer.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10217297A DE10217297A1 (en) | 2002-04-18 | 2002-04-18 | Device and method for coding a discrete-time audio signal and device and method for decoding coded audio data |
DE10217297.8 | 2002-04-18 | ||
PCT/EP2002/013623 WO2003088212A1 (en) | 2002-04-18 | 2002-12-02 | Device and method for encoding a time-discrete audio signal and device and method for decoding coded audio data |
Publications (2)
Publication Number | Publication Date |
---|---|
AU2002358578A1 true AU2002358578A1 (en) | 2003-10-27 |
AU2002358578B2 AU2002358578B2 (en) | 2007-02-22 |
Family
ID=
Also Published As
Publication number | Publication date |
---|---|
CA2482427A1 (en) | 2003-10-23 |
CN1625768A (en) | 2005-06-08 |
KR20050007312A (en) | 2005-01-17 |
DE10217297A1 (en) | 2003-11-06 |
DE50204426D1 (en) | 2005-11-03 |
WO2003088212A1 (en) | 2003-10-23 |
EP1495464A1 (en) | 2005-01-12 |
KR100892152B1 (en) | 2009-04-10 |
CN1258172C (en) | 2006-05-31 |
EP1495464B1 (en) | 2005-09-28 |
JP4081447B2 (en) | 2008-04-23 |
HK1077391A1 (en) | 2006-02-10 |
ATE305655T1 (en) | 2005-10-15 |
CA2482427C (en) | 2010-01-19 |
JP2005527851A (en) | 2005-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7275036B2 (en) | Apparatus and method for coding a time-discrete audio signal to obtain coded audio data and for decoding coded audio data | |
CA2482427C (en) | Apparatus and method for coding a time-discrete audio signal and apparatus and method for decoding coded audio data | |
US7343287B2 (en) | Method and apparatus for scalable encoding and method and apparatus for scalable decoding | |
US8195730B2 (en) | Apparatus and method for conversion into a transformed representation or for inverse conversion of the transformed representation | |
US20240096336A1 (en) | Decoder for Decoding an Encoded Audio Signal and Encoder for Encoding an Audio Signal | |
US7917564B2 (en) | Device and method for processing a signal having a sequence of discrete values | |
US7512539B2 (en) | Method and device for processing time-discrete audio sampled values | |
US20070196022A1 (en) | Device and method for processing at least two input values | |
CN103329197A (en) | Improved stereo parametric encoding/decoding for channels in phase opposition | |
EP2279562A2 (en) | Factorization of overlapping transforms into two block transforms | |
Geiger et al. | IntMDCT-A link between perceptual and lossless audio coding | |
Britanak et al. | Cosine-/Sine-Modulated Filter Banks | |
TWI812658B (en) | Methods, apparatus and systems for unified speech and audio decoding and encoding decorrelation filter improvements | |
US20170206905A1 (en) | Method, medium and apparatus for encoding and/or decoding signal based on a psychoacoustic model | |
Fraunhofer | INTMDCT-A LINK BETWEEN PERCEPTUAL AND LOSSLESS AUDIO CODING | |
Herre | Audio Coding Based on Integer Transforms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FGA | Letters patent sealed or granted (standard patent) | ||
MK14 | Patent ceased section 143(a) (annual fees not paid) or expired |