1 Discrete Cosine Transform 1974 년 미 텍사스대학의 라오 교수등이 이산 코사인 변환 (DCT: Discrete Cosine Transform) 이라는 새로운 직교변환에 관한 논문 을 IEEE 학술지에 발표.. 여러가지의 직교변환 가운데 이론적으로 영상신호의 에너지 집 중특성이 가장 뛰어나 압축에 가장 효과적인 것은 카루넨 - 뢰 브 변환 (Karhnen-Loeve Transforma, KLT) 임. 그러나 이것은 영상에 따라 변환함수가 새로 정의되어야 하는 결점. 따라서 이 KLT 에 충분히 가까운 성능을 가지면서 구현 가능한 변환을 찾 는 것이 라오 교수팀의 목표였고 그 결과가 바로 DCT 이다. 1 차원이나 2 차원의 데이터를 공간영역에서 주파수 영역으로 변환하는 방법. 영상의 경우 주파수 영역으로 변환해 보면 저주파 계수들이 크고, 고주파로 갈수록 값이 상당히 작아지는 것을 발견할 수 있슴.
2 직교변환 푸리에 변환 – 파형은 직교 파형의 계수 연산으로 합성가 능 DCT 변환 – 코사인 함수 (DCT Basis function) 의 계수 연 산으로 합성
3 Time and Frequency example : g(t) = sin(2pf t) + (1/3)sin(2p(3f) t) = +
4 Discrete Cosine Transform Image 압축 (JPEG) 에서의 DCT 사용 BASE LINE : Image -> DCT -> Quantization -> Huffman coding 5 단계 과정 : 1. 영상을 휘도 / 색도 컬러 색상 공간 (YIQ) 으로 변환 2. 컬러 구성요소 ( 색차 신호인 I 와 Q) 다운 셈플링 ( 옵션 ) 3. 영상을 8×8 화소의 블록들로 분할하고 각 블록에서 DCT 를 실행 4. 결과 DCT 계수를 양자화 5. 허프만 기법을 이용한 코딩
5 Discrete Cosine Transform Image 압축 (JPEG) 에서의 DCT 사용 1. 영상을 휘도 / 색도 컬러 색상 공간 (YIQ) 으로 변환 2. 컬러 구성요소 ( 색차 신호인 I 와 Q) 다운 셈플링 ( 옵션 ) - 색차 신호인 I 와 Q 값은 시각적으로 눈에 잘 띄지 않는 정보를 담고 있슴 - Y 값은 모두 기억하고 I 와 Q 값은 2×2 또는 2×1 크기의 블록으로 한 개씩만 기억. 색차신호는 많이 버려도 거의 차이를 느끼지 못함.
6 Discrete Cosine Transform Image 압축 (JPEG) 에서의 DCT 사용 3. 영상을 8×8 화소의 블록들로 분할하고 각 블록에서 DCT 를 실행 - Image 에서 8×8 크기의 화소를 하나의 블록으로 묶어 변환. - 블록의 크기를 키울수록 압축효율은 높아지나 변환의 구현이 훨씬 어려워짐. - 실험적으로 8×8 이 성능과 구현의 용이성이 타협점으로 선택. - 8×8 화소의 원소들은 부호를 가진 정수로 변환되기 위해 각 화소에서 128 을 감한후에 DCT 를 수행. 4. 결과 DCT 계수를 양자화 - 양자화 과정은 many-to-one 변환이므로 역양자화 과정을 거치게 될 때에 정보를 유실. - 양자화 과정이 DCT 기반의 압축알고리즘에서의 주요 손실 원인. - DCT 계수의 양자화는 각 DCT 계수를 이에 대응하는 양자화 스텝사이즈로 나눈후, 가장 가까운 정수로 치환함으로써 이루어짐.
7 Discrete Cosine Transform Image 압축 (JPEG) 에서의 DCT 사용 5. 허프만 기법을 이용한 코딩 - 양자화된 DCT 계수는 지그재그 스캔에 의해 순서대로 블록화되고, 허프만 기법을 이용하여 코딩되어짐.
8 Using DCT in JPEG DCT on 8x8 blocks
9 Using DCT in JPEG DCT – basis
10 Discrete Cosine Transform Example 각 화소에서 128 을 뺀후 DCT 수행
11 Discrete Cosine Transform Example
12 Discrete Cosine Transform Example 양자화 테이블을 이용하여 DCT 계수를 양자화
13 Discrete Cosine Transform Example 앞장의 그림에서 양자화화 결과를 지그재그 스캔순서로 코딩 이것을 허프만 테이블을 이용하여 코딩한 결과 이결과 512 bit 의 영상을 92 bit 로 표현할 수 있다.
14 Discrete Cosine Transform Example 양자화한 값을 역양자화 한 후에 IDCT 를 한다. 결과적으로 실제 8×8 영상 블록의 Y 값과 IDCT 를 한 값의 차이는 별로 크지 않다.
15