DCT (이산 코사인 변환)
이미지를 주파수 성분으로 바꿔주는 변환
- 영상의 residual 데이터나 픽셀 블록에 적용
- 원래 이미지 데이터를 주파수 coefficient로 변환
- 중요 정보를 몇개의 계수만으로 표현하고, 나머지 정보를 무시 가능해짐
N*N 크기의 샘플블록 X를 처리하여 N*N 크기의 계수 블록 Y를 생성
변환 행렬 A를 사용하여 DCT와 IDCT의 동작을 설명

공식
변환 행렬 A의 요소 공식은 다음과 같다.
Aij=Cicos(2N(2j+1)iπ)whereCi=⎩⎪⎨⎪⎧N1N2i=0i>0
summation form으로 다시 쓰면
Yxy=CxCyi=0∑N−1j=0∑N−1Xijcos(2N(2j+1)yπ)cos(2N(2i+1)xπ)
Xij=x=0∑N−1y=0∑N−1CxCyYxycos(2N(2j+1)yπ)cos(2N(2i+1)xπ)
예시
4x4 DCT의 A 행렬의 값은 다음과 같

위 코사인 식을 풀면 아래와 같다.

4x4 DCT의 basis pattern은 다음과 같다.

DCT의 연산 순서
Y' = AX: X의 각 열에 대해 1차원 DCT를 계산하는 것과 동일
Y=Y′A_T: Y'의 각 행에 대해 1차원 DCT를 계산하는 것과 동일
DCT 유용성
원본 이미지 블록을 DCT 계수 블록으로 변환한 후

가장 중요한 계수인 DC 계수 (0,0) 만 남기고 모든 계수를 0으로 설정한 후 IDCT 수행하면 원본 픽셀들의 평균값이 된다.
5개의 계수를 포함하면 IDCT 결과 블록은 원본과 근접하게 된다
16개의 계수 중 일부만으로도 이미지 블록의 근사한 복사본을 재구성할 수 있다.

Quantization이 이 점을 이용해 중요도가 낮은 계수를 0으로 만들어서 데이터 양을 줄인다.