YCbCr-Effekt

Konvertiert planare und chromauntersampelte JPEG YCbCr-Daten in RGB. Bei diesem Effekt wird davon ausgegangen, dass die YCbCr-Daten gemäß dem JPEG-Standard formatiert sind. Daten für die Eingaben können von IWICPlanarBitmapSourceTransform abgerufen werden. Der YCbCr-Effekt erfordert zwei Eingaben; die erste muss eine DXGI_FORMAT_R8 Bitmap sein, die Lumadaten enthält, und die zweite muss eine DXGI_FORMAT_R8G8 Bitmap sein, die teilsampelte Chromadaten enthält. Weitere Informationen zur Verwendung dieses Effekts finden Sie unter JPEG YCbCr-Unterstützung.

Die CLSID für diesen Effekt ist CLSID_D2D1YCbCr.

Effekteigenschaften

Anzeigename und Indexenumeration Beschreibung
ChromaSubsampling
D2D1_YCBCR_CHROMA_SUBSAMPLING
Gibt die Chroma-Subsampling des Eingabe-Chroma-Bilds an.
Der Typ ist D2D1_YCBCR_CHROMA_SUBSAMPLING.
Der Standardwert ist D2D1_YCBCR_CHROMA_SUBSAMPLING_AUTO.
TransformMatrix
D2D1_YCBCR_PROP_TRANSFORM_MATRIX
Eine 3x2-Matrix , die die achsenbündige affine Transformation des Bilds angibt. Achsenorientierte Transformationen umfassen Skalierung, Flips und Drehungen um 90 Grad.
Der Typ ist D2D1_MATRIX_3X2_F.
Der Standardwert ist Matrix3x2F::Identity().
Interpolationmode
D2D1_YCBCR_INTERPOLATION_MODE
Der Interpolationsmodus.
Der Typ ist D2D1_YCBCR_INTERPOLATION_MODE.

Subsamplingmodi

Enumeration Beschreibung
D2D1_YCBCR_CHROMA_SUBSAMPLING_AUTO
In diesem Modus wird versucht, die Chroma-Subsampling von den Begrenzungen der Eingabebilder abzuleiten. Wenn diese Option ausgewählt ist, wird die kleinere Ebene auf die Größe der größeren Ebene hochstempelt, und dieses Ausgaberechteck ist die Schnittmenge der beiden Ebenen. Bei Verwendung dieses Modus sollte beim Anwenden von Effekten auf die Eingabeebenen, die die Bildgrenzen ändern, wie z. B. die Rahmentransformation, darauf geachtet werden, dass das gewünschte Größenverhältnis zwischen den Ebenen beibehalten wird.
D2D1_YCBCR_CHROMA_SUBSAMPLING_420
Die Chromaebene wird horizontal von unterstempelt und vertikal von unterstempelt. Wenn diese Option ausgewählt ist, wird die Chromaebene horizontal und vertikal um das 2-fache hochstempelt, und dieses Ausgaberechteck ist die Schnittmenge der beiden Ebenen.
D2D1_YCBCR_CHROMA_SUBSAMPLING_422
Die Chromaebene wird horizontal durch unterstempelt. Wenn diese Option ausgewählt ist, wird die Chromaebene horizontal um das 2-fache hochstempelt, und dieses Ausgaberechteck ist die Schnittmenge der beiden Ebenen.
D2D1_YCBCR_CHROMA_SUBSAMPLING_444
Die Chromaebene wird nicht unterstempelt. Wenn diese Option ausgewählt ist, ist dieses Ausgaberechteck die Schnittmenge der beiden Ebenen.
D2D1_YCBCR_CHROMA_SUBSAMPLING_440
Die Chromaebene wird vertikal durch subsampiert. Wenn diese Option ausgewählt ist, wird die Chromaebene vertikal um das 2-fache hochstempelt, und dieses Ausgaberechteck ist die Schnittmenge der beiden Ebenen.

Interpolationsmodi

Enumeration Beschreibung
D2D1_YCBCR_INTERPOLATION_MODE_NEAREST_NEIGHBOR Beispiele für den nächsten einzelnen Punkt und verwenden diesen. Dieser Modus verwendet weniger Verarbeitungszeit, gibt jedoch das Bild mit der niedrigsten Qualität aus.
D2D1_YCBCR_INTERPOLATION_MODE_LINEAR Verwendet ein Vier-Punkt-Beispiel und eine lineare Interpolation. Dieser Modus verwendet mehr Verarbeitungszeit als der nächste Nachbarmodus, gibt jedoch ein Bild mit höherer Qualität aus.
D2D1_YCBCR_INTERPOLATION_MODE_CUBIC Verwendet einen Kubikkern mit 16 Beispielen für die Interpolation. Dieser Modus verwendet die meiste Verarbeitungszeit, gibt jedoch ein Bild mit höherer Qualität aus.
D2D1_YCBCR_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR Verwendet 4 lineare Beispiele innerhalb eines einzelnen Pixels für gutes Antialiasing von Kanten. Dieser Modus eignet sich gut für das Herunterskalieren von kleinen Mengen auf Bildern mit wenigen Pixeln.
D2D1_YCBCR_INTERPOLATION_MODE_ANISOTROPIC Verwendet die anisotrope Filterung, um ein Muster entsprechend der transformierten Form der Bitmap zu ermitteln.
D2D1_YCBCR_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC Verwendet einen Kubikkern mit variabler Größe hoher Qualität, um eine Vorabskalierung des Bilds durchzuführen, wenn eine Downskalierung in die Transformationsmatrix einbezogen wird. Verwendet dann den kubischen Interpolationsmodus für die endgültige Ausgabe.

Ausgabebitbitbit

Die Größe der Ausgabebitbitte hängt von der Transformationsmatrix ab, die auf das Bild angewendet wird.

Der Effekt führt den Transformationsvorgang aus und wendet dann ein Begrenzungsfeld um das Ergebnis an. Die Ausgabebitbitte ist die Größe des Begrenzungsrahmens.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8.1 [Desktop-Apps | Windows Store-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 R2 [Desktop-Apps | Windows Store-Apps]
Header d2d1effects_1.h
Bibliothek d2d1.lib, dxguid.lib

ID2D1Effect

JPEG YCbCr-Unterstützung

IWICPlanarBitmapSourceTransform