Video Coding Pertemuan 13 Teknologi Multimedia Departemen Teknologi Informasi ITS Outline • Introduction to Video Coding Standard • Video coding format H.26x family • MPEG 1, 2, 4, 7 Introduction To Video Coding Standard • Video coding standard : sebuah standar dokumen yang mendeskripsikan prosedur yang harus dijalankan dalam sebuah encoder (video encoding) • Video coding format (Video compression format) : sebuah content yang merepresentasikan format (aturan) dalam penyimpanan dan transmisi data (seperti dalam bentuk data file atau bit stream) • Contoh video coding format : H.261, H.262, H.263, H.264, H.265 Perkembangan Standar Video Coding H.261 • • • H.261 digunakan sebagai video coding pada video conferencing dan video communication system (Surveillance, monitoring system, tele-medicine, dsb) Support terhadap non-interlaced video Menggunakan format sampling 4:2:0 ο setiap 4 kolom piksel diambil 2 kolom pada baris pertama dan 0 kolom warna pada baris kedua H.261 • • • Mendukung bit-rate px64Kbps, p=1,2,3,….30 (Kelipatan p) atau antara 64 Kbps hingga 1.92 Mbps Mendukung format frame Common Intermediate Format/CIF (352x288 luminance Y dan 176x144 chrominance Cb/Cr) dan Quarter-CIF/QCIF (176x14 luminance Y dan 88x72 chrominance Cb/Cr) Standar H.261 kemudian diadopsi oleh MPEG dan ITU Experts Group untuk dikembangkan menjadi standar H.263 yang menghasilkan very low bit-rate video telephony dan digunakan untuk Public Switched Telephony Networks (PSTN). H.261 • Untuk format QCIF yang digunakan adalah separuh jumlah baris dan separuh jumlah kolom CIF serta menggunakan : -DCT untuk menghilangkan redundancy intraframe -motion compensation untuk menghilangkan redundancy interframe • Input video dikonversi ke format CIF dan disimpan ke dalam memori frame. Selanjutnya frame CIF dibagi menjadi 4 citra QCIF dan setiap citra QCIF dibagi ke dalam 3 GOB (Group of Block) dimana setiap GOB berisi 33 Macroblock • Setiap Macroblock (MB) terdiri dari 4 blok 8x8 piksel komponen Y, 1 blok 8x8 piksel komponen Cb dan 1 blok 8x8 piksel komponen Cr • Setiap MB inilah yang akan dilakukan proses kompresi H.261 H.261 (Penjelasan skema standar H.261) • • Coding control : berfungsi untuk mengontrol proses kompresi intraframe dan interframe secara bergantian, frame rate, buffer dan bagian lainnya agar terjadi sinkronisasi sehingga kompresi dengan bit-rate yang diharapkan dan kualitas citra dapat tercapai. Pada kompresi intraframe tidak memerlukan reference image (previous frame/frame sebelumnya) sehingga langsung diproses dengan DCT dan dilanjutkan dengan kuantisasi (Quantization). Hasil kuantisasi dikodekan melalui VLC (Variable Length Coder). Bersamaan dengan proses kode VLC, kuantisasi invers (iQ) dan DCT invers (iDCT)/decoding serta penyimpanan image juga diproses agar image dapat digunakan kembali untuk proses kompresi interframe. Output dari proses ini berupa bit stream yang langsung dikirim oleh pengirim. Oleh penerima, bit stream ini di rekonstruksi sambil menunggu image berikutnya. H.261 (Penjelasan skema standar H.261) • Input image berikutnya adalah inter-frame image. Proses kompresi Interframe memerlukan reference image (frame/image sebelumnya) sehingga coding control akan mengarahkan skema ke bawah (lihat pada gambar 7.16) • Delayed Frame Memory : Memori penyimpanan untuk menyimpan imageimage sebelumnya yang akan digunakan pada proses estimasi pergerakan objek antara image aktual dengan image sebelumnya. Jumlah image sebelumnya berbeda untuk setiap format kompresi video. Untuk H.261 hanya memerlukan 1 image sebelumnya H.261 (Penjelasan skema standar H.261) • Motion Estimation (Estimasi pergerakan): berfungsi untuk menghilangkan redundansi data temporal dan mendeteksi pergerakan objek antara image actual dengan image sebelumnya. Estimasi pergerakan dilakukan per blok 16x16 piksel dengan menghitung jarak perpindaha blok piksel atau disebut Vektor gerak (Motion Vector/MV) untuk setiap bloknya. Metode penghitungan vector gerak disebut block-matching motion estimation. Parameter jika telah terjadi pergerakan objek adalah dengan melihat nilai minimum MSE (mean square error) dan MAE (mean absolute error). Jika nilai minimum MSE dan MAE berada di atas nilai ambang batas,maka telah terjadi pergerakan objek dan blok image actual diproses dengan model intraframe H.261 (Penjelasan skema standar H.261) N dan M adalah ukuran blok yang digunakan; πΌπ = πππππ πππ‘π’ππ; πΌπ−1 = πππππ π πππππ’πππ¦π βππ ππ ππππππ π‘ππ’ππ π π¦πππ π‘πππ πππππ ππ ππππππ H.261 (Penjelasan skema standar H.261) • Motion Compensation : berfungsi untuk menentukan apakah blok image actual decoding dalam mode intraframe atau menggunakan motion vector (MV) • Loop Filter (optional): proses pemfilteran yang dilakukan untuk meminimalkan efek blok yang terjadi pada decoded image. Filter yang digunakan adalah filter non-rekursif 1-D dengan nilai (1/4,1/2,1/4) yang dioperasikan pada setiap blok 8x8 piksel. H.262 (MPEG-2 Part-2) • H.262 (secara formal dikenal sebagai ITU-T Recommendation H.262 dan ISO/IEC 13818-2) disebut juga sebagai MPEG-2 Video • H.262 merupakan standar gabungan dari ITU-T Video Coding Experts Group (VCEG) dan ISO/IEC Moving Picture Experts Group (MPEG) dan merupakan standar MPEG bagian kedua sehingga dikenal juga dengan sebutan MPEG-2 Part-2 H.262 (MPEG-2 Part-2) • MPEG-2 support terhadap interlaced video (teknik encoding pada sistem televisi analog NTSC, PAL dan SECAM) • Belum support terhadap low-bitrate video (dibawah 1 Mbps), melainkan support terhadap higher-bitrate (diatas 3 Mbps) sehingga memerlukan kapasitas bandwidth yang cukup besar H.262 (MPEG-2 Part-2) • • • • Pada proses coding inter-frame menggunakan sekelompok image yang disebut GOP (Group of Picture). Jika pada H.261 hanya terdapat 2 jenis frame, pada H.262 terdapat 3 jenis frame, yaitu I-frame, P-frame B-frame I-frame : key frame, tidak memerlukan informasi dari frame lain dalam proses encoding P-frame : “predicted frame”. Dalam proses encoding, P-frame menggunakan informasi dari urutan frame I atau P sebelumnya untuk informasi redundant picture B-frame : “bi-directional predicted frame”. Dalam proses encoding, B-frame menggunakan informasi dari urutan frame sebelum dan sesudahnya untuk informasi redundant picture. B-frame dapat memperbaiki kualitas prediksi dan meningkatkan rasio kompresi dengan mempertahankan kualitas image. H.262 Image P dan image B masing-masing dapat dihitung Menggunakan rumus di bawah ini H.262 • Untuk merekonstruksi kembali image aslinya, dapat menggunakan persamaan invers di bawah ini H.262 (MPEG-2 Part-2) • H.262 digunakan pada : -DVD video (bit rate 9.8 Mbps) -HDV tape-based high definition video recording format (19.4 atau 25 Mbps) -Digital cable TV -Satellite TV -Broadcast TV -mulai pengembangan untukTCP/IP Internet H.263 • • • • Karena internet mulai berkembang ketika itu, maka dibutuhkan format video coding untuk low bit-rate video sehingga dikembangkanlah format H.263, format video coding yang bekerja pada low-bit-rate video. H.263 diaplikasikan untuk video conferencing, kompresi video (flash video) pada internet seperti yang digunakan oleh Youtube, Google Video, MySpace H.263 distandarisasi oleh ITU-T Video Coding Experts Group (VCEG) dalam sebuah project di tahun 1995/1996 Format kompresi video dengan H.263 mengacu pada format kompresi H.261. Namun, terdapat perbedaan dibandingkan H.261, yaitu vektor gerak (motion vector) lebih fleksibel, prediksi error lebih baik dan penggunaan frame I,B,P (dengan urutan I B P B I ….) Jumlah frame yang digunakan sekitar 30 frame per detik H.263 • H.263 support terhadap 5 jenis resolusi • H.263 versi pertama dikembangkan tahun 1995, menggantikan H.261. • H.263 versi kedua (H.263v2/H.263+) dikembangkan tahun 1998 • H.263 versi ketiga (H.263v3/H.263++) dikembangkan tahun 2000 H.263 • Syntax-based arithmetic Coding : jika pada format H.261 menggunakan VLC (Variable-Length Coding) sebagai default coding method untuk DCT coefficient dimana setiap symbol harus di-coding ke bentuk fixed integral number, maka pada arithmetic coding tidak ada proses coding setiap symbol ke bentuk fixed integral number. • Hal ini memberikan penghematan bitrate sebesar 4% pada output interframe coding dan 10% pada output intra-frame coding dibandingkan dengan H.261 H.263 • Advanced prediction mode : Advanced Prediction (menggunakan 4 block 8x8 piksel, memberikan detil hasil yang lebih baik dibandingkan 1 block 16x16 piksel). Setiap macroblock memiliki 4 motion vector • Menggunakan PB-frame : PB-frame terdiri dari 2 frame yang direpresentasi dalam 1 unit frame dimana P-frame diprediksi dari previous I- atau P-frame dan B-frame diprediksi dari previous decoded I- atau P-frame dan decoded P-frame pada PB-frame H.264/AVC (Advanced Video Coding) • Dikenal sebagai "H.26L" oleh ITU, H.264 dikenal juga sebagai "MPEG-4 Part 10" oleh ISO MPEG group • H.264/AVC mulai dikembangkan pada tahun 2003. • support untuk High-Definition Video dan “network-friendly” video dalam bentuk "conversational" (video telephony) dan "nonconversational“ (storage, broadcast, atau streaming) • H.264/AVC setara dengan kualitas MPEG-4 dengan ukuran frame 4x lebih besar • H.264/AVC menggunakan integer DCT transform coding untuk mengefisiensikan kompleksitas perhitungan kompresi • H.264/AVC saat ini paling umum digunakan dalam kompresi video dan support hingga 8k UHD H.264 • • • • • Format H.264 berbasis format H.263. H.264 berfokus pada penggunaan lower bit-rate, tetapi dengan kualitas video yang lebih baik H.264 memiliki tingkat kompresi 50% lebih baik dari MPEG-2 dan 30% lebih baik dari H.263+ H.264 dapat diimplementasikan dalam baseline profile (videoconferencing dan mobile video), main profile (broadcast TV seperti HDTV ) dan extended profile (video streaming) H.264 dapat melakukan encoding pada low-bitrate dan high-bitrate lebih baik daripada H.263 H.263 vs H.264 H.264 • Menggunakan ruang warnaYCbCr dengan subsampling 4:2:0. • 4:2:0 ο setiap 4 kolom piksel diambil 2 kolom pada baris pertama dan 0 kolom warna pada baris kedua H.264 • Menggunakan macroblock ukuran 4x4 piksel untuk luminance (Y) • Menggunakan in-loop deblocking filter, berfungsi untuk memperbaiki kualitas visual dengan memperbaiki annoying visual effect (blocking artifacts) karena proses decoding • Jika pada format H.26x sebelum H.264 deblocking filter adalah fitur optional, maka pada H.2644 deblocking filter merupakan fitur yang menjadi bagian dari format H.264 H.264 • H.264 dapat mengefisiensikan sebanyak >50% bit-rate dibandingkan MPEG-2 part-2 H.265/HEVC (High-efficiency Video Coding) • • • • • Didesain untuk perbaikan dari format coding video H.264/AVC H.265/HEVC dapat memberikan efisiensi kompresi video sebanyak 25%-50% lebih baik bila dibandingkan H.264/AVC Support terhadap video dengan resolusi hingga 8192×4320, termasuk 8K UHD Jika pada H.264 menggunakan 4x4 atau 8x8 Menggunakan transformasi coding integer DCT dan DST (Discrete Sine Transform) dengan variasi Macroblock ukuran 8x8 hingga 32x32 piksel Support terhadap 10 profile dimana format H.264 sebelumnya support hanya 3 profile MPEG • MPEG (Moving Picture Extends Group) : format video coding dari ISO (International Standarization Organization) MPEG-1 • MPEG-1 mengadopsi CCIR601 digital TV format yang disebut juga SIF (Source Input Format) • Support hanya non-interlaced video. • Encoding berbasis H.261 • Support resolusi video : -352x240 untuk NTSC dengan frame rate 30fps -352x288 untuk PAL dengan frame rate 25 fps -menggunakan chroma sub sampling 4:2:0 • Pada MPEG-1, kuantisasi pada intra-frame dan inter-frame menggunakan table kuantisasi yang berbeda MPEG-1 MPEG-1 • MPEG-1 memiliki 3 jenis frames, yaitu I-frames, P-frames dan B-frames dengan B-frame memiliki tingkat kompresi yang paling tinggi diantara jenis frames lainnya (I-frames dan P-frames) MPEG-1 MPEG-2 • MPEG-2 format video coding untuk video dengan kualitas yang lebih tinggi dengan bit-rate >4Mbps • Support interlaced video, dimana interlaced video merupakan salah satu pilihan yang digunakan pada digital broadcast TV dan HDTV • Menggunakan Macroblock ukuran 16x16 piksel MPEG-2 MPEG-2 • MPEG-2 memiliki 2 proses prediksi, yaitu frame prediction dan field prediction • Frame prediction berbasis MPEG-1 menggunakan MC-based prediction (Motion compensation) pada P- dan B-framesnya • Field prediction : untuk setiap Macroblock 16x16 akan dibagi ke dalam 2 field, yaitu top (odd field) dan bottom (even field) dengan masing-masing ukuran 16x8 piksel. Field prediction akan dilakukan untuk setiap field dengan 1 motion vector, sehingga setiap Maroblock akan memiliki 2 motion vector untuk P-field picture hingga 4 motion vector untuk B-field picture MPEG-2 • Pada MPEG-2, progressive video menggunakan Zig-zag coding untuk DCT coefficient, sedangkan interlaced video menggunakan alternate scan untuk DCT coefficient MPEG-2 • MPEG-2 support chroma subsampling 4:2:2 dan 4:4:4 • Better resilience to bit error • Support lebih banyak resolusi image dari DVD, ATV dan HDTV MPEG-4 • • • • • • MPEG-4 support terhadap bit-rate 5 Kbps-10 Mbps Tidak menggunakan frame-base coding seperti MPEG-1 dan MPEG-2, melainkan menggunakan VOP-based coding MPEG-4 diimplementasikan untuk TV digital, streaming video, mobile multimedia dan games Support simple profile, core profile dan main profile. Simple dan core profile ο format QCIF dan CIF dengan bit rates 64 kbit/sec, 128 kbit/sec, 384 kbit/sec, and 2Mbit/sec. Main profile ο format CIF, ITU-R 601, and HD, dengan bit rates 2 Mbit/sec, 15 Mbit/sec and 38.4 Mbit/sec. MPEG-7 • • • • MPEG-7 menjadi standar internasional tahun 2001 dan dikenal dengan Multimedia Content Description Interface MPEG-7 berfokus pada audio-visual content-based retrieval pada aplikasi seperti digital library MPEG-7 support untuk banyak jenis data multimedia (still picture, graphics, 3D models, audio, speech, video dan kombinasi data multimedia tersebut) Data element MPEG-7 dapat direpresentasikan dalam format text, biner ataupun keduanya