• Tidak ada hasil yang ditemukan

JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : VOL. 5 NO. 2 SEPTEMBER 2012

N/A
N/A
Protected

Academic year: 2021

Membagikan "JURNAL TEKNOLOGI INFORMASI & PENDIDIKAN ISSN : VOL. 5 NO. 2 SEPTEMBER 2012"

Copied!
24
0
0

Teks penuh

(1)

STUDI KOMPARASI

METODE ARITHMETIC CODING DAN HUFFMAN CODING DALAM ALGORITMA ENTROPY UNTUK KOMPRESI CITRA DIGITAL

Hari Antoni Musril1

ABSTRACT

Nowadays, there are many methods of data compression available.Most of them can be classified into one of the two big categories, i.e., statistical based and dictionary based. An Example of dictionary based coding is Lempel Zip Welch. The example of statistical based coding are Huffman coding and Arithmetic coding, as the newest algorithm. This paper describes the principles of Arithmetic coding along with its advantages compared to Huffman coding method. In this final paper conducted compression of digital image by use of Arithmetic Coding and Huffman Coding. The test image which have been selected compressed use Minerva software, first image compressed by Arithmetic Coding, then same image compressed by Huffman Coding. Afterwards by using facility exist in Minerva software will getting time use for compression, compression ratio, and image size measure result of compression. As the final conclusion, the algorithm is outstanding for the use of data compression matters. The number of bit coding of arithmetic is less than that of Huffman coding. The modification with the numerical integer is capable of dealing with the limitations of the encoder and decoder equipments over to long floating point processing. Due to the less number of the bit codings, and can be implemented. At Arithmetic Coding getting big compression ratio and image size measure result of compression which is smaller to be compared to Huffman Coding, but time required by Huffman Coding quicker compared to Arithmetic Coding.

Keywords : Arithmetic Coding, Huffman Coding, data compression, algorithm

INTISARI

Ada banyak sekali metode kompresi data yang ada saat ini. Sebagian besar metode tersebut bisa dikelompokkan ke dalam salah satu dari dua kelompok besar, statistical based dan dictionary based. Contoh dari dictionary based coding adalah Lempel Ziv Welch dan contoh dari statistical based coding adalah

Huffman Coding dan Arithmetic Coding yang merupakan algoritma terbaru. Tulisan ini mengulas prinsip-prinsip dari Arithmetic Coding serta keuntungan – keuntungannya dibandingkan dengan metode Huffman Coding. Dalam tulisan ini dilakukan pengkompresian citra digital menggunakan Arithmetic Coding dan

Huffman Coding. Citra uji yang telah dipilih dikompresi menggunakan software

Minerva, pertama citra dikompresi menggunakan Arithmetic Coding, kemudian citra yang sama dikompresi dengan Huffman Coding. Setelah itu dengan menggunakan fasilitas yang ada pada software Minerva akan didapatkan waktu

(2)

yang digunakan untuk kompresi, rasio kompresi, dan ukuran citra hasil kompresi. Pada akhirnya ditarik kesimpulan, bahwa algoritma ini cukup baik untuk dipakai dalam keperluan kompresi data. Alasan pertama karena jumlah coding bit pada

arithmetic coding lebih sedikit dibandingkan dengan huffman coding. Modifikasi dengan menggunakan bilangan integer juga mampu mengatasi keterbatasan peralatan – peralatan encoder dan decoder dari pengolahan floating point yang terlalu panjang. Kedua karena jumlah bit kodenya lebih sedikit dan dapat diimplementasikan. Pada Arithmetic Coding didapatkan rasio kompresi yang besar dan ukuran citra hasil kompresi yang lebih kecil dibandingkan Huffman Coding, namun waktu yang dibutuhkan oleh Huffman Coding lebih cepat dibandingkan Arithmetic Coding.

(3)

PENDAHULUAN

Perkembangan teknologi digital memperlihatkan kemajuan yang sangat pesat. Data digital selain mudah dalam penyebarannya melalui jaringan internet, juga mudah dan murah dalam penggandaan

serta penyimpanannya.

Perkembangan ini juga berhubungan erat dengan ketersediaan media penyimpanan yang dibutuhkan untuk penyimpanan data tersebut. Kebutuhan ini disebabkan karena data yang disimpan semakin lama semakin banyak, dan ukuran data yang besar.

Teknologi kompresi data merupakan suatu teknologi yang bertujuan untuk memaksimalkan keterbatasan ruang penyimpanan. Tujuan utama dari diciptakannya teknologi ini adalah untuk efisiensi ruang dan waktu, dimana kedua elemen inilah yang menjadi titik fokus para pengguna komputer untuk dimaksimalkan.

Kompresi citra bertujuan untuk meminimalkan jumlah bit yang diperlukan dalam merepresentasikan citra. Kompresi citra dikembangkan untuk memudahkan penyimpanan dan pengiriman citra. Teknik kompresi yang ada sekarang memungkinkan citra dikompresi sehingga ukurannya menjadi jauh lebih kecil daripada ukuran citra asli.

Berdasarkan output, kompresi data dikelompokkan menjadi teknik kompresi data secara lossless dan

lossy. Kompresi tipe lossy adalah kompresi dimana terdapat data yang hilang selama proses kompresi, akibatnya kualitas data yang dihasilkan jauh lebih rendah daripada kualitas data asli. Sementara itu, kompresi tipe

lossless tidak menghilangkan informasi setelah proses kompresi terjadi, akibatnya kualitas citra hasil kompresi tidak menurun. Pada tulisan ini akan memfokuskan proses kompresi dengan tipe lossless.

Tipe kompresi secara lossless

terdiri dari beberapa algoritma diantaranya run length encoding, entropy encoding, dan adaptive dictionary based. Tulisan ini akan menggunakan algoritma entropy

sebagai teknik kompresi citra. Algoritma entropy terdiri dari

arithmetic coding dan huffman coding, akan dilakukan pembandingan antara kedua metode tersebut.

PENDEKATAN PEMECAHAN MASALAH

Pengantar Citra dan Citra Digital Pengolahan citra secara digital mulai diminati pada awal tahun 1921, pada saat pertama kalinya sebuah foto berhasil ditransmisikan secara digital melalui kabel laut dari kota New York ke kota London (Bartlane Cable Picture Transmission System). Keuntungan utama yang dirasakan pada saat itu

adalah pengurangan waktu

pengiriman foto dari sekitar 1 minggu menjadi kurang dari 3 jam. Foto tersebut dikirim dalam bentuk kode digital dan kemudian diubah kembali oleh pointer telegraph.

Sekitar tahun 1960 seiring dengan pertumbuhan komputer, kebutuhan akan pengolahan citra yang sanggup memenuhi suatu kecepatan proses dan kapasitas memori yang dibutuhkan oleh berbagai algoritma pengolahan citra juga semakin pesat.

Citra

Citra merupakan istilah lain untuk gambar, sebagai salah satu

komponen multimedia yang

memegang peranan sangat penting sebagai bentuk informasi visual [1].

Proses pengolahan data dapat dilakukan oleh komputer, baik berupa mikrokomputer sederhana atau komputer biasa, tergantung jumlah data dan jenis pengolahan. Proses penampilan data merupakan salah satu yang penting karena

(4)

bagaimanapun juga citra digital hasil olahan harus dapat dinilai oleh mata

manusia melalui sebuah

penampilan.

Citra dapat didefinisikan sebagai fungsi intensitas cahaya dua dimensi f(x,y), dimana x dan y

merupakan koordinat spasial, nilai f

