scispace - formally typeset
Open AccessJournal ArticleDOI

Pengembangan dan analisis kombinasi run length encoding dan relative encoding untuk kompresi citra

Reads0
Chats0
TLDR
This research proposes a new lossless compression algorithm called YRL that improve RLE using the idea of Relative Encoding, which can treat the value of neighboring pixels as the same value by saving those little differences / relative value separately.
Abstract
Data Compression can save some storage space and accelerate data transfer. Among many compression algorithm, Run Length Encoding (RLE) is a simple and fast algorithm. RLE can be used to compress many types of data. However, RLE is not very effective for image lossless compression because there are many little differences between neighboring pixels. This research proposes a new lossless compression algorithm called YRL that improve RLE using the idea of Relative Encoding. YRL can treat the value of neighboring pixels as the same value by saving those little differences / relative value separately. The test done by using various standard image test shows that YRL have an average compression ratio of 75.805% for 24-bit bitmap and 82.237% for 8-bit bitmap while RLE have an average compression ratio of 100.847% for 24-bit bitmap and 97.713% for 8-bit bitmap.

read more

Content maybe subject to copyright    Report

INFORMATIKA Vol. 12, No. 2, November 2016 141
PENGEMBANGAN DAN ANALISIS KOMBINASI RUN LENGTH
ENCODING DAN RELATIVE ENCODING UNTUK
KOMPRESI CITRA
Yosia Adi Jaya
1
yosia.adi@ti.ukdw.ac.id
Lukas Chrisantyo
2
lukaschris@ti.ukdw.ac.id
Willy Sudiarto Raharjo
3
willysr@ti.ukdw.ac.id
Abstract
Data Compression can save some storage space and accelerate data transfer. Among many
compression algorithm, Run Length Encoding (RLE) is a simple and fast algorithm. RLE can
be used to compress many types of data. However, RLE is not very effective for image lossless
compression because there are many little differences between neighboring pixels. This
research proposes a new lossless compression algorithm called YRL that improve RLE using
the idea of Relative Encoding. YRL can treat the value of neighboring pixels as the same
value by saving those little differences / relative value separately. The test done by using
various standard image test shows that YRL have an average compression ratio of 75.805%
for 24-bit bitmap and 82.237% for 8-bit bitmap while RLE have an average compression
ratio of 100.847% for 24-bit bitmap and 97.713% for 8-bit bitmap.
Keywords: compression, lossless, RLE, relative, YRL
1. Pendahuluan
Kompresi data sudah banyak diterapkan dalam teknologi informasi. Dalam hal
penyimpanan, kompresi data dapat mengurangi penggunaan kapasitas penyimpanan. Dalam
proses pertukaran data, kompresi data dapat mempercepat proses tukar data dan mengurangi
penggunaan sumber daya (jika melalui jaringan Internet). Manfaat-manfaat tersebut akan
menghemat biaya penyimpanan dan pertukaran data. Data yang semakin besar dan kebutuhan
bertukar data yang semakin sering membutuhkan kompresi data yang cepat dan efektif. Salah
satu kompresi data yang cepat adalah Run Length Encoding (RLE).
RLE mengubah nilai yang sama berturut-turut menjadi 2 nilai saja, yaitu jumlah nilai
yang sama dan nilai itu sendiri. Konsep RLE yang sederhana dan umum memungkinkan RLE
untuk mengompresi banyak jenis data. Citra merupakan salah satu jenis data yang dapat
dikompres menggunakan RLE. Hasil kompresi lossy citra dengan menggunakan RLE cukup
baik. Akan tetapi, hasil kompresi lossless citra dengan menggunakan RLE kurang baik karena
piksel-piksel yang berdekatan pada citra memiliki nilai warna yang hampir sama (tidak sama
persis).
Di sisi lain, ada Relative Encoding yang cara kerjanya adalah menyimpan nilai relatif
dari nilai sebelumnya. Dari cara kerja RLE dan Relative Encoding, penulis mendapat gagasan
mengombinasikan kedua teknik kompresi tersebut untuk melakukan kompresi lossless citra
sederhana. Dalam penelitian ini, citra yang akan digunakan adalah citra bitmap yang tidak
menggunakan kompresi agar dapat mengetahui efektivitas dari teknik kompresi pada
penelitian ini saja.
1
Universitas Kristen Duta Wacana , Fakultas Teknologi Informasi, Program Studi Teknik Infomatika.
2
Universitas Kristen Duta Wacana , Fakultas Teknologi Informasi, Program Studi Teknik Infomatika.
3
Universitas Kristen Duta Wacana , Fakultas Teknologi Informasi, Program Studi Teknik Infomatika.

