Bagikan melalui


struktur DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA (dxvahd.h)

Menentukan ruang warna output untuk operasi blit, saat menggunakan Definisi Tinggi Akselerasi Video Microsoft DirectX (DXVA-HD).

Sintaks

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;

Anggota

Usage

Menentukan apakah output dimaksudkan untuk pemutaran atau pemrosesan video (seperti pengeditan atau penulisan). Perangkat dapat mengoptimalkan pemrosesan berdasarkan jenisnya. Nilai status default adalah 0 (pemutaran).

Nilai Makna
0
Pemutaran.
1
Pemrosesan video.

RGB_Range

Menentukan rentang warna RGB. Nilai status default adalah 0 (rentang penuh).

Nilai Makna
0
Rentang penuh (0-255).
1
Rentang terbatas (16-235).

YCbCr_Matrix

Menentukan matriks transfer YCbCr. Nilai status default adalah 0 (BT.601).

Nilai Makna
0
ITU-R BT.601.
1
ITU-R BT.709.

YCbCr_xvYCC

Menentukan apakah output menggunakan YCbCr konvensional atau YCbCr (xvYCC) yang diperluas. Nilai status default adalah nol (YCbCr konvensional).

Nilai Makna
0
YCbCr Konvensional.
1
Extended YCbCr (xvYCC).

Reserved

Value

Keterangan

Anggota RGB_Range berlaku untuk output RGB, sementara anggota YCbCr_Matrix dan YCbCr_xvYCC berlaku untuk output YCbCr (YUV). Jika perangkat melakukan konversi ruang warna pada warna latar belakang, perangkat menggunakan nilai yang berlaku untuk kedua spasi warna.

YCbCr yang diperluas dapat digunakan dengan matriks transfer. Extended YCbCr tidak mengubah titik hitam atau titik putih—titik hitam masih 16 dan titik putih masih 235. Namun, YCbCr yang diperluas secara eksplisit memungkinkan nilai yang lebih hitam dari hitam dalam rentang 1–15, dan nilai putih dari putih dalam rentang 236–254. Ketika YCbCr yang diperluas digunakan, driver tidak boleh mengklip nilai luma ke rentang nominal 16–235.

Jika perangkat mendukung YCbCr yang diperluas, perangkat mengatur bendera kemampuan DXVAHD_DEVICE_CAPS_xvYCC di anggota DeviceCaps dari struktur DXVAHD_VPDEVCAPS . Jika tidak, perangkat mengabaikan nilai anggota YCbCr_xvYCC dan memperlakukan semua output YCbCr sebagai YCbCr konvensional. Untuk mendapatkan kemampuan perangkat, panggil IDXVAHD_Device::GetVideoProcessorDeviceCaps.

Jika format output adalah format RGB gamut lebar, output mungkin berada di luar rentang nominal [0...1] sRGB. Ini terutama berlaku jika satu atau beberapa aliran input menggunakan YCbCr yang diperluas.

Contoh

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;
}

Persyaratan

   
Klien minimum yang didukung Windows 7 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 R2 [hanya aplikasi desktop]
Header dxvahd.h

Lihat juga

DXVA-HD

DXVAHD_BLT_STATE

Struktur Video Direct3D

IDXVAHD_VideoProcessor::SetVideoProcessBltState

Struktur Media Foundation