멀티미디어 신호처리 강의교안 9

Download Report

Transcript 멀티미디어 신호처리 강의교안 9

멀티미디어 신호처리
이론 및 실습
강의자료 6장 : JPEG 압축표준의 이해
수업목표 및 내용
 JPEG 부호화 과정을 이해한다.
 JPEG 복호화 과정을 이해한다.
 복원영상의 화질측정 방법을 알아본다.
 실습 9: JPEG 압축 및 복호실습
멀티미디어 신호처리
2/61
JPEG 압축 방식의 분류
JPEG 압축방식
무손실 부호화
(Lossless)
손실 부호화
(Lossy)
공간적(Spatial)
예측방식
DCT 기반 방식
기본방식
(Baseline)
확장방식
(Extended)
[JPEG 압축 방식의 분류]
멀티미디어 신호처리
3/61
JPEG 부호화 과정
엔트로피 부호화
양자화 과정
입력
영상
전처리기
•8x8 블록
•level shift
FDCT
DC 부호화
(Differential Encoding)
허프만 부호화
양자화기
양자화
테이블
AC 부호화
(Zig-Zag 스캔)
(Run-length Encoding)
허프만
테이블
프레임 빌더
(frame builder)
압
축
비
트
열
[JPEG 부호화 블록도]
멀티미디어 신호처리
4/61
JPEG 부호화 - 1. 전처리과정
그레이
영상
8x8 8x8 8x8 8x8
B
…
8x8
Forward
8x8 8x8 8x8 8x8
G
R
DCT
레벨-쉬프트
8x8 8x8 8x8
(level-shift)
….
Cb
8x8 8x8 8x8 8x8
Y
…
8x8
Cr
입력영상
멀티미디어 신호처리
8x8 블록 생성
5/61
JPEG 부호화-1. 전처리과정
8
8
8
8
블록1 블록2 블록3 블록4
…
블록N
….
…
….
Forward
블록3
블록2
블록1
DCT
블록N
멀티미디어 신호처리
6/61
JPEG 부호화 - 2. FDCT
[DCT 변환 원리]
멀티미디어 신호처리
7/61
JPEG 부호화 - 2. FDCT
멀티미디어 신호처리
8/61
JPEG 부호화 - 2. FDCT
[8x8 화소 블록에서 DCT
계수의 주파수 분포]
멀티미디어 신호처리
[DCT 변환 예]
9/61
JPEG 부호화 - 3. 양자화
멀티미디어 신호처리
10/61
JPEG 부호화 - 4. 지그-재그 스캔
[지그-재그 스캔]
멀티미디어 신호처리
11/61
JPEG 부호화 - 4. 지그-재그 스캔
(a) 지그-재그 스캔을 이용한 2-차원 데이터의 벡터화, (b) 벡터화 예
멀티미디어 신호처리
12/61
JPEG 부호화 - 4. 지그-재그 스캔
[양자화 후의 8x8 값]
6
-1 -1
0
0
0
0
0
0
-2
2
-1
0
0
0
0
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
[지그-재그 스캔하 [6, -1, -1, 0, 0, 0, 0, 0, 0, -2, 2, -1, 0, 0, 0, 0, 0, 1, 0, …., 0]
지 않았을 경우]
[지그-재그 스캔 했을 경우]
[6, -1, 0, 0, -2, -1, 0, 2, 1, 0, 0, 0, 0, -1, 0, ...., 0]
멀티미디어 신호처리
13/61
JPEG 부호화 - 5. 엔트로피 부호화
1. DC 계수에 대한 차분부호화 및 허프만 부호화
멀티미디어 신호처리
14/61
JPEG 부호화 - 5. 엔트로피 부호화
1) DC 값의 차분부호화 & 허프만 부호화
첫번째 블록
각 8x8 블록 DCT후
의 DC 값
….
7
5
-
-2
….
10
11
11
-
-
-1
0
-2
0
12
13
-
-
1
12
 차분신호는 (SSS, Value)의 형태로 분류한다.
 SSS: Value를 부호화하는데 필요한 비트수
 SSS와 Value가 허프만 부호화된다.
멀티미디어 신호처리
15/61
DC 값의 차
SSS
Value 부호화
0
0
-1, 1
1
1=1, -1=0
-3, -2, 2, 3
2
2=10, -2=01
3=11, -3=00
3
4=100,
5=101,
6=110,
7=111,
-15,-14, ... -9, -8, 8, 9, ... , 14, 15
4
8=1000,
9=1001,
10=1010,
11=1011,
12=1100,
13=1101,
14=1110,
15=1111,
-31,-30, ... -16, 16, 17, ... , 30, 31
5
16=10000, -16=01111
...
-63, -62, ..., -32, 32, ... 62, 63
6
...
-127, -126, ..., -64, 64, ..., 126, 127
7
...
-255, -254, ..., -128, 128, ... 254, 255
8
...
-511, -510, ..., -256, 256, ..., 510, 511
9
...
-1023, -1022, ..., -512, 512, ..., 1022, 1023
10
...
-2047, -2046, ..., -1024, 1024, ... 2046, 2047
11
...
-7, -6, -5, -4, 4, 5, 6, 7
멀티미디어 신호처리
-4=011
-5=010
-6=001
-7=000
-8=0111
-9=0110
-10=0101
-11=0100
-12=0011
-13=0010
-14=0001
-15=0000
16/61
JPEG 부호화 - 5. 엔트로피 부호화
[SSS 값에 대한 기본(default) 허프만 코드]
SSS
Code Length
Huffman Code Word
0
3
010
1
3
011
2
3
100
3
2
00
4
3
101
5
3
110
6
4
1110
7
5
11110
8
6
111110
9
7
1111110
10
8
11111110
11
9
111111110
멀티미디어 신호처리
17/61
JPEG 부호화 - 5. 엔트로피 부호화
1) DC 값의 차분부호화 & 허프만 부호화
DC 값의 차분 값
SSS
SSS 값의
부호화
차분값
부호화
12
4
101
1100
1
1
010
1
010 1
-2
2
011
01
011 01
0
0
00
-1
1
010
멀티미디어 신호처리
압축비트열
101 1100
00
0
010 0
18/61
JPEG 부호화 - 5. 엔트로피 부호화
2) AC 계수값에 대한 런-길이 부호화
• AC 계수들은 (Skip, Value)의 형태로 구성된다.
• Skip은 1차원 벡터에서 Value의 값이 나올 때 까지의 0의 수를 의미
• 63개의 AC 계수들은 다음과 같이 런-길이 부호화로 표현된다.
(0,6) (0,7) (0,3) (0,3) (0,3) (0,2) (0,2) (0,2) (0,2) (0,0)
• 마지막 (0, 0)는 EOB(End of Block)를 의미한다.
• Value는 DC 계수와 마찬가지로 SSS/Value의 형태로 부호화된다.
멀티미디어 신호처리
19/61
JPEG 부호화 - 5. 엔트로피 부호화
2) AC 계수값에 대한 런-길이 부호화

(0, 6) (0, 7) (3, 3) (0, -1) (0, 0)에 대한 Skip, SSS, Value 값은 다음
과 같다.
AC 계수값
Skip
(0,6)
0
3
110
(0,7)
0
3
111
(3,3)
3
2
11
(0,-1)
0
1
0
(0,0)
0
0
멀티미디어 신호처리
SSS - Value
20/61
JPEG 부호화 - 5. 엔트로피 부호화
3) AC 계수값의 허프만 부호화
•
Skip/SSS에 대한
허프만 코드
(허프만코드 참조)
AC 계수값
Skip/SSS
(0,6)
0/3
100
6 = 110
(0,7)
0/3
100
7 = 111
(3,3)
3/2
111110111
3 = 11
(0,-1)
0/1
00
-1 = 0
(0,0)
0/0
1010
Value에 대한 코드
0=
AC 계수에 대한 최종 비트열은 다음과 같다.
[100110 100111 11111011111 000 1010]
멀티미디어 신호처리
21/61
JPEG 부호화 - 예제 6-1

