Skip to content

KOMPRESI SUARA, GAMBAR DAN VIDEO DIGITAL (PRINSIP DAN TEKNIK)

April 22, 2012

Pendahuluan 

            Terdapat banyak teknik kompresi yang mengkompres file teks, tetapi bagaimana dengan kompresi data multimedia. Pada subbab berikut akan dibahas prinsip, teknik dan standar kompresi pada data multimedia terutama pada data suara, gambar dan video yang sudah dalam bentuk digital.

 

Prinsip Kompresi

Kompresi dalam sistem multimedia sering dipertanyakan, sehingga bit rate atau penyimpanan data multimedia dapat dikelola. Apakah hal tersebut memungkinkan? Jawabannya adalah Ya. Kita dapat mengkompresi data dengan memanfaatkan dua faktor utama, yaitu redundansi data pada suara, gambar atau video dan kepemilikan persepsi manusia.

 

Redundancy Data

            Seperti kita telah diskusikan pada bab sebelumnya, suara digital adalah nilai sample seri. Sedangkan sebuah gambar adalah sebuah array segi empat yang berisi nilai sample (pixel), video adalah sederetaan gambar yang dimainkan dalam kecepatan tertentu. Nilai sample yang bertetanggan adalah saling berhubungan. Nilai yang berhubungan ini secara statistik ini yang disebut  redundancy. Mneghilangkan redundancy tidak akan merubah arti data.

 

Redundancy pada Suara Digital

Dalam beberapa kasus, suara terdengar sama. Nilai sample suara berikutnya dapat diprediksi berdasarkan nilai sample suara sebelumnya. Teknik kompresi yang menggunakan fitur ini disebut predictive coding.

Pada suara digital, terdapat tipe redundancy lain: selama kita melakukan percakapan atau berbicara, terdapat suatu waktu yang kosong atau tidak bersuara. Menghilangkan sample suara pada saat itu tidak akan mempengaruhi arti dari pembicaraan. Teknik kompresi ini disebut silence removal.

 

Redundancy pada Gambar Digital

Pada gambar digital, sample bertetangga pada satu garis scanning biasanya mirip. Kemiripan ini disebut  spatial redundancy. Spatial redundancy ini dapat dihilangkan dengan teknik pengkodean prediksi dan teknik lain (seperti transform coding).

 

Redundancy pada Video Digital

Video digital adalah sederetan gambar, maka ia akan memiliki redundancy. Gambar bertetangga biasanya memiliki kemiripan. Kemiripan ini disebut temporal redundancy dan dapat dihilangkan dengan pengkodean prediksi.

 

Persepsi Manusia 

Pengguna akhir (end user) dari suara, gambar dan video digital adalah manusia. Manusia dapat mentolerir beberapa kesalahan (error) atau kehilangan (loss) tanpa mempengaruhi efektifitas komunikasi. Ini artinya bahwa versi kompresi tidak harus menampilkan data keseluruhan dari data aslinya. Tetapi hal ini sangat bertolak belakang dengan data alphanumeric yang tidak memperkenankan data hilang ataupun rusak sedikitpun, terutama pada program komputer.

Hal diatas menunjukkan bahwa persepsi manusia pada umumnya tidak sensitif terhadap kerusakan kecil atau kehilangan data pada suara, gambar dan video.

Klasifikasi Teknik Kompresi 

            Terdapat banyak teknik kompresi untuk mengkompres data mulltimedia. Mereka dapat diklasifikasikan dalam berbagai cara dengan berbagai kriteria. Beberapa klasifikasi berdasarkan algoritma kompresi yang digunakan. Pada modul ini kita akan mengklasifikasikan berdasarkan hasil teknik kompresi. Tipe klasifikasi ini lebih bermanfaat bagi pengguna akhir dan pengembang yang merancang dan mengembangkan sistem multimedia.

 

Teknik Kompresi Lossless Vs Lossy

            Jika data asli dapat dibentuk kembali sesuai dengan aslinya setelah menggunakan teknik kompresi ini, maka teknik kompresi ini disebut teknik kompresi lossless. Lawanya adalah lossy.

            Teknik kompresi lossless biasanya digunakan untuk program komputer (*.exe, *.zip, *.rpm, *.bin, *.iso, *.tar) dan dokumen resmi (*.doc, *.xls, *.ppt) dimana tidak diperkenankan adanya kerusakan / kesalahan (error) ataupun kehilangan (loss). Teknik kompresi ini memanfaatkan hanya data redundancy. Dan biasanya rasio kompresi yang didapat cenderung rendah.

