Process And Device For Determining A Transforming Element For A Given Transformation Function, Method And Device For Transforming A Digital Signal From The Time Domain Into The Frequency Domain And Vice Versa And Computer Readable Medium

Abstract
According to the process for determining a transform element for a given transformation function, which transformation function comprises a transformation matrix and corresponds to a transformation of a digital signal from the time domain into the frequency domain or vice versa, the transformation matrix is decomposed into a rotation matrix (306) and an auxiliary matrix (307) which, when multiplied with itself, equals a permutation matrix multiplied with an integer diagonal matrix. Further, the rotation matrix (306) and the auxiliary matrix (307) are each decomposed into a plurality of lifting matrices (308). Further, the transforming element is determined to comprise of a plurality of lifting stages (309) which correspond to the lifting matrices (308). The invention further provides a method for the transformation of a digital signal from the time domain into the frequency domain according to the transforming element determined by the process described above.
Description

This invention relates to a process and a device for determining a transforming element for a given transformation function, a method and a device for transforming a digital signal from the time domain into the frequency domain and vive versa and a computer readable medium.


Domain transformations, for example the discrete cosine transform (DCT), are widely used in modern signal processing industry. Recently, a variant of the DCT, called integer DCT, has attracted a lot of research interests because of its important role in lossless coding applications. The term “lossless” means that the decoder can generate an exact copy of the source signal from the encoded bit-stream.


The DCT is a real-valued block transform. Even if the input block consists only of integers, the output block of the DCT can comprise non-integer components. For convenience, the input block is referred to as input vector and the output block as output vector. If a vector comprises only integer components, it is called an integer vector. In contrast to the DCT, the integer DCT generates an integer output vector from an integer input vector. For the same integer input vector, the integer output vector of integer DCT closely approximates the real output vector of DCT. Thus the integer DCT keeps all the good properties of the DCT in spectrum analysis.


An important property of the integer DCT is reversibility. Reversibility means that there exists an integer inverse DCT (IDCT) so that if the integer DCT generates an output vector y from an input vector x, the integer IDCT can recover the vector x from the vector y. Sometimes the integer DCT is also referred to as the forward transform, and the integer IDCT as the backward or inverse transform.


A transform called integer modified discrete cosine transform (IntMDCT) is recently proposed and used in the ISO/IEC MPEG-4 audio compression. The IntMDCT can be derived from its prototype—the modified discrete cosine transform (MDCT). In [1], Malvar gave an efficient realization of MDCT by cascading a bank of Givens rotations with a DCT-IV block. It is well known that Givens rotation can be factorised into three lifting steps for mapping integers to integers, see for example [2].


Therefore, the realization of IntMDCT relies on an efficient implementation of integer DCT-IV.


Integer transforms can be directly converted from their prototypes by replacing each Givens rotation with three lifting steps. Because in each lifting step there is one rounding operation, the total rounding number of an integer transform is three times the Givens rotation number of the prototype transform. For discrete trigonometric transforms (for example the Discrete Fourier Transform (DFT) or the Discrete Cosine Transform (DCT)), the number of Givens rotations involved is usually at N log2 N level, where N is the size of the blocks, i.e. the amount of data symbols included in each block, the digital signal is divided into. Accordingly, the total rounding number is also at N log2 N level for the family of directly converted integer transforms. Because of the roundings, an integer transform only approximates its floating-point prototype. The approximation error increases with the number of rounding operations.


The invention solves the problem of determining a transforming element for a given transformation function, which transformation function comprises a transformation matrix and corresponds to a transformation of a digital signal from the time domain into the frequency domain or vice versa, such that the number of roundings comprised by the transforming element is significantly reduced. The invention further provides a method for transforming a digital signal from the time domain into the frequency domain or vice versa according to the determined transforming element.


The problem is solved by a process and a device for determining a transforming element for a given transformation function, a method and a device for transforming a digital signal from the time domain into the frequency domain or vice versa and a computer readable medium with the features according to the independent claims.


According to the invention, there is provided a process for determining a transforming element for a given transformation function, which transformation function comprises a transformation matrix and corresponds to a transformation of a digital signal from the time domain into the frequency domain or vice versa, wherein the transformation matrix is decomposed into a rotation matrix and an auxiliary matrix which, when multiplied with itself, equals a permutation matrix multiplied with an integer diagonal matrix; the rotation matrix and the auxiliary matrix are each decomposed into a plurality of lifting matrices; and the transforming element is determined to comprise of a plurality of lifting stages which correspond to the lifting matrices.


Further, according to the invention there is provided a device adapted to perform the process described above.


Further, according to the invention, there is provided a method for transforming a digital signal from the time domain into the frequency domain or vice versa using a transforming element, wherein the transforming element corresponds to a given transformation function, which transformation function comprises a transformation matrix wherein the transforming element is determined by a process comprising decomposing the transformation matrix into a rotation matrix and an auxiliary matrix which, when multiplied with itself, equals a permutation matrix multiplied with an integer diagonal matrix; decomposing the rotation matrix and the auxiliary matrix each into a plurality of lifting matrices; and determining the transforming element to comprise of a plurality of lifting stages which correspond to the lifting matrices; and wherein further each lifting stage comprises the processing of sub-blocks of the digital signal by an auxiliary transformation and by a rounding unit.


Further, according to the invention there is provided a device adapted to perform the method described above.


Further, according to the invention, there is provided a computer readable medium having a program recorded thereon, wherein the program is adapted to make a computer perform a process for determining a transforming element for a given transformation function, which transformation function comprises a transformation matrix and corresponds to a transformation of a digital signal from the time domain into the frequency domain or vice versa, wherein the transformation matrix is decomposed into a rotation matrix and an auxiliary matrix which, when multiplied with itself, equals a permutation matrix multiplied with an integer diagonal matrix; the rotation matrix and the auxiliary matrix are each decomposed into a plurality of lifting matrices; and the transforming element is determined to comprise of a plurality of lifting stages which correspond to the lifting matrices.