다음과 같은 밝기값(Y) 신호 8x8 영상블록에 대하여 JPEG
압축 부호화한 압축비트열을 구해보자. 그리고 한 화소가
8비트로 표현된다고 가정하면 압축율은 얼마인지 계산해
보자. 각 화소에서 대한 전처리로 레벨-쉬프트(level shift)
즉 평균 밝기값 128을 뺀 경우와 그렇지 않은 경우에 대
하여 압축율을 비교해보자.(참고로 이전 8x8 영상블록의
DC 계수값을 양자화 한 후의 값은 평균 밝기값 128을 뺀
경우는 4이고 그렇지 않은 경우는 52 라고 가정하자.)
멀티미디어 신호처리
22/61
JPEG 부호화 - 예제 6-1
137
140
139
138
128
132
145
150
136
133
134
128
137
140
148
151
136
136
137
135
141
145
147
145
132
137
135
143
143
147
146
143
131
132
135
137
141
152
149
139
137
138
138
147
153
142
141
134
137
133
150
147
149
147
135
129
140
141
141
149
142
140
132
121
[그림 6-11] 임의의 8x8 영상블록
멀티미디어 신호처리
23/61
예제 6-1) 풀이
1) 레벨-쉬프트를 한 경우, 즉 평균 밝기값 128을 뺀 경우
9
12
11
10
0
4
17
22
94
-16
-11
5
-4
4
-1
1
8
5
6
0
9
12
20
23
-3
-21
31
-10
-2
-2
-2
1
8
8
9
7
13
17
19
17
-6
17
4
-9
2
3
1
0
4
9
7
15
15
19
18
15
1
-3
1
-4
2
1
-1
2
3
4
7
9
13
24
21
11
-4
2
2
-3
-3
4
-4
-8
9
10
10
19
25
14
13
6
5
5
-6
-6
2
1
2
-1
9
5
22
19
21
19
7
1
1
7
0
-1
3
0
-7
-2
12
13
13
21
14
12
4
-7
-1
-3
1
1
-6
2
6
1
(a) 밝기값 이동 전처리 결과(화소값-128)
멀티미디어 신호처리
(b) DCT 변환 후의 DCT 계수 결과
24/61
예제 6-1) 풀이
6
-1
-1
0
0
0
0
0
6
-1
0
0
-2
-1
0
2
0
-2
2
-1
0
0
0
0
1
0
0
0
0
-1
0
0
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
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
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
0
0
0
0
0
(c) 양자화 후의 결과
멀티미디어 신호처리
(d) 지그재그 스캔 결과
25/61
예제 6-1) 풀이
DC 계수 차분 부호화: 6-4 = 2
 DC 계수의 허프만 부호화: (SSS, Value)=(100, 10)
-> 10010
 AC 계수 부호화
- 런-길이 부호화(Skip, Value)=(0,-1) (2,-2) (0,-1) (1,2) (0,1) (4,1) (0,0)
- 허프만 부호화

허프만 코드워드
(Skip/SSS)
AC 계수
Skip/SSS
(0,-1)
0/1
00
-1=0
(2,-2)
2/2
11111000
-2=01
(0,-1)
0/1
00
-1=0
(1,2)
1/2
111001
2=10
(0,1)
0/1
00
1=1
(4,-1)
4/1
111011
-1=0
(0,0)
0/0
1010(=EOB)
0=
멀티미디어 신호처리
Run-Length Value
26/61
예제 6-1) 풀이



AC 계수에 대한 압축비트열: 000 1111100001 000
11100110 001 1110110 1010
압축전 비트수: 64화소 x 8비트 = 512 비트
압축후 비트수: DC계수: 5비트, AC 계수: 38비트, 총:
43 비트
압축률: 512/43 = 11.91 배의 압축효과
멀티미디어 신호처리
27/61
예제 6-1) 풀이
2) 평균 밝기값 128을 빼지 않고 그냥 압축한 경우
1118
-16
-11
5
-4
4
-1
1
-3
-20
31
-10
-2
-2
-2
1
-6
17
4
-9
3
3
1
0
1
-2
1
-4
2
1
-1
2
-4
2
2
-3
-3
4
-3
-8
5
5
-6
-6
1
1
2
-1
1
7
0
-1
3
-1
-7
-2
-1
-2
1
1
-6
2
6
1
(a) DCT 변환 후의 결과
멀티미디어 신호처리
28/61
예제 6-1) 풀이
70
-2
-1
0
0
0
0
0
70
-2
0
0
-2
-1
0
2
0
-2
2
-1
0
0
0
0
1
0
0
0
0
-1
0
0
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
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
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
0
0
0
0
0
(b) 양자화 후의 결과
멀티미디어 신호처리
(c) 지그-재그 스캔 결과
29/61
예제 6-1) 풀이
DC 계수 차분 부호화: 70-52 = 8
 DC 계수의 허프만 부호화: (SSS, Value)=(101, 1000)
-> 1011000
 AC 계수 부호화
