Pour désentlacer la vidéo
[La fonctionnalité associée à cette page, le Kit de développement logiciel (SDK) Windows Media Format 11, est une fonctionnalité héritée. Il a été remplacé par lecteur source et enregistreur récepteur. Le lecteur source et l’enregistreur récepteur ont été optimisés pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise le lecteur source et l’enregistreur récepteur au lieu du Kit de développement logiciel (SDK) Windows Media Format 11, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]
Certaines sources de vidéo, telles que les cartes de capture vidéo, fournissent des données vidéo pour un affichage entrelacé. Chaque image de vidéo entrelacée est composée de deux champs. Le champ supérieur contient la première ligne de la vidéo et toutes les autres lignes suivantes. Le champ inférieur contient la deuxième ligne de la vidéo et toutes les autres lignes ultérieures. Par conséquent, un champ contient toutes les lignes paires numérotées et l’autre contient toutes les lignes impaires numérotées. Les champs qui composent une image représentent des heures de présentation légèrement différentes, de sorte que, lorsqu’ils sont entrelacés, ils ne forment pas une image statique.
Lorsque vous souhaitez afficher une vidéo sur un moniteur d’ordinateur, chaque image de la vidéo doit être affichée sous la forme d’une seule image (cette méthode d’affichage de la vidéo une image entière à la fois est appelée vidéo progressive ).) Si vous affichez progressivement la vidéo entrelacée, les images peuvent ne pas apparaître correctement, en raison de la différence de temps entre les deux champs. Le codec Vidéo Windows Media et le codec Profil avancé de vidéo Windows Media prennent tous deux en charge une fonctionnalité de prétraitement qui convertit le contenu entrelacé en images progressives.
Pour que le codec désinterlace la vidéo d’entrée, appelez la méthode IWMWriterAdvanced2::SetInputSetting . Le paramètre à utiliser est g_wszDeinterlaceMode. Définissez le mode de désentlacement sur l’une des valeurs suivantes.
Valeur | Description |
---|---|
WM_DM_NOTINTERLACED | L’entrée est progressive. Utilisez ce paramètre pour arrêter le désentlacement lorsque vous avez précédemment défini le mode de désentlacement sur une autre valeur. |
WM_DM_DEINTERLACE_NORMAL | Sélectionnez ce mode pour mélanger les champs pairs et impairs d’un cadre entrelacé (à l’aide d’un mécanisme de compensation de mouvement). Avantages:
|
WM_DM_DEINTERLACE_HALFSIZE | Sélectionnez ce mode lorsque la résolution de sortie est inférieure ou égal à la moitié de la résolution d’entrée. Par exemple, utilisez ce mode lorsque la résolution vidéo d’entrée est de 640 x 480 pixels et que la résolution vidéo de sortie est de 320 x 240 pixels. Avantages:
|
WM_DM_DEINTERLACE_HALFSIZEDOUBLERATE | Sélectionnez ce mode lorsque la résolution de sortie est inférieure ou égal à la moitié de la résolution d’entrée et que la fréquence d’images de sortie est deux fois plus élevée. Par exemple, utilisez ce mode lorsque la résolution vidéo d’entrée est de 640 x 480 pixels à 30 images entrelacées/s et que la résolution vidéo de sortie est de 320 x 240 pixels à 60 images/s. Avantages:
|
WM_DM_DEINTERLACE_INVERSETELECINE | Sélectionnez ce mode pour convertir une vidéo de 30 images/s télécinée en 24 images/s du film d’origine. Avantages:
|
WM_DM_DEINTERLACE_VERTICALHALFSIZEDOUBLERATE | Sélectionnez ce mode lorsque la résolution de sortie verticale est inférieure ou égal à la moitié de la résolution verticale d’entrée et que la fréquence d’images de sortie est deux fois plus élevée. Par exemple, la résolution vidéo verticale d’entrée est de 640 x 480 pixels à 30 images entrelacées/s et la résolution vidéo verticale de sortie est de 320 x 240 pixels à 60 images/s. Avantages:
|
Pour le contenu mixte, définissez le mode de désentlacement en fonction des besoins avant de transmettre des exemples d’un nouveau type. Par exemple, pour commencer l’encodage avec une entrée progressive, vous n’avez pas besoin de définir un mode de désentlacement. Si certains exemples nécessitent un désentlacement normal, vous devez définir le mode de désentlacement sur WM_DM_DEINTERLACE_NORMAL. Pour traiter ensuite des exemples progressifs supplémentaires, vous devez définir le mode de désentlacement sur WM_DM_NOTINTERLACED.
Paramètres de téléciné inverse
Pour obtenir une description de la télécine inverse, consultez To Use Inverse Telecine.
Si vous définissez le mode de désinterlacation sur WM_DM_DEINTERLACE_INVERSETELECINE, vous pouvez spécifier le modèle de télécine de la première image d’entrée en appelant IWMWriterAdvanced2::SetInputSetting. Le paramètre à utiliser est g_wszInitialPatternForInverseTelecine. Définissez le modèle initial sur l’une des valeurs suivantes.
Valeur | Description |
---|---|
WM_DM_IT_DISABLE_COHERENT_MODE | Spécifie que le média d’entrée a passé par le processus de télécine, mais que les images ne sont plus dans un modèle prévisible. Cela indique généralement que le média a été modifié après le traitement de la télécine. Lorsque vous utilisez ce paramètre, le codec tente de reconstruire les images d’origine par lui-même. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_TOP | Spécifie que le champ supérieur de l’image AA est le premier exemple. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_TOP | Spécifie que le champ supérieur de l’image BB est le premier exemple. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_TOP | Spécifie que le champ supérieur de l’image BC est le premier exemple. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_TOP | Spécifie que le champ supérieur de l’image CD est le premier exemple. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_TOP | Spécifie que le champ supérieur de l’image DD est le premier exemple. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_BOTTOM | Spécifie que le champ inférieur de l’image AA est le premier exemple. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_BOTTOM | Spécifie que le champ inférieur de l’image BB est le premier exemple. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_BOTTOM | Spécifie que le champ inférieur de l’image BC est le premier exemple. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_BOTTOM | Spécifie que le champ inférieur de l’image CD est le premier exemple. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_BOTTOM | Spécifie que le champ inférieur de l’image DD est le premier exemple. |