kompresi data

12
KOMPRESI DATA 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], antaralain: Huffman, LIFO, LZHUF,LZ77 dan variannya (LZ78, LZW, GZIP), Dynamic Markov Compression (DMC), Block-SortingLossless, Run-Length, Shannon- Fano,Arithmetic, PPM (Prediction by PartialMatching), 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 : • Metode static : menggunakan peta kode yang selalu sama. Metode ini membutuhkan dua fase (two-pass): fasepertama 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. • 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 1-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

Upload: angga-wijaya-kusuma

Post on 10-Aug-2015

34 views

Category:

Documents


4 download

DESCRIPTION

materi kompresi data

TRANSCRIPT

Page 1: Kompresi Data

KOMPRESI DATA

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], antaralain: Huffman, LIFO, LZHUF,LZ77 dan variannya (LZ78, LZW, GZIP), Dynamic Markov Compression (DMC), Block-SortingLossless, Run-Length, Shannon-Fano,Arithmetic, PPM (Prediction by PartialMatching), 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 :• Metode static : menggunakan peta kode yang selalu sama. Metode ini membutuhkan dua fase (two-pass): fasepertama 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.• 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 1-kali pembacaan terhadap isi file. Contoh: algoritma LZW dan DMCBerdasarkan 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. 

Ruangan penyimpanan lebih kecil sehingga lebih efisien dalam menyimpannya atau mempersingkat waktu pertukaran data tersebut. Ada terdapat dua jenis pemampatan data, yaitu pemampatan tanpa kehilangan (lossless data compression) dan pemampatan berkehilangan (lossy data compression).

1. Lossy CompressionLossy compression menyebabkan adanya perubahan data dibandingkan sebelum dilakukan proses kompresi. Sebagai gantinya lossy compression memberikan derajat kompresi lebih tinggi. Tipe ini cocok untuk kompresi file suara digital dan gambar digital. File suara dan

Page 2: Kompresi Data

gambar secara alamiah masih bisa digunakan walaupun tidak berada pada kondisi yang sama sebelum dilakukan kompresi.

2. Lossless CompressionSebaliknya Lossless Compression memiliki derajat kompresi yang lebih rendah tetapi dengan akurasi data yang terjaga antara sebelum dan sesudah proses kompresi. Kompresi ini cocok untuk basis data, dokumen atau spreadsheet. Pada lossless compression ini tidak diijinkan ada bit yang hilang dari data pada proses kompresi.

Secara umum kompresi data terdiri dari dua kegiatan besar, yaitu Modeling dan Coding. Proses dasar dari Compresi data adalah menentukan serangkaian bagian dari data (stream of symbols) mengubahnya menjadi kode (stream of codes). Jika proses kompresi efektif maka hasil dari stream of codes akan lebih kecil dari segi ukuran daripada stream of symbols. Keputusan untuk mengindentikan symbols tertentu dengan codes tertentu adalah inti dari proses modeling. Secara umum dapat diartikan bahwa sebuah model adalah kumpulan data dan aturan yang menentukan pasangan antara symbol sebagai input dan code sebagai output dari proses kompresi. Sedangkan coding adalah proses untuk menerapkan modeling tersebut menjadi sebuah proses kompresi data.

Dengan menggunakan Huffman coding sebagai contoh, sebuah proses kompresi akan nampak seperti gambar berikut ini:

Pada Huffman coding, symbols yang sering muncul akan diubah menjadi code dengan jumlah bit kecil, sedangkan yang jarang muncul akan menjadi code dengan jumlah bit besar.

1. CodingMelakukan proses encoding dengan menggunakan ASCII atau EBDIC yang merupakan standar dalam proses komputasi memberikan kelemahan mendasar apabila dilihat dari paradigma kompresi data. ASCII dan EBDIC menggunakan jumlah bit yang sama untuk setiap karakter, hal ini menyebabkan banyak bit yang ”terbuang” untuk merepresentasikan karakter-karakter yang sebenarnya jarang muncul pada sebuah pesan.Salah satu cara mengatasi permasalahan di atas adalah dengan menggunakan Huffman-coding. Huffman-coding yang dikembangkan oleh D.A. Huffman mampu menekan jumlah redundancy yang terjadi pada sebuah pesan yang panjangnya tetap. Huffman-coding bukanlah teknik yang paling optimal untuk mengurangi redundancy tetapi Huffman-coding merupakan teknik terbaik untuk melakukan coding terhadap symbol pada pesan yang panjangnya tetap. Permasalahan utama dengan Huffman-coding adalah hanya bias menggunakan bilangan bulat untuk jumlah bit dari setiap code. Jika entropy dari karakter tersebut adalah 2,5 maka apabila melakukan pengkodean dengan Huffman-coding karakter tersebut harus terdiri dari 2 atau 3 bit.Hal tersebut membuat Huffman-coding tidak bisa menjadi algoritma paling optimal dalam mengatasi redundancy ini. Pada contoh berikut ini dapat diamati contoh dari Huffman-code dengan asumsi bahwa karakter yang sering muncul seperti E,A dikodekan dengan jumlah bit lebih pendek daripada karakter yang jarang muncul seperti X,Q, dan Z.

Huffman-coding memang kurang efisien karena untuk melakukan pengkodean kita harus menggunakan bilangan bulat. Walaupun demikian Huffman-coding sangat mudah digunakan dan sampai awal era 90-an di mana prosesor komputer masih sulit untuk melakukan komputasi bilangan pecahan Huffman-coding dianggap paling rasional untuk diaplikasikan pada proses kompresi data. Setelah kelahiran prosesor yang mampu melakukan operasi

Page 3: Kompresi Data

bilangan pecahan dengan cepat maka banyak algoritma coding baru bermunculan dan salah satunya adalah Arithmatic-coding. Arithmatic coding lebih kompleks dan rumit dibandingkan Huffman-coding, tetapi di sisi lain Arithmatic-coding memberikan optimalisasi yang lebih tinggi. Arithmatic-coding memungkinkan jumlah bit dalam pecahan karena arithmatic coding tidak bekerja per karakter dari pesan tetapi langsung pada keseluruhan pesan. Misalnya entropy dari karakter e pada pesan adalah 1,5 bit maka pada output code pun jumlah bit-nya adalah 1,5 dan bukan 1 atau 2 seperti pada Huffman-coding. Contoh berikut ini dapat memberikan gambaran optimalisasi yang didapatkan antara menggunakan Huffman-coding dan Arithmatic-coding:

ALGORITMA KOMPRESI

Walaupun saat ini sudah bukan lagi proses coding yang menghasilkan kompresi paling optimal namun algoritma Shannon-Fano dan Algoritma Huffman adalah dua algoritma dasar yang sebaiknya dipahami oleh mereka yang mempelajari tentang kompresi data.

1. Algoritma Shannon-Fano

Teknik coding ini dikembangkan oleh dua orang dalam dua buah proses yang berbeda, yaitu Claude Shannon di Bell Laboratory dan R.M. Fano di MIT, namun karena memiliki kemiripan maka akhirnya teknik ini dinamai dengan mengggabungkan nama keduanya. Pada dasarnya proses coding dengan algoritma ini membutuhkan data akan frekuensi jumlah kemunculan suatu karakter pada sebuah pesan. Tiga prinsip utama yang mendasari algoritma ini adalah:

A. Simbol yang berbeda memiliki kode yang berbedaB. Kode untuk symbol yang sering muncul memiliki jumlah bit yang lebih sedikit dan sebaliknya symbol yang jarang muncul memiliki kode dengan jumlah bit lebih besar.C. Walaupun berbeda jumlah bit-nya tetapi kode harus tetap dikodekan secara pasti (tidak ambigu).

Berikut adalah langka-langkah Algoritma Shannon-Fano1. Buatlah tabel yang memuat frekuensi kemunculan dari tiap karakter.2. Urutkan berdasar frekuensi tersebut dengan karakter yang frekuensinya paling sering muncul berada di atas dari daftar (descending).3. Bagilah 2 tabel tersebut dengan jumlah total frekuensi pada bagian atas mendekati jumlah total frekuensi pada bagian bawah (lihat table 3).4. Untuk bagian paro atas berikan kode 0 dan pada paro bawah berikan kode.5. Ulangi langkah 3 dan 4 pada masing-masing paro tadi hingga seluruh symbol selesai dikodekan.

Dari proses pengkodean tersebut kita mendapatkan serangkaian kode untuk merepresentasikan kelima simbol A, B, C, D, E sebagai berikut:A > 00 ; B > 01; C > 10 ; D > 110 ; dan E > 111

2. Algoritma Huffman

Algoritma Huffman memiliki kemiripan karakteristik dengan Algoritma Shannon-Fano. Masing-masing simbol dikodekan dengan deretan bit secara unik dan simbol yang paling sering muncul mendapatkan jumlah bit yang paling pendek.

Page 4: Kompresi Data

Perbedaan dengan Shannon-Fano adalah pada proses pengkodean. Jika algoritma Shannon-Fano membangun tree dengan pendekatan top-down, yaitu dengan memberikan bit pada tiap-tiap simbol dan melakukannya secara berurutan hingga seluruh leaf mendapatkan kode bit masing-masing. Sedangkan algoritma Huffman sebaliknyamemberikan kode mulai dari leaf secara berurutan hingga mencapai root.7Prosedur untuk membangun tree ini sederhana dan mudah dipahami. Masing-masing simbol diurutkan sesuai frekuensinya, frekuensi ini dianggap sebagai bobot dari tiap simbol, dan kemudian diikuti dengan langkah-langkah sebagai berikut:1. Dua node bebas dengan bobot terendah dipasangkan.2. Parent node untuk kedua node pada langkah sebelumnya dibuat. Jumlahkan frekuensi keduanya dan gunakan sebagai bobot.3. Sekarang parent node berperan sebagai node bebas.4. Berikan kode 0 untuk node kiri dan 1 untuk node kanan.5. Ulangi langkah di atas sampai hanya tersisa satu node. Sisa satu node ini lah yang disebut sebagai root.Untuk lebih jelasnya tentang algoritma Huffman dapat diamati pada gambar berikut ini:

Dari algoritma Huffman didapatkan hasil pengkodean sebagai berikut:A> 0; B >100; C > 101; D >110; E >111

Pada kondisi apapun algoritma Huffman akan menghasilkan jumlah bit yang lebih kecil atau sama dengan hasil pengkodean dengan algoritma Shannon-Fano, karena itu Huffman dianggap jauh lebih optimal untuk digunakan pada proses kompresi data.Demikian pula untuk contoh di atas yang hasilnya dapat kita amati pada tabel berikut ini.

II. Modeling

Jika coding adalah roda dari sebuah mobil maka modeling adalah mesinnya. Sebaik apapun algoritma untuk melakukan coding tanpa model yang baik kompresi data tidak akan pernah terwujud. Kompresi Data Lossless pada umumnya diimplementasikan menggunakan salah satu dari dua tipe modeling, yaitu statistical atau dictionary-based. Statistical-modeling melakukan prosesnya menggunakan probabilitas kemunculan dari sebuah symbol sedangkan dictionary-based menggunakan kode-kode untuk menggantikan sekumpulan symbol.

1. Statistical ModelingPada bentuk paling sederhananya, statistical-modeling menggunakan table statis yang berisi probabilitas kemunculan suatu karakter atau symbol. Tabel ini pada awalnya bersifat universal, sebagai contoh pada bahasa Inggris karakter yang paling sering muncul adalah huruf “e” maka karakter ini memiliki 9 probabilitas tertinggi pada file teks yang berbahasa Inggris. Menggunakan tabel universal pada akhirnya tidak memuaskan para ahli kopresi data karena apabila terjadi perubahan pada subyek yang dikompresi dan tidak sesuai dengan tabel universal maka akan terjadi penurunan rasio kompresi secara signifikan. Akhirnya muncul modeling dengan menggunakan tabel yang adaptif, di mana tabel tidak lagi bersifat statis tetapi bisa berubah sesuai dengan kode. Pada prinsipnya dengan model ini, sistem melakukan penghitungan atau scan pada keseluruhan data setelah itu barulah membangun tabel probabilitas kemunculan dari tiap karakter atau symbol. Model ini kemudian dikembangkan lagi menjadi adaptive statistical modeling di mana sistem tidak perlu melakukan scan ke seluruh symbol untuk membangun tabel statistik, tetapi secara adaptif melakukan perubahan tabel pada proses scan karakter per karakter.

Page 5: Kompresi Data

2. Dictionary Based ModelingJika statistical model pada umumnya melakukan proses encode simbol satu  buatà hitung probabilitas àper satu mengikuti siklus: baca karakter  kodenya maka dictionary-based modeling menggunakan mekanisme yang berbeda. Dictionary-based modeling membaca input data dan membandingkannya dengan isi dictionary. Jika sekumpulan string sesuai dengan isi dictionary maka indeks dari dictionary entry lah yang dikeluarkan sebagai output dan bukan kodenya. Sebagai perumpamaan dari dictionary-based dapat digunakan makalah ilmiah sebagai contoh. Saat kita membaca makalah ilmiah kita sering membaca nomor-nomor referensi yang bisa kita cocokkan dengan daftar pustaka di belakang. Hal ini mirip dengan proses pada dictionary-based modeling.

