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 encodée actuelle.
IntraRefreshConfig
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 d’intra-frais, consultez les 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, un RateControl entraîne le redémarrage de l’algorithme de contrôle de débit, avec la nouvelle configuration à partir de l’exécution de la commande EncodeFrameassociée.
- S’il n’est pas pris en charge, RateControl doit être défini au début de la session d’encodage et non 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ée lorsque le tas d’encodeur associé pour cette opération a été créé.
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 elle est prise en charge, PictureTargetResolution indique la résolution à utiliser pour la commande EncodeFrameassocié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 P GOP avec une demande d’IDR/de trame de clé forcée potentielle, en réinitialisant également la mémoire tampon d’image décodée (DPB) et les algorithmes de gestion des images.
- Si elle n’est pas prise en charge, PictureTargetResolution indique la résolution cible de l’intégralité de la session d’encodage et ne doit pas être modifiée 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 de la sous-région est prise en charge :
- Si elle est prise en charge, SelectedLayoutMode indique le mode de partitionnement sous-région utilisé pour la commande EncodeFrameassociée.
- S’il n’est pas pris en charge, *SelectedLayoutMode indique le mode sous-région cible de la session d’encodage complète et ne doit pas être modifié pendant la session d’encodage.
FrameSubregionsLayoutData
Structure D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_0080_2 qui contient des données facultatives spécifiques aux codecs de disposition d’images. Si SelectedLayoutMode indique qu’il n’existe aucune sous-région, ce membre doit avoir la valeur NULL.
CodecGopSequence
Structure D3D12DDI_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_0082_0 qui spécifie le 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 de 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 :
- Si elle est prise en charge, CodecGopSequence indique le nouveau mode de sous-région 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
Consultez d’encodage vidéo D3D12 pour obtenir des informations générales.
Utilisation de l’actualisation intra-actualisation
L’utilisation de trames de référence bidirectionnelles (B Frames) s’exclue mutuellement avec l’actualisation intra-actualisation. L’appelant doit vérifier que CodecGopSequence's structure ne contient pas de trames B si les modes intra-actualisation sont actifs. Lors de l’interrogation de D3D12DDICAPS_VIDEO_ENCODER_SUPPORT_DATA avec un mode d’actualisation intra-actualisation autre que D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE, le CodecGopSequence set ne doit pas contenir de trames B, ou 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’actualisation intra-actualisation une fois que chacun des intra-actualisations se termine.
Lors du démarrage d’une actualisation intra-actualisation des images N de durée, l’hôte effectue les opérations suivantes :
- Définit l’indicateur de contrôle d’image correspondant pour démarrer intra-actualisation ;
- Contrôle l’index d’image entre [0..N) dans la structure de contrôle image pour indiquer au pilote la progression de la session d’actualisation intra.
Comportement attendu lors de la demande explicite d’une vague d’actualisation intra-actualisation avec la durée N images suivantes :
Si la demande d’actualisation intra-actualisation se produit au début d’un GOP, l’actualisation intra-actualisation se produit pour les images N, puis un nouveau GOP est démarré avec une image I.
Si la demande d’actualisation intra-actualisation se produit au milieu d’un GOP, le groupe d’images se termine jusqu’à ce que la dernière commande encodée EncodeFrame et redémarrée après la session intra-actualisation avec un nouveau GOP commençant par une image I. Par exemple, lorsque le PIP est IPPPP... IPPPP..., si le démarrage intra-actualisation est demandé à l’envoi partiel « IPP » du GOP, les deux dernières images P de ce GOP seront ignorées, la session intra-actualisation sera émise pour les images N suivantes, puis une nouvelle trame clé qui redémarre la structure GOP est attendue.
Pour l’actualisation 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é une fois la vague intra-actualisation terminée.
Le mode de partitionnement de sous-région configuré est reconfiguré pour correspondre à N segments uniformes partitionnement par trame pendant une durée de N commandes EncodeFrame. Cela est particulièrement important lorsque le partitionnement sous-région est défini sur un mode incompatible avec les exigences d’actualisation intra-actualisation, par exemple lorsque la ligne d’unités intra codées dans une tranche perturbera la limitation définie sur les octets par tranche. L’attente pour l’actualisation intra-actualisation basée sur les lignes est que le cadre résultant contient des tranches N, toutes les tranches P, à l’exception de la tranche de ligne intra-actualisation actuelle, qui doit être une tranche I.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 11 (WDDM 3.0) |
d’en-tête | d3d12umddi.h |
Voir aussi
D3D12DDI_VIDEO_ENCODER_ENCODEFRAME_INPUT_STREAM_ARGUMENTS_0082_0
D3D12DDI_VIDEO_ENCODER_SUPPORT_FLAGS_0083_0