Yosia Adi Jaya, Lukas Chrisantyo, Willy Sudiarto Raharjo
142 INFORMATIKA Vol. 12, No. 2, November 2016
2. Landasan Teori
2.1. Tinjauan Pustaka
Ada beberapa penelitian yang berusaha mengembangkan RLE dengan
menambahkan metode-metode tertentu. Metode yang pernah dilakukan antara lain
adalah melakukan preproses pada input citra, melakukan kompresi yang berbeda
berdasarkan keadaan tertentu, dan melakukan perubahan struktur data input. Berikut
adalah contoh penelitian-penelitian tersebut.
Arota Eka Setiawan menerapkan Burrows-Wheeler Transform (BWT)
terhadap input citra lalu mengompresi citra dengan menggunakan RLE. Kemudian
hasil kompresi citra dengan didahului BWT dibandingkan dengan kompresi citra
tanpa BWT. Hasil penelitian menunjukkan bahwa rasio kompresi citra dengan
didahului BWT lebih baik dari rasio kompresi citra tanpa BWT. (Setiawan, 2014)
Dalam penelitian berjudul A New Method Which Combines Arithmetic
Coding with RLE for Lossless Image Compression dilakukan kompresi yang berbeda
berdasarkan kemiripan nilai dengan nilai sebelumnya. Suatu piksel dikompres dengan
RLE jika nilainya sama dengan piksel di kiri dan atasnya, jika tidak maka akan
dikompres dengan Arithmetic Coding. Algoritma gabungan tersebut memiliki rasio
kompresi yang lebih baik dari Arithmetic Coding biasa. (Abdmouleh, Masmoudi, &
Bouhlel, 2012)
I Made Agus Dwi Suarjaya mengusulkan suatu algoritma baru yang dinamai j-bit
encoding (JBE) untuk mengoptimasi kompresi data. Input data yang telah diubah dengan JBE
dikompres dengan berbagai macam algoritma kompresi. Hasil penelitian menunjukkan
perbaikan rasio kompresi yang sangat signifikan untuk input citra. (Suarjaya, 2012)
2.2. Kompresi
Kompresi data adalah proses konversi data input ke data lain yang memiliki ukuran
lebih kecil (Salomon, 2004). Kompresi dibagi menjadi 2, yaitu:
- Kompresi Lossless (tidak menghilangkan informasi apapun, sehingga hasil dekompresi
sama persis dengan bentuk asli)
- Kompresi Lossy (menghilangkan detail yang kurang penting, tetapi hasil dekompresi
masih mewakili bentuk asli)
Ada beberapa nilai yang digunakan dalam pengukuran kompresi, yaitu:
- Compression ratio (ukuran hasil kompresi / ukuran asli)
- Compression factor (ukuran asli / ukuran hasil kompresi)
- Bit per pixel (pada kompresi citra)
- The speed of compression / kecepatan kompresi (diukur dengan cycles per byte (CPB))
Pada kompresi citra, ada beberapa urutan pembacaan data yang sering digunakan, yaitu: Non-
interlaced vertical, Non-interlaced horizontal, Non-interlaced zigzag, dan Interlaced
2.3. RLE
Ide dibalik RLE adalah: jika data item D terjadi N kali berturut-turut dalam input,
ganti N kejadian menjadi pasangan ND. Langkah-langkah kompresi lossless RLE pada citra
adalah sebagai berikut:
[1] Tentukan jumlah N maksimum dalam konstanta max.
[2] Input nilai, masukkan dalam variabel D.
[3] Set variabel N = 0.
[4] Input nilai selanjutnya, masukkan dalam variabel temp.
[4.1] Jika temp sama dengan D, maka N ditambah 1.
[4.1.1] Jika N < max, kembali ke langkah 4.
[4.1.2] Jika N >= max, ouput N D. Kembali ke langkah 2.
[4.2] Jika temp tidak sama dengan D, output N D.
[4.3] Masukkan temp ke D, set N = 0, kembali ke langkah 4.
Misal : 12, 12, 12, 12, 12, 12, 12, 87, 87, 87, 5, 5, 5, 5, 5, 5 dapat dikompres menjadi (7) 12,
(3) 87, (6) 5

