손실 부호화

Download Report

Transcript 손실 부호화

손실 부호화
(lossy coding)
절단 부호화(truncation coding) I
 공간 해상도를 줄이는 방법 : 다운샘플링(down-sampling)
 영상 복원 : 선형 인터폴레이션(linear interpolation)
원영상
2
다운샘플링 영상
인터폴레이션 영상
절단 부호화(truncation coding) II
 밝기 해상도를 줄이는 방법 : 화소 값을 표현하는데 사용되는 비트 중
중요한 정보를 가지고 있는 상위 비트는
그대로 두고, 하위 비트만을 제거
 영상 복원 : 없어진 비트를 잡음 패턴으로 채움
제거
3
절단 부호화(truncation coding) III
원영상
f1
잡음을 채워
복원한 영상
원영상과
4 bit
영상
f2
4
복원한 영상과의
차영상
( f1  f 2 )  5
양자화(quantization)
 시각 시스템의 특징 이용  화질 저하를 느끼지 못하는 범위내에서
 스칼라 양자화(scalar quantization)
 벡터 양자화(vector quantization)
Q
x
ai  x  au
d 0 d1 d 2
r1
r2
양자화기
Q(x)  rk if dk1  x  dk
k 1,2,3,, L
d k 1 d k
d L1 d L
rk
rL
Quantizer output range
5
균일 양자화
 양자화 간격이 일정
r
r32.5
eq = r -x
0.5
1.5
r2
r1 0.5
x
1
d1
2
d2
3
-0.5
d3
균일 양자화
6
x
균일 양자화의 양자화 잡음
비균일 양자화 I
 양자화 간격 가변
- 값들이 많이 몰려있는 부분에서 촘촘히 양자화
r
r3
r2
r1
x
1
7
d1
2
d2
3
d3
비균일 양자화 II
 Lloyd-Max 양자화
- MSE가 최소가 되는
rk , d k 계산

L
di
i 1
d i 1
  E[e ]  E[( r  X ) ]   (r  x) P( x)dx    (ri  x) 2 P( x)dx
2
2
q
 2
0
rk
2

dk
rk



d k 1
dk
d k 1
 2
0
d k
8
2
xP( x)dx
P( x)dx
rk  rk 1
dk 
2
,1  k  L
Lloyd-Max 양자화 예
2 x, 0  x  1
P( x)  
0, otherwise
1. Initial guess : r1=0.4, r2=0.6
r r
d1  1 2  0.5,
2
0.5
r1 


0
0
 
2
0
1
0.5
1
 0.3333,
2 xdx
0.55
2
0
2
2 x dx
0.5
0.5
   (0.4  x) 2 xdx   (0.6  x) 2 2 xdx  0.0433
2
r2 


0.5
1
2 x 2 dx
0.5
2 xdx
1
(0.33  x) 2 xdx  
2
 0.7777,
0.55
d1  0.55
(0.77  x) 2 2 xdx  0.0156
2. 두 번째 반복하면
r1  0.37,
9
r2  0.8,
d1  0.585,  2  0.0163
MSE가 증가했으므로 첫번째
반복결과를 취한다.
벡터 양자화 I
 Pattern Matching : 일치되는 것이 없으면 가장 가까운 값 선택
 Codebook의 index로 압축, 복원
벡터 양자화의 예)
10
키(cm)
몸무게(kg)
183
82
183
79
165
54
112
19
키(cm)
몸무게(kg)
150
54
114
23
157
52
114
53
163
68
152
50
191
53
165
73
203
82
142
41
145
40
178
78
초기 중심점(centroid) 설정
벡터 양자화 II
두 번째 단계 – 평균에 의한 중심점 재계산
첫 번째 단계
(112, 19), (147, 46), (161, 53), (174, 76)
MSE = 348
11
90
90
80
80
70
70
60
60
몸무게(kg)
몸무게(kg)
MSE = 89
50
40
50
40
30
30
20
20
10
100
10
100
120
140 160
키(cm)
180
200
120
140
160
키(cm)
180
벡터 양자화 III
마지막 단계 - 중심점 재계산
(112, 19), (143, 40), (156, 52), (174, 76)
MSE = 72
90
80
몸무게(kg)
70
60
50
40
30
20
10
100
12
120
140
160
키(cm)
180
손실 예측 부호화(lossy predictive coding) I
 무손실 예측 부호화에 양자화를 도입
 예측 에러를 양자화  양자화에 따라 압축률이 결정
입력 영상
부호기
+
fn

en
fn
Predictor
복호기
en
Quantizer
압축 영상
Symbol
decoder

+
fn
13
fn  en  fˆn
+
en +
압축 영상
+

fn
Symbol
encoder
fn
Predictor
복원 영상
손실 예측 부호화 II
 At receiver : fn  en  fˆn
 
E en2  E
 f
