• Tidak ada hasil yang ditemukan

PERBANDINGAN KINERJA ALGORITMA KOMPRESI HUFFMAN, LZW, DAN DMC PADA BERBAGAI TIPE FILE

N/A
N/A
Protected

Academic year: 2021

Membagikan "PERBANDINGAN KINERJA ALGORITMA KOMPRESI HUFFMAN, LZW, DAN DMC PADA BERBAGAI TIPE FILE"

Copied!
10
0
0

Teks penuh

(1)

PERBANDINGAN KINERJA ALGORITMA

KOMPRESI

HUFFMAN

,

LZW

, DAN

DMC

PADA

BERBAGAI TIPE FILE

Linawati dan Henry P. Panggabean

Jurusan Ilmu Komputer, FMIPA Universitas Katolik Parahyangan Bandung 40141 e-mail : [email protected], [email protected]

Intisari

Makalah ini membahas perbandingan kinerja tiga algoritma kompresi yang masing-masing menggunakan teknik pengkodean yang berbeda, yaitu algoritma Huffman, LZW (Lempel-Ziv-Welch), dan DMC (Dynamic Markov Compression). Ketiga algoritma tersebut diimplementasikan ke dalam sebuah perangkat lunak dan diujikan terhadap 12 golongan kasus uji, lalu kinerjanya diukur berdasarkan rasio ukuran file hasil kompresi terhadap file awal dan kecepatan kompresi. Disimpulkan bahwa dalam hal rasio hasil kompresi, secara rata-rata DMC merupakan yang terbaik dan Huffman merupakan yang terburuk, sedangkan dari sisi kecepatan kompresi, LZW merupakan yang terbaik dan DMC merupakan yang terburuk. Terdapat beberapa jenis file yang tidak tepat untuk dikompresi dengan metode tertentu karena justru menghasilkan file hasil kompresi yang berukuran lebih besar.

Kata kunci : kompresi data, algoritma Huffman, algoritma LZW, algoritma DMC

Abstract

This paper presents performance comparison of three compression algorithms, each of which uses different coding technique: Huffman, LZW (Lempel-Ziv-Welch), and DMC (Dynamic Markov Compression). These three algorithms are implemented into a computer program, tested upon 12 classes of test case, and their performances are measured in terms of size ratio between compressed file and initial file, and compression speed. It can be concluded that in terms of compression ratio, in average DMC is the best and Huffman is the worst, meanwhile in terms of compression speed, LZW is the best and DMC is the worst. There are several file types that are not suitable to be compressed by certain algorithm, because the compressed file becomes bigger in size.

Keywords : data compression, Huffman algorithm, LZW algorithm, DMC algorithm

Diterima : 8 Juli 2003

Disetujui untuk dipublikasikan : 26 Maret 2004

1. Pendahuluan

Kompresi ialah proses pengubahan sekumpulan data menjadi suatu bentuk kode untuk menghemat kebutuhan

tempat penyimpanan dan waktu untuk transmisi data [1]. Saat ini terdapat berbagai tipe algoritma kompresi [2,3], antara lain: Huffman, LIFO, LZHUF,

(2)

LZ77 dan variannya (LZ78, LZW, GZIP), Dynamic Markov Compression (DMC), Block-Sorting Lossless, Run-Length, Shannon-Fano, Arithmetic, PPM (Prediction by Partial Matching), Burrows-Wheeler Block Sorting, dan Half Byte.

Berdasarkan tipe peta kode yang digunakan untuk mengubah pesan awal (isi file input) menjadi sekumpulan codeword, metode kompresi terbagi menjadi dua kelompok, yaitu :

(a) Metode statik : menggunakan peta kode yang selalu sama. Metode ini membutuhkan dua fase (two-pass): fase pertama untuk menghitung probabilitas kemunculan tiap simbol/karakter dan menentukan peta kodenya, dan fase kedua untuk mengubah pesan menjadi kumpulan kode yang akan ditransmisikan. Contoh: algoritma Huffman statik. (b) Metode dinamik (adaptif) :

menggunakan peta kode yang dapat berubah dari waktu ke waktu. Metode ini disebut adaptif karena peta kode mampu beradaptasi terhadap perubahan karakteristik isi file selama proses kompresi berlangsung. Metode ini bersifat one-pass, karena hanya diperlukan satu kali pembacaan terhadap isi file. Contoh: algoritma LZW dan DMC.

