Posted by: Adrio | January 6, 2009

Teknik Kompresi Citra


gif1Pada kesempatan ini saya akan coba sedikit membahas mengenai teknik kompresi citra dalam  format GIF. Sebagai pembuka alangkah baik nya kita terlebih dahulu tahu apa itu format GIF dan bagaimana asal mulanya format GIF tersebut. GIF (Graphic Interchange Format) dibuat oleh Compuserve pada tahun 1987 untuk menyimpan berbagai file bitmap manjadi file lain yang mudah diubah dan ditransmisikan pada jaringan komputer. GIF merupakan format citra web yang tertua yang mendukung kedalaman warna sampai 8 bit (256 warna), menggunakan 4 langkah interlacing, mendukung transparency, dan mampu menyimpan banyak image dalam 1 file. Format GIF memiliki Byte ordering: LSB – MSB.GIF memiliki struktur adalah sebagai berikut :

  • Header: menyimpan informasi identitas file GIF (3 bytes, harus string “GIF“) dan versinya (3 bytes, harus string “87a“ or “89b“).
  • Global Screen Descriptor: mendefinisikan logical screen area dimana masing-masing file GIF ditampilkan. Dapat dilihat seperti pada gambar diatas.
  • Global Color Table: masing-masing image dalam GIF dapat menggunakan global color table atau tabel warnanya sendirisendiri. Penggunaan GCT akan memperkecil ukuran file GIF.
  • Image1, Image2, Image3, … Image-n: dimana masing-masing image memiliki struktur blok sendiri-sendiri dan terminator antar file.
  • Trailer: Akhir dari sebuah file GIF.

Selain itu, format GIF memiliki beberapa karakteristik antara lain:  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 dan format gif merupakan kompresi tipe lossy.

Teknik dalam melakukan kompresi pada GIF adalah dengan menggunakan teknik LZW. Maksud dari teknik LZW disini adalah gambar GIF yang berpola horizontal dan memiliki perubahan warna yang sedikit,  serta tidak bernoise akan menghasilkan hasil kompresan yang baik. Teknik Kompresi LZW ini merupakan jenis kompresi yang lossless [SAY03].

Teknik kompresi LZW dapat dibuat pada beberapa bahasa pemrograman,misalnya dengan bahasa Pascal seperti pada contoh program dibawah ini :

program2

Program yang tertera diatas jika dijalankan akan meminta inputan berupa kalimat/kata, yang mana nantinya dari kalimat tersebut dihasilkan ouptput berupa hasil kompresi. Jadi  sebenarnya program diatas  tidak dapat langsung menghasilkan suatu hasil kompresi citra yang berupa gambar dengan menggunakan teknik LZW, namun hanya sekedar menjelaskan bagaimana algoritma dari penggunaan teknik LZW. Maklum.., penulis juga boleh nyomot tu program. Hehehe…

Nah.., selain yang udah dibahas diatas, ada baiknya kita juga mengetahui kelebihan dan kekurangan dari citra yang memiliki format GIF :

  • Format file GIF:
    o GIF87a: mendukung interlacing dan mampu manyimpan beberapa image dalam 1 file, ditemukan tahun 1987 dan menjadi standar.
    o GIF89a: kelanjutan dari 87a dan ditambahkan dengan dukungan transparency, mendukung text, dan animasi.
  • Animated GIF: tidak ada standar bagaimana harus ditampilkan sehingga umumnya image viewer hanya akan menampilkan image pertama dari file GIF. Animated GIF memiliki informasi berapa kali harus diloop.
  • Tidak semua bagian dalam animated GIF ditampilkan kembali, hanya bagian yang berubah saja yang ditampilkan kembali.
  • Pada format GIF tidak mungkin ada bit yang hilang pada proses kompresi.
  • Proses kompresi pada format GIF memungkinkan untuk menjaga apabila terdapat pesan rahasia tanpa adanya kerusakan.
  • Format GIF mendukung Indexed Color.
  • Pada saat kompresi format GIF kemungkinan kerusakan pada stego-image sangat besar.

Huhh.., akhirnya penjelasan saya mengenai teknik kompresi citra dengan format GIF sampai pada ujungnya. Pembahasan saya yang singkat ini mungkin tidak terlalu berarti apa-apa,tapi setidaknya ini sedikit membantu bagi kita yang baru belajar/mengenal tentang suatu teknik kompresi citra.


Leave a comment

Categories