2.3 Sistem Kompresi Video dan Audio Digital
2.3.1 Teknik-teknik Kompresi
Pengodean run length
Run length encoding merupakan suatu teknik kompresi yang menggantikan kejadian yang berurutan dari suatu simbol dengan simbol yang diikuti dengan sejumlah waktu yang diulang. Sebagai contoh deretan angka 111110000003355 dapat direpresentasikan dengan 15063252. Teknik kompresi ini berguna apabila ada suatu simbol yang panjang. Teknik kompresi ini berguna untuk gambar-gambar yang memiliki area yang semua pikselnya memiliki nilai sama.
Pengodean relatif
Pengodean relatif merupakan suatu teknik transmisi yang berusaha untuk memperbaiki efisiensi dengan mengirimkan perbedaan antara setiap nilai dan nilai pendahulunya (predecessor) di tempat nilai itu sendiri. Oleh karena itu nilai 15106433003 akan dikirimkan sebagai 1+441+621+03+0+3. Pemancar akan memprediksi setiap nilai sama dengan nilai pendahulunya, dan data yang dikirimkan merupakan perbedaan antara nilai yang diprediksi dengan nilai sebenarnya. Differential Pulse Code Modulation (DPCM) merupakan salah satu contoh dari pengodean relatif. Sinyal modulasi ini hanya dapat memiliki satu dari 7 kemungkinan nilai (-3 to +3) sehingga memerlukan 3 bit per sampel. Setiap sampel hanya dapat digambarkan dengan perbedaan dari sampel sebelumnya. Setiap sampel yang memiliki setidaknya satu pola kesamaan, kemudian dibandingkan dengan sampel sebelumnya. Hanya dua bit yang dibutuhkan untuk mengekspresikan hubungan antara sampel-sampel tersebut. Pengodean sinyal dengan cara ini akan memberikan pengurangan sepertiga jumlah bit.
Pengodean Huffman
Pengodean Huffman merupakan salah satu teknik kompresi yang terkenal. Teknik ini menetapkan kode-kode dengan panjang variabel (Variable Length Codes -VLC) ke simbol-simbol, sehingga simbol yang paling sering muncul memiliki kode-kode yang paling pendek. Pada dekompresi simbol-simbol tersebut dikembalikan ke panjang kode tetap aslinya. Ketika digunakan untuk mengkompres teks, misalnya, kode-kode panjang variabel digunakan menggantikan kode-kode ASCII dan karakter-karakter yang paling umum, seperti spasi, sedangkan e, dan t ditetapkan sebagai kode-kode yang terpendek. Dengan cara ini maka keseluruhan jumlah bit yang diperlukan untuk mengirim data dapat berkurang dibandingkan dengan jumlah bit yang dibutuhkan jika representasi panjang kode sebenarnya digunakan. Pengodean Huffman terutama efektif untuk data yang didominasi oleh simbol-simbol dalam jumlah kecil.
Pengodean aritmatik
Pengodean Huffman sangat efektif, tetapi hanya optimal jika probabilitas dari tiap simbol merupakan negative power of two. Pengodean aritmatik tidak memiliki keterbatasan dan pada umumnya lebih efisien dibandingkan teknik Huffman yang lebih terkenal. Kekurangannya, teknik ini lebih kompleks bila dibandingkan dengan pengodean Huffman.
Pengodean Lempel-Ziv
Kompresor Lempel-Ziv menggunakan suatu kumpulan deretan simbol. Pada saat kejadian deretan yang diulang dan diganti dengan suatu referensi ke posisinya pada kumpulan deretan simbol tersebut. Ada beberapa variasi dari teknik pengodean ini dan perbedaan mereka terutama dalam bentuk pengelolaan suatu kamus atau data dari kumpulan simbol. Yang paling terkenal dari teknik ini adalah variasi Lempel-Ziv-Welch.
2.3.2. Teknik-teknik Kompresi Intraframe
gambar-gambar yang sifatnya tetap, seperti foto dan diagram, dan mengeksploitasi redundansi pada gambar yang dikenal dengan redundansi spasial. Teknik kompresi Intraframe dapat diaplikasikan pada frame individu dari suatu deretan video. Ada beberapa teknik jenis kompresi ini yaitu:
Subsampling
Subsampling merupakan teknik kompresi gambar yang paling mendasar. Teknik ini mengurangi jumlah data dengan membuang sebagian dari data. Sub-sampling mengurangi jumlah bit yang dibutuhkan untuk menggambarkan suatu gambar, yang mengakibatkan kualitas gambar yang dihasilkan lebih rendah dari gambar aslinya. Pada umumnya sub-sampling gambar dilakukan dengan salah satu dari dua cara. Cara pertama, gambar asli digandakan tetapi hanya sebagian dari piksel aslinya yang digunakan. Cara lainnya, sub-sampling dapat diimplementasikan dengan menghitung nilai rata-rata piksel untuk setiap grup dari beberapa piksel, kemudian menggantikan dari rata-rata ini ke lokasi yang sesuai pada gambar yang diperkirakan. Teknik terakhir ini lebih kompleks dibandingkan dengan teknik yang pertama, tetapi kualitas hasilnya lebih bagus.
Sub-sampling umumnya lossy, dan tergantung pada kemampuan persepsi manusia untuk mengisi gap yang ada. Penerima sendiri dapat juga berusaha untuk mengisi gap yang ada dan mencoba untuk memperbaiki piksel-piksel yang telah dibuang selama proses sub-sampling. Dengan membandingkan piksel-piksel terdekat dengan gambar yang telah dilakukan sub-sampling, nilai dari piksel-piksel yang hilang di antara gap dapat diperkirakan. Proses ini disebut dengan interpolasi. Interpolasi dapat digunakan untuk membuat suatu gambar yang telah dilakukan proses subsampling menjadi gambar yang memiliki resolusi yang lebih tinggi dibandingkan dengan aslinya.
Kuantisasi kasar
Kuantisasi kasar (Coarse quantization) sama dengan subsampling dimana informasi dibuang, tapi kompresi dikaitkan dengan pengurangan jumlah bit yang digunakan untuk menggambarkan
suatu piksel. Setiap piksel ditetapkan suatu nilai alternatif yang jumlah nilai alternatifnya lebih kecil daripada gambar aslinya. Sebagai contoh, pada gambar monokrom jumlah bayangan abu-abunya dikurangi. Kuantisasi yang rentang jumlahnya kecil disebut kuantisasi kasar.
Kuantisasi vektor
Kuantisasi vektor merupakan salah satu bentuk kuantisasi yang lebih kompleks dimana pertama-tama aliran data input dibagi ke dalam blok-blok. Suatu tabel didefinisikan yang berisi sejumlah pola untuk blok dan setiap blok dikodekan menggunakan pola dari tabel yang paling mirip. Jika jumlah level kuantisasi sangat kecil maka kompresinya akan menjadi lossy. Karena gambar terkadang berisi beberapa sektor kuantisasi vektor yang diulang, maka teknik ini akan sangat berhasil untuk kompresi gambar. Pada contoh ini kuantisasi vektor suatu deretan simbol dibagi ke dalam blok-blok empat simbol dan selanjutnya blok-blok ini dibandingkan dengan apa yang ada pada tabel. Setiap blok ditetapkan simbol pada entri tabel yang paling bisa dilakukan penyusunan ulang. Simbol-simbol ini membentuk deretan yang dikompres. Pada proses dekompresi dibangkitkan suatu pendekatan deretan aslinya.
Pengodean transformasi
Pengodean transformasi merupakan suatu proses konversi gambar yang mentransformasikan suatu gambar dari domain spasial ke domain frekuensi. Transformasi yang paling umum digunakan pada pengodean gambar adalah DCT (Discrete Cosine Transform). Transformasi dari gambar-gambar yang besar dapat dihindari menjadi kompleks dengan menyusun suatu gambar yang besar ke blok-blok yang lebih kecil dan setiap blok dikodekan secara terpisah. Blok-blok terkode DCT yang paling berguna adalah koefisien-koefisien yang dapat dikuantisasi secara coarse tanpa memengaruhi kualitas gambar yang dihasilkan dari inverse-DCT dari koefisien-koefisien yang dikuantisasi.