Social Icons

Minggu, 04 November 2012

Kompresi Data


BAB II
 LANDASAN TEORI
2.1              Kompresi Data
Sistem komunikasi dirancang untuk mentransmisikan informasi yang dibangkitkan oleh sumber ke beberapa tujuan. Sumber Informasi mempunyai beberapa bentuk yang berbeda. Sebagai contoh, dalam radio broadcasting, sumber biasanya sebuah sumber audio (suara atau musik). Dalam TV broadcasting, sumber informasi biasanya sebuah sumber video yang keluarannya berupa image bergerak. Output dari sumber-sumber ini adalah sinyal analog dan sumbernya disebut sumber analog.
Kontras dengan Komputer dan tempat penyimpanan data (storage), seperti disk magnetic atau optical, menghasilkan output berupa sinyal diskrit (biasanya karakter binary atau ASCII) dan tentu sanya sumbernya disebut sumber diskrit. Baik sumber analog maupun diskrit, sebuah komunikasi digital dirancang untuk mentransmisikan informasi dalam bentuk digital.
Sehingga konsekuensinya keluaran dari sumber harus diubah dahulu menjadi bentuk keluaran sumber digital yang biasanya dilakukan pada source encoder, yang keluarannya dapat diasumsikan sebuah digit biner sekuensial.
Pada akhir 40-an dimana dimulainya tahun Teori Informasi, ide pengembangan metode coding yang efisien baru dimulai dan dikembangkan. Dimulainya penjelajahan Ide dari entropy, information content dan redundansi. Salah satu ide yang popular adalah apabila probabilitas dari simbol dalam suatu

pesan diketahui, maka terdapat cara untuk mengkodekan simbol, sehingga pesan memakan tempat yang lebih kecil.

2.1.1        Teknik Kompresi Data
Teknik kompresi data dapat digolongkan menjadi dua kelompok utama yaitu : Lossy dan Lossless. Teknik kompresi secara lossy dimaksudkan dengan teknik kompresi data dengan menghilangkan ketelitian data utama guna mendapatkan data sekecil mungkin (kompresi data sebesar mungkin). Teknik kompresi data secara lossless yaitu teknik kompresi data dengan mengurangkan jumlah data yang terjadi duplikasi (memiliki simbol yang sama) sebelum terjadi kompresi.
a.      Lossy Compression
Teknik kompresi dengan menghilangkan ketelitian dari data utama (Lossy Compression) membuktikan lebih efekftif diaplikasikan untuk kompresi data gambar dan data suara. Teknik ini efektif karena data yang berupa gambar dan suara relatif besar ukurannya bila disimpan dalam komputer, dan data yang telah dikompresi akan tetap memiliki kemiripan walau sebagian isi dari data yang telah dihilangkan.
b.      Lossless Compression
Merupakan teknik kompresi untuk menghasilkan duplikasi dari inputan data dengan panjang bit yang lebih pendek. Tipe pemampatan ini digunakan untuk penyimpanan record pada database spreadsheet atau file pengolahan data.
2.1.2        Encoding dan Decoding
Encoding merupakan teknik untuk mendapatkan kode-kode tertentu (encoder), dari kode-kode tersebut dapat diaplikasikan untuk pemampatan data dan keamanan data. Dari data-data yang telah dikodekan tersebut, format-format isi dari data tersebut  berbentuk kode-kode yang tidak bisa kita baca. Agar kode-kode tersebut bisa kita baca maka kita kodekan ulang data tersebut, hal ini dikenal dengan decoding (decoder).
Secara umum pemampatan data merupakan merubah suatu simbol-simbol menjadi suatu kode-kode. Pemampatan dikatakan efektif jika ukuran perolehan kode-kode tersebut sangat kecil dibandingkan dengan ukuran kode simbol aslinya. Dari suatu kode-kode atau simbol-simbol dasar suatu model akan dinyatakan dalam kode khusus.