pada suatu titik (x,y) sebanding dengan kecerahan (brigthness) yang biasanya dinyatakan dalam tingkatan abu - abu (gray-level) dari citra di titik tersebut.

Nilai intensitas cahaya akan bernilai antara 0 sampai tidak berhingga karena cahaya ini merupakan bentuk energi, atau secara matematis :

0 ≤ f(x,y) < ∞ ...(1)

Nilai f(x,y) sebenarnya adalah hasil kali dari :

1. i(x,y) = jumlah cahaya yang berasal dari sumbernya (illumination), intensitasnya antara 0 sampai tidak berhingga.

2. r(x,y) = derajat kemampuan obyek memantulkan cahaya (reflection), nilainya antara 0 dan 1.

Secara harfiah, citra (image) adalah gambar pada bidang dwimatra (dua dimensi). Citra juga didefinisikan sebagai kumpulan dari elemen gambar yang secara keseluruhan merekam suatu adegan/scene melalui media indra visual. Suatu citra didapatkan dari penangkapan kekuatan sinar yang dipantulkan oleh objek. Citra dapat dibedakan atas citra analog dan citra digital. Citra analog adalah citra yang masih dalam bentuk sinyal analog, seperti pengambilan gambar oleh kamera atau citra tampilan di layar ataupun monitor (sinyal video).

Ditinjau dari sudut pandang matematis, citra merupakan fungsi menerus (continue) dari intensitas cahaya pada bidang dwimatra. Sumber cahaya menerangi objek, objek memantulkan kembali

sebagian dari berkas cahaya tersebut. Pantulan cahaya ini ditangkap oleh alat-alat optik, misalnya mata pada manusia, kamera, pemindai (scanner), dan sebagainya, sehingga bayangan objek yang disebut citra tersebut terekam.

Citra sebagai keluaran dari suatu sistem perekaman dapat bersifat :

1. Optik berupa foto,

2. Analog berupa sinyal video seperti gambar pada monitor televisi,

3. Digital yang dapat langsung disimpan pada pita magnetik. Citra Digital

Citra digital adalah citra dengan f(x,y) yang nilainya didigitalisasikan (dibuat diskrit) baik dalam koordinat spasialnya maupun dalam gray level-nya [2]. Sebuah citra diubah ke bentuk digital agar mudah diolah atau disimpan dalam memori komputer atau media lain.

Secara teoritis citra dapat dikelompokkan menjadi empat kelas citra, yaitu : kontinu – kontinu, kontinu – diskrit, diskrit – kontinu, diskrit – diskrit. Penlabelan kontinu berarti nilai yang digunakan adalah tidak terbatas dan tidak terhingga, sedangkan label diskrit menyatakan terbatas dan berhingga. Suatu citra digital merupakan representasi dua dimensi array sampel diskrit suatu citra kontinu f(x,y). Amplitudo setiap sampel dikuantisasi untuk menyatakan bilangan hingga bit. Setiap elemen array dua dimensi disebut suatu pixel (picture element). Ranah nilai intensitas dalam suatu citra ditentukan oleh alat digitalisasi yang digunakan untuk menangkap dan menkonversi citra analog ke citra digital (A/D Converter). Perolehan citra digital ini dapat dilakukan secara langsung oleh kamera digital maupun dengan menggunakan A/D Converter. Untuk mengubah citra kontinu menjadi citra digital diperlukan proses pembuatan

(5)

kisi–kisi arah horizontal dan arah vertikal, sehingga diperoleh gambar dalam bentuk array dua dimensi. Proses ini disebut sebagai proses digitalisasi/sampling.

Citra monokrom atau citra hitam putih merupakan citra satu kanal, dimana citra f(x,y) merupakan fungsi tingkat keabuan dari hitam ke putih, x menyatakan variabel baris (garis jelajah) dan y menyatakan variabel kolom atau posisi di garis jelajah. Sebaliknya citra berwarna dikenal juga dengan citra

multispectral.

Citra diskrit dihasilkan dari melalui proses digitalisasi terhadap citra kontinu. Sedangkan citra kontinu dihasilkan dari sistem optik yang menerima sinyal analog. Beberapa sistem optik dilengkapi dengan fungsi digitalisasi sehingga ia mampu menghasilkan citra diskrit, misalnya kamera digital dan

scanner. Citra diskrit disebut juga sebagai citra digital, seperti gambar 1.

Gambar 1. Citra Digital

Digitalisasi dari koordinat spasial citra disebut dengan image sampling, sedangkan digitalisasi dari

gray-level citra disebut dengan gray-level quantization. Citra digital secara matematis dapat dituliskan sebagai suatu matriks dimana baris

dan kolomnya menunjukkan gray level di titik tersebut.

Pengolahan citra merupakan pemrosesan citra, sehingga didapatkan hasil berupa citra dalam bentuk lain seperti resampling, pengeditan, kompresi dan lain-lain. Pengolahan citra bertujuan untuk memperbaiki kualitas citra agar mudah diinterpretasi oleh mata manusia dan mesin (komputer). Untuk melakukan pengolahan terhadap citra gambar digital, maka pengolahan dilakukan terhadap

pixel-pixel dari citra tersebut.

Citra digital secara matematis dapat dituliskan sebagai suatu matriks dimana baris dan kolomnya menunjukkan gray level di titik tersebut. Pada umumnya citra digital berbentuk empat persegi panjang, dan dimensi ukurannya dinyatakan sebagai tinggi x lebar (atau lebar x panjang). Citra digital yang tingginya

N, lebarnya M, dan memiliki L

derajat keabuan dapat dianggap sebagai fungsi :

Citra digital yang berukuran N x M lazim dinyatakan dengan matriks yang berukuran N baris dan M kolom

sebagai berikut :

Indeks baris (i) dan indeks kolom (j) menyatakan suatu koordinat titik pada citra, sedangkan

f(i,j) merupakan intensitas (derajat keabuan) pada titik (i,j). Nilai derajat

(6)

keabuan memiliki rentang nilai dari l

min sampai l max, atau

Lmin < f < lmax ...(2) Selang (lmin, lmax) disebut skala keabuan. Biasanya selang (lmin, lmax) sering digeser untuk alasan – alaasan praktis menjadi selang [0, L], yang dalam hal ini nilai intensitas 0 menyatakan hitam, nilai intensitas L menyatakan putih, sedangkan nilai intensitas antara 0 sampai L bergeser dari hitam ke putih. Sebagai contoh, citra hitam putih dengan 256 level artinya mempunyai skala abu dari 0 sampai 255 atau [0, 255], yang dalam hal ini nilai intensitas 0 menyatakan hitam, nilai intensitas 255 menyatakan putih, dan nilai antara 0 sampai 255 menyatakan warna keabuan yang terletak antara hitam dan putih. Intensitas suatu titik pada citra berwarna merupakan kombinasi dari tiga intensitas : derajat keabuan merah (fmerah(x,y)), hijau (fhijau(x,y)), dan biru (fbiru(x,y)).

Masing-masing elemen pada citra digital (berarti elemen matriks) disebut image elemen, picture element atau pixel. Jadi, citra yang berukuran N x M mempunyai NM

buah pixel. Sebagai contoh, misalkan sebuah citra digital berukuran 256 x 256 pixel dan direpresentasikan secara numerik dengan matriks yang terdiri dari 256 buah baris (di-indeks dari 0 sampai 255) dan 256 buah kolom (diindeks dari 0 sampai 255) seperti contoh berikut :

Pixel pertama pada koordinat (0,0) mempunyai nilai intensitas 0 yang berarti warna pixel tersebut hitam, pixel kedua pada koordinat (0,1) mempunyai intensitas 134 yang berarti warnanya antara hitam dan putih, dan seterusnya.

Sebagai contoh intensitas f

dari gambar hitam putih pada titik

(x,y) disebut derajat keabuan, yang dalam hal ini derajat keabuannya bergerak dari hitam ke putih sedangkan citranya disebut citra hitam-putih atau citra monokrom. Citra hitam-putih dengan 256 level artinya mempunyai skala abu dari 0 sampai 255 atau [0,255], dimana nilai intensitas 0 menyatakan hitam, sedangkan nilai intensitas 255 menyatakan putih, dan nilai antara 0 sampai 255 menyatakan warna keabuan yang terletak antara hitam dan putih. Citra hitam-putih disebut juga citra satu kanal, karena warnanya hanya ditentukan oleh satu fungsi intensitas saja. Untuk lebih jelasnya, perhatikan Gambar 2 berikut :

(7)

Gambar 2. Nilai Intensitas Citra Digital

Citra sering diasosiasikan dengan kedalaman pixel-nya. Jadi, citra dengan kedalaman 8 bit disebut juga citra 8-bit (atau citra 256 warna). Pada kebanyakan aplikasi, citra hitam – putih dikuantisasi pada 256 level dan membutuhkan 1 byte

(8 bit) untuk representasi setiap

pixel-nya (G = 256 = 28). Citra biner (binary image) hanya dikuantisasi pada dua level : 0 dan 1. Tiap pixel

pada citra biner cukup

direpresentasikan dengan 1 bit, yang mana bit 0 berarti hitam dan bit 1 berarti putih. Besarnya daerah derajat keabuan yang yang digunakan menentukan resolusi kecerahan dari citra yang diperoleh. Sebagai contoh, jika digunakan 3 bit untuk menyimpan harga bilangan bulat, maka jumlah derajat keabuan yang diperoleh hanya 8, jika digunakan 4 bit, maka derajat keabuan yang diperoleh adalah 16 buah. Semakin banyak jumlah derajat keabuan (berarti jumlah bit kuantisasinya makin banyak), semakin bagus gambar yang diperoleh karena kemenerusan derajat keabuan akan semakin tinggi sehingga mendekati citra aslinya.

Penyimpanan citra digital yang menjadi N x M buah pixel dan dikuantisasi menjadi G = 2m Dimana : G = derajat keabuan m = bilangan bulat positif

Level derajat keabuan

membutuhkan memori

sebanyak :

b = N x M x m bit ... (3)

Secara keseluruhan, resolusi gambar ditentukan oleh N dan m.

Makin tinggi nilai N (atau M) dan m, maka citra yang dihasilkan semakin bagus kualitasnya (mendekati citra menerus). Unjuk citra dengan jumlah objek yang sedikt, kualitas citra ditentukan oleh nilai m. Sedangkan untuk citra dengan jumlah objek yang banyak, kualitasnya ditentukan oleh N (atau M). Seluruh tahapan proses digitalisasi (penerokan dan kuantisasi) di atas dikenal sebagai konversi analaog ke digital, yang biasanya menyimpan hasil proses di dalam media penyimpanan.

Pengolahan Citra

Pengolahan citra adalah pemrosesan citra, khususnya dengan menggunakan komputer, menjadi citra yang kualitasnya lebih baik [3]. Pengolahan citra bertujuan memperbaiki kualitas citra agar mudah diinterpretasi oleh manusia atau mesin (dalam hal ini komputer). Teknik–teknik pengolahan citra mentransformasikan citra menjadi citra lain. Jadi, masukannya adalah citra dan keluarannya juga citra, namun citra keluaran mempunyai kualitas lebih baik daripada citra masukan. Termasuk ke dalam bidang ini juga adalah pemampatan citra (image compression).

Gambar 3. Operasi Pengolahan Citra

(8)

Pengolahan citra digital dapat dilakukan dengan cara – cara sebagai berikut :

1. Representasi dan pemodelan citra

2. Peningkatan kualitas citra 3. Restorasi citra

4. Analisis citra 5. Rekonstruksi citra 6. Kompresi citra

Dalam tulisan ini, pengolahan citra digital difokuskan pada teknik kompresi citra. Umumnya, operasi – operasi pada pengolahan citra diterapkan pada citra bila :

1. Perbaikan atau modifikasi citra perlu dilakukan untuk meningkatkan kualitas penampakan atau untuk menonjolkan beberapa aspek informasi yang terkandung di dalam citra,

2. Elemen di dalam citra perlu dikelompokkan, dicocokkan, atau diukur,

3. Sebagian citra perlu digabung dengan bagian citra yang lain.

Kompresi Citra Digital

Kompresi citra adalah aplikasi kompresi data yang dilakukan terhadap citra digital dengan tujuan untuk mengurangi redundansi dari data – data yang terdapat dalam citra sehingga dapat disimpan atau ditransmisikan secara efisien [4]. Kompresi citra bertujuan untuk meminimalkan jumlah bit yang diperlukan untuk merepresentasikan

citra. Kompresi berarti

memampatkan/mengecilkan ukuran. Prinsip umum yang digunakan pada proses pemampatan citra adalah mengurangi duplikasi data di dalam citra sehingga memori yang dibutuhkan untuk merepresentasikan citra menjadi lebih sedikit daripada representasi citra semula.

Apabila sebuah foto berwarna berukuran 3 inci x 4 inci diubah ke bentuk digital dengan tingkat resolusi

sebesar 500 dot per inch (dpi), maka diperlukan 3 x 4 x 500 x 500 = 3.000.000 dot (pixel). Setiap pixel terdiri dari 3 byte dimana masing-masing byte merepresentasikan warna merah, hijau, dan biru. Sehingga citra digital tersebut memerlukan volume penyimpanan sebesar 3.000.000 x 3 byte + 1080 = 9.001.080 byte setelah ditambahkan jumlah byte yang diperlukan untuk menyimpan format (header) citra.

Citra tersebut tidak bisa disimpan ke dalam disket yang berukuran 1.4 MB. Selain itu, pengiriman citra berukuran 9 MB memerlukan waktu lebih lama. Untuk koneksi internet dial-up (56 kbps), pengiriman citra berukuran 9 MB memerlukan waktu 21 menit. Untuk itulah diperlukan kompresi citra sehingga ukuran citra tersebut menjadi lebih kecil dan waktu pengiriman citra menjadi lebih cepat. Citra yang belum dikompres disebut citra mentah (raw image). Sementara citra hasil kompresi disebut citra terkompresi (compressed image). Proses pengiriman dan penyimpanan citra tersebut diilustrasikan pada gambar 4.

Gambar 4. Proses Konversi Citra Analog Ke Citra Digital Beserta

(9)

Kompresi citra dikembangkan untuk memudahkan penyimpanan dan pengiriman citra. Teknik kompresi yang ada sekarang memungkinkan citra dikompresi sehingga ukurannya jauh lebih kecil daripada ukuran asli.

Jenis Kompresi Citra

Ada empat pendekatan yang digunakan dalam kompresi citra, yaitu [5]:

1. Pendekatan statistik

Kompresi citra didasarkan pada frekuensi kemunculan derajat keabuan pixel di dalam seluruh bagian citra.

2. Pendekatan ruang

Kompresi citra didasarkan pada hubungan spasial antara

pixel – pixel didalam suatu kelompok yang memiliki derajat keabuan yang sama di dalam suatu daerah di dalam citra.

