• Tidak ada hasil yang ditemukan

Analisis Perbandingan Kompresi Citra Menggunakan Algoritma Deflate Dan Algoritma Arithmetic Coding

N/A
N/A
Protected

Academic year: 2017

Membagikan "Analisis Perbandingan Kompresi Citra Menggunakan Algoritma Deflate Dan Algoritma Arithmetic Coding"

Copied!
14
0
0

Teks penuh

(1)

BAB 2

TINJAUAN PUSTAKA

2.1. Citra

Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat sinyal-sinyal video seperti gambar pada monitor televisi, atau bersifat digital yang dapat langsung disimpan pada media penyimpanan (Sutoyo, Et al. 2009).

2.1.1. Citra Analog

Citra analog adalah citra yang bersifat kontinu, seperti gambar pada monitor televisi, foto sinar X, foto yang dicetak di kertas foto, lukisan, pemandangan alam, hasil computerized tomography scanner (CT-scanner), gambar-gambar yang terekam pada pita kaset, dan lain sebagainya. Citra analog tidak dapat direpresentasikan dalam komputer sehingga tidak dapat diproses di komputer secara langsung, oleh sebab itu agar citra ini dapat diproses di komputer, proses konversi analog ke digital harus dilakukan terlebih dahulu.

Gambar 2.1. Contoh Citra Analog Sensor Rontgen Untuk Foto Thorax

(2)

2.1.2. Citra Digital

Citra digital adalah citra yang dapat diolah oleh komputer. Citra digital disebut juga citra diskrit di mana citra tersebut dihasilkan melalui proses digitalisasi terhadap citra kontinu.

Gambar 2.2. Ilustrasi Citra dengan Matrix 200 x 200

Pada Gambar 2.2 terdapat sebuah ilustrasi citra grayscale berukuran 200x200 piksel diambil sebagian (kotak kecil) berukuran 8x9. Setelah itu monitor akan menampilkan sebuah kotak kecil, namun yang disimpan dalam memori komputer hanyalah angka-angka yang menunjukkan besar intensitas pada masing-masing piksel tersebut (Sutoyo, Et al. 2009).

Citra digital merupakan sebuah matriks di mana indeks baris dan kolomnya menyatakan suatu titik pada citra tersebut dan elemen matriksnya (yang disebut sebagai elemen gambar/piksel/pixel/picture elemen/pels) menyatakan tingkat keabuan pada titik tersebut. Sebuah citra mungkin dapat didefinisikan sebagai fungsi f(x,y) berukuran M baris dan N kolom, dengan x dan y adalah koordinat spasial, dan amplitudo f di titik koordinat (x,y) disebut intensitas atau tingkat keabuan dari citra pada titik tersebut. Apabila nilai x, y dan nilai amplitudo f secara keseluruhan berhingga (finite) dan bernilai diskrit maka dapat dikatakan bahwa citra tersebut adalah citra digital.

Gambar 2.3. Fungsi Citra Digital dengan Matriks N x M (Putra, 2010)

(3)

2.2. Format File Citra

Format file merupakan cara standar bagaimana informasi itu dikodekan untuk disimpan di dalam file komputer. Format file merupakan sebuah identitas file, di mana file tersebut dibedakan oleh software apa saja yang dapat membaca file tersebut serta sistem operasi apa saja yang mendukung file tersebut. Menurut (Sutoyo, et al. 2009:25) ada dua jenis format file citra yang sering digunakan dalam pengolahan citra, yaitu citra vektor dan citra bitmap.

Citra vektor adalah citra yang dihasilkan dari perhitungan matematis dan tidak berdasarkan piksel, di mana data tersebut tersimpan dalam bentuk vektor posisi, yang disimpan adalah informasi vektor posisi dalam bentuk sebuah fungsi. Mengubah warna pada citra vektor sulit untuk dilakukan, tetapi membentuk objek dengan cara mengubah nilai lebih mudah dilakukan. Yang termasuk dalam format citra vektor adalah AutoCAD Drawing Format(DWG), microstation Drawing Format(DGN), Dan lain-lain (Sutoyo, Et al. 2009).

Citra bitmap atau sering disebut citra raster merupakan kumpulan bit yang tersusun di dalam baris-baris dan kolom-kolom yang membentuk sebuah citra. Citra Bitmap menyimpan data kode citra secara digital dan lengkap, di mana citra tersebut memiliki kandungan satuan titik atau piksel (cara penyimpanannya adalah per piksel). Piksel merupakan satuan terkecil dari citra raster berupa kotak yang berisi satu warna. Citra Bitmap direpresentasikan dalam bentuk matriks atau dipetakan dengan menggunakan bilangan biner atau system bilangan lain. Citra ini memiliki kelebihan dalam memanipulasi warna, tetapi sulit untuk mengubah objek. Sehingga bitmap sering digunakan untuk gambar warna yang rumit, seperti foto dan lukisan digital. Citra bitmap umumnya diperoleh melalui media seperti camera digital, scanner, video capture, dll. Beberapa format citra raster yang digunakan adalah (bmp) Microsoft Windows bitmap format, (gif) compuserve graphics interchange format, Aldus tagged image file format (TIF), AT & T targa format (TGA) (Sutoyo, Et al. 2009).

2.2.1. Aldus Tagged Image File Format (TIF)

(4)

file yang umumnya berasal dari scanner, program pengubah foto, dari beberapa kamera tipe prosumer, dll. TIF merupakan salah satu dari format citra raster yang paling banyak disupport atau didukung oleh aplikasi-aplikasi image printing, baik yang berbasis pc maupun mac. TIF tersedia dalam bentuk bilevel, grayscale, dan palette color image. TIF merupakan format fleksibel yang dapat digunakan untuk lossless compression atau lossy compression. Format ini biasanya dapat menyimpan 8

bit atau 16 bit perwarna (red, green, blue) untuk 24-bit dan 48-bit total, berturut-turut. File TIF tidak digunakan dalam gambar web. File jenis TIF merupakan file-file dengan ukuran yang besar, sehingga sebagian besar web browser tidak akan menampilkan file TIF (Shindu & Rajkamal, 2009).

2.2.2. AT & T Targa Format (TGA)

TGA merupakan format file citra yang digunakan untuk 16-bit dan 24-bit citra warna penuh diciptakan untuk sistem truevision. Format file ini mampu menyimpan gambar dengan mode warna RGB dalam 32 bit serta 1 alpha, channel, juga Grayscale, Indexed Color, dan RGB dalam 16 atau 24 bit tanpa alpha channel (Sutoyo, Et al. 2009).

2.3. Kompresi Citra

Kompresi citra merupakan proses untuk mereduksi atau mengurangi ukuran suatu data untuk menghasilkan representasi digital yang padat atau mampat namun tetap mewakili kuantitas informasi yang terkandung pada data tersebut (Putra, 2010).

Pemampatan citra atau kompresi bertujuan untuk meminimalkan kebutuhan memori dalam merepresentasikan citra digital dengan mengurangi duplikasi data di dalam citra sehingga memori yang dibutuhkan menjadi lebih sedikit daripada representasi citra semula.

2.3.1 Teknik Kompresi Citra

Ada dua teknik yang dapat dilakukan dalam melakukan kompresi citra yaitu: 1. Lossless Compression

Lossless Compression merupakan kompresi citra di mana hasil dekompresi

(5)

hilang. Akan tetapi rasio kompresi dengan metode ini umumnya sangat rendah. Banyak aplikasi yang memerlukan kompresi tanpa cacat atau berkehilangan seperti aplikasi radiografi, hasil diagnosis medis, satelit, dll. Contoh dari algoritma ini adalah Run Length Encoding (RLE), Entropy Encoding (Huffman, Arithmetic coding), Deflate dan Adaptive Dictionary Based (LZW) (Sutoyo, Et al. 2009).

2. Lossy Compression

Lossy Compression adalah kompressi citra di mana hasil dekompresi dari citra

yang terkompresi tidak sama dengan citra aslinya karena ada informasi yang hilang, tetapi masih dapat ditolerir oleh persepsi mata. Mata tidak dapat membedakan perubahan kecil pada gambar. Metode ini menghasilkan ratio kompresi yang lebih tinggi dari metode lossless. Contoh dari algoritma lossless adalah Color Reduction, Chroma Subsampling, dan Transform Coding (Sutoyo, Et al. 2009).

2.3.2. Kriteria Kompresi Citra

Dalam kompresi citra biasanya kriteria yang digunakan untuk mengukur pemampatan citra adalah:

1. Waktu kompresi dan waktu dekompresi

Proses kompresi merupakan proses mengkodekan citra (encode) sehingga diperoleh citra dengan representasi kebutuhan memori yang minimum. Citra terkompresi disimpan dalam file dengan format tertentu. Sedangkan proses dekompresi adalah proses untuk menguraikan citra yang dimampatkan untuk dikembalikan lagi (decoding) menjadi citra yang tidak mampat (mengembalikan ke bentuk semula). Algoritma pemampatan yang baik adalah algoritma yang membutuhkan waktu untuk kompresi dan dekompresi paling sedikit (paling cepat).

Gambar 2.4 merupakan gambar mengenai proses kompresi dan dekompresi citra (Sutoyo, Et al. 2009).

(6)

2. Kebutuhan memori

Suatu metode kompresi kompresi yang mampu mengompresi file citra menjadi file yang berukuran paling minimal adalah metode kompresi yang baik. Di mana memori yang dibutuhkan untuk menyimpan hasil kompresi berkurang secara berarti. Akan tetapi biasanya semakin besar persentase pemampatan, semakin kecil memori yang diperlukan sehingga kualitas citra makin berkurang. Sebaliknya semakin kecil persentase yang dimampatkan, semakin bagus kualitas hasil pemampatan tersebut (Sutoyo, Et al. 2009).

3. Kualitas pemampatan

Metode kompresi yang baik adalah metode yang dapat mengembalikan citra hasil kompresi menjadi citra semula tanpa kehilangan informasi apapun. Walaupun ada informasi yang hilang akibat pemampatan, sebaiknya hal tersebut ditekan seminimal mungkin. Semakin berkualitas hasil pemampatan, semakin besar memori yang dibutuhkan, sebaliknya semakin jelek kualitas pemampatan, semakin kecil kebutuhan memori yang harus disediakan (Sutoyo, Et al. 2009).

2.3.3. Rasio Kompresi Citra

Rasio kompresi citra adalah ukuran persentasi citra yang telah berhasil dimampatkan. Secara matematis pemampatan citra dituliskan sebagai berikut.

= 100%− 100%

Misalnya rasio kompresi adalah 20%, berarti 20% dari citra tersebut telah berhasil dimampatkan.

2.4. Arithmetic Coding

Arithmetic Coding adalah salah satu metode kompresi lossless yang memakai statistikal modeling yang mengodekan suatu barisan karakter/pesan dengan floating point. Pada umumnya, suatu algoritma kompresi citra melakukan penggantian satu

(7)

satu deretan input dengan sebuah bilangan floating point. Apabila pesan yang dikodekan semakin panjang dan kompleks, maka semakin banyak bit yang diperlukan (Shindu & Rajkamal, 2009). Arithmetic Coding memiliki output yaitu satu angka yang lebih kecil dari 1 dan lebih besar sama dengan 0. Agar didapat hasil angka output tersebut, tiap simbol/karakter yang diencode diberikan 1 set nilai probabilitas. Sebagai contoh terdapat citra warna dengan ukuran 2x2 pixel dalam bentuk matriks seperti yang terdapat pada Gambar 2.5.

25500 255192203

255192203 02550

Gambar 2.5. Matrix Citra Warna RGB Ukuran 2x2 pixel

Simbol pada gambar di atas akan diencode sehingga didapat tabel probabilitas seperti pada Tabel 2.1.

Setelah probabilitas tiap–tiap simbol/karakter diketahui, maka tiap simbol/karakter diberikan range tertentu dengan nilainya berkisar antara 0 dan 1, sesuai dengan probabilitas yang ada. Dalam hal ini tidak ada ketentuan urut–urutan dalam penentuan segmen, asalkan antara encoder dan decode melakukan hal yang sama. Setelah itu akan diperoleh Tabel 2.2 berikut.

Tabel 2.2. Tabel Probabilitas dan Range Simbol

Karakter Frekuensi Probabilitas Range

(8)

Satu hal yang perlu diperhatikan dalam tabel ini adalah tiap karakter melingkupi range yang disebutkan, kecuali bilangan yang tinggi. Jadi, simbol 128 sesungguhnya mempunyai range mulai dari 0.9 – 0.9999... (Sutoyo, et al. 2009) (lidya, 20120). Berikut ini adalah algoritma yang dipakai untuk proses encoding (PU, 2006): 1. Set low = 0.0 (kondisi awal)

2. Set high = 1.0 (kondisi awal) 3. While (symbol input masih ada) do 4. Ambil symbol input

5. CR = high - low

6. High = low + CR*high_range(simbol) 7. Low = low + CR*low_range(simbol) 8. End while

9. Cetak low

(9)

Berikut ini adalah algoritma yang dipakai untuk proses decoding (PU, 2006): 1. Ambil encoded symbol (ES)

2. Do

3. Cari range dari symbol yang melingkupi ES 4. Cetak symbol

5. CR = high_range - low_range 6. ES = ES - low_range

7. ES = ES/CR 8. Until symbol habis

Proses decoder dimulai dengan mengambil nilai Encoded Symbol (ES), kemudian cari range dari simbol yang melingkupi ES. Misalkan nilai ES adalah 0.154429213 maka nilai ES tersebut berada pada range 0.0≤255≤0.33, berdasarkan pada Tabel 2.2 di atas. Maka didapatlah simbol pertamanya adalah 255, lalu cetak simbol. Untuk menentukan simbol berikutnya hitung nilai Code Range (CR) pada simbol 255 di mana CR = high_range(255)-low_range(255), kemudian tentukan nilai Encoded Symbol (ES) berikutnya dengan rumus ES = ES-low_range(255) kemudian nilai ES yang didapat dibagi dengan nilai Code Range (CR), di mana ES = ES/CR. Nilai ES yang didapat inilah yang akan digunakan untuk menentukan simbol berikutnya yang dilihat dari nilai Range berdasarkan Tabel 2.2 di atas. Ulangi langkah di atas untuk mendapatkan simbol berikutnya, hingga didapat nilai ES = 0.0 (selesai).

2.5. Deflate

Algoritma Deflate merupakan algoritma yang dibuat berdasarkan variasi algoritma LZ77 dikombinasikan dengan algoritma Huffman yang didesain oleh Philip Katz sebagai bagian dari file format ZIP (Salomon, 2007).

(10)

3 3 1 1 2

1 5 4 1 1

2 1 7 1 1

2 1 6 3 3

4 5 4 1 5

Gambar 2.6. Contoh Citra Grayscale Ukuran 5 x 5 Pixel

Kemudian contoh citra di atas akan dikodekan ke dalam algoritma LZ77 seperti pada Gambar 2.7.

Gambar 2.7. Sliding Window (Salomon, 2007)

Pada gambar di atas encoder akan membaca semua simbol pada look-ahead buffer, lalu encoder akan memeriksa search buffer dari kanan ke kiri untuk menemukan karakter pertama pada look-ahead buffer yang sesuai dengan karakter/simbol pada search buffer yaitu “1” pada jarak 2 simbol dari ujung search buffer, kemudian

(11)

rangkaian length(l) yang sesuai yaitu 4 simbol (“1121“). Setelah penelusuran selesai Encoder akan mencatat nilai length terbesar dan offset terkecil, kemudian simbol “3” akan dicatat sebagai code(c). Simbol “6” merupakan simbol pertama yang berada tepat di kanan rangkaian simbol yang sesuai pada look-ahead buffer (“1121“). Encoder kemudian menghasilkan token melalui proses di atas yaitu token (5,4,6). Proses kemudian diulang dengan menggeser sliding window sebanyak length+1 terhadap teks, sehingga search buffer akan berisi “3312154112171” dan look-ahead buffer berisi “12163345415“. Jika tidak ada simbol yang sesuai atau simbol yang

sesuai hanya 1 maka akan dihasilkan token(0,0,c) (PU, 2006) (Sihombing, 2011). Untuk proses dekompresi LZ77, decoder akan membaca setiap rangkaian token. Apabila terdapat token (0,0,5) maka decoder akan menulis simbol 5 ke dalam output. Berikut ini adalah contoh bagaimana decoder lz77 bekerja dapat dilihat pada Gambar 2.8.

Gambar 2.8. Proses Decode Algoritma LZ77 Pada Citra Grayscale (Salomon, 2007)

Algoritma Huffman merupakan algoritma pemampatan yang menggunakan pendekatan statistik. Algoritma Huffman didesain oleh David A. Huffman di mana algoritma tersebut merupakan sebuah algoritma entropy encoding yang digunakan untuk algoritma lossless compression (Salomon, 2007). Metode ini dimulai dengan membuat daftar nilai-nilai simbol yang diurutkan berdasarkan probabilitas atau frekuensi kemunculannya.

(12)

Tabel 2.3. Tabel Nilai Probabilitas K nk P(k) = nk/n

1 10 0.4

2 3 0.12

3 4 0.16

4 3 0.12

5 3 0.12

