Freigeben über


Koordinatenzuordnung in der VMR

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

In diesem Abschnitt werden die fünf Transformationen beschrieben, die auf ein Quellimage angewendet werden, bevor es von der VMR dem endgültigen Ausgabeimage zugeordnet wird.

  1. Die Transformation T(Src) ordnet das Quellrechteck dem Zielrechteck zu. Diese werden durch die Member rcSource und rcTarget der VIDEOINFOHEADER - oder VIDEOINFOHEADER2-Struktur im Medientyp angegeben. Diese Zuordnung verarbeitet das Quellimage vor, während es an die VMR übergeben wird.
  2. Die Transformation T(Flag) führt alle Bildbearbeitungen durch, die durch Flags im Medienbeispiel angegeben werden. Dazu gehörten Transformationen wie die vertikale Übersetzung und Skalierung, um die Bob-Interlace-Flags aufzunehmen. Die Interlace-Transformation verdoppelt die Bildhöhe und übersetzt das Bild möglicherweise um die Hälfte einer Videolinie, wenn es sich im ungeraden Feld befindet.
  3. Die Transformation T(AR) passt das Bild basierend auf dem Bildseitenverhältnis auf quadratische Pixel an. Bei VIDEOINFOHEADER-Medientypen wird das Seitenverhältnis durch die Bildgröße bestimmt. Bei VIDEOINFOHEADER2-Typen wird das Seitenverhältnis durch die Felder dwPictAspectRatioX und dwPictAspectRatioY bestimmt, es sei denn, die flags AMCONTROL_PAD_TO_16x9 oder AMCONTROL_PAD_TO_4x3 sind festgelegt. Bei dieser Transformation wird davon ausgegangen, dass die Anzeigeeinstellung des Monitors mit dem physischen Seitenverhältnis des Monitors übereinstimmt. Wenn der Benutzer beispielsweise über einen Monitor mit einem Seitenverhältnis von 4 x 3 verfügt, aber die Anzeige auf 1280 x 768 Pixel (5 x 3) festlegt, weist das Bild nicht das richtige Seitenverhältnis auf.
  4. Mit der Transformation T(Mix) wird das Bild mithilfe der in den IVMRMixerControl-Methoden angegebenen normalisierten Rechtecke innerhalb des Zielbilds positioniert. Die normalisierten Rechtecke ermöglichen es der Anwendung, zu organisieren, wie die Quellstreams relativ zueinander positioniert und skaliert werden. Die VMR berechnet das Zielimage, indem die maximalen Dimensionen aller Quellimages berechnet und jedes innerhalb eines gesamten umgebenden Rechtecks zentriert wird. Den Ecken des umgebenden Rechtecks wird der Bereich (0,0) bis (1,1) zugewiesen. Das umgebende Rechteck wird vor der Ausführung des Graphen festgelegt und bleibt auch dann konstant, wenn Datenströme hinzugefügt oder gelöscht werden. Zielrechtecke für jeden Stream können außerhalb des Bereichs (0,0) bis (1,1) liegen und weiterhin gültig sein.
  5. Schließlich kann ein Teil des gemischten Images von der Zuordnungs-T(Dst)transformiert werden, die durch die Quell- und Zielrechtecke in der IBasicVideo-Schnittstelle auf der VMR angegeben wird. Wenn die Allocator-Presenter ersetzt wird und die IBasicVideo-Schnittstelle nicht verwendet wird, muss die Anwendung die IVMRWindowlessControl-Schnittstelle implementieren und die Koordinaten wieder einem linearen 2D-Raum zuordnen. Die Mauskoordinaten, die an den DVD-Navigator zurückgegeben werden, müssen sich ebenfalls in diesem Bereich befinden. Wenn eine Anwendung z. B. Videos auf einem sich drehenden Würfel rendert, meldet sie die gesamte Anzeige für das fensterlose Steuerelement zurück und gibt mauskoordinaten relativ zur Anzeige zurück.

Die allgemeine Bildtransformation von den Quelldaten zum endgültigen Renderer lautet:

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

Wobei * angibt, dass das Bild zu diesem Zeitpunkt in das Zielbild gekappt werden kann. Beachten Sie, dass es sich dabei um affine Transformationen handelt, sodass die VMR sie in einer einzelnen Transformation kombinieren kann.

Die Inverse der Transformation ist:

umgekehrte Transformation

Der Faktor T(Src) T(Flag) T(Ar) ist relativ zur Quellauflösung. Im Faktor T(Mix) ist das normalisierte Quellrechteck relativ zum Bild mit seitenkorrektur. Das normalisierte Zielrechteck ist relativ zur Ausgabeauflösung. Das folgende Diagramm zeigt diese Beziehungen.

Schritte zur Bildtransformation

Verwenden der VMR für DirectShow-Filterentwickler