Senin, 11 Januari 2010

Konsep Pengkodean Video

Secara sederhana, video dapat diilustrasikan sebagai setumpuk gambar dengan ukuran frame yang sama dimana gambar-gambar tersebut ditampilkan secara berurutan dengan frekuensi pemunculan tertentu. Sehingga video memiliki tiga dimensi yaitu dua dimensi spatial (horizontal dan vertikal) dan satu dimensi waktu. Di dalam video sendiri terdapat dua hal yang dapat dikompresi yaitu frame (still image). Terdapat dua hal penting yang dapat dimanfaatkan untuk melakukan kompresi video yaitu redundancy spatial (warna dalam still image) dan redundancy temporal (perubahan antar frame). Penghilangan redundancy spatial (spatial / intraframe compression) dilakukan dengan mengambil keuntungan dari fakta bahwa mata manusia tidak terlalu dapat membedakan warna dibandingkan dengan brightness, sehingga image dalam video bisa dikompresi (teknik ini sama dengan teknik kompresi lossy color reduction pada image). Penghilangan redundancy temporal (temporal / interframe compression) dilakukan dengan mengirimkan dan mengenkode frame yang berubah saja sedangkan data yang sama masih disimpan.


Standar Pengkodean H.264/AVC




H.264 (MPEG-4 Part 10) atau lebih dikenal dengan Advance Video Coding (AVC) merupakan sebuah codec video digital yang memiliki keunggulan dalam rasio kompresi (tingkat kompresi yang tinggi) dengan memanfaatkan metoda blok transformasi adaptif yang efektif. H.264 dikembangkan oleh ITU-T Video Coding Expert Group (VCEG) bersama-sama dengan ISO/IEC Moving Picture Expert Group (MPEG) yang dinamakan Joint Video Team (JVC) pada tahun 2003. Tujuan pengembangan H.264/AVC adalah untuk membuat suatu standar video digital yang dapat menghasilkan kualitas video yang baik pada bitrate yang lebih kecil dibandingkan dengan standar video digital sebelumnya (MPEG-2, H.263, maupun MPEG-4 Part 2) tanpa harus melakukan perubahan yang kompleks dan dapat diimplementasikan dengan biaya yang murah. Tujuan lain dari pengembangan H.264 adalah dapat digunakan dalam berbagai macam aplikasi seperti video broadcast, DVB strorage, RTP/IP packet networks, dan ITU-T multimedia telephony systems. Standar pengkodean H.264/AVC disusun atas dua lapis konsep (gambar 2.3) yaitu video coding layer (VCL), yang bertujuan untuk efisiensi konten video, dan network abstraction layer (NAL), yang memformat keluaran video dari VCL dan memberi informasi header dengan tepat untuk diteruskan ke transport layer atau media penyimpanan. Pictures). Picture (frame) yang merupakan bagian dari GOP adalah primary coding unit dari video sequence. Merepresentasikan nilai luminance (Y) dan 2 chrominance (Cb dan Cr). Dalam pengkodean H.264/AVC menggunakan format 4:2:0, yaitu komponen chrominance memiliki porsi setengah dari komponen luminance. Sedangkan macroblock dikenal sebagai basic coding unit pada algoritma MPEG.16x16 pixel segment dalam sebuah frame. Macroblock mencakup area segi empat dengan ukuran 16x16 pixel untuk komponen luminance(Y) dan 8x8 pixel setiap 2 komponen chrominance (Cb dan Cr). Block adalah coding unit terkecil pada algoritma MPEG. 8x8 pixel atau 4x4 pixel dapat berupa salah satu dari luminance(Y), red chrominance(Cr),atau blue chrominance(Cb). Sejumlah makroblok, disebut sebagai slice, diproses untuk dikodekan. Slice dibedakan menjadi lima tipe I-,P-,B-,SI-dan SP-slice. Urutannya dari kiri-kanan, atas bawah.

Penting untuk error handling. Bila terjadi error maka di-skip ke slice berikutnya.










H.264/AVC CODEC