3. Pendekatan kuantisasi

Kompresi citra dilakukan dengan mengurangi jumlah derajat keabuan yang tersedia. 4. Pendekatan fraktal

Kompresi citra didasarkan pada kenyataan bahwa kemiripan bagian – bagian di dalam citra dapat dieksploitasi dengan suatu matriks transformasi.

Proses Pada Pemampatan Citra Dalam pemampatan citra terdapat dua proses utama, yaitu: 1. Pemampatan citra (image

compression).

Pada proses ini, citra dalam representasi tidak mampat

dikodekan dengan

representasi yang

meminimumkan kebutuhan memori. Citra dengan format

bitmap pada umumnya tidak dalam bentuk mampat. Citra yang sudah dimampatkan disimpan ke dalam arsip dengan format tertentu. Kita mengenal format JPG dan GIF

sebagai format citra yang sudah dimampatkan.

2. Penirmampatkan citra (image decompression).

Pada proses ini, citra yang sudah dimampatkan harus dapat dikembalikan lagi (decoding) menjadi representasi yang tidak mampat. Proses ini diperlukan jika citra tersebut ditampilkan ke layar atau disimpan ke dalam arsip dengan format tidak mampat. Dengan kata lain, penirmampatan citra mengembalikan citra yang termampatkan menjadi data

bitmap.

Kriteria Pemampatan Citra

Kriteria yang digunakan dalam mengukur metode pemampatan citra adalah:

1. Waktu pemampatan dan

penirmampatan (decompression).

Waktu pemampatan citra dan penirmampatannya sebaiknya

cepat. Ada metode

pemampatan yang waktu pem ampatannya lama, namun wak tu penirmampatannya cepat. Ada pula metode yang waktu pemampatannya cepat tetapi waktu penirmampatannya lambat. Tetapi ada pula

metode yang waktu

pemampatan dan

penirmampatannya cepat atau keduanya lambat.

2. Kebutuhan memori.

Memori yang dibutuhkan untuk merepresentasikan citra seharusnya berkurang secara berarti. Ada metode yang

berhasil memampatkan

dengan persentase yang besar, ada pula yang kecil. Pada beberapa metode,

ukuran memori hasil

pemampatan bergantung pada citra itu sendiri. Citra yang mengandung banyak elemen

(10)

duplikasi (misalnya citra langit cerah tanpa awan, citra lantai keramik) umumnya berhasil dimampatkan dengan memori

yang lebih sedikit

dibandingkan dengan

memampatkan citra yang mengandung banyak objek (misalnya citra pemandangan alam).

3. Kualitas pemampatan (fidelity) Informasi yang hilang akibat pemampatan seharusnya seminimal mungkin sehingga kualitas hasil pemampatan tetap dipertahankan. Kualitas

pemampatan dengan

kebutuhan memori biasanya berbanding terbalik. Kualitas pemampatan yang bagus umumnya dicapai pada proses pemampatan yang menghasilkan pengurangan memori yang tidak begitu besar, demikian pula sebaiknya. Dengan kata lain, ada timbal balik (trade off) antara kualitas citra dengan ukuran hasil pemampatan. 4. Format keluaran

Format citra hasil pemampatan sebaiknya cocok untuk pengiriman dan penyimpanan data. Pembacaan citra bergantung pada bagaimana

citra tersebut

direpresentasikan (atau disimpan). Pemilihan kriteria yang tepat bergantung pada pengguna dan aplikasi.

Kompresi citra dikembangkan untuk memudahkan penyimpanan dan pengiriman citra. Teknik kompresi yang ada sekarang memungkinkan citra dikompresi sehingga ukurannya menjadi jauh lebih kecil daripada ukuran asli. Teknik Pemampatan

Teknik pemampatan citra dapat diklasifikasikan ke dalam dua kelompok besar [6], yaitu :

1. Lossless

, yaitu

pemampatan yang

dilakukan tidak

menghilangkan kandungan asal data, seperti membuang atau merubah kandungan asal selama terjadinya pemampatan. Kategori ini banyak

digunakan dalam

pemampatan data teks. Metode lossless cocok untuk kompresi citra yang mengandung informasi penting yang tidak boleh rusak akibat kompresi. Misalnya kompresi citra hasil diagnosa medis. Contoh teknik dengan

menggunakan metode

pemampatan lossless

adalah : Run Length Encoding, Entropy Encoding (Huffman, Arithmetic), dan Adaptive Dictionary Based (LZW).

2. Lossy

, yaitu pemampatan

yang dilakukan dengan

membuang sedikit

kandungan asal dari data, dimana data tersebut banyak terjadi penumpukan nilai atau adanya nilai yang

tidak dibutuhkan

(mengandung nilai yang tidak mempunyai makna), seperti bingkai gambar, ruang kosong dan lain-lain. Contoh pemampatan ini digunakan pada data gambar (image) atau suara.Teknik – teknik yang digunakan dalam metode pemampatan dengan lossy

adalah :Color reduction, teknik ini digunakan untuk warna – warna tertentu yang mayoritas maka informasi dari warna tersebut disimpan dalam

color pallet.Chroma subsampling, yaitu teknik yang memanfaatkan fakta bahwa mata manusia merasa bahwa brightness

(11)

(luminance) lebih berpengaruh daripada warna (chrominance) itu sendiri, maka dilakukan pengurangan resolusi warna dengan disampling ulang.

Nisbah Pemampatan Citra

Nisbah (ratio) hasil

pemampatan (compress)

merupakan indikator untuk mengetahui performance dari

hasil sebuah metoda

pemampatan. Untuk

mendapatkan nisbah dengan menggunakan rumus sebagai berikut :

Besarnya nilai nisbah (ratio) yang didapatkan dari metoda pemampatan, maka performance

manipulasi data dari User Interface ke Repository akan meningkat.

Algoritma Entropy Coding

Entropy coding adalah sebuah skema lossless kompresi berbasis pada properti statistik dari citra atau aliran informasi yang dikompres.

Meskipun entropy coding

diimplementasikan secara berbeda untuk tiap - tiap standar, dasar dari skema entropy coding adalah dengan menyandikan pola yang paling sering muncul dengan jumlah bit yang paling kecil. Dengan cara ini, data dapat dimampatkan dengan faktor tambahan dari 3 atau 4.

Entropi secara umum dapat diinterpretasikan jumlah rata-rata minimum dari jumlah pertanyaan ya/tidak untuk menentukan harga spesifik dari variable x. Dalam

konteks bahasan, entropi

merepresentasikan batas bawah (lower bound) dari jumlah rata-rata bit per satu nilai input yaitu rata-rata panjang code word digunakan untuk mengkode input.

Metode dari entropy encoding

adalah pengkodean data dengan BPS (bits per symbol) untuk tiap alphabet yang mendekati nilai

entropi, karena semakin dekat BPS dari alphabet tersebut dengan nilai

entropi, semakin efisien pula kode kompresi tersebut. Metode entropy coding dalam pemampatan citra terdiri dari arithmetic coding dan

huffman coding.

Entropy merupakan sebuah nilai/besaran yang merupakan alat yang digunakan untuk menyatakan jumlah dari distorsi probabilitas yang tidak kontinu. Dengan menggunakan sebuah pendekatan statistik yang acak untuk mencirikan tekstur dari input citra.

Entropy dirumuskan dengan :

Entropy coding merupakan cara yang tepat untuk menghindari sinyal yang tidak kontinu dan untuk mengefisienkan dari representasi sinyal yang kecil. Tetapi dengan adanya penghindaran sinyal yang tidak kontinu ini mengakibatkan adanya pemblokingan pada proses rekonstruksi citranya.

Metode Arithmetic Coding

Arithmetic coding merupakan metode untuk kompresi data lossless

yang menggunakan variabel jumlah bit [7]. Jumlah bit yang digunakan untuk menyandikan setiap simbol

bervariasi sesuai dengan

kemungkinan kemunculan simbol tersebut.

Arithmetic Coding

menggantikan satu deretan simbol input dengan sebuah bilangan

(12)

panjang dan semakin kompleks pesan yang dikodekan, maka akan semakin banyak bit yang diperlukan untuk keperluan tersebut.

Output dari arithmetic coding

adalah sebuah angka yang lebih kecil dari 1 dan lebih besar atau sama dengan 0. Angka tersebut secara 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. Contoh untuk penggunaan metode arithmetic coding ini adalah sebagai berikut, misalnya kata TELEMATIKA akan

di-encode. Maka didapatkan probabilitas seperti tabel 1 berikut.

Tabel 1. Probabilitas Kata “TELEMATIKA” Karakter Probabilitas A 2/10 E 2/10 I 1/10 K 1/10 L 1/10 M 1/10 T 2/10

Setelah probabilitas tiap

karakter diketahui. Tiap

simbol/karakter akan diberikan range tertentu yang nilainya berkisar di antara 0 dan 1, sesuai dengan probabilitas yang ada. Dalam hal ini tidak ada ketentuan urutan-urutan penentuan segmen, asalkan antara

encoder dan decoder melakukan hal yang sama. Maka didapatkan range untuk kata TELEMATIKA seperti pada tabel 2 berikut.

Tabel 2. Range Kata “TELEMATIKA”

Karakter Probabilitas Range

A 2/10 0.00 – 0.20 E 2/10 0.20 – 0.40 I 1/10 0.40 – 0.50 K 1/10 0.50 – 0.60 L 1/10 0.60 – 0.70 M 1/10 0.70 – 0.80 T 2/10 0.80 – 1.00

Dari tabel ini, satu hal yang perlu dicatat adalah tiap karakter melingkupi range yang disebutkan kecuali bilangan yang tinggi.

Jadi huruf/simbol „T‟ sesungguhnya mempunyai range mulai dari 0.80 sampai dengan 0.9999…..

Selanjutnya untuk melakukan proses encoding dipakai algoritma berikut :

-Set low = 0.0

-Set high = 1.0

-- While (simbol input masih ada) do

- Ambil simbol input

- CR = high – low

-High = low + CR*high_range (simbol)

-Low = low + CR*low_range (simbol)

- End While

-Cetak Low

Di sini „Low‟ adalah output dari proses arithmetic coding. Untuk kata „TELEMATIKA‟ di atas, pertama kita ambil karakter „T‟. Nilai CR adalah 1-0 =1. High_range (T) = 1.1-01-0, Low_range(T) = 0.80. Kemudian didapatkan nilai high = 0.00 + CR*1.00 =1.00, low = 0.00 + CR*0.80 = 0.80.

Kemudian diambil karakter „E‟. Nilai CR adalah 1.0–0.8 = 0.2. High_range(E) = 0.40, Low_range (E) = 0.20. Kemudian didapatkan nilai high = 0.80 + CR*0.4 = 0.88, low = 0.80 + CR*0.2 = 0.84. sehingga didapatkan nilai-nilai berikut ini untuk

encoding kata „TELEMATIKA‟ seperti

(13)

Tabel 3. Nilai encoding Kata “TELEMATIKA”

Kalimat Low High CR

Set 0.0 1.0 1.0 T 0.8 1.0 0.2 E 0.84 0.88 0.04 L 0.864 0.868 0.004 E 0.8648 0.8656 0.0008 M 0.86536 0.86544 0.00008 A 0.86536 0.865376 0.000016 T 0.8653728 0.865376 0.0000032 I 0.86537408 0.8653744 0.00000032 K 0.86537424 0.865374272 0.000000032 A 0.86537424 0.8653742464 0.0000000064

Dari proses ini didapatkan nilai Low = 0.86537424. Nilai inilah yang ditransmisikan untuk membawa pesan „TELEMATIKA‟.

Untuk melakukan decoding

dipakai algoritma berikut:

- Ambil encoded-symbol (ES)

- Do

- Cari range dari simbol yang melingkupi ES - Cetak simbol - CR = high_range - low_range - ES = ES – low_range - ES = ES / CR

- - Until simbol habis

Dalam hal ini simbol habis bisa ditandai dengan simbol khusus (End

of Message) atau dengan menyertakan panjang pesan waktu dilakukan transmisi. Untuk pesan yang tadi di- encode (ES = 0.86537424) dilakukan proses

decoding sebagai berikut. Didapatkan range simbol yang melingkupi ES adalah simbol/karakter „T‟. - Low_range = 0.8 - High_range = 1.0 - CR = 1.0-0.8 = 0.2 - ES = 0.86537424 – low_range - ES = 0.06537424 - ES = 0.06537424 / CR - ES = 0.3268712

Untuk ringkasnya, proses

decoding bisa dilihat dalam tabel 4 berikut.

Tabel 4. Hasil decoding Kata “TELEMATIKA”

ES Kalimat Low High CR

0.86537424 T 0.8 1.0 0.2 0.3268712 E 0.2 0.4 0.2 0.634356 L 0.6 0.7 0.1 0.34356 E 0.2 0.4 0.2 0.7178 M 0.7 0.8 0.1 0.178 A 0.0 0.2 0.2 0.89 T 0.8 1.0 0.2 0.45 I 0.4 0.5 0.1 0.5 K 0.5 0.6 0.1 0 A 0.0 0.2 0.2

(14)

Implementasi Arithmetic Coding harus memperhatikan kemampuan encorder dan decoder, yang pada umumnya mempunyai keterbatasan jumlah mantissa (angka dibelakang koma). Hal ini dapat menyebabkan “error”/ kesalahan apabila suatu arithmetic coding

mempunyai kode dengan floating point yang sangat panjang.

Masalah ini bisa diatasi dengan mengimplementasikan

arithmetic coding menggunakan bilangan integer (16 atau 32 bit integer). Hal ini juga amat mempercepat proses, karena perhitungan integer jauh lebih cepat dari perhitungan floating point. Metode Huffman Coding

Metode huffman coding

merupakan salah satu metode yang terdapat pada teknik entropy coding. Dalam huffman coding, panjang blok dari keluaran sumber dipetakan dalam blok berdasarkan panjang variabel. Cara seperti ini disebut sebagai fixed to variable-length coding. Ide dasar dari cara huffman

ini adalah memetakan mulai simbol yang paling banyak terdapat pada sebuah urutan sumber sampai dengan yang jarang muncul menjadi urutan biner. Dalam variable-length coding, sinkronisasi merupakan suatu masalah. Ini berarti harus terdapat satu cara untuk memecahkan urutan biner yang diterima ke dalam suatu

codeword.

Seperti yang disebutkan di atas, bahwa ide dari huffman coding

adalah memilih panjang codeword

dari yang paling besar

probabilitasnya sampai dengan urutan codeword yang paling kecil probabilitasnya. Apabila kita dapat memetakan setiap keluaran sumber dari probabilitas pi ke sebuah

codeword dengan panjang 1/pi dan pada saat yang bersamaan dapat

memastikan bahwa dapat

didekodekan secara unik, kita dapat mencari rata – rata panjang kode

H(x). Huffman coding dapat mendekodekan secara unik dengan