- 런-길이 부호화(Skip, Value)=(0,-2) (2,-2) (0,-1) (1,2) (0,1) (4,1) (0,0)
- 허프만 부호화

허프만 코드워드
(Skip/SSS)
AC 계수
Skip/SSS
(0,-2)
0/2
01
-2=01
(2,-2)
2/2
11111000
-2=01
(0,-1)
0/1
00
-1=0
(1,2)
1/2
111001
2=10
(0,1)
0/1
00
1=1
(4,-1)
4/1
111011
-1=0
(0,0)
0/0
1010(=EOB)
0=
멀티미디어 신호처리
Run-Length Value
30/61
예제 6-1) 풀이




AC 계수에 대한 압축비트열: 0101 1111100001 000
11100110 001 1110110 1010
압축전 비트수: 64화소 x 8비트 = 512 비트
압축후 비트수: DC계수: 7비트, AC 계수: 39비트, 총:
46 비트
압축률: 512/46 = 11.13 배의 압축효과
멀티미디어 신호처리
31/61
JPEG 부호화 - 6. 프레임 빌딩
[JPEG 파일 구조]
멀티미디어 신호처리
32/61
JPEG 부호화 - 6. 프레임 빌딩

Tables: 양자화 테이블(Y, CbCr) 및 허프만 테이블

프레임 헤더(frame header): 영상의 가로 및 세로 크기
정보, 영상 표현에 사용된 형식(CLUT, R/G/B, Y/Cb/Cr)
및 사용된 디지털 샘플링 방법(4:2:2, 4:2:0 등) 등을 포
함한다.

화소당 비트수

영상의 해상도(넓이, 높이)

성분의 수

(각 성분을 위한) 고유 ID

(각 성분을 위한) 수직/수평 표본화(샘플링) 인수
멀티미디어 신호처리
33/61
JPEG 부호화 - 6. 프레임 빌딩

주사 헤더(scan header): 원본영상의 Identity(예를 들면,
R/G/B 등)에 대한 정보와 각 요소에 대한 디지털에 사용
된 비트수, 양자화 테이블 등의 정보가 포함된다.

주사하는 성분의 수

(각 성분을 위한) 성분 ID

(각 성분을 위한) 허프만/산술 부호화 표
멀티미디어 신호처리
34/61
6.3 JPEG-복호화
엔트로피 복호화
역양자화 과정
DC 복호기
압축
(Differential Decoding)
입력
영상
영상 빌더
(image builder)
IDCT
허프만
복호화
역양자화기
프레임 복호
비트열
(frame decoder)
AC 복호기
양자화
테이블
(역 Zig-Zag 스캔)
(역 Run-length Decoding)
허프만
테이블
[그림 6-12] JPEG 복호화 블록도
멀티미디어 신호처리
35/61
JPEG-복호화

JPEG 복호화 과정은 부호화 과정의 역순으로 진행된다.

출력 스트림에 부가적으로 추가된 헤더정보를 이용하여 실
제 데이터 압축 부분을 복호한다.

마지막 영상빌더(image builder) 부분은 부호화전 전처리
과정에서 수행된 레벨-쉬프트과정과 8x8 블록 생성의 역
과정을 거친 후 각 블록을 모아서 한 장의 원본영상을 만드
는 과정이다.

압축 비트스트림을 복호하는 과정에서 전치정리(Prefix
Property)가 만족되어야 복호가 가능하다.
멀티미디어 신호처리
36/61
JPEG 복호화 – 전치정리란?

전치정리(Prefix Property)란?

짧은 비트의 코드는 길이가 더 긴 코드의 앞부분과 일치해서는 안
된다는 성질을 말한다. 예를 들어, 심볼 A가 01로 코드화 되었다
면, 다른 어떤 심볼도 01로 시작되는 코드로 부호화 되어서는 안
된다

그 이유는 심볼 B가 01001로 코드화 되었다고 가정하면, 복호 시
010010... 이라는 비트열을 복호할 때 어떻게 복호할 지 알 수 없
기 때문이다. 01을 먼저 복호할 지 아니면 01001을 B로 복호할
지 알 수 없다.
멀티미디어 신호처리
37/61
JPEG 복호화 – 비트스트림 복호과정
시작
코드워드 버퍼를
비운다
비트스트림 버퍼에서
코드워드 버퍼로 다음 비트를
읽어온다
No
No
코드워드 버퍼의 내용이
저장되어 있는 코드워드와
일치하느냐?
Yes
일치하는 코드워드로
복호화한다.
모든 비트스트림이
처리되었는가?
Yes
끝
멀티미디어 신호처리
38/61
JPEG 복호화 – 비트스트림 복호과정
[비트스트림 복호 예]
멀티미디어 신호처리
39/61
6.4 복원영상 화질측정 방법

