Minggu, 14 Oktober 2012

Kompresi Lossless



Kompresi Lossless

1.    Pengertian kompresi lossless
Kompresi lossless adalah pemampatan data menggunakan algoritma tertentu sehingga tidak ada data yang hilang antara yang dikompres dengan data yang asli. Data yang telah dikompresi dapat dikembalikan lagi ke bentuk asalnya tanpa kehilangan data. Contoh yang sering kita temui yaitu kompresi dengan aplikasi WinRAR, 7ZIP dan WinZIP.
          Kompresi lossless digunakan ketika ingin mengecilkan ukuran suatu dokumen yang penting sehingga ketika kita ingin mengembalikan data tersebut ke ukuran semula tidak terjadi kerusakan. Data-data tersebut seperti dokumen hasil pengolah kata, kode sumber program dan data-data penting lainnya.

2.    Jenis-jenis format kompresi lossless:
a.       Kompresi pada dokumen seperti zip, tar.gz, gzip, 7zip dan lainnya.
b.      Kompresi pada citra seperti tiff dan png
c.       Kompresi pada media audio seperti flac dan wma
d.      Kompresi pada media video seperti ffmpeg

3.    Huffman Code
Huffman code merupakan algoritma untuk mengkompresi data secara lossless yang ditemukan oleh David A Huffman yang dipublikasikan pada tahun 1952. Algoritma huffman bekerja dengan cara sebagai berikut:
1.       Menghitung frekuensi kemunculan karakter-karakter pada sebuah file.
2.       Mengurutkan karakter yang muncul berdasarkan frekuensinya.
3.     Mengurutkan karakter-karakter berdasarkan alfabet untuk karakter-karakter yang memiliki           frekuensi sama.
4.       Menyusun binary tree berdasarkan aturan Huffman.

4.    Run Length Encoding
Run Lenth Encoding (RLE) merupakan bentuk kompresi data yang sangat sederhana. RLE bekerja dengan cara menuliskan karakter-karakter sama yang muncul berurutan dengan hanya menuliskan jumlah kemunculannya diikuti dengan karakter tersebut.  RLE tidak memerlukan kamus data.
Misalkan ada data AAAAABBCCCCAAAACC, dengan menggunakan algoritma RLE data tersebut dapat ditulis dengan 5A2B4C4A2C.
Untuk proses dekompresi dilakukan dengan cara menuliskan karakter sesuai dengan kemunculannya. Misal dari code 5A2B4C4A2C, maka diperoleh karakter A sebanyak 5, karakter B sebanyak 2, karakter C sebanyak 4, karakter A sebanyak 4 dan karakter C sebanyak 2. Sehingga apabila seluruh hasil dekompresi digabungkan menghasilkan data asli AAAAABBCCCCAAAACC.

5.    Lempel Ziv
Lempel Ziv adalah suatu algoritma kompresi data yang menggunakan dictionary data dalam pengkompresiannya. Lempel Ziv bekerja secara on-the-fly, yaitu penyusunan dictionary dilakukan secara bersamaan dengan penulisan codeword. Data dikompresi sesuai dengan dictionary yang dimiliki, jika sebuah string belum terdapat dalam dictionary yang dimiliki, maka string tersebut akan diindekskan ke dalam dictionary-nya. Sehingga dictionary akan terus bertambah jika semakin banyak string yang belum  dimiliki.

Tidak ada komentar:

Posting Komentar