Further, according to the invention, there is provided a computer readable medium having a program recorded thereon, wherein the program is adapted to make a computer perform a method for transforming a digital signal from the time domain into the frequency domain or vice versa using a transforming element, wherein the transforming element corresponds to a given transformation function, which transformation function comprises a transformation matrix wherein the transforming element is determined by a process comprising decomposing the transformation matrix into a rotation matrix and an auxiliary matrix which, when multiplied with itself, equals a permutation matrix multiplied with an integer diagonal matrix; decomposing the rotation matrix and the auxiliary matrix each into a plurality of lifting matrices; determining the transforming element to comprise of a plurality of lifting stages which correspond to the lifting matrices; and wherein further each lifting stage comprises the processing of sub-blocks of the digital signal by auxiliary transformations and by a rounding unit.


In a preferred embodiment, the invention provides a process and a method for realizing the integer type-IV DCT transformation. The method according to the invention requires a significantly reduced number of roundings compared to prior art methods. As a result, the approximation error is greatly reduced, in the case of DCT-IV it can be reduced from the usual N log2 N level to be as low as 2.5N, where N denotes the block size of the digital signal. The method according to the invention is low in computational complexity and modular in structure.


The method and the device according to the invention can be used for any types of digital signals, such as audio, image or video signals. The digital signal, which is a digitised signal, corresponds to a physical measured signal, may be generated by scanning at least one characteristic feature of a corresponding analog signal (for example, the luminance and chrominance values of a video signal, the amplitude of an analog sound signal, or the analog sensing signal from a sensor). The digital signal comprises a plurality of data symbols. The data symbols of the digital signal are grouped into blocks, with each block having the same predefined number of data symbols based on the sampling rate of the corresponding analog signal.


The method according to the invention can be used for transforming an input digital signal which represents integer values to an output signal which also represents integer values. The transformation method according to the invention is reversible. The output signal may be transformed back to the original input signal by performing the transformation method according to the invention. Such a reversibility property of the transformation according to the method of the invention can be used in lossless coding in which the output signal should be identical to the original input signal.


Such an integer transformation of signals according to the invention can be used in many applications and systems such as MPEG audio, image and video compression, JPEG2000 or spectral analyzers (for analyzing Infrared, Ultra-violet or Nuclear Magnetic Radiation signals). It can also be easily implemented in hardware systems such as in a fixed-point Digital Signal Processor (DSP), without having to consider factors such as overflow in the case of a real-value signal transformation.


According to the method according to the invention, the digital signal is transformed to the frequency domain by a transforming element, which is according to the process according to the invention determined for a given transformation function.


Preferably, the transforming element comprises a plurality of lifting stages.


The transforming element can be illustrated based on the model of a lifting ladder. The lifting ladder model has two side pieces, each for receiving one of two groups of data symbols. Two or more cascading lifting stages are provided between the two side pieces. Each lifting stage receives a signal at one end (input end), and outputs a signal at the other end (output end) via a summation unit. A rounding unit is arranged at the output end. The lifting stages are arranged between the side pieces in an alternating manner, such that the output (or input) ends of adjacent lifting stages are connected to the different side pieces.


It should be noted that although the transforming element is described in the form of the lifting ladder model, it is only to illustrate the transformation paths of the transforming element. However, the invention shall not be limited to said ladder model.


The number of lifting stages of the transforming element is defined by the number of lifting matrices which is determined by the process according to the invention.


Discrete cosine transforms, discrete sine transforms, discrete Fourier transforms or discrete W transforms are examples of transformation functions that may be used as the transformation function according to the invention. The number of lifting stages of the transforming element may be different, depending on the result of the process according to the invention for determining a transforming element for the respective transformation functions.




Illustrative embodiments of the invention are explained below with reference to the drawings, in which



FIG. 1 shows the architecture of an audio encoder according to an embodiment of the invention.



FIG. 2 shows the architecture of an audio decoder according to an embodiment of the invention, which corresponds to the audio coder shown in FIG. 1.



FIG. 3 illustrates an embodiment of the process according to the invention, wherein the transformation function is a DCT-IV transformation function.



FIG. 4 shows a flow chart of an embodiment of the method according to the invention.



FIG. 5 illustrates an embodiment of the method according to the invention using DCT-IV as the transformation function.



FIG. 6 illustrates the algorithm for the reverse transformation according to the embodiment of the method according to the invention illustrated in FIG. 5.



FIG. 7 shows the architecture for an image archiving system according to an embodiment of the invention.



FIG. 8 illustrates an embodiment of the method according to the invention using DWT-IV as the transformation function.



FIG. 9 illustrates the algorithm for the reverse transformation according to the embodiment of the method according to the invention illustrated in FIG. 8.





FIG. 1 shows the architecture of an audio encoder 100 according to an embodiment of the invention.


The audio encoder 100 comprises a conventional perceptual base layer coder based on the modified discrete cosine transform (MDCT) and a lossless enhancement coder based on the integer modified discrete cosine transform (IntMDCT).


An audio signal 109 which, for instance, is provided by a microphone 110 and which is digitalized by a analog-to-digital converter 111 is provided to the audio encoder 100. The audio signal 109 comprises a plurality of data symbols. The audio signal 109 is divided into a plurality of blocks, wherein each block comprises a plurality of data symbols of the digital signal and each block is transformed by a modified discrete cosine transform (MDCT) device 101. The MDCT coefficients provided by the MDCT device 101 are quantized by a quantizer 103 with the help of a perceptual model 102. The perceptual model controls the quantizer 103 in such a way that the audible distortions resulting from the quantization error are low. The output of the quantizer 103 is encoded by a bitstream encoder 104 which produces the lossy perceptually coded output bitstream 112. The bitstream encoder 104 losslessly compresses its input to produce an output which has a lower average bit-rate than its input by standard methods such as Huffman-Coding or Run-Length-Coding. The input audio signal 109 is also fed into an IntMDCT device 105 which produces IntMDCT coefficients. The quantized MDCT coefficients, which are the output of the quantizer 103, are used to predict the IntMDCT coefficients. The quantized MDCT coefficients are fed into an inverse quantizer 106 and the output of the inverse quantizer 106 is fed into a rounding unit 107 by which they are rounded to integer values and the residual IntMDCT coefficients, which are the difference between the output of the rounding unit 107 and the IntMDCT coefficients, are entropy coded by an entropy coder 108, which, analogous to the bitstream encoder 104, losslessly reduces the average bit-rate of its input and produces a lossless enhancement bitstream 113, which, together with the perceptually coded bitstream 112, carries the necessary information to reconstruct the input audio signal 109 exactly.



FIG. 2 shows the architecture of an audio decoder 200 comprising an embodiment of the invention, which corresponds to the audio coder 100 shown in FIG. 1.


The perceptually coded bitstream 207 is decoded by a bitstream decoder 201, which performs the inverse operations to the operations of the bitstream encoder 104 of FIG. 1 and is fed to an inverse quantizer 202. To its output, the inverse MDCT is applied by an inverse MDCT device 203. Thus, the reconstructed perceptually coded audio signal 209 is obtained. The lossless enhancement bitstream 208 is decoded by an entropy decoder 204, which performs the inverse operations to the operations of the entropy encoder 108 of FIG. 1 and which produces the corresponding residual IntMDCT coefficients. The output of the inverse quantizer 202 is rounded by a rounding device 205 and is added to the residual IntMDCT coefficients, thus producing the IntMDCT coefficients. Finally, the inverse IntMDCT is applied to the IntMDCT coefficients by an inverse IntMDCT device 206 to produce the reconstructed losslessly coded audio signal 210.


As mentioned above, it is shown in [2] that the core of IntMDCT, which plays an important role in lossless audio coding and which is used in the embodiment of the invention illustrated in FIGS. 1 and 2, is an integer DCT-IV.



FIG. 3 illustrates a flowchart of an embodiment of the process according to the invention, wherein the transformation function is a DCT-IV transformation function.


In the following, an embodiment of the process according to the invention for determining a transforming element for a DCT-IV transformation function is explained. The determined transforming element is used in the encoder shown in FIG. 1 to implement IntMDCT and the according inverse transforming element is used in the decoder shown in FIG. 2 to implement inverse IntMDCT. For a description how to implement IntMDCT and inverse IntMDCT with DCT-IV, see [2].


The DCT-IV transformation function with a N-point real input sequence x(n) is defined as follows (see [2]).
y(m)=2Nn=0N-1x(n)cos((m+1/2)(n+1/2)πN)m,n=0,1,,N-1(1)


Let CNIV be the transformation matrix of DCT-IV, that is
CNIV_=2N[cos((m+1/2)(n+1/2)πN)]m,n=0,1,,N-1(2)


According to the embodiment of process according to the invention, the transformation matrix CNIV is decomposed into a rotation matrix and a matrix which, when multiplied with itself, equals a permutation matrix multiplied with an integer diagonal matrix.


For clarity, N is assumed to be even.


In step 300, the process is started.


In step 301 the terms of the transformation function for even indices are separated from the terms with odd indices:
y(m)=2Nn=0N-1x(n)cos((m+12)(n+12)πN)=2Nnevenx(n)cos((m+12)(n+12)πN)+2Nnoddx(n)cos((m+12)(n+12)πN)=2Nn=0N2-1x(2n)cos((m+12)(2n+12)πN)+2Nn=0N2-1x(2n+1)cos((m+12)(2n+1+12)πN)=2Nn=0N2-1x1(n)cos((m+12)(n+14)π(N2))+2Nn=0N2-1x2(n)cos((m+12)(n+34)π(N2));thus,y(m)=2Nn=0N2-1x1(n)cos((m+12)(n+12)π(N2)-14(m+12)π(N2))+2Nn=0N2-1x2(n)cos((m+12)(n+12)π(N2)+14(m+12)π(N2))(3)

where x1 with the components x1(n)=x(2n),
n=0,,N2-1

is a vector comprising all x(n) with even indices and x2 with the components x2(n)=x(2n+1),
n=0,,N2-1

is a vector comprising all x(n) with odd indices.


The following two abbreviations are used:
αm,n=(m+12)(n+12)π(N2),m,n=0,,N-1(4)βm=14(m+12)π(N2)=(m+12)π2N,m=0,,N-1(5)


With equations (4) and (5), equation (3) can be written as
y(m)=2Nn=0N2-1x1(n)cos(αm,n-βm)+2Nn=0N2-1x2(n)cos(αm,n+βm)(6)


In step 302, the following two addition theorems for the cosine are applied:

cos(αm,n−βm)=cos αm,n·cos βm+sin αm,n·sin βm  (7)
cos(αm,nm)=cos αm,n·cos βm,n−sin αm,n·sin βm  (8)


With (7) and (8), equation (6) can be written as
y(m)=2N{n=0N2-1x1(n)cosαm,ncosβm+n=0N2-1x1(n)sinαm,nsinβm+n=0N2-1x2(n)cosαm,ncosβm-n=0N2-1x2(n)sinαm,nsinβm}=2N{n=0N2-1[x1(n)cosβm+x2(n)cosβm]+cosαm,n+n=0N2-1[x1(n)sinβm-x2(n)sinβm]+sinαm,n}=2(N2){n=0N2-1cosβm2[x1(n)+x2(n)]cosαm,n+n=0N2-1sinβm2[x1(n)-x2(n)]sinαm,n}(9)

for abbreviation, the two N/2-dimensional vectors x1′ and x2′ are defined to comprise the following components:
x1(n)=12[x1(n)+x2(n)],n=0,,N2-1(10)x2(n)=12[x1(n)-x2(n)],n=0,,N2-1(11)


With (10) and (11), equation (9) simplifies to
y(m)=2(N2){n=0N2-1cosβmx1(n)cosαm,n+n=0N2-1sinβmx2(n)sinαm,n}(12)


In step 303, the vector
y_=[y(0)y(1)y(N)]

is divided into the two parts y0 and y1 wherein
y0_=[y(0)y(1)y(N2-1)](13)y1_=[y(N-1)y(N-2)y(N2)](14)


The vector y1 comprises the components of y corresponding to the indices from N/2 to N−1 in reverse order.


The components y1(m) of the vector y1 fulfill the following equation:
y1(m)=y(N-1-m)=2(N2){n=0N2-1cosβN-1-mx1(n)cosαN-1-m,n+n=0N2-1sinβN-1-m,mx2(n)sinαN-1-m,n}form=0,,N2-1.(15)

