BAB 3 ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Kinerja Algoritma Arithmetic Coding
Penelitian ini akan dilakukan analisis dan perancangan perangkat lunak pengkompresian citra yang berkeskstensi .bmp dengan menggunakan algoritma
Arithmetic Coding. Proses kompresi citra didasarkan pada kenyataan bahwa pada
semua citra selalu terdapat pengulangan pada komponen citra yang dimilikinya, misalnya di dalam suatu data citra akan terdapat pengulangan penggunaan intensitas
warna dari angka 0 – 255 sesuai warna di tiap piksel. Kompresi citra melalui proses encoding
berusaha untuk menghilangkan unsur pengulangan ini dengan mengubahnya sehingga ukuran citra menjadi kecil.
Proses pengurangan unsur pengulangan ini dapat dilakukan dengan memakai beberapa teknik kompresi. Misalnya jika suatu komponen muncul berulang kali dalam
suatu data, maka komponen tersebut tidak harus dikodekan berulang kali pula tetapi dapat dikodekan dengan menulis frekuensi munculnya komponen dan di mana
komponen tersebut muncul. Teknik kompresi data lainnya, berusaha untuk mencari suatu bentuk kode yang lebih pendek untuk suatu komponen yang sering muncul.
Dalam proses kompresi, terdapat konsep probabilitas yang menunjukkan suatu ukuran berapa banyak informasi yang terdapat dalam suatu rangkaian citra atau yang disebut
entropy yang dapat direpresentasikan secara matematis.
Pada kinerja algoritma Arithmetic Coding yang sudah dijelaskan pada bab 2, bahwa Arithmetic Coding menggantikan suatu deret simbol input dalam suatu file data
dengan sebuah bilangan menggunakan proses aritmatika. Semakin panjang dan semakin kompleks pesan yang dikodekan, semakin banyak bit yang diperlukan untuk
proses kompresi dan dekompresi data. Output dari Arithmetic Coding ini adalah satu angka yang lebih kecil dari 1 dan lebih besar atau sama dengan 0. Angka ini secara
27 acak unik dapat di-decode sehingga menghasilkan deretan simbol yang dipakai untuk
menghasilkan angka tersebut. Untuk menghasilkan angka output tersebut, tiap simbol yang akan di-encode diberi satu set nilai probabilitas.
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-SymbolES 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
28
3.1.1 Proses Kompresi Arithmetic Coding
Gambar 3.1 Flowchart Proses Kompresi Algoritma Arithmetic Coding
29
3.1.2 Proses Dekompresi Arithmetic Coding
Gambar 3.2 Flowchart Proses Dekompresi Algoritma Arithmetic Coding