Berdasarkan teknik pengkodean/pengubahan simbol yang

digunakan, metode kompresi dapat dibagi ke dalam tiga kategori, yaitu :

(a) Metode symbolwise : menghitung peluang kemunculan dari tiap simbol dalam file input, lalu mengkodekan satu simbol dalam satu waktu, dimana simbol yang lebih sering muncul diberi kode lebih pendek dibandingkan simbol yang lebih jarang muncul, contoh: algoritma Huffman.

(b) Metode dictionary : menggantikan karakter/fragmen dalam file input

dengan indeks lokasi dari karakter/fragmen tersebut dalam sebuah kamus (dictionary), contoh: algoritma LZW.

(c) Metode predictive : menggunakan model finite-context atau finite-state untuk memprediksi distribusi probabilitas dari simbol-simbol selanjutnya; contoh: algoritma DMC. Ada beberapa faktor yang sering menjadi pertimbangan dalam memilih suatu metode kompresi yang tepat, yaitu kecepatan kompresi, sumber daya yang dibutuhkan (memori, kecepatan PC), ukuran file hasil kompresi, besarnya redundansi, dan kompleksitas algoritma. Tidak ada metode kompresi yang paling efektif untuk semua jenis file.

Dalam penelitian ini, diimplementasikan tiga buah metode kompresi, yaitu algoritma Huffman, LZW, dan DMC, yang masing-masing mewakili sebuah kategori teknik pengkodean, dalam bentuk sebuah perangkat lunak. Ketiga metode ini diujikan untuk mengkompresi dan mendekompresi berbagai tipe dan ukuran file yang berbeda. Lalu dilakukan analisis statistik untuk membandingkan kinerja setiap metode berdasarkan dua faktor, yaitu rasio/perbandingan ukuran file hasil kompresi terhadap file asli dan kecepatan kompresinya.

2. Dasar Teori

2.1 Algoritma Huffman

Algoritma Huffman, yang dibuat oleh seorang mahasiswa MIT bernama David Huffman, merupakan salah satu metode paling lama dan paling terkenal dalam kompresi teks. Algoritma Huffman menggunakan prinsip pengkodean yang mirip dengan kode Morse, yaitu tiap karakter (simbol) dikodekan hanya dengan rangkaian beberapa bit, dimana karakter yang sering muncul dikodekan dengan rangkaian bit yang pendek dan karakter yang jarang muncul dikodekan dengan rangkaian bit yang lebih panjang.

(3)

Algoritma Huffman secara lengkap diberikan pada Gambar 1. 1. Pass pertama

Baca (scan) file input dari awal hingga akhir untuk menghitung frekuensi

kemunculan tiap karakter dalam file. n Å jumlah semua karakter dalam file input. T Å daftar semua karakter dan nilai peluang kemunculannya dalam file input. Tiap karakter menjadi node daun pada pohon Huffman.

2. Pass kedua

Ulangi sebanyak (n -1) kali :

a. Item m1 dan m2 Å dua subset dalam T dengan nilai peluang yang terkecil.

b. Gantikan m1 dan m2 dengan sebuah item {m1,m2} dalam T, dimana nilai peluang

dari item yang baru ini adalah penjumlahan dari nilai peluang m1 dan m2.

c. Buat node baru {m1, m2} sebagai father node dari node m1 dan m2 dalam pohon

Huffman.

3. T sekarang tinggal berisi satu item, dan item ini sekaligus menjadi node akar pohon Huffman.

Panjang kode untuk suatu simbol adalah jumlah berapa kali simbol tersebut bergabung dengan item lain dalam T.

Gambar 1. Algoritma kompresi Huffman

Sebagai contoh, dalam kode ASCII string 7 huruf “ABACCDA” membutuhkan representasi 7 × 8 bit = 56 bit (7 byte), dengan rincian sebagai berikut:

01000001 01000010 01000001 01000011 01000011 01000100 01000001 A B A C C D A Untuk mengurangi jumlah bit yang dibutuhkan, panjang kode untuk tiap karakter dapat dipersingkat, terutama untuk karakter yang frekuensi kemunculannya besar. Pada string di atas, frekuensi kemunculan A = 3, B = 1, C = 2, dan D = 1, sehingga dengan menggunakan algoritma di atas diperoleh kode Huffman seperti pada Tabel 1.

Tabel 1. Kode Huffman untuk “ABACCDA”

Simbol Frekuensi Peluang Kode Huffman

A 3 3/7 0

B 1 1/7 110 C 2 2/7 10 D 1 1/7 111 Dengan menggunakan kode Huffman ini,

string “ABACCDA” direpresentasikan menjadi rangkaian bit : 0 110 0 10 10 111 0. Jadi, jumlah bit yang dibutuhkan hanya 13 bit. Dari Tabel 1 tampak bahwa kode untuk sebuah simbol/karakter tidak boleh menjadi awalan dari kode simbol yang lain guna menghindari keraguan (ambiguitas) dalam proses dekompresi atau decoding.

Karena tiap kode Huffman yang dihasilkan unik, maka proses dekompresi dapat dilakukan dengan mudah. Contoh: saat membaca kode bit pertama dalam rangkaian bit “011001010110”, yaitu bit “0”, dapat langsung disimpulkan bahwa kode bit “0” merupakan pemetaan dari simbol “A”. Kemudian baca kode bit selanjutnya, yaitu bit “1”. Tidak ada kode Huffman “1”, lalu baca kode bit selanjutnya, sehingga menjadi “11”.

(4)

Tidak ada juga kode Huffman “11”, lalu baca lagi kode bit berikutnya, sehingga menjadi “110”. Rangkaian kode bit “110” adalah pemetaan dari simbol “B”. Metode Huffman yang diterapkan dalam penelitian ini adalah tipe statik, dimana dilakukan dua kali pembacaan (two-pass) terhadap file yang akan dikompresi; pertama untuk menghitung frekuensi kemunculan karakter dalam pembentukan pohon Huffman, dan kedua untuk mengkodekan simbol dalam kode Huffman.

2.2 Algoritma LZW

Algoritma LZW dikembangkan dari metode kompresi yang dibuat oleh Ziv dan Lempel pada tahun 1977. Algoritma

ini melakukan kompresi dengan

menggunakan dictionary, di mana

fragmen-fragmen teks digantikan dengan indeks yang diperoleh dari sebuah “kamus”. Prinsip sejenis juga digunakan dalam kode Braille, di mana kode-kode

khusus digunakan untuk merepresentasikan kata-kata yang ada.

Pendekatan ini bersifat adaptif dan efektif karena banyak karakter dapat dikodekan dengan mengacu pada string yang telah muncul sebelumnya dalam teks. Prinsip kompresi tercapai jika referensi dalam bentuk pointer dapat disimpan dalam jumlah bit yang lebih sedikit dibandingkan string aslinya. Algoritma kompresi LZW diberikan pada Gambar 2.

1. Dictionary diinisialisasi dengan semua karakter dasar yang ada : {‘A’..’Z’,’a’..’z’,’0’..’9’}.

2. P Å karakter pertama dalam stream karakter. 3. C Å karakter berikutnya dalam stream karakter. 4. Apakah string (P + C) terdapat dalam dictionary ?

• Jika ya, maka P Å P + C (gabungkan P dan C menjadi string baru). • Jika tidak, maka :

i. Output sebuah kode untuk menggantikan string P.

ii. Tambahkan string (P + C) ke dalam dictionary dan berikan nomor/kode berikutnya yang belum digunakan dalam dictionary untuk string tersebut. iii. P Å C.

5. Apakah masih ada karakter berikutnya dalam stream karakter ? • Jika ya, maka kembali ke langkah 2.

• Jika tidak, maka output kode yang menggantikan string P, lalu terminasi proses (stop).

Gambar 2. Algoritma kompresi LZW Sebagai contoh, string “ABBABABAC” akan

dikompresi dengan LZW. Isi dictionary pada awal proses diset dengan tiga karakter dasar yang ada: “A”, “B”, dan “C”. Tahapan proses kompresi ditunjukkan pada Tabel 3. Kolom posisi menyatakan posisi sekarang dari stream karakter dan kolom karakter menyatakan karakter yang terdapat pada posisi tersebut.

Kolom dictionary menyatakan string baru yang sudah ditambahkan ke dalam dictionary dan nomor indeks untuk string tersebut ditulis dalam kurung siku. Kolom output menyatakan kode output yang dihasilkan oleh langkah kompresi. Hasil proses kompresi ditunjukkan pada Gambar 3.

