Kompresi Citra

Download Report

Transcript Kompresi Citra

KOMPRESI CITRA
Overview

1-D DCT

Least Squares Approximation

2-D DCT

Kompresi Citra (grayscale, color)
1-D DCT
Definisi: Dengan n bilangan bulat positif 1-D
DCT tingkat n didefinisikan dengan n x n
matrik C dimana elemen-elemen matrik
adalah
i (2 j  1)
Cij  ai cos
2n
a0 = 1/sqrt(2) and
ak = 1 for k > 0
Manfaat Orthogonality
C orthogonal: CTC = I
 sehigga C-1 = CT


Menjadi penyelesaian matrik sangat mudah y
Pecahkan Y = CXCT untuk X:
 CTY = CTCXCY = XCT
 CTYC = XCTC = X

1-D DCT
Discrete cosine transform, C, merupakan matrik
orthogonal
1


2

2  cos 
C
2n
n


(n  1)

cos

2n




2
C 1  C T 
n 



1
2
1
2

1
2
1
2
3
cos
2n

(n  1)3
cos
2n
cos

2n
3
cos
2n

(2n  1)
cos
2n
1


2
(2n  1) 

cos
2n




(n  1)(2n  1) 
 cos

2n

(n  1)


2n
(n  1)3 

cos
2n




(n  1)(2n  1) 
 cos

2n


cos
One-dimensional DCT

Teorema interpolasi DCT
1
2 n1
k (2t  1)
Pn (t ) 
y0 
yk cos

2n
n
n k 1
Memenuhi Pn(j)=xj for j=0,…, n-1
C mentransformasi n data ke n koefisien
interpoloasi. DCT menghasilkan fungsi untuk
interpolasi trigonometric hanya menggunakan
faktor cosine
One-dimensional DCT
Misalkan kita diberikan vector
x  x0 ,, xn1 
T
Discrete Cosine Transform dari x ndimensional vector
y  y0 ,, yn1 
T
Dimana C didefinisikan dengan
y  Cx
Interpolasi dengan DCT

Mengapa interpolasi dengan DCT

DCT interpolation : telah memberikan faktor
yang penting untuk memberikan faktor penting
bagi sistem visual manusia
One-dimensional DCT

Teorema : Least Squares Approximation
x  x0 ,, xn1 
T
y  y0 ,, yn1   Cx
T
1
2 m1
k (2t  1)
Pm (t ) 
y0 
y
cos

k
2n
n
n k 1
DCT Interpolation & Approximation
2
2
1
1
0
0
-1
-1
-2
-2
-3
-3
-4
-4
-5
-5
-6
-6
-7
0
1
2
3
4
5
6
7
8
-7
0
1
2
3
4
5
6
7
8
2-D DCT Interpolation
Diberikan matrix 16
jika diplot dalam 3D
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
2-D Least Squares

Dilakukan sama seperti dalam 1-D

Mengimplementasikan low pass filter

Menghapus komponen “high-frequency”
2-D Least Squares
Least Squares
Approximation
1.25
0.75
0.75
1.25
0.75
0.25
0.25
0.75
0.75
0.25
0.25
0.75
1.25
0.75
0.75
1.25
Sizeable Error due to small
number of points
Two-Dimensional DCT

Ide 2D-DCT: Melakukan interpolasi data
dengan fungsi basis

Mengatur urutan informasi yang penting bagi
sistem visual manusia

Menggunakan small blocks citra
(8 x 8 pixels )
Two-Dimensional DCT
Mengunakan 1D DCT dengan arah
vertikan dan horizontal
Arah pertama: F = C*XT
Arah kedua : G = C*FT
Kita dapatkan matrik 2D-DCT:
Y = C(CXT)T
Image Compression

Kompresi citra adalah metode yang mengurangi
jumlah memori yang diperlukan untuk menyimpan
citra.

Kita akan menghapus nilai yang kurang signifikan
dimana mata tanpa mata melihat perubahan dalam
citra tersebut setelah dikompres
Image Compression

Sekarang kita memiliki matrix Y = C(CXT)T

Gunakan DCT, elemen element dalam Y akan
disusun berdasarkan sistem visual mata

Nilai yang peling penting bagi
mata kita akan ditempatkan di
pojok atas kiri dari matrix.

Nilai yang kurang penting
akan ditempatkan di pojok
kanan dari matrik .
Most
Important
SemiImportant
Least
Important
Image Compression
8 x 8 Pixels
Image
Image Compression
Contoh gray scale citra:
 nilai 0 (black) --- 255 (white)

63 33 36 28 63 81
27 18 17 11 22 48
72 52 28 15 17 16
132 100 56 19 10 9
187 186 166 88 13 34
184 203 199 177 82 44
211 214 208 198 134 52
211 210 203 191 133 79
X
86 98
104 108
47 77
21 55
43 51
97 73
78 83
74 86
Image Compression

2D-DCT of matrix
Koefisien polinomial
-304 210
-327 -260
93 -84
89 33
-9 42
-5 15
10
3
12 30
104
67
-66
-19
18
-10
-12
0
-69
70
16
-20
27
17
-1
-3
Y
10
-10
24
-26
-7
32
2
-3
20
-15
-2
21
-17
-15
3
-6
-12 7
21 8
-5 9
-3 0
29 -7
-4 7
-2 -3
12 -1
Image Compression

