Freigeben über


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