(5)

Langkah Posisi Karakter Dictionary Output 1. 1 A [4] A B [1] 2. 2 B [5] B B [2] 3. 3 B [6] B A [2] 4. 4 A [7] A B A [4] 5. 6 A [8] A B A C [7] 6. 9 C - - - [3]

Gambar 3. Hasil kompresi beserta isi dictionary

Proses dekompresi pada LZW dilakukan dengan prinsip yang sama seperti proses kompresi. Algoritma diberikan pada Gambar 4. Pada awalnya, dictionary diinisialisasi dengan semua karakter dasar yang ada. Lalu pada setiap langkah, kode dibaca satu per satu dari stream kode, dikeluarkan string dari dictionary yang berkorespondensi dengan kode tersebut, dan ditambahkan string baru ke

dalam dictionary. Tahapan proses dekompresi ini ditunjukkan pada Tabel 4.

Metode LZW yang diterapkan dalam penelitian ini bertipe dinamik, dimana hanya dilakukan satu kali pembacaan (one-pass) terhadap file yang akan dikompresi. Pengkodean data dilakukan secara on the fly, bersamaan dengan proses penambahan string baru ke dalam dictionary.

1. Dictionary diinisialisasi dengan semua karakter dasar yang ada : {‘A’..’Z’,’a’..’z’,’0’..’9’}. 2. CW Å kode pertama dari stream kode (menunjuk ke salah satu karakter dasar).

3. Lihat dictionary dan output string dari kode tersebut (string.CW) ke stream karakter. 4. PW Å CW; CW Å kode berikutnya dari stream kode.

5. Apakah string.CW terdapat dalam dictionary ? ‰ Jika ada, maka :

i. output string.CW ke stream karakter ii. P Å string.PW

iii. C Å karakter pertama dari string.CW iv. tambahkan string (P+C) ke dalam dictionary ‰ Jika tidak, maka :

i. P Å string.PW

ii. C Å karakter pertama dari string.PW

iii. output string (P+C) ke stream karakter dan tambahkan string tersebut ke dalam dictionary (sekarang berkorespondensi dengan CW);

6. Apakah terdapat kode lagi di stream kode ? ‰ Jika ya, maka kembali ke langkah 4. ‰ Jika tidak, maka terminasi proses (stop).

stream karakter : a b

b ab aba c

kode output : [1] [2] [2] [4] [7] [3] frasa baru yang 4 5 6 7 8

ditambahkan ke = = = = =

(6)

Gambar 4. Algoritma dekompresi LZW Tabel 4. Tahapan proses dekompresi LZW

Langkah Kode Output Dictionary

1. [1] A - - - 2. [2] B [4] A B 3. [2] B [5] B B 4. [4] A B [6] B A 5. [7] A B A [7] A B A 6. [3] C [8] A B A C 2.3 Algoritma DMC

Algoritma DMC merupakan teknik pemodelan yang didasarkan pada model finite-state (model Markov). DMC membuat probabilitas dari karakter biner berikutnya dengan menggunakan pemodelan finite-state, dengan model awal berupa mesin FSA dengan transisi 0/1 dan 1/1, seperti ditunjukkan pada Gambar 5. DMC merupakan teknik kompresi yang adaptif, karena struktur mesin finite-state berubah seiring dengan pemrosesan file. Kemampuan kompresinya tergolong amat baik, meskipun waktu komputasi yang dibutuhkan lebih besar dibandingkan metode lain [2].

Gambar 5. Model awal DMC [2] Pada DMC, simbol alfabet input diproses per bit, bukan per byte. Setiap output transisi menandakan berapa banyak simbol tersebut muncul. Penghitungan tersebut dipakai untuk memperkirakan probabilitas dari transisi. Contoh: pada Gambar 6, transisi yang keluar dari state 1 diberi label 0/5, artinya bit 0 di state 1 terjadi sebanyak 5 kali.

Gambar 6. Sebuah model yang diciptakan oleh metode DMC [2]

