19
Gambar 2.9 Ilustrasi Kompresi Lossy
Ada beberapa parameter yang digunakan untuk menilai kehandalan suatu kompresi. Diantara masing-masing parameter tersebut terdapat hubungan yang erat
dan saling mempengaruhi. 1.
Faktor kompresi Faktor kompresi adalah perbandingan jumlah data yang belum dikompresi
terhadap jumlah data hasil kompresi. Semakin bagus suatu kompresi maka faktor kompresinya semakin tinggi. Akan tetapi faktor kompresi yang tinggi akan
mengakibatkan kualitas yang menurun. Faktor penting kompresi data, terdapat empat faktor penting yang perlu diperhatikan, yaitu: Time Process waktu yang
dibutuhkan dalam menjalankan proses, Completeness kelengkapan data setelah file-file tersebut dikompres, Ratio Compress ukuran data setelah dilakukan
kompresi, Optimaly perbandingan apakah ukuran file sebelum dikompres sama atau tidak sama dengan file yang telah dikompres. Tidak ada metode kompresi
yang paling efektif untuk semua jenis file. 2.
Kualitas Suatu teknik kompresi dikatakan baik apabila kualitas data hasil decoding
sangatlah mirip bila dibandingkan dengan aslinya. Faktor kualitas ini sangat erat dengan faktor kompresi.
5.26 000110001010110
000110001010110 3.26
Algoritma Coding
Algoritma Decoding
20
3. Kompleksitas
Kompleksitas dari suatu teknik kompresi menentukan sulit atau tidaknya implementasi teknik kompresi tersebut.
4. Interaktif
Pengguna dapat bebas untuk berinteraksi dengan informasi multimedia untuk mengubah, mencari informasi yang diinginkan atau membuang informasi yang
tidak diinginkan.
2.4.2 Algoritma Arithmetic Coding
Prinsip Arithmetic Coding diperkenalkan pertama kali oleh Peter Elias sekitar tahun 1960-an. Algoritma ini melakukan proses pengkodean dengan menggantikan setiap
simbol masukan dengan suatu codeword Pu, 2006. Arithmetic Coding memiliki kelebihan terutama ketika memproses kumpulan abjad yang relatif sedikit. Awalnya
Arithmetic Coding diperkenalkan oleh Shannon, Fano dan Elias. Tujuannya memberikan ide alternatif yang pada saat itu setiap proses pengkodean dilakukan
dengan menggantikan setiap simbol masukan digantikan dengan sebuah angka single floating point. Sehingga semakin panjang dan kompleks pesan yang dikodekan maka
semakin banyak bit yang diperlukan untuk keperluan tersebut. Sejak tahun 1960-an hingga sekarang Algoritma Arithmetic Coding mulai berkembang para peneliti mulai
mengembangkan Algoritma Arithmetic Coding untuk melakukan kompresi pada multimedia yaitu: citra, audio, video dll.
Pada umumnya, algoritma kompresi data didasarkan pada pemilihan cara melakukan penggantian satu atau lebih elemen-elemen yang sama dengan kode
tertentu. Berbeda dengan cara tersebut, Arithmetic Coding menggantikan sautu deret simbol input dalam suatu file data dengan sebuah bilangan menggunakan proses
aritmatika. Semakin panjang dan semakin kompleks pesan dikodekan, semakin banyak bit yang diperlukan untuk proses kompresi dan dekompresi data.
21 Output
dari Arithmetic Coding ini adalah satu angka yang lebih kecil dari 1
dan lebih besar atau sama dengan 0. Angka ini secara unik dapat didekompresikan sehingga menghasilkan deretan simbol yang dipakai untuk menghasilkan angka
tersebut. Implementasi
Arithmetic Coding harus memperhatikan kemampuan encoder dan decoder. Hal ini dapat menyebabkan kesalahan atau error apabila suatu
Arithmetic Coding mempunyai kode dengan floating point yang sangat panjang. Sehingga diberikan solusi berupa modifikai algoritma Arithmetic Coding dengan
menggunakan bilangan integer. Modifikasi ini mampu mengatasi keterbatasan pengolahan floating point dalam melakukan kompresi dan dekompresi data.
Modifikasi dengan bilangan integer juga dipakai karena jumlah bit kodenya lebih sedikit dan mempercepat proses kompresi dan dekompresi data karena perhitungan
integer jauh lebih cepat dari perhitungan floating point serta dapat diimplementasikan dalam program.
Berikut ini
algoritma encoding dan decoding pada Arithmetic Coding. Akan
digunakan dua variabel low dan high untuk mendefinisikan interval low, high. Pu, 2006
Proses encoding, algoritma Arithmetic Coding:
Langkah 1: Set low = 0.0 kondisi awal Langkah 2: Set high = 1.0 kondisi awal
Langkah 3: While simbol input masih ada do Langkah 4: Ambil simbol input
Langkah 5: Code-Range = high – low Langkah 6: High = low + Code-Rangehigh_range simbol
Langkah 7: Low = low + Code-Rangelow_range simbol Langkah 8: End While
Langkah 9: Output Low
Proses decoding, algoritma Arithmetic Coding:
Langkah 1: Ambil Encoded-Symbol ES Langkah 2: Do
Langkah 3: Cari range dari simbol yang melingkupi Encoded-SymboES Langkah 4: Cetak simbol
Langkah 5: Code-Range = high_range – low_range Langkah 6: Encoded-Symbol = Encoded-Symbol – low_range
Langkah 7: Encoded-Symbol = Encoded-Symbol Code-Range Langkah 8: Until simbol habis
22
2.4.3 Algoritma Shannon-Fano
Algoritma Shannon-Fano merupakan algoritma pertama yang diperkenalkan untuk kompresi sinyal digital pada bukunya yang berjudul “A Mathematical Theory of
Communication”. Algoritma ini dikembangkan secara mandiri oleh Claude Shannon dan Robert Fano dalam dua publikasi terpisah pada tahun yang sama yaitu pada tahun
1949. Algoritma Shannon-Fano adalah salah satu banyak yang dikembangkan oleh Claude Shannon dianggap sebagai “Father of Information Theory” yaitu membuat
kemajuan dalam kaitannya dengan transfer data dan komunikasi pada umumnya. Pada tahun 1976 Robert Fano menerima Claude Shannon Award untuk karyanya dalam
Information Theory. Hingga sekarang para peneliti mulai mengembangkan Algoritma Shannon-Fano untuk melakukan kompresi pada multimedia yaitu: citra, audio, video
dll. Algoritma
Shannon-Fano didasarkan pada variable-length code yang berarti karakter pada data yang akan dikodekan direpresentasikan dengan kode codeword
yang lebih pendek dari karakter yang ada pada data. Jika frekuensi kemunculan karakter semakin tinggi, maka kode semakin pendek, dengan demikian kode yang
dihasilkan tidak sama panjang, sehingga kode tersebut bersifat unik. Berikut langkah- langkah kompresi dan dekompresi pada algoritma Shannon-Fano. Pu, 2006
Langkah-langkah kompresi menggunakan algoritma Shannon-Fano. 1.
Buatlah daftar peluang atau frekuensi kehadiran setiap simbol dari data yang akan dikodekan.
2. Urutkanlah daftar tersebut menurut frekuensi kehadiran simbol secara
menurun dari simbol yang frekuensi kemunculan paling banyak sampai simbol dengan frekuensi kemunculan paling sedikit.
3. 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
bagian bawah. 4.
Daftar bagian atas dinyatakan dengan digit 0 dan bagian bawah dinyatakan dengan digit 1. Hal tersebut berarti kode untuk simbol-simbol pada bagian