DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA-Struktur (dxvahd.h)

Gibt den Ausgabefarbraum für Blitvorgänge an, wenn Microsoft DirectX Video Acceleration High Definition (DXVA-HD) verwendet wird.

Syntax

typedef struct _DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA {
  union {
    struct {
      UINT Usage : 1;
      UINT RGB_Range : 1;
      UINT YCbCr_Matrix : 1;
      UINT YCbCr_xvYCC : 1;
      UINT Reserved : 28;
    };
    UINT Value;
  };
} DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA;

Member

Usage

Gibt an, ob die Ausgabe für die Wiedergabe oder Die Videoverarbeitung (z. B. Bearbeitung oder Erstellung) vorgesehen ist. Das Gerät kann die Verarbeitung basierend auf dem Typ optimieren. Der Standardwert für den Zustand ist 0 (Wiedergabe).

Wert Bedeutung
0
Wiedergabe.
1
Videoverarbeitung.

RGB_Range

Gibt den RGB-Farbbereich an. Der Standardwert für den Zustand ist 0 (vollständiger Bereich).

Wert Bedeutung
0
Vollständiger Bereich (0-255).
1
Begrenzter Bereich (16-235).

YCbCr_Matrix

Gibt die YCbCr-Übertragungsmatrix an. Der Standardwert ist 0 (BT.601).

Wert Bedeutung
0
ITU-R BT.601.
1
ITU-R BT.709.

YCbCr_xvYCC

Gibt an, ob die Ausgabe konventionelles YCbCr oder erweitertes YCbCr (xvYCC) verwendet. Der Standardwert für den Zustand ist 0 (herkömmlicher YCbCr).

Wert Bedeutung
0
Konventioneller YCbCr.
1
Erweiterter YCbCr (xvYCC).

Reserved

Value

Hinweise

Der RGB_Range-Member gilt für die RGB-Ausgabe, während die YCbCr_Matrix - und YCbCr_xvYCC-Member für die YUV-Ausgabe (YCbCr) gelten. Wenn das Gerät eine Farbraumkonvertierung für die Hintergrundfarbe durchführt, verwendet es die Werte, die für beide Farbräume gelten.

Der erweiterte YCbCr kann mit beiden Übertragungsmatrix verwendet werden. Der erweiterte YCbCr ändert den Schwarzen Punkt oder weißer Punkt nicht – der schwarze Punkt ist immer noch 16 und der weiße Punkt ist immer noch 235. Die erweiterte YCbCr-Instanz lässt jedoch explizit Schwarze als Schwarzwerte im Bereich von 1 bis 15 und weiße werte im Bereich 236–254 zu. Wenn erweitertes YCbCr verwendet wird, sollte der Treiber die Lumawerte nicht auf den nominalen Bereich von 16 bis 235 abschneiden.

Wenn das Gerät erweitertes YCbCr unterstützt, wird das DXVAHD_DEVICE_CAPS_xvYCC-Funktionsflag im DeviceCaps-Member der DXVAHD_VPDEVCAPS-Struktur festgelegt. Andernfalls ignoriert das Gerät den Wert des YCbCr_xvYCC-Members und behandelt die gesamte YCbCr-Ausgabe wie herkömmliche YCbCr. Rufen Sie zum Abrufen der Funktionen des Geräts IDXVAHD_Device::GetVideoProcessorDeviceCaps auf.

Wenn das Ausgabeformat ein RGB-Format mit breitem Gamut ist, liegt die Ausgabe möglicherweise außerhalb des nominalen [0...1] sRGB-Bereichs. Dies gilt insbesondere, wenn ein oder mehrere Eingabedatenströme erweitertes YCbCr verwenden.

Beispiele

HRESULT DXVAHD_SetOutputColorSpace(
    IDXVAHD_VideoProcessor *pVP,
    BOOL bPlayback,     // TRUE = playback, FALSE = video processing
    UINT RGB_Range,     // 0 = 0-255, 1 = 16-235
    UINT YCbCr_Matrix,  // 0 = BT.601, 1 = BT.709
    UINT YCbCr_xvYCC    // 0 = Conventional YCbCr, 1 = xvYCC
    )
{
    DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA data =
    {
        bPlayback ? 0 : 1,
        RGB_Range ? 1 : 0,
        YCbCr_Matrix ? 1 : 0,
        YCbCr_xvYCC ? 1 : 0
    };

    HRESULT hr = pVP->SetVideoProcessBltState(
        DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE,
        sizeof(data),
        &data
        );

    return hr;
}

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Kopfzeile dxvahd.h

Weitere Informationen

DXVA-HD

DXVAHD_BLT_STATE

Direct3D-Videostrukturen

IDXVAHD_VideoProcessor::SetVideoProcessBltState

Media Foundation-Strukturen