Modalità di combinazione YUV

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Questo argomento si applica a Windows XP Service Pack 2 o versione successiva.

A partire da Windows XP Service Pack 2, VMR supporta una modalità di combinazione denominata modalità di combinazione YUV. Questa modalità è più utile per applicazioni TV o DVD avanzate. Scambia alcune delle potenzialità del mixer VMR per ottenere prestazioni migliori su hardware grafico di fascia bassa che usa una progettazione unificata dell'architettura di memoria. La modalità di combinazione YUV è supportata sia in VMR-7 che in VMR-9.

Vantaggi

La modalità di combinazione YUV presenta diversi vantaggi relativi alle prestazioni di rendering rispetto alla modalità di combinazione RGB originale supportata da VMR:

  • Quando vmr è in modalità di combinazione YUV, tutte le operazioni di de-interlacciamento e composizione del flusso video vengono eseguite nello spazio dei colori YUV. Le superfici YUV richiedono in genere una larghezza di banda di memoria inferiore del 50% al 60% rispetto alle superfici RGB equivalenti.
  • La composizione di flusso e di denterlacing viene eseguita da una singola chiamata al driver grafico. Il driver può usare le funzionalità di multi-texturing dell'hardware grafico, con conseguente risparmio aggiuntivo della larghezza di banda della memoria.

Anche se qualsiasi applicazione video può usare la modalità di combinazione YUV, è destinata principalmente a due tipi di applicazione di riproduzione video:

  1. Applicazioni TV che visualizzano sottotitoli o teletext.
  2. Le applicazioni DVD visualizzano dati secondari DVD o sottotitoli.

Restrizioni

Una serie di restrizioni viene applicata dal VMR quando viene inserita in modalità di combinazione YUV:

  • Stream 0 (il flusso connesso al pin di input 0) può essere progressivo o interlacciato; tutti gli altri flussi devono essere progressivi.
  • GUID_NULL (modalità weave) non è consentito per il flusso 0.
  • DeinterlacePref_Weave non può essere usato come modalità di fallback perché ciò potrebbe impedire la creazione di un dispositivo de-interlacciato. La modalità di combinazione YUV richiede un dispositivo deinterlace anche se il video in ingresso non è interlacciato.
  • Non è possibile apportare modifiche al valore alfa planare associato a ogni flusso di input VMR.
  • L'utente non può modificare l'ordine Z dei flussi video connessi. L'ordine Z predefinito viene ricavato dall'ordine dei pin.
  • Il tasto colore non è supportato.
  • Il pin di input 0 deve ricevere il flusso video.
  • Gli altri pin di input possono ricevere solo dati di sotto-flusso video, ad esempio sotto-immagine DVD, sottotitoli o teletext.
  • Gli altri pin di input possono accettare solo formati YUV alfa per pixel, ad esempio AYUV, AI44 e IA44.
  • Nessuno dei pin di input di VMR può accettare qualsiasi formato RGB.
  • Le immagini bitmap fornite dall'applicazione non possono più essere combinate con il video prima della presentazione alla visualizzazione.
  • I singoli flussi secondari non possono essere invertiti orizzontalmente o verticalmente usando le funzioni di "rettangolo di output" del mixer di VMR. Il ri-posizionamento e il ridimensionamento del flusso "Normale" sono supportati.
  • Il colore di sfondo di combinazione (specificato da IVMRMixerControl::SetBackgroundClr) è ancora specificato nello spazio dei colori RGB, proprio come in modalità di combinazione RGB.

Configuration

Le applicazioni devono configurare in modo esplicito la macchina virtuale per sfruttare la modalità di combinazione YUV; la modalità di combinazione RGB originale rimane la modalità di combinazione predefinita. Per abilitare la modalità di combinazione YUV in VMR-7, chiamare IVMRMixerControl::SetMixingPrefs con il flag MixerPref_RenderTargetYUV. Questa chiamata deve essere eseguita prima che uno dei pin di input di VMR sia connesso. Per abilitare la modalità di combinazione YUV in VMR-9, chiamare IVMRMixerControl9::SetMixingPrefs con il flag MixerPref9_RenderTargetYUV.

L'unico modo per determinare se VMR-7 supporta la nuova modalità di combinazione YUV consiste nel provare a impostare VMR in tale modalità. Se la chiamata ha esito positivo, è comunque possibile ripristinare la modalità di combinazione RGB se necessario. Dopo aver impostato la modalità di combinazione YUV, vmr può essere nuovamente impostato sulla modalità di combinazione RGB solo dopo che tutti i pin di input sono stati disconnessi.

In modalità di combinazione YUV è possibile ridurre il carico sull'unità di elaborazione grafica (GPU) applicando i flag seguenti nel metodo SetMixingPrefs :

Flag Descrizione
VMR-7: MixerPref_DynamicSwitchToBOBVMR-9: MixerPref9_DynamicSwitchToBOB
Passare a bob deinterlacing.
VMR-7: MixerPref_DynamicDecimateBy2VMR-9: MixerPref_DynamicDecimateBy2
Decimare l'immagine di un fattore di 2 orizzontalmente e verticalmente.

 

È possibile aggiungere o rimuovere questi flag durante l'esecuzione del grafico dei filtri; la modifica viene applicata quando il mixer VMR compone il fotogramma video successivo. I flag non si escludono a vicenda. Queste impostazioni riducono la qualità dell'immagine, quindi in genere si applicano solo quando la qualità del video è meno importante, ad esempio se il video viene riprodotto in una piccola parte dell'interfaccia utente.

Uso della modalità di combinazione vmr