Some notes on forward transform.
For 4×4 transform matrix is:
17 17 17 17
22 10 -10 -22
17 - 17 - 17 17
10 -22 22 -10
And suggested norm is (8/289 ; 8/292; 8/289; 8/292)
The forward transform for (A B C D ) will be:
A1 = (17 * A + 17 * B + 17 * C + 17 * D) * 8 / 289;
B1 = (22* A + 10 * B - 10 * C - 22 * D) * 8 / 292;
C1 = (17 * A - 17 * B - 17 * C + 17 * D) * 8 / 289;
D1 = (10 * A - 22 * B + 22 * C - 10 * D) * 8 / 292;
Of course, don’t forget to round result.
I tested it on Octave and it proved to be correct.
Optimization is also straightforward: compute (A+D) , (B+C), (B-C) and use their sums/differencies.
Hi,
Just trying an experiment with the VC-1 transform and need some technical advice:
I wrote a small program to Forward Transform and then Inverse Transform an enitre frame in 8×8 mode. I didn’t do the Quantization-Inverse Quantization step in the middle. The entire thing was done using 32-bit signed integers.
My question is: should’nt I get an exact image after the forward-inverse transform cycle?
I ask this because I am wondering whether the VC-1 transform is truly lossless if the forward-inverse transform cycle is done using only integer arithmetic.
Thanks in advance.