Note that
y(m+N2)=2(N2){n=0N2-1cosβm+N2x1(n)cosαm+N2,n+n=0N2-1sinβm+N2x2(n)sinαm+N2,n}form=0,,N2-1.(16)


In step 304, y0 and y1 are each expressed by a DCT-IV matrix
CN2IV_

and a DST-IV matrix
SN2IV_,

each of dimension N/2.


This is achieved in the following way:


For
βm=(m+12)π2N

the following equations hold:
βm+N2=(m+12+N2)π2N=(m+12)π2N+N2·π2N=βm+π4(17)βN-1-m=(N-1-m+12)π2N=N·π2N-(m+12)·π2N=π2-βm(18)

Further,
αm,n=(m+12)(n+12)π(N2)

the following equation holds:
cosβN-1-m=cos(π2-βm)=sinβm(19)sinβN-1-m=sin(π2-βm)=cosβm(20)


Further:

cos αN−1−m,n=cos(2πn+π−αm,n)=cos(π−αm,n)=−cos αm,n  (22)
sin αN−1−m,n=sin(2πn+π−αm,n)=sin(π−αm,n)=sin αm,n  (23)


With the equations (19), (20), (22) and (23) equation (15) can be rewritten:
y(N-1-m)=2(N2){nN2-1cosβN-1-mx1(n)cosαN-1-m,n+nN2-1sinβN-1-mx2(n)sinαN-1-m,n}=2(N2){nN2-1sinβmx1(n)(-cosαm,n)+nN2-1cosβmx2(n)sinαm,n}=-2(N2)nN2-1sinβmx1(n)cosαm,n+-2(N2)nN2-1cosβmx2(n)sinαm,n=-sinβm[2(N2)nN2-1x1(n)cosαm,n]+cosβm[2(N2)nN2-1x2(n)sinαm,n]form=0,,N2-1.(24)


Since further equation (12) yields
y(m)=2(N2){nN2-1cosβmx1(n)cosαm,n+nN2-1sinβmx2(n)sinαm,n}=cosβm[2(N2)nN2-1x1(n)cosαm,n]+sinβm[2(N2)nN2-1x2(n)sinαm,n](25)

the expressions for y0 and y1 can be formed from (24) and (25):
y0_=diag[cosβm]_·CN2IV_·x1_+diag[sinβm]_·SN2IV_·x2_,m=0,,N2-1(26)y1_=diag[-sinβm]_·CN2IV_·x1_+diag[cosβm]_·SN2IV_·x2_,m=0,,N2-1(27)

where diag[αm] denotes a N/2-by-N/2 diagonal matrix with αm in the mth row,
CN2IV_

is the transformation matrix of the DCT-IV transformation and
SN2IV_

is the transformation matrix of the discrete sine transformation of type four (DST-IV).


The two equations (26) and (27) can be expressed as a single one in the following way:
[y0(0)y0(N2-1)y1(0)y1(N2-1)]=[cosβ1sinβ1cosβmsinβm-sinβ1cosβ1-.sinβmcosβm][CN2IV_SN2IV_][x1(0)x1(N2-1)x2(0)x2(N2-1)](28)

In the following, the
N2×N2-matricesIN2_=[1111]and(29)JN2_=[1111](30)

are used.


One sees that
[y(0)y(2)y(N-1)]=[IN2_JN2_][y0(0)y0(N2-1)y1(0)y1(N2-1)](31)

which is abbreviated by
y_=[IN2_JN2_][y0_y1_](32)


One further sees that with the N×N-matrix Rpr defined as
Rpr_=12[IN/2_IN/2_IN/2_-IN/2_](33)

the equation
[x1(0)x1(N2-1)x2(0)x2(N2-1)]=Rpr_[x1(0)x1(N2-1)x2(0)x2(N2-1)](34)

holds.


Equation (34) is abbreviated by
[x1_x2_]=Rpr_[x1_x2_](35)


Further, let Peo be an even-odd matrix, i.e., a permutation matrix reordering the components of the vector
x_=[x(0)x(N-1)]

by separating the components which correspond to even indices from the components which correspond to odd indices, i.e., such that
[x1(0)x1(N2-1)x2(0)x2(N2-1)]=Peo_[x(0)x(N-1)](36)

or shortly
[x1_x2_]=Peo_x_(37)

holds.


By combining the equation (28) with the equations (31), (34) and (36) one gets:
[y(0)y(2)y(N-1)]=[IN2_JN2_][cosβ1sinβ1cosβmsinβm-sinβ1cosβ1-.sinβmcosβm][CN2IV_SN2IV_]Rpr_Peo_[x(0)x(N-1)](38)

with the above abbreviations and the abbreviations
C=[cosβ1cosβm]and(39)S_=[sinβ1sinβm](40)

equation (38) can be shortly written as
y_=[IN2_JN2_][C_S_-S_C_][CN2IV_SN2IV_]Rpr_Peo_x_(41)


In step 305SN2IV_

is expressed by
CN2IV_.

This is done with the equation:
SN2IV_=JN2_·CN2IV_·DN2_(42)

wherein DN/2 is a diagonal matrix of dimension N/2 given by
DN2_=[1-11-1](43)


With equation (42) equation (41) can be written as
y_=[IN2_JN2_][C_S_-S_C_][IN2_JN2_][CN2IV_CN2IVDN2_]Rpr_Peo_x_(44)


In step 306 the N×N rotation matrix Rpo is calculated, which comprises the first three matrices of equation (44):
Rpo_=[IN2_JN2_][C_S_-S_C_][IN2_JN2_](45)


Multiplication of the three matrices in equation (45) yields
Rpo_=[cosπ4Nsinπ4Ncos3π4Nsin3π4Ncos(N-1)π4Nsin(N-1)π4N-sin(N-1)π4Ncos(N-1)π4N-sin3π4Ncos3π4N-sinπ4Ncosπ4N](46)


In step 307, the auxiliary matrix, which, when multiplied with itself, equals a permutation matrix multiplied with an integer diagonal matrix, is calculated.


The auxiliary matrix comprises the fourth and fifth matrices of equation (44):
T_=[CN/2IV_CN/2IVDN/2_]Rpr_=12[CN/2IV_CN/2IV_CN/2IVDN/2_-CN/2IVDN/2_]Notethat(47)T_·T_=[1001100101-1001-10]=[IN2_DN2_][1001100101100110](48)

I.e., T multiplied with itself equals a permutation matrix multiplied with an integer diagonal matrix.


With equations (46) and (47), equation (44) simplifies to

CNIV=RpoTPeo  (49)


Thus, the transformation matrix CNIV is decomposed into a rotation matrix Rpo, into an auxiliary matrix T that, when multiplied with itself, equals a permutation matrix multiplied with an integer diagonal matrix and into an even-odd matrix Peo.


In step 308, Rpo and T are each factorised into a product of lifting matrices. T is factorised in the following way:
T_=T1T2T3_=[IN/2_K1_IN/2_]·[-DN/2_K2_IN/2_]·[IN/2_K3_IN/2_](50)

where
K1_=-(CN/2IVDN/2_+2IN/2_)CN/2IV_(51)K2_=CN/2IV_2(52)K3_=2CN/2IVDN/2_+IN/2_(53)


And Rpo is factorised according to the following equation:
Rpo_=R1R2R3_=[IN/2_H1_IN/2_]·[IN/2_H2_IN/2_]·[IN/2_H3_IN/2_](54)

where
H1_=H3_=[-tan(N-1)π8N-tan3π8N-tanπ8N](55)

and
H2_=[sinπ4Nsin3π4Nsin(N-1)π4N](56)


Thus, Equation (49) can be re-written as

CNIV=R1R2R3T1T2T3Peo  (57)


In step 309, the lifting matrices are aggregated as far as possible. Matrix S is defined as the product of R3 and T1, that is
S_=R3T1_=[IN/2_H3+K1_IN/2_](58)


This aggregation is possible since S is also a lifting matrix.


From (57) and (58), the final factorisation formula for DCT-IV matrix is obtained as

CNIV=R1R2S T2T3Peo  (59)


Equation (59) indicates that the transforming element for the integer DCT-IV transformation according to the invention comprises five lifting stages.


Since the final factorisation formula is determined, the process is stopped in step 310.



FIG. 4 shows a flow chart 400 of an embodiment of the method according to the invention using five lifting stages, a first lifting stage 401, a second lifting stage 402, a third lifting stage 403, a fourth lifting stage 404 and a fifth lifting stage 405. This method is preferably used in the IntMDCT device 105 of FIG. 1 and the inverse IntMDCT device 206 of FIG. 2 to implement IntMDCT and inverse IntMDCT, respectively. In FIG. 4, x1 and x2 are first and second blocks of the digital signal, respectively. z1, z2, z3 are intermediate signals, and y1 and y2 are output signals corresponding to the first and second block of the digital signal, respectively.



FIG. 5 shows a flow chart of an embodiment of the method according to the invention, wherein the transformation function is a DCT-IV transformation function. The transforming element used in this embodiment corresponds to the equation (59), i.e., is the one which is determined by the embodiment of the process illustrated in FIG. 3.


The transforming element comprises five lifting stages which correspond to the five lifting matrices of equation (59).


Further, the transforming element comprises a data shuffling stage corresponding to the permutation matrix Peo.


In FIG. 5, the input of the first lifting stage are the two blocks of the digital signal x1 and x2, z1, z2 and z3 are intermediate signals and y1 and y2 are output signals corresponding to the first and second block of the digital signal, respectively.


The input of the transforming element x and the two input blocks of the first lifting stage of the transforming element x1 and x2 fulfil the equation
[x1_x2_]=Peo_x_(60)

(confer equation (37)).


In the following, the first lifting stage 501 is explained, which is the lifting stage corresponding to the lifting matrix T3.


Let
[v1_v2_]

be the output vector of the first lifting stage, for the time being without rounding to integer values, i.e.
[v1_v2_]=T3_[x1_x2_](61)


Using the definition of T3 provided by equation (50), equation (61) is re-written as
[v1_v2_]=[IN2K3_IN2_][x1_x2_](62)


Since in this embodiment, a reversible algorithm for integer DCT-IV in this provided, there is included a rounding to integer values. So, according to equation (62), in the first step 506 of the first lifting stage 501, x1 is multiplied by K3. The result of this multiplication is rounded to integer values in step 507. The rounded values are then added to x2 in step 508. Thus, the intermediate signal z1 fulfils the equation

z1=└K3·x1┘x2  (63)

where └*┘ denotes rounding operation.


Since the other four lifting stages 502, 503, 504, 505 of the transforming element illustrated in FIG. 5, which correspond to the matrices T2, S, R2 and R, respectively, have identical structures as the first lifting stage 501, their explanation is omitted. It only has to be noted that in the adding step 509 of the second lifting step 502, x1 is, according to the definition of T2, multiplied with −DN/2.


In the following, the lifting stages of the transforming element of the reverse transformation are explained with reference to FIG. 6.



FIG. 6 illustrates the lifting stages of the transforming element for the reverse transformation of the transformation illustrated in FIG. 5.


In FIG. 6, the input of the first lifting stage are the two blocks of the digital signal y1 and y2, z1, z2 and z3 are intermediate signals and x1 and x2 are output signals corresponding to the first and second block of the digital signal, respectively.


The last lifting stage 605 illustrated in FIG. 6 is inverse to the first lifting stage 501 illustrated in FIG. 5. So, in the first step 606 of the last lifting stage 605, x1 is multiplied by K3. The result of this multiplication is rounded to integer values in step 607. The rounded values are then subtracted from z1 in step 608. Thus, the signal x2 fulfils the equation

x2=z1−└K3·x1┘  (64)

where └*┘ denotes rounding operation.


Since the other four lifting stages 601, 602, 603, 604 of the transforming element illustrated in FIG. 6, which are inverse to the lifting stages 505, 504, 503 and 502 respectively, have identical structures as the last lifting stage 605, their explanation is omitted. It only has to be noted that after the adding step 609 of the fourth lifting step 604, the result of the adding step 609 is multiplied with −DN/2 to produce x1.


