Kompresi Citra - WordPress.com

Download Report

Transcript Kompresi Citra - WordPress.com

Meminimalkan Kebutuhan Memori
dalam Merepresentasikan Citra
Digital
MANFAAT KOMPRESI CITRA
Waktu pengiriman data lebih singkat
• Pengiriman gambar dari fax
• Video conferencing
• Download dari internet
Membutuhkan ruang memori yang lebih sedikit
TEKNIK KOMPRESI CITRA
Lossless
Compression
• Run Length Encoding (RLE)
• Entropy Encoding (Huffman,
Aritmatik)
• Adaptive Dictionary Based (LZW)
Lossy
Compression
• Color Reduction
• Chroma Subsampling
• Transform Coding (Transformasi
Fourier, Wavelet)
KRITERIA KOMPRESI CITRA
Waktu Kompresi dan Dekompresi
Kebutuhan Memori
Kualitas Pemampatan (Fidelity)
Format Keluaran
ALGORITMA HUFFMAN
1. Urutkan nilai-nilai grayscale berdasarkan frekuensi
kemunculannya
2. Gabung dua pohon yang mempunyai frekuensi kemunculan
terkecil dan urutkan kembali
3. Ulangi langkah (2) sampai tersisa satu pohon biner
4. Beri label pohon biner tersebut dengan cara sisi kiri pohon
diberi label 0 dan sisi kanan pohon diberi label 1
5. Telusuri pohon biner dari akar ke daun. Barisan label-label
sisi dari akar ke daun adalah kode huffman
CONTOH
• Lakukan kompresi pada citra berukuran 100x100 piksel
dengan kedalaman 3 bit yang memiliki probabilitas sebagai
berikut :
K
nk
P(k) = nk/n
0
2500
0,25
1
1000
0,1
2
600
0,06
3
100
0,01
4
4000
0,4
5
400
0,04
6
500
0,05
7
900
0,09
Langkah 1
3 : 0,01
5 : 0,04
6 : 0,05
2 : 0,06
7 : 0,09
1 : 0,1
0 : 0,25
Langkah 2
3 ,5 : 0,05
3 : 0,01
6 : 0,05
2 : 0,06
7 : 0,09
1 : 0,1
0 : 0,25
5 : 0,04
Langkah 3.1
2 : 0,06
7 : 0,09
3 ,5,6 : 0,1
3 ,5 : 0,05
3 : 0,01
5 : 0,04
6 : 0,05
1 : 0,1
0 : 0,25
4 : 0,4
4 : 0,4
4 : 0,4
Langkah 3.2
3 ,5,6 : 0,1
3 ,5 : 0,05
3 : 0,01
1 : 0,1
6 : 0,05
2,7 : 0,15
2 : 0,06
0 : 0,25
4 : 0,4
7 : 0,09
5 : 0,04
Langkah 3.3
2,7 : 0,15
2 : 0,06
3 ,5,6,1 : 0,2
7 : 0,09
3 ,5,6 : 0,1
3 ,5 : 0,05
3 : 0,01
5 : 0,04
6 : 0,05
1 : 0,1
0 : 0,25
4 : 0,4
Langkah 3.4
0 : 0,25
2,7,3 ,5,6,1 : 0,35
2,7 : 0,15
2 : 0,06
4 : 0,4
3 ,5,6,1 : 0,2
7 : 0,09
3 ,5,6 : 0,1
3 ,5 : 0,05
3 : 0,01
5 : 0,04
6 : 0,05
1 : 0,1
Langkah 3.5
4 : 0,4
0,2,7,3 ,5,6,1 : 0,6
0 : 0,25
2,7,3 ,5,6,1 : 0,35
2,7 : 0,15
2 : 0,06
3 ,5,6,1 : 0,2
7 : 0,09
3 ,5,6 : 0,1
3 ,5 : 0,05
3 : 0,01
5 : 0,04
6 : 0,05
1 : 0,1
Langkah 3.6
4,0,2,7,3 ,5,6,1 : 1
4 : 0,4
0,2,7,3 ,5,6,1 : 0,6
0 : 0,25
2,7,3 ,5,6,1 : 0,35
2,7 : 0,15
2 : 0,06
3 ,5,6,1 : 0,2
7 : 0,09
3 ,5,6 : 0,1
3 ,5 : 0,05
3 : 0,01
5 : 0,04
6 : 0,05
1 : 0,1
Langkah 4
4,0,2,7,3 ,5,6,1 : 1
0
1
4 : 0,4
0,2,7,3 ,5,6,1 : 0,6
0
1
0 : 0,25
2,7,3 ,5,6,1 : 0,35
0
1
2,7 : 0,15
0
2 : 0,06
3 ,5,6,1 : 0,2
1
0
7 : 0,09
1
3 ,5,6 : 0,1
1 : 0,1
0
1
3 ,5 : 0,05
6 : 0,05
0
3 : 0,01
1
5 : 0,04
Langkah 5
Penelusuran dari akar ke daun :
4=0
0 = 10
2 = 1100
7 = 1101
3 = 111000
5 = 111001
6 = 11101
1 = 1111
4,0,2,7,3 ,5,6,1 : 1
0
1
4 : 0,4
0,2,7,3 ,5,6,1 : 0,6
0
1
0 : 0,25
2,7,3 ,5,6,1 : 0,35
0
1
2,7 : 0,15
0
2 : 0,06
3 ,5,6,1 : 0,2
1
0
7 : 0,09
1
3 ,5,6 : 0,1
1 : 0,1
0
1
3 ,5 : 0,05
6 : 0,05
0
3 : 0,01
1
5 : 0,04
HASIL KOMPRESI
K
nk
Kode Huffman
0
2500
10 (2 bit)
1
1000
1111 (4 bit)
2
600
1100 (4 bit)
3
100
111000 (6 bit)
4
4000
0 (1 bit)
5
400
111001 (6 bit)
6
500
11101 (5 bit)
7
900
1101 (4 bit)
• Ukuran citra sebelum kompresi
(kedalaman 3 bit = 8 warna)
= 100 x 100 x 3 bit
= 30.000 bit
• Ukuran citra setelah kompresi
= 2500 x 2 + 1000 x 4 + 600 x 4 +
100 x 6 + 4000 x 1 + 400 x 6 +
500 x 5 + 900 x 4
= 24.500 bit
• Rasio kompresi
= 100% - 24.500/30.000 x 100%
= 18,3%
ALGORITMA
RUN LENGTH ENCODING (RLE)
•
Cocok digunakan untuk memampatkan citra yang memiliki
kelompok-kelompok piksel berderajat keabuan yang sama
1. Seluruh citra dinyatakan sebagai sebuah baris run
2. Menghitung run-length untuk setiap derajat keabuan
yang berurutan
CONTOH
2
2
7
7
7
7
2
2
2
2
3
3
3
3
7
7
7
7
1
1
5
5
5
5
1
1
6
6
6
6
2
2
2
2
0
0
0
0
2
2
4
4
4
4
1
1
5
5
5
5
0
0
0
3
3
3
3
3
6
6
6
6
0
0
7
7
7
2
2
2
6
6
6
6
6
6
6
6
6
6
6
6
6
3
3
0
0
5
5
5
1
1
7
7
7
4
4
2
2
2
Hasil Kompresi
(2,2) (7,4) (2,4)
(3,4) (7,4)(1,2)
(5,4) (1,2) (6,4)
(2,4) (0,4) (2,2)
(4,4) (1,2) (5,4)
(0,3) (3,5) (6,2)
(6,2) (0,2) (7,3)
(2,3) (6,10)
(6,3) (3,2) (0,2) (5,3)
(1,2) (7,3) (4,2) (2,3)
HASIL PENGKODEAN
• Pengkodean :
2274243474125412642404224412540335
6 2 6 2 0 2 7 3 2 3 6 10 6 3 3 2 0 2 5 3 1 2 7 3 4 2 2 3
Total = 59 piksel
• Ukuran citra sebelum dikompres = 10 x 10 x 3 bit = 300 bit
• Ukuran citra setelah dikompres = 59 x 3 bit = 177 bit
• Rasio kompresi = 100% - 177/300 x 100% = 41%
METODE KUANTISASI
•
•
Mengurangi derajat keabuan sehingga jumlah bit yang
dibutuhkan untuk merepresentasikan citra berkurang
Misal P adalah jumlah piksel citra sebelum dimampatkan
1. Buat histogram citra semula
2. Buat n kelompok sehingga setiap kelompok berjumlah
kira-kira P/n
3. Ganti keabuan piksel dengan keabuan kelompok yang
baru
CONTOH
• Citra 4 bit berukuran 10x10 piksel akan dimampatkan menjadi
citra 2 bit berukuran 10x10 piksel
0
0
1
1
1
3
4
4
4
3
2
2
1
3
3
3
4
0
0
3
2
0
0
0
4
5
0
0
5
3
1
5
6
0
6
6
6
6
5
5
1
1
6
0
0
0
7
7
5
5
5
3
1
3
3
0
3
3
3
5
5
8
1
1
8
0
8
7
7
5
5
8
8
5
5
8
8
2
2
7
5
3
8
5
5
2
2
2
7
7
3
3
3
5
5
8
9
9
7
2
LANGKAH 1
K
nk
0
15
1
10
2
9
3
17
4
5
5
19
6
6
7
8
8
9
9
2
LANGKAH 2
K
nk
0
15
1
10
2
9
3
17
4
5
5
19
6
6
7
8
8
9
9
2
nbaru
kbaru
25
0
26
1
24
2
25
3
LANGKAH 3
0
0
0
0
0
1
2
2
2
1
1
1
0
1
1
1
2
0
0
1
1
0
0
0
2
2
0
0
2
1
0
2
3
0
3
3
3
3
2
2
0
0
3
0
0
0
3
3
2
2
2
1
0
1
1
0
1
1
1
2
2
3
0
0
3
0
3
3
3
2
2
3
3
2
2
3
3
1
1
3
2
1
3
2
2
1
1
1
3
3
1
1
1
2
2
3
3
3
3
1
• Ukuran citra sebelum kompresi
= 10 x 10 x 4 bit
= 400 bit
• Ukuran citra setelah kompresi
= 10 x 10 x 2
= 200 bit
• Rasio kompresi
= 100% - 200/400 x 100%
= 50%