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
HELP! DCT is not good enough. How to design my own transform basis matrix for image compression?
Started by ●August 21, 2003
Reply by ●August 22, 20032003-08-22
"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, > > -Walalawalala, 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