Compartir a través de


Modo de mezcla de YUV

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Este tema se aplica a Windows XP Service Pack 2 o posterior.

A partir de Windows XP Service Pack 2, VMR admite un modo de mezcla denominado modo de mezcla YUV. Este modo es más útil para aplicaciones avanzadas de TV o DVD. Intercambia parte de la potencia del mezclador de VMR para mejorar el rendimiento en el hardware gráfico de gama baja que usa un diseño de arquitectura de memoria unificada. El modo de mezcla de YUV es compatible con VMR-7 y VMR-9.

Ventajas

El modo de mezcla de YUV tiene varias ventajas relacionadas con el rendimiento de representación en el modo de mezcla RGB original compatible con VMR:

  • Cuando VMR está en modo de mezcla YUV, todas las operaciones de composición de secuencias de vídeo y deslalazamiento se realizan en el espacio de colores YUV. Las superficies YUV normalmente requieren de un 50 % a un 60 % menos de ancho de banda de memoria que las superficies RGB equivalentes.
  • La composición de la secuencia y el desinterlazado se realizan mediante una sola llamada al controlador de gráficos. El controlador puede usar las funcionalidades de multi texturing del hardware gráfico, lo que permite ahorrar ancho de banda de memoria adicional.

Aunque cualquier aplicación de vídeo puede usar el modo de mezcla YUV, está pensado principalmente para dos tipos de aplicación de reproducción de vídeo:

  1. Aplicaciones de TV que muestran subtítulos o teletexto.
  2. Las aplicaciones de DVD muestran datos de subpictura de DVD o subtítulos.

Restricciones

VmR aplica varias restricciones cuando se coloca en modo de mezcla YUV:

  • Stream 0 (el flujo conectado al Pin de entrada 0) puede ser progresivo o entrelazado; todos los demás flujos deben ser progresivos.
  • GUID_NULL (modo de guardado) no se permite para la secuencia 0.
  • DeinterlacePref_Weave no se puede usar como modo de reserva porque esto podría impedir que se cree un dispositivo desconectado. El modo de mezcla de YUV requiere un dispositivo de desinterlace incluso si el vídeo entrante no está entrelazado.
  • No se pueden realizar cambios en el valor alfa planar asociado a cada flujo de entrada de VMR.
  • El usuario no puede modificar el orden Z de las secuencias de vídeo conectadas. El orden Z predeterminado se toma del orden de anclaje.
  • No se admite la creación de claves de color.
  • El pin de entrada 0 debe recibir la secuencia de vídeo.
  • Las otras patillas de entrada solo pueden recibir datos de sub streaming de vídeo, como la imagen secundaria de DVD, los subtítulos o el teletexto.
  • Las otras patillas de entrada solo pueden aceptar formatos YUV alfa por píxel, como AYUV, AI44 e IA44.
  • Ninguno de los pines de entrada de VMR puede aceptar cualquier formato RGB.
  • Las imágenes de mapa de bits proporcionadas por la aplicación ya no se pueden combinar con el vídeo antes de la presentación en la pantalla.
  • Las subtransmisiones individuales no se pueden invertir horizontal o verticalmente mediante las funciones "rectángulo de salida" del mezclador de VMR. Se admite el cambio de tamaño y el cambio de tamaño de la secuencia "Normal".
  • El color de fondo de mezcla (especificado por IVMRMixerControl::SetBackgroundClr) se sigue especificando en el espacio de colores RGB, igual que en modo de mezcla RGB.

Configuración

Las aplicaciones deben configurar explícitamente el VMR para aprovechar el modo de mezcla de YUV; el modo de mezcla RGB original sigue siendo el modo de mezcla predeterminado. Para habilitar el modo de mezcla de YUV en VMR-7, llame a IVMRMixerControl::SetMixingPrefs con la marca MixerPref_RenderTargetYUV. Esta llamada se debe realizar antes de que se conecte cualquiera de las patillas de entrada de VMR. Para habilitar el modo de mezcla de YUV en VMR-9, llame a IVMRMixerControl9::SetMixingPrefs con la marca MixerPref9_RenderTargetYUV.

La única manera de determinar si VMR-7 admite el nuevo modo de combinación de YUV es intentar establecer vmR en ese modo. Si la llamada se realiza correctamente, puede volver a poner VMR en modo de combinación RGB si es necesario. Después de establecerse en el modo de mezcla de YUV, vmR solo se puede cambiar al modo de mezcla RGB después de que se hayan desconectado todos los pines de entrada.

En el modo de mezcla YUV, puede reducir la carga en la unidad de procesamiento gráfico (GPU) aplicando las marcas siguientes en el método SetMixingPrefs :

Marca Descripción
VMR-7: MixerPref_DynamicSwitchToBOBVMR-9: MixerPref9_DynamicSwitchToBOB
Cambie a bob desinterlacing.
VMR-7: MixerPref_DynamicDecimateBy2VMR-9: MixerPref_DynamicDecimateBy2
Descima la imagen por un factor de 2 horizontal y verticalmente.

 

Puede agregar o quitar estas marcas mientras se ejecuta el gráfico de filtros; el cambio se aplica cuando el mezclador de VMR compone el siguiente fotograma de vídeo. Las marcas no son mutuamente excluyentes. Esta configuración reduce la calidad de la imagen, por lo que normalmente las aplicaría solo cuando la calidad del vídeo es menos importante, por ejemplo, si el vídeo se reproduce en una pequeña parte de la interfaz de usuario.

Uso del modo de combinación de VMR