ITU-T H.263

Rekomendasi ITU-T H.263 berjudul Pengkodian Video untuk Komunikasi Laju Bit Rendah. Rekomendasi ini menawarkan peningkatan performa kompresi relatif terhadap H.261, MPEG-1, dan MPEG-2. Standar H.263 berisi mode operasi garis besar yang hanya mendukung fitur paling dasar H.263. Ini juga berisi sejumlah besar mode operasi opsional dan ditingkatkan yang dapat digunakan untuk berbagai tujuan. Prediksi H.263 garis besar beroperasi di antarmuka ini menggunakan subset fitur MPEG-1. Mode garis besar tidak berisi prediksi dua arah hanya prediksi maju.

Kontrol pembulatan: Beberapa mode opsional H.263 memerlukan kontrol pembulatan. Fitur ini didukung oleh anggota bRcontrolDXVA_PictureParameters.

Vektor Gerakan di atas Batas Gambar: Beberapa mode opsional H.263 memungkinkan vektor gerakan yang membahas lokasi di luar batas gambar, seperti yang didefinisikan dalam H.263 Annex D. Anggota bPicExtrapolationdari DXVA_PictureParameters, menunjukkan apakah akselerator perlu mendukung gerakan tersebut. Ada dua cara agar akselerator dapat mendukung vektor gerakan melalui batas gambar. Dalam kedua kasus, hasilnya sama:

  • Klip nilai alamat pada setiap pengambilan sampel untuk memastikan bahwa alamat tetap berada dalam batas gambar.

  • Pad gambar dengan menggunakan sampel duplikat untuk memperlebar area memori aktual yang digunakan oleh satu lebar dan tinggi makroblock di setiap batas gambar.

Prediksi gerakan dua arah: prediksi gerakan dua arah yang digunakan dalam beberapa operasi prediksi H.263 opsional menggunakan operator pembulatan yang berbeda dari MPEG-1. (Ini menggunakan pembulatan ke bawah dari setengah nilai bilangan bulat dibandingkan dengan pembulatan ke atas.) Anggota bBidirectionalAveragingModedari DXVA_PictureParameters menunjukkan metode pembulatan yang digunakan untuk menggabungkan bidang prediksi dalam kompensasi gerakan dua arah.

Kompensasi Gerakan Empat MV (INTER4V): Meskipun setiap blok makro dalam ukuran H.263 adalah 16x16, beberapa mode opsional (misalnya, Annex F dan Annex J dari H.263) memungkinkan empat vektor gerakan dikirim untuk satu macroblock, dengan satu vektor gerakan dikirim untuk masing-masing dari empat blok luminans 8x8 dalam macroblock. Area 8x8 chrominance yang sesuai menggunakan vektor gerakan turunan tunggal.

Kompensasi Gerakan Blok Tumpang Tindih (OBMC): H.263 Annex F berisi Kompensasi Gerakan Blok Tumpang Tindih (OBMC) untuk sampel luminance, selain dukungan INTER4V. Prediksi OBMC didukung dengan memungkinkan 12 vektor gerakan dikirim untuk prediksi maju macroblock.

Blok prediksi OBMC dapat diwujudkan dalam akselerator perangkat keras sebagai kombinasi prediksi yang diatur ke dalam tiga bidang:

  • Bidang saat ini (dengan indeks bidang nol)

  • Bidang atas/bawah (dengan indeks bidang 1)

  • Bidang kiri/kanan (dengan indeks bidang 2)

Ketiga bidang tersebut dapat berfungsi sebagai penyimpanan sementara untuk blok q(x,y), r(x,y), dan s(x,y) yang ditentukan dalam H.263 Bagian F.3. Setelah masing-masing dari tiga bidang diisi untuk keempat blok, mereka dapat digabungkan sesuai dengan rumus dalam H.263 Bagian F.3, dan ditimbang oleh matriks H masing-masing yang diberikan dalam H.263 Annex F.

Sebagai contoh, prediksi macroblock luminance OBMC dapat terdiri dari delapan blok prediksi atas/bawah dengan bentuk 8x4, delapan blok kiri/kanan bentuk 4x8, dan empat blok saat ini dengan bentuk 8x8. Jika keempat vektor gerakan untuk bidang dengan indeks 0 memiliki vektor gerakan yang sama (yaitu, ketika tidak dalam INTER4V macroblock), prediksi macroblock 16x16 tunggal dapat digunakan untuk mengisi seluruh bidang 16x16.

Untuk mengimplementasikan proses OBMC di DirectX VA, 10 vektor gerakan dikirim untuk blok makro seperti yang ditunjukkan pada gambar berikut. Empat vektor gerakan pertama adalah untuk blok Y₀, Y₁, Y₂, dan Y₃ di blok makro saat ini. Vektor gerakan jarak jauh kemudian dikirim dalam urutan berikut:

  1. Bagian kiri dan kanan bagian atas blok makro.

  2. Bagian atas dan bawah sisi kiri blok makro.

  3. Bagian atas dan bawah sisi kanan macroblock.

Gambar berikut menunjukkan vektor gerakan yang dikirim untuk blok makro saat menggunakan pemrosesan OBMC. (Huruf C menunjukkan vektor gerakan blok makro saat ini. Huruf R menunjukkan vektor gerakan yang jarak jauh sehubungan dengan macroblock saat ini.)

Diagram memperlihatkan sepuluh vektor gerakan untuk blok makro dalam pemrosesan OBMC.

Perhatikan bahwa H.263 tidak menggunakan vektor jarak jauh yang berbeda untuk bagian kiri dan kanan bagian bawah makroblock—ia menggunakan kembali vektor untuk macroblock saat ini.

Gambar berikut menunjukkan bagaimana satu blok 8x8 ditempatkan di tiga jenis bidang prediksi yang digunakan oleh pemrosesan OBMC di H.263.

Diagram yang menggambarkan pendaftaran H.263 blok 8x8 di bidang prediksi OBMC.

Bingkai PB (Annex G dan M): Dalam mode ini, makroblok untuk bingkai P dan bingkai pseudoâˆ'B di-multipleks bersama-sama ke dalam jenis pengkodian gambar bingkai PB yang unik. Bagian B dari setiap peminjaman makroblock dari informasi yang dikodekan untuk bagian P makroblock: vektor gerakan maju dan mundur bingkai B diskalakan dari vektor bingkai P, dan makroblock bingkai P yang direkonstruksi berfungsi sebagai referensi mundur untuk bagian B. Bingkai PB hanya menyertakan bingkai Pseudoâˆ'B, karena prediksi mundur untuk setiap blok makro hanya dapat merujuk ke blok makro P yang direkonstruksi yang terkandung dalam blok makro PB yang sama. Namun, seperti halnya semantik bingkai B tradisional, blok makro B dalam bingkai PB dapat merujuk ke lokasi mana pun dalam bingkai referensi maju. Batasan referensi mundur menciptakan bentuk blok prediksi mundur yang lebih kecil (seperti yang dijelaskan dalam H.263 Gambar G.2). Bingkai PB didukung dalam DirectX VA dengan mewakili bagian P dari bingkai PB sebagai bingkai P, dan bagian B dari bingkai PB sebagai gambar yang diprediksi secara dua arah B-in-P terpisah yang berisi jenis makroblock B-in-PB unik yang memiliki dua vektor gerakan.

Filter Pemblokiran (Annex J): Perintah khusus didefinisikan untuk mempercepat filter pemblokiran, apakah digunakan dalam perulangan prediksi kompensasi gerakan seperti halnya Annex J, atau di luar perulangan seperti halnya saat memisahkan gambar H.261 atau gambar garis besar H.263. CPU host harus membuat perintah pembatalan yang mengamati grup blok (GOB) atau mengpotong batas segmen, jika perlu.

Pemilihan Gambar Referensi (Lampiran N dan U): Beberapa bingkai referensi didukung oleh akselerator menggunakan bidang pemilihan indeks gambar dari setiap blok prediksi.

Skalabilitas (Annex O): Fitur skalabilitas temporal, SNR, dan spasial ditentukan dalam H.263 Annex O. H.263 temporal scalability B-frame sangat mirip dalam DirectX VA dengan MPEG-1 B-frames. Skalabilitas spasial memerlukan pengambilan sampel gambar referensi lapisan bawah dan kemudian menggunakan gambar yang di-upsampel sebagai gambar referensi untuk pengodean gambar lapisan peningkatan (dalam semua aspek lainnya, skalabilitas spasial pada dasarnya sama dengan rasio sinyal-ke-ke-kebisingan dan skalabilitas temporal). Kontrol pembulatan rata-rata dua arah yang sesuai harus diatur ke rata-rata bias ke bawah untuk H.263. (MPEG-1 dan MPEG-2 menggunakan rata-rata bias ke atas, dan H.263 menggunakan rata-rata bias ke bawah.)

Pengambilan Sampel Ulang Gambar Referensi (Annex P): Bentuk sederhana dari lampiran ini didukung oleh pengambilan sampel ulang buffer referensi. Untuk bentuk lanjutan Annex P resampling, bingkai yang direkonstruksi yang berfungsi sebagai bingkai referensi harus diambil sampelnya kembali dengan cara eksternal dan disimpan sebagai buffer bingkai referensi yang dapat diatasi oleh akselerator.

Reduced-Resolution Update (Annex Q): Mode pembaruan resolusi berkurang H.263 saat ini tidak didukung, karena memiliki persyaratan upsampling residu yang tidak biasa, bentuk filter pemblokiran yang berbeda, dan bentuk OBMC prediksi lanjutan yang berbeda. Namun, operasi mode pembaruan resolusi berkurang dapat didukung di antarmuka ini menggunakan pemrosesan IDCT berbasis host saat mode filter pemblokiran dan mode prediksi tingkat lanjut tidak aktif.

Pendekodean Segmen Independen (Annex R): Tidak ada kesadaran akselerator tentang batas segmen independen. Beberapa bentuk Annex R dapat didukung tanpa penanganan khusus (misalnya, garis besar ditambah Annex R). Bentuk Annex R yang memerlukan ekstrapolasi segmen gambar dapat didukung dengan mendekode setiap segmen sebagai gambar dan kemudian membangun gambar output lengkap dari gambar-gambar yang lebih kecil ini.

IDCT (Lampiran W): Antarmuka ini mendukung transformasi kosinus diskrit terbalik (IDCT) yang ditentukan dalam Annex W dari H.263.

Fitur Opsional H.263 Lainnya: Fitur opsional H.263 lainnya dapat didukung tanpa dampak apa pun pada desain DirectX VA. Misalnya, Annexes I, K, S, dan T dapat dengan mudah ditangani dengan mengubah dekoder perangkat lunak tanpa dampak pada akselerator.