Hitung frekuensi kemunculan simbol pada citra, urutkan secara menaik
Pembentukan pohon Huffman dengan menggabung dua frekuensi terkecil
Pembentukan kode Huffman, sisi kiri =0 dan sisi kanan =1
Start Input file citra
Kode Huffman output file
Stop
Gambar 4.1 Flowchart Sistem Kompresi-Dekompresi Citra
4.1.1 Flowchart Algoritma Kompresi Huffman
Flowchart yang menggambarkan proses algoritma kompresi Huffman dapat dilihat dalam Gambar 4.2 berikut ini.
Gambar 4.2 Flowchart Algoritma Kompresi Huffman
Start Kompresi
Dekompresi Hitung performansi
Stop
Universitas Sumatera Utara
Pada Gambar 4.2 di atas merupakan flowchart algoritma kompresi pada algoritma Huffman. Algoritma Huffman yang digunakan pada aplikasi ini merupakan
Algoritma Huffman tipe statik, dimana dilakukan dua kali pembacaan two-pass terhadap citra yang akan dikompresi: pertama untuk menghitung frekuensi
kemunculan warna citra dalam pembentukan pohon Huffman dan yang kedua untuk mengkodekan simbol dalam bentuk kode Huffman.
File citra yang di input merupakan file citra RGB, dimana masing-masing pikselnya mengidentifikasikan simbol citra, maka dari itu masing-masing simbol
dihitung frekuensi kemunculannya dan dimasukkan dalam tabel kemunculan frekuensi secara menaik acsending order yaitu dari frekuensi terendah sampai frekuensi
tertinggi. Selanjutnya dari frekuensi simbol ini dibangun pohon Huffman dengan menggabungkan dua buah simbol yang memiliki frekuensi yang paling rendah, dan
frekuensi yang paling rendah diletakkan disebelah kiri. Demikian seterusnya sampai tersisa satu pohon biner.
Untuk pembentukan kode Huffman, pohon biner yang telah terbentuk diinisialisasi dengan angka 0 dan 1, dimana sisi yang berada disebelah kiri di
inisialisasi dengan angka 0 dan sisi yang berada di sebelah kanan di inisialisasi dengan angka 1. Selanjutnya telusuri pohon biner tersebut dari akar ke daun, tulis kode
Huffman yang terbentuk untuk masing-masing warna dan masukkan ke dalam tabel Huffman codebook Huffman.
Codebook berisi informasi antara lain: frekuensi kemunculan simbol-simbol pada citra, kode Huffman yang terbentuk, panjang kode Huffman, total panjang kode
untuk masing-masing simbol.
4.1.2 Flowchart Algoritma Dekompresi Huffman
Proses kompresi citra tidak bisa terlepas dari proses dekompresi, dimana citra yang telah terkompresi harus dapat direkonstruksikan kembali agar dapat ditampilkan pada
layar monitor. Pada algoritma Huffman citra yang dikompresi harus dapat
Universitas Sumatera Utara
Start Input kode Huffman
Cocokkan kode dengan tabel kode huffman untuk masing-masing simbol lookup table
Stop Semua kode sudah
ter inisialisasi?
Warna tiap-tiap pixel output
ya tidak
dikembalikan seperti citra aslinya tanpa kehilangan informasi. Proses Dekompresi Huffman membutuhkan tabel Huffman yang telah digunakan pada saat pengkodean
Huffman sebagai tabel referensi lookup table.
Flowchart yang menggambarkan proses algoritma dekompresi Huffman dapat dilihat dalam Gambar 4.3 berikut ini.
Gambar 4.3 Flowchart Algoritma Dekompresi Huffman
Seperti yang telah diutarakan di atas bahwa proses dekompresi citra pada metode Huffman membutuhkan tabel Huffman yang telah terbentuk saat proses
kompresi, proses dekompresi Huffman dilakukan dengan cara lookup table dimulai dengan pembacaan kode Huffman sebagai input, kemudian kode pertama yang
muncul dicocokkan dengan kode-kode Huffman yang telah ada pada tabel Huffman sampai ditemukan kode yang sesuai dengan simbol-simbol yang telah terinisialisasi
pada citra. Inisialisasi terus berlanjut sampai semua kode Huffman yang ada mewakili simbol yang terdapat pada tiap-tiap piksel citra digital.
Hasil dekompresi citra akan menghasilkan citra rekonstruksi yang persis sama seperti citra aslinya, dimana tidak ada satupun informasi yang hilang setelah dilakukan
kompresi dekompresi terhadapa citra digital.
Universitas Sumatera Utara
Hitung frekuensi kemunculan simbol pada tiap piksel citra, urutkan secara menurun
Pembentukan pohon biner dengan membagi dua bagian dengan frekuensi sama hampir sama
Pembentukan kode Shannon-Fano, sisi kiri =0 dan sisi kanan =1
Start
Input file citra
Kode Shannon-Fano output file
Stop
4.1.3 Flowchart Algoritma Kompresi Shannon-Fano