Pengembangan Dan Analisis Kombinasi Run Length Encoding
Dan Relative Encoding Untuk Kompresi Citra
INFORMATIKA Vol. 12, No. 2, November 2016 143
2.4. Relative Encoding
Relative Encoding digunakan dalam kasus dimana input berupa rentetan angka yang
nilainya tidak berbeda jauh. Angka pertama disimpan apa adanya lalu angka selajutnya
merupakan selisih dengan nilai sebelumnya. Langkah-langkah kompresi Relative Encoding
pada citra adalah sebagai berikut:
[1] Tentukan selisih maksimum dalam konstanta maxdiff.
[2] Input nilai, masukkan dalam variabel prev.
[3] Output prev.
[4] Input nilai, masukkan dalam variabel value.
[5] Hitung value prev, masukkan dalam variabel diff.
[5.1] Jika | diff | <= maxdiff, output diff.
[5.2] Jika | diff | > maxdiff, output value.
[6] Masukkan value ke dalam prev. Kembali ke langkah 4.
Misal : 70, 71, 72.5, 73.1 dapat dikompres menjadi 70, 1, 1.5, 0.6
2.5. Struktur file bitmap
Struktur file bitmap sangat sederhana dan terdiri dari header file bitmap, header
informasi bitmap, tabel warna (jika ada), dan array byte yang menyusun gambar bitmap
(Whitrow, 2008).
Header file bitmap berisi informasi tentang tipe, ukuran, dan layout dari file bitmap.
dua byte pertama adalah karakter B dan M yang menunjukkan tipe file. Empat byte
selanjutnya menampung ukuran file dalam byte. Empat byte selanjutnya tidak dipakai dan
diisi 0. Empat byte yang terakhir menampung jarak antara header dengan titik awal data
bitmap dalam byte. Secara formal, dapat ditulis sebagai berikut:
BITMAPFILEHEADER {
uint 2 bytes file type
dword 4 bytes file size in bytes
uint 2 bytes reserved
uint 2 bytes reserved
dword 4 bytes offset to data in bytes
} BITMAPFILEHEADER;
Header informasi bitmap berisi dimensi, tipe kompresi, dan format warna dari
bitmap. Secara formal, header informasi bitmap adalah sebagai berikut:
BITMAPINFOHEADER {
dword 4 bytes needed for BITMAPINFOHEADER structuresize
long 4 bytes bitmap width in pixels
long 4 bytes bitmap height in pixel
word 2 bytes 1
word 2 bytes bits/pixel (1 = monochrome)
dword 4 bytes compression 0, 8, 4
dword 4 bytes image size in bytes (may be 0 for monochrome)
long 4 bytes pixels/meter
long 4 bytes pixels/meter
dword 4 bytes number of colour indexes used by bitmap in colour table
dword 4 bytes number of colour indexes considered important
} BITMAPINFOHEADER;
Tabel warna digunakan untuk merepresentasikan warna yang lebih dari 8-bit. Tabel
warna tidak terdapat pada bitmap 24-bit karena tiap piksel masi
h dapat direpresentasikan
dengan 8-bit blue-green-red (BGR).
Data bitmap terdiri dari bytes yang mewakili piksel-piksel dari kiri ke kanan dalam
tiap baris (scan lines). Scan lines dalam bitmap disimpan dari bawah ke atas. Berarti nilai
pertama dalam array mewakili piksel di pojok kiri bawah gambar.

Yosia Adi Jaya, Lukas Chrisantyo, Willy Sudiarto Raharjo
144 INFORMATIKA Vol. 12, No. 2, November 2016
3. Metodologi Penelitian
3.1. Persiapan
- Mempelajari dan mendalami teori dan implementasi RLE, Relative Encoding, dan
struktur file bitmap.
- Membuat encoder dan decoder dengan metode RLE untuk memperkuat pemahaman.
3.2. Pengembangan
- Merancang algoritma untuk mengombinasikan RLE dan Relative Encoding (kombinasi
akan berupa satu algoritma yang memiliki karakteristik seperti RLE dan Relative
Encoding, tetapi bukan keduanya dan bukan RLE yang dilanjutkan dengan Relative
Encoding ataupun sebaliknya).
- Membuat encoder dan decoder yang mengimplementasikan algoritma yang telah
dirancang.
3.3. Pengujian
- Mengumpulkan standard image test (citra digital yang sering digunakan untuk menguji
algoritma kompresi citra). Standard image test yang digunakan berasal dari
http://r0k.us/graphics/kodak/, http://imagecompression.info/test_images/, dan
http://sipi.usc.edu/database/database.php?volume=misc.
- Mengompresi citra digital yang telah dikumpulkan dengan algoritma yang dikembangkan
dan dengan RLE murni.
- Membandingkan rasio kompresi dari kedua hasil kompresi tersebut.
4. Hasil Penelitian dan Analisis
Sistem yang sudah dibangun diuji dengan cara mengompresi 55 bitmap 24-bit dan
22 bitmap 8-bit lalu hasil kompresi didekompres dan dibandingkan dengan file bitmap awal.
Hasil perbandingan menunjukkan bahwa kedua file sama persis untuk semua gambar. Hal ini
menunjukkan sistem telah berhasil diimplementasikan dan berfungsi dengan benar. Beberapa
contoh hasil perbandingan dapat dilihat pada Gambar 1.
Gambar 1. Perbandingan antara file awal dan file hasil dekompresi
Gambar-gambar yang digunakan untuk menguji sistem, juga dikompres dengan RLE
sebagai pembanding rasio kompresi sistem. Data-data ukuran file bitmap, ukuran file RLE,
ukuran file yrl, serta rasio kompresi RLE dan rasio kompresi yrl dapat dilihat pada Tabel 1,
Tabel 2, dan Tabel 3.

