Game Development Reference
In-Depth Information
5.2 Transform and Quantization in AVS1
In AVS1, the size of transform matrix
N
equals 8 and the following integer cosine
transform is applied to approximate
DCT
using a Pre-scaled Integer Transform (PIT)
(Zhang et al.
2005
) technique:
T
8
Y
=
(
×
X
×
T
8
)
⊗
S
,
(5.7)
where
C
=
A
⊗
B
means
C
ij
=
A
ij
×
B
ij
, and
S
is defined as below:
1
S
ij
=
N
−
1
k
N
−
1
k
,
(5.8)
T
8
T
8
(
i
,
k
)
(
k
,
j
)
=
0
=
0
⊡
⊤
8 0 0 9 8 6 4 2
89 4
⊣
⊦
−
2
−
8
−
10
−
10
−
6
86
−
4
−
10
−
8209
82
−
10
−
689
−
4
−
10
T
8
=
.
8
−
2
−
10
6
8
−
9
−
40
8
−
6
−
40
−
8
−
20
−
9
8
−
942
−
8 0
−
10
6
8
−
10
10
−
98
−
64
−
2
Similarly, the inverse transform is defined as below according to the forward
transform process shown in Eq.
5.7
,
S
×
T
8
Y
=
(
T
8
×
X
⊗
).
(5.9)
S
operation in Eq.
5.9
, as known
as the forward and inverse scaling process, can be done together with the quantization
process, so that 8
It is noted that the
⊗
S
operation in Eq.
5.7
and
⊗
8 multiplications in Eqs.
5.7
and
5.9
can be saved. Based on the
above description, the forward transform is further reformulated as below:
×
Y
=
(
T
8
×
X
×
T
8
+
(
1
4
))
5
.
(5.10)
To implement the arithmetic described in Eq.
5.10
, only additions and shifts are
needed and multiplications are avoided to achieve low-complexity.
After the forward transform, the scaling operation which is used to approximate
DCT
in Eq.
5.7
is combined with the quantization process, as formulated below,
Y
=
(
⊗
)//
,
Y
CS
Q
(5.11)