Share via


enumerazione D3D12_VIDEO_DECODE_TIER (d3d12video.h)

Specifica il livello di decodifica di un decodificatore video hardware, che determina il formato richiesto di trame e buffer definiti dall'applicazione.

Sintassi

typedef enum D3D12_VIDEO_DECODE_TIER {
  D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED,
  D3D12_VIDEO_DECODE_TIER_1,
  D3D12_VIDEO_DECODE_TIER_2,
  D3D12_VIDEO_DECODE_TIER_3
} ;

Costanti

 
D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED
La decodifica video non è supportata.
D3D12_VIDEO_DECODE_TIER_1
Nel livello 1, il decodificatore hardware richiede che l'applicazione allochi trame di riferimento come matrice di trame. Ciò consente di soddisfare i requisiti hardware che le trame sono "vicine" nello spazio indirizzi perché l'hardware non supporta un puntatore a dimensioni complete per ogni singolo buffer di immagini. Ha invece un puntatore e un offset di bit più limitato. Per altre informazioni sulle matrici di trame, vedere Introduzione alle trame in Direct3D 11.

Se l'hardware del decodificatore richiede un layout di memoria univoco non supportato per le operazioni su altri motori o operazioni video diverse, il decodificatore può impostare il flag di configurazione D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED nella struttura di D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT quando viene eseguita una query per il supporto del profilo. Questo flag indica che l'applicazione deve allocare riferimenti con il flag D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY . L'applicazione deve usare la struttura D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS per impostare un output di sola riferimento se l'output è necessario come frame di riferimento futuro. Il frame di output passato a ID3D12VideoCommandList::D ecodeFrame è una risorsa D3D12 che può essere utilizzata da altre parti della pipeline e non deve avere il flag D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY.

Requisiti del livello 1 ### per i buffer di input compressi
- Tutte le sezioni per un determinato frame devono essere posizionate in ordine e devono essere contigue, ovvero non devono esserci spazi tra le sezioni. I buffer di controllo slice devono specificare i parametri offset e size che soddisfano questo requisito.
- La prima sezione deve iniziare su un limite di 128 byte. L'offset impostato nella struttura D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM deve essere un multiplo di 128 byte.
- La decodifica è supportata dai buffer allocati con D3D12_MEMORY_POOL_L0. Questa è sempre la memoria di sistema, ma comunque un buffer D3D12.
- La decodifica è supportata dai buffer allocati con D3D12_MEMORY_POOL_L1, il pool predefinito, inclusi quelli allocati con D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE.
D3D12_VIDEO_DECODE_TIER_2
Nel livello di decodifica 2, è possibile fare riferimento alle trame come matrice di trame o come matrice di risorse 2D di trama separate (ogni risorsa con dimensioni di matrice pari a 1). Questo è più flessibile per il chiamante ed è importante negli scenari in cui la risoluzione cambia frequentemente, ad esempio nel video in streaming, perché una matrice di trame può essere allocata e deallocata solo come singola unità, ma le risorse 2D della trama separate possono essere allocate e deallocate singolarmente.

Se l'hardware di decodifica richiede un formato univoco non supportato per le operazioni su altri motori o operazioni video diverse, il decodificatore può impostare il flag di configurazione D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED nella struttura D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT quando viene eseguita una query per il supporto del profilo. Questo flag indica che l'applicazione deve allocare riferimenti con il flag D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY . L'applicazione deve usare la struttura D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS per impostare un output di riferimento solo se l'output è necessario come frame di riferimento futuro. Il frame di output passato a ID3D12VideoCommandList::D ecodeFrame è una risorsa D3D12 che può essere utilizzata da altre parti della pipeline e non deve avere il flag D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY.

Requisiti del livello 2 ### per i buffer di input compressi

Questi requisiti sono identici ai requisiti di livello 1.

- Tutte le sezioni per un determinato frame devono essere posizionate in ordine e devono essere contigue, ovvero non devono esserci spazi tra le sezioni. I buffer di controllo slice devono specificare i parametri offset e size che soddisfano questo requisito.
- La prima sezione deve iniziare su un limite di 128 byte. L'offset impostato nella struttura D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM deve essere un multiplo di 128 byte.
- La decodifica è supportata dai buffer allocati con D3D12_MEMORY_POOL_L0. Questa è sempre la memoria di sistema, ma comunque un buffer D3D12.
- La decodifica è supportata dai buffer allocati con D3D12_MEMORY_POOL_L1, il pool predefinito, inclusi quelli allocati con D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE.
-
D3D12_VIDEO_DECODE_TIER_3
Questo campo è riservato.

Requisiti

Requisito Valore
Intestazione d3d12video.h