주관적인 화질측정

ITU-R Recommendation B.T.500-11에 정의

Double Stimulus Continuous Quality Scale (DSCQS) 방법으로
평가자에게 A와 B라는 한 쌍의 이미지 또는 짧은 동영상을 순차
적으로 보여주고 각 영상 또는 동영상의 화질에 대한 점수(quality
score)를 ‘매우 좋음(excellent)'에서 '나쁨(bad)'까지의 5단계로
평가하는 방법
멀티미디어 신호처리
40/61
복원영상 화질측정 방법

객관적인 화질측정

PSNR (Peak-Signal-to Noise Ratio)
PSNR dB = 10 log10
(2n  1) 2
MSE
1 M N
2
ˆ
MSE(Mean Square Error) =
(
p

p
)
 i, j i, j
MN i 1 j 1
여기서, n = 이미지 샘플의 비트수를 나타낸다.
멀티미디어 신호처리
41/61
예제 6-2
예제 6-1에서 전처리(밝기값 평균 128을 뺀 경우)한 경우에
대하여 역엔트로피 부호화 및 IDCT, 역양자화 후의 복원
된 8x8 블록을 구하고, 그 블록에 대한 MSE 값은 얼마인
가?
풀이) 엔트로피 복호화후 역 지그-재그 스캔하면 다음 (a)
와 같고, 그 이후의 과정에 대한 결과값은 (c), (d), (e)에
나타내었다. 최종적으로 원본 영상과 복원된 영상의 차는
(f)와 같다.
멀티미디어 신호처리
42/61
예제 6-2) 풀이
6
-1
-1
0
0
0
0
0
16
11
10
16
24
40
51
61
0
-2
2
-1
0
0
0
0
12
12
14
19
26
58
60
55
0
1
0
0
0
0
0
0
14
13
16
24
40
57
69
56
0
0
0
0
0
0
0
0
14
17
22
29
51
87
80
62
0
0
0
0
0
0
0
0
18
22
37
56
68
109
103
77
0
0
0
0
0
0
0
0
24
35
55
64
81
104
113
92
0
0
0
0
0
0
0
0
49
64
78
87
103
121
120
101
0
0
0
0
0
0
0
0
72
92
95
98
112
100
103
99
(a) 엔트로피 복호화 후
역지그-재그스캔 후의 결과
멀티미디어 신호처리
(b) 밝기값에 대한 양자화표
43/61
예제 6-2) 풀이
96
-11
-10
0
0
0
0
0
9
11
11
8
6
9
17
24
0
-24
28
-14
0
0
0
0
8
9
10
9
8
11
18
24
0
13
0
0
0
0
0
0
6
8
9
10
10
13
18
22
0
0
0
0
0
0
0
0
5
7
9
12
13
15
17
18
0
0
0
0
0
0
0
0
6
8
10
14
16
16
14
12
0
0
0
0
0
0
0
0
9
10
12
16
18
16
10
5
0
0
0
0
0
0
0
0
12
12
14
18
20
15
6
0
0
0
0
0
0
0
0
0
14
14
16
19
21
15
4
0
(c) 역양자화 후의 결과
멀티미디어 신호처리
(d) IDCT 후의 결과
44/61
예제 6-2) 풀이
137
139
139
136
134
137
145
152
136
137
138
137
136
139
146
152
134
136
137
138
138
141
146
150
133
135
137
140
141
143
145
146
134
136
138
142
144
144
142
140
137
138
140
144
146
144
138
133
140
140
142
146
148
143
134
128
142
142
144
147
149
143
132
128
(e) 복원된 블록 (화소값+128)
멀티미디어 신호처리
45/61
예제 6-2) 풀이
0
-1
0
-2
6
5
0
2
0
4
4
9
-1
-1
-2
1
-2
0
0
3
-3
-4
-1
5
1
-2
2
-3
-2
4
-1
3
3
4
3
5
3
-8
-7
1
0
0
2
-3
-7
2
-3
-1
3
7
-8
-1
-1
-4
-1
-1
2
1
3
-2
7
3
0
7
(f) 오차 (복원된 블록-원본 블록)
1 8 8
MSE(Mean Square Error) =
( pi , j  pˆ i , j )2  12.9

8x8 i 1 j 1
멀티미디어 신호처리
46/61
6.5 JPEG의 특징
① JPEG은 저해상도의 표시계에서 고해상도의 인쇄계에 이
르기까지 여러 종류의 해상도에 대응할 수 있고, 폭넓은
응용에 적용될 수 있도록 고려되었다.
② 다양한 색공간에 대응하고 있다.
③ JPEG은 디지털 방식의 전자 스틸 카메라나 영상 데이터
베이스와 같은 저장계, 정지화 전송장치나 오디오 그래픽
회의, 영상회의 등의 전송계, 나아가서 컬러 프린터등의
인쇄계등에 널리 이용되고 있다. 컬러 정지영상압축의 국
제표준방식으로 세계적인 인정을 받고 있다.
멀티미디어 신호처리
47/61
6.6 JPEG 2000

DCT 변환 기반과 웨이블릿 변환을 기반으로 한 압축

낮은-비트율 압축: 현재 JPEG 표준은 중간 혹은 높은 비
트율에서 압축성능을 보여준다.

무손실과 손실 압축: 단일 비트스트림에서 손실 압축과
무손실 압축을 제공한다.

큰 영상 압축: 새로운 표준은 64k x 64k보다 더 큰 영상
해상도를 지원한다.

점진적 전송: 낮은 비트율에서부터 높은 비트율까지 끊김
이 없는 화질과 해상도의 스케일러빌리티를 제공한다.
멀티미디어 신호처리
48/61
6.6 JPEG 2000



합성문서: JPEG2000 표준은 파일의 부분으로서 부가적
인 영상이 아닌 데이터를 통합시키기 위해 메타데이터 매
커니즘을 제공한다.
관심영역 부호화: 영상의 나머지 부분보다 더 나은 화질
로 부호화될 수 있는 관심영역(ROI: Region of Interest)
지정을 허용한다.
잡음이 있는 환경에서의 전송: 무선 네트워크와 인터넷과
같은 잡음이 있는 환경에서 전송을 위한 향상된 에러 복
원력을 제공한다.
멀티미디어 신호처리
49/61
6.6 JPEG 2000
[그림 6-15] JPEG2000의 부호화 과정
멀티미디어 신호처리
50/61
실습 9: JPEG 압축및복호실습
1. 실습목표
정지영상에 대한 JPEG 압축원리를 이해하고, 실제 BMP 영
상을 JPEG 압축 및 복호해 본다. 이때 양자화 수준
(Q_factor)을 이용하여 압축율을 변경해 보고, 압축율 변
경에 따른 복호 영상화질을 확인하고, PSNR(Peak
Signal-to-Noise Ratio) 값을 계산해 본다.
가) 정지영상에 대한 정보압축원리를 이해한다.
나) JPEG 압축표준을 이해한다.
다) JPEG 부호화 과정과 복호화 과정을 이해한다.
라) JPEG 압축율 변경은 어떻게 이루어지고, 압축율 변경에
따른 PSNR을 계산해 본다.
마) JPEG 파일구조를 이해하고 마커코드 구조를 이해한다.
멀티미디어 신호처리
51/61
실습 9: JPEG 압축및복호실습
2. 실습을 위한 선수지식
2.1 JPEG에서 규정되어 있는 압축종류 (동작 모드)

순차모드(sequential mode: baseline) 압축방법

점진적(progressive mode) 전송이 가능한 압축방법

계층 구조적(hierarchical mode) 압축방법

무손실(lossless mode) 압축방법
멀티미디어 신호처리
52/61
실습 9: JPEG 압축및복호실습
2.2 컬러모델 변환: RGB <-> YCbCr로 변환
2.3 JPEG의 파일구조
 JPEG 파일에 있는 전체 파일구조를 각 항목별로 구분해
보면 크게 프레임(frame), 스캔(scan), 테이블(table) 등
으로 나눌 수 있다.
 각 구조체의 시작은 마커코드(marker code)를 이용하여
구분
멀티미디어 신호처리
53/61
실습 9: JPEG 압축및복호실습
마커코드
코드값
영문코드
SOF0
FFC0
Baseline DCT
Baseline DCT 프레임
SOF1
FFC1
Extended Sequential DCT
확장방식 시퀜셜 DCT 프레임
SOF2
FFC2
Progressive DCT
점진적 전송방식 프레임
SOF3
FFC3
Spatial Loseless
공간적 예측 무손실 프레임
SOF5
FFC5
Differential Sequential DCT
차분 DCT 부호화 프레임
SOF6
FFC6
Differential
DCT
차분 점진적 DCT 프레임
SOF7
FFC7
Differential Spatial
차분 공간적 예측프레임
DHT
FFC4
Define Huffman Table
허프만 테이블
사용
DAC
FFCC
Define Arithmetic Coding
산술 부호화 테이블
사용안함
RST
FFD0~F
FD7
Restart with
Count "m"
DRI로 지정되는 간격마다 삽입되는 마
커 MCU 재시작
사용
SOI
FFD8
Start of Image
영상전체의 시작
사용
EOI
FFD9
End of Image
영상전체의 끝
사용
SOS
FFDA
Start of Scan
스캔데이터 시작
사용
DQT
FFDB
Define Quantization Table
양자화 테이블
사용
DRI
FFDD
Define Restart Interval
RST(재시작 간격)
사용
멀티미디어 신호처리
내용
Progressive
Modulo
8
사용여부
사용
사용안함
54/61
실습 9: JPEG 압축및복호실습
2.4 마커코드의 구조

마커코드는 2바이트로 구성

마커코드 다음 2바이트는 데이터의 길이를 나타낸다.

예를 들어서 마커코드가 FFC4이고 다음 두 바이트 값이
64라면 허프만 테이블이며, 허프만 테이블 데이터 길이
가 64바이트라는 의미
[그림 9-1] 마커코드의 구조
멀티미디어 신호처리
55/61
실습 9: JPEG 압축및복호실습
2.5 Hex Editor 소개
 JPEG 파일이나 H.263 비트스트림을 편집기로 읽을 때는
Hex Editor를 사용
 각 바이트를 16진수로 표현해 주는 Hex Editor가 유용
 HexEdit 2.0 (free): http://www.expertcomsoft.com/
 HHD Free Hex Editor :
http://www.hhdsoftware.com/hexeditor.html
멀티미디어 신호처리
56/61
실습 9: JPEG 압축및복호실습
3. 실습내용
3.1 양자화 테이블 값(Q_factor)을 변경해 가면서 입력영상을 JPEG 압
축해보자. 1) 부록 CD에 첨부된 JpegEx 프로젝트를 빌드하고, 실행
시켜보자.
[그림 9-2] JpegEx 프로젝트 실행화면
멀티미디어 신호처리
57/61
실습 9: JPEG 압축및복호실습
2) Lenna 입력영상(BMP 영상)을 Q_factor 값을 1에서 10까지 변경해가
면서 압축해 보자.
3) Hex Editor를 이용하여 임의의 JPEG 압축파일을 열어서 다양한 마커
코드를 확인해 보자. 마커코드 SOI, DHT, SOS, SOF0, EOI 등을 찾아
보자.
3.2 Q_factor를 변경하면서, JPEG 압축된 파일을 복호한 후
PSNR(Peak-Signal-to-Noise Ratio)을 계산해 보자. 밝기값 신호 Y
뿐만아니라, Cb, Cr에 대하여도 PSNR을 계산해 보자.
3.3 [심화문제] JPEG 파일을 읽어 들여 화면에 출력하는 프로그램을 작
성해 보자.
멀티미디어 신호처리
58/61
실습 9: JPEG 압축및복호실습
[그림 7-4] Hex Edit를 이용하여 JPEG 파일에서 마커코드 확인하기
멀티미디어 신호처리
59/61
참고문헌
[1] Multimedia Communications, applications, networks,
protocols and standards, fred halsall, AddisionWesley
[2] 그림으로 보는 최신 MPEG, 정제창 역, 교보문고
[3] Fundamentals of Multimedia, 하영호, 남재열, 최윤식,
원치선 공역, ITC
[4] D. Taubman, "High Performance Scalable Image
Compression with EBCOT," IEEE Trans. Image
Processing, 9(7): 1158-1170, 2000
[5] H.264 and MPEG-4 차세대 영상압축기술, 조중휘, 손
요안 공역, 홍릉과학출판사
멀티미디어 신호처리
60/61
질의/응답
Thank You !
수고하셨습니다.
멀티미디어 신호처리
61/61