Implementasi Algoritma Kompresi Shannon – Fano pada Citra Digital
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 ENDAHULUAN
a) File berukuran besar seperti Citra yang
I. P
Kompresi atau pemampatan data digunakan merupakan RAW data biasanya berukuran untuk memperkecil ukuran dari sebuah berkas atau besar seperti file .BMP file. Pemampatan data berguna untuk menghemat
b) Dengan berkurangnya ukuran citra di atas maka ruang penyimpanan data. Beberapa hal yang secara otomatis akan menghemat ruang bermanfaat dalam kompresi antara lain : penyimpanan data 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.
[3].
c) Algoritma Shannon - Fano Pada Tahun 1949, Claude Elwood Shannon dan Robert Fano memperkenalkan teknik kompresi dengan mempertukarkan karakter dengan bilangan binary berdasarkan jumlah frekwensi kemunculan karakter tersebut. Algoritmanya dapat kita lihat sebagai berikut :
Berdasarkan gambar di atas, P adalah sebuah piksel dengan atribut koordinat x,y dan warna sesuai dengan Profil warna yang digunakan sesuai penjelasan sebelumnya.
Gambar 3. Ilustrasi Citra
Height
Width P P P P P P P P P P P P P P P P
Sebuah Citra gambar ditampilkan dalam bentuk matrik dua dimensi dapat dilihat pada ilustrasi citra 3 x 3 berikut ini :
Gambar 2. Profil warna HSV Sumber :
Value) atau disebut juga dengan HSL (Hue, Saturation, Lumination) dan lain sebagainya
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.
4. Profil warna yang lainnya masih banyak seperti YcBcr, HSV (Hue - Saturation –
3. Profil warna CMYK memiliki kombinasi warna Cyan, Magenta, Yellow dan Black dengan rentang warna dari 0 – 100.
II. L ANDASAN T EORI
2. Profil warna Grayscale. Grayscale atau disebut juga dengan Derajat Keabuan memiliki rentang warna dari 0 – 255 dengan tingkat warna kehitaman.
Gambar 1. Profil warna RGB Sumber :
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
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 :
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].
a) Citra Citra merupakan representasi dari sebuah objek.
1. Membuat daftar karakter / simbol dari semua karakter atau simbol yang akan dilakukan kompresi.
1 T
5 N
5 A
5 R
2
1 SPACE
3
1 O
4
1 L
2
2
2 M
1 K
2
1 G
1
1 F
1
1 Gambar 5. Membagi kode binari
3. Proses dilakukan secara rekursif sampai semua bagian habis menjadi daun.
S F C S
2 E
2 M
2 I
2 E
2. Mengurutkan simbol tersebut berdasarkan frekwensi kemunculan. Karakter yang memiliki frekwensi kemunculan yang tinggi ditempatkan di sebelah kiri dan yang frekwensi kemunculannya rendah ditempatkan pada posisi sebelah kanan.
5 A
3. Membagi daftar menjadi dua bagian dengan total frekwensi bagian kiri dan kanan yang 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 S
2 E
2 M
2 I
5 N
5 R
S F CODE S
2 SPACE
3 O
4 L
2 T
2 K
2 G
1 F
1 Total
Frekwensi
38 Gambar 4. Tabel Frekwensi simbol
2. Membagi dua dengan total frekwensi kemunculannya yang mendekati antara kiri dan kanan. Untuk contoh berikut ini dibedakan dengan atas dan bawah. Sebagai Pembeda antara kiri dan kanan, berikut ini contoh dilakukan dengan memberikan warna yang berbeda seperti berikut ini.
2 I
5 I
5
1
1 N
5
1 N
5
1 A
5
1 A
5
1
1 R
2
1 R
2
1 Space
3
1 Space
3
1 O
4
1 O
4
1
1
1 L
2
1
1 L
2
1
1 T
2
1
1 T
2
1
1 K
2
1
1 K
2
1
1
1
1 G
1
1
1 G
1
1
1
1
1 F
1
1
1 F
1
1
1
1
1 Gambar 6. Membagi kode binary
Gambar 8. rekursif proses membagi kode binary
S F C S F C S
2 S
2 E
2 E
2
1 M
2 M
2
1 I
5
1 I
5
1
1 N
5
1 N
5
1 A
5
1
1 A
5
1
1 R
2
1 R
2
1 Space
3
1 Space
3
1
1 O
4
1
1 O
4
1
1
1 L
2
1
1 L
2
1
1 T
2
1
1 T
2
1
1
1 K
2
1
1
1 K
2
1
1
1
1 G
1
1
1
1 G
1
1
1
1
1
1 F
1
1
1
1 F
1
1
1
1
1
1 Gambar 7. rekursif proses membagi kode binary Gambar 9. rekursif proses membagi kode binary S F C S F C S
2 S
2 E
2 E
2
1 M
2
1 M
2
1 I
5
2
1
1
1
5 Gambar 12. menentukan jumlah bit S F BINARY bit F x bit S
2
5
10 E
2
1
5
10 M
1
1
4
8 I
5
1
1
4
20 N
5
1
3
15 A
1
1
1
5 K
1
1
3 L
2
1
1
5 T
2
1
1
1
2
1
1
1
1
1
4 G
1
1
1
1
1
1
5 F
5
1
4
5
1
1
1
4
8 G
1
1
1
1
1
1
5 F
2
1
1
1
1
1
1
1
5
5 Total F x bit 153
Gambar 13. perkalian frekwensi dengan bit
Total Frekwensi = 38 Total F x bit = 153 Ratio Kompresi = (100% - 38/153 x 100)
1
10 K
3
1
15 R
2
1
5
10 Sp
3
1
1
5
15 O
4
1
5
1
3
12 L
2
1
1
5
10 T
2
1
1
1
1
5 O
1
2
1
1
1
1 F
1
1
1
1
1
1 Gambar 10. rekursif proses membagi kode binary S F BINARY S
2 E
1 M
1
2
1 I
5
1
1 N
5
1 A
5
1
1 R
2
1
1 G
3
4
1 N
5
1 A
5
1
1 R
2
1 Space
3
1
1 O
1
1
1
1 L
2
1
1 T
2
1
1
1 K
2
1
1
1 Spc
1
1
4 N
2
5 E
2
1
5 M
2
1
4 I
5
1
1
5
1
1
3 A
5
1
1
3 R
2
1
5 Spc
3
1
1 Gambar 11. rekursif proses membagi kode binary S F BINARY bit S
1
1 O
2
4
1
1
1 L
2
1
1 T
2
1
1
1 K
1
1
1
1
1 G
1
1
1
1
1
1 F
1
1
1
= 75% [1]
EMBAHASAN HANNON ANO
III. P S – F
10
4 TERHADAP CITRA
11
3
1 Implementasi Shannon – Fano pada citra dapat dilakukan dengan cara mengambil nilai – nilai
18
2
1 semua piksel dan membentuk simbol – simbol.
Gambar : 3.4. Rekursif proses sebelumnya
Pengambilan simbol secara sequential dilakukan Langkah 5 : tehadap semua nilai – nilai warna yang terdapat Melakukan menghitung nilai desimal dari code pada piksel. Berikut ini contoh implementasi pada binari. citra Grayscale ukuran resolusi 3 x 3 dpi [5].
S F C Bit
10
11
10
10
4
2
11
18
10
11
3
1
2
10
11
18 Gambar 3.1. Contoh pixel 3 x 3 mode grayscale
18
2
1
1 Gambar 3.5. Menghitung jumlah bit Berikut ini langkah penyelesaian dalam pengolahan citra [4] : Langkah 1 :
Langkah 6 : mengumpulkan simbol menjadi deretan angka sebagai berikut :
S F Kode binari Bit F x B 10 11 10 11 18 10 10 11 18
10
4
2
8 langkah 2 :
11
3
1
2
6 Membentuk tabel dengan menghitung frekwensinya dari simbol dan nilai frekwensi kemunculannya.
18
2
1
1
2 Gambar 3.6. Perkalian Frekwensi dengan bit SIMBOL FREKWENSI
10
4 S F Kode binari Bit F x B
11
3
10
4
2
8
18
2 Gambar 3.2. Jumlah Frekwensi kemunculan
11
3
1
2
6 Langkah 3 :
18
2
1
1
2 menguraikan frekwensi kemunculan dalam binari Total F x B
16 code
Gambar 3.7. Total Perkalian Frekwensi dengan bitSIMBOL FREKWENSI CODE Berdasarkan hitungan di atas, maka dapat ditentukan
10
4
jumlah byte sebelum kompresi
Total Frekwensi ( ) : 9 Byte
11
3 Total F x B : 16 Bit
18
2
1 Rasio = (100% – 16 / 9 x 100%)
Gambar 3.3. Membagi dan memberikan kode binariLangkah 4 : = 22%
Melakukan proses rekursif langkah 3 Berdasarkan hitungan di atas, maka ratio kompresinya sebesar 22%
CODE
S F
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”, Yogyakarta : 2012.