tetapi dapat ditolerir oleh persepsi mata. Misalnya pada gambar dan MP3. Kelebihan teknik ini adalah rasio kompresi yang tinggi dibanding metode lossless.
Ada beberapa pendekatan yang digunakan untuk kompresi citra: 1. Pendekatan statistik statistical compression
2. Pendekatan ruang spatial compression 3. Pendekatan kuantisasi quantizing compression
4. Pendekatan fraktal fractal compression 5. Pendekatan transformasi wavelet wavelet compression
Gambar 2.7 Metode kompresi berdasarkan hasilnya
Pada Tugas Akhir ini kompresi citra akan menggunakan pendekatan statistik dengan membandingkan kinerja dua algoritma kompresi yaitu algoritma kompresi
Shannon-Fano dan algoritma Huffman.
2.8 Algoritma Huffman
Pada tahun 1951, David A. Huffman dalam kelas Informasi Teori di MIT diberikan pilihan untuk membuat sebuah term paper atau mengikuti ujian akhir. Pada saat itu
pilihan term paper yang diberikan profesor Robert M. Fano adalah tentang menemukan kode biner yang paling efisien. Tidak dapat membuktikan kode apapun
yang paling efisien, Huffman hampir menyerah dan mulai belajar untuk mengikut i ujian akhir saja, ketika ia menemukan ide untuk menggunakan pohon biner dengan
pengurutan berdasarkan frekuensi kemunculan dan berhasil membuktikan bahwa cara
Universitas Sumatera Utara
ini adalah yang paling efisien. Apa yang dilakukan Huffman melampaui profesornya sendiri, yang bekerja sama dengan pencipta bidang teori informasi Claude Shannon
mengembangkan kode yang mirip. Huffman menghindari kesalahan besar dari kode Shannon-Fano yang kurang optimal dengan membangun pohon binernya dari bawah
ke atas dan bukan dari atas ke bawah. Makalah berjudul “A Method for the Construction of Minimum Redundancy Codes” tersebut lalu dipublikasikan oleh
Huffman pada tahun 1952 dalam sebuah jurnal profesional untuk Institute of Radio Engineers.
Algoritma Huffman adalah salah satu algoritma kompresi teks tertua yang disusun oleh David Huffman pada tahun 1952. Algoritma tersebut digunakan untuk
membuat kompresi jenis lossless compression, yaitu kompresi data dimana tidak satu byte pun hilang sehingga data tersebut utuh dan disimpan sesuai dengan aslinya.
Prinsip kerja algoritma Huffman adalah mengkodekan setiap karakter kedalam representasi bit. Representasi bit untuk setiap karakter berbeda satu sama lain
berdasarkan frekuensi kemunculan karakter. Semakin sering karakter tersebut muncul, maka semakin pendek panjang representasi bitnya. Sebaliknya bila semakin jarang
frekuensi suatu karakter untuk muncul, maka semakin panjang representasi bit untuk karakter tersebut.
Algoritma Huffman pada citra adalah sebagai berikut: 1.
Hitung frekuensi kemunculan masing-masing simbol pada citra. 2.
Urutkan frekuensi kemunculan simbol citra dari yang terkecil ke yang terbesar, masing-masing simbol dapat direpresentasikan sebagai sebuah node.
3. Gabungkan dua node yang mempunyai frekuensi kemunculan simbol terkecil,
kemudian jumlahkan kedua frekuensi kemunculan sehingga membentuk parent node.
4. Masukkan node parent ke dalam kumpulan node dan urutkan berdasarkan
frekuensi kemunculan simbol, dari yang terkecil ke yang terbesar. 5.
Hapus node dengan frekuensi kemunculan terkecil yang telah digabungkan dari kumpulan node.
6. Ulangi lagkah 1-5 sampai semua simbol habis dibangkitkan.
Universitas Sumatera Utara
7. Beri label pada setiap sisi pohon biner, sisi kiri dilabeli dengan 0 dan sisi kanan
dilabeli dengan 1. 8.
Telusuri pohon biner dari akar ke daun. Barisan label-label pada sisi pohon dari akar ke daun menyatakan kode Huffman untuk simbol yang bersesuaian.
Misalnya terdapat data citra digital dalam bentuk matriks seperti gambar dibawah ini:
255 0 50 255 25 25
25 50 50 180 180 180
50 50 120 255 255 25
120 120 50 255 255 50
255 255 180 25 255 255 255 255 180 25 255 255
Gambar 2.8 Potongan data citra digital
Langkah-langkah pembentukan pohon Huffman: 1.
Hitung frekuensi kemunculan masing-masing simbol pada citra.
Dari potongan data citra tersebut diperoleh tabel distribusi frekuensi sebagai berikut:
Tabel 2.2 Tabel distribusi frekuensi Huffman
Simbol Frekuensi
Total bit 120
3 3 x 1 byte = 3
50 6
6 x 1 byte = 6 180
6 6 x 1 byte = 6
25 7
7 x 1 byte = 7 255
14 14 x 1 byte = 14
Total 36 byte
2. Urutkan frekuensi kemunculan simbol dari yang terkecil ke yang terbesar, masing-
masing simbol dapat direpresentasikan sebagai sebuah node.
3 6
6 7
14
Universitas Sumatera Utara
3. Gabungkan dua node yang mempunyai frekuensi kemunculan simbol terkecil,
kemudian jumlahkan kedua frekuensi kemunculan sehingga membentuk parent node.
4. Masukkan node parent ke dalam kumpulan node dan urutkan berdasarkan
frekuensi kemunculan simbol, dari yang terkecil ke yang terbesar. 5.
Hapus node dengan frekuensi kemunculan terkecil yang telah digabungkan dari kumpulan node.
Langkah 4 dan 5 adalah sebagai berikut:
6. Ulangi lagkah 1-5 sampai semua simbol habis dibangkitkan.
13 9
3 14
6 6
7
7 14
9
3 6
6
7 9
3 14
6 6
Universitas Sumatera Utara
7. Beri label pada setiap sisi pohon biner, sisi kiri dilabeli dengan 0 dan sisi kanan
dilabeli dengan 1.
8. Telusuri pohon biner dari akar ke daun. Barisan label-label pada sisi pohon dari
akar ke daun menyatakan kode Huffman untuk simbol yang bersesuaian
14
13 9
3 6
6 7
22 36
255
25 180
50 120
1
1
1 1
13 9
3 14
6 6
7 22
Universitas Sumatera Utara
Maka dari pohon Huffman di atas diperoleh kode Huffman sebagai berikut:
Tabel 2.3 Codebook Huffman
simbol frekuensi
Kode 120
3 000
50 6
001 180
6 010
25 7
011 255
14 1
Dari tabel di atas dapat dilihat bahwa simbol yang sering muncul dikodekan dengan kode yang lebih pendek, demikian juga sebaliknya. Setelah itu dilakukan
substitusi dari simbol-simbol potongan citra digital pada Gambar 2.5 dengan kode Huffman yang terdapat pada Tabel 2.3, sehingga diperoleh data biner sebagai berikut:
101000110110110110010010100100100010010001 1011000000001110111101001111110111101001111
Gambar 2.9 Data biner hasil substitusi kode Huffman
Data biner hasil substitusi kode Huffman memiliki ukuran 85 bit setara 10,625 byte, sedangkan tanpa kompresi dibutuhkan 36 bytes, diperoleh dari total frekuensi
kemunculan simbol dikalikan dengan 1 byte. Sehingga Algoritma Huffman dapat mereduksi penggunaan memori sebanyak 25,375 bytes. Dengan rasio kompresinya
yaitu 100 – 10,62536 x 100 = 70,486 .
2.9 Algoritma Shannon-Fano