Rabu, 02 Mei 2012

Proses Kompresi Dengan Metode Half Byte


 Metode kompresi Half Byte merupakan suatu metode kompresi dengan prosesnya adalah memanfaatkan bit sebelah kiri yang sering sama secara berurutan (Sujaini, 2000). Misalnya pada suatu file yang berisi data teks bertuliskan ”bilangan”, dalam heksadesimal akan diterjemahkan pada tabel 2.1.
Tabel 2.1 Konversi Heksadesimal

Karakter
Heksadesimal
b
62
i
69
l
6c
a
61
n
6e
g
67
a
61
n
6e

Jika diperhatikan karakter-karakter tersebut memiliki bit sebelah kiri yang sama yaitu ’6’. Gejala seperti inilah yang dimanfaatkan oleh metode kompresi Half Byte.
Saat karakter yang bit kirinya sama secara berderet, maka algoritma ini mengkompres data tersebut diawali dengan ”bit penanda” kemudian bit pertama dari deretan yang sama diikuti dengan pasangan bit kanan dari deretan tersebut dan ditutup dengan bit penanda.
Bit penanda (marker bit, dalam penelitian ini disingkat ‘mb’), berupa suatu byte yang boleh dipilih secara acak asalkan digunakan secara konsisten pada seluruh bit penanda pemampatan. Bit penanda disini berfungsi penanda bahwa karakter selanjutnya adalah karakter pemampatan atau akhir pemampatan. Dalam penelitian ini, penentuan bit penanda dilakukan dengan mencari frekuensi nilai warna yang paling sedikit yang terdapat dalam sebuah citra.
Metode kompresi Half Byte digambarkan lebih jelas pada gambar 2.2.

Deretan data sebelah kiri merupakan deretan data pada file asli, sedangkan deretan data sebelah kanan merupakan deretan data hasil pemampatan dengan metode Half Byte.

Proses Kompresi Half Byte
Setelah data nilai dijadikan array 1 dimensi dan telah dirubah menjadi bilangan biner, maka langkah proses kompresi Half Byte dapat dilakukan. Langkah awal ialah membaca data apakah terdapat deretan data yang bit kirinya sama secara berurutan sebanyak tujuh data atau lebih, jika memenuhi lakukan pemampatan. Kemudian berikan bit penanda pada file pemampatan.
 Selanjutnya tambahkan bit kiri data pertama dari file asli dan gabungkan bit kanan karakter yang sama ke file pemampatan. Lalu tutup dengan bit penanda pada file pemampatan.
Contoh kompresi Half Byte dalam bentuk tabel disajikan dalam tabel 3.2, untuk menyederhanakannya maka penulis memproses langsung data bilangan heksadesimal dengan bit penanda ‘ff’. Dari tabel 3.2 data asli berukuran 30 byte dan data hasil kompresi berukuran 25 byte. Dengan demikian proses telah berhasil mengkompresi data sebanyak 5 byte.
Dalam kompresi Half Byte ada beberapa ketentuan selain yang telah ditunjukkan pada tabel 3.2, antara lain (ditunjukkan pada gambar 3.7, 3.8, dan 3.9) :

Ø Bila pada file asli ditemukan nilai yang sama dengan bit penanda, maka dalam file terkompresi hasus dituliskan nilai tersebut sebanyak dua kali secara beruntun.

     File Asli      File terkompresi Keterangan
          ff                        ff                     *
          f6                        ff                   mb
          fc                       f6                    
          fe                       ce                    
          f6                       6a                    
          fa                       a2                    
          fa                       02                    
          f2                        ff                   mb
          f0                                               
          f2                                               

Gambar 3.7 Kompresi Half Byte  dengan nilai yang sama dengan bit penanda

*) Nilai yang ditulis ulang karena sama dengan bit penanda

Ø Bila terjadi penggabungan bit kanan menghasilkan nilai yang sama dengan bit penanda, sehingga nilai tersebut diduga sebagai bit penutup, maka deretan file tersebut tidak dikompresi.

     File Asli      File terkompresi Keterangan
          ef                        ff                   mb
          e8                       ef                    
          ec                       8c                    
          ef                        ff                     *
          ef                       ab                    
          ea                       20                    
          eb                       ff                   mb
          e2                                              
          e0                                              

Gambar 3.8 Kompresi Half Byte
dengan nilai hasil kompresi sama dengan bit penanda

*) Nilai hasil kompresi sama dengan bit penanda

Ø Bila banyaknya nilai yang dapat dikompresi berjumlah genap, maka nilai terakhir tidak perlu dikompresi.

     File Asli      File terkompresi Keterangan
          a8                       ff                   mb
          a5                       a8                    
          aa                       5a                    
          ad                      db                    
          ab                      69                    
          a6                      14                    
          a9                       ff                   mb
          a1                                              
          a4                                              
          a2                                              *

Gambar 3.9 Kompresi Half Byte dengan banyaknya nilai yang dapat dikompresi berjumlah genap


Tabel 3.2 Kompresi Half Byte

Hekadesimal
Hasil Kompresi
Keterangan
62
ff
mb
69
62
File terkompresi
6c
9c
61
1e
6e
71
67
ee
61
ff
mb
6e
00

6e
00

00
01

00
43

01
55

43
ff
mb
55
17
File terkompresi
17
be
1b
f0
1e
34
1f
15
10
2d
13
ff
mb
14
30

11
3f

15
60

12
6f

1d
6f

30


3f


60


6f


6f



Proses Dekompresi Half Byte
Dalam melakukan proses pengembalian data terkompresi ke data asli (berupa gambar bmp), dilakukan beberapa langkah, yakni :

Ø Melihat seluruh data file dimulai dengan data ke-5.
Ø Jika data bukan merupakan bit penanda, maka data langsung dimasukkan ke dalam file pengembalian.
Ø Jika data merupakan bit penanda, dilakukan beberapa langkah, yakni:

§  Data kedua (data setelah bit penanda) ditambahkan ke dalam file pengembalian.
§  Pada data berikutnya, gabungkan bit kiri (sebagai bit kanan) dengan data bit kedua sebelah kiri (sebagai bit kiri). Kemudian bit kanannya (sebagai bit kanan) dengan data bit kedua sebelah kiri (sebagai bit kiri). Hasil dari penggabungan data ditambahkan pada file pengembalian.
§  Lakukan penggabungan file hingga ditemukan bit penanda yang berfungsi sebagai bit penutup.

Untuk lebih jelas, Gambar 3.11 menunjukkan ilustrasi proses pengembalian file terkompresi.


Gambar 3.11 Proses dekompresi data
Dengan menggunakan data pada tabel 3.2, tabel 3.4 merupakan tabel dekompresinya.

Tabel 3.4 Dekompresi File

File Terkompresi
Keterangan
Hasil Dekompresi
ff
mb
62
62
File terkompresi
69
9c
6c
1e
61
71
6e
ee
67
ff
mb
61
00

6e
00

6e
01

00
43

00
55

01
ff
mb
43
17
File terkompresi
55
be
17
f0
1b
34
1e
15
1f
2d
10
ff
mb
13
30

14
3f

11
60

15
6f

12
6f

1d


30


3f


60


6f


6f

Tidak ada komentar:

Posting Komentar