Compartir a través de


Para desinterlace video

[La característica asociada a esta página, SDK de Windows Media Format 11, es una característica heredada. Se ha reemplazado por lector de origen y escritor receptor. El lector de origen y el sistema de escritura receptor se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use lector de origen y escritor receptor en lugar del SDK de Windows Media Format 11, 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.

Algunos orígenes de vídeo, como tarjetas de captura de vídeo, entregan datos de vídeo para la visualización entrelazada. Cada fotograma de vídeo entrelazado se compone de dos campos. El campo superior contiene la primera línea de vídeo y todas las demás líneas a partir de entonces. El campo inferior contiene la segunda línea de vídeo y todas las demás líneas a partir de entonces. Por lo tanto, un campo contiene todas las líneas numeradas par y la otra contiene todas las líneas numeradas impares. Los campos que componen un marco representan tiempos de presentación ligeramente diferentes para que, cuando se intercalen, no forman una imagen estática.

Cuando desee mostrar vídeo en un monitor de equipo, cada fotograma del vídeo debe mostrarse como una imagen (este método para mostrar vídeo entero en un fotograma entero a la vez se denomina vídeo progresivo ). Si muestra vídeo entrelazado progresivamente, es posible que los fotogramas no parezcan correctos, debido a la diferencia de tiempo entre los dos campos. El códec De vídeo de Windows Media y el códec Perfil avanzado de vídeo de Windows Media admiten una característica de preprocesamiento que convierte el contenido entrelazado en fotogramas progresivos.

Para tener el vídeo de entrada de desinterlace del códec, llame al método IWMWriterAdvanced2::SetInputSetting . La configuración que se va a usar es g_wszDeinterlaceMode. Establezca el modo de desinterlazado en uno de los valores siguientes.

Value Descripción
WM_DM_NOTINTERLACED La entrada es progresiva. Use esta opción para detener la desinterlacación cuando haya establecido previamente el modo de desinterlacing en otro valor.
WM_DM_DEINTERLACE_NORMAL Seleccione este modo para combinar los campos par e impares de un marco entrelazado (mediante un mecanismo de compensación de movimiento). Ventajas:
  • Los artefactos de interlace de la pantalla progresiva se reducen significativamente.
  • El códec Windows Media Video genera vídeo comprimido de mayor calidad.
WM_DM_DEINTERLACE_HALFSIZE Seleccione este modo cuando la resolución de salida sea la mitad, o menos, de la resolución de entrada. Por ejemplo, use este modo cuando la resolución de vídeo de entrada sea de 640 x 480 píxeles y la resolución de vídeo de salida sea de 320 x 240 píxeles. Ventajas:
  • Los artefactos de interlace de la pantalla progresiva se reducen significativamente.
WM_DM_DEINTERLACE_HALFSIZEDOUBLERATE Seleccione este modo cuando la resolución de salida sea la mitad, o menos, de la resolución de entrada y la velocidad de fotogramas de salida sea dos veces mayor. Por ejemplo, use este modo cuando la resolución de vídeo de entrada sea de 640 x 480 píxeles a 30 fotogramas entrelazados por segundo y la resolución de vídeo de salida es de 320 x 240 píxeles a 60 fotogramas por segundo. Ventajas:
  • Esto genera fotogramas progresivos de alta calidad, ya que cada campo se convierte en un marco y, por lo tanto, no es necesario combinar ninguna información.
  • Se captura el movimiento completo de los campos entrelazados.
WM_DM_DEINTERLACE_INVERSETELECINE Seleccione este modo para convertir el vídeo telecinado de 30 fotogramas por segundo en los 24 fotogramas/s de la película original. Ventajas:
  • La calidad de compresión mejora significativamente porque solo es necesario codificar 24 fotogramas por segundo en lugar de 30 fotogramas por segundo.
  • Dado que el resultado es progresivo, se realizan las mismas ventajas de compresión y visualización de la desinterlacación.
WM_DM_DEINTERLACE_VERTICALHALFSIZEDOUBLERATE Seleccione este modo cuando la resolución de salida vertical sea la mitad, o menos, de la resolución vertical de entrada y la velocidad de fotogramas de salida sea el doble de alta. Por ejemplo, la resolución de vídeo vertical de entrada es de 640 x 480 píxeles a 30 fotogramas entrelazados por segundo y la resolución de vídeo vertical de salida es de 320 x 240 píxeles a 60 fotogramas por segundo. Ventajas:
  • Esto genera fotogramas progresivos de alta calidad, ya que cada campo se convierte en un marco y, por lo tanto, no es necesario combinar ninguna información.
  • Se captura el movimiento completo de los campos entrelazados.

En el caso del contenido mixto, establezca el modo de desinterlacación según sea necesario antes de pasar muestras de un nuevo tipo. Por ejemplo, para empezar a codificar con entrada progresiva, no es necesario establecer ningún modo de desinterlacamiento. Si algunas muestras requieren desinterlacamiento normal, debe establecer el modo de desinterlazado en WM_DM_DEINTERLACE_NORMAL. Para procesar muestras progresivas adicionales, debe establecer el modo de desinterlazado en WM_DM_NOTINTERLACED.

Configuración inversa de Telecine

Para obtener una descripción del telecine inverso, consulta Usar telecine inverso.

Si establece el modo de desinterlazado en WM_DM_DEINTERLACE_INVERSETELECINE, puede especificar el patrón telecine del primer fotograma de entrada llamando a IWMWriterAdvanced2::SetInputSetting. La configuración que se va a usar es g_wszInitialPatternForInverseTelecine. Establezca el patrón inicial en uno de los valores siguientes.

Value Descripción
WM_DM_IT_DISABLE_COHERENT_MODE Especifica que el medio de entrada ha pasado por el proceso de telecine, pero que los fotogramas ya no están en un patrón predecible. Esto suele indicar que el medio se editó después del procesamiento del telecine. Cuando se usa esta configuración, el códec intenta reconstruir los fotogramas originales por sí solos.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_TOP Especifica que el campo superior del marco AA es el primer ejemplo.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_TOP Especifica que el campo superior del marco BB es el primer ejemplo.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_TOP Especifica que el campo superior del marco BC es el primer ejemplo.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_TOP Especifica que el campo superior del marco de CD es el primer ejemplo.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_TOP Especifica que el campo superior del marco DD es el primer ejemplo.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_BOTTOM Especifica que el campo inferior del marco AA es el primer ejemplo.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_BOTTOM Especifica que el campo inferior del marco BB es el primer ejemplo.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_BOTTOM Especifica que el campo inferior del marco BC es el primer ejemplo.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_BOTTOM Especifica que el campo inferior del marco de CD es el primer ejemplo.
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_BOTTOM Especifica que el campo inferior del marco DD es el primer ejemplo.

Temas avanzados