Implementasi Algoritma Kompresi Shannon
– Fano pada Citra Digital
Muhammad Khoiruddin Harahap
Politeknik Ganesha Medan choir.harahap@yahoo.com
Abstrak
Algoritma kompresi Shannon-Fano merupakan salah satu algoritma kompresi yang terkenal dan berguna dalam menghemat ruang penyimpanan data. Algoritma kompresi Shannon-Fano mendeteksi berapa kali kemunculan karakter pada setiap percobaanya, kemudian dilakukan pengkodean terhadap frekuensi kemunculan karakter dalam bilangan biner (binary code). Algorimat kompresi Shannon-Fano dapat dilakukan pada teks dan juga pada citra digital. Pada penelitian kali ini, penulis menerapkan metode Shanon-Fano pada citra digital. Citra digital diubah kedalam bilangan decimal yang berkisar antara 0-255, kemudian nilai setiap
pixel citra yang sama mulai diseleksi dan dihitung berapa kali frekuensi kemunculan setiap nilai pixel yang sama dalam sebuah citra. Dari total frekuensi kemunculan setiap pixel citra, maka dilakukanlah pembagian nilai frekuensi menjadi dua bagian agar seimbang bagian pertama dan kedua, dan bagian pertama diberi nilai biner 0, sedangkan bagian kedua diberi nilai 1, dan hal ini terus berlangsung sampai tidak ada lagi bagian frekuensi yang tidak seimbang nilainya. Dari sini diperolehlah berapa bit (binary digit) hasil kompresi yang terbentuk, sehingga rasio kompresi bisa dihitung dari nilai total frekuensi dikali dengan bit dari binary code
yang terbentuk , dan dibagi total frekuensi sebelum kompresi. Pada percobaan kompresi terhadap sebuah citra 3x3 diperolehlah rasio kompresi sebesar 22%.
Kata Kunci — Kompresi, Shanon-Fano, Citra
I. PENDAHULUAN
Kompresi atau pemampatan data digunakan untuk memperkecil ukuran dari sebuah berkas atau file. Pemampatan data berguna untuk menghemat ruang penyimpanan data. Beberapa hal yang bermanfaat dalam kompresi antara lain :
a) File berukuran besar seperti Citra yang merupakan RAW data biasanya berukuran besar seperti file .BMP
c) Pemampatan data citra mampu menghemat bandwith dan tentunya akan mempermudah proses transmisi data
d) Pengiriman data menjadi lebih cepat seiring dengan ukuran data yang bertambah kecil. Metode yang dibahas pada paper ini adalah pemampatan data dengan menggunakan metode Shannon – Fano. Yaitu dua orang ilmuwan Claude Elwood Shannon (Bells Lab) dan Robert Fano (MIT) pada tahun 1949. Metode Shannon – Fano ini melakukan pengkodean terhadap frekwensi kemunculan karakter dalam kode binary.
II. LANDASAN TEORI a) Citra
Citra merupakan representasi dari sebuah objek. Citra merupakan keluaran data dengan sifat analog, sinyal video seperti yang ditampilkan oleh Televisi atau monitor komputer, LCD, Camera dan lain – lainnya. Hasil keluaran tersebut disimpan dalam media penyimpanan seperti hardisk atau pita magnetic [6].
b) Citra Gambar
Citra berupa gambar direpresentasi dengan warna dengan berbagai dimensi. Ada yang berupa dua dimensi ataupun 3 dimensi. Representasi warna memiliki profile yang beragam antara lain :
1. Profil warna RGB (Red, Green, Blue) direpresentasikan dengan 3 warna Merah, Hijau dan Biru dengan rentang warna dari 0 – 255. Warna RGB biasa digunakan untuk tampilan layar monitor, LCD, camera, handphone dan lain – lain
Gambar 1. Profil warna RGB Sumber : www.processing.org
2. Profil warna Grayscale. Grayscale atau disebut juga dengan Derajat Keabuan memiliki rentang warna dari 0 – 255 dengan tingkat warna kehitaman.
3. Profil warna CMYK memiliki kombinasi warna Cyan, Magenta, Yellow dan Black dengan rentang warna dari 0 – 100.
4. Profil warna yang lainnya masih banyak seperti YcBcr, HSV (Hue - Saturation – Value) atau disebut juga dengan HSL (Hue, Saturation, Lumination) dan lain sebagainya [3].
Gambar 2. Profil warna HSV Sumber : www.processing.org
Sebuah Citra gambar ditampilkan dalam bentuk matrik dua dimensi dapat dilihat pada ilustrasi citra 3 x 3 berikut ini :
Width
Gambar 3. Ilustrasi Citra
Berdasarkan gambar di atas, P adalah sebuah piksel dengan atribut koordinat x,y dan warna sesuai dengan Profil warna yang digunakan sesuai penjelasan sebelumnya.
c) Algoritma Shannon - Fano
1. Membuat daftar karakter / simbol dari semua karakter atau simbol yang akan dilakukan kompresi.
2. Mengurutkan simbol tersebut berdasarkan frekwensi kemunculan. Karakter yang memiliki frekwensi kemunculan yang tinggi saling mendekati satu sama lain.
4. Membuat Tree dengan kondisi bagian sebelah kiri dengan angka binary 0 dan sebelah kanan dengan angka binary 1
5. Mengulangi bagian 3 dan 4 secara rekursif sehingga semua mencapai posisi Leaf dalam diagram tersebut [2].
Untuk lebih mudah dalam memahami algoritma tersebut di atas, dapat dilihat pada contoh berikut ini.
Text : SEMINAR NASIONAL TEKNOLOGI INFORMATIKA
Simbol yang muncul pada text tersebut adalah : SEMINAR [spasi] OLTEKGF
1. Menentukan frekwensi kemunculan dari karakter tersebut di atas
SIMBOL FREKWENSI Gambar 4. Tabel Frekwensi simbol
2. Membagi dua dengan total frekwensi kemunculannya yang mendekati antara kiri dan kanan. Untuk contoh berikut ini dibedakan
Gambar 5. Membagi kode binari
3. Proses dilakukan secara rekursif sampai semua bagian habis menjadi daun.
S F C
S 2 0 0
E 2 0 0
I 5 0 0
Gambar 6. Membagi kode binary
S F C
Gambar 7. rekursif proses membagi kode binary
S F C
Gambar 8. rekursif proses membagi kode binary
S F C
Gambar 9. rekursif proses membagi kode binary
S F C
S 2 0 0 0 0 0
E 2 0 0 0 0 1
I 5 0 0 1 1
Gambar 10. rekursif proses membagi kode binary
S F BINARY
Gambar 11. rekursif proses membagi kode binary
S F BINARY bit
Gambar 12. menentukan jumlah bit
S F BINARY bit F x bit
Gambar 13. perkalian frekwensi dengan bit
Total Frekwensi = 38 Total F x bit = 153
III. PEMBAHASAN SHANNON – FANO TERHADAPCITRA
Implementasi Shannon – Fano pada citra dapat dilakukan dengan cara mengambil nilai – nilai semua piksel dan membentuk simbol – simbol. Pengambilan simbol secara sequential dilakukan tehadap semua nilai – nilai warna yang terdapat pada piksel. Berikut ini contoh implementasi pada citra Grayscale ukuran resolusi 3 x 3 dpi [5].
10 11 10 11 18 10 10 11 18
Gambar 3.1. Contoh pixel 3 x 3 mode grayscale
Berikut ini langkah penyelesaian dalam pengolahan citra [4] :
Membentuk tabel dengan menghitung frekwensinya dari simbol dan nilai frekwensi kemunculannya.
SIMBOL FREKWENSI
10 4
11 3
18 2
Gambar 3.2. Jumlah Frekwensi kemunculan
Langkah 3 :
menguraikan frekwensi kemunculan dalam binari code
SIMBOL FREKWENSI CODE
10 4 0
11 3 0
18 2 1
Gambar 3.3. Membagi dan memberikan kode binari
Langkah 4 :
Melakukan proses rekursif langkah 3
S F CODE
10 4 0 0
11 3 0 1
18 2 1
Gambar : 3.4. Rekursif proses sebelumnya
Langkah 5 :
Gambar 3.5. Menghitung jumlah bit
Langkah 6 :
S F Kode binari Bit F x B
10 4 0 0 2 8
11 3 0 1 2 6
18 2 1 1 2
Gambar 3.6. Perkalian Frekwensi dengan bit
S F Kode binari Bit F x B
10 4 0 0 2 8
11 3 0 1 2 6
18 2 1 1 2
Total F x B 16
Gambar 3.7. Total Perkalian Frekwensi dengan bit
Berdasarkan hitungan di atas, maka dapat ditentukan
Total Frekwensi (jumlah byte sebelum kompresi) : 9 Byte Total F x B : 16 Bit
Rasio = (100% – 16 / 9 x 100%) = 22%
IV. KESIMPULAN DAN SARAN A. Kesimpulan
Algoritma Shannon-Fano dapat digunakan pada teks dan citra digital yang berguna untuk memampatkan ukuran file teks maupun citra digital agar menghemat memori penyimpanan,
B. Saran
Pada penelitian selanjutnya, bisa dilakukan perbandingan rasio kompresi antara Shannon-Fano
dan Huffman Code sehingga dapat dilihat algoritma kompresi mana yang lebih akurat dalam melakukan pemampatan file teks maupun citra.
DAFTAR PUSTAKA
[1] Sutardi, “Implementasi dan Analisis Kinerja Algoritma Shannon-Fano untuk Kompresi File Text“, Dinamika, Jurnal Ilmiah Teknik Mesin, 2014
[2] Christine Lamorahan, Benny Pinontoan, Nelson Nainggolan, “Data Compression Using Shannon-Fano Algorithm” jDC, 2014
[3] Muhammad Khoiruddin H, “Analisa Human Skin Detection Menggunakan HSV, Salt and Pepper Noise Reduction”, USU, 2016
[4] Rismawati, Satria Gunawan Zain“Implementasi Kompresi Citra Menggunakan Algoritma Shannon-Fano”, Prosiding Nasional ISBN : 978-602-9075-25-7
[5] Maria Roslin Apriani Neta, “Perbandingan Algoritma Kompresi Terhadap Objek Citra Menggunakan JAVA ”, SEMANTIK 2013, 2013 [6] Kadir, Abdul. “Teori Pengolahan Citra”,