Compartir a través de


Entrelazado de vídeo

En este tema se describe cómo los orígenes multimedia y los descodificadores deben controlar el contenido de vídeo entrelazado.

Para descodificar y representar vídeo entrelazado correctamente, se necesita la siguiente información:

  • Progresiva o entrelazada. Una secuencia de vídeo puede contener fotogramas progresivos, fotogramas entrelazados o una combinación de ambos.

  • Dominación de campo. La dominación de campo describe qué campo aparece primero, el campo superior o el campo inferior.

  • Repita el primer campo. Esta marca se usa en la extracción 3:2, cuando el marco es progresivo, pero la secuencia está entrelazada. En este contexto, el primer campo puede ser el campo superior o inferior.

  • Campos intercalados o campo único. Un ejemplo puede contener un único campo o dos campos intercalados. Si un ejemplo contiene un solo campo, el alto de la muestra es la mitad del alto del marco, ya que la muestra contiene solo la mitad de las líneas de examen de un marco. Se recomiendan campos intercalados a menos que las características del contenido de origen dicten lo contrario.

Cualquiera de estas características puede cambiar de un ejemplo a otro. Sin embargo, los componentes de vídeo deben saber algo sobre el contenido general antes de que comience el streaming. Por ejemplo, si el vídeo está entrelazado, el representador de vídeo mejorado (EVR) debe reservar memoria de vídeo para la desinterlación. Si el vídeo es completamente progresivo, por otro lado, el EVR puede optimizar la canalización de representación. Agregar un paso de desinterlazado a la canalización aumenta la latencia de representación.

La información sobre la entrelazamiento se almacena en dos lugares:

  • La información general sobre la entrelazamiento en una secuencia se coloca en el tipo de medio. Para obtener más información sobre los tipos de medios, vea Tipos de medios.

  • La información que puede cambiar con cada ejemplo se coloca en el ejemplo como un atributo. Para obtener más información sobre los ejemplos, consulte Ejemplos de medios.

Interlace Information in the Media Type

El atributo MF_MT_INTERLACE_MODE en el tipo de medio describe cómo se entrelaza la secuencia como un todo. El valor de este atributo es un miembro de la enumeración MFVideoInterlaceMode. Un tipo de medio de vídeo siempre debe tener este atributo.

  • Si la secuencia solo contiene fotogramas progresivos, sin fotogramas entrelazados, use MFVideoInterlace_Progressive.
  • Si la secuencia solo contiene fotogramas entrelazados y cada ejemplo contiene dos campos intercalados, use MFVideoInterlace_FieldInterleavedUpperFirst o MFVideoInterlace_FieldInterleavedLowerFirst.
  • Si la secuencia solo contiene fotogramas entrelazados y cada ejemplo contiene un único campo, use MFVideoInterlace_FieldSingleUpper o MFVideoInterlace_FieldSingleLower. Si los campos se alternan entre superior e inferior, no importa cuál de estos dos valores se use. Si el formato contiene solo campos superiores o simplemente campos inferiores, establezca el valor correspondiente al contenido.
  • Si la secuencia contiene una combinación de fotogramas entrelazados y progresivos, o si cambia la dominación de campo, establezca el tipo de medio en MFVideoInterlace_MixedInterlaceOrProgressive. Use atributos de ejemplo para describir cada fotograma.

En la tabla siguiente se resume este atributo.

MF_MT_INTERLACE_MODE ¿Entrelazado? Muestras Primer campo
MFVideoInterlace_Progressive No Fotograma progresivo No aplicable
MFVideoInterlace_FieldInterleavedUpperFirst Campos intercalados Primera parte superior
MFVideoInterlace_FieldInterleavedLowerFirst Campos intercalados Primero inferior
MFVideoInterlace_FieldSingleUpper Campo único Primera parte superior
MFVideoInterlace_FieldSingleLower Campo único Primero inferior
MFVideoInterlace_MixedInterlaceOrProgressive Puede variar Campos intercalados o fotogramas progresivos Puede variar

 

Los campos intercalados y los campos únicos no se pueden mezclar. Cambiar de uno a otro requiere un cambio de tipo multimedia.

Interlace Flags on Samples

La información que puede cambiar de un ejemplo a la siguiente se indica mediante atributos de ejemplo. Use la interfazIMFSample para obtener o establecer estos atributos.

Todos los atributos de entrelazamiento enumerados en esta sección tienen valores booleanos. De hecho, cada uno de estos atributos puede tener tres valores: TRUE, FALSE, o no establecido. Si no se establece un atributo, el valor se toma del tipo de medio. Si se establece un atributo, el valor invalida el tipo de medio. Algunas combinaciones de marcas y tipos multimedia no son válidas.

Atributo Descripción
MFSampleExtension_Interlaced Si TRUE, el marco se entrelaza. Si FALSE, el marco es progresivo.
Establezca este atributo en cada ejemplo si el tipo de medio es MFVideoInterlace_MixedInterlaceOrProgressive.
MFSampleExtension_BottomFieldFirst El significado de esta marca depende de si las muestras contienen campos intercalados o campos únicos.
  • Campos intercalados: si TRUE, el campo inferior es primero. Si FALSE, el campo superior es primero.
  • Campos únicos: si TRUE, el ejemplo contiene un campo inferior. Si FALSE, el ejemplo contiene un campo superior.
Establezca este atributo en cada ejemplo de interlace si el tipo de medio es MFVideoInterlace_FieldSingleUpper, MFVideoInterlace_FieldSingleLower o MFVideoInterlace_MixedInterlaceOrProgressive.
MFSampleExtension_RepeatFirstField Si TRUE, se repite el primer campo. Si false o no se establece, el primer campo no se repite.
MFSampleExtension_SingleField Si TRUE, el ejemplo contiene un único campo. Si FALSE, el ejemplo contiene campos intercalados.

 

En la tabla siguiente se muestran las marcas necesarias, opcionales o prohibidas, en función del tipo de medio.

Tipo de medio Marca entrelazada Marca BottomFieldFirst RepeatFirstField Flag Marca SingleField
Progresivo Opcional; si se establece, debe ser FALSE. No establezca. No establezca. No establezca.
Campos intercalados Opcional; si se establece, debe ser TRUE. Opcional; si se establece, debe coincidir con el tipo de medio. No establezca. Opcional; si se establece, debe ser FALSE.
Campos únicos Opcional; si se establece, debe ser TRUE. Obligatorio. No establezca. Establezca en TRUE.
Mixto Obligatorio. Obligatorio. Obligatorio. Opcional; si se establece, debe ser FALSE.

 

En los casos en los que el atributo es opcional, el tipo de medio ya define la información. Es válido establecer el atributo para que coincida, pero no es necesario.

Por ejemplo, si el tipo de medio es MFVideoInterlace_Progressive, implica que todos los fotogramas de la secuencia son progresivos. Por lo tanto, puede establecer el atributo MFSampleExtension_Interlaced en FALSEo dejar el atributo sin establecer.

Recomendaciones

Esta sección contiene recomendaciones para varios tipos de contenido.

  1. El vídeo es todos fotogramas progresivos.
  • Establezca el tipo de medio en MFVideoInterlace_Progressive.

  • No establezca el atributo MFSampleExtension_Interlaced ni establézcalo en FALSE en cada fotograma.

  • No establezca los atributos MFSampleExtension_BottomFieldFirst, MFSampleExtension_RepeatFirstFieldo MFSampleExtension_SingleField.

  1. El vídeo es todos los campos entrelazados con la misma dominación de campo. Los ejemplos contienen campos intercalados.
  • Establezca el tipo de medio en MFVideoInterlace_FieldInterleavedUpperFirst o MFVideoInterlace_FieldInterleavedLowerFirst.

  • No establezca el atributo MFSampleExtension_Interlaced ni establézcalo en TRUE en cada fotograma.

  • No establezca el atributo MFSampleExtension_BottomFieldFirst ni establezca el valor en cada fotograma para que coincida con el tipo de medio.

  • No establezca el atributo MFSampleExtension_RepeatFirstField ni establézcalo en FALSE en cada fotograma.

  • No establezca el atributo MFSampleExtension_SingleField ni establézcalo en FALSE en cada fotograma.

  1. El vídeo contiene una combinación de fotogramas entrelazados y progresivos, con campos repetidos y dominación de campo variable (por ejemplo, vídeo de DVD).
  • Establezca el tipo de medio en MFVideoInterlace_MixedInterlaceOrProgressive.

  • En cada fotograma, establezca los atributos MFSampleExtension_Interlaced, MFSampleExtension_BottomFieldFirsty MFSampleExtension_RepeatFirstField.

  • No establezca el atributo MFSampleExtension_SingleField ni establézcalo en FALSE en cada fotograma.

  1. El vídeo está entrelazado y las muestras contienen campos únicos.
  • Establezca el tipo de medio en MFVideoInterlace_FieldSingleUpper o MFVideoInterlace_FieldSingleLower.

  • En cada fotograma, establezca el atributo MFSampleExtension_BottomFieldFirst.

  • No establezca el atributo MFSampleExtension_Interlaced ni establézcalo en TRUE en cada fotograma.

  • No establezca el atributo MFSampleExtension_RepeatFirstField ni establézcalo en FALSE en cada fotograma.

  • No establezca el atributo MFSampleExtension_SingleField ni establézcalo en TRUE en cada fotograma.