Pengembangan Dan Analisis Kombinasi Run Length Encoding
Dan Relative Encoding Untuk Kompresi Citra
INFORMATIKA Vol. 12, No. 2, November 2016 145
Tabel 1.
Data Hasil Pengujian Bitmap 24-bit
No
Nama file
Ukuran file (byte)
Rasio kompresi
bmp
RLE
yrl
RLE
yrl
1
1,179,702
1,284,912
1,100,299
108.918%
93.269%
2
1,179,702
1,255,117
851,654
106.393%
72.192%
3
1,179,702
1,179,836
782,551
100.011%
66.335%
4
1,179,702
1,272,402
951,179
107.858%
80.629%
5
kodim05
1,179,702
1,283,554
1,093,319
108.803%
92.678%
6
kodim06
1,179,702
1,210,747
937,363
102.632%
79.458%
7
kodim07
1,179,702
1,212,656
841,723
102.793%
71.350%
8
kodim08
1,179,702
1,283,728
1,100,941
108.818%
93.324%
9
kodim09
1,179,702
1,266,408
836,605
107.350%
70.917%
10
kodim10
1,179,702
1,264,248
874,203
107.167%
74.104%
11
1,179,702
1,248,152
924,237
105.802%
78.345%
12
1,179,702
1,219,450
797,241
103.369%
67.580%
13
kodim13
1,179,702
1,289,209
1,186,333
109.283%
100.562%
14
1,179,702
1,281,070
1,026,561
108.593%
87.019%
15
1,179,702
1,189,956
850,063
100.869%
72.057%
16
1,179,702
1,231,413
862,461
104.383%
73.108%
17
1,179,702
1,266,282
914,529
107.339%
77.522%
18
1,179,702
1,306,803
1,063,211
110.774%
90.125%
19
1,179,702
1,286,997
977,031
109.095%
82.820%
20
1,179,702
862,876
634,617
73.144%
53.795%
21
1,179,702
1,272,554
904,891
107.871%
76.705%
22
1,179,702
1,284,118
982,821
108.851%
83.311%
23
1,179,702
1,235,164
842,319
104.701%
71.401%
24
1,179,702
1,215,057
993,662
102.997%
84.230%
25
978,654
713,141
587,625
72.870%
60.044%
26
1,102,554
1,193,695
1,018,030
108.266%
92.334%
27
1,098,354
1,159,849
958,080
105.599%
87.229%
28
2,165,154
2,231,471
1,664,958
103.063%
76.898%
29
cathedral
2,209,254
2,328,398
1,735,207
105.393%
78.543%
30
959,754
829,612
550,769
86.440%
57.386%
31
fireworks
1,102,554
445,874
387,187
40.440%
35.117%
32
978,654
831,363
605,065
84.950%
61.826%
33
hdr
978,654
876,884
628,470
89.601%
64.218%
34
976,554
1,082,990
973,482
110.899%
99.685%
35
leaves_iso_1600
976,554
1,085,704
981,604
111.177%
100.517%
36
nightshot_iso_100
1,102,554
761,116
597,752
69.032%
54.215%
37
nightshot_iso_1600
1,102,554
1,102,022
712,778
99.952%
64.648%

Citations
More filters
Journal ArticleDOI

Analisis Perbandingan Kompresi File Wav Menggunakan Metode Huffman dan Run Length Encoding

TL;DR: Jika kita ingin merekam suara sekualitas cd audio maka diperlukan suatu media penyimpanan yang sangat besar sehingga untuk mengurangi kapasitas penyIMpanan tersebut dan juga untuk pengiriman file terse but membutuhkan waktu.
References
More filters
Journal ArticleDOI

A New Method Which Combines Arithmetic Coding with RLE for Lossless Image Compression

TL;DR: Experimental results, based on a set of 12 gray-level images, demonstrate that the proposed scheme gives mean compression ratio that are higher those compared to the conventional arithmetic encoders.
Journal ArticleDOI

Analisis Perbandingan Kompresi File Wav Menggunakan Metode Huffman dan Run Length Encoding

TL;DR: Jika kita ingin merekam suara sekualitas cd audio maka diperlukan suatu media penyimpanan yang sangat besar sehingga untuk mengurangi kapasitas penyIMpanan tersebut dan juga untuk pengiriman file terse but membutuhkan waktu.