Sabtu, 13 Oktober 2012

Dasar Kompresi Lossless


Kompresi lossless adalah pemampatan data dalam satu atau beberapa file menggunakan algoritma tertentu dengan memanfaatkan redundansi dalam data , sehingga ketika file didekompres dapat kembali seperti file semula , dan tidak ada data yang hilang. Sehingga file hasil dekompres identik dengan file yang asli

Ilustrasi kompresi lossless



Kompresi lossless umumnya digunakan untuk file file penting , yang membutuhkan informasi sesuai dengan file aslinya
Contoh : file dokumen (.doc , .ppt , ) file program (.exe) , file source code aplikasi (.cpp ,.cs ) , dana lain lain.

Format Kompresi lossless :
  • Audio : flac dan wma.
  • Video :Ffmpeg
  • Image : tiff dan png.
  • dokumen : zip, gzip, tar.gz, rar, dan 7z.
Algoritma Kompresi Lossless :
  • Huffman Coding

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.
  5. Ilustrasi Huffman Coding
 
  • Run Length Encoding

Run Length Encoding adalah metode kompresi lossless yang memanfatkan data yang sama yang berurutan, sehingga dapat dinyatakan dengan jumlah frekuensi karakter yang berulang. Di dalam encode nya  dinyatakan dengan , “kode bit penanda_kode bit jumlah karakter_kode bit karakter “

Contoh :
Terdapat teks “AAAA” ( A dalam biner  01000001 ) sebanyak 4 kali , bit penanda dinyatakan dengan  11111110, maka codeword yang dihasilkan dari Run Length Encoding adalah  11111110 00000100 01000001

  •   LZW compression    

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.

Contoh Kompresi LZW
 

Tidak ada komentar:

Posting Komentar