It can be seen that the lifting stages 605, 604, 603, 602 and 601 of FIG. 6 are inverse to the lifting stages 501 to 505 of FIG. 5, respectively. Since also the permutation of the input signal corresponding to the matrix Peo can be reversed and an according data shuffling stage is comprised by the inverse transforming element, the provided method is reversible, thus, if used in the audio encoder 100 and the audio decoder 200 illustrated in FIGS. 1 and 2, providing a method and an apparatus for lossless audio coding.


An analysis of the number of roundings used in this embodiment is given at the end of the description of the invention.



FIG. 7 shows the architecture for an image archiving system according to an embodiment of the invention.


In FIG. 7 an image source 701, for instance a camera, provides an analog image signal. The image signal is processed by a analog-to-digital converter 702 to provide a corresponding digital image signal. The digital image signal is losslessly encoded by a lossless image encoder 703 which includes a transformation from the time domain to the frequency domain. In this embodiment, the time domain corresponds to the coordinate space of the image. The lossless coded image signal is stored in a storage device 704, for example a hard disk or a DVD. When the image is needed, the losslessly coded image signal is fetched from the storage device 704 and provided to a lossless image decoder 705 which decodes the losslessly coded image signal and reconstructs the original image signal without any data loss.


Such lossless archiving of image signals is important, for example, in the case that the images are error maps of semiconductor wafers and have to be stored for later analysis.


In the following, a further embodiment of the method for the transformation of a digital signal from the time domain to the frequency domain and vice versa according to the invention is explained. This embodiment is preferably used in the lossless image encoder 703 and the lossless image decoder 705 of the image archiving system illustrated in FIG. 7.



FIG. 8 illustrates an embodiment of the method according to the invention using DWT-IV as the transformation function.


The DWT-IV of a N-point real input sequence x(n) is defined as follows:
y(m)=2Mn=0N-1x(n)sin(π4+(m+1/2)(n+1/2)2πN)m,n=0,1,.N-1(65)


The transformation matrix WNIV of DWT-IV is given by
WNIV_=2N[sin(π4+(m+1/2)(n+1/2)2πN)]m,n=0,1,,N-1(66)


According to the process according to the invention, the DWT-IV matrix is factorised into the following form:

WNIV=RNTPN  (67)


RN is a N×N rotation matrix defined as
RN_=12[IN/2_JN/2_-JN/2_IN/2_](68)


IN/2 is the identity matrix of order N/2 (confer equation (29)) JN/2 is the counter identity matrix of order N/2 (confer equation (30)).


PN is a N×N permutation matrix
PN_=[IN/2_JN/2_](69)


T is a N×N matrix given by
T=12[CN/2IV_-CN/2IV_CN/2IVDN/2_CN/2IVDN/2_](70)

where CN/2IV is the DCT-IV matrix of order N/2
CN/2IV_=2(N/2)[cos((m+1/2)(n+1/2)π(N/2))]m,n=0,1,,N/2-1(71)


DN/2 is an order N/2 diagonal matrix given by
DN/2_=[1-11-1](72)


According to the process according to the invention, RN and T are further factorised into a product of lifting matrices:
T_=T1T2T3_=[IN/2_K1_IN/2_]·[DN/2_K2_IN/2_]·[IN/2_K3_IN/2_](73)

where
K1_=(2IN/2_-CN/2IVDN/2_)CN/2IV_K2_=-CN/2IV_2K3_=2CN/2IVDN/2_-IN/2_,

and
RN_=R1R2R3_=[IN/2_H1_IN/2_]·[IN/2_H2_IN/2_]·[IN/2_H3_IN/2_](74)

where
H1_=H3_=-tan(π/8)·JN/2_=[-0.414-0.414-0.414](75)

and
H2_=sin(π/4)·JN/2_=[0.7070.7070.707](76)


Thus, equation (67) can be written in the form

WNIV=R1R2R3T1T2T3PN  (77)


According to the process according to the invention, the lifting steps are aggregated as far as possible.


In this embodiment the lifting matrices R3 and T1 can be aggregated to the lifting matrix S:
S_=R3T1_=[IN/2_H3_+K1_IN/2_](78)


From (77) and (78), the following factorisation formula for the DWT-IV matrix is obtained:

WNIV=R1R2ST2T3PN  (79)


Equation (79) indicates that the transforming element for the integer DWT-IV transform according to the invention comprises five lifting stages.


Further, the transforming element comprises a data shuffling stage corresponding to the permutation matrix PN. The data shuffling stage rearranges the components order in each input data block. According to PN, the input data vector is rearranged in the following way: the first half of vector remains unchanged; the second half of vector is flipped, i.e.:
PN_x_=PN_[x1x2xN/2xN/2+1xN-1xN]=[x1x2xN/2xNxN-1xN/2+1](80)


In FIG. 8, the input of the first lifting stage are the two blocks of the digital signal x1 and x2, z1, z2 and z3 are intermediate signals and y1 and y2 are output signals corresponding to the first and second block of the digital signal, respectively.


The input of the transforming element x and the two input blocks of the first lifting stage of the transforming element x1 and x2 fulfil the equation
[x1_x2_]=PN_x_(81)


In the following, the first lifting stage 801 is explained, which is the lifting stage corresponding to the lifting matrix T3. Let
[v1_v2_]

be the output vector of the first lifting stage, for the time being without rounding to integer values, i.e.
[v1_v2_]=T3_[x1_x2_](82)


Using the definition of T3 provided by equation (73), equation (82) is re-written as
[v1_v2_]=[IN2K3_IN2_][x1_x2_](83)


Since in this embodiment, a reversible algorithm for integer DWT-IV in this provided, there is included a rounding to integer values. So, according to equation (83), in the first step 806 of the first lifting stage 801, x1 is multiplied by K3. The result of this multiplication is rounded to integer values in step 807. The rounded values are then added to x2 in step 808. Thus, the intermediate signal z1 fulfils the equation

z1=└K3·x1┘+x2  (84)

where └*┘ denotes rounding operation.


Since the other four lifting stages 802, 803, 804, 805 of the transforming element illustrated in FIG. 8, which correspond to the matrices T2, S, R2 and R1 respectively, have identical structures as the first lifting stage 801, their explanation is omitted. It only has to be noted that in the adding step 809 of the second lifting step 802, x1 is, according to the definition of T2, multiplied with DN/2.


In the following, the lifting stages of the transforming element of the reverse transformation are explained with reference to FIG. 9.



FIG. 9 illustrates the lifting stages of the transforming element for the reverse transformation of the transformation illustrated in FIG. 8.


In FIG. 9, the input of the first lifting stage are the two blocks of the digital signal y1 and y2, z1, z2 and z3 are intermediate signals and x1 and x2 are output signals corresponding to the first and second block of the digital signal, respectively.


The last lifting stage 905 illustrated in FIG. 9 is inverse to the first lifting stage 801 illustrated in FIG. 8. So, in the first step 906 of the last lifting stage 905, x1 is multiplied by K3. The result of this multiplication is rounded to integer values in step 907. The rounded values are then subtracted from z1 in step 908. Thus, the signal x2 fulfils the equation

x2z1−└K3·x1┘  (85)

where └*┘ denotes rounding operation.


Since the other four lifting stages 901, 902, 903, 904 of the transforming element illustrated in FIG. 9, which are inverse to the lifting stages 805, 804, 803 and 802 respectively, have identical structures as the last lifting stage 905, their explanation is omitted. It only has to be noted that after the adding step 909 of the fourth lifting step 904, the result of the adding step 909 is multiplied with DN/2 to produce x1.


It can be seen that the lifting stages 905, 904, 903, 902 and 901 of FIG. 9 are inverse to the lifting stages 801 to 805 of FIG. 8, respectively. Since also the permutation of the input signal corresponding to the matrix PN can be reversed and an according data shuffling stage is comprised by the inverse transforming element, the whole provided method is reversible, thus, if used in the lossless image encoder 703 and the lossless image decoder 705 illustrated in FIG. 7, providing a method and an apparatus for lossless image coding.


Although in the explained embodiments, the method according to the invention for DCT-IV was used for audio coding and the method according to the invention for DWT-IV was used for image coding, the method according to the invention for DCT-IV can as well be used for image coding, the method according to the invention for DWT-IV can as well be used audio coding and both can be used as well for the coding of other digital signals, such as video signals.


Considering the equations (63) and (64) one sees that there are N/2 roundings in each lifting stage. Therefore, considering equation (59), one sees that the total rounding number for the transforming element for the DCT-IV algorithm according to the invention is five times N/2, that is 2.5N, which is significantly lower than N log2 N according to the state of the art.


Again considering equation (59), one sees that the majority of computation power is used in the four N/2 point DCT-IV subroutines corresponding to a multiplication with CN/2IV, when N is a large value, e.g. N=1024. Because the floating-point DCT-IV can be calculated using two half-length DCT-IV plus pre- and post-rotations according to the equations (47) and (49), the arithmetic complexity of the proposed integer DCT-IV is roughly estimated to be twice that of the floating-point DCT-IV.


A similar conclusion can be drawn for the integer DWT-IV transformation function.


In the following, another embodiment is explained wherein the transformation is a discrete Fourier transformation.


The transformation matrix FN, which is the transformation matrix of the normalized FFT of order N is given by:
F_N=1N[exp(-j2πmnN)]m,n=0,1,,N-1(86)

where transform size N is even.


Following the decimation-in-time radix-2 FFT algorithm, FN can be decomposed in the following way:
F_N=[I_N/2/2I_N/2/2I_N/2/2-I_N/2/2][I_N/2W_][F_N/2F_N/2]P_eo(87)

Where Peo is, as above, an even-odd matrix, i.e, a permutation matrix reordering the components of a vector
x_=[x(0)x(N-1)]

by separating the components which correspond to even indices from the components which correspond to odd indices, such that
[x(0)x(2)x(N-2)x(1)x(3)x(N-1)]=P_eo[x(0)x(N-1)](88)


Let FN/2 be the transform matrix of the normalized FFT of order N/2.


Let further W be a diagonal matrix given by
W_=[WN0WN1WNN/2-1]

where WN=e−j2π/N.


IN/2 denotes, as above, the identity matrix of order N/2.


In Equation (87), the first matrix from left is an even-odd matrix Peo, which only reorders the components in the input vector.


In Equation (87), the second matrix from left can be factorized into three lifting matrices in the following way:
[F_N/2F_N/2]=[I_N/2-Q_F_N/2I_N/2][-Q_F_N/2I_N/2][I_N/2F_N/2I_N/2](89)

where Q is an order −N/2 permutation matrix given by
Q_=[100J_N/2-1]

and JN/2−1 is the order N/2−1 counter index matrix.


In Equation (87), the third matrix from left is a counter-diagonal matrix, which merely multiplies half of the components in the input vector by a complex number residing on the unit circle.


This can be interpreted as a rotation on the complex plane.


Let x=xr+jxi be such a component in the input vector.


Let further


WNk=e−j2kπ/N=cos(2kπ/N)−j sin(2kπ/N)=ck−jsk be the complex number, i.e. the component of W, which is multiplied with x when the input vector, after it has been multiplied with the first matrix from the right and the second matrix on the right of equation (87), is multiplied with W.


The result is


y=yr+jyi=WNkx=(ckxr+skxi)+j(ckxi−skxr), which equals x rotated counter-clockwise by 2kπ/N radius on the complex plane. Such a rotation can be factorized into three lifting steps as follows:
[yryi]=[cksk-skck][xrxi]=[10c-1s1][1s01][10c-1s0][xrxi](90)


In Equation (87), the fourth from the right can be factorized into three lifting matrices in the following way:
[I_N/2/2I_N/2/2I_N/2/2-I_N/2/2]=[(2-1)I_N/2I_N/2I_N/2][I_N/2-1/2I_N/2I_N/2][I_N/2(2-1)I_N/2I_N/2](91)


The decimation-in-frequency radix-2 FFT algorithm is merely a transposition of the decimation-in-time radix-2 algorithm in Equation (87).


Thus, the above procedures also apply to factorising the FFT matrix FN in the decimation-in-frequency way.


Using the factorisation of the right hand side of equation (87) in lifting matrices by generating a lifting stage corresponding to each lifting matrix a transforming element is determined.


Since it has been already detailed above how lifting stages are generated according to lifting matrices and in this embodiment this works analogously to above, the explanation is omitted here.


In this document, the following documents are herein incorporated by reference:

  • [1] H. S. Malvar, “Signal Processing with Lapped Transforms” Artech House, 1992
  • [2] R. Geiger, T. Sporer, J. Koller, K. Brandenburg, “Audio Coding based on Integer Transforms” AES 111th Convention, New York, USA, September 2001

Claims
  • 1. A process for determining a transforming element for a given transformation function, which transformation function comprises a transformation matrix and corresponds to a transformation of a digital signal from the time domain into the frequency domain or vice versa, wherein: the transformation matrix is decomposed into a rotation matrix and an auxiliary matrix which, when multiplied with itself, equals a permutation matrix multiplied with an integer diagonal matrix; the rotation matrix and the auxiliary matrix are each decomposed into a plurality of lifting matrices; the transforming element is determined to comprise of a plurality of lifting stages which correspond to the lifting matrices.
  • 2. The process of claim 1, wherein the transformation function is a DCT-I transformation function, DCT-IV transformation function, DST-I transformation function, DST-IV transformation function, DFT-I transformation function, DFT-IV transformation function, DWT-I transformation function or DWT-IV transformation function.
  • 3. The process of claim 1, wherein the lifting matrices are each block-triangular matrices with two invertible integer matrices in one diagonal.
  • 4. The process of claim 3, wherein the invertible integer matrices in each lifting matrix are identity matrices or negative identity matrices.
  • 5. The process of claim 1, wherein the transforming element comprises five lifting stages.
  • 6. The process of claim 1, wherein an audio signal or a video signal is used as the digital signal.
  • 7. A device for determining a transforming element for a given transformation function, which transformation function comprises a transformation matrix and corresponds to a transformation of a digital signal from the time domain into the frequency domain or vice versa, the device comprising: a first decomposition unit for decomposing the transformation matrix into a rotation matrix and an auxiliary matrix which, when multiplied with itself, equals a permutation matrix multiplied with an integer diagonal matrix; a second decomposition unit for decomposing the rotation matrix and the auxiliary matrix each into a plurality of lifting matrices; a determination unit for determining the transforming element to comprise of a plurality of lifting stages which correspond to the lifting matrices.
  • 8. A method for transforming a digital signal from the time domain into the frequency domain or vice versa using a transforming element, wherein: the transforming element corresponds to a given transformation function, which transformation function comprises a transformation matrix wherein the transforming element is determined by a process comprising decomposing the transformation matrix into a rotation matrix and an auxiliary matrix which, when multiplied with itself, equals a permutation matrix multiplied with an integer diagonal matrix; decomposing the rotation matrix and the auxiliary matrix each into a plurality of lifting matrices; determining the transforming element to comprise of a plurality of lifting stages which correspond to the lifting matrices; each lifting stage comprises the processing of sub-blocks of the digital signal by an auxiliary transformation and by a rounding unit.
  • 9. A device for transforming a digital signal from the time domain into the frequency domain or vice versa comprising a transformation unit for transforming the digital signal by a transforming element, wherein: the transforming element corresponds to a given transformation function, which transformation function comprises a transformation matrix wherein the transforming element is determined by a process comprising decomposing the transformation matrix into a rotation matrix and an auxiliary matrix which, when multiplied with itself, equals a permutation matrix multiplied with an integer diagonal matrix; decomposing the rotation matrix and the auxiliary matrix each into a plurality of lifting matrices; determining the transforming element to comprise of a plurality of lifting stages which correspond to the lifting matrices; for each lifting stage the device comprises an auxiliary transformation unit for processing sub-blocks of the digital signal and a rounding unit for processing sub-blocks of the digital signal.
  • 10. A computer readable medium having a program recorded thereon, wherein the program is adapted to make a computer perform a process for determining a transforming element for a given transformation function, which transformation function comprises a transformation matrix and corresponds to a transformation of a digital signal from the time domain into the frequency domain or vice versa, wherein: the transformation matrix is decomposed into a rotation matrix and an auxiliary matrix which, when multiplied with itself, equals a permutation matrix multiplied with an integer diagonal matrix; the rotation matrix and the auxiliary matrix are each decomposed into a plurality of lifting matrices; the transforming element is determined to comprise of a plurality of lifting stages which correspond to the lifting matrices.
  • 11. A computer readable medium having a program recorded thereon, wherein the program is adapted to make a computer perform a method for transforming a digital signal from the time domain into the frequency domain or vice versa using a transforming element, wherein: the transforming element corresponds to a given transformation function, which transformation function comprises a transformation matrix wherein the transforming element is determined by a process comprising decomposing the transformation matrix into a rotation matrix and an auxiliary matrix which, when multiplied with itself, equals a permutation matrix multiplied with an integer diagonal matrix; decomposing the rotation matrix and the auxiliary matrix each into a plurality of lifting matrices; determining the transforming element to comprise of a plurality of lifting stages which correspond to the lifting matrices; each lifting stage comprises the processing of sub-blocks of the digital signal by auxiliary transformations and by a rounding unit.
  • 12. The process of claim 2, wherein the lifting matrices are each block-triangular matrices with two invertible integer matrices in one diagonal.
  • 13. The process of claim 12, wherein the invertible integer matrices in each lifting matrix are identity matrices or negative identity matrices.
CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of priority of U.S. Provisional Application No. 60/507,210, filed 29 Sep. 2003, and U.S. Provisional Application No. 60/507,440, filed 29 Sep. 2003, the contents of each being hereby incorporated by reference in its entirety for all purposes. Further, the following commonly-owned applications are concurrently-filed herewith, and herein incorporated in its entirety: “Method for Performing a Domain Transformation of a Digital Signal from the Time Domain into the Frequency Domain and Vice Versa,” Atty. Docket No. P100442, and “Method for Transforming a Digital Signal form the Time Domain into the Frequency Domain and Vice Versa,” Atty. Docket no. P100444.

PCT Information
Filing Document Filing Date Country Kind 371c Date
PCT/SG04/00122 5/6/2004 WO 4/26/2007
Provisional Applications (2)
Number Date Country
60507440 Sep 2003 US
60507210 Sep 2003 US