D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_DESC_0082_0 Struktur (d3d12umddi.h)

Die D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_DESC_0082_0-Struktur enthält die Parameter auf Bildebene für die Eingabe eines Codierungsvorgangs.

Syntax

typedef struct D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_DESC_0082_0 {
  UINT                                                     IntraRefreshFrameIndex;
  D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS_0080        Flags;
  D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_0082_0 PictureControlCodecData;
  D3D12DDI_VIDEO_ENCODE_REFERENCE_FRAMES_0080              ReferenceFrames;
} D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_DESC_0082_0;

Member

IntraRefreshFrameIndex

Beim Anfordern einer Aktualisierungswelle für IntraRefreshFramesDuration-Frames durch Angabe des D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_0080_REQUEST_INTRA_REFRESH Flags gibt dieser Wert für das aktuelle Bild den Index des Frames in der Aktualisierungswelle an. Der Wertbereich wird vom Host so festgelegt, dass er zwischen [0-IntraRefreshFramesDuration) liegt, um dem Treiber die status der Intra-Refresh-Sitzung anzuzeigen.

Flags

Ein D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS_0080 Wert, der die Bildsteuerelementdeskriptorflags für den aktuellen Codierungsframevorgang angibt.

PictureControlCodecData

Eine D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_0082_0-Struktur , die Bildsteuerungscodec-spezifische Daten enthält. Abhängig vom ausgewählten Ratensteuerungsmodus werden die Quantisierungsparameterwerte (QP) unterschiedlich interpretiert.

ReferenceFrames

Eine D3D12DDI_VIDEO_ENCODE_REFERENCE_FRAMES_0080-Struktur , die die rekonstruierten Bilder aus den ausgaben der vergangenen Codierungsvorgänge enthält.

Hinweise

Allgemeine Informationen finden Sie unter D3D12-Videocodierung .

Die folgenden Hinweise enthalten Anleitungen für die Frameverwaltung.

Der Host ruft EncodeFrame in Codierungsreihenfolge basierend auf der periodischen Bildtypsequenz auf, die in der GoP-Struktur (Codec Group of Pictures) konfiguriert ist, nachdem er bei Bedarf die B-Frame-Neuanordnung durch POC durchgeführt hat.

Verschiedene Codecs können ihre eigenen Möglichkeiten verwenden, 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.

D3D12DDI_VIDEO_ENCODER_SUPPORT_FLAG_0082_0_RECONSTRUCTED_FRAMES_REQUIRE_CONTIGUOUS_TEXTURE_ARRAYS gibt die Anforderung von Texturarrays für die Felder hDrvTexture2Ds und pSubresources der D3D12DDI_VIDEO_ENCODE_REFERENCE_FRAMES_0080-Struktur an.

Die Ausgabe des Codierungsvorgangs für einen bestimmten Frame muss auch das rekonstruierte Bild zurückgeben, wenn es als Verweis in nächsten Frames verwendet wird. Der Client übergibt die rekonstruierten Bilder in zukünftigen EncodeFrame-Befehlen .

Beim Codieren von temporalen Ebenen kann ein Bild nur als Referenzbild auf TemporalLayerIndex-Ebenen verwendet werden, die kleiner als die eigene Ebenenzahl sind. Die temporalen Ebenenindizes werden in der Bildsteuerungsstruktur und in den Referenzbilddeskriptoren angegeben.

Die Hardwarebeschränkungen für die Anzahl der Referenzbilder werden in Bezug auf die maximale Anzahl von Elementen ausgedrückt, die in den Listen L0 (MaxL0ReferencesForP/MaxL0ReferencesForB) und L1 (MaxL1ReferencesForB) vorhanden sind. und begrenzt durch MaxDPBCapacity die maximale Anzahl eindeutiger Indizes in (L0 union L1), die dem Wert von pReferenceFramesReconPictureDescriptors zugeordnet werden, die in D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_0082_0 bereitgestellt werden.

In pReferenceFramesReconPictureDescriptors gibt es keine Einschränkung für die Anzahl der DPB-Einträge (Decoded Picture Buffer), sondern stattdessen bei 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 (Instantaneous Decoder Refresh) 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 11 (WDDM 3.0)
Kopfzeile d3d12umddi.h

Weitere Informationen

D3D12DDI_VIDEO_ENCODER_ENCODEFRAME_INPUT_STREAM_ARGUMENTS_0082_0

D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_0082_0

D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_MODE_0080

D3D12DDI_VIDEO_ENCODE_REFERENCE_FRAMES_0080

D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS_0082_0

D3D12DDI_VIDEO_ENCODER_SUPPORT_FLAGS_0083_0

PFND3D12DDI_VIDEO_ENCODE_FRAME_0082_0