DSPRelated.com
Forums

HELP! DCT is not good enough. How to design my own transform basis matrix for image compression?

Started by walala August 21, 2003
Dear all,

I want to design a my own transform basis matrix.

For 2D case, forward transform is: Y=A*X*B, inverse transform is: Z=C*Y*D...
let's say X, Y, Z, A, B, C, D are 8x8 matrices...

Can anybody tell me what relationship should A, B, C, D have?

1)Orthognality?
2)A=B'?
3)C=D'?
4)A=B^(-1)?
5)C=D^(-1)?
6)B=C?
7)A=D?
...

Thank you very much if you can also point me to some resources for
reference?

Thanks a lot,

-Walala



"walala" <mizhael@yahoo.com> wrote in message news:<bi3tuf$g0$1@mozo.cc.purdue.edu>...
> Dear all, > > I want to design a my own transform basis matrix. > > For 2D case, forward transform is: Y=A*X*B, inverse transform is: Z=C*Y*D... > let's say X, Y, Z, A, B, C, D are 8x8 matrices... > > Can anybody tell me what relationship should A, B, C, D have? > > 1)Orthognality? > 2)A=B'? > 3)C=D'? > 4)A=B^(-1)? > 5)C=D^(-1)? > 6)B=C? > 7)A=D? > ... > > Thank you very much if you can also point me to some resources for > reference? > > Thanks a lot, > > -Walala
walala, Are you in Industry or doing academic course? Sorry to ask the question if you don't mind. Have a look at "Matrix computation" by Golub,Loan to get most of your answers. To discuss a bit let us assume Y is the given matrix upon which you like to apply matrix operation if that is true from your question then, Let me write your eqns in the following form: Y=A*X*B' and Z=C*Y*D You should specify whether Y is a complex or real matrix? I guess it is real since you ask for orthogonality,transpose and DCT - right? otherwise one would expect unitary,Hermitian and some thing like complex DFT. If SVD is employed then A and B are orthogonal matrices or can be called as singular basis vector, and can be related as A*A'=B*B'= I , where I is identity matrix. X is obviously diagonal matrix with its eigen(singular) values a1>a2>a3> ...>a8>0 Inverse transform as follows: Step 1: Y*B = A*X*B'*B = A*X Step 2: A'*Y*B= A'*A*X = X So It is clear Z=X, A'=C, B=D Remember, the above proposition is done if Y is your matrix and like to decompose Y(some kind of transform). Apply inverse transform on Y to get its diagonal form. There are other popular ways to do that but you need to specify your matrix first so that one can exploit the best method as described in the text. Regards, Santosh