2. 1. Metode Shannon-Fano
Suatu metode yag dikenal pertama kali mampu melakukan pengkodean terhadap simbol secara
efektif adalah metode Shannon-Fano. Metode ini dikembangkan secara bersamaan oleh Claude
Shanon dari Bell Labs dan RM Fano dari MIT. Metode in tergantung pada probabilitas dari setiap
simbol yang hadir pada suatu data (pesan). Berdasarkan probabilitas tersebut kemudian dibentuk
daftar kode untuk setiap simbol dengan ketentuan sebagai berikut.
a. Setiap simbol berbeda memiliki kode berbeda.
b. Simbol dengan probabilitas kehadiran yang lebih rendah memiliki kode jumlah bit yang lebih
panjang dan simbol dengan probabilitas yang lebih tinggi memilik jumlah bit yang lebih pendek.
c. Meskipun memiliki panjang kode yang berbeda, smbol tetap dapat didekode secara unik.
3. Berikut adalah langkah-langkah algoritma Shannon-Fano :
a.Buatalah daftar peluang atau frekuensi kehadiran setiap symbol dari data (pesan) yang akan
dikodekan.
b. Urutkanlah daftar tersebut menurut frekuensi kehadiran symbol secara menurun (dari simbol yang
frekuensi kemunculannya paling banyak sampai simbol dengan frekuensi kemunculan paling sedikit.
c. Bagilah daftar tersebut menjadi dua bagian dengan pembagian didasari pada jumlah total frekuensi
suatu bagian (disebut bagian atas) sedekat mungkin dengan jumlah total frekuensi dengan bagian
yang lain (disebut dibagian bawah).
d. Daftar bagian atas dinyatakan dengan digit 0 dan bagian bawah dinyatakan dengan digit 1. Hal
tersebut berarti kode untuk simbol-simbol pada bagian atas akan dimulai dengan 0 dan kode untuk
simbol-simbol pada bagian bawah akan dimulai dengan 1.
e. Lakukanlah proses secara rekursif langkah 3 dan 4 pada bagian atas dan bawah. Bagilah menjadi
kelompok-kelompok dan tambahkan bit-bit pada kode sampai setiap symbol mempunyai kode yang
bersesuaian pada pohon tersebut.
4. Berikut contoh pengkodeaan Shannon-Fano, pesan yang akan dikodekan adalah :
BCEEDDBBAAAABEEEDDDCCCAAACCDAAAAABBAAA
Berikut daftar frekuensi kemunculan symbol pada pesan yang telah diurutkn secara menurun
berdasarkan frekuensi kemunculan.
Daftar diatas kemudian dibagi menjadi 2 didasari pada total frekuensi bagian atas sedekat
mungkin dengan total frekuensi bagian bawah. Pembagian tersebut menghasilkan simbol A dan B
menjadi bagian atas dengan total 22. Sedangkan C, D, dan E menjadi bagian bawah dengan total
17, sehingga simbol A dan B akan dimulai dengan kode 0, sedangkan C, D, dan E dimulai dengan
kode 1.
5. 2. Algoritma Huffman
Metode Huffman adalah metode pengkodean yang telah banyak diterapkan untuk
aplikasi kompresi citra. Seperti metode Shannon-Fano, metode Huffman juga
membentuk pohon atas dasar probabilitas setiap symbol, namun teknik pembentukan
pohonnya berbeda.
3. Algoritma Huffman Adaptif
Algoritma Huffman Adaptif dirancang khusus agar proses pengkodean dapat dilakukan
pada data realtime. Pada data realtime, frekuensi (probabilitas) setiap simbol tidak
dapat ditentukan sekali waktu. Probabilitas setiap simbol harus dihitung secara dinamis
(adaptif).
6. 4. Algoritma Zero Compression
Zero Compression merupakan salah satu teknik kompresi yang diterapkan pada sekumpulan data
sering terjadi perulangan data bernilai nol yang berurutan. Algoritma ini dapat digambarkan
sebagai berikut.
00000245200007891
Jika terhadap data tersebut dilakukan pengkodean dengan teknik Zero Compression maka di dapat
kode sebagai berikut.
052452047891
Yang berarti :
Nilai 0 diulang 5 kali, nilai berikutnya ialah 2, 4, 5, 2 tanpa dikompresi, nilai 0 diulang 4 kali, nilai
berikutnya ialah 7, 8, 9, 1 tanpa dikompresi. Agar teknik ini dapat diterapkan dengan efektif maka
sebelumnya perlu untuk mengetahui variasi nilai pada kumpulan data tersebut. Bila nilai nol yang
berurutan sering muncul.
7. 5. Kompresi Citra Menggunakan Metode RLE
RLE (Run Length Encoding) adalah kompresi yang umum digunakan untuk data grafis (citra).
Kompresi citra dengan menggunakan RLE didasarkan pada pengamatan bahwa suatu pixel dalam
suatu citra akan memiliki nilai akan cenderung sama dengan nilai pixel tetangganya. Bila suatu
citra biner dimulai dengan 20 pixel putih, kemudian diikuti dengan 3 pixel hitam kemudian diikuti
lagi dengan 65 pixel putih maka hanya nilai 20, 3, dan 65 yang akan menjadi output untuk
mewakili nilai dari masing-masing pixel inputnya.
6. Difference Coding
Prinsip kerja Difference coding adalah dengan mengurangi nilai pixel dengan nilai pixel
sebelumnya. Untuk pixel pada posisi (indeks) ke-0 tetap dipertahankan.
Sebagai contoh diberikan suatu citra 1 dimensi berikut.
40 40 40 40 40 43 43 100 102 102 102…
Hasil dari proses Difference coding adalah :
40 0 0 0 0 3 0 57 2 0 0 0
8. 7. Arithmetic Coding
Prinsip Arithmetic coding diperkenalkan pertama kali oleh Peter Elias sekitar tahun 1960-an.
Seperti halnya dengan metode Huffman, teknik Aritmatika juga membuat code word untuk setiap
simbol. Hanya saja, bia pada metode Huffman kode setiap symbol berupa suatu bilangan integer
unik. Pada metode aritmatika kode simbol berupa suatu interval bilangan pecahan.
8. LZW
Metode LZW diperkenalkan oleh Terry Welch pada tahun 1984. LZW merupakan singkatan dari
ketiga penemu dari metode tersebut, yaitu Abraham Lempel, Jacob Ziv, dan Terry Welch. Sebelum
metode LZW Lempel dan Ziv telah erlebih dulu memperkenalkan suatu metode pada tahun 1977
dan 1978, yang berturut-turut disebut metode LZ77dan LZ78. Kedua metode ini menjadi dasar
muncunya metode LZW.
9. Metode LZW telah digunakan pada sistem operasi UNIX dan LINUX, dan juga pada
aplikasi compress, uncompress, gzip, dang unzip. LZW menjadi teknik untuk kompresi
data dalam computer pengolah kata. Algoritma kompresi citra dalam format file GIF.
9. Kompresi Citra Berbasis Transformasi
Kompresi berbasis transformasi citra merupakan kompresi yang bersifat lossy. Bagian
ini menjelaskan model umum kompresi citra berbasis transformasi.
10. Proses citra berbasis transformasi terdiri dari :
- Proses Kompresi
Tahap pertama proses kompresi diawali dengan proses pembagian citra berukuran N x N menjadi
beberapa subimage berukuran n x n, sehinggaa diperoleh (N/n)2 larik subimage dengan masing-
masing berukuran n x n.
Tahap kedua adalah melakukan transformasi pada setiap subimage. Berbagai metode transformasi
citra dapat diterapkan di sini, seperti transformasi Fourier, Cosinus, Walsh, Hadamard dan lain
sebagainya. Hasil dari tahap ini tentu koefisien-koenfisien hasil proses transformasi.
Tahap ketiga adalah kuantisasi. Proses kuantisasi akan menghilangkan koefisien-koenfisien yang
mengandung informasi tidak signifikan. Koefisien-koenfisien ini tidak memiliki pengaruh yang
besar pada hasil citra rekonstruksi.
Tahap terakhir adalah proses pengkodean (coding). Berbagai metode coding dapat diterapkan di
sini, seperti Huffman, Shannon, RLE, dan lain sebagainya.
11. - Proses Dekompresi
Tahap pertama proses dekompresi adalah proses decoding terhadap citra terkompresi. Proses
decoding tergantung pada metode yang dipilih saat proses coding. Setelah decoding, dilanjutkan
dengan proses transformasi balik (invers transformation) untuk menghasilkan subimage. Tahap
terakhir kemudian menggabung seluruh subimage sehingga diperoleh citra hasil yang bersifat
lossy.
10. Kompresi Citra dengan Transformasi Wavelet
Kompresi berbasis gelombang singkat (Wavelet) didasari pada prinsip bahwa koefisien-koefisien
hasil proses transformasi wavelet yang melakukan dekorelasi pixel dan citra, dapat dikodekan
lebih efisien dibandingkan dengan citra aslinya. Informasi visual yang penting dapat dimampatkan
ke dalam sejumlaj kecil koefisien (koefisien aproksimasi) dan koefisien sisanya (koenfisien detil,
horizontal, dan vertical) dikuantisasi atau dijadikan 0, tanpa menyebabkan distorsi terlalu banyak
pada citra.
11. Kompresi dengan Metode Fraktal
Kompresi dengan metode fraktal dilakukan atas dasar self-similarity local pada citra.