H.264/Advance Video Coding (AVC)
Selamat datang di agustomo.blogspot.com, pada postingan sebelumnya membahas tentang Advanced Audio Distribution Profile (A2DP) dan kali ini saya akan membahas tentang H.264/Advance Video Coding (AVC). Tujuan pengembangan H.264/AVC adalah untuk membuat suatu standar video digital yang dapat menghasilkan kualitas video yang baik pada bitrate yang lebih kecil di bandingkan dengan standar video digital sebelumnya (MPEG-2, H.263, maupun MPEG-4 part-2) tanpa harus melakukan perubahan yang kompleks dan dapat di implementasikan dengan biaya yang murah.
Tujuan lain dari pengembangan H.264 adalah dapat di gunakan dalam berbagai macam aplikasi seperti video broadcast, DVB strorage, RTP/IP packet networks, dan ITU-T multimedia telephony systems. H.264 (MPEG-4 part 10) atau lebih di kenal 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 di kembangkan oleh ITU-T video coding expert group (VCEG) bersama-sama dengan ISO/IEC moving picture expert group (MPEG) yang dinamakan joint video team (JVC).
2. GOP (Group Of Pictures), sebuah header dan rangkaian satu gambar atau lebih.
3. Picture, primary coding unit dari video sequence, merepresentasikan nilai luminance (Y) n2 chrominance (Cb dan Cr)
4. Slice, satu atau lebih macroblock, untuk urutannya dari kiri ke kanan dan atas ke bawah dan ini penting untuk error handling, bila terjadi error maka akan di skip ke slince berikutnya.
5. Macroblock, basic coding unit pada algoritma MPEG 16x16 pixel segment dalam sebuah frame, macroblock terdiri dari 4 luminance, 1 Cr dan 1 Cb.
6. Block, coding unit terkecil pada algoritma MPEG 8x8 pixel, dapat berupa salah satu dari luminance rec chrominance, atau blue chrominance.
1. Baseline profile (untuk video conference dan aplikasi wireless). Hanya mendukung I-Picture dan P-Picture (tidak mendukung B-Picture). Mendukung in-loop deblocking filter. 1/4 sample motion-compensation. Mendukung ukuran block sampai dengan 4x4. Mendukung adaptive frame/field. CAVLC (VLC-based entropy coding).
2. Main profile (digunakan untuk layanan broadcast). Mendukung semua fitur baseline-profile kecuali penambahan fitur error resilience. Mendukung B- picture. CABAC (context-adaptive binary arithmetic coding). Mendukung interlaced picture. Menggunakan MB-level pada saat pergantian frame atau field. Prediksi P-picture dan B-picture secara adaptive.
3. Extended Profile (digunakan dalam aplikasi streaming). Mendukung semua fitur baseline-profile. Mendukung B-picture. Mendukung error resilience. Mendukung pergantian frame/field dengan SP/SI.
Setiap level memiliki batas atas nilai dari ukuran gambar (dalam macroblock), rata-rata waktu proses decode (dalam macroblock perdetik), ukuran multipicture buffer, bitrate video, dan ukuran buffer video.
1. Sub Samping. Hal ini merupakan dasar dari kebanyakan kompresi images atau video, metode ini mengupayakan untuk mengurangi jumlah bit untuk merepresentasikan suatu image. Subsampling dapat dilakukan dengan dua cara. Pertama, dengan mengambil piksel-piksel pada baris dan kolom ganjil saja. Kedua, dengan mengambil rata-rata dari sekolompok piksel dan menggunakan nilai tersebut sebagai ganti kelompok piksel. Cara ini lebih kompleks, tetapi menghasilkan kualitas yang lebih baik.
2. Pengurangan Kedalaman Bit. Metode ini dilakukan dengan mengurangi jumlah bit yang digunakan untuk merepresentasikan suatu piksel misalnya dari 16 bit atau piksel diturunkan menjadi 8 bit atau piksel. Dengan konsekuensi akan menurunkan kualitas video dibandingkan video sebelumnya.
3. Transform Coding. Metode yang lain digunakan dalam kompresi intraframe adalah mentransformasikan data dari domain ruang ke dalam domain frekuensi. Cara ini menghasilkan data yang lebih mudah diproses untuk kompresi lebih lanjut.Transformasi yang popular digunakan misalnya discrete cosine transform (DCT ) dan Wavelet. Proses transformasi dan kuantisasi yang bersifat lossy, serta pengkodean yang bersifat lossless. Disini digunakan Discrete Cosinus Trasnform (DCT). Kemudian dilanjutkan dengan kuantisasi yang mana digunakan untuk memotong hasil transformasi.
Proses selanjutnya dalam pengkodean dengan menggunakan run legth encoding (RLE) dan variabel length coding (VLC). Prinsip dasarnya yaitu untuk melakukan proses transformasi dari domain ruang ke domain frekuansi. Dengan menggunakan transformasi ini maka data vital akan terkumpul pada frekuensi DC. Dengan adanya transformasi ini sangatlah menguntungkan untuk kompresi data, karena pada dominan frekuensi inilah di peroleh sifat-sifat yang mendukung serangkaian proses selanjutnya. Masukan proses DCT berupa matriks data dua dimensi N x N dan pada proses dekomposisi untuk mentransformasikan kembali data dari domain frekuaensi ke domain ruang menggunakan Inverse Discrite Cosine Trasnsform (IDCT).
4. Kuantisasi. Prinsip dasar dari kuantisasi yaitu bertujuan untuk mengurangi jumlah bit yang diperlukan untuk menyimpan suatu nilai dengan cara membaginya dengan nilai yang ditentukan dalam matrik kuantisasi. H.264 menggunakan skalar kuantisasi. Ada 52 kuantisasi step standar yang digunakan di H264 yang ditandai dengan kuantisasi parameter(QP). Setiap kuantisasi step berhubungan dengan kuantisasi parameter (QP).
5. RLE. RLE (Run length encoding) adalah proses serangkaian simbol yang berurutan dikodekan menjadi suatu kode yang yang terdiri dari symbol tersebut dan jumlah perulangannya. Hasil dari proses transformasi yang dikuantisasi cenderung nol untuk frekuensi tinggi. Untuk melakukan RLE secara efektif, keluaran proses kuantisasi tadi dibaca secara linier dari frekuensi rendah sampai tinggi. Cara yang digunakan adalah cara zig-zag dimulai dari koefisien DC (0.0) kemudian koefisien DC (0.1) dan seterusnya.
6. Entropy coding. Proses mengkodekan tiap piksel tertentu yang mempunyai panjang yang berbeda. Teknik algoritmik yang digunakan berbeda antara proses pengkodean satu dengan yang lainya. H.264 menggunakan CABAC (Context-based Adaptive Binary Arithmetic Coding) atau CAVLC (Context Based Adaptive Variable Length Coding).
2. Context modeling. Context modeling digunakan untuk membersihkan interface antara modeling dan model. Setiap distribusi model akan diberi symbol yang kemudian didalam langkah coding selanjutnya, memandu coding engine to generate suatu urutan bit sebagai code pada symbol menurut distribusi model.
3. Binary aritmethic. Binary aritmethic coding adalah berdasarkan pada prinsip pengulangan interval (lower, upper) yang melibatkan operasi perkalian dasar dan juga berdasar pada arithmethic coding. Dengan aturan sebagai berikut: Lower = lower+width *low/maxfreq. Width = width *symb_width/maxfreq. Upper = lower + width = lower + width *(low + symb_width)/maxfreq = lower + width *up/maxfre. dengan width = upper – lower (interval lama). width = upper - lower (interval baru). symb_width = up – low (model frequency).
1. Subsamping. Yaitu dengan cara mengurangi laju fame data video. Pengukuran itu dilakukan dengan hanya menggunakan frame tertentu saja.
2. Difference coding. Metode fram ini di bagi menjadi beberapa block yang tidak tumpang tindih, tiap block tersebut di bandingkan dengan block yang bersesuaian pada frame yang sebelumnya, hanya block yang mengalami perubahan signifikan saja yang disimpan.
3. Motion Compensation. Metode ini juga menggunakan pembagian block yang sama, namun block tersebut di bandingkan dengan frame yang sebelumnya, hingga ditemukan block yang paling mirip. Perbedaan lokasi antara block tersebut dengan block yang mirip pada frame yang sebelumnya disebut vektor gerak (motion vector). Metode ini efektif karena hanya vector gerak saja yang disimpan atau ditrasmisikan.
Demikian informasi tentang H.264/AVC, semoga berguna dan dapat menambah pengetahuan bagi yang membacanya. Saya informasikan kepada pembaca, jika anda membeli perangkat telekomunikasi, sebaiknya yang sudah di sertifikasi atau sudah mendapat sertifikat resmi dari postel, untuk menjaga agar anda tidak berurusan dengan pihak yang berwajib. Dan perangkat yang sudah di sertifikasi tentunya sudah teruji di balai besar pengujian perangkat telekomunikasi, sehingga mutu dan kualitasnya terjamin.
Tujuan lain dari pengembangan H.264 adalah dapat di gunakan dalam berbagai macam aplikasi seperti video broadcast, DVB strorage, RTP/IP packet networks, dan ITU-T multimedia telephony systems. H.264 (MPEG-4 part 10) atau lebih di kenal 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 di kembangkan oleh ITU-T video coding expert group (VCEG) bersama-sama dengan ISO/IEC moving picture expert group (MPEG) yang dinamakan joint video team (JVC).
- Struktur Video
- Berikut pengertian dari istilah kata-kata di atas:
2. GOP (Group Of Pictures), sebuah header dan rangkaian satu gambar atau lebih.
3. Picture, primary coding unit dari video sequence, merepresentasikan nilai luminance (Y) n2 chrominance (Cb dan Cr)
4. Slice, satu atau lebih macroblock, untuk urutannya dari kiri ke kanan dan atas ke bawah dan ini penting untuk error handling, bila terjadi error maka akan di skip ke slince berikutnya.
5. Macroblock, basic coding unit pada algoritma MPEG 16x16 pixel segment dalam sebuah frame, macroblock terdiri dari 4 luminance, 1 Cr dan 1 Cb.
6. Block, coding unit terkecil pada algoritma MPEG 8x8 pixel, dapat berupa salah satu dari luminance rec chrominance, atau blue chrominance.
- Profile dan level
1. Baseline profile (untuk video conference dan aplikasi wireless). Hanya mendukung I-Picture dan P-Picture (tidak mendukung B-Picture). Mendukung in-loop deblocking filter. 1/4 sample motion-compensation. Mendukung ukuran block sampai dengan 4x4. Mendukung adaptive frame/field. CAVLC (VLC-based entropy coding).
2. Main profile (digunakan untuk layanan broadcast). Mendukung semua fitur baseline-profile kecuali penambahan fitur error resilience. Mendukung B- picture. CABAC (context-adaptive binary arithmetic coding). Mendukung interlaced picture. Menggunakan MB-level pada saat pergantian frame atau field. Prediksi P-picture dan B-picture secara adaptive.
3. Extended Profile (digunakan dalam aplikasi streaming). Mendukung semua fitur baseline-profile. Mendukung B-picture. Mendukung error resilience. Mendukung pergantian frame/field dengan SP/SI.
Setiap level memiliki batas atas nilai dari ukuran gambar (dalam macroblock), rata-rata waktu proses decode (dalam macroblock perdetik), ukuran multipicture buffer, bitrate video, dan ukuran buffer video.
- Kompresi intraframe.
1. Sub Samping. Hal ini merupakan dasar dari kebanyakan kompresi images atau video, metode ini mengupayakan untuk mengurangi jumlah bit untuk merepresentasikan suatu image. Subsampling dapat dilakukan dengan dua cara. Pertama, dengan mengambil piksel-piksel pada baris dan kolom ganjil saja. Kedua, dengan mengambil rata-rata dari sekolompok piksel dan menggunakan nilai tersebut sebagai ganti kelompok piksel. Cara ini lebih kompleks, tetapi menghasilkan kualitas yang lebih baik.
2. Pengurangan Kedalaman Bit. Metode ini dilakukan dengan mengurangi jumlah bit yang digunakan untuk merepresentasikan suatu piksel misalnya dari 16 bit atau piksel diturunkan menjadi 8 bit atau piksel. Dengan konsekuensi akan menurunkan kualitas video dibandingkan video sebelumnya.
3. Transform Coding. Metode yang lain digunakan dalam kompresi intraframe adalah mentransformasikan data dari domain ruang ke dalam domain frekuensi. Cara ini menghasilkan data yang lebih mudah diproses untuk kompresi lebih lanjut.Transformasi yang popular digunakan misalnya discrete cosine transform (DCT ) dan Wavelet. Proses transformasi dan kuantisasi yang bersifat lossy, serta pengkodean yang bersifat lossless. Disini digunakan Discrete Cosinus Trasnform (DCT). Kemudian dilanjutkan dengan kuantisasi yang mana digunakan untuk memotong hasil transformasi.
Proses selanjutnya dalam pengkodean dengan menggunakan run legth encoding (RLE) dan variabel length coding (VLC). Prinsip dasarnya yaitu untuk melakukan proses transformasi dari domain ruang ke domain frekuansi. Dengan menggunakan transformasi ini maka data vital akan terkumpul pada frekuensi DC. Dengan adanya transformasi ini sangatlah menguntungkan untuk kompresi data, karena pada dominan frekuensi inilah di peroleh sifat-sifat yang mendukung serangkaian proses selanjutnya. Masukan proses DCT berupa matriks data dua dimensi N x N dan pada proses dekomposisi untuk mentransformasikan kembali data dari domain frekuaensi ke domain ruang menggunakan Inverse Discrite Cosine Trasnsform (IDCT).
4. Kuantisasi. Prinsip dasar dari kuantisasi yaitu bertujuan untuk mengurangi jumlah bit yang diperlukan untuk menyimpan suatu nilai dengan cara membaginya dengan nilai yang ditentukan dalam matrik kuantisasi. H.264 menggunakan skalar kuantisasi. Ada 52 kuantisasi step standar yang digunakan di H264 yang ditandai dengan kuantisasi parameter(QP). Setiap kuantisasi step berhubungan dengan kuantisasi parameter (QP).
5. RLE. RLE (Run length encoding) adalah proses serangkaian simbol yang berurutan dikodekan menjadi suatu kode yang yang terdiri dari symbol tersebut dan jumlah perulangannya. Hasil dari proses transformasi yang dikuantisasi cenderung nol untuk frekuensi tinggi. Untuk melakukan RLE secara efektif, keluaran proses kuantisasi tadi dibaca secara linier dari frekuensi rendah sampai tinggi. Cara yang digunakan adalah cara zig-zag dimulai dari koefisien DC (0.0) kemudian koefisien DC (0.1) dan seterusnya.
6. Entropy coding. Proses mengkodekan tiap piksel tertentu yang mempunyai panjang yang berbeda. Teknik algoritmik yang digunakan berbeda antara proses pengkodean satu dengan yang lainya. H.264 menggunakan CABAC (Context-based Adaptive Binary Arithmetic Coding) atau CAVLC (Context Based Adaptive Variable Length Coding).
- CABAC. Context-based Adaptive Binary Aritmethic Coding (CABAC) adalah suatu bentuk coding yang merupakan pengembangan dari aritmethic coding. CABAC terdiri atas 3 bagian coding yaitu binarization, context modeling, binary aritmethic.
2. Context modeling. Context modeling digunakan untuk membersihkan interface antara modeling dan model. Setiap distribusi model akan diberi symbol yang kemudian didalam langkah coding selanjutnya, memandu coding engine to generate suatu urutan bit sebagai code pada symbol menurut distribusi model.
3. Binary aritmethic. Binary aritmethic coding adalah berdasarkan pada prinsip pengulangan interval (lower, upper) yang melibatkan operasi perkalian dasar dan juga berdasar pada arithmethic coding. Dengan aturan sebagai berikut: Lower = lower+width *low/maxfreq. Width = width *symb_width/maxfreq. Upper = lower + width = lower + width *(low + symb_width)/maxfreq = lower + width *up/maxfre. dengan width = upper – lower (interval lama). width = upper - lower (interval baru). symb_width = up – low (model frequency).
- Kompresi interframe
1. Subsamping. Yaitu dengan cara mengurangi laju fame data video. Pengukuran itu dilakukan dengan hanya menggunakan frame tertentu saja.
2. Difference coding. Metode fram ini di bagi menjadi beberapa block yang tidak tumpang tindih, tiap block tersebut di bandingkan dengan block yang bersesuaian pada frame yang sebelumnya, hanya block yang mengalami perubahan signifikan saja yang disimpan.
3. Motion Compensation. Metode ini juga menggunakan pembagian block yang sama, namun block tersebut di bandingkan dengan frame yang sebelumnya, hingga ditemukan block yang paling mirip. Perbedaan lokasi antara block tersebut dengan block yang mirip pada frame yang sebelumnya disebut vektor gerak (motion vector). Metode ini efektif karena hanya vector gerak saja yang disimpan atau ditrasmisikan.
Demikian informasi tentang H.264/AVC, semoga berguna dan dapat menambah pengetahuan bagi yang membacanya. Saya informasikan kepada pembaca, jika anda membeli perangkat telekomunikasi, sebaiknya yang sudah di sertifikasi atau sudah mendapat sertifikat resmi dari postel, untuk menjaga agar anda tidak berurusan dengan pihak yang berwajib. Dan perangkat yang sudah di sertifikasi tentunya sudah teruji di balai besar pengujian perangkat telekomunikasi, sehingga mutu dan kualitasnya terjamin.