Partager via


Processeur vidéo MFT

Le processeur vidéo MFT est une transformation Microsoft Media Foundation (MFT) qui effectue une conversion d’espace de couleurs, un mappage de tonalité, un redimensionnement vidéo, une désinterlacation, une conversion de fréquence d’images, une rotation, un rognage, un déballage spatial gauche et droit de la vue, la mise en miroir, le traitement des effets du renderer et le mappage de sphère.

CLSID

CLSID_VideoProcessorMFT

Interfaces

Formats d’entrée

Les formats suivants sont pris en charge pour la valeur MF_MT_SUBTYPE du type de média défini via IMFTransform ::SetInputType

  • MFVideoFormat_ABGR32
  • MFVideoFormat_ARGB32
  • MFVideoFormat_AYUV
  • MFVideoFormat_I420
  • MFVideoFormat_I422
  • MFVideoFormat_I444
  • MFVideoFormat_IYUV
  • MFVideoFormat_NV11
  • MFVideoFormat_NV12
  • MFVideoFormat_RGB24
  • MFVideoFormat_RGB32
  • MFVideoFormat_RGB555
  • MFVideoFormat_RGB565
  • MFVideoFormat_RGB8
  • MFVideoFormat_UYVY
  • MFVideoFormat_v410
  • MFVideoFormat_Y216
  • MFVideoFormat_Y41P
  • MFVideoFormat_Y41T
  • MFVideoFormat_Y42T
  • MFVideoFormat_YUY2
  • MFVideoFormat_YV12
  • MFVideoFormat_YVYU
  • MFVideoFormat_P010
  • MFVideoFormat_P016
  • MFVideoFormat_A16B16G16R16F
  • MFVideoFormat_A2R10G10B10
  • MFVideoFormat_Y210
  • MFVideoFormat_Y410
  • MFVideoFormat_Y416
  • MFVideoFormat_L8
  • MFVideoFormat_L16
  • MFVideoFormat_D16

Formats de sortie

Les formats suivants sont pris en charge pour la valeur MF_MT_SUBTYPE du type de média défini via IMFTransform ::SetOutputType

  • MFVideoFormat_ARGB32
  • MFVideoFormat_AYUV
  • MFVideoFormat_I420
  • MFVideoFormat_I422
  • MFVideoFormat_I444
  • MFVideoFormat_IYUV
  • MFVideoFormat_NV12
  • MFVideoFormat_RGB24
  • MFVideoFormat_RGB32
  • MFVideoFormat_RGB555
  • MFVideoFormat_RGB565
  • MFVideoFormat_UYVY
  • MFVideoFormat_Y216
  • MFVideoFormat_YUY2
  • MFVideoFormat_YV12
  • MFVideoFormat_P010
  • MFVideoFormat_P016
  • MFVideoFormat_A16B16G16R16F
  • MFVideoFormat_A2R10G10B10
  • MFVideoFormat_Y210
  • MFVideoFormat_Y410
  • MFVideoFormat_Y416

Toutes les combinaisons de formats d’entrée et de sortie ne sont pas prises en charge. Pour tester si une conversion est prise en charge, définissez le type d’entrée, puis appelez IMFTransform ::GetOutputAvailableType.

Pour plus d’informations sur ces formats, consultez les GUID de sous-types vidéo.

Transformations d’espace de couleur

Les attributs suivants peuvent être définis sur les types d’entrée ou de sortie pour modifier l’espace de couleur du contenu :

  • MF_MT_VIDEO_PRIMARIES
  • MF_MT_TRANSFER_FUNCTION
  • MF_MT_YUV_MATRIX
  • MF_MT_VIDEO_CHROMA_SITING
  • MF_MT_VIDEO_NOMINAL_RANGE
  • MF_MT_MAX_MASTERING_LUMINANCE
  • MF_MT_MAX_LUMINANCE_LEVEL
  • MF_MT_CUSTOM_VIDEO_PRIMARIES
  • MF_MT_PALETTE

Transformations d’image

Les attributs suivants peuvent être définis sur les types d’entrée ou de sortie pour effectuer des transformations spatiales sur la vidéo :

  • MF_MT_PIXEL_ASPECT_RATIO
  • MF_MT_VIDEO_ROTATION
  • MF_MT_PAN_SCAN_APERTURE
  • MF_MT_GEOMETRIC_APERTURE
  • MF_MT_MINIMUM_DISPLAY_APERTURE
  • MF_MT_VIDEO_3D
  • MF_MT_VIDEO_3D_FORMAT

Transformations de fréquence d’images

Les attributs suivants peuvent être définis sur les types d’entrée ou de sortie pour effectuer des transformations temporelles sur la vidéo :

  • MF_MT_INTERLACE_MODE
  • MF_MT_FRAME_RATE

Notez que si MF_XVP_DISABLE_FRC a la valeur TRUE, la conversion de la fréquence d’images est désactivée, mais la désinterlacation est toujours effectuée.

Transformer des attributs

Les attributs suivants peuvent être définis sur la transformation à l’aide de IMFTransform ::GetAttributes :

  • MF_XVP_DISABLE_FRC
  • MF_XVP_CALLER_ALLOCATES_OUTPUT
  • MF_LOW_LATENCY
  • MF_XVP_SAMPLE_LOCK_TIMEOUT
  • MF_ENABLE_3DVIDEO_OUTPUT
  • MF_VIDEO_PROCESSOR_ALGORITHM

Remarques

Une instance du processeur vidéo peut être créée de l’une des manières suivantes :

  • En appelant MFTEnumEx. Le processeur vidéo est inscrit sous la catégorie MFT_CATEGORY_VIDEO_PROCESSOR .
  • En appelant la fonction COM CoCreateInstance en lui transmettant le CLSID CLSID_VideoProcessorMFT.

Les remarques suivantes concernent l’utilisation des rectangles sources et des rectangles de destination dans le processeur vidéo MFT. Les rectangles source et de destination sont définis avec IMFVideoProcessorControl ::SetDestinationRectangle et SetSourceRectangle et parfois avec IMFMediaEngineEx ::UpdateVideoStream.

  • Le rectangle source doit être aligné et arrondi pour correspondre aux exigences du format de couleur de l’image entrée dans le processeur vidéo. Cela est important, car les formats tels que 420 et 422 ont des exigences sur les dimensions et les décalages qui peuvent être créés et accessibles. Par exemple, un rectangle source de {1, 0, 319, 240} (gauche, haut, droite, bas) est arrondi à {2, 0, 320, 240} lorsque le format d’entrée est 420.
  • La destination et le rectangle source sont toujours limités pour s’adapter à leurs images respectives , le rectangle source au cadre source et le rectangle de destination au cadre de destination. Cela signifie que les valeurs négatives ne sont pas significatives : elles seront toujours limitées à 0.
  • Le rectangle source se trouve dans le système de coordonnées du cadre de destination, moins tout rectangle de destination. Cela signifie que les transformations telles que la rotation sont « annulées » sur le rectangle source. Par conséquent, vous n’avez pas besoin de savoir si la vidéo a été pivotée ou 3D décompressée. Par exemple, vous pouvez dessiner un rectangle en haut de la balise vidéo, prendre les coordonnées relatives (par rapport à la balise vidéo), les normaliser (plage 0 à 1) et les transmettre en tant que rectangle source et ils doivent fonctionner comme prévu, même si la vidéo est pivotée.

Le processeur vidéo prend en charge le traitement vidéo accéléré par GPU, à l’aide de Microsoft Direct3D 11 ou Direct3D 12. Pour plus d’informations, consultez MF_SA_D3D11_AWARE et MF_SA_D3D12_AWARE.

Le processeur vidéo est utilisé comme convertisseur frontal pour le rendu vidéo lors de l’utilisation de SVR qui est exposé par les composants MediaPlayer et IMFMediaEngine . Décodeurs, plug-ins ou sources utilisés par l’un de ces composants

Effets du renderer

Le processeur vidéo MFT est le composant hôte pour les effets renderer. Les effets du renderer permettent aux applications de se connecter au processus normal de transformation et de rendu vidéo. Pour les applications classiques, un plug-in vidéo (voir : IMFMediaEngineEx ::InsertVideoEffect) est suffisant. Toutefois, certains scénarios nécessitent plus d’informations sur les conditions exactes dans lesquelles une vidéo est affichée. Considérez un effet de renderer pour les situations suivantes :

  • Le plug-in doit connaître la résolution à laquelle la vidéo est rendue (par exemple, pour effectuer une opération de mise à l’échelle spéciale comme la super résolution)
  • Le plug-in doit connaître les propriétés de l’affichage sur lequel la vidéo est affichée (par exemple, pour effectuer un mappage de tonalité précis)
  • Le plug-in doit connaître exactement le format de sortie final de la vidéo présentée

Pour charger un effet de convertisseur, configurez l’attribut MF_MT_VIDEO_RENDERER_EXTENSION_PROFILE sur le type d’entrée du processeur vidéo MFT.

Vidéo stéréoscopique

Le processeur vidéo prend en charge l’opération de décompression de vue sur les images vidéo 3D :

Si le frame d’entrée contient deux vues empaquetées dans le même frame, le processeur vidéo peut fractionner les vues en mémoires tampons distinctes, ou extraire la vue de base et ignorer la deuxième vue. Pour activer le déballage d’affichage, définissez l’attribut MF_ENABLE_3DVIDEO_OUTPUT sur MF3DVideoOutputType_Stereo ou MF3DVideoOutputType_BaseView.

Spécifications

Besoin Valeur
En-tête de page
Camerauicontrol.h

Voir aussi

processeurs digital signal