PERBANDINGAN STANDAR-STANDAR KOMPRESIPendahuluan

Banyak orang yang menginginkan kualitas sebuah gambar semakin baik, tapi terkadang suatu ambar dengan format tertentu tidak dapat dilakukan pengeditan. Walaupun dapat diedit namun membutuhkan kapasitas yang cukup besar untuk menyimpan file tersebut. Untuk itu perlu dibandingkan jenis kompresi yang digunakan baik berdasarkan teori cara kerja format kompresi, perbandingan hasil gambar dan perbandingan nilai kompresi dari masing-masing format sehingga dari hasil analisa tersebut bisa menjadi acuan, format apa yang cocok untuk digunakan oleh masing-masing pengguna.

dasar teori

Secara mendasar standar-standar teknik kompresi gambar memiliki 2 teknik kompresi yaitu teknik kompresi secara lossy dan lossles. Untuk teknik kompresi secara lossy ada sebagian dari informasi yang hilang dalam gambar tersebut sehingga jika dilakuakan proses edit akan susah dilakukan. Sedangkan teknik kompresi secara lossless tidak menghilangkan informasi sedikit pun, hanya mewakilkan beberapa informasi yang sama. Untuk gambar banyak sekali jenis-jenis kompresi, antara lain yang akan dibahas perbandingannya untuk makalah ini adalah:

1. GIFGraphic Interchange Format (GIF, dibaca jiff, tetapi kebanyakan orang menyebutnya dengan giff) yang dibuat oleh Compuserve pada tahun 1987 untuk menyimpan berbagai gambar dengan format bitmap menjadi sebuah file yang mudah untuk diubah pada jaringan komputer. GIF adalah file format graphic yang paling tua pada Web, dan begitu dekatnya file format ini dengan web pada saat itu sehingga para Browser menggunakan format ini. GIF mendukung sampai 8 bit pixel, itu berarti maksimum jumlah warnanya 256 warna (28 = 256 warna), 4-pass interlacing, transparency dan mengunakan varian dari algoritma kompresi Lempel-Ziv Welch (LZW). LZW adalah algoritma kompresi lossless, antara kompresi dan dekompresi waktunya adalah simetris. LZW adalah repeated-string compressor, LZW menggunakan kamus data (atau yang sering disebut dengan translation table atau string table) untuk merepresentasikan agar data menjadi linier di dalam uncompressed input stream. Pertama kali suatu urutan ditemukan kode yang berbeda maka kode tersebut ditambahkan kedalam kamus data. Semua data yang ada dibandingkan dengan data masukan, jika sama maka diwakilkan dengan sebuah kode.Terdapat dua tipe dari GIFs, antara lain:GIF87a: support dengan interlacing dan kapasitas dari beberapa file. Teknik itu dinamakan

Page 6: Kompresi Data

GIF87karena pada tahun 1987 standar ini ditemukan dan dijadikan standar.

GIF89a: adalah kelanjutan dari spesifikasi GIF87a dan penambahan pada transparency, pemberian tulisan dan animasi dari teks dan grafik.Selagi algoritma kompresi LZW yang digunakan oleh GIF adalah salah satu algoritma general purpose compression yang terbaik, kompresi LZW tidak di rancang untuk graphic yang mempunyai spesifik yang tinggi. Algoritma LZW tidak dapat digunakan dengan baik pada bilevel (hitam dan putih) atau true color images.Algoritma LZW yang digunakan pada GIFs, sudah dipatenkan oleh Unisys. Oleh karena itu developer yang medistribusikan aplikasi yang membuat GIF harus sudah mendapatkan lisensi dari Unisy. Segera setelah CompuServe dan Unisy mendapatkan royalti dari aplikasi tersebut muncullah standar yang lebih baru yaitu PNG.

