Teknik Kompresi Citra Kompresi Citra

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