H(x) minimum, dan optimum pada keunikan dari kode – kode tersebut. Algoritma dari huffman encoding

adalah :

1. Pengurutan keluaran sumber dimulai dari probabilitas paling tinggi.

2. Menggabungkan dua

keluaran yang sama dekat ke dalam satu keluaran yang probabilitasnya merupakan jumlah dari probabilitas sebelumnya.

3. Apabila setelah dibagi masih terdapat dua keluaran, maka lanjut kelangkah berikutnya, namun apabila masih terdapat lebih dari dua, kembali ke langkah satu.

4. Memberikan nilai 0 dan 1 untuk keluaran.

Apabila sebuah keluaran merupakan hasil dari penggabungan dua keluaran dari langkah sebelumnya, maka berikan 0 dan 1 untuk codeword-nya, ulangi sampai keluaran merupakan satu keluaran yang berdiri sendiri.

Untuk menetukan kode-kode dengan kriteria bahwa kode harus unik dan karakter yang sering muncul dibuat kecil jumlah bitnya, kita dapat menggunakan algoritma Huffman. Sebagai contoh, sebuah file yang akan dimampatkan berisi karakter-karakter “PERKARA”. Dalam kode ASCII masing-masing karakter dikodekan sebagai : P = 50H = 01010000B E = 45H = 01000101B R = 52H = 01010010B K = 4BH = 01001011B A = 41H = 01000001B Maka jika diubah dalam rangkaian bit, “PERKARA” menjadi :

010100000100010101010010010010 11010000010101001001000001 P E R K A R A

(15)

Tugas kita yang pertama adalah menghitung frekuensi kemunculan masing-masing karakter, jika kita hitung ternyata P muncul sebanyak 1 kali, E sebanyak 1 kali, R sebanyak 2 kali, K sebanyak 1 kali dan A sebanyak 2 kali. Jika disusun dari yang kecil :

E = 1 A = 2 K = 1 R = 2 P = 1

Untuk karakter yang memiliki frekuensi kemunculan sama seperti E, K dan P disusun menurut kode ASCII-nya, begitu pula untuk A dan R.

Selanjutnya buatlah node masing-masing karakter beserta frekuensinya seperti terlihat pada gambar 5.

P,1

E,1

K,1

A,2

R,2

Gambar 5. Langkah 1 algoritma Huffman

Ambil 2 node yang paling kiri (P dan E), lalu buat node baru yang merupakan gabungan dua node tersebut, node gabungan ini akan memiliki cabang masing-masing 2 node yang digabungkan tersebut. Frekuensi dari node gabungan ini adalah jumlah frekuensi cabang-cabangnya. Jika kita gambarkan akan menjadi seperti gambar 6.

E,1

K,1

P,1

A,2

R,2

EK,2

Gambar 6. Langkah 2 algoritma Huffman.

Jika kita lihat frekuensi tiap node pada level paling atas, EK=2, P=1, A=2, dan R=2. Node-node tersebut harus diurutkan lagi dari yang paling kecil, jadi node EK harus digeser ke sebelah kanan node P

dan ingat jika menggeser suatu node yang memiliki cabang, maka seluruh cabangnya harus diikutkan juga. Setelah diurutkan hasilnya akan menjadi sebagai seperti gambar 7

E,1

K,1

P,1

EK,2

A,2

R,2

Gambar 7 Langkah 3 algoritma Huffman.

Setelah node pada level paling atas diurutkan (level berikutnya tidak perlu diurutkan), berikutnya kita gabungkan kembali 2 node paling kiri seperti yang pernah dikerjakan sebelumnya. Node P digabung dengan node EK menjadi node PEK dengan frekuensi 3 dan gambarnya akan menjadi seperti gambar 8.

E,1

K,1

P,1

R,2

A,2

EK,2

PEK,3

Gambar 8. Langkah 4 algoritma Huffman

Kemudian diurutkan lagi menjadi seperti gambar 9

(16)

Gambar 9. Langkah 5 algoritma Huffman

Demikian seterusnya sampai diperoleh pohon Huffman seperti gambar 10 berikut :

E,1

K,1

P,1

EK,2

A,2

R,2

PEK,3

AR,4

PEKAR,7

Gambar 10. Langkah 6 algoritma Huffman.

Setelah pohon Huffman terbentuk, berikan tanda bit 0 untuk setiap cabang ke kiri dan bit 1 untuk setiap cabang ke kanan seperti gambar 11 berikut :

E,1

K,1

P,1

EK,2

A,2

R,2

PEK,3

AR,4

PEKAR,7

1

1

1

1

0

0

0

Gambar 11. Langkah 7 algoritma Huffman.

Untuk mendapatkan kode Huffman masing-masing karakter, telusuri karakter tersebut dari node yang paling atas (PEKAR) sampai ke node karakter tersebut dan susunlah bit-bit yang dilaluinya. Untuk mendapatkan kode Karakter E, dari node PEKAR kita harus menuju ke node PEK melalui bit 0 dan selanjutnya menuju ke node EK melalui bit 1, dilanjutkan ke node E melalui bit 0, jadi kode dari karakter E adalah 010. Untuk mendapatkan kode Karakter K, dari node PEKAR kita harus menuju ke node PEK melalui bit 0 dan selanjutnya menuju ke node EK melalui bit 1, dilanjutkan ke node K melalui bit 1, jadi kode dari karakter K adalah 011. Untuk mendapatkan kode Karakter P, dari node PEKAR kita harus menuju ke node PEK melalui bit 0 dan selanjutnya menuju ke node P melalui bit 0, jadi kode dari karakter P adalah 00. Untuk mendapatkan kode Karakter A, dari node PEKAR kita harus menuju ke node AR melalui bit 1 dan selanjutnya menuju ke node A melalui bit 0, jadi kode dari karakter A adalah 10. Terakhir, untuk mendapatkan kode Karakter R, dari node PEKAR kita harus menuju ke

E,1

K,1

P,1

R,2

A,2

EK,2

PEK,3

(17)

node AR melalui bit 1 dan selanjutnya menuju ke node R melalui bit 1, jadi kode dari karakter R adalah 11. Hasil akhir kode Huffman dari file di atas adalah :

E = 010 K = 011 P = 00 A = 10 R = 11

Dengan kode ini, file yang berisi karakter-karakter “PERKARA” akan menjadi lebih kecil, yaitu :

00 010 11 011 10 11 10 = 16 bit P E R K A R A

Dengan Algoritma Huffman berarti file ini dapat kita hemat sebanyak 56-16 = 40 bit. Nisbah = 100% -

%

100

56

16

x

= 71,43%

Untuk proses pengembalian ke file aslinya, kita harus mengacu kembali kepada kode Huffman yang telah dihasilkan, seperti contoh di atas hasil pemampatan adalah : 000101101100 1110

Ambillah satu-persatu bit hasil pemampatan mulai dari kiri, jika bit tersebut termasuk dalam daftar kode, lakukan pengembalian, jika tidak ambil kembali bit selanjutnya dan jumlahkan bit tersebut. Bit pertama dari hasil pemampatan di atas adalah 0, karena 0 tidak termasuk dalam daftar kode kita ambil lagi bit kedua yaitu 0, lalu digabungkan menjadi 00,

jika kita lihat daftar kode 00 adalah kode dari karakter P.

Selanjutnya bit ketiga diambil yaitu 0, karena 0 tidak terdapat dalam daftar kode, kita ambil lagi bit keempat yaitu 1 dan kita gabungkan menjadi 01. 01 juga tidak terdapat dalam daftar, jadi kita ambil kembali bit selanjutnya yaitu 0 dan digabungkan menjadi 010. 010 terdapat dalam daftar kode yaitu karakter E. Demikian selanjutnya dikerjakan sampai bit terakhir sehingga akan didapatkan hasil pengembalian yaitu PERKARA.

Pemrograman dengan

menggunakan algoritma Huffman, menyertakan daftar kode dalam file pemampatan, selain itu jumlah byte disertakan sebagai acuan file untuk pengembalian kebentuk file aslinya. HASIL DAN PEMBAHASAN Citra Uji

Dalam tulisan ini dilakukan pengujian kompresi terhadap citra uji. Agar hasil pengujian dapat dibandingkan hasilnya, maka citra yang diuji tidak dapat satu buah citra saja. Berikut ini dilampirkan sepuluh citra yang akan diuji. Citra uji tersebut berformat BMP dengan kapasitas (ukuran) citra yang berbeda – beda antara satu dengan yang lainnya, dapat dilihat pada gambar 12 berikut ini :

(18)

Gambar 12 : Citra Uji

Proses Kompresi

Proses Kompresi Arithmetic Coding

Pada proses kompresi

arithmetic coding menggunakan software Minerva, kita harus memilih tipe algoritma kompresi, seperti yang ada pada gambar 13 berikut ini :

Gambar 13. Pemilihan Kompresi Arithmetic Coding

Untuk melakukan kompresi citra dengan metode arithmetic coding kita memilih pilihan tipe

kompresi arithmetic entropy coding. Setelah melakukan pemilihan dan pengaturan pada menu – menu yang ada pada program seperti gambar 3.2 di atas, selanjutnya klik tombol “OK“. Pada proses kompresi ini akan diperlihatkan rasio kompresi, waktu yang dibutuhkan untuk melakukan kompresi, dan ukuran citra hasil kompresi.

Proses Kompresi Huffman Coding

Pada proses kompresi huffman coding menggunakan software Minerva, kita harus memilih tipe algoritma kompresi, seperti yang ada pada gambar 14 berikut ini :

(19)

Gambar 14. Pemilihan Kompresi Huffman Coding

Untuk melakukan kompresi citra dengan metode hffman coding

kita memilih pilihan tipe kompres

huffman coding. Setelah melakukan pemilihan dan pengaturan pada menu – menu yang ada pada program seperti gambar 3.3, selanjutnya klik tombol “OK“. Pada proses kompresi ini akan diperlihatkan rasio kompresi, waktu yang dibutuhkan untuk melakukan kompresi, dan ukuran citra hasil kompresi.

Hasil Kompresi Arithmetic Coding Citra digital yang telah dikompresi menggunakan metode

arithmetic coding dapat dilihat pada gambar 15 berikut ini :

Gambar 15. Hasil Kompresi Citra dengan Arithmetic Coding

Dimana citra hasil kompresi yang dihasilkan jika dilihat secara kasat mata kita tidak dapat melihat perbedaan dengan citra aslinya. Hasil kompresi terhadap citra uji di atas dapat kita lihat besar ukuran filenya, kecepatan kompresi, dan rasio kompresinya pada tabel 5 berikut ini.

Tabel 5. Ukuran Hasil Kompresi Arithmetic Coding

Nama Citra Ukuran Asli Ukuran

Setelah Kompresi Kecepatan kompresi Rasio kompresi (a) 1.16 Mb 64 Kb 5.491 detik 19 : 1 (b) 2.25 Mb 86 Kb 5.497 detik 27 : 1 (c) 550 Kb 12 Kb 5.480 detik 48 : 1 (d) 995 Kb 21 Kb 0.008 detik 46 : 1 (e) 1.41 Mb 47 Kb 0.013 detik 31 : 1

(20)

(f) 0.97 Mb 25 Kb 0.008 detik 41 : 1

(g) 2.25 Mb 112 Kb 0.026 detik 21 : 1

(h) 956 Kb 13 Kb 0.008 detik 77 : 1

(i) 1.25 Mb 39 Kb 0.011 detik 34 : 1

(j) 1.05 Mb 68 Kb 0.014 detik 16 : 1

Data pada tabel 5 di atas diperoleh dari perhitungan yang dilakukan oleh software “Minerva“.

Dari data tersebut dapat kita lihat bahwa metode arithmetic coding

mampu melakukan kompresi citra digital dengan tingkat rasio yang tinggi, sehingga menghasilkan citra terkompresi dengan ukuran yang kecil.

Dari sini dapat dilihat citra yang terkompresi kalau dilihat dengan mata kita sendiri tidak terlihat adanya perbedaan dari citra aslinya, walaupun ukuran file dan data awal dari citra tersebut sudah jauh berkurang dibandingkan citra aslinya.

Keterangan yang didapatkan pada tabel 5 di atas diperoleh berdasarkan informasi yang direkam oleh software Minerva yang digunakan. Gambar 16 dan gambar 17 berikut ini secara berurutan memperlihatkan waktu kompresi, rasio kompresi, dan ukuran file hasil kompresi terhadap citra a.

Gambar 16. Waktu Proses

Kompresi Arithmetic Coding citra Uji a

Gambar 17. Ukuran Hasil kompresi,

Rasio kompresi Arithmetic Coding Citra Uji a

(21)

Hasil Kompresi Huffman Coding Citra digital yang telah dikompresi menggunakan metode

huffman coding dapat dilihat pada gambar 18 berikut ini :

(a) (b) (c) (d) (e) (f) (g) (h) (i) (j)

Gambar 18 : Hasil Kompresi Citra dengan Huffman Coding

Dimana citra hasil kompresi yang dihasilkan jika dilihat secara kasat mata kita tidak dapat melihat perbedaan dengan citra aslinya. Hasil kompresi terhadap citra uji di

atas dapat kita lihat besar ukuran filenya, kecepatan kompresi, dan rasio kompresinya pada tabel 6 berikut ini.

Tabel 6. Ukuran Hasil Kompresi Huffman Coding

Nama citra Ukuran asli

Ukuran Setelah kompresi Kecepatan kompresi Rasio Kompresi (a) 1.16 Mb 70 Kb 0.011 detik 17 : 1 (b) 2.25 Mb 95 Kb 0.017 detik 25 : 1 (c) 550 Kb 14 Kb 0.004 detik 42 : 1 (d) 995 Kb 24 Kb 0.006 detik 41 : 1 (e) 1.41 Mb 52 Kb 0.010 detik 28 : 1 (f) 0.97 Mb 27 Kb 0.005 detik 38 : 1 (g) 2.25 Mb 128 Kb 0.021 detik 18 : 1 (h) 956 Kb 15 Kb 0.006 detik 66 : 1 (i) 1.25 Mb 44 Kb 0.008 detik 29 : 1 (j) 1.05 Mb 76 Kb 0.010 detik 14 : 1

Data pada tabel 6 di atas diperoleh dari perhitungan yang dilakukan oleh software “Minerva“.

Dari data tersebut dapat kita lihat bahwa metode huffman coding

mampu melakukan kompresi citra digital dengan waktu yang relatif singkat, sehingga waktu yang dibutuhkan untuk menghasilkan citra terkompresi lebih singkat.

Dari sini dapat dilihat citra yang terkompresi kalau dilihat dengan mata kita sendiri tidak terlihat adanya perbedaan dari citra aslinya, walaupun ukuran file dan data awal dari citra tersebut sudah jauh berkurang dibandingkan citra aslinya.

Keterangan yang didapatkan pada tabel 6 di atas diperoleh berdasarkan informasi yang direkam