Secara umum, transisi ditandai dengan 0/p atau 1/q dimana p dan q menunjukkan jumlah transisi dari state dengan input 0 atau 1. Nilai probabilitas bahwa input selanjutnya bernilai 0 adalah p/(p+q) dan input selanjutnya bernilai 1 adalah q/(p+q). Lalu bila bit sesudahnya ternyata bernilai 0, jumlah bit 0 di transisi sekarang ditambah satu menjadi p+1. Begitu pula bila bit sesudahnya ternyata bernilai 1, jumlah bit 1 di transisi sekarang ditambah satu menjadi q+1. Algoritma kompresi DMC diberikan pada Gambar 7.

Masalah tidak terdapatnya kemunculan suatu bit pada state dapat diatasi dengan menginisialisasi model awal state dengan satu. Probabilitas dihitung menggunakan frekuensi relatif dari dua transisi yang keluar dari state yang baru.

1. s Å 1 /* jumlah state sekarang */

2. t Å 1 /* state sekarang */

3. T[1][0] = T[1][1] Å 1 /* model inisialisasi */

4. C[1][0] = C[1][1] Å 1 /* inisialisasi untuk menghindari masalah frekuensi nol */

5. Untuk setiap input bit e : i. u Å t

ii. t Å T[u][e] /*ikuti transisi*/

iii. Kodekan e dengan probabilitas : C[u][e] / (C[u][0] + C[u][1]) iv. C[u][e] Å C[u][e]+1

v. Jika ambang batas cloning tercapai, maka :

‰ s Å s + 1 /* state baru t’ */

‰ T[u][e] Å s ; T[s][0] Å T[t][0] ; T[s][1] Å T[t][1]

‰ Pindahkan beberapa dari C[t] ke C[s]

1 1/1 0/1 1 2 3 4 0/5 0/3 0/2 0/3 1/2 1/1 1/2 1/4

(7)

Jika frekuensi transisi dari suatu state t ke state sebelumnya, yaitu state u, sangat tinggi, maka state t dapat di-cloning. Ambang batas nilai cloning harus disetujui oleh encoder dan decoder. State yang di-cloning diberi simbol t’ (lihat Gambar 8). Aturan cloning adalah sebagai berikut :

‰ Semua transisi dari state u dikirim ke state t’. Semua transisi dari state lain ke state t tidak berubah.

‰ Jumlah transisi yang keluar dari t’ harus mempunyai rasio yang sama (antara 0 dan 1) dengan jumlah transisi yang keluar dari t.

‰ Jumlah transisi yang keluar dari t dan t’ diatur supaya mempunyai nilai yang sama dengan jumlah transisi yang masuk [2].

(a) sebelum cloning (b) setelah cloning Gambar 8. Model Markov sebelum dan setelah cloning [8] Metode DMC yang diterapkan dalam

penelitian ini bertipe dinamik, dimana hanya dilakukan satu kali pembacaan terhadap file input. Kalkulasi dilakukan secara on the fly (proses perhitungan probabilitas dilakukan bersamaan dengan pengkodean data).

3. Implementasi dan Pengujian

Untuk menghasilkan pengukuran kinerja yang valid, ketiga algoritma di atas dikompilasi menggunakan compiler bahasa pemrograman yang sama (C++ Builder 5.0) dengan setting optimasi yang sama. Implementasi dan pengujian perangkat lunak ini dilakukan dalam lingkungan perangkat keras sbb.: prosesor Intel Pentium IV 1.5 GHz, memori 128MB

RAM, harddisk Maxtor 20 GB, dan

motherboard Intel D850GB. Kecepatan kompresi dari sebuah algoritma ditentukan dari ukuran file input dibagi dengan waktu komputasi yang dibutuhkan, dan ditulis dalam satuan KByte/sec.

3.1 Kasus Uji

Dalam penelitian ini, digunakan 12 golongan besar kasus uji yang dipandang cukup memadai untuk mewakili sebagian besar tipe

1. Calgary Corpus, merupakan kasus uji benchmark yang berisi koleksi dari 14 teks, yang sudah secara luas digunakan untuk mengevaluasi metode kompresi. Corpus ini dapat di-download di: ftp://ftp.cpsc.ucalgary.ca/pub/ projects/

text.compression.corpus.

2. Canterbury Corpus, ditujukan untuk menggantikan Calgary Corpus yang telah berumur 10 tahun lebih. Corpus ini dapat

di-download di : http://corpus.canterbury.ac.nz/ftp/

large.zip.

3. File aplikasi (Excel, Acrobat Reader, Flash, Corel Draw, PowerPoint, Font Window, dan Help)

4. File yang telah dikompresi sebelumnya 5. File object/file biner (file com, file sistem,

file hasil kompilasi C, Pascal, dan Java, file DLL)

6. File basis data (Access, DBase, Paradox, MySQL)

7. File executable, baik dalam lingkungan DOS maupun Windows

8. File gambar: file jpg, file bitmap, file gif, file png, file ani, dan file wmf.

A C D B E 0 0 1 1 C’ 1 0 0 0 A C D B E 1 1

(8)

9. File multimedia (file asf, file mpeg/mpg, file mp3, file mov, file midi, file avi, file wav)

10. File source code (pascal, html, c, cpp, java, prolog, css, vbs, js, xml, php, lisp) 11. File teks (file rtf, file doc, file inf, file txt,

file ini – konfigurasi Windows)

12. File pada sistem operasi Unix (berekstensi 1 – file help, file kernel, file program)

Hasil pengukuran statistik terhadap rasio hasil kompresi dan kecepatan kompresi dari ketiga metode di atas pada semua kasus uji dirangkum dalam bentuk box plot pada Gambar 9 dan 10. Grafik perbandingan rasio kompresi dan kecepatan kompresi dari ketiga metode tersebut dalam masing-masing kasus uji ditunjukkan secara lengkap dalam Gambar 11 dan 12.

Gambar 9. Box Plot Rasio Kompresi Ketiga Algoritma

(9)

Gambar 11. Grafik perbandingan rasio kompresi

Grafik Kecepatan Kompresi

500,3 609,4 544,6 534,5 525,9 530,5 532,8 624,0 493,1 504,7 604,2 666,1 555,8 1064,4 1282,1 1237,9 1225,5 1084,1 1342,7 1017,6 1343,5 753,6 846,2 1163,6 1307,3 1139,0 249,0 266,3 242,6 243,1 270,2 131,1 259,1 80,8 104,2 255,2 264,4 218,1 251,4 UN IX Teks sourc e code aplik asi execut able data /obj ect/s istem gam bar data base multim edia hasi l ko mpr esi Calga ry C orpu s Can terb ury Co rpus Kese luru han Kategori K ecep at an K o mp res i ( K B /s ec) Huffman LZW DMC Gambar 12. Grafik perbandingan kecepatan kompresi

4. Kesimpulan

Dari penelitian ini dapat disimpulkan beberapa hal mengenai perbandingan kinerja ketiga metode kompresi yang telah diimplementasikan, yaitu :

1. Secara rata-rata algoritma DMC menghasilkan rasio file hasil kompresi yang terbaik (41.5% ± 25.9), diikuti algoritma LZW (60.2% ± 28.9) dan terakhir algoritma Huffman (71.4% ± 15.4).

2. Untuk kategori file teks, source code, file aplikasi, dan file basis data, DMC memberikan hasil kompresi yang baik sekali. Sedangkan untuk file multimedia, hasil kompresinya buruk (dapat > 100 %),

merupakan file hasil kompresi juga, dan hasil kompresi DMC terhadap file yang telah terkompresi sebelumnya memang kurang baik.

3. Hasil kompresi Huffman lebih baik dibandingkan LZW hanya pada kasus file biner, file multimedia, file gambar, dan file hasil kompresi. Algoritma Huffman memberikan hasil yang relatif hampir sama untuk setiap kasus uji, sedangkan LZW memberikan hasil kompresi yang buruk (dapat > 100%) untuk file multimedia dan file hasil kompresi.

4. Secara rata-rata algoritma LZW membutuhkan waktu kompresi yang tersingkat (kecepatan kompresinya = 1139 KByte/sec ± 192,5), diikuti oleh algoritma Grafik Rasio Kompresi

80.1 59.1 68.3 75.7 77.8 77.9 71.7 53.4 96.8 92.9 56.3 46.9 71.4 67.3 43.9 44.5 48.1 63.8 35.4 72.7 33.4 125.5 104.4 48.4 35.4 60.2 48.5 25.8 20.7 26.0 45.0 24.0 55.7 22.1 100.3 79.9 28.3 21.7 41.5

UNIX Teks source code aplikasi executable data/object/sistem gambar database multimedia hasil kompresi Calgary Corpus

Canterbury Corpus Rata-Rata

Kategori

(10)

Huffman (555,8 KByte/sec ± 55,8), dan terakhir DMC (218,1 KByte/sec ± 69,4). DMC mengorbankan kecepatan kompresi untuk mendapatkan rasio hasil kompresi yang baik. File yang berukuran sangat besar membutuhkan waktu yang sangat lama bila dikompresi dengan DMC (contoh: file multimedia dengan ukuran 59 MB membutuhkan waktu kompresi 12,3 menit).

5. Kecepatan kompresi algoritma LZW secara signifikan berkurang pada file UNIX, file executable, file gambar, file multimedia, dan file hasil kompresi. Kecepatan kompresi algoritma DMC berkurang pada file gambar dan file hasil kompresi, bahkan untuk file multimedia kecepatan kompresi berkurang lebih dari sepertiga kalinya dibandingkan kecepatan kompresi rata-rata. Kecepatan kompresi algoritma Huffman hampir merata untuk semua kategori file.

5. Daftar Pustaka

[1] Howe, D., “Free On-line Dictionary of Computing”, http://www.foldoc.org/, 1993.

[2] Witten, I.H, et al., “Managing Gigabytes”, Van Nostrand Reinhold, New York, 1994. [3] Ben Zhao, et al., “Algorithm in the Real

World - (Compression) Scribe Notes”, http://www-2.cs.cmu.edu/~guyb/real-world/class-notes/all/, 1998, [17 Jan 2002] [4] Compression Team, “The LZW

Algorithm”, Data Compression Reference Center,

http://www.rasip.fer.hr/research/compress/ algorithms/fund/lz/LZW.html, 1997, [17 Jan 2002]

[5] Ziviani, N., de Moura, E. S., “Compression: A Key for Next Generation Text Retrieval System”, Department of Computer Science Univ. Federal de Minas Gerais, Brazil, 2000.

[6] University of Calgary, Calgary Corpus, http://links.uwaterloo.ca/calgary.corpus.ht ml, [26 Maret 2002]

[7] University of Canterbury, “The Canterbury Corpus”,

http://corpus.canterbury.ac.nz, [26 Feb 2002]

[8] Cormack, G.V., Horspool, R.N., “Data Compression Using Dynamic Markov Compression”, University of Waterloo and University of Victoria, 1986.

Gambar

Tabel 1. Kode Huffman untuk “ABACCDA”
Gambar 2. Algoritma kompresi LZW  Sebagai contoh, string “ABBABABAC” akan
Gambar 3. Hasil kompresi beserta isi dictionary
Gambar 4. Algoritma dekompresi LZW  Tabel 4. Tahapan proses dekompresi LZW
+3

Referensi

Dokumen terkait

Kompresi Huffman adalah metode paling efisien dari metode lain yang sejenis karena pemetaan lain simbol dari sumber data menjadi string unik menghasilkan file output yang

Berdasarkan analisis yang telah dilakukan aplikasi identifikasi jenis bunga menggunakan ekstraksi ciri orde satu dan algoritma multisvm dapat mengidentifikasi jenis

Penelitian ini menghasilkan sebuah model organisasi pembelajaran yang dapat diterapkan pada organisasi bisnis telekomunikasi selular. Model tersebut dibangun dari hasil penelitian

Telah dilakukan penelitian tentang perbedaan jumlah bakteri orofaring pada tindakan oral hygiene menggunakan chlorhexidine 0,2% dibandingkan povidone iodine 1% pada

Pada menjalankan kuasa yang diberikan oleh seksyen 168, Kanun Tanah Negara, notis adalah dengan ini diberi bahawa adalah dicadangkan hendak mengeluarkan hakmilik

"egiatan perbaikan mutu dan kinerja Puskesmas dilakukan sesuai dengan rencana kegiatan yang tersusun dan di lakukan pertemuan tinjauan manajemen  yang memba#as kinerja

Limbah padat yang sudah dipersiapkan pada tahap sebelumnya dan kotoran ayam ditimbang sebanyak takaran terbaik berdasarkan hasil penelitian tahap III dan dibungkus

CJNE @Rp,#n, radd Bandingkan isi/data suatu alamat yang dicatat register Rp dengan data immediate n; jika tidak sama lompat ke alamat relatif; set carry 1 jika data pada