2.2              Codec
Kata codec berarti compressor/decompressor, suatu hal rutin software yang mengompresi video mentah untuk disimpan, dan kemudian mengdekompresnya untuk ditampilkan pada PC.  Sebelum melihat bagaimana video codec bekerja, kita perlu memperjelas suatu miskonsepsi. Anda mungkin mendengar bahwa AVI adalah sebuah format.  Secara teknis, AVI merupakan suatu wadah atau pembungkus, sama seperti QuickTime-nya Apple.  Suatu wadah bisa dianggap penyalur, AVI merupakan cara untuk mentranspor aliran video dan audio di dalam file. Satu file AVI dapat berbeda satu dengan yang lain, meskipun mereka berisi video dan audio yang sama pada resolusi yang sama. Penyebabnya adalah sederhana, video yang disimpan di dalam file AVI dapat dikompres dengan codec berbeda, sesuatu yang tidak dapat Anda ungkapkan hanya dengan memutar file tersebut.  Audio codec dapat lossy atau lossless, tetapi video codec pada umumnya lossy.  Video yang dikompres dengan lossy codec tidak sama dengan rekaman aslinya, karena ada informasi yang diabaikan pada waktu kompresi untuk mengurangi ukuran file. Jumlah data yang terdapat pada file video resolusi tinggi sangat banyak sehingga tidaklah praktis untuk menggunakan kompresi lossless.

2.3              Frame dan Field
Secara luas, video codec dapat dibagi ke dalam dua jenis: frame-based dan field-bassed atau temporal codec. Frame-based codec seperti Cinepak, atau Motion-JPEG bekerja dengan melihat dan mengompres setiap frame video secara terpisah. Dengan 29,97/30 frame per detik dalam NTSC video, frame-based codec mempunyai dua kerugian: mereka dapat menjadi lambat dan ukuran file dapat cukup besar.
Video tentunya, video merupakan urutan gambar diam yang dijalankan pada kecepatan konstan sehingga tercipta suatu ilusi gerakan. Dengan pikiran tersebut, tidaklah sulit untuk melihat bahwa setiap frame atau gambar akan tampak sama dengan sebelum dan sesudahnya, dengan sedikit perbedaan di mana objek telah berpindah. Mengapa mengompres setiap frame secara individu, padahal sebagian besar dari mereka pada dasarnya sama.
Di sinilah field atau temporal codec mengambil peranan. Temporal codec melihat bagaimana aliran video berubah seiring waktu. Pada waktu temporal codec mengompres suatu aliran, ia menyimpan frame pertama.  Frame selanjutnya dibandingkan dengan frame tersebut, dan perubahan apa pun di antara keduanya di pisahkan.  Selanjutnya, codec hanya mengompres perubahan antara frame pertama dan frame berikutnya. Karena frame pertama ini penting dan menyimpan informasi yang dibutuhkan untuk mendekompres frame berikutnya, ia dikenal sebagai keyframe. Pada waktu codec menemukan perbedaan yang besar seperti ketika film berpindah ke adegan yang berbeda, ia mengambil dan mengompres keyframe lain.
Seperti yang dapat diperkirakan, temporal codec paling efisien pada waktu menangani rekaman yang tidak berubah banyak. Temporal codec misalnya adalah adalah WMV (Windows Media Video).

2.4              Playback
Pada waktu memutar file video yang disimpan dalam format misalnya file WMV, Windows secara otomatis mengetahuinya dan segera menangani file tersebut.  Format seperti AVI jauh lebih kompleks, karena video dan audio stream dapat menggunakan banyak codec kompresi.  Pertama, Windows memeriksa sebagian AVI header yang berisi kode FourCC (Four Caracter Code) kode empat digit yang digunakan untuk mengidentifikasi kode yang digunakan dalam stream.
Windows kemudian membandingkan kode tersebut dengan video codec yang ada pada PC dan memilih playback codec yang sesuai.
Setelah video dan audio codec ditentukan, Windows kemudian memberikan stream tersebut ke codec untuk didekompresi. Codec kemudian memberikan dekompresi ke program player yang digunakan, Windows Media Player atau aplikasi pihak ketiga seperti WinAmp. Dengan model modular seperti ini, codec dapat digunakan untuk aplikasi manapun untuk memutar file video tanpa perlu programer menuliskan rutin dekompresi mereka setiap waktu.

2.5  Struktur pengkodean WMV
            Format warna internal untuk WMV adalah 8 bit.  codecnya menggunakan sebuah blok-based kompensasi gerak (motion compesation) dan transformasi spasial dimana, pada level tinggi, adalah sama dengan standar kompresi video sejak MPEG-1 dan H.261 yang dikenal secara luas, standar-standar ini seperti juga WMV melakukan blok per blok (block-by-block) kompensasi gerak dari frame yang direkontruksi sebelumnya dengan menggunakan suatu kuantisasi (quantization) dua dimensi yang disebut vektor gerak (motion vektor) untuk menandakan perpindahan/pergerakan spasial.  Prediksi dari blok yang digunakan saat ini (current block) dilakukan dengan melihat pada sebuah blok yang berukuran sama pada frame yang direkontruksi sebelumnya yang dipindahkan (berpindah) dari posisi asli oleh motion vektor.  Secara bertahap, perbedaan pergerakan/perpindahan frame, atau residual error, dihitung sebagai perbedaan (perubahan) antara blok sebenarnya dan prediksi kompensasi geraknya (motion compensation).  Error residual ini ditransformasikan lalu dikuantisasi dan dikodekan secara entropy.
            Pada decoder, koefisien transformasi yang terkuantisasi didekodekan secara entropy, dekuantisasi dan di invers transformasi untuk menghasilkan suatu rata-rata dari kompensasi gerak (motion compesation) untuk membangkitkan rekontruksi deskripsi/penjelasan level tinggi dari dari codec ditujukan pada gambar 2.1.
            WMV mempunyai intra (I) frame, predicted (P) frame dan bidirectional (B) frame.  Intra frame adalah frame yang dikodekan secara independen (bebas) dan tidak memiliki ketergantungan pada frame lain.  Predicted frame adalah frame-frame yang tergantung pada satu frame sebelumnya.  Decoding sebuah frame predicted dapat muncul hanya setelah semua frame referensi sebelum frame saat ini (current frame) yang dimulai dari frame I yang paling baru.  B frame (bidirectional frame) adalah frame yang dikirimkan bertahap ke referensinya dimana berarti bahwa B frame dikirimkan tanpa diminta untuk memastikan bahwa referensinya tersedia saat tiba waktunya untuk decoding.  B frame dalam WMV tidak digunakan sebagai suatu referensi untuk frame-frame berikutnya (subsequent) ini menempatkan B frame diluar perulangan loop decoding, memperbolehkan untuk mengambil jalan pintas selama decoding B frame tanpa penyimpangan atau penggambaran artifact dalam waktu lama.

2.6  Bagian-bagian dari pengkodean WMV (Windows Media Video)
  1. Discrete Cosine Transform (DCT)
  2. Kuantisasi (Quantization) dan Dekuantisasi (Dequantisasi)
  3. Entropy Coding
  4. Inverse Discrete Cosine Transform (IDCT)
  5. Kompensasi Gerak (Motion Compensation)
  6. Estimasi Gerak (Motion Estimation)
  7. Frame Referensi (Reference Frame)

Discrete Cosine Transform (DCT)
            WMV menggunakan 8x8, 8x4 horisontal, 4x8 vertikal, atau 4x4 block transform, seperti ditunjukkan pada gambar 2.2.  Ini disediakan oleh WMV untuk digunakan pada ukuran transform dan pembentukan yang cocok untuk data dasar. Konfigurasi transform yang spesifik harus menggunakan sinyal sebagai bagian dari bitstream. Pemberian sinyal ini dilakukan dalam suatu cara yang efisien, seperti yang diuraikan di bawah.
Pemberian tipe sinyal transformasi pada WMV adalah pada frame, makroblok atau level blok.  Jika sinyal dikirim di level frame, semua blok di dalam frame menggunakan jenis transformasi yang sama.  Begitu juga jika sinyal dikirim di level makroblok, semua blok di dalam suatu makroblok (terdiri dari enam 8x8 block, empat luminance block dan dua crominance block) dengan menggunakan tipe transformasi yang sama.  sinyal level blok adalah dikhususkan untuk blok yang sekarang.  Makroblok dan sinyal level blok dapat digabungkan ke seberang makroblok dalam satu frame. Ini mempertimbangkan spesifikasi level baik dan buruk pada tipe tansformasi, dimana ini bermanfaat ketika data tidak diperlukan.
Sinyal level frame membantu di dalam situasi low-rate di mana tipe transform coding yang mungkin melebihi, jika tipe transformasi dikirim di makroblok atau level blok.  Ketika makroblok atau sinyal level blok digunakan, ada suatu kemungkinan penyimpanan beberapa dalam bit statis atau dengan perkiraan area yang sempurna.  Intra frame dan intra blok/makroblok dalam predicted frame menggunakan 8x8 transformasi.
            Prinsip dasar yang dilakukan dengan DCT adalah mentransformasikan data dari domain ruang ke domain frekuensi.  Transformasi kedomain frekuensi ini sangat menguntungkan untuk kompresi data, karena pada domain frekuensi inilah diperoleh sifat-sifat yang mendukung serangkaian proses selanjutnya
Gambar 2.2 Ukuran transformasi pada WMV

Kuantisasi (Quantization) dan Dekuantisasi (Dequantization)
Proses kuantisasi dilakukan dengan mengurangi hasil keluaran dari proses DCT dengan nilai-nilai yang terdapat dalam matrik kuantisasi.  Proses kuantisasi merupakan proses untuk mengurangi jumlah bit yang diperlukan untuk menyimpan suatu nilai dengan memperkecilnya.  Kuantisasi dilakukan dengan membagi keluaran proses DCT dengan suatu nilai yang ditetapkan dalam matrik kuantisasi.
            Hasil proses dekuantisasi cenderung mengalami distorsi dibanding nilai aslinya.  Hal ini dikarenakan pada proses kuantisasi inilah terjadi error paling besar, yang disebabkan proses pembulatan.  Jelas, proses lossy semacam ini berpengaruh pada kualitas gambar hasil rekontruksi.
            Kuantisasi (Quantization) adalah dimana keluaran proses DCT masuk ke proses kuantisasi dengan cara megurangi jumlah bit yang diperlukan dengan menggunakan fungsi-fungsi weighting (pembobotan) yang dioptimalkan sehingga mendekati system visual manusia.  Kuantisasi dimaksudkan untuk menyederhanakan bobot angka-angka.
            Dekuantisasi (Dequantization) adalah proses untuk mengembalikan data frame hasil proses DCT kebentuk semula agar dapat digunakan menjadi frame reference bagi kompresi interframe.

Entropy Coding
Entropy coding adalah proses mengkonversikan sebuah rangkaian simbol yang mewakili unsur-unsur rangkaian video ke dalam suatu bitstream yang dikompresi untuk disimpan atau transmisikan.  Masukan simbol meliputi koefisien transformasi kuantisasi, vektor gerak (suatu penggantian vektor X dan Y untuk setiap blok kompensasi gerak dengan bilangan bulat atau resolusi sub-pixel).

Invers Discrete Cosine Transform (IDCT)
            Proses ini sama seperti dequantization, untuk mengembalikan data frame hasil proses DCT ke bentuk semula agar dapat digunakan menjadi frame reference bagi proses kompresi Interframe.

Kompensasi Gerak (Motion Compensation)
            kompensasi gerak menjadi proses pembangkit sebuah prediksi pada sebuah frame video dengan memindahkan frame referensi. secara umum, prediksi dibentuk pada suatu blok (blok 8x8) atau macroblok (blok 16x16) data.  Penggantian biasanya dilakukan secara konstan dan garis lurus di atas keseluruhan blok yang sedang diprediksi.  Seperti pergantian digambarkan oleh vektor gerak (motion vektor) dengan dua komponen sesuai dengan pergeseran sepanjang arah X dan Y.  komponen vektor gerak pada umumnya adalah dengan pergantian-pergantian pixel, biasanya dilakukan pada ketelitian pada sub-pixel.  Pergantian sub-pixel dilakukan dengan menyaring frame referensi dengan penyaringan interpolasi yang tepat atau cocok.
WMV mengkombinasikan mode vektor gerak yang diperoleh dari tiga kriteria yaitu resolusi vektor gerak, ukuran area yang diprediksi dan tipe penyaringan.  Frame yang dibagi menjadi beberapa bagian blok-blok, kompensasi gerak melakukan pencocokan blok pada frame saat ini (current frame) dengan blok-blok pada frame sebelumnya hingga ditemukan blok-blok yang paling mirip yang disebut vektor gerak (motion vektor).

Estimasi Gerak (Motion Estimation)
Untuk B frame, dilakukan proses kompresi Interframe, yaitu proses motion estimation atau estimasi gerak, karena hanya bagian kecil saja dari frame yang berubah bila dibandingkan dengan frame sebelum atau sesudahnya. Proses ini  mengestimasi gerakan blok–blok antar frame, tiap blok dibandingkan dengan blok–blok berukuran sama, pada frame sebelumnya dengan melakukan pencocokan blok (block matching). Proses ini dilakukan sampai semua frame habis.

Frame Referensi (Reference Frame)
            Frame referensi adalah tempat penyimpanan hasil dequantization dan IDCT dari proses sebelumnya (sebelum data dikodekan).  ini menjadi frame reference bagi proses interframe.

Tidak ada komentar:

Posting Komentar