Teknik kompresi lossy biasanya digunakan untuk mengkompres suara, gambar dan video  digital pada kebanyakan aplikasi multimedia dimana beberapa kesalahan atau kehilangan dapat ditolerir. Teknik ini memanfaatkan data redundancy dan persepsi manusia. Sehingga rasio kompresi yang didapat bisa sangat tinggi. Contohnya rasio kompresi untuk MP3 bisa mencapai 90%.

Diagram Alir Pemrosesan Kompresi

 Gambar 4.1 Diagram alir proses kompresi

Pada gambar diatas, diperlihatkan proses kompresi, mulai dari data sebelum kompresi sampai data selesai dikompresi. Langkah-langkah kompresi adalah sebagai berikut: bagian persiapan data didalamnya terdapat konversi ADC (Analog-to-Digital Converter) dan memberikan pendekatan informasi kepada data yang akan dikompresi. Dalam hal ini data yang akan dikompresi adalah gambar. Data tersebut akan dibagi-bagi menjadi blok yang berukuran 8×8 pixel, masing-masing pixel mewakili sejumlah bit. Proses ini merupakan proses yang pertama pada teknik kompresi. Jika suatu daerah pada data akan dilakukan kompresi, maka daerah tersebut harus diubah terlebih dahulu. Dan data akan diselesaikan saat itu juga. Data akan ditransformasikan dari fungsi waktu ke dalam fungsi frekwensi yang diperlukan untuk membangun vektor dari masing-masing 8×8 blok dalam frame yang berurutan. Quantization menetapkan pemetaan granularity dari angka sebenarnya. Seperti pecahan kedalam bilangan bulat. Hal tersebut konsekwensinya untuk mereduksi kebutuhan kapasitas yang sedikit.

Langkah pemrosesan dan kuantisasi dapat dimungkinkan untuk dilakukan berulang-ulang beberapa kali. Setelah proses kompresi, aliran data dibentuk kedalam bentuk yang spesifik, tergantung dari teknik kompresi yang digunakan dan juga kode untuk melakukan koreksi kesalahan.

Dekompresi adalah proses kebalikan dari kompresi. Teknik dekompresi ini memiliki perbedaan variasi proses jika dibandingkan dengan teknik kompresi, sebagai contoh, jika aplikasi simetris, contoh apliaksi percakapan, proses deceding dan encoding akan menjadikan data menjadi lebih besar dibandingkan data sebelumnya. Semua ini dipengaruhi oleh faktor kecepatan berbanding dengan kualitas data hasil kompresi. Bagaimanapun juga jika data dilakukan kompresi atau encode satu kali saja,sedangkan decoding membutuhkan waktu yang cukup lama. Sehingga dalam teknik kompresi, faktor kualitas tidak menjadi tolok ukur.

4.3.2 Mengukur Kinerja Kompresi

 

Kinerja kompresi dari beberapa teknik kompresi diukur dengan sebuah parameter. Pemilihan teknik kompresi untuk suatu aplikasi harus berdasarkan klasifikasi, parameter kinerja, dan kebutuhan aplikasi.

Parameter pertama dalam mengukur kinerja kompresi adalah rasio kompresi. Rasio kompresi diukur berdasarkan rasio atau perbandingan antara jumlah data data asli dan jumlah data setelah dikompresi. Makin tinggi rasio kompresi, maka makin baik teknik kompresinya. Hal ini berlaku pada teknik kompresi yang lossless. Untuk teknik kompresi lossy, kita harus memperhatikan parameter yang kedua, yaitu kualitas media yang dibentuk ulang. Sangat tidak baik jika rasio kompresi sangat tinggi, karena tentunya kualitas media yang terbentuk akan sangat rendah sekali. Secara umum dibenarkan bahwa makin tinggi rasio kompresi, makin rendah kualitas data pada teknik kompresi lossy.