Seperti pada standar pengkodean sebelumnya (seperti H.263 dan MPEG-1,2), H.264/AVC merupakan standar pengkodean yang berbasiskan pada hybrid video coding. Gambar di bawah ini menunjukkan blok diagram encoder dan decoder H.264/AVC.







Citra masukan dibagi menjadi makroblok (macroblocks). Setiap makroblok terdiri dari tiga komponen Y, Cr dan Cb. Komponen Y disebut sebagai luminance yang merepresentasikan tingkat kecerahan (brightness). Sedangkan Cb dan Cr disebut sebagai chrominance yang merupakan representasi intensitas warna dari keabuan hingga merah dan biru. Suatu makroblok terdiri dari satu blok 16x16 piksel komponen luminance dan dua blok 8x8 piksel komponen chrominance. Sejumlah makroblok, disebut sebagai slice, diproses untuk dikodekan. Slice dibedakan menjadi lima tipe I-,P-,B-,SI-dan SP-slice. Pada I-slice, semua makroblok dikodekan dengan mode intra. P-slice, semua makroblok diprediksikan menggunakan motion compensated prediction dengan satu frame referensi, untuk B-slice menggunakan dua frame referensi. SI-dan SP-slice merupakan slice khusus yang tidak ada pada standar pengkodean sebelumnya. SP-slice dikodekan sedemikian hingga efisien untuk pertukaran antara aliran video yang berbeda. Sedangkan SI-slice dikodekan untuk perbaikan kesalahan ketika menggunakan intra prediction. Pada proses decoding H.264/AVC , entropy decoder mendekodekan koefisien kuantisasi dan data gerakan yang digunakan untuk motion compensated prediction. Seperti pada proses encoding, sinyal prediksi dihasilkan dari intraframe atau motion compensated prediction, yang ditambahkan dengan invers koefisien transformasi. Setelah deblocking filter, makroblok telah selesai didekodekan dan disimpan di memori untuk prediksi berikutnya.


Deblocking filter

Deblocking filter merupakan elemen baru dalam standar kompresi video MPEG. Dalamvstandar MPEG sebelum MPEG4/H.264 (MPEG1, MPEG2, MPEG4/H.261, MPEG4/H.263), elemen ini tidak dijumpai. Fungsi utama dari deblocking filter adalah untuk mengurangi distorsi blocking pada setiap decoded macroblock. Pada encoder, deblocking filter diaplikasikan setelah inverse transform dan sebelum proses rekonstruksi dan penyimpanan macroblock untuk prediksi berikutnya. Sementara, pada decoder, aplikasi deblocking filter dilakukan setelah inverse transform dan sebelum proses rekonstruksi dan penampilan macroblock Deblocking filter digunakan untuk memperbaiki kualitas gambar yang pada intinya adalah menghaluskan (mengurangi) efek blocking yang biasa terjadi pada video digital. Deblocking filter diaplikasikan dalam setiap 4x4 block maupun 16x16 macroblock sehingga menghasilkan kualitas video yang lebih baik. Filter ini memiliki dua keuntungan yaitu :


a. Sisi-sisi dari block dan macroblock lebih halus sehingga meningkatkan kualitas dari

gambar yang didecode.


b. Macroblock yang difilter digunakan untuk prediksi motion-compensated dari frame berikutnya (pada encoder), yang menghasilkan “residu” yang lebih sedikit pada saat proses prediksi


Profiles and Levels


Profile didefinisikan sebagai suatu set perangkat atau algoritma pengkodean yang digunakan untuk menghasilkan bitstream yang sesuai, sedangkan level bertujuan untuk membatasi nilai dari parameter-parameter algoritma yang digunakan. H.264/AVC mendefinisikan tiga macam profile: baseline profile (untuk video conference dan aplikasi wireless), main profile (digunakan untuk layanan broadcast) dan extended profile (digunakan dalam aplikasi streaming).










Setiap level memiliki batas atas nilai dari ukuran gambar (dalam makroblock), rata-rata waktu proses decode (dalam makroblock perdetik), ukuran multipicture buffer, bitrate video, dan ukuran buffer video.

Tidak ada komentar:

Posting Komentar