Beruflich Dokumente
Kultur Dokumente
Pertemuan Ke-12
2015-2016
Statistical Compression
Algoritma kompresi yang menggunakan statistik huruf
dalam input stream
Kode yang dipakai pada fase kompresi berhubungan
dengan probabilitas kemunculan huruf dalam data input
Ada 2 variasi :
1. Tak Adaptif
2. Adaptif
Algoritma Shannon-Fano
Shannon-Fano coding ditemukan oleh Claude Shannon
dan Robert Fano tahun 1949.
Metode Shannon-Fano menggantikan setiap simbol
dengan sebuah alternatif kode biner yang panjangnya
ditentukan probabilitas dari simbol tersebut.
Algoritma Shannon-Fano
Algoritma Shannon-Fano (tak adaptif)
Algoritma ini menggunakan metode statistika untuk
menentukan jumlah probabilitas huruf dengan
mengurutkannya pada suatu tabel (Huruf yang
probabilitasnya tertinggi di letakkan paling atas)
Lakukan pembagian terhadap tabel atas dua kelompok
dengan probabilitas yang sama atau saling mendekati
Kelompok pertama diberikan kode 0 dan kelompok kedua
1
Ulangi langkah 2 dan 3 sampai tidak ada lagi kemungkinan
untuk membagi kelompok-kelompok tersebut dalam 2 sub
kelompok lagi
Algoritma Shannon-Fano
Misalnya:
Algoritma Shannon-Fano
Huruf
Count
Probabilitas
3/23
2/23
2/23
1/23
1/23
1/23
4/23
3/23
1/23
1/23
1/23
_ (space)
3/23
Algoritma Shannon-Fano
Huruf
Count
_ (space)
Algoritma Shannon-Fano
Kemudian Tabel dibagi 2 sehingga selisih dari jumlah
bobot masing-masing bagian harus minimal
Jumlah bobot dari bagian atas dari tabel harus lebih kecil
Sehingga tabel menjadi seperti di slide berikut
Algoritma Shannon-Fano
Huruf
Count
_ (space)
Bobot=10
Bobot=13
Algoritma Shannon-Fano
Huruf
Count
0...
0...
0...
Count
00
01...
01...
Algoritma Shannon-Fano
Pada tahap ini, tabel atas tidak bisa lagi dipecah (huruf N)
Tabel yang sebelah bawah, juga diperlakukan sama (Huruf
A dan O) sehingga kode menjadi:
Huruf
Count
00
010
011
Algoritma Shannon-Fano
Proses ini berlangsung terus untuk semua huruf yang ada
di dalam tabel.
Hasil akhir dari proses ini dapat dilihat pada tabel berikut.
Algoritma Shannon-Fano
Huruf
Count
Codeword
Count*Codeword
0 0
4*2=8
0 1 0
3*3=9
0 1 1
3*3=9
_ (space)
1 0 0
3*3=9
1 0 1
2*3=6
1 1 0 0
2*4=8
1 1 0 1 0
1*5=5
1 1 0 1 1
1*5=5
1 1 1 0 0
1*5=5
1 1 1 0 1
1*5=5
1 1 1 1 0
1*5=5
1 1 1 1 1
1*5=5
Jumlah Bit
23*8=184 bit
79 bit
Algoritma Shannon-Fano
Sehingga runtun bit yang dikirimkan adalah seperti berikut:
101111110101110011101110111011000111100
E X A M P L E _O F
1001111011010010000001100100110001000011
_ S H A N N ON _ F A N O
Algoritma Shannon-Fano
Jumlah bit sebelum kompresi = 184 bit
Jumlah bit setelah kompresi = 79 bit
Dari urutan bit ini, komputer akan membaca bit yang terdepan
(paling kiri) hingga yang terbelakang (paling kanan). Selain
membaca bit, komputer juga akan membandingkan dengan
tabel kode yang juga dikirimkan bersama data. Apabila dalam
pembacaan urutan bit lalu dibandingkan dengan tabelnya ada
kecocokan,
maka
komputer
akan
langsung
menerjemahkannya ke dalam simbol aslinya. Inilah yang
disebut unique prefix
Prose Pembacaan
Contoh: gadjahmada
101010011100110111101000
Iterasi 1 Komputer membaca bit 1
Komputer mencari di tabel apakah simbol untuk kode 1,
ternyata tidak ada
Iterasi 2 Komputer membaca bit 1 0
Komputer mencari di tabel apakah simbol untuk kode 1 0,
ternyata tidak ada
Iterasi 3 Komputer membaca bit 1 0 1
Komputer mencari di tabel apakah simbol untuk kode 1 0 1,
ternyata simbol G
dan seterusnya sampai semua kode berhasil diterjemahkan ke
simbolnya masing-masing.
TERIMA KASIH
Tugas
Kodekan dengan Algoritma Shannon-Fano untuk teks: