Transcript jpeg

JPEG
1. Introduction
2. Compression Algorithm
3. Compression Process
4. JPEG Data format
-1-
1. Introduction
1.1 Concept
 JPEG (Joint Photographic Experts Group)은 H.261(통신미디어용)과
함께 MPEG(저장,방송용)의 기초가 되는 표준
 컬러정지영상의 압축표준, 알고리즘 자체를 이름
 기본방식은 ADCT(Adaptive DCT)
 확장방식은 Arithmetic코딩 을 채택
 1bpp보다 적은 bit rate에서 화면재생을 위한 coding 가능
 흑백, true color엔 좋은 효율이나, 인위적 영상 ( 컴퓨터,만화영화 )의
index color에는 효율이 GIF 보다 못함.
 평균 15:1의 압축률
-2-
1. Introduction
1.2 Goals

Recognizable image : 0.25bit/pixel

Excellent quality image : 1.00 bpp

Almost original image : 4 bpp

Video image format in Europe (YUV)

720*576*8 bits/sample for luminance

360*576*8 bits/sample for each chrominance
-3-
1. Introduction
1.3 History
 1987년대 ISO 와 ITU-T 의 협력에 의해 개발
 ISO Working group은 주요 처리 담당
 ITU-T는 ISO에서 개발된 JPEG 관련 팩스밀리, 비디오 텍스 같은
응용분야를 담당
1.4 Usage
 전자 스틸 카메라, 영상 데이터베이스, 정지 화상 전송장치
 저해상도는 표시계
 고해상도는 인쇄계 등 여러 해상도에 응용 가능.
-4-
1.
1.
2.Compression Algorithm
• 영상 데이터 정보는 각각의 변화량이 적은 pixel간의 값을 가지는데,
인간이 인식하는 것은 각
각의 pixel값이 아닌 pixel간의 모음이다. 이 모음에 있는 중복성(redundancy)을 없애 data양을 줄
임
JPEG 방식
Lossless
가역방식
Lossy
비가역방식
영상 열화를 허용하지
않는 응용
높은 압축률 에서도
실용적인 영상품질
DCT 방식
기본 방식
(Baseline)
공간적(Spatial)
예측 방식
확장 방식
(Extended)
-5-
1.
1.
2.Compression Algorithm
2.1 Lossy(비가역방식)


10:1 ~ 40:1 의 압축률. 인간이 감지 못하는 정도의 왜곡.
Base line type(기본방식)
 1화소 1색당 8 비트 할당.

sequential mode, huffman coding
Extended type(확장방식)
 1화소 1색당 8~12 비트 할당하여 광범위에 응용가능.
 sequential mode, progressive mode, huffman coding, arithmatic
coding.
 Sequential mode
 일반적 코딩 방식으로 DCT에 기반한 순차 스캔.
 좌상에서 우하로 block 과 line에따라 순차적으로 부호화.
 Progressive mode
 저해상도 복호 영상으로 시작해 점차 해상도 높임
 단시간에 큰 복호영상 얻음
-6-
2.Compression Algorithm
Sequential Mode
Progressive Mode
-7-
2.Compression Algorithm
Extended Type - Progressive Mode
 Spectral-Selection (S-S)
 DCT 계수 64개를 복수의 영역으로 분해한 후 첫 스캔에서 저주파측의 영역
을 부호화하고 차례로 나머지 영역을 부호화
 저해상도 영상이 먼저 재현되고 차례로 해상도가 향상
 Successive-Approximation (S-A)
 각 DCT 계수의 상위 비트를 우선 전송하고 나머지 비트를 순차적으로 전송
 우선 계조가 엉성한 영상이 전송되고 순차적으로 계조가 세밀
-8-
2.Compression Algorithm
-9-
2.Compression Algorithm
2.2 Sequential lossless mode (가역 방식)
 2:1 ~ 3:1 정도의 압축률, 완벽한 이미지 재생 가능.
 DCT mode 에서 쓰는 DC 성분의 코딩 모델보다 확장된 코딩 기술사용.
 근접한 a, b, c 값은 sample된 x 값을 추정하는데 쓰임.
 Source data의 정밀도를 낮추고, predictor 값을 구하기 위해 point transform
(2pt로 이미지 value를 나눔) 사용.
- 10 -
2.Compression Algorithm
P r ed i cto rs f o r l o ssle ss co di n g
Selection-value
0
Prediction
no pr edic tion( differentia l c oding)
1
a
2
b
3
c
4
a +(b-c )/2
6
b+(a-c )/2
7
(a +b)/2
c
b
a
x
- 11 -
2.Compression Algorithm
2.2 Sequential lossless mode (가역 방식)
 공간적 예측과 엔트로피(가변장) 부호화
 엔트로피(가변장) 부호화
•발생 확률이 높은 부호어 짧은 비트 할당
•발생 확률이 낮은 부호어 긴 비트 할당
•부호의 평균길이가 엔트로피(entropy)에 가깝게 함.
- 12 -
2.Compression Algorithm
엔트로피
양자화
부호화
원영상
테이블
- 13 -
압축데이터
2.Compression Algorithm
2.3 Hierarchical Mode (계측형부호화방식)
 피라미드 코딩이라고도 함
 하나의 영상 file에 여러 해상도 갖는 동일 영상을 한번에 저장.
 전체를 대강 나타낸 축소영상의 부호화 이후, 축소영상을 순차적으로 확대
하기위한 차분 정보의 부호화.
 저해상도 이미지를 얻기 위해선, 고해상도 이미지 (N × N)를 수직과 수평
방향으로 각각 2 : 1씩 down sampling 하면 image 는 N/2 × N/2 pixel로 나타
나며, 그 후엔 LPF를 사용하여 alising 제거
- 14 -
2.Compression Algorithm
고해상도 이미지 얻기 위한 Upsampling 은 다음과 같다.
x1=(a+d)/2
x2=(a+b)/2
x3=(b+c)/2
x4=(c+d)/2
x5=(a+b+c+d)/4
Hierarchical multi-resolution encoding
- 15 -
a
x1
d
X2
x5
x4
b
x3
c
2.Compression Algorithm
2.4 영상부호화 방식에따라
 Non-intereave: 각성분마다 한장의 영상형성.
 Interleave: Y, Cr, Cb 마다의 부호화 data로 MCU마다 구성
휘도
신호 Y
색차
신호 Cr
색차
신호 Cb
인터리브
방식
최소부호화단위(MCU)
비인터리브
방식
Y
Y
Cr Cb
스캔 1
Y전체
Cr 전체
스캔 1
스캔 2
- 16 -
Cb 전체
스캔 3
2.Compression Algorithm
X
A1
A2
B1
B2
C1
C2
Y
An
A1,A2,….An
Scan 1
Bn
B1,B2,….Bn
Scan 2
Cn
C1,C2,….Cn
Scan 3
Data Unit encoded order, Non-interleaved
A1,B1,C1,A2,B2,C2….An,Bn,Cn
Scan 1
Data Unit encoded order, Interleaved
- 17 -
2.Compression Algorithm
Four JPEG mode of operation
Sequential DCT
(Base line)
Progressive
DCT
Hierarchical
- 18 -
Seqnential
lossless
3.Compression Process
영상 → Preprocessing(전처리) → Transform(변환) →
Quantization(양자화) → Encoding(부호화) → 비트 스트림
3.1 Preprocessing(전처리)
2
 RGB성분을 밝기성분인 Y, 색성분 U, V 로 변환 (color space변환)
 압축률 향상을 위해 image의 잡음 제거 (filtering)
 U, V의 성분을 2나 4 pixel 당 하나만 취해 data양을
1/2,1/4로 줄인다. (color subsampling)
- 19 -
3.Compression Process
3.2 Transform(변환)
 영상이 갖고 있는 정보의 중복성을 찾아내는 과정
 DCT(Discrete Cosine Transform)가 대표적 방법
 통상적으로 영상의 계조도 변화가 적어 DCT 계수는 DC와 낮은 주파수는 큰 값, 높은
주파수는 작은 값을 갖음
- 20 -
3.Compression Process
변환방법으로 고속계산 가능한 2차원 DCT를 보면,
7
7
F(u,v) =1/4C(u)C(v) Σ Σ f(i,j) cos[(2i+1)uπ/16] cos[(2j+1)vπ/16]
i=0 j=0
C(u),C(v) = 1/Γ2
=1
(u,v=0)
(u,v≠ 0 )
F(0,0) 을 DC 성분(8*8 block의 평균치)이라 하고 나머지 63계수를 AC계수라 한다.
역 변환 IDCT의 식은 다음과 같다.
7
7
f(i,j) =1/4Σ ΣC(u)C(v) F(u,v) cos[(2i+1)uπ/16] cos[(2j+1)vπ/16]
u=0 v=0
- 21 -
3.Compression Process
블록(8x8)
매크로블록(16x16)
….
8
지그재그
스캔
8
DC : Direct Current, AC : Alternate Current
- 22 -
3.Compression Process
3.3 Quantization(양자화)
• DCT 로 얻어진 64개의 계수를 어떤 수로 나눠 유효자리의 비트 수를
줄이는 과정.
• 양자화된 계수
r(u,v) = round ( F(u,v) / Q(u,v) )
round는 소수를 정수화
F(u,v) 는 DCT계수
Q(u,v)는 양자화 테이블 값
• 양자화 테이블은 색 단위 설정이 가능하다.
- 23 -
3.Compression Process
Luminance quantization matrix (example only)
16
11
10
16
24
40
51
61
12
12
14
19
26
58
60
55
14
13
16
24
40
57
69
56
14
17
22
29
51
87
80
62
18
22
37
56
68
109
103
77
24
35
55
55
81
104
113
92
49
64
78
87
103
121
120
101
72
92
95
98
112
100
103
99
- 24 -
3.Compression Process
Chrominanace quantization matrix (example only)
17
18
24
47
99
99
99
99
18
21
26
66
99
99
99
99
24
26
56
99
99
99
99
99
47
66
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
- 25 -
3.Compression Process
3.4 부호화
3.4.1 Run- length Encoding
 같은 값의 연속 data를 값 (Run) 과 개수(length)의 조합으로 표현
 ABCDDDDDEEEEEEE (15바이트)  ABC*5D*7E(9바이트)
 만화, 팩스 같은 배경 없는 영상에 탁월한 효과
 빠른 속도가 필요한 압축에 쓰임
- 26 -
3.Compression Process
3.4.2 Entropy Coding
data를 표시할수 있는 최소의 bit수로 코딩
Huffman Coding
• 가변장 부호화 (Variable Length Coding)
• 데이터의 발생 빈도수와 인코딩 bit수는 반비례
• 알고리즘  데이터당 비트 평균치를 최소화하는 코드생성
• 첫째 확률테이블생성, 둘째 실제적 압축
• DC계수는 앞 블럭 DC계수의 차분을 부호화
• AC계수는 zig-zag scan으로 부호화.
• Pkzip,Arj등에 사용된다.
- 27 -
Huffman Coding
- 28 -
Huffman Coding
- 29 -
Huffman Coding
- 30 -
Huffman Coding
R
K
K
K
K
K
K
K
K
K
K
R
R
K
K
K
K
K
R
R
R
R
G
G
K
K
B
C
C
C
R
R
G
G
G
M
C
B
R
R
B
B
B
M
Y
B
B
R
G
G
G
G
G
G
G
R
G
R
R
R
R
G
R
1. 일곱가지색에의한 8*8 샘플 영상
R
- 31 -
Huffman Coding
색상
빈도수
빨강색(R)
파랑색(K)
녹 색(G)
검정색(B)
남 색 (C)
자홍색(M)
노랑색(Y)
19
17
14
7
4
2
1
빨강색
파랑색
녹 색
검정색
남 색
자홍색
노랑색
00
01
10
111
1100
11010
11011
3. 표2에의한 Huffman코드
2.샘플 영상의 색 빈도수 표
- 32 -
3.Compression Process
Arithmetic Coding
• 한 data값에 하나의 부호어를 정해서 bit수를 줄임.
• 첫째 확률테이블생성, 둘째 실제적 압축의 과정.
• Huffman Coding 보다 효율이 약간 좋으나,코드복잡, H/W 구현이 어려움
• 확률테이블에는 입력 데이타에 대해 0과1 사이의 범위 할당.
• 각 범위의 크기는 직접적으로 문자의 빈도수에 비례.
• 범위는 하나의 낮은 값과 하나의 높은 값으로 구성
• 데이터 발생빈도수가 높은 것 => 적은 비트, 넓은 범위 할당
• 데이터 발생빈도수가 낮은 것=> 많은 비트, 좁은 범위 할당
- 33 -
3.Compression Process
화소
확률
빨강
초록
파랑
0.2
0.6
0.2
0.0
할당된 범위 (0≤x<1)
[0.0, 0.2)
[0.2,0.8)
[0.8,1.0)
0.2
0.8
RED
Green
RED
Blue
Green
RED
Green
Blue
Blue
초록-초록-빨강의 축소된 출력범위
- 34 -
1.0
4.JPEG Format
 JPEG 압축 data는 entropy coded data를 포함하는 entropy coded segment와
