D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC-Struktur (d3d12video.h)
Beschreibt ein Videoencoder-Bildsteuerelement.
Syntax
typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC {
UINT IntraRefreshFrameIndex;
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS Flags;
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA PictureControlCodecData;
D3D12_VIDEO_ENCODE_REFERENCE_FRAMES ReferenceFrames;
} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC;
Member
IntraRefreshFrameIndex
Beim Anfordern einer Aktualisierungswelle für IntraRefreshFramesDuration-Frames durch Angabe des D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_REQUEST_INTRA_REFRESH Flags gibt dieser Wert für das aktuelle Bild den Index des Frames in der Intra-Refresh-Welle an. Der Wertbereich wird vom Host zwischen 0 und IntraRefreshFramesDuration festgelegt, um dem Treiber die status der aktualisierungsinternen Sitzung anzuzeigen.
Flags
Eine bitweise OR-Kombination von Werten aus der D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS Enumeration, die die Deskriptorflags des Bildsteuerelements angibt.
PictureControlCodecData
Eine D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA Struktur, die Codec-spezifische Bildsteuerungsdaten enthält. Je nach ausgewähltem Tarifsteuerungsmodus werden die QP-Werte unterschiedlich interpretiert.
ReferenceFrames
Eine D3D12_VIDEO_ENCODE_REFERENCE_FRAMES Struktur, die die rekonstruierten Bilder aus den ausgaben der vergangenen Codierungsvorgänge enthält.
Hinweise
Die folgenden Hinweise enthalten Anleitungen für die Frameverwaltung.
Der Host ruft EncodeFrame in Codierungsreihenfolge auf, basierend auf der periodischen Sequenz des Bildtyps, die in der Codec-GOP-Struktur konfiguriert ist, nachdem er bei Bedarf die B-Frame-Neuanordnung durch POC durchgeführt hat. Verschiedene Codecs verwenden ihre eigenen Möglichkeiten, diese Struktur zu indizieren und ihre Zustandsmetadaten beizubehalten. Weitere Informationen finden Sie in den Codec-Bildparametern, die ebenfalls im EncodeFrame-Vorgang übergeben werden, die solche Details enthalten.
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS gibt die Anforderung von Texturarrays für die Felder ppTexture2Ds und pSubresources der D3D12_VIDEO_ENCODE_REFERENCE_FRAMES-Struktur an.
Die Ausgabe des Codierungsvorgangs für einen bestimmten Frame muss auch das rekonstruierte Bild zurückgeben, wenn als als Referenz für die zukünftige Verwendung in nächsten Frames gekennzeichnet ist. Der Client übergibt die rekonstruierten Bilder in zukünftigen EncodeFrame-Befehlen .
Beim Codieren von temporalen Ebenen kann ein Bild nur als Verweisbilder auf niedrigeren TemporalLayerIndex als eigenes verwendet werden. Die temporalen Ebenenindizes werden in der Bildsteuerungsstruktur und in den Referenzbilddeskriptoren angegeben.
Die HW-Einschränkungen für die Anzahl der Referenzbilder werden in Bezug auf die maximale Anzahl von Elementen ausgedrückt, die in L0 (MaxL0ReferencesForP/MaxL0ReferencesForB) und L1 (MaxL1ReferencesFor) vorhanden sind. B) listet die maximale Anzahl eindeutiger Indizes in (L0 union L1) auf, die dem Wert von pReferenceFramesReconPictureDescriptors zugeordnet werden, die in D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA bereitgestellt werden.
Es gibt keine Einschränkung für die Anzahl der DPB-Einträge, die in pReferenceFramesReconPictureDescriptors übergeben werden, sondern stattdessen in der Anzahl der Einträge in diesem Array, auf die von den Listen L0 und L1 verwiesen wird. Auf diese Weise kann der Benutzer den Zustand eines DPB in pReferenceFramesReconPictureDescriptors innerhalb der Einschränkungen verfolgen, die durch die Codec-Standardeinschränkungen definiert sind, und beim Aufrufen von EncodeFrame nur eine Teilmenge verwenden, die durch die Hardwareeinschränkungen eingeschränkt ist. Für die HEVC-Codierung könnte der Aufrufer beispielsweise die neuesten 15 codierten Bilder in pReferenceFramesReconPictureDescriptors nachverfolgen , aber nur eine Teilmenge der Bilder verwenden, die unter die Hardwareeinschränkungen fallen, indem er eine begrenzte Anzahl eindeutiger Indizes in den L0- und L1-Listen zuweist.
Beachten Sie, dass eine Anforderung für einen IDR-Frame als Barriere zwischen Frameverweise und dem DPB-Puffer fungiert und sein Zustand möglicherweise vom Host entsprechend geleert werden muss.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Build 22000 |
Unterstützte Mindestversion (Server) | Windows Build 22000 |
Kopfzeile | d3d12video.h |