HK1086367B - Device and method for processing at least two input values - Google Patents
Device and method for processing at least two input values Download PDFInfo
- Publication number
- HK1086367B HK1086367B HK06108372.5A HK06108372A HK1086367B HK 1086367 B HK1086367 B HK 1086367B HK 06108372 A HK06108372 A HK 06108372A HK 1086367 B HK1086367 B HK 1086367B
- Authority
- HK
- Hong Kong
- Prior art keywords
- values
- value
- block
- integer
- input
- Prior art date
Links
Description
The present invention relates to signal processing and in particular to signal processing of sequentially present values, such as audio scan values or video scan values, which is particularly suitable for lossless, i.e. lossless, coding applications.
The present invention is also suitable for compression algorithms for discrete values containing audio and/or image information, and in particular for coding algorithms involving a transformation in the frequency range or time or place range, to which an encoding such as entropy encoding in the form of Huffman or arithmetic encoding is sub-switched.
Modern audio coding techniques, such as MPEG Layer3 (MP3) or MPEG AAC, use transformations such as the so-called modified discrete cosine transform (MDCT) to obtain a block-by-block frequency representation of an audio signal. Such an audio coder usually receives a stream of time-discrete audio sound values. The stream of audio sound values is windowset to obtain a window block of, for example, 1024 or 2048 window sound values.
Err1:Expecting ',' delimiter: line 1 column 774 (char 773)
In the audio decoder, the bitstream is divided into encoded quantized spectral values and side information by means of a bitstream demultiplexer. The entropy-encoded quantized spectral values are first entropy decoded to obtain the quantized spectral values. The quantized spectral values are then inverse quantized to obtain decoded spectral values that have quantization noise, but which is below the psychoacoustic masking threshold and will therefore be inaudible. These spectral values are then converted into a time representation by means of a synthesis filter bank to obtain discrete decoded audio values.
To achieve good frequency selectivity, modern audio encoders typically use block overlap. One such case is shown in Fig. 6a. For example, 2048 time-discrete audio samples are first taken and displayed by means of a device 402. The window embodying device 402 has a window length of 2N samples and outputs a block of 2N window samples. To achieve window overlap, a device 404 is used, which is only visually separated from device 402 for overview purposes in Fig. 6a, a second block of 2N window samples is displayed.Err1:Expecting ',' delimiter: line 1 column 177 (char 176)
In the decoder, the N spectral values of the first window, as shown in Fig. 6b, are fed to a device 412 performing an inverse modified discrete cosine transformation, and the N spectral values of the second window are fed to a device 414 performing an inverse modified discrete cosine transformation. Both the device 412 and the device 414 provide 2N sampling values for the first window and 2N sampling values for the second window, respectively.
In a device 416 designated in Fig. 6b by TDAC (TDAC = Time Domain Aliasing Cancellation), the overlap between the two windows is taken into account. In particular, a scan value y1 from the second half of the first window, i.e. with an index N+k, is added to a scan value y2 from the first half of the second window, i.e. with an index k, so that the output, i.e. the decoder, has N decoded time scan values.
Err1:Expecting ',' delimiter: line 1 column 358 (char 357)
If the window function implemented by the device 402 or 404 is denoted by w(k), where the index k is the time index, the condition must be fulfilled that the window weight w(k) squared plus the window weight w(N+k squared is 1 together, where k runs from 0 to N-1.
The disadvantage of the window method with subsequent MDCT function described in Fig. 6a is that the window is obtained by multiplying a time-discrete sampling value by a floating point number when thinking of a sine window, since the sine of an angle between 0 and 180 degrees apart from the angle 90 degrees does not give an integer.
Therefore, even if no psychoacoustic coding is used, i.e. if lossless coding is to be achieved, quantization at the output of the devices 408 and 410 is necessary to perform a reasonably manageable entropy coding.
In general, the current known integer transformations for lossless audio and/or video coding are obtained by breaking down the transformations used there into Givens rotations and applying the lifting scheme to each Givens rotation, thus introducing a rounding error at each step. For subsequent stages of Givens rotations, the rounding error accumulates more and more. The resulting approximation error is particularly problematic for lossless audio and/or video coding approaches, especially when transformations are used that yield, for example, 1.024 spectral values, while it is much larger, for example, in the well-known MDCT with overlap and additive discrete coding information (MDCT = discrete modified coding information).
Err1:Expecting ',' delimiter: line 1 column 509 (char 508)
As has been shown, the integers described are based on the breakdown of the transformation into Givens rotations and the application of the known lifting scheme to the Givens rotations, which brings about the problem of accumulative rounding errors. This is particularly so because many roundings must be made within a transformation, i.e. after each lifting step, so that rounding is particularly frequent, especially in long transformations involving correspondingly many lifting steps.
The following is a re-description of the MDCT window breakdown as described in DE 10129240 A1 with reference to Figures 9-11, whereby this breakdown of the MDCT window into Givens rotations with lifting matrices and corresponding roundings can be conveniently combined with the concept described in Figure 1 for the implementation and Figure 2 for the inverse implementation to obtain a complete integer MDCT approximation, i.e. an integer MDCT (MDCT) according to the present invention, using both a single and a reverse transformation concept as an example of an MDCT.
Fig. 3 shows an overview diagram of the device of choice for processing time-discrete scans representing an audio signal to obtain integer values, on which the Int-MDCT integer transformation algorithm works. The time-discrete scans are framed by the device shown in Fig. 3 and optionally converted into a spectral representation. The time-discrete scans, inserted into the device at an E 10 are framed with a window with an input of 2N time-discrete scans, to obtain 12 integer-scale scans at an output of 6 N, which is capable of producing output values by means of a transformation. In particular, the NDCT is suitable for output values of 40 N, which are produced in a spectral representation based on the NDCT output of 6 N. The NDCT is suitable for output values of 40 N, which is only a function of the NDCT output of 6 N.
The time-discrete values are first selected in a device 16 for the window of time-discrete values, two time-discrete values are selected, which together constitute a vector of time-discrete values. One time-discrete value selected by device 16 is located in the first quarter of the window. The other time-discrete value is located in the second quarter of the window, as shown in Fig. 5 in even more detail. The vector produced by device 16 is now loaded with a rotational matrix of dimension 2 x 2, whereby this operation is not performed directly, but by means of several so-called lifting matrices.
Err1:Expecting ',' delimiter: line 1 column 161 (char 160)
Err1:Expecting ',' delimiter: line 1 column 143 (char 142)
Err1:Expecting ',' delimiter: line 1 column 154 (char 153)
The vector is now multiplied by the third Lifting matrix, i.e. the Lifting matrix at the far right of the above equation, to obtain a first result vector. This is represented in Fig. 3 by a device 18. The first result vector is now rounded by any rounding function that represents the set of real numbers into the set of integers, as shown in Fig. 3.The rounded second result vector is now fed into a device 26 to multiply it by the left-hand side of the above equation, i.e. the first lifting matrix, to obtain a third result vector, which is finally rounded by a device 28 to finally obtain 12 full-window samples at the output, which now, if a spectral representation of the same is desired, must be processed by the device 14 to obtain 30 full-spectral values at a spectral output.
Preferably, device 14 is run as an integer DCT or an integer DCT.
The discrete cosine transformation of type 4 (DCT-IV) with length N is given by the following equation:
Err1:Expecting ',' delimiter: line 1 column 248 (char 247)
Err1:Expecting ',' delimiter: line 1 column 130 (char 129)
The following is a discussion of how the angle α of Givens rotation depends on the window function.
An MDCT with a window length of 2N can be reduced to a discrete cosine transformation of type IV with a length N. This is achieved by performing the TDAC operation explicitly in the time domain and then applying the DCT-IV. At a 50% overlap, the left half of the window for a block t overlaps the right half of the previous block, i.e. block t-1. The overlapping part of two successive blocks t-1 and t is pre-processed in the time domain, i.e. before the transformation, as follows, i.e. between input 10 and output 12 of Fig. 3:
The values indicated with the tilde are the values at output 12 of Fig. 3, while the x values indicated without tilde in the above equation are the values at input 10 or behind the device 16 to be selected.
The TDAC condition for the window function w has the following context:
For certain angles αk, k = 0, ..., N/2-1 this preprocessing in the time domain can be written as Givens rotation as performed.
The angle α of Givens rotation depends on the window function w as follows:
It should be noted that any window functions w can be used as long as they meet this TDAC condition.
Err1:Expecting ',' delimiter: line 1 column 217 (char 216)
When the first vector is processed as described above, a second vector is selected from the x ((N/2-1) and x (N/2) values, i.e. again a value from the first quarter of the window and a value from the second quarter of the window, and is processed by the algorithm described in Fig. 3.In particular, the integrated window values of the second and third quarters are fed into a DCT. The integrated window values of the first quarter of the window are fed into a preceding DCT-IV together with the integrated window values of the fourth quarter of the preceding window. Similarly, the fourth quarter of the integrated window values in Fig. 4 is fed into a DCT-IV transformation together with the first quarter of the next window. The median of the integrated DCT-IV transformation in Fig. 4 now gives 32 n-number integrated spectral y-n-z. These integrated values can be quantized without encoding, for example, because a simple entropy is required.The window and transformation are integers.
Err1:Expecting ',' delimiter: line 1 column 160 (char 159)
The initial operation is performed by an inverse Givens rotation, i.e. such that the blocks 26, 28 or 22, 24 or 18, 20 pass through in the opposite direction. This is shown in more detail by the second lifting matrix of equation 1.
The values of x, y on the right hand side of equation 6 are integers. This is not true for the value of x sin α. Here the rounding function r must be introduced as in the following equation. This operation is performed by Unit 24.
The inverse figure (in the decoder) is defined as follows:
The negative sign before the rounding operation shows that the integer approximation of the lifting step can be reversed without introducing an error. Applying this approximation to each of the three lifting steps results in an integer approximation of the Givens rotation. The rounded rotation (in the encoder) can be reversed (in the decoder) without introducing an error by running the inverse rounded lifting steps in reverse order, i.e. by decoding the algorithm in Figure 3 from top to bottom.
If the rounding function r is point-symmetric, the inverse rounded rotation is identical to the rounded rotation with angle -α and is:
Err1:Expecting ',' delimiter: line 1 column 210 (char 209)
In Figure 5 below, the breakdown of a typical MDCT with overlapping windows 40 to 46 is shown again. The windows 40 to 46 overlap by 50% each. For each window, Givens rotations are first performed within the first and second quarters of a window or within the third and fourth quarters of a window, as schematically shown by arrows 48.
The usual Givens rotation is therefore broken down into Lifting matrices, which are executed sequentially, introducing a rounding step after each Lifting Matrix multiplication, so that the floating point numbers are rounded immediately after their origination, so that before each multiplication of a result vector by a Lifting matrix the result vector has only integers.
The output values are therefore always integer, with the preference to use integer inputs as well. This is not a restriction, since any PCM input values, for example, as stored on a CD, are integer values, whose range of values varies depending on bitwidth, i.e. depending on whether the time-discrete digital input values are 16-bit or 24-bit values.
The transformation shown gives integer starting values instead of floating point values. It gives a perfect reconstruction so that no error is introduced when a forward and then a reverse transformation is performed. The transformation is a substitute for the modified cosine discrete transformation according to a preferred embodiment of the present invention. However, other transformation processes can also be performed in integers as long as a breakdown into rotations and a breakdown of the rotations into lifting steps is possible.
The integer MDCT has most of the advantages of the MDCT. It has an overlapping structure, which gives better frequency selectivity than non-overlapping block transformations. Due to the TDAC function, which is already taken into account in the window before the transformation, critical sampling is maintained so that the total number of spectral values representing an audio signal is equal to the total number of input sampling values.
Compared to a normal MDCT, which provides floating point values, the preferred integer transformation described shows that only in the spectral range where there is little signal level, noise is increased compared to the normal MDCT, while this noise increase is not noticeable at significant signal levels.
The whole-number transformation provides a good spectral representation of the audio signal while still remaining in the range of whole numbers. When applied to tonal parts of an audio signal, this results in a good energy concentration. This allows an efficient lossless coding scheme to be built by simply cascading the window/transformation shown in Fig. 3 with an entropy coder. In particular, stacked coding using escape values as inserted in MPEG AACes is convenient. It is preferred to scale down all values to a specific power of two until they fit into a desired table, and then to further decode the lost coded values by decoding the lost coded bits.
Err1:Expecting ',' delimiter: line 1 column 415 (char 414)The first alternative, i.e. the open-loop predictor, is called TNS. Quantization after prediction leads to an adaptation of the resulting quantization noise to the temporal structure of the audio signal and therefore prevents forechos in psychoacoustic audio coders. For lossless audio coding, the second alternative, i.e. with a closed-loop predictor, is more suitable because closed-loop prediction allows for an accurate reconstruction of the input signal. If this technique must be applied to a generated spectrum precisely, a round of prediction noise is performed after each step to re-filter the entire range.
To exploit redundancy between two channels for data reduction, a center-sided encoding can also be used losslessly when using a rounded rotation with an angle π/4. Compared to the alternative of calculating the sum and difference of the left and right channel of a stereo signal, rounded rotation has the advantage of energy conservation. The use of so-called joint stereo encoding techniques can be turned on or off for each band, as is also done in the standard MPEG AAC.
In particular, the transformation concept shown in Fig. 3 provides an integer implementation of the MDCT, i.e. an IntMDCT that works losslessly with respect to reverse transformation and subsequent back transformation. Furthermore, the rounding steps 20, 24, 28 and the corresponding rounding steps in the integer DCT (block 14 in Fig. 3) always allow an integer processing, i.e. processing with values that are more roughly quantized than those obtained, for example, by a glide-comma multiplication with a lifting matrix (blocks 18, 22, 26 of Fig. 3).
This means that the whole IntMDCT can also be performed computationally efficiently.
Err1:Expecting ',' delimiter: line 1 column 403 (char 402)
Err1:Expecting ',' delimiter: line 1 column 353 (char 352)
However, if the encoded signal is considered, i.e. in the example of transformation coders, the spectrum of a block of time-scan values, the rounding in the reverse transformation or, more generally, the quantization of such a signal leads to the introduction of an error into the signal, which superimposes on the ideal error-free spectrum of the signal a rounding error, which is typically, for example, in the case of Fig. 3 a white noise, covering all frequency shares of the spectral range considered equally.
Err1:Expecting ',' delimiter: line 1 column 132 (char 131)
Thus, in lossless encoding/decoding, there is also a requirement that a signal be losslessly reconstructed by special decoders, but that a signal also have the smallest possible rounding error in its spectral representation in order to maintain flexibility in that the spectral representation can also be used to feed non-ideal lossless decoders or to generate scaling layers, etc.
As already shown, the rounding error is expressed as white noise over the entire spectrum under consideration. On the other hand, especially in high-quality applications, which are particularly interesting for the lossless case, i.e. in audio applications with very high sampling frequencies, such as 96 kHz, the audio signal has a reasonable signal content only in a certain spectral range, which is typically expected to reach no more than 20 kHz. Typically, the range in which the most signal energy of the audio signal is concentrated will be the range between 0 and 10 kHz, while in the range above 10 kHz the signal energies will already decrease significantly.The result is that in spectral ranges, i.e. typically in high spectral ranges where no audio signal or very low audio signal energy is present, only the rounding error will be present. The rounding error is also difficult to code, particularly because of its non-deterministic nature, i.e. only with a relatively high bitrate.It's known as loss-making coding concepts.
Although in a lossless context a rounding error is thus not problematic in that it can be eliminated in decoding, it is nevertheless essential that the lossless decoding or reconstruction can be done at all. On the other hand, as has been shown, the rounding error is responsible for the spectral representation becoming faulty, i.e. distorted, compared to an ideal spectral representation of the unrounded signal.
The present invention is intended to provide an artifact-reduced approach to input processing.
This task is solved by a device that processes at least two input values as claimed 1, or a process that processes at least two input values as claimed 9, or a computer program as claimed 11.
The present invention is based on the finding that a reduction of the rounding error is achieved by, whenever two values would actually have to be rounded and the two rounded values are then combined, e.g. by addition to a third value, the rounding error is reduced by first adding the two values in the unrounded state, i.e. as a floating point representation, and then only adding the added starting value to the third value.
Err1:Expecting ',' delimiter: line 1 column 254 (char 253)
Another use case of the present invention for reducing rounding error is when a lifting step of a multidimensional lifting concept is preceded by butterflies, as for example when an N-point DCT is split into two DCTs of half length, i.e. with N/2 points. In this case, a butterfly step takes place before the actual multidimensional lifting and a rotation step takes place after the multidimensional lifting. In particular, the rounds required by the butterfly steps can be combined with the rounds of the first lifting step of the multidimensional lifting concept to reduce the rounding error.
Since the number of rounding steps in the MDCT with integer window/pre-processing and multidimensional lifting processing for transformation is already considerably reduced in comparison with the state of the art even without the application of the invention, the concept according to the invention contributes to a significant reduction of the already small rounding error that still remains, especially in this situation.
Err1:Expecting ',' delimiter: line 1 column 333 (char 332)
When an audio signal is considered with energy in the low frequency range, the device is trained to achieve a spectral depth-fitting of the generated rounding error, so that at high frequencies of the encoded signal there is neither signal energy nor noise energy, while the rounding error is mapped to the range where the signal has a lot of energy anyway.
In particular, for lossless coding applications, this is in contrast to the state of the art where a rounding error is spectrally high-fit filtering to bring the rounding error outside the audible range. This is therefore equivalent to the case where the spectral range in which the rounding error is located is either electronically or through the ear itself filtered out to eliminate the rounding error.
The concept of the spectral form of rounding error is preferred in lossless applications with high sampling rates, since, in particular, in cases where spectra theoretically extend above 40 kHz (due to over-sampling), the same situation is achieved in the high frequency range where no signal energy is present anyway, i.e. where very efficient coding can be done, as in the case of non-integer coding, where the signal energy is also zero in the high frequency range.
The fact that a large number of zeros are coded very efficiently and that the rounding error, which is problematic to encode, is moved to the range which is typically very finely coded, thus reduces the overall data rate of the signal compared to the case where the rounding error is distributed as white noise over the entire frequency range.
In one embodiment, the concept of shaping or reducing the approximation error is applied to invertible integer transformations, in particular IntMDCT, where there are two areas of application, namely, on the one hand, multidimensional lifting, which can greatly simplify the MDCT in terms of the required rounding steps, and on the other hand, the rounding operations required for the integer window, as occur in pre-processing before the actual DCT.
The error-feedback concept is used to spectrally form the rounding error, in which the rounding error is shifted to the frequency range in which the signal being processed has the greatest signal energy. In the case of audio signals and especially video signals, this will be the low frequency range, so that the error-feedback system has a deep-fitting character. This results in fewer rounding errors in the upper frequency range, where there are usually fewer signal elements. In the upper range, the rounding errors predominate in the state of the art, which then have to be coded, thus increasing the number of bits needed for a coding error.
The following are examples of preferred embodiments of the present invention, which are described in more detail in the accompanying drawings:
Fig. 1a block diagram of the concept for processing a signal with a sequence of discrete values with rounding error spectral forming;Fig. 2aea known concept for high-pass spectral forming of a quantization error;Fig. 2a concept for low-pass spectral forming of the rounding error;Fig. 2a block diagram according to an embodiment example for the spectral forming/rounding block:Fig. 3a block diagram of a preferred device for processing time-discrete audio sampling values to obtain integers from which integer spectral values can be determined;Fig. 4a brief diagram of the MDCT breakdown and inversion in two GIVT-Operations and a DCT-IVT-Operations; a diagram of the MDCT split into two DCT-IVT-Operations and a representation of the MDCT-IVT-Operations in red and red;Err1:Expecting ',' delimiter: line 1 column 325 (char 324)13a detailed representation of a multidimensional lifting step with a reverse transformation matrix;Fig. 14a representation of a multidimensional inverse lifting step with a reverse transformation matrix;Fig. 15a representation of the present invention for splitting a DCT-IV of length N into two DCT-IVs of length N/2;Fig. 16an application of the concept of the invention within the transformation with multidimensional lifting of Fig. 10;Fig. 17a representation of two successive lifting steps for the reduction of the circular error of the invention;Fig. 18a representation of the invention's conceptual approach for the reduction of the rotor in two successive lifting steps;Fig. 17 and 16 are preferred concepts.
Fig. 1 shows a device for processing a signal with a sequence of discrete values, which is entered into a device 202 for manipulation via a signal input 200 to a device 202. The signal is typically designed to have a first frequency range in which the signal has a high energy and to have a second frequency range in which the signal has a comparatively low energy. If the first signal is an audio signal, it will exist in the first frequency range, i.e. in the low frequency range, which have high energy and in the high frequency range, which have low energy.
The 202 manipulator is generally designed to manipulate the sequence of discrete values so as to obtain a sequence of manipulated values in which at least one manipulated value is not integer. This sequence of non-integer discrete values is fed into a device at the 204 round of the manipulated value sequence to obtain a sequence of rounded manipulated values. The 204 round device is designed to cause a spectral form of a circular error generated by the energy of the circulation so that a spectrally shaped circular error in the first frequency range, i.e. in the frequency range where the original spectral frequency has a high energy, also has a high energy, and that the spectral form of the circular error is also somewhat higher in the second frequency range, where the energy of the signal is lower than the frequency of the original signal. However, the spectral form of the circular error is not altered in the second frequency range, where the energy of the signal is also lower than the frequency of the original signal.
Preferably, the device for generating the faulty sequence of rounded manipulated values is coupled either directly or via further manipulation/rounding combinations with a device 206 for conversion to a spectral representation. Thus, the faulty sequence of rounded manipulated values can be fed directly into the device 206 for conversion to a spectral representation to achieve a direct spectrum of the faulty sequence of rounded manipulated values. However, in one embodiment, the manipulation device is a lifting step or a lifting matrix and the device is trained to rotate to obtain the non-contagious results of a rounded lifting step. In this case, a further device 204 is followed by a manipulation device designed to manipulate the result of a rounded lifting step.the second lifting step is performed, which in turn is followed by a device for the round, which in turn is followed by a third manipulating device, which implements the third lifting step, and then a manipulation is performed again, so that all three lifting steps are completed. Thus, a faulty sequence of rounded manipulated values derived from the original faulty sequence of rounded manipulated values at the output of the device 204 produces a faulty sequence of rounded manipulated values, which is then finally also translated preferably by an integer transformation into a spectral representation as shown by block 206.Err1:Expecting ',' delimiter: line 1 column 142 (char 141)
This spectrum is then fed to a device 208 for entropy coding of the spectral representation. The device for entropy coding may have any coding method, such as Huffman coding, arithmetic coding, etc. In particular, for coding a large number of spectral lines which are equal to zero and which are adjacent to each other, run-length coding is also suitable, which is of course not applicable in the state of the art, since here in such frequency ranges a actually deterministic signal has to be coded, which has a white spectrum and is therefore particularly advantageous for any type of coding tool, since the individual spectral values are completely uncorrelated from each other.
A preferred embodiment of the device 204 for the spectral forming round is discussed below with reference to Figures 2a, 2b, 2c.
Err1:Expecting ',' delimiter: line 1 column 169 (char 168)
Err1:Expecting ',' delimiter: line 1 column 427 (char 426)
Instead, as shown in Fig. 2b, a depth-fitting evaluation is performed to achieve a spectral formulation of the error not outside the perception range but exactly inside the perception range. To this end, the output signal of the additor 210, as shown in Fig. 2b, is fed into a rounding block 218 that implements some rounding function, such as a rounding, a rounding, a rounding by cutting, a rounding/rounding to the next integer input or to the next, next-next, next-next ... The whole error can be a return. In the input coupling, i.e. the additive 214 and the additive 210, there is now additionally a transition between the input and the output of the X-block, hence the addition of a transition to the Y-block (which is connected to the transition to the H-transform function).
In the above equation, x (n) is the input signal in the additive 210 and y (n) is the output signal from the rounding block 218.
The following equation is also valid:
Err1:Expecting ',' delimiter: line 1 column 80 (char 79)
In the Z-range , the result is:
The filter (1 - z-1 H ((z)) is used to form the spectral error, which is the rounding error.
The simplest deep pass transfer function can be obtained by, for example, setting H(z) = −1. In this simple example, the rounding error of the previous rounding operation is simply added to the value to be rounded before the next rounding operation is applied. This achieves a simple and for the present invention very efficient and thus preferred deep pass filtering of the rounding error.
Err1:Expecting ',' delimiter: line 1 column 691 (char 690)
Furthermore, Fig. 2c shows a parallel implementation, i.e. an implementation in which the values to be rounded are provided in parallel. Of course, this representation is only schematic. The values y0, y1, y2, ..., can be provided sequentially to obtain sequential output values, in which case a single implementation of the structure from the elements 210, 214, 216, 218, 220 is sufficient.
The rounding device 204 shown in Fig. 2c is thus effective in first calculating the rounded value [y0]. Then the rounding error i0 is calculated. Then the rounding error i0 is weighed (filtered) by block 220 with the transfer function H(z, which is preferably equal to −1, and fed into the adder 210. This filtered rounding error is added to the next value of the sequence yi, after which the result of the adder 210 in block 218 is rounded to obtain the next rounded value [y1]. The rounding error is then determined again by the adder 214, using the rounded value [y1] and the original value y1, while re-evaluating rounding error i1 for block 2202 in order to produce the same value of the rounding error in the next sequence.
It should be noted that the direction is not the same, which means that one can also progress from yi with larger indices to yi with smaller indices, i.e. in the opposite direction as shown in Fig. 2c, in particular by the arrows extending from block 220 to the additor 210.
In particular, in the case of the use of the integer MDCT (IntMDCT), the spectral formulation of the rounding error is preferably used most efficiently at sites that meet the following conditions:
The neighbouring values are (in the broadest sense) time signals which are later transformed into a spectral representation, i.e. transferred into the frequency range.
The following details the parts of the MDCT where the spectral forming of the rounding error is preferred.
Err1:Expecting ',' delimiter: line 1 column 616 (char 615)
Err1:Expecting ',' delimiter: line 1 column 883 (char 882)
The pair of values xN/2 and xN/2+1 is then followed by a bottom-top-bottom sequence, with a bottom step 29a followed by an upper step 29b, followed by a downward step 29c.
Fig. 7 shows the whole window by lifting. This calculation can also be easily sorted without changing the result as shown in Fig. 8. Thus, of course, all down steps (all steps 29a) can be performed first. Then all up steps (29b) can be performed, to finally perform all down steps 29c, so that a down block 31a, a up block 31b and again a down block 31c are obtained.
Fig. 9 now shows the concept in which the rounding is performed with spectral forming. The lifting calculation concept shown in Fig. 9 corresponds to Fig. 1 in that the input values x1, xN/2 represent the original sequence of integer discrete values at input 200. The evaluation blocks cs1, cs2, ..., csk in the bottom block 31a together form the device 202 for manipulation. The block designated with [.]/NoiseShaping represents the device 204 for rounding. Fig. 1.
In the example shown in Fig. 9, the sequence of defective rounded manipulated values is added to another sequence xN/2+1 to xN to obtain a new sequence of discrete integer values, which is again manipulated (by blocks s1, sk in upper block 31b) to then again achieve a rounding in upper block 31b by the element 204b. Then, again, as in lower block 31a, i.e. as in the case of the additive 205a, a value additive 205b is provided to obtain the new sequence, which is again extracted in a manipulator 202c, whereby the input of the Manic 202c is not specified in a further round and is rounded to another 202c in order to be added to the 202c in a further round, and is added to the 205c in order to be extracted in a further round, although the 202c is not specified.
The initial embodiment shown in Fig. 9 is a block of windowed scanning values fed into DCT-IV blocks that are moved according to the systematics shown in Fig. 4. These shifted DCT-IV blocks provide a transformation to convert a faulty sequence of rounded manipulated values into a spectral representation. The DCT-IV blocks in Fig. 4 are thus an implementation of the 206 device of Fig. 1.
The following is a description of the application of multidimensional lifting, with reference to Figures 10 to 15, in order to illustrate an integer implementation of the device for conversion into the spectral representation 206 of Figure 10a or an analogue integer implementation of the inverse implementation (for a decoder).
Fig. 10a shows a device for converting discrete values into a transformed representation with integer values. The discrete values are fed into the device via a first input 100a and a second input 100b. A first block of discrete values is fed through the input 100a, while a second block of discrete values is fed through the input 100b. The discrete values represent audio or image data or video data.The first and second blocks of discrete values can also include two images represented by discrete values or residual values after a prediction or difference values in a difference coding, etc. Alternatively, however, the two blocks of discrete values may have been subjected to pre-processing, such as in the integer implementation of the MDCT, where the first block and second block of discrete values have been generated by Givens rotations from actual windowed sampling values.although not directly audio scanning or discrete image scanning, audio or image information.
The first block of discrete values is fed into a device 102 via input 100a to process the first block of discrete values using a 1st transformation rule to obtain a first block of transformed values at an output of device 102 as shown in Fig. 10a. This first block of transformed values will typically not be integer but will include floating point values, as typically obtained by some transformation rule, such as a Fourier transform, a Laplace transform, an FFT, a DCT, a DST, an MDCT, an MDST, or any other smooth transformation, such as a waveform transformation with any dependent base functions, etc. The first block of transformed values is obtained by cutting a circle in any direction from the input or output of the first block 104 by cutting a circle in the direction of the input or output of the first block 104 by cutting a circle in any direction from the input or output of the first block 104 to obtain a rotation function.
The rounding rule implemented by the device 104 is therefore responsible for the fact that the first block of rounded transformed values again contains only integer values, the accuracy of which is determined by the rounding rule used by the device 104. The first block of rounded transformed values, as well as the second block of discrete values, which is adjacent to the second input 100b, are fed to a device 106 for summing to obtain a second block of summed values.If the discrete values of the second block are given as voltage values, for example, it is recommended that the first block of rounded transformed values be also given as voltage amplitudes, i.e. as values with the unit V. In this case, no unit problem is to be expected in the summation.
The second block of summed values is fed to a machine 108 to process the second block of summed values using a second transformation rule to obtain a second block of transformed values. If the transformation rule used in the machine 102 is, for example, a time-frequency transformation rule, then the second transformation rule used in the machine 108 is, for example, a frequency-time transformation rule. However, these ratios can also be reversed so that the first and second blocks of discrete values, for example, are spectral values, so that the machine 102 can be used to process the transformation rule values again, while the machine using the inverse transformation rule 108, or the inverse transformation rule 1, can obtain the transformation values and thus the transformation rule can be returned to the input direction.
The second block of transformed values is fed to a device 110 as shown in Fig. 10a to obtain a second block of rounded transformed values, which is then fed to a device 112 for subtraction, to subtract the second block of rounded transformed values from the first block of discrete values fed through the first input 108a to obtain a block of integers of the transformed representation output which can be output at an output of block 114. Processing the block of integers of the transformed values using a third integral transformation rule, which is also supplied in the same direction or differs from the one used by the next block of discrete values, is obtained by adding and subtracting the sum of the transformed values from the output of the first block 114 and the sum of the transformed values obtained from the second block of the transformed block, and by adding and subtracting the sum of the transformed values from the output of the first block 114 and the sum of the transformed values obtained from the second block of the transformed values.
However, even without the last three steps of processing, rounding and addition, in which the block of integer values of the transformed representation is used at output 114, a part of the entire transformed representation can already be obtained, e.g. the first half, which, when subjected to inverse processing, allows a recalculation of the first and second blocks of discrete values.
It should be noted that, depending on the transformation rule, the first, second and, if necessary, third transformation rule may be identical, as is the case, for example, with the DCT-IV. If an FFT is used as the first transformation rule, the IFFT, which is not identical to the FFT, could be used as the second (inverse) transformation rule.
For arithmetical reasons, it is preferred to provide the transformation rule in the form of a matrix, which is then a square NxN matrix if the number of discrete values of the first block is equal to the number of discrete values of the second block, if the number of discrete values of the first block and the number of discrete values of the second block are each equal to N.
The rounding devices 104 and 110 are designed to round according to a rounding function in an embodiment which produces rounded results with an accuracy lower than that of a machine that performs the functions shown in Fig. 10a. With regard to the rounding function, it should be noted that it only shows a non-integer number to the next larger or smaller integer in a preferred embodiment. The rounding function can also show the same to other integers, such as the number 17,7 to the number 10 or to the number 20, as long as the rounding function reduces the accuracy of the rounding number. The number shown above is an unrounded number with a comma behind it, while the number behind the comma is a number that has no comma.
Although in Fig. 10a the device 102 for processing using the 1st transformation rule and the device 108 for processing using the 2nd transformation rule are shown as separate devices, it should be noted that in a concrete implementation there can be only one transformation function unit which, controlled by a special flow control, first transforms the first block of discrete values and then, at the appropriate time of the algorithm, transforms the second block of summed values. Then the first and second transformation rules would be inversely identical. The same applies to the devices 104, 110 and so on. These need not be intended as separate devices either, but can be implemented by a circular function which is controlled again by each cycle of the first block of values and then transformed by the second block of values initially transformed by the first block.
In an embodiment, the first block of discrete values and the second block of discrete values are the integer window-scan values obtained at the output of block 28 in Fig. 3.The integer DCT in block 14 of Fig. 3 is then implemented by the integer algorithm shown in Fig. 1 so that the transformed representation in the example of the audio signal to which Fig. 3 refers represents the integer spectral values at the output 30 of the device shown in Fig. 3.
In Fig. 10b below, a corresponding inverse transformation device is shown, in which, in addition to the block of integer inputs at the output of block 112 of Fig. 10a, the second block of summed values at the output of the device 106 of Fig. 10a is also used.
Fig. 10b shows a device for inverse conversion of a block of integers of the transformed representation as obtained at output 114 from Fig. 10a and of the second block of summed values. The second block of summed values is fed into an input 120 of the inverse conversion device shown in Fig. 10b. The block of transformed representation is fed into another input 122 of the inverse conversion device.
The second block of summed values is fed to a device 130 for processing this block using the second transformation rule, if the last transformation rule used in coding was the second transformation rule. The device 130 initially delivers a first block of transformed values, which is fed to a device 132 for rounding, which in turn initially generates a first block of rounded transformed values. The first block of rounded transformed values is then subtracted from the block of transformed output values by a device 134 to obtain the first block of discrete values at a first output of 149 of the device of Fig. 10b.
This first block of discrete values is fed to a device 150 to process this block using the 1st transformation rule to obtain a second block of transformed values at the output of device 150. This second block of transformed subtracted values is rounded again at device 152 to obtain a second block of rounded transformed values. This second block of rounded transformed values is subtracted from the 2nd block of summed values entered via input 120 to obtain a second block of discrete values at an output 136 at the output.
With regard to the relationship of the first, second and third transformation requirements and the specific implementation of the individual functional blocks in Fig. 10b by common functional units and corresponding flow control/interval storage, reference is made to the statements made with reference to Fig. 10a.
The following is a preferred embodiment of the device for converting the generic representation in Fig. 10a into a transformed representation, with reference to Fig. 10c. The embodiment in Fig. 10a includes a further transformation/rounding compared to Fig. 10a to generate the second block of added values into the next block of integer values.
Err1:Expecting ',' delimiter: line 1 column 610 (char 609)
The device 108 for processing using the 2nd transformation rule is also designated as a DCT-IV transformer. The subtraction device 112 is also trained in the preferred embodiment shown in Fig. 10c to perform a value-wise subtraction, in that the initial values of round 110, i.e. the values of the second block of rounded transformed values, are subtracted individually from the first block of discrete values. In the embodiment shown in Fig. 10c, it is preferred to perform a corresponding subtraction, in that a value of the second block with an order of ten + n i is subtracted from a value of the first block with the order of i, whereby the inverse of i runs from 0 to N-1.
The subtraction device 112 already supplies a block of integers of the transformed representation, i.e. the integers y0 to yN-1 of the transformed representation, to obtain the remaining integers of the transformed representation, i.e. the further block yN to y2N-1, if this is also desired, the block of integers of the transformed representation, which is adjacent to the output 114, undergoes a transformation using the third transformation rule of the transformer 140, the initial values of which are rounded again, as shown by a rounding device 142, to add up the second block of integers summed by the sum of the values of the yN-1 and the sum of the values of the yN-1 and the yN-1 respectively. The initial values of the transformed block 146 are then rounded again, as shown by a rounding device 142, to add up the second block summed by the sum of the values of the yN-1 and the yN-1 respectively.
In the following, a device for inverting the transformed representation is shown in Fig. 11 using an example of an embodiment. It should be noted that the device in Fig. 11 reverses without loss the operations performed by the device in Fig. 10c. Fig. 11 corresponds to Fig. 10b except for the additional transformation/rounding step to produce from the further block of transformed values the second block of summed values, which is entered into the input 120 in the input example shown in Fig. 10b. It should be noted that the function of addition is actually reversed by the function of the substring in each case.
The subtractor 128 shown in Fig. 11, the additor 134 and the further subtractor 154 are retrained to perform a single-value addition/subtraction using again the same ordinal number processing as was also shown with reference to Fig. 10c. If a different ordinal number use than that shown in Fig. 10c were used, this would be taken into account accordingly in Fig. 11.
At the output of subtractor 134 there is already the first block of discrete values 136 denoted by x0 to xN-1. _In order to obtain the rest of the reverse transformation representation, the first block of discrete values is fed to the transformer 150 working with the first transformation rule, whose output values are rounded by the round 152 and subtracted from the second block of subtracted values at the output of subtractor 128 to finally obtain the second block of discrete values 156 denoted by xN, ... , x2N-1.
The following illustration, with reference to Figures 12 to 15, shows the mathematical background of the transformation for the devices as shown in Figures 10a, 10b, 10c and 11. The transformation and inverse transformation apparatus shown herein creates whole number transformation methods for lossless audio coding, in which the approximation error is reduced.
Usually the lifting scheme is used to obtain an invertible integer approximation of a Givens rotation.
This integer approximation is achieved by using a rounding function after each addition, i.e. after each lifting step.
Err1:Expecting ',' delimiter: line 1 column 235 (char 234)
This lifting decomposition, which is one-dimensional, i.e. only refers to a 2x2 scaling matrix, is extended to the multidimensional case. In detail, all values from the above equation are replaced by nxn matrices, where n, i.e. the number of discrete values of a block, is greater than or equal to 2. Thus, it follows that for any nxn matrix T, which is preferably invertible, the following decomposition into 2n x 2n block matrices is possible, wherein the n x n unit matrix describes:
In addition to simple operations like permutations or multiplication by negative 1, all three blocks of this decomposition have the following general structure.
A generalized lifting scheme, hereinafter referred to as multidimensional lifting, can be used for this 2n x 2n block matrix.
For a vector of values x = (x0, ..., X2n-1), the application of this block matrix gives the following equation:
It should be noted that on the right-hand side of the above equation there is a vector whose dimension, i.e. its number of rows, is 2n. The first n components, i.e. the components from 0 to n-1, correspond to x0 to xn-1. The second n components, i.e. the second half of the vector, which is obtained on the right-hand side of the above equation, is equal to a sum of the second block of discrete values, i.e. Xn, ..., X2n-1, but now summed with the multiplication of the matrix A, which corresponds to the transformation matrix of Fig. 10a, 10b, 10c and 11, and the first block of discrete values x0, ..., xn-1. The transformation matrix, or second and third transformation rule, is the first.
It 's like the usual lifting scheme with 2 x 2 matrices of the form . these 2n x 2n matrices can be used for invertible integer approximations of the transformation T as follows. For integer input values (x0, ..., x2n-1), the floating point output values (y0, ..., yn-1) = A. (x0, ..., xn-1) are rounded to integer values before being added to the integer values (xn, ..., x2n-1). The inverse of the block matrix is given as follows:
Thus, this process can be reversed without error by simply using the same matrix A and the same rounding function, and by subtracting the resulting values instead of adding them in the back-processing.
The values (x0, ..., xn-1) are not modified in the forward step shown in Fig. 13 and are still present for the reverse step, i.e. the backward step in Fig. 14.
In order to obtain an invertible integer approximation of the known MDCT, the MDCT is broken down into Givens rotations in a first step, this step being the window step, and into a subsequent DCT-IV step.
Unlike the state of the art where the DCT-IV is broken down into several stages of Givens rotations, the transformation is left to itself and then rounded.
The number of Givens rotations is determined by the underlying fast algorithm used. Thus, the number of Givens rotations is given by O (N log N) for a transformation of length N. The window stage of each MDCT decomposition consists only of N/2 Givens rotations or 3N/2 rounding steps. Thus, especially for transformation lengths that are high, as used in audio coding applications (e.g., 1.024), the integer approximation of DCT-IV is the main contributor to the approximation error.
The solution approach uses the described multidimensional lifting scheme, which reduces the number of rounding steps in the DCTIV to 3N/2, i.e. equal to the number of rounding steps in the window stage, compared to approximately 2N log2N rounding steps in the conventional lifting-based solution approach.
The DCT-IV is applied to two blocks of signals simultaneously. One way of doing this is shown in Fig. 12, where two blocks of samples of a DCT-IV are simply sampled in time sequence, but the two blocks which undergo both transformations can also be samples of two channels of a multi-channel signal.
The decomposition from the above described multidimensional lifting equation is applied to the transformation rule, which can also be considered as an N x N matrix.
The permutations of the multiplication by -1 can be extracted into their own block matrices, so that the following relation is obtained:
Thus, the application of a transformation to two blocks of signals, i.e. to two blocks of discrete values, can be obtained with preferably three multidimensional lifting steps:
The above equation is illustrated in Fig. 10c by an example of implementation.
The solution approach allows two DCT-IV transformations of length N to be implemented in an invertible manner, requiring only 3N rounding steps, i.e. 3N/2 rounding steps per transformation.
The DCT-IV in the three multidimensional lifting steps can have any implementation, i.e. a floating point or fixed point based implementation. It does not even have to be invertible. It just has to be executed in exactly the same way in the forward and backward process. This makes this concept suitable for high transformation lengths, such as 1.024 as used in current audio coding applications.
Err1:Expecting ',' delimiter: line 1 column 612 (char 611)
The solution approach shown will calculate at least two DCT-IV transformations in a certain sense simultaneously, i.e. within an implementation. This can be achieved, for example, by calculating the DCT-IV transformation for two consecutive blocks of the audio signal or two consecutive images of an image signal. In the case of a two-channel stereo signal, this can also be achieved by calculating the DCT-IV of the left and right channel in an implementation action or reverse implementation action.
Err1:Expecting ',' delimiter: line 1 column 338 (char 337) Using these additional levels of N/2 input rotation, the multidimensional lifting approach can also be used to calculate only one DCT-IV of length N. The basic structure of this algorithm is shown in Fig. 15, where in addition to the actual implementation stage, where only two DCT-IV transformations of length N/2 are used, a butterfly stage is first available to calculate the first and second blocks of discrete values, which now have only one output of N/2 length. Furthermore, a rotation step is provided to obtain a transformation value from the output of a block of 12 y/n, which is now widely used in Fig. 15 and Fig. 15 of the output of a transformed block, but which has a widely different output of 12 y/n.
So far only the application of multidimensional lifting to block matrices of the following form has been described.
However, it is also possible to decompose other block matrices into multidimensional lifting steps. For example, the following decompose can be used to implement the combination of one step with standardized plus/minus butterflies and two blocks of DCT-IV transformations through three steps of multidimensional lifting:
The first transformation rule used in the left bracket of the above equation and the second transformation rule used in the middle bracket of the above equation and the third transformation rule used in the last bracket of the above equation do not have to be identical. Furthermore, it can be seen from the above equation that not only block matrices can be decomposed in which only the main diagonal elements are used, but that fully occupied matrices can also be processed.
In this context, reference is made once again to Fig. 10c and Fig. 11. In the implementation of the discrete values into a transformed representation, the device 102 may be trained to implement some transformation rule 1. Furthermore, the device 108 may also be trained to use some other or the same transformation rule, which is called the transformation rule 2. Furthermore, the device 140 may be trained to generally use some transformation rule 3, which does not necessarily have to be the same as the first or the second transformation rule.
However, in the inverse implementation of the transformed representation, an adaptation to the transformation rules 1-3 given in Fig. 10c must be found, in that the first device 124 to be implemented does not execute any transformation rule but the transformation rule 3 which was implemented in block 140 of Fig. 10c. Accordingly, the device 130 in Fig. 11 must execute the transformation rule 2 which was also implemented by block 108 in Fig. 10c. Finally, the device 150 of Fig. 11 must execute the transformation rule 1 which was also implemented by the device 102 of Fig. 10c in order to obtain a lossless inverse implementation.
Figure 16 shows a modification of the concept described in Figure 10C. In particular, the rounding in elements 104, 110, 142 for the reverse transformation or in elements 126, 132, 152 for the reverse transformation is no longer done by sampling, but in such a way that a spectral formation of the rounding error takes place.
Comparing Fig. 10C with Fig. 16 shows that it is preferred to simply replace block 104 with block 204a and to use block 204b instead of rounding block 110. This is the case, as the concept is particularly advantageous when a subsequent transformation takes place in the frequency range, where the white noise of the round error is problematic if no spectral transformation is performed. After round 142 no frequency transformation takes place, a spectral transformation in block 142 would no longer be an advantage.
Whether to round at the end of the second transformation, i.e. transformation 108, spectral formally or round normally, i.e. with a rounding error having a white spectral distribution, will depend on the individual application case.
Err1:Expecting ',' delimiter: line 1 column 189 (char 188)
The spectral forming of the rounding error can also be used for the integrated DCT required for the IntMDCT, but it should be noted that, as has been shown, the spectral forming by fault feedback is particularly advantageous only if the values to be rounded are time signals transmitted in the frequency range by a further transformation step.
It should be noted that Fig. 16 shows the case corresponding to Fig. 10C in an encoder. The case corresponding to Fig. 16 in the decoder is directly derived from a comparison of Fig. 16 and Fig. 11. The decoder corresponding to Fig. 16 is derived from Fig. 11 in that all the blocks work identically except for the two circular blocks 132, 152.
Err1:Expecting ',' delimiter: line 1 column 116 (char 115)
According to the invention, such a reduction of rounding error is possible whenever two flow commas are rounded and added to the same value instead of different values. An example of such a situation is shown in Fig. 17. Here, first, there is a first lifting step with a bottom-up sequence between the lifting participants x1 and x3.
In detail, in the example shown in Fig. 17, the value of x1 is first weighted (block 250) and then rounded individually (block 252). The output signal of block 252 is added to x3 (block 254). Then the result of adding 254 is reweighted (block 256) and rounded again (block 258). The result of this rounding 258 is now added to x1 (260). The result of the addition 260 is reweighted (block 262) and rounded (block 264) to be added to the current value of x3 (block 266). Accordingly, the value of x2 is weighted by a block 270 and then rounded by a block 272.The result of block 272 is added to the now current value of x3 (274) and then weighed again (276) and rounded (278), to add the result of block 278 back to the current value of x2 (280). The result of this addition 280 is weighed again (block 282) and the weighted result is rounded (block 284), to then add the result of rounding block 284 back to the now just current value of x3 (block 286), to obtain a result value for x3.In addition, a second value, the result of block 270, is also rounded (block 272) and then added to the value of x3 (additor 274). Thus, the situation arises where two floating point values are rounded and added to the same value instead of different values.
If the error of the third lifting step is fed into the fourth lifting step during the round, then the error of the third lifting step can be used in this case and only one rounding error is produced instead of two rounding errors.
In this case, the input of the rounding error to the next rounding step is computationally identical to an addition of the values and a subsequent rounding. This situation is shown in Fig. 18, where Fig. 18 corresponds to Fig. 17, but the two separate rounding blocks 264, 272 and the two separate adders 266, 274 are replaced by a block 268, which is designed to implement the above equation. The results of the two blocks 262 and 270 are first added in unrounded form and then rounded. This reduces the rounding error to half in favourable cases.
A combination of reduction and formation of the rounding error can also occur, for example, when a set of Givens rotations and a multidimensional lifting step follow each other, as shown in Fig. 19. In this case, for example, from values x1 to x4 the last step of a bottom-up-down sequence is performed for several values, for example, the bottom step 31c of Fig. 9. These values are now to be added to corresponding values to which the rounded values in Fig. 16, i.e. the values at the end of block 204a, are also to be added. In this case, the only preferred way is to add the unrounded values first, namely by adding Fig. 19 to Fig. 19 to Fig. 203.
The present invention therefore prefers to combine the reduction of rounding error with the formation of rounding error, in which case several input values are processed and rounded together, the rounded values being added to one value, while in the case of spectral formation of rounding error the rounded values are rounded independently and added to several different values.
It should also be noted that the situation in Fig. 19 can also occur when N/2-DCTs are used, as shown in Fig. 15. In this case, before the implementation stage, i.e. before the two DCT blocks, there is the stage, called the butterfly stage in Fig. 15, where the input values x0 to xN/2-1 are weighted and rounded accordingly, and then added to the same values to which the values of a DCT-IV stage are also added.
This shows a preferred implementation, especially for mono-applications, i.e. for the case where an N/2-DCT-IV is to be used.
Depending on the circumstances, the method of the invention may be implemented in hardware or software for the purpose of running the process. The implementation may be carried out on a digital storage medium, in particular a disk or CD with electronically readable control signals, which can interact with a programmable computer system in such a way that the process is executed. In general, the invention thus also consists of a computer program product with a program code stored on a machine-readable medium for the execution of the method of the invention, if the computer program product runs on a computer. In other words, the invention is therefore also a computer program with a program code for the execution of the method, if the computer program runs on a computer.
Claims (11)
- Device for processing at least two input values, comprising:means (202; 250, 252, 254, 256, 258, 260, 262) for providing a first non-integer input value and a second non-integer input value,wherein the means for providing is designed to weight a first original value to obtain the first input value and to calculate the second input value by a transform from a sequence of original input values to which the original first value (x1) belongs, or to generate the first input value from a first original value and a third value (x3) by a first and a second lifting step and a subsequent weighting (262) and to generate the second input value by weighting (270) from an original second input value (x2); andmeans (268) for combining the first input value and the second input value to obtain a non-integer result value and for rounding the result value to obtain a rounded result value.
- Device of claim 1, wherein the means for combining is designed to form a sum or a difference.
- Device of claim 1 or 2, wherein the first and the second input values are discrete values including audio and/or video information.
- Device of one of the preceding claims, further comprising:means (269) for coupling the result value to a third input value to obtain an output value.
- Device of claim 4, wherein the means (269; 104) for coupling is designed as summer or subtracter.
- Device of claim 4 or 5, wherein the third input value is an integer input value so that the output value is also an integer value.
- Device of claim 1, further designed to add the integer result value to a third input value modified by a lifting operation and to perform a second and a third lifting step of a rotation with the third input value modified by a lifting operation and the second input value.
- Device of claim 1, further including means (106) for adding the integer input value to a further input value which is part of a sequence that has been processed by a first transform rule (102) to obtain a value of a further sequence that is to be processed by a second transform rule, wherein the first transform rule and the second transform rule are transform rules defining a first and a second multi-dimensional lifting step.
- Computer-implemented method for processing at least two input values, comprising:providing (202; 250, 252, 254, 256, 258, 260, 262) a first non-integer input value and a second non-integer input value, wherein the step of providing comprises weighting a first original value to obtain the first input value and calculating the second input value by a transform from a sequence of original input values to which the original first value (x1) belongs, or wherein the step of providing comprises generating the first input value from a first original value and a third value (x3) by a first and a second lifting step and a subsequent weighting (262) and generating the second input value by weighting (270) from an original second input value (x2); andcombining (268) the first input value and the second input value to obtain a non-integer result value, and rounding the result value to obtain a rounded result value.
- Method of claim 9, wherein, after the step of combining, the following step is performed:coupling (269) the result value to a third integer input value to obtain an integer output value.
- Computer program having a program code for performing the method of claim 9, when the program runs on an computer.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE10345996.0 | 2003-10-02 | ||
| DE10345996A DE10345996A1 (en) | 2003-10-02 | 2003-10-02 | Apparatus and method for processing at least two input values |
| PCT/EP2004/010855 WO2005033965A1 (en) | 2003-10-02 | 2004-09-28 | Device and method for processing at least two input values |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1086367A1 HK1086367A1 (en) | 2006-09-15 |
| HK1086367B true HK1086367B (en) | 2007-09-21 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| AU2004278828B2 (en) | Device and method for processing a signal with a sequence of discrete values | |
| US7343287B2 (en) | Method and apparatus for scalable encoding and method and apparatus for scalable decoding | |
| KR100804053B1 (en) | Apparatus and method for processing two or more input values | |
| EP1495464B1 (en) | Device and method for encoding a time-discrete audio signal and device and method for decoding coded audio data | |
| CA2532288C (en) | Device and method for conversion into a transformed representation or for inversely converting the transformed representation | |
| JP3814611B2 (en) | Method and apparatus for processing time discrete audio sample values | |
| HK1086367B (en) | Device and method for processing at least two input values | |
| HK1085033B (en) | Device and method for conversion into a transformed representation or for inversely converting the transformed representation | |
| HK1096760B (en) | Device and method for processing a signal with a sequence of discrete values | |
| MXPA06003309A (en) | Device and method for processing at least two input values | |
| HK1072122B (en) | Device and method for scalable coding and device and method for scalable decoding |