09 AMIKOM Yogyakarta KOMPRESI CITRA RGB DENGAN
KOMPRESI CITRA RGB DENGAN
METODE KUANTISASI
Krisnawati
Dosen STMIK AMIKOM Yogyakarta
Abstraksi
Pada masa sekarang ini penggunaan citra RGB sudah merupakan
suatu kebutuhan dalam berbagai bidang. Akan tetapi penggunaannya
terkendala dengan kapasitas file yang besar, tetapi sangat
dimungkinkan untuk melakukan kompresi terhadap citra yang dimiliki
sesuai dengan kebutuhan. Citra RGB merupakan suatu matrik 3
dimensi, yakni dimensi panjang, dimensi lebar dan dimensi RGB. Jika
diurai lebih lanjut, akan didapat tiga matrik dua dimensi, sebut saja
matrik R, matrik G, matrik B. Masing-masing matrik akan berisi
tingkat R(Red), G(Green) atau B(Blue) dari masing-masing piksel
penyusul citra. Dengan metode kuantisasi, matrik R, matrik G maupun
matrik B akan dikurangi tingkatannya, sehingga jumlah bit yang
digunakan untuk merepresentasikan citra menjadi berkurang. Oleh
karena jumlah bit berkurang maka ukuran file menjadi lebih kecil.
Metode kuantisasi termasuk dalam kategori Lossy Compression,
sehingga citra yang sudah dikompresi tidak dapat didekompresi
kembaliseperti semula karena ada informasi yang hilang.
Kata Kunci: kompresi, citra RGB, kuantisasi
Pendahuluan
Perkembangan media penyimpan berkapasitas besar
mengakibatkan orang tidak lagi menemui masalah jika mempunyai
file dengan ukuran yang besar. Lebih-lebih jika file yang kita punya
merupakan file image. Walaupun demikian, adakalanya ukuran file
75
yang besar tersebut terasa mengganggu jika kita harus memanage
media penyimpan yang kita punya untuk bermacam-macam data.
Apalagi jika file tersebut akan akan kita kirim secara elektronik,
tentunya kapasitas file menjadi masalah tersendiri.
Kompresi citra (image compression) adalah proses untuk
meminimalkan jumlah bit yang merepresentasikan suatu citra
sehingga ukuran citra menjadi lebih kecil. Pada dasarnya teknik
kompresi citra digunakan untuk proses transmisi data (data
transmission) dan penyimpanan data (storage). Kompresi citra banyak
diaplikasikan pada penyiaran televisi, penginderaan jarak jauh (remote
sensing), komunikasi militer, radar dan lain-lain.
Pembahasan
Teknik Kompresi Citra
Ada beberapa teknik kompresi yang dapat dikategorikan ke
dalam Lossless maupun Lossy Compression, antara lain:
1. Kompresi berbasis Statistik (Lossless)
Merepresentasikan citra dengan frekuensi kemunculan nilai
intensitas tertentu.
2. Kompresi berbasis Kuantisasi (Lossy)
Mengurangi jumlah intensitas warna.
3. Kompresi berbasis Transformasi (Lossless/Lossy)
Mengoptimalkan kinerja kompresi berbasis statistik dan
kuantisasi dengan cara melakukan transformasi terlebih
dahulu sebelum menerapkan salah satu teknik tersebut.
Sehingga kompresi bersifat lossy atau lossles tergantung
teknik mana yang digunakan setelah transformasi apakah itu
statistik (lossless) atau kuantisasi (lossy).
4. Kompresi berbasis fraktal (Lossy)
Fraktal merupakan bentuk rekursif yang merepresentasikan
komponen dasar objek. Dalam konsep kompresi, data
direpresentasikan sebagai pasangan antar elemen fraktal, pola
umum konfigurasi yang membentuk objek secara
76
keseluruhan, dan koefisien transformasi spasial (affine) untuk
masing-masing fraktal sesuai dengan posisinya dalam
konfigurasi pembentuk objek.
Metode kuantisasi bekerja dengan mengurangi jumlah
intensitas warna, sehingga jumlah bit yang digunakan untuk
merepresentasikan citra menjadi berkurang. Oleh karena jumlah bit
berkurang maka ukuran file menjadi lebih kecil. Dengan
berkurangnya intensitas warna tentu saja ada informasi yang hilang
dari citra asal. Oleh karena itu metode ini termasuk dalam loossy
compression, sehingga citra yang sudah dikompresi sulit didekompresi
kembali karena adanya informasi yang hilang.
Proses kompresi tentunya akan berdampak kepada banyak hal.
Yang pertama adalah ukuran citra hasil kompresi. Ukuran citra
diharapkan lebih kecil dari citra asal. Kedua adalah kualitas citra
untuk input terhadap proses berikutnya. Sampai berapa persenkah
citra asli bisa dikompresi ?
Rasio kompresi dapat dihitung dengan formula sebagai
berikut:
UkuranCitraHasilKompresi
⎞
Rasio kompresi = 100% − ⎛⎜
x100% ⎟
UkuranCitraSemula
⎝
⎠
Proses Kompresi
Kompresi berbasis kuantisasi menggunakan metode pengurangan
jumlah intensitas warna, sehingga dapat mengurangi jumlah bit yang
digunakan untuk merepresentasikan citra. Kompresi ini bersifat lossy,
karena intensitas warna berkurang, sehingga kualitas gambar hasil
kompresi menjadi kurang baik.
Contoh:
Diketahui citra berukuran 6x6 piksel, dengan 8 derajat R, 8 derajat G
dan 8 derajat B (3 bit) sebagai berikut :
77
Matrik R :
1
4
7
6
5
2
1
4
7
4
5
2
3
6
7
4
2
3
7
1
5
4
2
3
1
2
5
2
2
0
2
2
1
2
1
0
6
7
4
2
3
3
1
5
4
2
3
7
2
5
2
2
0
1
2
1
2
1
0
2
7
4
2
3
3
5
4
2
3
7
5
2
2
0
1
1
2
1
0
2
Matrik G:
4
7
6
5
2
1
4
7
4
5
2
1
Matrik B:
7
6
5
2
1
7
4
5
2
1
Citra diatas akan dikompresi menjadi 4 derajat R, 4 derajat G dan 4
derajat B (2 bit), sehingga masing-masing derajat R/G/B akan diubah
dengan menggunakan tabel berikut ini.
Tabel 1 Perubahan derajat RGB lama menjadi RGB baru
Derajat R/G/B lama
Derajat R/G/B baru
8 tingkat (0-7)
4 tingkat (0-3)
0
0
1
0
2
1
3
1
4
2
5
2
6
3
7
3
78
Matrik citra hasil kompresi didapatkan sebagai berikut:
Matrik R:
0
2
3
3
2
1
0
2
3
2
2
1
1
3
3
2
1
1
3
0
2
2
1
1
0
1
2
1
1
0
1
1
0
1
0
0
3
3
2
1
1
1
0
2
2
1
1
3
1
2
1
1
0
0
1
0
1
0
0
1
3
2
1
1
1
3
2
2
1
1
3
0
2
1
1
0
0
1
0
1
0
0
1
1
Matrik G:
2
3
3
2
1
0
2
3
2
2
1
0
Matrik B
3
3
2
1
0
2
3
2
2
1
0
2
Implementasi
Metode diatas diimplementasikan dengan MatLab 6.5.
Gambar lama yang semula mempunyai 256 derajat R, G, B (8 bit),
dikompresi menjadi 128 derajat R, G, B (7 bit).
Langkah pertama adalah melakukan pembacaan terhadap file
citra, yang disimpan ke variabel gblama. Berikutnya dicari ukuran
matrik citra. Ukuran ini nantinya akan digunakan sebagai indek
perulangan dalam proses selanjutnya. Nilai derajat R, G, B citra
diubah menjadi double. Setelah itu siapkan array kosong sebagai
tempat citra baru hasil kompresi.
79
Proses kompresinya dijelaskan sebagai berikut :
Program 1: Proses Kompresi Citra
gblama =imread('famili.jpg');
[m,n,o]=size(gblama);
array=double(gblama);
gbbaru=zeros(m,n,3);
for k=1:o
for i=1:m
for j=1:n
if (mod(array(i,j,k),2)==0)
gbbaru(i,j,k)=(array(i,j,k)+1)/2;
else
gbbaru(i,j,k)=(array(i,j,k))/2;
end
end
end
end
Hasil pada saat program dijalankan dengan beberapa sampel gambar
yang berbeda adalah sbb:
Tabel 2 Hasil kompresi citra terhadap 10 sampel
Ukuran file sebelum
Ukuran file
No
kompresi (KB)
setelah kompresi
(KB)
1
2
3
4
5
6
7
8
9
10
20
49
87
167
395
407
517
701
926
1015
5
12
24
39
89
91
103
195
268
300
Rasio
Kompresi (%)
75.00
75.51
72.41
76.65
77.47
77.64
80.08
72.18
71.06
70.44
Rerata rasio kompresi didapat sebesar 74.16 %
80
Kesimpulan
Kompresi terhadap citra RGB dilakukan dengan cara menurunkan
intensitas tingkat R, G dan B secara seragam. Penurunan tersebut
mengakibatkan bit yang merepresentasikan citrapun menjadi
berkurang. Karena bit yang merepresentasikan citra berkurang, maka
besar file citra pun akan semakin kecil.
Daftar Pustaka
Paul Wintz, 2000, Digital Image Processing, Prentice-Hall.
MatLab 6 Help.
William J Palm, 2004, Introduction to MatLab 6 for Engineers, The
McGraw-Hill Companies, Inc.
www.iprg.ee.itb.ac.id/lectures.html, 15 Desember 2007
www.datacompression.info/Quantization.shtml, 31 Desember 2007
www.cbloom.com/src/index_im.html, 16 Desember 2007
81
METODE KUANTISASI
Krisnawati
Dosen STMIK AMIKOM Yogyakarta
Abstraksi
Pada masa sekarang ini penggunaan citra RGB sudah merupakan
suatu kebutuhan dalam berbagai bidang. Akan tetapi penggunaannya
terkendala dengan kapasitas file yang besar, tetapi sangat
dimungkinkan untuk melakukan kompresi terhadap citra yang dimiliki
sesuai dengan kebutuhan. Citra RGB merupakan suatu matrik 3
dimensi, yakni dimensi panjang, dimensi lebar dan dimensi RGB. Jika
diurai lebih lanjut, akan didapat tiga matrik dua dimensi, sebut saja
matrik R, matrik G, matrik B. Masing-masing matrik akan berisi
tingkat R(Red), G(Green) atau B(Blue) dari masing-masing piksel
penyusul citra. Dengan metode kuantisasi, matrik R, matrik G maupun
matrik B akan dikurangi tingkatannya, sehingga jumlah bit yang
digunakan untuk merepresentasikan citra menjadi berkurang. Oleh
karena jumlah bit berkurang maka ukuran file menjadi lebih kecil.
Metode kuantisasi termasuk dalam kategori Lossy Compression,
sehingga citra yang sudah dikompresi tidak dapat didekompresi
kembaliseperti semula karena ada informasi yang hilang.
Kata Kunci: kompresi, citra RGB, kuantisasi
Pendahuluan
Perkembangan media penyimpan berkapasitas besar
mengakibatkan orang tidak lagi menemui masalah jika mempunyai
file dengan ukuran yang besar. Lebih-lebih jika file yang kita punya
merupakan file image. Walaupun demikian, adakalanya ukuran file
75
yang besar tersebut terasa mengganggu jika kita harus memanage
media penyimpan yang kita punya untuk bermacam-macam data.
Apalagi jika file tersebut akan akan kita kirim secara elektronik,
tentunya kapasitas file menjadi masalah tersendiri.
Kompresi citra (image compression) adalah proses untuk
meminimalkan jumlah bit yang merepresentasikan suatu citra
sehingga ukuran citra menjadi lebih kecil. Pada dasarnya teknik
kompresi citra digunakan untuk proses transmisi data (data
transmission) dan penyimpanan data (storage). Kompresi citra banyak
diaplikasikan pada penyiaran televisi, penginderaan jarak jauh (remote
sensing), komunikasi militer, radar dan lain-lain.
Pembahasan
Teknik Kompresi Citra
Ada beberapa teknik kompresi yang dapat dikategorikan ke
dalam Lossless maupun Lossy Compression, antara lain:
1. Kompresi berbasis Statistik (Lossless)
Merepresentasikan citra dengan frekuensi kemunculan nilai
intensitas tertentu.
2. Kompresi berbasis Kuantisasi (Lossy)
Mengurangi jumlah intensitas warna.
3. Kompresi berbasis Transformasi (Lossless/Lossy)
Mengoptimalkan kinerja kompresi berbasis statistik dan
kuantisasi dengan cara melakukan transformasi terlebih
dahulu sebelum menerapkan salah satu teknik tersebut.
Sehingga kompresi bersifat lossy atau lossles tergantung
teknik mana yang digunakan setelah transformasi apakah itu
statistik (lossless) atau kuantisasi (lossy).
4. Kompresi berbasis fraktal (Lossy)
Fraktal merupakan bentuk rekursif yang merepresentasikan
komponen dasar objek. Dalam konsep kompresi, data
direpresentasikan sebagai pasangan antar elemen fraktal, pola
umum konfigurasi yang membentuk objek secara
76
keseluruhan, dan koefisien transformasi spasial (affine) untuk
masing-masing fraktal sesuai dengan posisinya dalam
konfigurasi pembentuk objek.
Metode kuantisasi bekerja dengan mengurangi jumlah
intensitas warna, sehingga jumlah bit yang digunakan untuk
merepresentasikan citra menjadi berkurang. Oleh karena jumlah bit
berkurang maka ukuran file menjadi lebih kecil. Dengan
berkurangnya intensitas warna tentu saja ada informasi yang hilang
dari citra asal. Oleh karena itu metode ini termasuk dalam loossy
compression, sehingga citra yang sudah dikompresi sulit didekompresi
kembali karena adanya informasi yang hilang.
Proses kompresi tentunya akan berdampak kepada banyak hal.
Yang pertama adalah ukuran citra hasil kompresi. Ukuran citra
diharapkan lebih kecil dari citra asal. Kedua adalah kualitas citra
untuk input terhadap proses berikutnya. Sampai berapa persenkah
citra asli bisa dikompresi ?
Rasio kompresi dapat dihitung dengan formula sebagai
berikut:
UkuranCitraHasilKompresi
⎞
Rasio kompresi = 100% − ⎛⎜
x100% ⎟
UkuranCitraSemula
⎝
⎠
Proses Kompresi
Kompresi berbasis kuantisasi menggunakan metode pengurangan
jumlah intensitas warna, sehingga dapat mengurangi jumlah bit yang
digunakan untuk merepresentasikan citra. Kompresi ini bersifat lossy,
karena intensitas warna berkurang, sehingga kualitas gambar hasil
kompresi menjadi kurang baik.
Contoh:
Diketahui citra berukuran 6x6 piksel, dengan 8 derajat R, 8 derajat G
dan 8 derajat B (3 bit) sebagai berikut :
77
Matrik R :
1
4
7
6
5
2
1
4
7
4
5
2
3
6
7
4
2
3
7
1
5
4
2
3
1
2
5
2
2
0
2
2
1
2
1
0
6
7
4
2
3
3
1
5
4
2
3
7
2
5
2
2
0
1
2
1
2
1
0
2
7
4
2
3
3
5
4
2
3
7
5
2
2
0
1
1
2
1
0
2
Matrik G:
4
7
6
5
2
1
4
7
4
5
2
1
Matrik B:
7
6
5
2
1
7
4
5
2
1
Citra diatas akan dikompresi menjadi 4 derajat R, 4 derajat G dan 4
derajat B (2 bit), sehingga masing-masing derajat R/G/B akan diubah
dengan menggunakan tabel berikut ini.
Tabel 1 Perubahan derajat RGB lama menjadi RGB baru
Derajat R/G/B lama
Derajat R/G/B baru
8 tingkat (0-7)
4 tingkat (0-3)
0
0
1
0
2
1
3
1
4
2
5
2
6
3
7
3
78
Matrik citra hasil kompresi didapatkan sebagai berikut:
Matrik R:
0
2
3
3
2
1
0
2
3
2
2
1
1
3
3
2
1
1
3
0
2
2
1
1
0
1
2
1
1
0
1
1
0
1
0
0
3
3
2
1
1
1
0
2
2
1
1
3
1
2
1
1
0
0
1
0
1
0
0
1
3
2
1
1
1
3
2
2
1
1
3
0
2
1
1
0
0
1
0
1
0
0
1
1
Matrik G:
2
3
3
2
1
0
2
3
2
2
1
0
Matrik B
3
3
2
1
0
2
3
2
2
1
0
2
Implementasi
Metode diatas diimplementasikan dengan MatLab 6.5.
Gambar lama yang semula mempunyai 256 derajat R, G, B (8 bit),
dikompresi menjadi 128 derajat R, G, B (7 bit).
Langkah pertama adalah melakukan pembacaan terhadap file
citra, yang disimpan ke variabel gblama. Berikutnya dicari ukuran
matrik citra. Ukuran ini nantinya akan digunakan sebagai indek
perulangan dalam proses selanjutnya. Nilai derajat R, G, B citra
diubah menjadi double. Setelah itu siapkan array kosong sebagai
tempat citra baru hasil kompresi.
79
Proses kompresinya dijelaskan sebagai berikut :
Program 1: Proses Kompresi Citra
gblama =imread('famili.jpg');
[m,n,o]=size(gblama);
array=double(gblama);
gbbaru=zeros(m,n,3);
for k=1:o
for i=1:m
for j=1:n
if (mod(array(i,j,k),2)==0)
gbbaru(i,j,k)=(array(i,j,k)+1)/2;
else
gbbaru(i,j,k)=(array(i,j,k))/2;
end
end
end
end
Hasil pada saat program dijalankan dengan beberapa sampel gambar
yang berbeda adalah sbb:
Tabel 2 Hasil kompresi citra terhadap 10 sampel
Ukuran file sebelum
Ukuran file
No
kompresi (KB)
setelah kompresi
(KB)
1
2
3
4
5
6
7
8
9
10
20
49
87
167
395
407
517
701
926
1015
5
12
24
39
89
91
103
195
268
300
Rasio
Kompresi (%)
75.00
75.51
72.41
76.65
77.47
77.64
80.08
72.18
71.06
70.44
Rerata rasio kompresi didapat sebesar 74.16 %
80
Kesimpulan
Kompresi terhadap citra RGB dilakukan dengan cara menurunkan
intensitas tingkat R, G dan B secara seragam. Penurunan tersebut
mengakibatkan bit yang merepresentasikan citrapun menjadi
berkurang. Karena bit yang merepresentasikan citra berkurang, maka
besar file citra pun akan semakin kecil.
Daftar Pustaka
Paul Wintz, 2000, Digital Image Processing, Prentice-Hall.
MatLab 6 Help.
William J Palm, 2004, Introduction to MatLab 6 for Engineers, The
McGraw-Hill Companies, Inc.
www.iprg.ee.itb.ac.id/lectures.html, 15 Desember 2007
www.datacompression.info/Quantization.shtml, 31 Desember 2007
www.cbloom.com/src/index_im.html, 16 Desember 2007
81