La mayoría del contenido de vídeo se divide en una de estas categorías.

Asignaciones MPEG-2

Para el contenido MPEG-2, use las siguientes asignaciones para convertir las marcas MPEG-2 en atributos de ejemplo de Media Foundation.

picture_structure

Valor Atributo de ejemplo
marco MFSampleExtension_SingleField = FALSE
top_field MFSampleExtension_SingleField = TRUE
MFSampleExtension_BottomFieldFirst = FALSE
bottom_field MFSampleExtension_SingleField = TRUE
MFSampleExtension_BottomFieldFirst = TRUE

 

progressive_frame

Valor Atributo de ejemplo
0 MFSampleExtension_Interlaced = TRUE
1 MFSampleExtension_Interlaced = FALSE

 

top_field_first

Valor Atributo de ejemplo
0 MFSampleExtension_BottomFieldFirst = TRUE
1 MFSampleExtension_BottomFieldFirst = FALSE

 

repeat_first_field

Valor Atributo de ejemplo
0 MFSampleExtension_RepeatFirstField = FALSE
1 MFSampleExtension_RepeatFirstField = TRUE

 

Ejemplos de Single-Field

Si el tipo de medio es MFVideoInterlace_FieldSingleUpper o MFVideoInterlace_FieldSingleLower, significa que cada muestra contiene un único campo. Sin embargo, el tipo de medio describe todo el marco. Por lo tanto, cada búfer contiene solo la mitad del número de líneas de campo dadas en el tipo de medio. Por ejemplo, si el tipo de medio describe el vídeo como 720 × 480, cada campo contiene 240 líneas de examen y, por tanto, cada búfer contiene solo 240 filas de píxeles. Si escribe un componente que acepta tipos multimedia con ejemplos de campo único, debe tener en cuenta este hecho al acceder a los datos del búfer.

La misma regla se aplica a la apertura geométrica (atributoMF_MT_GEOMETRIC_APERTURE) y a la apertura de pantalla mínima (atributoMF_MT_MINIMUM_DISPLAY_APERTURE). Estas regiones se especifican en términos del marco completo, no en los campos individuales.

Asignaciones de DirectShow

En DirectShow, la información de entrelazamiento por muestra se encuentra en el dwTypeSpecificFlags miembro de la estructura AM_SAMPLE2_PROPERTIES. En la tabla siguiente se muestran los atributos equivalentes de Media Foundation.

Marca de ejemplo DirectShow Atributo de ejemplo de Media Foundation
AM_VIDEO_FLAG_INTERLEAVED_FRAME MFSampleExtension_SingleField = FALSE.
AM_VIDEO_FLAG_FIELD1 MFSampleExtension_Interlaced = TRUE.
MFSampleExtension_SingleField = TRUE.
MFSampleExtension_BottomFieldFirst = FALSE.
AM_VIDEO_FLAG_FIELD2 MFSampleExtension_Interlaced = TRUE.
MFSampleExtension_SingleField = TRUE.
MFSampleExtension_BottomFieldFirst = TRUE.
AM_VIDEO_FLAG_WEAVE MFSampleExtension_Interlaced = FALSE. (Esta marca indica que el controlador no debe desinterlar los dos campos).
AM_VIDEO_FLAG_FIELD1FIRST MFSampleExtension_BottomFieldFirst = FALSE. Si el contenido está entrelazado y la marca de AM_VIDEO_FLAG_FIELD1FIRST no está presente, establezca este atributo en TRUE.
AM_VIDEO_FLAG_REPEAT_FIELD MFSampleExtension_RepeatFirstField = TRUE. Si la marca AM_VIDEO_FLAG_REPEAT_FIELD no está presente, establezca este atributo en FALSE.

 

Si el ejemplo directShow no contiene marcas de ejemplo, use el valor de dwInterlaceFlags de la estructura VIDEOINFOHEADER2:

Marca de interlación directShow Atributo de ejemplo de Media Foundation
AMINTERLACE_IsInterlaced MFSampleExtension_Interlaced = TRUE.
AMINTERLACE_1FieldPerSample MFSampleExtension_SingleField = TRUE.
AMINTERLACE_Field1First MFSampleExtension_BottomFieldFirst = FALSE.

 

tipos de medios de vídeo

tipos de medios de