2. PNGPortable Network Graphic (PNG, dibaca ping) format ini dirancang agar menjadi lebih baik dengan format yang terdahulu yaitu GIF yang sudah dilegalkan. PNG di rancang untuk algoritma lossless untuk menyimpan sebuah bitmap image. PNG mempunyai persamaan fitur dengan GIF salah satunya adalah (multiple images), meningkatkan sesuatu contohnya (interlacing, kompresi) dan penambahan fitur-fitur yang terbaru (gamma storage, full alpha channel, true color support, error detection). Medukung untuk Web browser dimana dapat dilakukan plug-ins pada web browser. PNG menggunakan metode kompresi Deflate, digunakan pada popular file archiving utility (pkzip). Deflate adalah kelanjutan versi dari algoritma kompresi Lempel-Ziv. Deflate, sistem kerjanya sama dengan algoritma LZW dan melakukan scanning dengan cara garis horizontal. Untuk lebih lanjutnya meningkatkan kompresi, PNG prefilter data gambar menggunakan fungsi prediksi sebelum data gambar dikompresi. PNG menggunakan empat buah fungsi prediksi, dua diantaranya digunakan untuk alamat vertical patterns. Jadi PNG melakukan hal yang sama seperti GIF yaitu pada teknik kompresi horizontal patern, tetapi PNG’s filter selalu menemukan vertical patterns, menghasilkan tambahan pada sistem kompresi.PNG menggunakan skema 7-pass interlacing yang mana menghasilkan gambar yang lebih cepat dibandingkan dengan GIF. Selagi menyusun kembali pesanan dengan cara sederhana dimana baris pada pixels disimpan, PNG menggunakan yang pertama kali menggunakan 6-pass secara gradual dan membangun even number garis pencarian (0, 2, 4, dan lain-lain) dan pass yang terakhir digunakan untuk mengisi bentuk yang bernomer genap tersebut.Pengguna dapat melihat 1/64 kualitas gambar secara cepat diikuti dengan 1/32, 1/16 dan seterusnya. Gambar yang dihasilkan mempunyai kapasitas 20 hingga 30 persen dari interlance gambar yang diterima sebelum dikompresi, dibandingkan dengan GIF yang mencapai 50 persen untuk interlance. Sehingga dengan teknik interlance dapat dihasilkan kapasitas file gambar sekitar 7 persen dari kapasitas file yang sebenarnya.

PNG mampu mencapai 16 bit (gray scale) atau 48 bit untuk true color per pixel, dan mencapai 16 bits dari alpha data. PNG mendukung dua buah metode dari transparency, satu buah color penutup seperti pada GIF89a’s dan alpa channel. PNG’s dengan Full alpha chanell mampu mencapai 64K level dari transparency untuk masing-masing pixel (216 =65.536). Ini memungkinkan PNG dapat membuat gambar lebih bercahaya dan membuat bayang-bayangbackground dari pewarnaan yang berbeda.

3. JPEGJoint Photograpic Experts (JPEG, dibaca jay-peg) di rancang untuk kompresi beberapa full-

Page 7: Kompresi Data

