Bagikan melalui


Mode Pencampuran YUV

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Pengambilan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine , dan Pengambilan Audio/Video di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Topik ini berlaku untuk Windows XP Service Pack 2 atau yang lebih baru.

Mulai dari Windows XP Service Pack 2, VMR mendukung mode pencampuran yang disebut mode pencampuran YUV. Mode ini paling berguna untuk aplikasi TV atau DVD canggih. Ini memperdagangkan beberapa kekuatan mixer VMR untuk performa yang lebih baik pada perangkat keras grafis kelas bawah yang menggunakan desain arsitektur memori terpadu. Mode pencampuran YUV didukung pada VMR-7 dan VMR-9.

Kelebihan

Mode pencampuran YUV memiliki beberapa keuntungan yang berkaitan dengan performa penyajian atas mode pencampuran RGB asli yang didukung oleh VMR:

  • Ketika VMR berada dalam mode pencampuran YUV, semua operasi de-interlacing dan komposisi streaming video dilakukan di ruang warna YUV. Permukaan YUV biasanya membutuhkan bandwidth memori 50% hingga 60% lebih sedikit daripada permukaan RGB yang setara.
  • Komposisi deinterlacing dan stream dilakukan oleh satu panggilan ke driver grafis. Driver dapat menggunakan kemampuan multi-teksur perangkat keras grafis, menghasilkan penghematan bandwidth memori tambahan.

Meskipun aplikasi video apa pun dapat menggunakan mode pencampuran YUV, aplikasi ini terutama ditujukan untuk dua jenis aplikasi pemutaran video:

  1. Aplikasi TV yang menampilkan teks tertutup atau teleteks.
  2. Aplikasi DVD menampilkan data subgambar DVD atau teks tertutup.

Pembatasan

Sejumlah pembatasan diberlakukan oleh VMR ketika dimasukkan ke dalam mode pencampuran YUV:

  • Streaming 0 (aliran yang terhubung ke Pin Input 0) dapat progresif atau terjalin; semua aliran lainnya harus progresif.
  • GUID_NULL (mode tenung) tidak diizinkan untuk streaming 0.
  • DeinterlacePref_Weave tidak dapat digunakan sebagai mode fallback karena ini dapat mencegah perangkat de-interlace dibuat. Mode pencampuran YUV memerlukan perangkat deinterlace meskipun video masuk tidak terjalin.
  • Tidak ada perubahan yang dapat dilakukan pada nilai alfa planar yang terkait dengan setiap aliran input VMR.
  • Pengguna tidak dapat mengubah urutan Z dari aliran video yang terhubung. Urutan Z default diambil dari urutan pin.
  • Tombol warna tidak didukung.
  • Pin input 0 harus menerima streaming video.
  • Pin input lainnya hanya dapat menerima data sub-streaming video seperti sub-gambar DVD, keterangan tertutup, atau teleteks.
  • Pin input lainnya hanya dapat menerima format YUV alfa per piksel, seperti AYUV, AI44, dan IA44.
  • Tidak ada pin input VMR yang dapat menerima format RGB apa pun.
  • Gambar bitmap yang disediakan aplikasi tidak dapat lagi digabungkan dengan video sebelum presentasi ke tampilan.
  • Sub-aliran individual tidak dapat dibalik secara horizontal atau vertikal menggunakan fungsi "persegi panjang output" mixer VMR. Penempatan ulang aliran "Normal" dan ukuran ulang didukung.
  • Warna latar belakang pencampuran (ditentukan oleh IVMRMixerControl::SetBackgroundClr) masih ditentukan dalam ruang warna RGB, sama seperti dalam mode pencampuran RGB.

Konfigurasi

Aplikasi harus secara eksplisit mengonfigurasi VMR untuk memanfaatkan mode pencampuran YUV; mode pencampuran RGB asli tetap menjadi mode pencampuran default. Untuk mengaktifkan mode pencampuran YUV di VMR-7, panggil IVMRMixerControl::SetMixingPrefs dengan bendera MixerPref_RenderTargetYUV. Panggilan ini harus dilakukan sebelum salah satu pin input VMR tersambung. Untuk mengaktifkan mode pencampuran YUV di VMR-9, panggil IVMRMixerControl9::SetMixingPrefs dengan bendera MixerPref9_RenderTargetYUV.

Satu-satunya cara untuk menentukan apakah VMR-7 mendukung mode pencampuran YUV baru adalah dengan mencoba mengatur VMR ke mode tersebut. Jika panggilan berhasil, Anda masih dapat mengembalikan VMR ke mode pencampuran RGB jika perlu. Setelah diatur ke mode pencampuran YUV, VMR hanya dapat diubah kembali ke mode pencampuran RGB setelah semua pin input terputus.

Dalam mode pencampuran YUV, Anda dapat mengurangi beban pada unit pemrosesan grafis (GPU) dengan menerapkan bendera berikut dalam metode SetMixingPrefs :

Bendera Deskripsi
VMR-7: MixerPref_DynamicSwitchToBOBVMR-9: MixerPref9_DynamicSwitchToBOB
Beralih ke bob deinterlacing.
VMR-7: MixerPref_DynamicDecimateBy2VMR-9: MixerPref_DynamicDecimateBy2
Desimatkan gambar dengan faktor 2 secara horizontal dan vertikal.

 

Anda dapat menambahkan atau menghapus bendera ini saat grafik filter sedang berjalan; perubahan diterapkan ketika mixer VMR menyusun bingkai video berikutnya. Bendera tidak saling eksklusif. Pengaturan ini mengurangi kualitas gambar, jadi biasanya Anda akan menerapkannya hanya ketika kualitas video kurang penting — misalnya, jika video diputar di sebagian kecil antarmuka pengguna.

Menggunakan Mode Pencampuran VMR