Partager via


D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC structure (d3d12video.h)

Décrit un contrôle d’image d’encodeur vidéo.

Syntaxe

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;

Membres

IntraRefreshFrameIndex

Lors de la demande d’une vague intra-actualisation pour les trames IntraRefreshFramesDuration en spécifiant l’indicateur D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_REQUEST_INTRA_REFRESH , cette valeur indique, pour l’image actuelle, l’index de l’image dans la vague intra-actualisation. La plage de valeurs est définie par l’hôte entre 0 et IntraRefreshFramesDuration pour indiquer au pilote la status de la session intra-actualisation.

Flags

Combinaison or au niveau du bit de valeurs de l’énumération D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS spécifiant les indicateurs de descripteur de contrôle d’image.

PictureControlCodecData

Structure D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA contenant des données de contrôle d’image spécifiques au codec. Selon le mode de contrôle de débit sélectionné, les valeurs QP sont interprétées différemment.

ReferenceFrames

Structure D3D12_VIDEO_ENCODE_REFERENCE_FRAMES contenant les images reconstruites à partir des sorties des opérations d’encodage passées.

Remarques

Les remarques suivantes fournissent des conseils pour la gestion des trames.

L’hôte appelle EncodeFrame dans l’ordre d’encodage en fonction de la séquence périodique de type d’image configurée dans la structure GOP du codec après avoir effectué la réorganisation de L’image B-frame par POC si nécessaire. Différents codecs utiliseront leurs propres méthodes pour indexer cette structure et conserver leurs métadonnées d’état. Reportez-vous aux paramètres d’image de codec également passés dans l’opération EncodeFrame qui contiennent ces détails.

D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS spécifie l’exigence de tableaux de textures pour les champs ppTexture2Ds et pSubresources de la structure D3D12_VIDEO_ENCODE_REFERENCE_FRAMES .

La sortie de l’opération d’encodage pour un cadre donné doit également retourner l’image reconstruite si elle est marquée comme étant utilisée comme référence pour l’utilisation future dans les images suivantes, le client transmet les images reconstruites dans les commandes EncodeFrame futures.

Si vous codez des couches temporelles, une image peut uniquement utiliser comme référence des images sur temporalLayerIndex inférieur à la sienne. Les index de couche temporelle sont spécifiés dans la structure de contrôle d’image et dans les descripteurs d’image de référence.

Les limitations HW pour le nombre d’images de référence sont exprimées en termes de nombre maximal d’éléments présents dans les listes L0 (MaxL0ReferencesForP/MaxL0ReferencesForB) et L1 (MaxL1ReferencesForB) et en limitant par MaxDPBCapacity le nombre maximal d’index uniques dans (L0 union L1) qui correspondent à la valeur de pReferenceFramesReconPictureDescriptors fournie dans D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA.

Il n’existe aucune limitation au nombre d’entrées DPB passées dans pReferenceFramesReconPictureDescriptors, mais au nombre d’entrées sur ce tableau étant des références par les listes L0 et L1. Cela permet à l’utilisateur de suivre l’état d’un DPB dans pReferenceFramesReconPictureDescriptors dans les restrictions définies par les limitations standard du codec et d’utiliser uniquement un sous-ensemble limité par les limitations matérielles lors de l’appel d’EncodeFrame. Par exemple, pour l’encodage HEVC, l’appelant peut effectuer le suivi des 15 dernières images encodées dans pReferenceFramesReconPictureDescriptors , mais utiliser uniquement un sous-ensemble des images qui relèvent des restrictions matérielles, en affectant un nombre limité d’index uniques dans les listes L0 et L1.

Notez qu’une demande de frame IDR agit comme un obstacle entre les références de trame et la mémoire tampon DPB, et que son état doit peut-être être vidé en conséquence par l’hôte.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Build 22000
Serveur minimal pris en charge Windows Build 22000
En-tête d3d12video.h