color atau gray-scale dari suatu gambar yang asli, seperti pemandangan asli di dunia ini. JPEGs bekerja dengan baik pada continous tone images seperi photographs atau semua pekerjaan seni yang menginginkan yang nyata; tetapi tidak terlalu bagus pada ketajaman gambar dan seni pewarnaan seperti penulisan, kartun yang sederhana atau gambar yang mengunakan banyak garis. JPEG sudah mendukung untuk 24-bit color depth atau sama dengan 16,7 juta warna (224 = 16.777.216 warna). Progressive JPEGs (p-JPEGs) adalah tipe dari beberapa persen lebih kecil dibandingkan baseline JPEGs: tetapi keuntungan dari JPEG dan tipetipenya telihat pada langkah-langkahnya sama seperti iinterlaced GIFs.JPEG adalah algoritma kompresi secara lossy. JPEG bekerja dengan merubah gambar spasial dan merepresentasikan ke dalam pemetaan frekuensi. Discrete Cosine Transform (DCT) dengan memisahkan antara informasi frekuensi yang rendah dan tinggi dari sebuah gambar. Informasi frekuensi yang tinggi akan diseleksi untuk dihilangkan yang terikat pada penganturan kualitas yang digunakan. Kompresi dengan tingkatan yang lebih baik, tingkatan yang lebih baik dari informasi yang dihilangkan. Waktu Kompresi dan dekompresi dilaksanakan dengan simetris. JPEG Group’s (IJG) decoder lebih ditingkatkan kemampuannya dibadingkan dengan encodernya. Manakala, ketika dperlihatkan 8 bits, mengurangi kuantisasi warna yang lambat. Banyak para penjual JPEG menawarkan untuk mempercepat hasil dari JPEG, kuantisasi warna dan kualitas dengan mengimplementasikan IJG. Peningkatan JPEG Huffman Code mengoptimasi (banyak menawarkan fitur) menghasilkan suatu yang baru ”code table” yang bekerja dangan baik untuk mengkompresi image tunggal dengan mengunakan standar generic table berjalan dengan baik dari sisi manapun Mengoptimalakan kuantisasi table (HVS JPEG) Meningkatkan Sub-sampling (ketajaman gambar akan menembah kapasitas file gambar tersebut) Lossless edits/cropping/rotation Pemilihan teknik kompresi dengan Region of interest JPEG dirancang untuk mengeksploitasi tingkatan dari mata kita yakni bahwa mata kita tidak akan dapat mebedakan perubahan yang gambar terang dan warna dibandingkan dengan perbedaan suatu jarak apakah jauh atau dekat. Untuk itu JPEg sangat baik digunakan pada fotografi dan monitor 80-bit. JPEG sebenarnya hanyalah algoritma kompresi, bukan merupakan nama format file. File yang biasa disebut JPEG pada jaringan sebenarnya adalah JFIF (JPEG File Interchange Format).Analisa Perbandingan Nilai Kompresi pada Masing-Masing Format Analisa yang digunakan pada akalah ini adalah dengan melakukan perbandingan beberapa format tersebut berdasarkan nilai kompresi masing-masing format kompresi.

Rumus untuk mencari nilai kompresi adalah100%-( a/b×100%),

Dimana: a = kapasitas file setelah dikompresib = kapsitas file sebelum dikompresi

Ukuran kapasitas besar file 5 contoh gambar yang digunakan untuk analisa pada makalah ini bervariasi dimana format file asalnya adalah menggunakan format bmp (bit map picture). Sehingga dari analisa semuanya didapatkan nilai masing-masing ukuran file setelah dikompresi untuk masing-masing format, hal ini terlihat pada tabel 3.1.

Dari hasil tabel analisa dan gambar dapat dilihat bahwa nilai kompresi yang apling baik adalah pada JPEG, walaupun terkadang ada beberapa file JPEG lebih besar kapasitasnya dibandingkan dengan file GIF. Biasanya adalah gambar yang dibuat dari pembuatan gambar dengan menggunakan corel draw. Dikarenakan untuk gambar yang dibuat dari program pembuatan gambar akan sulit dilakukan proses kompresi secara lossy, karena untuk

Page 8: Kompresi Data

rekontruksi diperlukan informasi yang jelas pada gambar.Kesimpulan

• Untuk pengguna web lebih diutamakan menggunakan file dengan format kompresi JPEG dikarenakan kapasitas file dengan format JPEG lebih kecil dan nilai kompresi yang sangat tinggi, hal ini sangat diperlukan karena internet memilki keterbatasan bandwidth.

• GIF memiliki kemampuan untuk dapat dilakukan proses pengeditan dan membuat gambarnya menjadi bentuk animasi dikarenakan menggunakan teknik kompresi secara lossless. Sehinggga format kompresi ini sering digunakan oleh user design sebuah gambar yang mengiginkan file gambarnya tetap kecil.

• PNG memiliki ketajaman warna dan cahaya dibandingkan dengan GIF dan dapat dilakukan proses pengeditan gambar, tapi tidak untuk pembuatan gambar animasi, sehingga para foto grapher banyak menggunakan file ini.

KesimpulanDemikianlah tulisan ini sebagai sebuah upaya mengenalkan subyek Kompresi Data. Sangat banyak yang bisa dipelajari lebih lanjut tentang subyek ini.Pengembangan dan riset lanjutan pun bisa dilakukan apabila kita tertarik untuk mempelajarinya lebih lanjut. Berbagai algoritma untuk proses coding maupun modeling terus bermunculan dan menimbulkan berbagai harapan untuk kompresi data dengan rasio yang lebih optimal dan proses yang lebih cepat.

Referensi:Blelloch, G.E., Introduction to Data Compression. Computer Science Department,Carnegie Mellon University, 2001

Nelson, M., Gailly, J.L., The Data Compression Book, Second Edition. M&T Books, NewYork, 1996