Memotong komponen yang kurang
signifikan
-304 210
-327 -260
93 -84
89 33
-9 42
-5 15
10
0
0
0
104
67
-66
-19
18
0
0
0
-69
70
16
-20
0
0
0
0
10 20 -12 0
-10 -15 0 0
24 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
Seperti yang kita lihat kita dapat menghemat sedikitnya
separuh dari memori aslinya.
Inverse 2D-DCT
2D-DCT menghasilkan Y = C(CXT)T yang dapat
ditulis lagi dengan
Y = CXCT
Karena C kita dapat menyelesaikan untuk X
C-1 = CT
Sehingga ,
X = CTYC
Reconstructing the Image

Dalam Mathematical terms:






X = (xij) adalah matrix n2 bilangan real
Y = (ykl) adalah 2D-DCT dari X
a0 = 1/sqrt(2) dan ak = 1 for k > 0
Kemudian (inverst dari citra ):
2 n1 n1
k (2s  1)
l (2 j  1)
Pn ( s, t )   ykl ak al cos
cos
n k 0 l 0
2n
2n
Memenuhi Pn(I,j) = xij untuk I, j=0,…,n-1
Reconstructing the Image

Matrik baru dan citra yang sudah
dikompres
55 41 27 39 56 69 92 106
35 22 7 16 35 59 88 101
65 49 21 5 6 28 62 73
130 114 75 28 -7 -1 33 46
180 175 148 95 33 16 45 59
200 206 203 165 92 55 71 82
205 207 214 193 121 70 75 83
214 205 209 196 129 75 78 85
Can You Tell the Difference?
Original
Compressed
Image Compression
Original
Compressed
Tan without Danger
Linear Quantization

Kita tidak akan membuat setengah dari
menjadi nol.

Idenya adalah menentukan berapa bit
memori untuk menyimpan informasi
dalam dibawah kanan dari matrik DCT
Linear Quantization
Menggunakan Quantization Matrix
(Q)
qkl = 8p(k + l + 1) for 0 < k, l < 7
Q=p*
8
16
24
32
40
48
56
64
16
24
32
40
48
56
64
72
24
32
40
48
56
64
72
80
32
40
48
56
64
72
80
88
40 48 56 64
48 56 64 72
56 64 72 80
64 72 80 88
72 80 88 96
80 88 96 104
88 95 104 112
96 104 112 120
Linear Quantization

p disebut dengan loss parameter

Mengendalaik kompresi

Lebih besar p lebih banyak citra yang
akan dikompres
Linear Quantization
Kita membagi setiap elemen dalam matrik DCT
dengan Quantization Matrix
-304 210
-327 -260
93 -84
89 33
-9 42
-5 15
10
3
12 30
104 -69 10
67 70 -10
-66 16 24
-19 -20 -26
18 27 -7
-10 17 32
-12 -1 2
0 -3 -3
20
-15
-2
21
-17
-15
3
-6
-12 7
21 8
-5 9
-3 0
29 -7
-4 7
-2 -3
12 -1
8
16
24
32
40
48
56
64
16
24
32
40
48
56
64
72
24
32
40
48
56
64
72
80
32
40
48
56
64
72
80
88
40 48 56 64
48 56 64 72
56 64 72 80
64 72 80 88
72 80 88 96
80 88 96 104
88 95 104 112
96 104 112 120
Linear Quantization
p=1
-38 13 4 -2
-20 -11 2 2
4 -3 -2 0
3 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
p=4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
New Y: 14 terms
-9 3 1 -1 0 0 0 0
-5 -3 1 0 0 0 0 0
1 -1 0 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 0
New Y: 10 terms
Linear Quantization
p=1
p=4
Linear Quantization
p=1
p=4
Linear Quantization
p=1
p=4
Memory Storage

Citra asli menggunakan 1 byte (8 bits)
untuk setiap pixel. Jumlah memori yang
diperlukan untuk setiap 8 x 8 block
adalah :

8 x (82) = 512 bits
Is This Worth the Work?

Berapa banyak memori yang disimpan untuk
setiap 8x 8 blok citra ”
Linear Quantization
p
Total bits
Bits/pixel
X
512
8
1
249
3.89
2
191
2.98
3
147
2.30
JPEG Imaging

Sangat jelas untuk mengembangkan
aplikasi ini untuk citra warna
Dinyatakan dengan RGB warna
 Setiap pixel dinyatakan dengan 3 nilai untuk
setiap nilai intensitas warna

RGB Coordinates
The Approach

Ada beberapa cara untuk melakukan kompresi
pada citra warna.


Ulangi proses yang telah dibahas pada setiap
warna dan bentuk kembal ke citra.
Baseline JPEG menggunakan beberapa
pendekatan.

Mendefinisikan koordinat luminance :


Y = 0.299R + 0.587G + 0.114B
Mendefinisikan beda/selisih koordinat menjadi:


U=B–Y
V=R–Y
More on Baseline

Disini mentransformasi ke RGB ke sistem
YUV yang mudah dibalik .
V
B
G
R

U
Y
Menggunakan DCT pada Y, U, dengan V
menggunakan quantization matrix QY.
JPEG Quantization
Luminance:
QY =
p { 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 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99}
JPEG Quantization
Chrominance:
QC =
{ 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}
Luminance and Chrominance

Mata manusia lebih sensitif ke luminance
(Y coordinate).

Mata manusia kurang sensitif pada perubahan warna
(UV coordinates).

Sehingga: kompresi lebih ditekankan pada UV !

Akibatnya : citra warna lebih dapat dikompresi dari
pada citra grayscale
Reconstitution

Setelah dikompres, Y, U, dan V, digabung dan
dikembalikan lagi ke RGB untuk membentuk citra
warna yang sudah dikompres:
B= U+Y
R= V+Y
G= (Y- 0.299R - 0.114B) / 0.587
Comparing Compression
Original
p=4
p=1
p=8
Up Close
The End
Thanks for Coming!