header information을 포함하는 marker segment로 구성.
 Non-hierarchical과 hierarchical이 있다.
 계층형은 전체를 대강 나타낸 축소영상을 부호화
 화상의 차분정보를 부호화
 같은 영상으로 다른 해상도영상을 얻을 수 있음
- 35 -
4.JPEG Format
Image, Frame, Scan 단계의 데이터 구조 계층.
Image Data 구조계층
• 비계층형 부호화의 경우
이미지 선두 마커
이미지 종료 마커
필요에 따라 삽입 (DHT, DQT, DAC, DRI, COM, APP 등)
프레임
[테이블 등]
SOI
EOI
• 계층형 부호화의 경우
계층형부호화임을 표시
필요에 따라 삽입 (DHT, DQT, DAC, DRI, COM, APP 등)
필요에 따라 삽입
SOI
DHP
[테이블 등]
프레임 1
[ExP]
[테이블 등]
- 36 -
프레임 2
…
프레임 n
EOI
4.JPEG Format
Frame Data 구조계층
1.프레임 헤더 이하의 데이터 길이
2. 1화소당 정밀도(비트수)
3. 영상의 라인수
4. 1라인당 화소수
영상의 라인수 지정
(통상 프레임 헤더만으로 지정)
5. 색 성분의 사양
SOF
프레임 헤더
[테이블 등]
스캔1
[DNL]
프레임 선두 마커
[테이블 등]
스캔 2
…..
필요에 따라 삽입
(DHT, DQT, DAC, DRI,
COM, APP 등)
- 37 -
스캔 m
4.JPEG Format
Scan Data 구조계층
1.스캔 헤더 이하의 데이터 길이(바이트 단위)
2. 스캔 내 색 성분수
3. 스펙트럼 선택개시
4. 스펙트럼 선택종료
5. 연속근사 비트 단위
SOS
스캔 헤더
ECS 0
ECSi 1 RSTi 1
RST0
에러 감시, 회복용의
주기적 인터벌 마커
스캔 선두 마커
<MCU1> <MCU2> ….
ECSi
…
- 38 -
<MCU1> <MCU2> ….
4.JPEG Format
 Marker
표시
• 모든 마커 코드는 2바이트로 표시
• 첫번째 바이트 : FFH로 시작
• 두번째 바이트 : 00H, FFH외 다른 1바이트 코드
• 예 : DQT(Define Quantization Table(s)) FFDBH[표 4-1]
필 비트(채워넣기 비트)
• 마커 코드 직전이 엔트로피 부호화로 끝나 바이트 경계에 도달하지 않았을 경우
경계에 도달할 때까지 ‘1’을 써 넣는다.
마커 코드
마커 세그먼트 길이
2바이트
2바이트
마커 세그먼트 데이터
최대 65,533바이트
- 39 -
4.JPEG Format
Original image
(512x512, 262144 bytes)
JPEG compressed image
(30349 bytes)
- 40 -