structure D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION_0082_0 (d3d12umddi.h)
La structure D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION_0082_0 décrit les modifications apportées aux images de référence en tant qu’opérations de mémoire en tant que tuple d’un identificateur d’opération et les paramètres associés nécessaires à l’opération.
Syntaxe
typedef struct D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION_0082_0 {
UCHAR memory_management_control_operation;
UINT difference_of_pic_nums_minus1;
UINT long_term_pic_num;
UINT long_term_frame_idx;
UINT max_long_term_frame_idx_plus1;
} D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION_0082_0;
Membres
memory_management_control_operation
Opération de contrôle à appliquer pour affecter l’état de marquage de l’image de référence. Les valeurs d’opération valides suivent.
Valeur | Description |
---|---|
0 | Terminer memory_management_control_operation boucle d’élément de syntaxe. |
1 | Marquez une image de référence à court terme comme « inutilisée pour référence ». |
2 | Marquez une image de référence à long terme comme « inutilisée pour référence ». |
3 | Marquez une image de référence à court terme comme « utilisée pour la référence à long terme » et affectez-lui un index de trame à long terme. |
4 | Spécifiez l’index d’image à long terme maximal et marquez toutes les images de référence à long terme dont les index de trame à long terme sont supérieurs à la valeur maximale comme « inutilisées pour référence ». |
5 | Marquez toutes les images de référence comme « inutilisées pour référence » et définissez la variable MaxLongTermFrameIdx sur « aucun index de trame à long terme ». |
6 | Marquez l’image actuelle comme « utilisée pour la référence à long terme » et affectez-lui un index de trame à long terme. |
difference_of_pic_nums_minus1
Ce membre est utilisé avec memory_management_control_operation égal à 3 ou 1 pour affecter un index de trame à long terme à une image de référence à court terme ou pour marquer une image de référence à court terme comme « inutilisée pour référence ». Lorsque le memory_management_control_operation associé est traité par le processus de décodage, le numéro d’image obtenu dérivé de difference_of_pic_nums_minus1 doit être un numéro d’image attribué à l’une des images de référence marquées comme « utilisées pour référence » et non affectées précédemment à un index de trame à long terme.
long_term_pic_num
Ce membre est utilisé avec memory_management_control_operation égal à 2 pour marquer une image de référence à long terme comme « inutilisée pour référence ». Lorsque le memory_management_control_operation associé est traité par le processus de décodage, long_term_pic_num doit être égal à un numéro d’image à long terme attribué à l’une des images de référence qui est actuellement marquée comme « utilisée pour la référence à long terme ».
long_term_frame_idx
Ce membre est utilisé avec memory_management_control_operation égal à 3 ou 6 pour affecter un index d’image à long terme à une image. Lorsque le memory_management_control_operation associé est traité par le processus de décodage, la valeur de long_term_frame_idx doit être comprise entre 0 et MaxLongTermFrameIdx, inclus.
max_long_term_frame_idx_plus1
La valeur moins 1 spécifie la valeur maximale de l’index de trame à long terme autorisée pour les images de référence à long terme (jusqu’à la réception d’une autre valeur de max_long_term_frame_idx_plus1). La valeur de max_long_term_frame_idx_plus1 doit être comprise entre 0 et max_num_ref_frames inclus.
Remarques
La variable MaxLongTermFrameIdx est dérivée comme suit :
- Si max_long_term_frame_idx_plus1 est égal à 0, MaxLongTermFrameIdx est défini sur « aucun index de trame à long terme ».
- Si max_long_term_frame_idx_plus1 est supérieur à 0, MaxLongTermFrameIdx est défini sur max_long_term_frame_idx_plus1 − 1.
L’opération de marquage de l’image actuelle en tant que référence à court terme est donnée par un indicateur présent dans la structure D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS_0080 avec ses valeurs PictureOrderCountNumber et FrameDecodingOrderNumber correspondantes indiquées dans la structure de contrôle d’image associée.
La variable max_num_ref_frames est indiquée par la capacité maximale de mémoire tampon d’images décodées (DPB) signalée.
Notez que pour marquer une image d’actualisation instantanée du décodeur (IDR) comme référence à long terme, le mécanisme explicite proposé consiste d’abord à la marquer comme référence à court terme, en définissant d’abord D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_0080_USED_AS_REFERENCE_PICTURE lors de l’appel de EncodeFrame pour le frame IDR, puis en la faisant passer pour un cadre de référence à long terme à l’aide de l’opération de gestion de la mémoire « 3 » pour marquer une image de référence à court terme comme « utilisée pour la référence à long terme » et affecter une image de référence à long terme index de trame à long terme pour celui-ci.
Sinon, si vous encodez un frame IDR et définissez adaptive_ref_pic_marking_mode_flag = 1, le pilote suppose que le client tente de définir l’en-tête de tranche H264 long_term_reference_flag et le fait dans le flux de bits de sortie pour l’appel EncodeFrame .
Pour plus d’informations sur le processus de marquage d’image, consultez la spécification H.264, section 8.2.5.4 « Processus de marquage d’image de référence décodé par contrôle de mémoire adaptatif ».
Pour plus d’informations générales, consultez Encodage vidéo D3D12 .
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_PICTURE_CONTROL_CODEC_DATA_H264_0082_0
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour