structure D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC_0082_0 (d3d12umddi.h)

La structure D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC_0082_0 contient les paramètres au niveau de la séquence pour l’entrée d’une opération d’encodage vidéo.

Syntaxe

typedef struct D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC_0082_0 {
  D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS_0082_0                 Flags;
  D3D12DDI_VIDEO_ENCODER_INTRA_REFRESH_0080                            IntraRefreshConfig;
  D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_0080_2                           RateControl;
  D3D12DDI_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC_0080                  PictureTargetResolution;
  D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_0080              SelectedLayoutMode;
  D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_0080_2 FrameSubregionsLayoutData;
  D3D12DDI_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_0082_0                 CodecGopSequence;
} D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC_0082_0;

Membres

Flags

Valeur D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS_0082_0 qui indique les indicateurs de descripteur de contrôle de séquence pour l’opération de trame d’encodage en cours.

IntraRefreshConfig

Une structure D3D12DDI_VIDEO_ENCODER_INTRA_REFRESH_0080 qui spécifie les paramètres du mode intra-actualisation qui doivent être utilisés lors du déclenchement de sessions intra-actualisation. Pour plus d’informations sur l’utilisation des produits intra-frais, consultez Remarques.

RateControl

Structure D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_0080_2 qui spécifie la configuration du contrôle de débit.

Vérifiez l’indicateur D3D12_VIDEO_ENCODER_SUPPORT_FLAG_0083_0_RATE_CONTROL_RECONFIGURATION_AVAILABLE pour déterminer si la reconfiguration dynamique du contrôle de débit est prise en charge :

  • Si elle est prise en charge, une modification de RateControl entraîne le redémarrage de l’algorithme de contrôle de débit, la nouvelle configuration commençant par l’exécution de la commande EncodeFrame associée.
  • S’il n’est pas pris en charge, RateControl doit être défini au début de la session d’encodage et ne pas être modifié pendant la session.

PictureTargetResolution

Structure D3D12DDI_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC_0080 qui décrit la résolution à utiliser lors de l’encodage de cette trame. La résolution cible doit être définie en fonction de la liste des résolutions spécifiées lors de la création du tas d’encodeur associé à cette opération.

Vérifiez l’indicateur D3D12_VIDEO_ENCODER_SUPPORT_FLAG_0083_0_RESOLUTION_RECONFIGURATION_AVAILABLE pour déterminer si la reconfiguration dynamique pour la résolution est prise en charge :

  • Si prise en charge, PictureTargetResolution indique la résolution à utiliser pour la commande EncodeFrame associée. Dans certains codecs, une modification de la résolution au milieu de la session d’encodage peut nécessiter la réinitialisation d’un goP avec une demande d’idr/d’image clé de force potentielle, tout en réinitialisant également la mémoire tampon d’image décodée (DPB) et les algorithmes de gestion des images.
  • S’il n’est pas pris en charge, PictureTargetResolution indique la résolution cible pour l’ensemble de la session d’encodage et ne doit pas être modifié pendant la session.

SelectedLayoutMode

Valeur D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_0080 qui indique le mode de disposition utilisé et, par conséquent, les membres de l’union à utiliser dans FrameSubregionsLayoutData.

Vérifiez l’indicateur D3D12_VIDEO_ENCODER_SUPPORT_FLAG_0083_0_SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE pour déterminer si la reconfiguration dynamique sous-régionale est prise en charge :

  • S’il est pris en charge, SelectedLayoutMode indique le mode de partitionnement sous-régional utilisé pour la commande EncodeFrame associée.
  • S’il n’est pas pris en charge, *SelectedLayoutMode indique le mode sous-régional cible de la session d’encodage complète et ne doit pas être modifié pendant la session d’encodage.

FrameSubregionsLayoutData

Structure de D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_0080_2 qui contient des données facultatives de disposition de sous-régions d’images spécifiques au codec. Si SelectedLayoutMode indique qu’il n’existe aucune sous-région, ce membre doit avoir la valeur NULL.

CodecGopSequence

Une structure D3D12DDI_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_0082_0 qui spécifie le fournisseur de services goP actuel utilisé dans la séquence vidéo, dans l’ordre d’affichage. Les appels à EncodeFrame doivent suivre ce goP, mais dans l’ordre séquentiel après la réorganisation des B-Frames.