(22)

oleh software Minerva yang digunakan. Gambar 19 dan gambar 20 berikut ini secara berurutan memperlihatkan waktu kompresi, rasio kompresi, dan ukuran file hasil kompresi terhadap citra a.

Gambar 19. Waktu Proses Kompresi Huffman Coding citra Uji

a

Gambar 20. Ukuran Hasil kompresi,

Rasio kompresi Huffman Coding Citra Uji a

Perbandingan Hasil Kompresi Setelah dilakukan kompresi terhadap masing – masing citra uji dengan menggunakan teknik kompresi arithmetic coding dan

huffman coding dapat kita teliti hasilnya pada gambar 21 berikut ini : Citra Hasil Kompresi dengan Arithmetic Coding :

(a) (b) (c) (d) (e) (f) (g) (h) (i) (j)

Citra Hasil Kompresi dengan Huffman Coding :

(a) (b) (c)

(23)

(e)

(f)

(g) (h)

(i) (j)

Gambar 21. Perbandinga Hasil Kompresi Citra Arithmetic Coding dengan Huffman Coding

Secara kasat mata kita tidak dapat memperhatikan letak perbedaan antara citra digital hasil kompresi dengan arithmeti coding

dan huffman coding. Namun melalui analisa menggunakan software Minerva kita dapat mengetahui perbandingan hasil kompresi antara kedua citra digital tersebut. Karena pada prinsipnya susunan dari simbol – simbol yang merepresentasikan

citra uji tersebut telah mengalami perubahan. Pada tabel 7 berikut ini

akan diperlihatkan hasil

perbandingan antar arithmetic coding

dengan huffman coding terhadap citra uji yang telah ditentukan sebelumnya.

Tabel 7. Perbandingan Ukuran

Arithmetic Coding dengan Huffman Coding

Nama citra

Ukuran asli

Arithmetic Coding Huffman Coding

Ukuran Kecepatan Rasio Ukuran Kecepatan Rasio (a) 1.16 Mb 64 Kb 5.491 detik 19 : 1 70 Kb 0.011 detik 17 : 1 (b) 2.25 Mb 86 Kb 5.497 detik 27 : 1 95 Kb 0.017 detik 25 : 1 (c) 550 Kb 12 Kb 5.480 detik 48 : 1 14 Kb 0.004 detik 42 : 1 (d) 995 Kb 21 Kb 0.008 detik 46 : 1 24 Kb 0.006 detik 41 : 1 (e) 1.41 Mb 47 Kb 0.013 detik 31 : 1 52 Kb 0.010 detik 28 : 1 (f) 0.97 Mb 25 Kb 0.008 detik 41 : 1 27 Kb 0.005 detik 38 : 1 (g) 2.25 Mb 112 Kb 0.026 detik 21 : 1 128 Kb 0.021 detik 18 : 1 (h) 956 Kb 13 Kb 0.008 detik 77 : 1 15 Kb 0.006 detik 66 : 1 (i) 1.25 Mb 39 Kb 0.011 detik 34 : 1 44 Kb 0.008 detik 29 : 1 (j) 1.05 Mb 68 Kb 0.014 detik 16 : 1 76 Kb 0.010 detik 14 : 1

Dari tabel 7 di atas dapat kita ketahui bahwa hasil kompresi terhadap citra uji dengan menggunakan metode arithmetic coding memiliki ukuran citra terkompresinya lebih kecil

dibandingkan metode huffman coding, sedangkan dari segi waktu pelaksanaan proses kompresinya metode huffman coding lebih cepat dari pada metode arithmetic coding. Untuk rasio kompresi, metode

(24)

arithmetic coding lebih besar dibandingkan metode huffman coding.

KESIMPULAN

Berdasarkan hasil penelitian yang dilakukan untuk kompresi citra digital dengan menggunakan metoda

arithmetic coding dan huffman coding

dapat ditarik kesimpulan sebagai berikut :

1. Algoritma arithmetic coding ini cukup baik dipakai untuk kompresi data,

2. Algoritma ini akan lebih optimal dibandingkan dengan huffman coding apabila ada data atau

simbol yang memiliki

probabilitas besar,

3. Banyaknya simbol dan

frekuensi masing – masing simbol menentukan nilai entropi suatu data,

4. Berdasarkan hasil penelitian, waktu kompresi huffman coding

lebih cepat dibandingkan dengan arithmetic coding,

5. Pada kompresi dengan

arithmetic coding, data hasil kompresi lebih kecil (lebih efisien) dibandingkan huffman coding.

DAFTAR PUSTAKA

[1] Munir, Rinaldi. 2003.

Pengolahan Citra Digital dengan Pendekatan Algoritmik. Informatika. Bandung.

[2] Gonzales, Rafael C. Woods, Richard E. 2002. Digital Image Processing Second Edition. Prentice Hall. New Jersey. [3] Marvin, CH Wijaya dan Priyono,

Agus. 2007. Pengolahan Citra Digital Menggunakan Matlab, Informatika Bandung.

[4] Gonzales, Rafael C. Woods, Richard E. Image Processing Using Matlab

.

[5] Erhardt, A. Ferron, Theory and Applications of Digital Image Processing. http://www.dip-seminaronline.com/english/ [6] Kumar, Satish. 2001. Introduction To Image Compression. http://www.lee.et.todressen.de/ 2001

[7] Santoso, Petrus. 2001. Studi Kompresi Data dengan Metode Arithmetic Coding,

http://puslit.petra.ac.id/journals/ electrical/ 14. 2001

Gambar

Gambar 2. Nilai Intensitas Citra  Digital
Gambar 4. Proses Konversi Citra  Analog Ke Citra Digital Beserta
Tabel 1. Probabilitas Kata
Tabel 3. Nilai encoding Kata “TELEMATIKA”
+7

Referensi

Dokumen terkait

Kepatahan tulang femur perlu dirawat dengan segera kerana pesakit akan mengalami komplikasi lain sekiranya ia lewat dirawat terutamanya kepatahan

undang-undang atau peraturan umum yang ditetapkan oleh yang berkuasa ataupun mengganggu hak orang lain, sedangkan pembatasan pada hak milik atas tanah tidak boleh

Selain sikap tubuh yang salah yang seringkali menjadi kebiasaan, beberapa aktivitas berat seperti melakukan aktivitas dengan posisi berdiri lebih dari 1 jam dalam

Kasus SP3 Illog Riau tahun 2008 dan lima terpidana korupsi kehutanan di Siak dan Pelalawan menggambarkan dengan jelas korporasi adalah actor utama pemberi suap agar izin larangan

Penelitian Eksperimental pada Kelinci yang Dilakukan Abrasi Ileum CORTISOL, TRANSFORMING GROWTH FACTOR β (TGF-β) LEVEL, AND THE INTRAPERITONEAL ADHESION DEGREE.. AFTER LAPAROSCOPY

Menurut Peraturan Direktur Jenderal Pajak Nomor PER-32/PJ/2015 adalah pajak atas penghasilan berupa gaji, upah, honorarium, tunjangan dan pembayaran lain dengan

Penyer ahan Mahasi swa Magang uni ver si t as pendi di kan Muhammadi yah Sor ong diSMP l eb STKI P Muhammadi yah Kabupat enSor ong... Penar i kan Mahasi swa Magang uni ver si t as

Pandangan Geertz tentang praktik keagamaan dalam kebudayaan merupakan sebuah sistem simbol yang dapat memberikan motivasi yang kuat, menyebar, dan tidak mudah menghilang di