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 |
---|---|
|
Pemutaran. |
|
Pemrosesan video. |
RGB_Range
Menentukan rentang warna RGB. Nilai status default adalah 0 (rentang penuh).
Nilai | Makna |
---|---|
|
Rentang penuh (0-255). |
|
Rentang terbatas (16-235). |
YCbCr_Matrix
Menentukan matriks transfer YCbCr. Nilai status default adalah 0 (BT.601).
Nilai | Makna |
---|---|
|
ITU-R BT.601. |
|
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 |
---|---|
|
YCbCr Konvensional. |
|
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk