MENGGUNAKAN ALGORITMA HUFFMAN DAN SHANNON-FANO COMPARISON ANALYSIS OF IMAGE COMPRESSION WITH HUFFMAN AND SHANNON-FANO
ALGORITHM
Sanny Sunaryo¹, Fazmah Arief Yulianto², Tjokorda Agung Budi Wirayuda³
¹Teknik Informatika, Fakultas Teknik Informatika, Universitas Telkom
Abstrak
Pada kasus tertentu sebuah citra, seperti citra medis dan citra landscape, tidak boleh kehilangan informasinya setelah dikompresi. Citra setelah dekompresi harus memiliki kualitas yang sama dengan citra aslinya. Untuk mempertahankan informasi yang terkandung didalam citra digital maka teknik kompresi lossless merupakan solusinya. Algoritma Huffman dan Shannon-Fano merupakan salah satu contoh dari teknik kompresi lossless.
Tugas akhir ini membandingkan antara algoritma Huffman dengan Shannon-Fano dan tipe kompresi per plane dengan per pixel. Kedua algoritma tersebut menggunakan pendekatan statistik, yaitu kompresi dilakukan dengan menghitung nilai gray level disetiap pikselnya. Kedua algorima tersebut juga membuat pohon biner untuk memperoleh kode masing-masing simbolnya. Algoritma Huffman membuat pohon biner dengan pendekatan bottom-up dan algoritma Shannon-Fano membuat pohon biner dengan pendekatan top-down.
Berdasarkan hasil pengujian dengan menggunakan delapan buah citra uji, algoritma Huffman lebih baik dibandingkan algoritma Shannon-Fano dilihat dari performansi rasio kompresi dan waktu dekompresi. Sedangkan untuk tipe kompresi, tipe per plane lebih baik dibandingkan tipe per pixel dilihat dari performansi rasio kompresi, waktu kompresi dan dekompresi.
Kata Kunci : kompresi, lossless, Huffman, Shannon-Fano, per plane, per pixel
Abstract
In certain case an image, such medical image and landscape image, cannot lose information after compression. The image after decompression must have the same quality with the original one. To retain the information which is contained in digital image, lossless compression technique is a solution. Huffman and Shannon-Fano algorithms are the examples of lossless compression techniques.
This final project compares Huffman algorithm and Shannon-Fano algorithm, and the type of compression between per plane with per pixel. Both algorithms use statistical approach, where compression has to be done by calculating gray level every pixel. Also, both algorithms create a binary tree to get the code every symbol. Huffman algorithm creates a binary tree with bottom-up approach and Shannon-Fano algorithm creates a binary tree with top-down approach.
Based on test result eight test images, Huffman algorithm is better than Shannon-Fano algorithm based on compression ratio performance and decompression time. While for compression type, plane type is better than pixel type based on compression ratio performance, decompression and compression time.
Keywords : compression, lossless, huffman, shannon-fano, per plane, per pixel
Powered by TCPDF (www.tcpdf.org)
1
1.
Pendahuluan
1.1
Latar belakang
Perkembangan teknologi informasi yang semakin maju membuat proses komunikasi dan transfer data semakin cepat dan semakin banyak servis yang melayani pertukaran dan distribusi data tersebut. Hal ini ikut berdampak pada bidang multimedia dimana sebuah foto (citra) sudah memiliki ukuran dimensi yang sangat besar. Akibatnya kebutuhan akan ruang penyimpanan citra akan semakin terbatas. Untuk mengatasi permasalahan ukuran citra yang semakin besar, maka diperlukan sebuah cara untuk mengecilkan ukuran citra tersebut tetapi tetap mempertimbangkan kualitas hasil rekonstruksinya. Solusinya adalah dengan menggunakan teknologi kompresi untuk mengatasi permasalahan tersebut.
Kompresi merupakan proses mengurangi kuantitas data, yaitu dengan membuang informasi-informasi yang tidak berguna (redundan) sehingga yang dikirimkan atau disimpan merupakan informasi yang penting[1]. Informasi redundan ini merupakan informasi yang tidak bisa dilihat oleh penglihatan secara langsung oleh manusia. Dengan mengkompresi citra digital maka permasalahan dalam kebutuhan ruang dalam media penyimpanan dapat teratasi, selain itu kompresi citra berguna untuk mempercepat transfer data dari satu device ke
device lainnya serta dapat menghemat bandwidth jaringan. Selain itu kompresi pada beberapa citra seperti citra medis dan citra satelit tidak boleh mengalami penurunan kualitas pada saat direkonstruksi. Maka teknik kompresi lossless
adalah teknik yang tepat untuk mengatasi permasalahan ini.
Ada berbagai macam algoritma kompresi yang bersifat lossless diantaranya adalah Huffman dan Shannon-Fano. Kompresi dengan menggunakan algoritma
Huffman dan Shannon-Fano memiliki keuntungan, yakni mudah dalam
pengimplementasiannya serta waktu kompresi dan dekompresinya relatif cepat. Karena kedua metode ini termasuk kategori algoritma dengan metode statistik, dimana hanya memiliki dua fase, yaitu: fase pertama untuk menghitung probabilitas kemunculan tiap simbol atau karakter dan menentukan peta kodenya, dan fase kedua untuk mengubah pesan menjadi kumpulan kode yang akan ditransmisikan. Kedua algoritma ini dibedakan pada pendekatan pembuatan tree
sebagai model pemetaan kode. Algoritma Huffman menggunakan pendekatan
bottom-up, sedangkan algoritma Shannon-Fano menggunakan pendekatan top-down. Kedua algoritma ini dipengaruhi oleh banyaknya jumlah simbol dalam sebuah citra digital, semakin banyak jumlah simbol maka akan memperbesar ukuran codebook yang dihasilkan. Akibatnya ukuran file citra terkompresi akan semakin membesar.
Sebelum proses kompresi dilakukan, maka dilakukan terlebih dahulu proses pembacaan data citra digital. Proses pembacaan citra digital ini biasanya hanya dilakukan dengan cara membaca nilai simbol disetiap planenya, namun ada cara lain untuk membaca data citra, yakni pembacaan data citra disetiap pixelnya. Sehingga dalam tugas akhir ini akan menggunakan dua macam tipe kompresi yaitu per plane dan per pixel. Dengan menggunakan pembacaan data citra yang berbeda diharapkan dapat diperoleh hasil yang maksimal dalam proses kompresi.
2
1.2
Perumusan masalah
Dalam tugas akhir ini, akan dirancang dan diimplementasikan kompresi citra digital yang bekerja di lingkungan komputer. Ada dua macam algoritma yang akan diimplementasikan, yaitu algoritma Huffman dan Shannon-Fano. Serta ada dua macam tipe kompresi, yaitu: tipe kompresi per pixel dan tipe kompresi per plane. Sehingga ada empat kombinasi pilihan pada saat kompresi citra digital. Pada algoritma Huffman, proses kompresi dilakukan dengan menghitung frekuensi kemunculan simbol kemudian diurutkan dari yang terbesar ke terkecil, kemudian dibuat node tree dari simbol tersebut dengan menggabungkan dua buah simbol menjadi sebuah node dari frekuensi kemunculan simbol yang terkecil ke yang terbesar. Sedangkan pada algoritma Shannon-Fano memiliki kesamaan dalam perhitungan frekuensi kemunculan simbol, yang membedakan hanya pada pembuatan tree, dimana node tree dibuat dari root dengan membagi dua jumlah seluruh frekuensi kemunculan simbol sampai tidak dapat dibagi lagi.
Untuk mengimplementasikan hal tersebut, ada beberapa point yang menjadi perhatian, yaitu :
a. Rasio kompresi
Rasio kompresi adalah perbandingan jumlah data yang belum dikompresi terhadap jumlah data hasil kompresi. Semakin bagus suatu kompresi maka rasio kompresinya semakin tinggi.
b. Waktu kompresi
Waktu kompresi adalah lamanya proses kompresi sebuah citra. c. Waktu dekompresi
Waktu dekompresi adalah lamanya proses dekompresi sebuah citra.
Untuk dapat membuktikan kinerja kedua algoritma dan tipe kompresi, maka dilakukan pengimplementasian dan analisis terhadap kedua algoritma tipe kompresi tersebut dengan memperhatikan ketiga point diatas. Karena kedua algoritma tersebut bersifat lossless maka tidak akan ada kesalahan (error) pada citra hasil rekonstruksi, tetapi untuk membuktikannya maka disertakan pula fungsi untuk menghitung nilai PSNR.
Input dari sistem kompresi citra digital ini berupa citra digital yang memiliki format bitmap (*.bmp) dengan kedalaman warna 24 bit dan ukuran dimensi citra digital yang sama yakni 150x150 pixel. Output dari sistem kompresi berupa file citra terkompresi dengan format file yang disesuaikan dengan algoritma dan tipe kompresi yang digunakan.
1.3
Tujuan
Tujuan dari penelitian tugas akhir ini adalah sebagai berikut :
a. Mengimplementasikan algoritma Huffman dan Shanon-Fano serta tipe kompresi per plane dan per pixel untuk kompresi citra digital.
b. Menganalisa dan membandingkan kedua algoritma dan tipe kompresi tersebut untuk menentukan algoritma dan tipe kompresi mana yang paling bagus dengan melihat nilai rasio kompresi, waktu kompresi dan waktu dekompresi.
3
1.4
Metodologi penyelesaian masalah
Langkah yang akan ditempuh dalam menyelesaikan Tugas Akhir ini diantaranya adalah :
1. Studi literatur dan pustaka
Mencari informasi dari berbagai sumber seperti: jurnal, buku, pencarian melalui internet, dan artikel-artikel mengenai beberapa topik seperti: algoritma Huffman dan Shannon-Fano, kompresi, dekompresi.
2. Perancangan perangkat lunak
Merancang fungsi kompresi citra dengan menggunakan algoritma
Huffman dan Shannon-Fano. Merancang fungsi dekompresi untuk
mengekstrak file citra terkompresi menjadi citra rekonstruksi. 3. Implementasi
Pembuatan perangkat lunak menggunakan program aplikasi Borland Delphi 7 berdasarkan perancangan perangkat lunak yang telah dibuat sebelumnya.
4. Pengujian dan Analisis
Bertujuan untuk mengecek apakah perangkat lunak yang dibuat sesuai dengan spesifikasi yang diinginkan. Pengujian dilakukan terhadap berbagai file citra digital dengan format bitmap (*.bmp) yang memiliki kedalaman kedalaman warna 24 bit serta berdimensi 150x150 pixel. Selain itu pengujian dilakukan dengan file citra yang memiliki jumlah simbol yang berbeda. Dari pengujian ini maka akan dianalisis rasio kompresi, waktu kompresi dan waktu dekompresi dari kedua algoritma dan tipe kompresi tersebut. Pengujian juga dilakukan pada kualitas citra rekonstruksi dengan citra asli dengan menggunakan PSNR (Peak Signal to Noise Ratio).
5. Penyusunan Laporan
Hasil penelitian akan disusun menjadi suatu laporan yang meliputi aspek-aspek dalam penelitian yaitu teori dan implementasinya.
Powered by TCPDF (www.tcpdf.org)
34
5.
Penutup
5.1
Kesimpulan
Berdasarkan analisa dan pengukuran yang telah dilakukan maka dapat diambil kesimpulan sebagai berikut:
1. Algoritma Huffman lebih unggul dibandingkan dengan algoritma Shannon-Fano dilihat dari hasil performansi rasio kompresi dan waktu dekompresi. 2. Tipe kompresi per plane lebih unggul dibandingkan tipe per pixel dilihat dari
hasil performansi rasio kompresi, waktu kompresi, dan waktu dekompresi. 3. Algoritma Huffman dan Shannon-Fano memiliki kelemahan akibat adanya
penambahan codebook pada file citra terkompresi. Codebook ini digunakan untuk proses pergantian deret kode biner menjadi sekumpulan simbol yang sesuai pada codebook saat proses dekompresi citra terkompresi.
4. Performansi rasio kompresi dipengaruhi oleh nilai entropi, semakin kecil nilai entropi maka rasio kompresi yang dihasilkan semakin besar. Performansi waktu kompresi dipengaruhi oleh jumlah simbol dan nilai entropi, semakin banyak jumlah simbol dan nilai entropi maka waktu kompresi citra akan semakin lama. Performansi waktu dekompresi citra dipengaruhi oleh panjang rata-rata kode (avg. length code) pada codebook dan jumlah simbol, semakin besar nilai panjang rata-rata kode dan jumlah simbol maka waktu dekompresi citra terkompresi akan semakin lama.
5. Aplikasi ini dapat memperkirakan nilai rasio kompresi yang dihasilkan tanpa melakukan proses kompresi dengan diketahui terlebih dahulu nilai entropi dan jumlah simbol. Sehingga user dapat menghindari proses kompresi yang akan menghasilkan citra terkompresi lebih besar dibandingkan dengan citra asli.
5.2
Saran
Penulis mempunyai beberapa saran agar penelitian ini bisa jauh lebih baik, yaitu: 1. Untuk penelitian lebih lanjut dapat digunakan algoritma pengembangan dari
Huffman, seperti Adaptive Huffman dan Length-Limited Huffman.
2. Pada saat pembentukan pohon Huffman dan Shannon-Fano gunakan algoritma pencarian pohon yang optimum.
Powered by TCPDF (www.tcpdf.org)
35
Referensi
[1] Sitepu, Herry, 2001, “Digital Multimedia”, 13 Januari 2007.
[2] www.en.wikipedia.com
[3] Alistair Moflat, Timothy C. Bell dan Ian H.Witten, 1995, “Lossless Compression for Text and Images”, Department of Computer Science, University of Melbourne, Australia.
[4] Eddy Muntina Dharma, ST, MT. 2005. “Pengolahan Citra Digital”. Diktat Kuliah Grafika dan Citra STT Telkom. Bandung. STT Telkom
[5] Guy E. Blelloch, 2001, “Introduction to Data Compression”, Carnegie Mellon University.
[6] Debra A. Lelewer dan Daniel S. Hirschberg, “Data Compression”,
www.ics.uci.edu/~dan/pubs/DC-Sec3.html#Sec_3.1, 13 Januari 2007.
[7] Idhawati Hestiningsih, “Pengolahan Citra”,
www.idhaclassroom.com/kategori/pengolahaan-citra, 28 Desember 2007.
[8] Pressman, Roger S. 2001. “Software Engineering, A Practitioner’s Approach”. McGraw-Hill Companies, Inc. New York.
[9] Marcus Geelnard, 2006, “Basic Compression Library”,
www.bcl.sourceforge.net/media/manual.pdf, 26 Januari 2007.
[10] Rahmad Fauzi, ST, MT. 2003, ”Analisis Beberapa Teknik Coding”, Jurusan Teknik Elektro, Universitas Sumatera Utara.
[11] Rachmat, Antonius, S.Kom dan Alphone Roswanto, S.Kom. 2005. “Kompresi Citra”. Fakultas Teknik Informatika, Universitas Kristen Duta Wacana.
[12] Nelson, Mark. 1997. “The Data Compression Book”. New York: M&T Books.
Powered by TCPDF (www.tcpdf.org)