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:
|
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:
|
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:
|
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:
|
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:
|
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. |