Ukuran Sebelum Kompresi = 22 String Ukuran Setelah Kompresi = 10 String
Rasio Pemampatan =
100 x 100
= 100 - 45,455 = 54,545, artinya 54,455 dari string semula telah dimampatkan.
2.7. Run Length Encoding
Algoritma Run Length Encoding adalah melakukan kompresi dengan memindahkan pengulangan byte yang sama berturut-turut atau secara terus menerus. Algoritma ini
digunakan untuk mengompresi citra yang memiliki kelompok-kelompok piksel yang berderajat keabuan yang sama. Pada metode ini dilakukan pembuatan rangkaian
pasangan nilai P,Q untuk setiap baris piksel, dimana nilai P menyatakan nilai derajat keabuan, sedangkan nilai Q menyatakan jumlah piksel berurutan yang memiliki
derajat keabuan tersebut.
[4]
Berbeda dengan teknik-teknik sebelumnya yang bekerja berdasarkan karakter per karakter, teknik run length ini bekerja berdasarkan sederetan karakter yang
berurutan. Run Length Encoding adalah suatu algoritma kompresi data yang bersifat lossless. Algoritma ini mungkin merupakan algoritma yang paling mudah untuk
dipahami dan diterapkan.
[6]
Sebagai contoh sebuah citra dengan nilai piksel ”120, 120, 120, 120, 150, 200, 200, 200, 200, 150, 150, 150, 150, 120, 150, 150, 150, 150”, nilai piksel pertama 120,
kedua 120, karakter ketiga 120, karakter keempat 120, dan karakter kelima 150, dikarenakan pada nilai piksel kelima tidak sama dengan sebelumnya, sehingga 4 nilai
piksel pertama yang mengalami perulangan akan dijumlahkan semuanya dan nilai yang dijumlahkan adalah banyaknya nilai piksel yang akan diulang, sehingga output
keempat nilai piksel yang pertama setelah dikompresi adalah hanya sebuah nilai piksel dan diikuti dengan nilai perulangan yaitu ”120,4”, setelah dilakukan kompresi 4 piksel
pertama akan dilanjutkan ke nilai berikutnya yaitu nilai kelima 150, kemudian nilai keenam 200, dikarenakan nilai piksel keenam tidak sama dengan nilai piksel kelima,
dan nilai piksel kelima tidak mengalami perulangan sehingga nilai piksel yang tidak
mengalami perulangan akan ditambahkan kepada nilai piksel ”120,4”, sehingga menjadi ”120,4150”, dan seterusnya sehingga nilai piksel citra ” 120, 120, 120, 120,
150, 200, 200, 200, 200, 150, 150, 150, 150, 120, 150, 150, 150, 150” setelah dikompresi akan menjadi ”120,4 150,1 200,4 150,4 120,1 150,4”. Dapat
diperhatikan bahwa nilai piksel ” 120, 120, 120, 120, 150, 200, 200, 200, 200, 150, 150, 150, 150, 120, 150, 150, 150, 150” yang berukuran 18 byte nilai piksel.
[4]
Contoh: Citra Grayscale 3 bit berukuran 10 x 10 piksel akan di-encode dengan algoritma RLE
Gambar 2.4. Citra 3 bit 10 X 10 Piksel Hasil Kompresi
3,3 5,5 2,2 5,2 6,3 2,3 1,2
7,3 5,7 4,3 5,4 6,3
0,8 1,2 1,4 2,3 5,3
1,2 2,5 3,3 3,5 4,2 1,3
2,2 0,2 3,2 0,4 1,3 0,3 2,4
3 3 3 5 5 5 5 5 2 2 5 5 6 6 6 2 2 2 1 1
7 7 7 5 5 5 5 5 5 5 4 4 4 5 5 5 5 6 6 6
0 0 0 0 0 0 0 0 1 1 1 1 1 1 2 2 2 5 5 5
1 1 2 2 2 2 2 3 3 3 3 3 3 3 3 4 4 1 1 1
2 2 0 0 3 3 0 0 0 0 1 1 1 0 0 0 2 2 2 2
Hasil Pengkodean: 3 3 5 5 2 2 5 2 6 3 2 3 1 2 7 3 5 7 4 3 5 4 6 3 0 8 1 2 1 4 2 3 5 3 1 2 2 5 3 3 3 5 4 2 1 3
2 2 0 2 3 2 0 4 1 3 0 3 2 4
Semuanya = 60 Piksel Ukuran citra sebelum dikompres = 10 x 10 x 3 bit = 300 bit
Ukuran citra setelah dikompres = 60 x 3 bit = 180 bit
Rasio pemampatan =
100 x 100
= 40, artinya 40 dari citra semula telah dimampatkan.
Contoh Proses Kompresi dengan RLE dapat dilihat seperti pada tabel:
Tabel 2.2. Kompresi dengan RLE
No. Input
Output Total
1 Aaaaaaaa
a 8
2 Bbbbbbbb
b 8
3 C
c 1
4 Dddd
d 4
Contoh Proses Dekompresi dengan RLE dapat dilihat seperti pada tabel:
Tabel 2.3. Dekompresi dengan RLE
No. Input
Total Output
1 a
8 aaaaaaaa
2 b
8 bbbbbbbb
3 c
1 C
4 d
4 Dddd
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Masalah