1. Integer Transform 특징
-
Spatial Redundancy 를 효율적으로 제거 하기 위해 사용
- MPEG4 에서 사용하는 DCT 와 유사하다.
- Time domain -> Frequency domain 의 변환을 한다.
- Quantization과 겹친다.
- Core Transform 과 Hadamard Transform 으로 구성
- DCT 의 단점인 소수점 연산을 없애서
Inverse 과정을 했을때 오차가 없다.
-
Add 연산과 Shift 연산 만으로 구현이 가능하다.
2. Integer Transform 연산
-
Y = A X A^t * E
A : 가로축 변환 계수 행렬
A^t : A 의 transpose 행렬
X : NxN block 의 데이터 행렬
Y : Transpose 결과 계수
E : 상수 배열
3. Core Transform
- Luma 와 Chroma block 모두
4x4 block 으로 연산을 한다.
- Y = AXAt 의 연산이 Y = CXC^t(*)E 의 형태로 바뀐다.
- C 아 Ct 가 core transform 의 계수행렬이다.
- C = {1,1,1,1,2,1,-1,-2,1,-1,-1,1,1,-2,2,-1} , Ct = {1,2,1,1,1,1,-1,-2,1,-1,-1,2,1,-2,1,-1}
4. Hadamard Transform
- DC성분 값을 줄이는데 사용
- 변화과 역변화이 같다.
- Luma 와 Chroma block 의 모드별로 다르게 사용한다.
5. 4x4 Intra Predicted Luma block
- Hadamard Transform을사용하지 않는다.
6. 16x16 Intra Predicted Luma block
- 1개의 Macro block 에대해서 4x4 block 의 DC값의 크기가 비슷
- 각 block 의 DC값 4개를 4x4 block 으로 만든 후 Hadamard Transform 수행
-
Wl = K Y K * C
Wl : Luma Hadamard Transform 결과 행렬
K : Hadamard Transform 의 계수
Y : Core Transform 의 결과 block 의 DC행렬
C : 상수
- K = {1,1,1,1,1,1,-1,-1,1,-1,-1,1,1,-1,1.-1}
7. 8x8 Intra Predicted Chroma block
- 인근 block간의 DC 값이 유사하여 변환 효과가 높다.
- 각 block 의 DC 값 4개를 2x2 block 으로 만든 후 Hadamard Transform 수행
-
Wc = K` Y K` * C Wc : Chroma Hadamard Transform 의 결과 행렬
K` : Hadamard Transform 의 계수
Y : Core Transform 의 결과 block 이 DC 행렬
C : 상수
- K` = {1,1,1,-1}