TUGAS AKHIR
IMPLEMENTASI METODE RUN LENGTH ENCODING DALAM KOMPRESI CITRA DENGAN CITRA HITAM PUTIH
Diajukan Untuk Memenuhi Tugas dan Syarat-syarat Guna Memperoleh Gelar Sarjana Teknik pada Fakultas Teknik Jurusan Teknik Elektro
Universitas Muhammadiyah Surakarta
Disusun oleh :
AGUS SRIWIYANTO
D 400 080 007
FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO
UNIVERSITAS MUHAMMADIYAH SURAKARTA
IMPLEMENTASI METODE RUN LENGTH ENCODING
DALAM KOMPRESI CITRA DENGAN CITRA HITAM PUTIH
Agus Sriwiyanto
FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO UNIVERSITAS MUHAMMADIYAH SURAKARTA
E-mail : [email protected]
ABSTRAKSI
Pada era informasi seperti sekarang ini, dunia berkembang diikuti dengan pengembangan ilmu pengetahuan dan teknologi yang begitu pesat. Hal ini terlihat dengan beragamnya inovasi- inovasi yang mampu tercipta dengan pengembangan dalam bidang ilmu pengetahuan dan teknologi. Salah satunya adalah pengembangan dalam bidang kompresi citra (Image Compression). Dengan tunjuan memanpatkan citra sehingga mengurangi kebutuhan ruang memori dalam storage lebih sedikit.
Penelitian ini membahas tentang bagaimana cara mengimplementasikan metode Run Length Encoding dalam program kompresi citra, yang bertujuan untuk melakukan kompresi ukuran memori suatu citra menjadi lebih kecil, sehingga keterbatasan memori pada media penyimpanan dapat diatasi. Metode Run Length Encoding yaitu, teknik mengkompresi citra yang berisi karakter-karakter berulang, jadi pada saat karakter yang diterima lebih dari tiga karakter berderet, maka penggunaan metode ini sangat efektif. Selain itu digunakannya bahasa pemrograman Matlab, karena selain andal untuk menampilkan data-data vector atau matriks dapat juga digunakan untuk menampilkan data-data citra. Hal ini disebabkan data citra pada dasarnya berupa matiks warna dengan derajat keabuan (Gray Scale) tertentu.
Dari hasil penelitian ini, dapat disimpulkan bahwa program kompresi ini melalui dua tahab yaitu encode dan decode. Encode adalah mengcodekan intensitas citra sehingga didapatkan hasil citra yang lebih kecil dari citra aslaiya sedangkan decode yaitu mengembalikan atau menyusun kembali intensitas yang dicodekan menjadi citra yang semula sesuai dengan citra aslinya. Hasil citra yang terkompresi memiliki ukuran lebih kecil dari ukuran citra asli . mampu mengkompesi dengan nilai rata rata mencapai 7.287 Kb.
Kata kunci : Image Compression, Run Length Encoding, Matlab
1. PENDAHULUAN
Pada era informasi seperti sekarang ini, siapa yang tidak kenal yang namanya tempat penyimpanan data atau yang sering disebut memori. Merupakan media penyimpan berbagai macam data seperti bentuk teks, gambar, audio, dan video atau yang sering disebut dengan multimedia. Akan tetapi data yang begitu besar sangat mempengaruhi kebutuhan ruang memori dalam storage lebih sedikit. Dalam hal ini dirasakan sangat penting keberadaan suatu metode kompresi dengan
performa tinggi, yang bertujuan untuk mengurangi penggunaan memori.
nilai data tunggal dan dihitung panjangnya. Teknik kompresi bersifat lossless sehingga mampu merekonstruksi file hasil kompresi kebentuk asalnya.
Dalam Tugas Akhir ini mencoba mengimplementasikan metode Run Length Encoding. Karena metode ini pada dasarnya memampatkan data yang berisi karakter-karakter berulang, di mana data yang akan dikompresi berupa citra hitam putih dan apabila citra bukan berupa citra hitam putih maka harus diubah terlebih dahulu . Oleh sebab itu kompresi Run Length Encoding ini mempunyai daya kompresi yang sangat besar sehingga efisiensinya juga sangat besar.
a. Format Pixel 1 Bit (Citra Biner Monocrom)
Citra biner diperoleh melalui proses pemisahan pixel – pixel berdasarkan derajat keabuan yang dimilikinya. Pada citra biner, setiap titik bernilai 0 dan 1, masing – masing merepresentasikan warna tertentu. Nilai 0 diberikan untuk pixel yang memiliki derajat keabuan lebih kecil dari nilai batas yang ditentukan, sementara pixel yang memiliki derajat keabuan yang lebih besar dari batas akan di ubah menjadi nilai 1. Pada standar citra untuk ditampilkan di layer computer, nilai biner ini berhubungan dengan ada tidaknya cahaya yang ditembakkan oleh
electron gun yang terdapat di dalam monitor komputer. Angka 0 menyatakan tidak ada cahaya, dengan demikian warna yang direpresentasikan adalah hitam. Untuk angka 1, terdapat cahaya, sehingga warna yang direpresentasikan adalah putih. Standar tersebut disebut sebagai standar citra cahaya, sedangkan standar citra tinta / cat adalah berkebalikan, karena biner tersebut menyatakan ada tidaknya tinta. Setiap titik pada citra hanya membutuhkan 1 bit, sehingga setiap byte dapat menampung informasi 8 bit. Ilustrasi dari citra biner bisa dilihat pada gambar 1 :
Gambar 1. Ilustrasi Citra Biner Monokrom.
b. Format Pixel 8 bit (Citra Gray Scale)
Citra skala keabuan memberi
Gambar 2. Ilustrasi Citra Grey Scale.
c. Format Pixel 24 Bit (Citra Warna/True Color)
Pada citra warna, setiap titik mempunyai warna yang paling spesifik yang merupakan kombinasi dari 3 warna dasar, yaitu merah warna dasarnya adalah sian, magenta, kuning (cyan, magenta, yellow) CMY. Keduanya saling berkomponen. Format citra ini sering disebut sebagai citra RGB (Red-Green-Blue). Setiap warna dasar mempunyai intensitas sendiri dengan nilai maksimum 255 (8bit), misalnya warna kuning merupakan kombinasi warna merah dan hijau sehingga nilai RGB nya adalah 255 255 0. Sedangkan warna ungu muda, nilai RGB nya adalah 150 0 150, semua warna yang ada, inilah sebabnya format ini dinamakan true color. Ilustrasi dari citra ini dapat dilihat pada gambar 3 :
Gambar 3. Ilustrasi Citra True Color.
Teknik Kompresi Citra
Teknik kompresi pada citra dapat dibagi menjadi dua kategori besar, yaitu
a. Lossy Compression
Lossy compression menyebabkan adanya perubahan data dibandingkan sebelum dilakukan proses kompresi. Sebagai gantinya
lossy compression memberikan derajat kompresi lebih tinggi. Tipe ini cocok untuk kompresi file suara digital dan gambar digital. File suara dan gambar secara alamiah masih bisa digunakan walaupun tidak berada pada kondisi yang sama sebelum dilakukan kompresi.
Ciri-ciri lossy compression:
1. Ukuran file citra menjadi lebih kecil dngan menghilangkan beberapa informasi dalam citra asli.
2. Teknik ini mengubah detail dan warna pada file citra menjadi lebih sederhana tanpa terlihat perbedaan yang mencolok dalam pandangan manusia, sehingga ukuranya menjadi lebih kecil.
3. Biasanya digunakan pada citra foto atau image lain yang tidak terlalu memerlukan detail citra, dimana kehilangan bit rate foto tidak berpengaruh pada citra.
b. Lossless Compression
Sebaliknya Lossless Compression
Gambar 4. Contoh Dari Chroma Subsampling.
ini tidak diijinkan ada bit yang hilang dari data pada proses kompresi.
Beberapa teknik lossless:
1. Color reduction: untuk warna-warna tertentu yang mayoritas dimana informasi warna disimpan dalam color palette. 2. Chroma subsampling: teknik yang
memanfaatkan fakta bahwa mata manusia merasa brightness (luminance) lebih
berpengaruh daripada warna
(chrominance) itu sendiri, maka dilakukan pengurangan resolusi warna dengan disampling ulang. Biasanya digunakan pada sinyal YUV.
3. Chroma Subsampling terdiri dari 3 komponen: Y (luminance) : U (CBlue) : V (CRed) seperti dilihat pada gambar 4.
Run Length Encoding (RLE)
Algoritma kompresi ini merupakan algoritma kompresi dasar, yang sering kali dipakai sebagai satu prakomputasi untuk mengurangi penyimpanan. Ide dasar algoritma
Run Length Encoding adalah mengubah suatu blok huruf yang sama menjadi bentuk (dikodekan) blok huruf yang lain, tetapi informasi tentang huruf tersebut dan jumlahnya dalam blok tetap sama. Algoritma
Run Length Encoding sering digunakan untuk memampatkan data yang berisi karakter – karakter berulang. Saat kaarakter yang sama diterima secara berderetan lebih dari tiga karakter berderetan maka algoritma Run Length Encoding dirasa efektif trehadap file – file grafis dimana berisi deretan karakter yang sama tersebut.
Teknik yang digunakan pada algoritma ini adalah dengan mencari karakter yang berulang lebih dari 3 kali pada suatu file untuk
kemudian diubah menjadi sebuah bit penanda (marker bit) diikuti oleh sebuah bit yang memberikan informasi jumlah karakter yang berulang dan kemudian ditutup dengan karakter yang dikompres. Yang dimaksud dengan bit penanda di sini adalah deretan 8 bit yang membentuk suatu karakter ASCII (American Standard Code For Information Intercharg). Jadi jika suatu file mengandung karakter yang berulang, misalnya AAAAAAAA atau dalam biner 01000001 sebanyak 8 kali, maka data tersebut dikompres menjadi 11111110 00001000 01000001. Dengan demikian kita dapat menghemat sebanyak 5 bytes. Agar lebih jelas algoritma
Run-Length dapat dilihat pada gambar 5. Deretan data sebelah kiri merupakan deretan data pada file asli, sedangkan deretan data sebelah kanan merupakan deretan data hasil pemampatan dengan algoritma Run Length Encoding.
Dengan menggunakan metoda
pengambilan probabilitas seperti diatas maka teknik Run Length Encoding tidak membutuhkan waktu komputasi yang lama seperti halnya metode yang digunakan pada teknik arithmetic coding. Metode tersebut akan sangat efektif bila file yang dikompres merupakan deretan karakter yang sama seperti halnya pada file - file gambar.
Namun hal tersebut tidak berlaku pada file-file dokumen umum dimana kemungkinan penggunaan karakter sangat heterogen. Dengan kata lain, jika file yang ingin dikompres tidak memiliki deretan lebih dari 3 karakter maka file hasil kompresi akan sama dengan file aslinya.
Gambar 6. Flowchar Penelitian
2. METODE PENELITIAN
Urutan secara keseluruhan penelitian seperti terlihat pada gambar 6. Flowchart penelitian Proses yang dilakukan pada program kompresi citra ini terdapat dua proses, yaitu proses kompresi dan dekompresi. Proses kompresi merupakan proses dimana program kompresi citra melakukan proses encoding, yaitu dengan terlebih dahulu memanggil citra yang akan di-encode dan citra tersebut merupakan citra hitam putih. Kemudian citra tersebut diberikan nilainya pada setiap barisnya dimana putih dilambangkan dengan 1 dan hitam dilambangkan dengan 0. Rentetan 0 dan 1 tersebut kemudian
di-encode sehingga diperoleh jumlah masing-masing dari 0 dan 1 tersebut. Value (0 dan 1) kemudian dimasukkan kedalam table beserta berapa jumlahnya pada GUI Matlab. Sedangkan untuk proses dekompresi, pada GUI Matlab akan membaca data dari table hasil kompresi untuk kemudian disusun kembali sesuai dengan urutannya dan membentuk kembali citra yang sesuai dengan aslinya.
Untuk lebih jelasnya seperti terlihat pada
3. PENGUJIAN PROGRAM DAN ANALISA HASIL
Berikut merupakan screenshot pengujian program dengan metode Run Length Encoding yamg melalui 2 tahap yaitu kompresi dan dekompresi yang ditunjukkan gambar 8, 9 10.
.Gambar 8. Pengujian Program Kompresi.
Gambar 9. Hasil Kompresi Citra RLE.
Gambar 10. Pengujian Program Dekompresi.
Analisa hasil merupakan analisa dari perbandingan ukuran citra asli dengan ukuran citra hasil kompresi. Berikut beberapa tahap dalam menganalisa hasil.
1. Data Citra Asli
Tabel 1. Tabel Spesifikasi Citra Asli (Citra Hitam Putih)
2. Data Citra Terkompresi
Tabel 2. Spesifikasi Citra Terkompresi Dengan Format JPG.
Spesifikasi Citra Terkompresi Dengan Format JPG
No Nama Citra Ukuran Citra (KB)
Format Citra 1 Mbah_Maridjan 34.974 JPG 2 Soekarno 16.656 JPG
Tabel 3. Spesifikasi Citra Terkompresi Dengan Format BMP.
Spesifikasi Citra Terkompresi Dengan Format BMP
No Nama Citra Ukuran Citra (KB)
Format Citra 1 Alexander Graham Bell 2.794 BMP
2 UMS 8.05 BMP
Tabel 4. Spesifikasi Citra Terkompresi Dengan Format PNG.
Spesifikasi Citra Terkompresi Dengan Format PNG No Nama Citra Ukuran
Citra (KB)
Format Citra 1 Baboon 0.115 PNG
2 Lena 0.109 PNG
Spesifikasi Citra Asli (Citra Hitam Putih)
No Nama Citra Ukuran Citra (KB)
Format Citra 1 Mbah_Maridjan 10.53 JPG
2 Soekarno 6.016 JPG 3 Alexander Graham Bell 5.662 BMP
4 UMS 5.662 BMP
5 Baboon 3.484 PNG
6 Lena 1.937 PNG
7 H. Agus Salim 1.562 TIF
Tabel 5. Spesifikasi Citra Terkompresi Dengan Format TIF.
Tabel 6. Spesifikasi Citra Terkompresi Dengan Format GIF.
3. Data Citra Dekompresi
Tabel 7. Spesifikasi Citra Dekompresi
Tabel 10. Spesifikasi Citra Dekompresi Dengan Format TIF.
Tabel 11. Spesifikasi Citra Dekompresi Dengan Format GIF.
Spesifikasi Citra Dekompresi Dengan Format GIF No Nama Citra Ukuran
a. Melakukan kompresi citra dengan
menggunakan metode Run-length
encoding yaitu, menggunakan gambar hitam putih, apabila citra bukan hitam putih maka akan dirubah terlebih dahulu. Penggunan citra hitam putih dikarenakan citra hitam putih memiliki banyak karakter-karakter berulang.
b. Ada 2 proses yang digunakan dalam metode Run-length encoding yaitu prose kompresi dan prose dekompresi. Proses kompresi yaitu proses merupakan proses dimana program kompresi citra melakukan proses encoding. Sedangkan proses dekompresi yaitu proses
men-decoding citra yang telah di-encoding
diperlukan proses tersebut karena metode
Run-length encoding bersifat lossles
DAFTAR PUSTAKA
_____. “Run-length encoding”.
http://en.wikipedia.org/wiki/Run-length_encoding. Diakses pada tanggal 13 Desember 2011. pukul 23.00 WIB
_____. “Image Compression RLE”.
http://www.mathworks.com. Diakses pada
tanggal 13 Desember 2011. pukul 22.00 WIB Amir, Said. 2004. Comparative Analysis of
Arithmetic Coding Computational Complexity. HP Laboratories Palo Alto California USA : Imaging Systems Laboratory.
Angga, 2009, Kompresi Citra.
http://angga212.wordpress.com. Diakses pada tanggal 13 Desember 2011. pukul 23.00 WIB.
Spesifikasi Citra Terkompresi Dengan Format TIF No Nama Citra Ukuran
Spesifikasi Citra Terkompresi Dengan Format GIF No Nama Citra Ukuran
Spesifikasi Citra Dekompresi Dengan Format JPG No Nama Citra Ukuran
Spesifikasi Citra Dekompresi Dengan Format BMP No Nama Citra Ukuran
Spesifikasi Citra Dekompresi Dengan Format PNG No Nama Citra Ukuran
Blelloch, Guy E. 2001. Introduction to Data Compression, Computer Science Department, Carnegie Mellon University Diakses 27 Maret 2005 6:25:12 AM.
Hauck, S. dan Wilson, William D. 1999. Run length Compression Techniques for FPGA Configurations, Dept. of ECE, Northwestern University, Evanston,
IL 60208-3118 USA, IEEE
Symposium on FPGAs for Custom Computing Machines,.
Iqbal, Muhammad. Dasar Pengolahan Citra Menggunakan Matlab. www.creative instrument.com/dokumen/image.pdf, Diakses pada tanggal 13 Desember 2011. pukul 23.00 WIB.
Nelson, Mark. 1991. The Data Compression Book. U.S.A. : M&T Books, , hal 32-47.
Ririanti, Santi. 2010. Perancangan Perangkat lunak Kompresi File Citra Dengan Menggunakan Algoritma Run Length Encoding (RLE). Universitas Sumatera Utara.
Sulistyanto, Hernawan dan Nur Rohman, Ratnasari. 2007. Uji Implementasi Pemampat Data Tak – Hilang Dengan Metode RLE dan Static – Adaptive Huffman. Fakultas Teknik
Universitas Muhammadiyah