b0609328_dct압축

Download Report

Transcript b0609328_dct압축

Discrete Cosine Transform
• 1974년 미 텍사스대학의 라오 교수등이 이산 코사인 변환 (DCT:
Discrete Cosine Transform)이라는 새로운 직교변환에 관한 논문
을 IEEE학술지에 발표.
• .여러가지의 직교변환 가운데 이론적으로 영상신호의 에너지
집중특성이 가장 뛰어나 압축에 가장 효과적인 것은 카루넨뢰브 변환(Karhnen-Loeve Transforma , KLT)임. 그러나 이것은
영상에 따라 변환함수가 새로 정의되어야 하는 결점. 따라서 이
KLT에 충분히 가까운 성능을 가지면서 구현 가능한 변환을
찾는 것이 라오 교수팀의 목표였고 그 결과가 바로 DCT이다.
• 1차원이나 2차원의 데이터를 공간영역에서 주파수 영역으로
변환하는 방법.
• 영상의 경우 주파수 영역으로 변환해 보면 저주파 계수들이 크고,
고주파로 갈수록 값이 상당히 작아지는 것을 발견할 수 있슴.
1
Discrete Cosine Transform
개요(계속)
• 아래와 같은 Discrete Fourier Transform 의 변환 행렬의 요소 중
에서 cosine함수만을 이용하는 직교변환이 DCT이다.
• 실수 입력에 대한 DCT 계수는 실수가 된다.
• FFT 알고리즘을 이용할 수 있다.
• 뛰어난 에너지 집중효과를 나타낸다.
• 정지 영상 데이터의 압축표준인 JPEG , 동영상 데이터의 압축표준인
H.261 과 MPEG등에서 부호화과정의 일부로 이용
2
Discrete Cosine Transform
3
Discrete Cosine Transform
4
Discrete Cosine Transform
Examples
5
Discrete Cosine Transform
Examples
6
Discrete Cosine Transform
matlab
• matlab을 이용한 확인
7
Discrete Cosine Transform
2차원 DCT
1. matlab에서는 dct2(A)=dct((dct(A)') ' 와 같이 1차원 dct를
이용하여 2차원 dct를 구한다.
8
Discrete Cosine Transform
2차원 DCT(계속)
2. 행렬분리 계산 (행DCT->열DCT or 열DCT->행DCT)
9
Discrete Cosine Transform
DC
DC
vertical
low
medium
high
frequency distribution
diagonal
horizontal
block features
Frequency distribution of two dimensional DCT coefficients
and block features they represent
10
Discrete Cosine Transform
Image 압축(JPEG)에서의 DCT 사용
BASE LINE :
Image -> DCT -> Quantization -> Huffman coding
5단계 과정 :
1.
2.
3.
4.
5.
영상을 휘도/색도 컬러 색상 공간(YIQ)으로 변환
컬러 구성요소(색차 신호인 I와 Q) 다운 셈플링(옵션)
영상을 8×8 화소의 블록들로 분할하고 각 블록에서 DCT를 실행
결과 DCT 계수를 양자화
허프만 기법을 이용한 코딩
11
Discrete Cosine Transform
Image 압축(JPEG)에서의 DCT 사용
1. 영상을 휘도/색도 컬러 색상 공간(YIQ)으로 변환
2. 컬러 구성요소(색차 신호인 I와 Q) 다운 셈플링(옵션)
- 색차 신호인 I와 Q값은 시각적으로 눈에 잘 띄지 않는 정보를 담고 있슴
- Y값은 모두 기억하고 I와 Q값은 2×2 또는 2×1 크기의 블록으로
한 개씩만 기억. 색차신호는 많이 버려도 거의 차이를 느끼지 못함.
12
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 계수를 이에 대응하는 양자화 스텝사이즈로
나눈후, 가장 가까운 정수로 치환함으로써 이루어짐.
13
Discrete Cosine Transform
Image 압축(JPEG)에서의 DCT 사용
5. 허프만 기법을 이용한 코딩
- 양자화된 DCT 계수는 지그재그 스캔에 의해 순서대로 블록화되고,
허프만 기법을 이용하여 코딩되어짐.
14
Discrete Cosine Transform
Example
각 화소에서 128을 뺀후
DCT 수행
15
Discrete Cosine Transform
Example
16
Discrete Cosine Transform
Example
양자화 테이블을 이용하여 DCT 계수를 양자화
17
Discrete Cosine Transform
Example
앞장의 그림에서 양자화화 결과를 지그재그 스캔순서로 코딩
이것을 허프만 테이블을 이용하여 코딩한 결과
이결과 512 bit의 영상을 92 bit 로 표현할 수 있다.
18
Discrete Cosine Transform
Example
양자화한 값을 역양자화 한 후에 IDCT를 한다.
결과적으로 실제 8×8 영상 블록의 Y값과 IDCT를 한 값의 차이는
별로 크지 않다.
19
20