ˆ
n  fn

2
subject to the constraint that
fn  en  fˆn  Qen   fˆn  en  fˆn  f n ,
 Optimal predictor design
2
m

 


E e   E   f n    i f n  i  
i 1

 


2
n
m
fˆn    i f n i
E e 2 
0
 i
i 1
α  R 1r
where
 E f n 1 f n 1 E f n 1 f n 2   E f n 1 f n m  
 E f f  E f f   E f f  
n  2 n 1
n2 n2
n2 nm 
R













E
f
f
E
f
f

E
f
f
n  m n 1
nm n2
nm nm 

14
 E f n f n 1 
 E f f  
r   n n2 







E
f
f
 n nm 
1 
 
α   2
 
 
 3 
손실 예측 부호화 III – Simple image model
 실제로 R과 r을 만들기 위해 자기 상관도를 계산하는 것은
매우 어렵기 때문에 단순한 영상 모델을 가정하고 α를 구한다
 2-D Markov source with seperable autocorrelation function
E f ( x, y ) f ( x  i, y  j )   2  vi  hj
Fourth-order linear predictor
fˆ x, y   1 f x, y 1   2 f x 1, y 1  3 f x 1, y    4 f x 1, y  1
The resulting optimal coefficients are
1   h  2   v  h  3  v  4  0
Where ρh : the horizontal correlation coefficients
ρv : the horizontal correlation coefficients
15
손실 예측 부호화 IV – DM(Delta Modulation) I
 손실 예측 부호화의 가장 간단한 형태
 양자화기의 출력이 단일 비트로 표현
 전송률을 낮출 수 있으나, slope overload 나 granual noise에 의한
화질 저하가 생김
fn  fn1
e
+6.5
Code = 1
  foren  0
en  
  otherwise
원영상
복호결과
e
-6.5
Code = 0
16
Granual noise
부호 과부하 상태
손실 예측 부호화 V – DM(Delta Modulation) II
Input
17
Encoder
Decoder
f
Error
f
f  f
-
14.0
0.0
20.5
14.0
20.5
-5.5
-6.5
14.0
20.5
14.0
0.0
1.0
6.5
20.5
14.0
20.5
-5.5
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
14
29
20.5
8.5
6.5
27.0
20.5
27.0
2.0
15
37
27.0
10.0
6.5
33.5
27.0
33.5
3.5
16
47
33.5
13.5
6.5
40.0
33.5
40.0
7.0
17
62
40.0
22.0
6.5
46.5
40.0
46.5
15.5
18
75
46.5
28.5
6.5
53.0
46.5
53.0
22.0
19
77
53.0
24.0
6.5
59.6
53.0
59.6
17.5
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
n
f
0
14
-
-
-
14.0
1
15
14.0
1.0
6.5
2
14
20.5
-6.5
3
15
14.0
•
•
•
f
e
e
f
변환 부호화(Transform coding)
 구현의 용이성 등을 고려할 때 DCT가 가장 적합 :
 고주파 성분은 양자화기에서 압축
 부영상으로 나눠서 처리 : 8x8, 16x16 가장 적합
Input
image
(N X N)
Construct
nxn
subimages
Forward
transform
Quantizer
Symbol
Encoder
Compressed
image
(a) 부호기
Compressed
image
Symbol
Decoder
Inverse
quantizer
Inverse
transform
(b) 복호기
18
reconstruct
nxn
subimages
Deompressed
image
비트 할당(bit allocation)
 각 변환 계수를 부호화하는데 사용되는 비트들의 숫자,
혹은 하나의 영상을 부호화하는데 필요한 전체 비트를 결정
 저주파 성분에 더 많은 비트를 할당
 양자화는 비트 할당(bit allocation)에 의해 일부 수행
비트 할당 마스크
19
8
7
6
4
3
2
1
0
7
6
5
4
3
2
1
0
6
5
4
3
3
1
1
0
4
4
3
3
2
1
0
0
3
3
3
2
1
1
0
0
2
2
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
구역 부호화(zonal 부호화)와
문턱치 부호화(threshold coding)
 변환 부호화 방식
 구역 부호화 : 최대 분산에 기초하여 변환 계수를 선택
 문턱치 부호화 : 문턱치(threshold value) 이상의 변환 계수를 선택
구역 부호화
f
T(u, v)
e
blocks
d
c
b
a
같은 주파수를 갖는 변환 계수들의
분산을 각각 계산
20
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0구역0마스크(zonal
0 0 0 mask)를
0 0 결정
0
1 : 변환 계수 유지, 0 : 변환 계수 제거
JPEG (Joint Photographic Expert Group)
 ADCT(Adaptive Discrete Cosine Transformation)에 기반