Vérifiez l’indicateur D3D12_VIDEO_ENCODER_SUPPORT_FLAG__0083_0_SEQUENCE_GOP_RECONFIGURATION_AVAILABLE pour déterminer si la reconfiguration dynamique goP est prise en charge :

  • S’il est pris en charge, CodecGopSequence indique le nouveau mode sous-régional GOP utilisé à partir de la commande EncodeFrame associée.
  • S’il n’est pas pris en charge, CodecGopSequence indique le modèle GOP cible (dans l’ordre d’affichage) de la session d’encodage complète et ne doit pas être modifié pendant la session d’encodage.

Remarques

Pour plus d’informations générales, consultez Encodage vidéo D3D12 .

Utilisation de l’intra-actualisation

L’utilisation de cadres de référence bidirectionnels (B Frames) s’exclue mutuellement avec l’actualisation intra-actualisation. L’appelant doit case activée que la structure de CodecGopSequence ne contient pas d’images B si les modes intra-actualisation sont actifs. Lorsque vous interrogez D3D12DDICAPS_VIDEO_ENCODER_SUPPORT_DATA avec un mode d’actualisation autre que D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE, le jeu CodecGopSequence ne doit pas contenir d’images B, sinon la requête ne retourne aucune prise en charge.

L’utilisation de l’intra-actualisation infinie est possible en demandant régulièrement une nouvelle vague d’intra-actualisation après la fin de chaque intra-actualisation.

Lors du démarrage d’une actualisation intra de N frames de durée, l’hôte effectue les opérations suivantes :

  • Définit l’indicateur de contrôle d’image correspondant pour démarrer l’intra-actualisation ;
  • Contrôle l’index de trame entre [0..N) dans la structure de contrôle d’image pour indiquer au pilote la progression de la session d’actualisation intra.

Le comportement attendu lors de la demande explicite d’une vague intra-actualisation avec des images de durée N est le suivant :

  • Si la demande d’intra-actualisation se produit au début d’un goP, l’intra-actualisation se produit pour les images N, puis un nouveau goP est démarré avec une image I.

  • Si la demande d’intra-actualisation se produit au milieu d’un goP, le groupe d’images est terminé jusqu’à la dernière commande EncodeFrame envoyée et redémarré après la session intra-actualisation avec un nouveau goP commençant par une image I. Par exemple, lorsque le goP est IPPPP... IPPPP..., si le démarrage intra-actualisation est demandé lors de la soumission partielle « IPP » du goP, les deux dernières images P de ce goP seront ignorées, la session intra-actualisation sera émise pour les N images suivantes, puis une nouvelle image clé qui redémarre la structure GOP est attendue.

Pour l’intra-actualisation basée sur les lignes :

  • La structure goP configurée doit être reconfigurée en IPPP infini... P... GOP (GOPLength = 0u et PPicturePeriod = 1u) pendant la durée de la session intra-actualisation. Il peut ensuite être reconfiguré à nouveau une fois la vague intra-actualisation terminée.

  • Le mode de partitionnement sous-régional configuré sera reconfiguré pour correspondre à N tranches uniformes partitionnement par image pendant une durée de N commandes EncodeFrame . Cela est particulièrement important lorsque le partitionnement sous-régional est défini sur un mode incompatible avec les exigences intra-actualisation, par exemple lorsque la ligne d’unités intra-codées dans une tranche interrompt la limitation définie sur octets par tranche. L’attente pour l’intra-actualisation basée sur les lignes est que le cadre résultant contient N tranches, toutes les tranches P, à l’exception de la tranche de ligne intra-actualisation actuelle, qui doit être une tranche I.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 11 (WDDM 3.0)
En-tête d3d12umddi.h

Voir aussi

D3D12DDI_VIDEO_ENCODER_ENCODEFRAME_INPUT_STREAM_ARGUMENTS_0082_0

D3D12DDI_VIDEO_ENCODER_SUPPORT_FLAGS_0083_0

PFND3D12DDI_VIDEO_ENCODE_FRAME_0082_0

PFND3D12DDI_CREATEVIDEOENCODERHEAP_0080_2