6 1 0.04

7 1 0.04

Langkah berikutnya adalah urutkan simbol berdasarkan tabel di atas dari simbol yang memiliki frekuensi kemunculan terkecil hingga terbesar. Buat sebuah node, di mana node merupakan gabungan dari dua buah simbol paling kiri yang mempunyai frekuensi terkecil dengan simbol sebelah kanan dari simbol tersebut, gabungkan dua buah pohon yang mempunyai frekuensi kemunculan terkecil dan urutkan kembali, kemudian ulangi langkah tersebut sampai tersisa satu pohon biner. Beri label pohon biner tersebut, pada sisi sebelah kiri beri label 0 dan sisi kanan pohon diberi label 1. Telusuri pohon biner tersebut dari akar ke daun, sehingga didapat barisan label-label sisi dari akar ke daun adalah kode Huffman. Berdasarkan langkah-langkah di atas dihasilkan pohon Huffman seperti pada Gambar 2.9.

.

(13)

Dari penulusuran di atas maka dihasilkan kode Huffman seperti dalam Tabel 2.4.

Tabel 2.4. Tabel Kode Huffman Karakter Frekuensi Kode Huffman

1

Untuk proses decodingnya atau dekompresinya, pada rangkaian bit 111 111 0 0 1101 0 101 100 0 0 1101…..baca kode bit “1”, tidak ada kode bit “1”, selanjutnya baca kode bit “11”, tidak ada kode bit “11”, selanjutnya baca kode bit “111”, dari pemetaan disimpulkan bahwa kode bit “111” adalah 3, untuk bit selanjutnya baca kode bit “1”, tidak ada kode bit “1”, selanjutnya baca kode bit “11”, tidak ada kode bit “11”, selanjutnya kode bit “111” dari pemetaan disimpulkan bahwa kode bit “111” adalah 3, dan seterusnya (Sutoyo, Et al. 2009).

Dalam proses kompresinya, algoritma Deflate ini terlebih dahulu melakukan proses pengelompokan karakter dengan menggunakan algoritma LZ77. Kemudian hasil dari pengelompokan karakter tersebut dikompresi lagi dengan menggunakan algoritma Huffman (Huffman Tree). Algoritma Deflate ini merupakan algoritma loseless compression. Karena algoritma Deflate ini merupakan gabungan dari dua

algoritma kompresi yang bersifat loseless (Dharmawan, 2008).

(14)

merupakan hasil dari encoding algoritma Huffman (Dharmawan, 2008).

Gambar

Gambar 2.1. Contoh Citra Analog Sensor Rontgen Untuk Foto Thorax
Gambar 2.3. Fungsi Citra Digital dengan Matriks N x M (Putra, 2010)
Gambar 2.4. Alur Kompresi Citra
Tabel 2.1. Tabel Nilai Probabilitas
+4

Referensi

Dokumen terkait

A PUJI DWI LESTARI ENTRY JOURNAL A NINDY MERLIANA PUTRI ENTRY JOURNAL A ALVY NURUL HIDAYAH ENTRY JOURNAL A AMMI ERWATI ENTRY JOURNAL G RANI ROFITA ENTRY JOURNAL E CATUR

Biaya pendidikan adalah keseluruhan pengeluaran baik yang bersifat uang maupun bukan uang, sebagai ungkapan rasa tanggung jawab semua pihak (masyarakat, orang tua, dan

UPAYA PENEGAKAN HUKUM APARAT KEPOLISIAN DALAM TINDAK PIDANA PERDAGANGAN..

Pesantren hadir dalam rupa pendidikan yang lebih menitikberatkan pada nilai yang berkembang dalam kehidupan sehari-hari.. Pendidikan nilai yang dikembangkan pesantren

JURUSAN TEKNIK INFORMATIKA, KOMPUTERISASI AKUNTANSI DAN MANAJEMEN INFORMATIKA JADWAL SERTIFIKASI SEMESTER GENAP TA... Basis Data Remedia

Penelitian ini bertolok ukur pada asumsi bahwa di masyarakat sudah menganut sistem sosial yang terbuka, artinya terdapat aktivitas tingkat mobilitas individu yang

The majority of patients were motorcyclists (92%) with most of them were not wearing safety equipment. Most of the accidents took place in 2011 in Bandung. Mandible was the

Results: There were 3 main responses regarding the respondent’s opinions. First, respondents showed several attitudes toward drugs in general and also several attitudes