Quantization
Tables
8  8 블록으로 분할
Coding
Tables
Header
Tables
DCT
Quantizser
Entropy
Coder
Data
인코딩 블록 다이어그램
21
DCT와 양자화의 예
80
78
76
71
82
90
88
83
84
80
81
75
85
91
88
82
84
80
84
74
88
99
93
80
86
80
88
77
90
95
95
77
90
84
82
76
91
90
99
73
90 90 89
84 84 88
80 77 77
76 80 80
91 90 90
88 84 84
100 100 100
70 66 66
674
-10
-1
41
-23
11
-11
19
-5
-13
4
-9
2
-11
20
-7
원영상
42 0 -1
-1 -1 0
0 0 0
3 -1 0
-1 0 0
0 0 0
0 0 0
0 0 0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-4 0 -1 0 0
0 0 -2 -3 -1
4 0 -2 1 1
1 -1 0 2 2
2 -1 -1 -3 0
1 0 1 -2 0
-4 -1 2 1 -1
1 0 0 0 -1
16
12
14
14
18
24
49
72
11
12
13
17
22
36
64
92
DCT 변환 영상
0
0
0
0
0
0
0
0
양자화한 영상
22
-10
1
3
-2
4
-1
-6
-5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
672
-12
0
42
-18
0
0
0
0
-12
0
-17
0
0
0
0
-10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
역양자화
0
0
0
0
0
0
0
0
10
14
16
22
37
55
78
95
16
19
24
29
56
64
87
98
24 40 51 61
26 58 60 66
40 57 69 57
51 87 80 62
68 109 103 77
81 104 113 92
103 121 120 101
112 100 103 99
양자화 테이블
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
78
80
79
77
83
91
89
82
80
81
79
78
84
92
90
82
83
83
80
79
86
94
91
82
86
84
80
79
88
96
91
81
89
85
79
78
88
97
91
78
90
85
77
77
88
97
89
75
역 DCT 영상
91
84
75
75
87
96
87
72
91
83
74
74
86
96
86
70
엔트로피 코딩
 DC 계수와 AC 계수로 나누어서 코딩
DC
Block
i 1
-
Size
Table

DC
43
size
DC Huffman
Table
+
amplitude
DC codework
DC amplitude
calculation
value
Blocki
Size
0
0
0
.
.
.
AC
18
value
size
Run-length
Coder
Size
Table
AC Huffman
Table
Size
amplitude
AC codework
run
23
AC amplitude
calculation
DC 계수의 엔트로피 코딩
DCi-1 : 40, DCi : 43
Size(bit 수)
Amplitude
0
0
Size = 2
1
-1, 1
Amplitude = 11
2
-3, -2, 2, 3
3
-7∼-4, 4∼7
4
-15∼-8, 8∼15
5
-31∼-16, 16∼31
6
-63∼-32, 32∼63
011(size) : 11(amplitude)
7
-127∼-64, 64∼127
= 01111
8
-255∼-128, 128∼255
DCi - DCi-1 = 43 – 40 = 3
If) size ‘2’에 해당하는 허프만
부호를 ‘011’로 가정하면,
최종적인 부호값은
24
AC 계수의 엔트로피 코딩
여섯 개의 0과 18이라는 값을 차례로
갖는다고 가정
Run : 6
18 의 size : 5
18의 amplitude : 10010
(6/5, 10010)
(6/5)의 허프만 코딩값이 1101이라고 가정
최종적인 부호화 값은 110110010
25
40
43 0 0 0
0 0 18
0
JPEG의 모드 – 순차적 DCT 기반의 동작 모드
 영상의 8  8 블록 단위로 DCT 변환, 양자화, 엔트로피 코딩
 입력된 영상을 순차적으로 코딩하고 전송하는 특징 때문에 압축된
이미지를 전송 받음과 동시에 압축된 데이터를 전부 입력 받지 않더라도
복원과정을 수행
26
JPEG의 모드 – 점진적 DCT 기반의 동작 모드
 양자화기와 엔트로피 부호화기 사이에 메모리 버퍼를 넣고,
양자화된 DCT 계수들을 이 메모리 버퍼에 저장한 다음,
여러 가지 스캔 방법을 이용하여 부호화
an
sc
zero
frequency
1
an
sc
2
an
sc
3
an
sc
4
scan 3
scan 2
scan 1
LSB
highest
frequency
선택적 주파수 스캔
(spectral selection)
27
MSB
연속 근사
(successive approximation)
JPEG의 모드 – 계층적 부호화 모드
 원영상을 다운샘플링(down-sampling)을 통하여 여러 해상도의
프레임으로 구성하여 부호화 여러 가지 해상도를 요구하는 경우에 적합
JPEG encoder
4
JPEG decoder
Encode
Decode
Decode
2
2
+
2
+
Encode
Decode
Decode
+
2
+
2
Encoder
28
+
+
Encode
Decode
+
Decoder
동영상 압축
 공간 여분(spatial redundancy) : 이웃하는 화소들끼리 값이 비슷
 시간 여분(temporal redundancy) : 이웃하는 프레임들의 대응하는
화소들끼리 값이 비슷
 공간 여분과 시간 여분을 최대한 이용하여 압축
29
프레임간 부호화
프레임내 부호화
(interframe coding)
(intraframe coding)
시간 여분 감소 처리
공간 여분 감소 처리
Motion estimation & compensation I
이전 프레임 f(t-1)
f(t) - f(t-1)
현재 프레임 f(t)
움직임 보상 프레임 f’(t-1)
30
f(t) - f’(t-1)
Motion estimation & compensation II
I(x,y,t-1)
I(x,y,t)
Motion
Estimation
Motion
Compensation
DCT Coding
e(x,y,t) =
I(x,y,t) - I(x-u,y-v,t-1)
Generic Encoder
Generic Decoder
DCT Decoding
+

e(x,y,t)
+
I(x,y,t)
Frame
Memory
31
Motion
Compensation
(u,v)
Motion estimation & compensation III
Reference Picture
Current Picture
(x,y)
-p
N
N
M
M
-p
Macroblock
Reference Picture
Search region
(x,y)
[-p, p] Search region
p
v
Motion vector (u,v)
-p
N
u
M (x+u,y+v)
Best
Match
32
p
-p
p
p
Algorithms for motion estimation – full
search

현재 영상의 매크로 블록 화소들을 C
참조
( x  영상의
k, y  l) ,
R( x  i  k , y  j  l )
화소들을
1
MAD (i, j ) 
M2
M 1 M 1
이라 할 때
  C ( x  k , y  l )  R( x  i  k , y 
j  l)
k 0 l 0
를 최소화시키는 블록 R( x  i, y  j ) 를 찾음

Full-search 기법 : N x N블록을 갖는 영상에서,
[-P,-P]검색 공간의 모든 점에서 MAD(I,j)계산:
MAD Point수: N 2 2 p  12
33
Two-dimensional logarithmic search
(0, -7)
(-7, -7)
I×J의 해상도를 가지고 1초당 F개의
1
(7, -7)
1
1
1
1
프레임을 가지는 연속적인 영상의
경우에는 계산량 :
I×J×F×(8k + 1)×3,
2
2
2
2
1
2
k = log2p
2
3
3
3
3
2
3
3
3
3
1
(7, 0)
2
1
1
d1
(-7, 7)
34
(7, 7)
MPEG - 1,2
 MPEG-1
- 오디오/비디오 압축방법, 다중화 시스템 등을 정의
- VHS용 화질과 스테레오 음성에서 요구되는 약 1.5 Mbps의 부호화
기능을 제공
- 비디오와 오디오를 CD-ROM에 저장하는 CD-I(Interactive)와
Video CD 시스템에 사용
 MPEG-2
- 방송용 고화질 부호화를 위한 요구에서 출발
- 비트율(bit rate)이 보통 TV에 필요한 3∼15 Mbps로부터
고화질 TV에 필요한 15∼30 Mbps까지 지원
- MPEG-2는 MPEG-1의 비트열(bitstream)도 복호화 가능
35
MPEG 비디오 데이터의 생성 – 부호기/복호
기
Video
Input
DCT
Quantization
VLC
Buffer
Output
Inverse
Quantization
Inverse
DCT
부호기
Motion
Vector
ME/MC
Input
Buffer
복호기
VLC
Decoder
Inverse
Quantization
Quantization level
Motion vector
36
Motion
Compensation
Inverse
DCT
Output
MPEG 비디오 데이터의 구성
 프레임(또는 필드 단위) 를 적당한 크기의 GOP(Group of Picture)
구조로 묶어서 처리
 프레임 메모리를 두 장 사용해서 과거의 재생 화상으로부터의 순방향
예측과 미래의 재생 화상으로부터의 역방향 예측을 사용하는 양방항 예측
GOP = (N,M)
N = 12
I : Intra-coded picture
M =3
P : Predictive-coded picture
B : Bidirectionally
I
B
37
B
P
B
B
P
B
B
P
B
B
I
predictive-coded picture
MPEG 비디오 데이터의 계층 구조
Sequence
Layer
Sequence
Header
GOP
Layer
GOP
Header
Picture
Picture
Picture
Picture
Picture
Picture
Layer
Picture
Header
Slice
Slice
Slice
Slice
Slice
Slice
Layer
Slice
Header
MacroBlock
MacroBlock
MacroBlock
MacroBlock
MacroBlock
Macroblock
Layer
GOP
Macroblock
information
Y1
Y2
Y3
macroblock_address_increment Y4
quantizer_scale_code
motion_vector
coded_block_pattern
38
Sequence
End
GOP
Cr
Cb
DC Coeff.
Ac Coeff.
End_of_block