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}
- 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}
'STUDY > 전공' 카테고리의 다른 글
| ffmpeg 을 Bluesky2440에 porting 하기 (4) | 2007/03/23 |
|---|---|
| Verilog Coding Style Guide -1 (0) | 2007/02/01 |
| [H.264] Integer Transform (0) | 2006/12/11 |
| [H.264] Intra Prediction (0) | 2006/12/07 |
| [H.264] Encoder Block Diargram (0) | 2006/12/05 |
| [H.264] H.264 개요 (0) | 2006/12/05 |