Condividi tramite


Mapping delle coordinate in VMR

[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.

In questa sezione vengono descritte le cinque trasformazioni applicate a un'immagine di origine prima che venga eseguito il mapping da VMR all'immagine di output finale.

  1. La trasformazione T(Src) esegue il mapping del rettangolo di origine al rettangolo di destinazione. Vengono specificati dai membri rcSource e rcTarget della struttura VIDEOINFOHEADER o VIDEOINFOHEADER2 nel tipo di supporto. Questo mapping pre-elabora l'immagine di origine durante il passaggio alla macchina virtuale.
  2. La trasformazione T(Flag) esegue qualsiasi manipolazione dell'immagine specificata dai flag nell'esempio multimediale. Queste trasformazioni includevano trasformazioni come la traslazione verticale e la scalabilità per contenere i flag interlacciati bob. La trasformazione interlaccia raddoppia l'altezza dell'immagine ed eventualmente converte l'immagine per metà di una linea video se si trova nel campo dispari.
  3. La trasformazione T(AR) regola l'immagine in pixel quadrati, in base alle proporzioni dell'immagine. Per i tipi di supporti VIDEOINFOHEADER , le proporzioni sono determinate dalle dimensioni dell'immagine. Per i tipi VIDEOINFOHEADER2 , le proporzioni sono determinate dai campi dwPictAspectRatioX e dwPictAspectRatioY , a meno che non siano impostati i flag AMCONTROL_PAD_TO_16x9 o AMCONTROL_PAD_TO_4x3. Questa trasformazione presuppone che l'impostazione di visualizzazione del monitor corrisponda alle proporzioni fisiche del monitor. Ad esempio, se l'utente ha un monitor con proporzioni 4 x 3, ma imposta la visualizzazione su 1280 x 768 pixel (5 x 3), l'immagine non avrà le proporzioni corrette.
  4. La trasformazione T(Mix) trasforma l'immagine all'interno dell'immagine di destinazione, usando i rettangoli normalizzati specificati nei metodi IVMRMixerControl . I rettangoli normalizzati consentono all'applicazione di organizzare il modo in cui i flussi di origine vengono posizionati e ridimensionati l'uno rispetto all'altro. VmR calcola l'immagine di destinazione calcolando le dimensioni massime di tutte le immagini di origine e centrando ogni immagine all'interno di un rettangolo di delimitazione complessivo. Agli angoli del rettangolo di delimitazione viene assegnato l'intervallo (0,0) a (1,1). Il rettangolo di delimitazione viene corretto prima dell'esecuzione del grafico e rimane costante anche se i flussi vengono aggiunti o eliminati. I rettangoli di destinazione per ogni flusso possono trovarsi al di fuori dell'intervallo (da 0,0) a (1,1) ed essere ancora validi.
  5. Infine, una parte dell'immagine mista può essere trasformata dal T(Dst) di mapping, specificato dai rettangoli di origine e di destinazione nell'interfaccia IBasicVideo in VMR. Se la Allocator-Presenter viene sostituita e l'interfaccia IBasicVideo non viene usata, l'applicazione deve implementare l'interfaccia IVMRWindowlessControl ed eseguire il mapping delle coordinate in uno spazio lineare 2D. Anche le coordinate del mouse restituite allo strumento di navigazione DVD devono trovarsi in questo spazio. Ad esempio, se un'applicazione esegue il rendering di video in un cubo rotante, restituisce l'intero display per il controllo senza finestra e restituisce coordinate del mouse relative alla visualizzazione.

La trasformazione complessiva dell'immagine dai dati di origine al renderer finale è:

T = T(Src)* T(Flag)T(Ar)T(Mix)* T(Dst)*

dove * indica che l'immagine potrebbe essere ritagliata nell'immagine di destinazione in quella fase. Si noti che si tratta di tutte le trasformazioni affine, in modo che vmr possa combinarle in una singola trasformazione.

L'inverso della trasformazione è:

trasformazione inversa

Il fattore T(Src) T(Flag) T(Ar) è relativo alla risoluzione di origine. Nel fattore T(Mix), il rettangolo di origine normalizzato è relativo all'immagine con correzione dell'aspetto. Il rettangolo di destinazione normalizzato è relativo alla risoluzione dell'output. Il diagramma seguente mostra queste relazioni.

Passaggi di trasformazione dell'immagine

Uso di VMR per sviluppatori di filtri DirectShow