Parameter yang lain adalah kompleksitas implementasi dan kecepatan kompresi. Tentu saja, makin mudah implementasi suatu teknik kompresi dan makin cepat proses kompresi, makin baik teknik kompresinya. Kecepatan adalah parameter yang  penting dalam aplikasi yang real-time. Untuk tipe aplikasi yang mebutuhkan tampilan dan informasi teks saja, tentunya kita perlu mempertimbangkan teknik kompresi dan dekompresi serta kecepatan secara terpisah. Karena kompresi, biasanya, dilakukan sekali dan secara off-line, tetapi dekompresi dilakukan beberapa kali dan on-line. Sehingga kecepatan kompresi tidak begitu penting, tetapi kecepatan dekompresi sangat penting. Beberapa teknik kompresi memiliki waktu yang sama untuk proses kompresi dan dekompresi. Teknik ini disebut teknik kompresi simetrik. Ada juga teknik kompresi yang lebih lambat, tetapi lebih cepat ketika proses dekompresi. Teknik ini disebut teknik kompresi asimetrik.

 

 

 

 

4.3.3 Algoritma Kompresi Huffman

 

Algoritma kompresi Huffman atau sering disebut dengan Huffman Coding. Algoritma ini menghasilkan jumlah bit yang lebih sedikit untuk penggunaan simbol yang lebih banyak. Hal ini sangat efisien untuk penggunaan karakter atau simbol yang sangat sering digunakan.

Algoritma Huffman mengkodekan sembarang karakter dalam sebuah file dengan membentuk pohon Huffman (Huffman Tree) yang merupakan representasi dari struktur data double linked-list dan pohon biner (binary tree).

Tabel 4.1 Contoh Codebook

            Contoh kita memilki sebuah file yang berisi 1.000 karakter atau simbol, yang berisikan huruf e, t, x dan z. Probabilitas kemunculan masing-masing simbol adalah seperti terlihat pada tabel 4.1.

Sekarang kita akan mendiskusikan bagaimana Huffman Coding menggunakan metode pendekatan bawah ke atas (a bottom to up approach) sebagai berikut :

  1. menginisialisasi : meletakkan semua node dalam keadaan terurut dari kecil ke besar. Jika terdapat dua karakter atau simbol yang memiliki probabilitas sama, maka simbol-simbol tersebut dapat diletakkan dalam urutan manapun.

Gambar 4.2  Contoh Pohon Huffman

  1. Gabungkan dua simbol (node) yang memiliki probabilitas terkecil.
  2. Node hasil penggabungan dapat diperlakukan seperti node biasa.
  3. Ulangi langkah (2) dan (3)  sampai semua node menjadi sebuah pohon (Root node).
  4. Mulai dari Root node, tandai dengan bit “1” untuk cabang yang ke atas dan bit “0” untuk cabang yang ke bawah.
  5. Kode untuk setiap simbol didapat dengan menyusun urutan bit-bit dari Root node sampai ke cabang.  Sebagai contoh untuk simbol x kita akan dapatkan kode 001.

Pada langkah (5) kita juga dapat memberikan bit “0” untuk cabang ke atas dan bit “1” untuk cabang ke bawah. Sehingga, Huffman Coding tidak mementingkan urutan kode untuk setiap simbol, tetapi panjang dari kode yang diperhitungkan untuk setiap simbol.

Contoh lain penerapan algorima kompresi Huffman.

Sebuah file berisi karakter : PERKARA

Dimana jika kita urai berdasarkan kode ASCII, maka akan terlihat sebagai berikut:

P = 50 H  = 0101 0000 B

 

E = 45 H  = 0100 0101 B

 

R = 52 H = 0101 0010 B

 

K = 4BH = 0100 1011 B

 

A = 41 H = 0100 0001 B

 

Sehingga menjadi :

P                    E                     R                     K                     A                     R                     A

0101 000  0100 0101   0101 0010   0100 1011    0100 0001   0101 0010   0100 0001

==> 56 bit

Secara statistik:

Simbol          Statistik       Node

P                      1                      P(1)

E                      1                      E(1)

R                     2                      R(2)

K                      1                      K(1)

A                      2                      A(2)

Pohon Huffman:

0                      1                                                                      0                      1

 

 

Didapat kode baru untuk masing-masing simbol adalah sebagai berikut :

P = 01

            E = 000

            R = 11

            K = 001

            A = 10

Maka hasil kompresi yang didapat adalah:

P         E          R         K          A          R         A

01    000       11     001      10      11        10  =  16 bit

Rasio kompresi = Bit sesudah kompresi        :           Bit sebelum kompresi

= 16 bit                                 :           56 bit

=  4  :  9

About these ads

From → Multimedia

Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: