D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC struttura (d3d12video.h)
Rappresenta i parametri per l'input dell'operazione di codifica video a livello di sequenza.
Sintassi
typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC {
D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS Flags;
D3D12_VIDEO_ENCODER_INTRA_REFRESH IntraRefreshConfig;
D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl;
D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution;
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SelectedLayoutMode;
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA FrameSubregionsLayoutData;
D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence;
} D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC;
Members
Flags
Combinazione OR bit per bit dei valori dell'enumerazione D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS specificando i flag del descrittore di controllo sequenza per l'operazione corrente.
IntraRefreshConfig
Struttura D3D12_VIDEO_ENCODER_INTRA_REFRESH che specifica i parametri per la modalità di aggiornamento intra-aggiornamento che deve essere usata durante l'attivazione di sessioni di aggiornamento intra-aggiornamento.
L'uso di fotogrammi di riferimento bidirezionali (B Frame) si escludono a vicenda con l'intra-refresh. I chiamanti devono verificare che la struttura GOP non contenga fotogrammi B se le modalità di aggiornamento intra-aggiornamento sono attive. Quando si esegue una query per D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT con una modalità di aggiornamento intra-aggiornamento diversa da D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE, il set di D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE specificato non deve contenere fotogrammi B o la query non restituirà alcun supporto.
L'utilizzo di inter-refresh infinito è possibile richiedendo periodicamente una nuova ondata di aggiornamento intra-refresh dopo il completamento di ognuno di essi.
Quando si avvia un aggiornamento intra-aggiornato di N frame di durata, gli host impostano il flag di controllo immagine corrispondente per avviare l'aggiornamento intra-refresh e controlla l'indice del frame tra [0.N) anche nella struttura di controllo immagine per invitare il driver sullo stato di avanzamento della sessione di aggiornamento intra.
Comportamento previsto quando si richiede esplicitamente un'onda di aggiornamento intra-aggiornamento con frame N di durata:
Se la richiesta di intra-aggiornamento avviene all'inizio di un GOP, gli ocurr intra refresh per N frame e un nuovo GOP viene avviato con un frame di I.
Se la richiesta di intra-aggiornamento avviene al centro di un GOP, il gruppo di immagini verrà terminato fino all'ultimo comando EncodeFrame inviato e riavviato dopo la sessione di aggiornamento intra-aggiornamento con un nuovo GOP a partire da un frame di I. Ad esempio, quando il GOP è IPPPP... IPPPP..., se l'inizio dell'aggiornamento interno viene richiesto all'invio parziale "IPP" del GOP, gli ultimi due fotogrammi P di tale GOP verranno ignorati, la sessione di intra-aggiornamento verrà rilasciata per i fotogrammi successivi N e quindi è previsto un nuovo frame chiave che riavvia la struttura GOP.
Per l'intra-aggiornamento basato su righe, la struttura GOP configurata dovrà essere riconfigurata in Infinite IPPP... P... GOP (GOPLength = 0u e PPicturePeriod = 1u) per la durata della sessione di aggiornamento intra. È quindi possibile riconfigurare nuovamente dopo il completamento dell'onda ir.
Per l'aggiornamento intra-aggiornamento basato su righe, la modalità di partizionamento della sottoregion configurata verrà riconfigurata in modo da corrispondere alla partizionamento delle sezioni uniformi per ogni fotogramma per una durata dei comandi Di codifica N. Ciò è particolarmente importante per quando il partizionamento della sottoregion è impostato su una modalità incompatibile con i requisiti di integrazione, ad esempio quando la riga di unità inter coded in una sezione interromperà la limitazione impostata su byte per sezione. L'aspettativa per l'aggiornamento interno basato su righe è che il frame risultante contiene sezioni N, tutte le sezioni P, ad eccezione della sezione di riga di aggiornamento intra corrente, che deve essere una sezione di I.
RateControl
Struttura D3D12_VIDEO_ENCODER_RATE_CONTROL che specifica la configurazione del controllo della frequenza.
Controllare il supporto per la riconfigurazione dinamica del controllo della frequenza in D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_RECONFIGURATION_AVAILABLE. Se la riconfigurazione dinamica del controllo della frequenza è consentita, modificando RateControl, l'algoritmo di controllo della frequenza viene riavviato con la nuova configurazione a partire dall'esecuzione del codificaframe associato. In caso contrario, questa operazione deve essere impostata all'inizio della sessione di codifica e non è stata modificata dopo.
PictureTargetResolution
Struttura D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC che descrive la risoluzione da usare durante la codifica di questo frame.
Controllare il supporto per la riconfigurazione dinamica della risoluzione in D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RESOLUTION_RECONFIGURATION_AVAILABLE. Se non viene fornito alcun supporto per questo, PictureTargetResolution indica la risoluzione di destinazione della sessione di codifica completa e non deve essere modificata durante la sessione di codifica. In caso contrario, indica la risoluzione usata per il comando EncodeFrame associato.
La destinazione deve essere impostata in base all'elenco di risoluzioni specificate durante la creazione dell'heap del codificatore associato per questa operazione.
Per alcuni codec, una modifica nella risoluzione al centro della sessione di codifica potrebbe richiedere la reimpostazione di un GOP con una potenziale richiesta di IDR/Key frame e potrebbe richiedere anche la reimpostazione degli algoritmi di gestione del buffer/frame DPB.
SelectedLayoutMode
Valore dell'enumerazione D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE che specifica quale modalità di layout viene usata e quindi quali membri dell'unione usare in pFrameSubregionsLayoutData.
Controllare il supporto per la riconfigurazione dinamica della sottoregion in [D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE]((ne-d3d12video-d3d12_video_encoder_support_flags.md). Se non viene fornito alcun supporto per questo, questa indica la modalità di sottoregion di destinazione della sessione di codifica completa e non deve essere modificata durante la sessione di codifica. In caso contrario, indica la modalità di partizionamento della sottoregion usata per il comando EncodeFrame associato.
FrameSubregionsLayoutData
Struttura D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA che specifica i dati specifici del codec facoltativo per le sottoregioni dell'immagine. Se il valore SelectedLayoutMode specificato indica che non sono presenti sottoregioni, è previsto null.
CodecGopSequence
Struttura D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE che specifica il GOP corrente usato nella sequenza video, nell'ordine di visualizzazione. Le chiamate a EncodeFrame devono seguire questo GOP, ma in ordine di codifica dopo la riordinazione di B-Frame.
Controllare il supporto per la riconfigurazione dinamica GOP in D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SEQUENCE_GOP_RECONFIGURATION_AVAILABLE. Se non viene fornito alcun supporto per questo, CodecGopSequence indica il modello GOP di destinazione (in ordine di visualizzazione) della sessione di codifica completa e non deve essere modificato durante la sessione di codifica. In caso contrario, indica la nuova modalità di sottoregion GOP usata a partire dal comando EncodeFrame associato.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Build 22000 |
Server minimo supportato | Windows Build 22000 |
Intestazione | d3d12video.h |