““ PEMAMPATAN
PEMAMPATAN ((KO
KO MPRESI
MPRESI)
) C
C IITRA”
TRA”
Jurusan : Jurusan : Teknologi Informasi Teknologi Informasi Oleh : Oleh :M
Muc
uchl
hlii s
s A
Ab
bdu
dul
l C
Cho
hoha
harr
0
07
7 6
61
15 064
5 064
DEPARTE
DEPARTEMEN PENDIDIKAN
MEN PENDIDIKAN NASIONAL
NASIONAL
POLITEKNIK NEGERI SAMARINDA
POLITEKNIK NEGERI SAMARINDA
2009/2010
2009/2010
KOMPRESI CITRA
Dalam teori informasi, proses pemampatan data dengan mengurangi pengulangan adalah berdasarkan pada pengkodean source. Citra memiliki dua tipe redundansi yaitu redundansi statistik (redundansi ruang dan redundansi spektrum) dan redundansi psikovisual. Redundansi statistik muncul karena beberapa pola ruang mempunyai kemiripan, sedangkan redundansi psikovisual terjadi karena adanya kenyataan bahwa mata manusia tidak sensitif terhadap adanya frekuensi beberapa ruang dalam citra.
Setiap sistem kompresi citra yang berbeda akan mengimplementasikan kombinasi pilihan-pilihan yang berbeda pula. Pada dasarnya metode kompresi citra dibagi menjadi dua jenis, yaitu :
a. Lossless compresion,
hasil yang ingin dicapai dari metode ini adalah mengurangi bitrate tanpa mengurangi data yang dimiliki oleh citra tersebut . Metode ini digunakan untuk aplikasi yang khusus, misalnya digunakan untuk pengiriman gambar-gambar di bidang kedokteran. b. Lossy Compression,
hasil yang ingin dicapai adalah memperoleh ketelitian yang optimal dari suatu bitrate. Metode lossy compression melakukan manipulasi data-data yang dimiliki oleh citra. Manipulasi disini berupa pengurangan nilai presisi integer pada karakter citra.
Kompresi citra bertujuan untuk meminimalkan jumlah bit yang diperlukan untuk merepresentasikan citra. Apabila sebuah foto berwarna berukuran 3 inci x 4 inci diubah ke bentuk digital dengan tingkat resolusi sebesar 500 dot per inch (dpi), maka diperlukan 3 x 4 x 500 x 500 = 3.000.000 dot ( piksel). Setiap piksel terdiri dari 3 byte dimana masing-masing byte merepresentasikan warna merah, hijau, dan biru. sehingga citra digital tersebut memerlukan volume penyimpanan sebesar 3.000.000 x 3 byte +1080 = 9.001.080 byte setelah ditambahkan jumlah byte yang diperlukan untuk menyimpan format (header) citra. Citra tersebut tidak bisa disimpan ke dalam disket yang berukuran 1.4 MB. Selain itu, pengiriman citra berukuran 9 MB memerlukan waktu lebih lama. Untuk koneksi internet dial-up (56 kbps), pengiriman citra berukuran 9 MB memerlukan waktu 21 menit. Untuk itulah diperlukan kompresi citra sehingga ukuran citra tersebut menjadi lebih kecil dan waktu pengiriman citra menjadi lebih cepat. Citra yang belum dikompres disebut citra mentah (raw image). Sementara citra hasil kompresi disebut citra terkompresi(compressed image). Proses pengiriman dan penyimpanan citra tersebut diilustrasikan pada gambar 2.3.
Gambar 2.3 Proses Konversi citra analog ke citra digital beserta pengirimannya
Kompresi citra dikembangkan untuk memudahkan penyimpanan dan pengiriman citra. Teknik kompresi yang ada sekarang memungkinkan citra dikompresi sehingga ukurannya menjadi jauh lebih kecil daripada ukuran asli. Ada dua tipe utama kompresi data, yaitu
kompresi tipe lossless dan kompresi tipe lossy. Kompresi tipe lossy adalah kompresi dimana terdapat data yang hilang selama proses kompresi. Akibatnya kualitas data yang dihasilkan jauh lebih rendah daripada kualitas data asli. Sementara itu, kompresi tipe lossless tidak
menghilangkan informasi setelah proses kompresi terjadi, akibatnya kualitas citra hasil kompresi tidak menurun. Namun demikian, rasio kompresi yang digunakan untuk kompresi tipe lossless lebih kecil daripada rasio kompresi pada kompresi tipe lossy.
Parameter-parameter citra yang penting dalam proses kompresi diantaranya adalah sebagai berikut :
2.2.1. Resolusi
Resolusi citra menyatakan ukuran panjang kali lebar dari sebuah citra. Resolusi citra biasanya dinyatakan dalam satuan piksel . piksel. Semakin tinggi reso lusi sebuah citra, semakin baik kualitas citra tersebut. Namun, tingginya resolusi menyebabkan semakin banyaknya jumlah bit yang diperlukan untuk menyimpan dan mentransmisikan data citra t ersebut.
2.2.2. Kedalaman Bit
Kedalaman bit menyatakan jumlah bit yang dipelukan untuk mrepresentasikan tiap piksel citra pada sebuah frame. Kedalaman bit biasanya dinyatakan dalam satuan bit/ piksel. Semakin banyak jumlah bit yang digunakan untuk merepresentasikan sebuah citra, maka semakin baik kualitas citra tersebut.
2.2.3. Konsep Redundansi
Redundansi merupakan suatu keadaan dimana representasi suatu elemen data tidak bernilai signifikan dalam merepresentasikan keseluruhan data. Keadaan ini menyebabkan data keseluruhan dapat direpresentasikan secara lebih kompak dengan cara menghilangkan representasi dari sebuah elemen data yang redundan. Redundansi yang terdapat pada citra statik adalah redundansi spasial. Metode kompresi citra berdasarkan redundansi spasial diantaranya adalah sebagai berikut :
Subsampling
Subsampling merupakan metode kompresi dengan mengurangi jumlah piksel yang diperlukan untuk merepresentasikan suatu citra. Subsampling dapat dilakukan dengan dua cara. Cara pertama adalah mengambil piksel-piksel tertentu dari citra, missal piksel-piksel pada baris dan kolom saja. Cara kedua adalah dengan mengambil ratarata dari kelompok piksel dan menggunakan nilai tersebut sebagai ganti nilai kelompok piksel ini. Cara ini lebih kompleks, tetapi menghasilkan kualitas yang lebih baik. Subsampling sebanding dengan pengurangan resolusi.
Pengurangan kedalaman bit
Metode ini dilakukan dengan mengurangi jumlah bit yang digunakan untuk merepresentasikan suatu piksel. Misalnya dengan mengurangi kedalaman bit dari 16 bit/ piksel menjadi 8 bit/piksel. Metode ini mengurangi kualitas citra.
Transformation Coding
Transformation coding merupakan transformasi data dari domain ruang ke domain frekuensi.Cara ini menghasilkan data yang lebih mudah diproses untuk kompresi lebih lanjut. Transformasi yang populer digunakan antara lain Discrete Cosine Transform (DCT) yang diadopsi dalam standar kompresi JPEG dan Discrete Wavelet Transform (DWT) yang digunakan dalam kompresi JPEG 2000. Sekarang ini, kompresi citra yang sering digunakan adalah JPEG. JPEG dikembangkan oleh Joint Photographic Expert Group pada akhir tahun 80an dan kemudian dikenal karena teknik kompresi-nya yang bagus. Kompresi JPEG berdasarkan pada Discrete Cosine Transform. Pada tahun 1997, komite JPEG memutuskan untuk mengembangkan standar baru untuk kompres citra. Sejak saat itulah JPEG-2000 mulai dikembangkan. Berikut ini adalah contoh format citra baik yang lossless maupun lossy
Tabel 2.1. Macam-macam Format Citra
Ektensi Nama Keterangan
bmp Windows Bitmap Biasanya digunakan oleh aplikasi dan sistem opeasi Microsoft Windows. Merupakan kompresi tipe lossless.
gif Graphics Interchange Format
Gif biasanya digunakan di website. Format gif mendukung citra bergerak. Namun format gif hanya mendukung 255 warna tiap frame. Format gif juga mendukung citra transparan. Format gif merupakan kompresi tipe lossy.
jpg/jpeg Joint Photographic Experts Group
JPEG biasanya digunakan untuk foto atau citra di website. JPEG menggunakan kompresi tipe lossy. Kualitas JPEG 2000 bisa bervariasi tergantung setting kompresi yang digunakan. Kompresi JPEG berbasis DCT(Discreete Cosine Transform) jp2/jpg2/j2k Joint Photographic Experts
Group 2000
Merupakan pengembangan dari JPEG yang berbasis transformasi wavelet. Format ini mendukung kompresi tipe lossless dan lossy. Namun, support JPEG 2000 dalam berbagai aplikasi masih kurang, disebabkan kebutuhan hardware yang tangguh dan paten.
pbm Portable Bitmap Format Merupakan format citra hitam putih yang sederhana. PBM memerlukan 1 bit tiap pixel. Tidak seperti format citra lainnya, format PBM merupakan plain text yang bisa diolah dengan menggunakan pengolah text. Format PBM merupakan bagian dari PNM (Portable Pixmap File Format).
pgm Portable Graymap Format Merupakan format citra abu-abu yang sederhana. Format PGM memerlukan 8 bit tiap pixel. PGM merupakan citra mentah dengan kompresi tipe lossless. Format PGM merupakan bagian dari PNM (Portable Pixmap File Format).
Ektensi Nama Keterangan
ppm Portable Pixmap Format Merupakan format citra berwarna yang sederhana. PPM memerlukan 24 bit tiap pixel. PPM merupakan citra mentah dengan kompresi tipe lossless. Format PPM merupakan bagian dari PNM (Portable Pixmap File Format).
png Portable Network Graphics
PNG adalah format citra dengan kompresi tipe lossless dengan kedalaman bit berkisar antara 1 sampai dengan 32. PNG didesain untuk menggantikan format citra GIF untuk diimplementasikan di website. Algoritma kompresi PNG tidak memerlukan paten karena sudah menjadi public domain sejak tahun 2003. tiff Tagged Image File Format Merupakan format citra yang sudah digunakan
sejak dulu. Mendukung kompresi tipe lossless dan lossy.
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 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:
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 : Matrik R : 1 1 3 7 1 2 4 4 6 1 2 2 7 7 7 5 5 1 6 4 4 4 2 2 5 5 2 2 2 1 2 2 3 3 0 0 Matrik G: 4 4 6 1 2 2 7 7 7 5 5 1 6 4 4 4 2 2 5 5 2 2 2 1 2 2 3 3 0 0 1 1 3 7 1 2
Matrik B: 7 7 7 5 5 1 6 4 4 4 2 2 5 5 2 2 2 1 2 2 3 3 0 0 1 1 3 7 1 2
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
Matrik citra hasil kompresi didapatkan sebagai berikut: Matrik R: 0 0 1 3 0 1 2 2 3 0 1 1 3 3 3 2 2 0 3 2 2 2 1 1 2 2 1 1 1 0 1 1 1 1 0 0 Matrik G: 2 2 3 0 1 1 3 3 3 2 2 0 3 2 2 2 1 1 2 2 1 1 1 0 1 1 1 1 0 0 0 0 1 3 0 1
Matrik B 3 3 3 2 2 0 3 2 2 2 1 1 2 2 1 1 1 0 1 1 1 1 0 0 0 0 1 3 0 1 2 2 3 0 1 1 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 citr a baru hasil kompresi.
Proses kompresinya dijelaskan sebagai berikut :
Hasil pada saat program dijalankan dengan beberapa sampel gambar yang berbeda adalah sbb: