• No se han encontrado resultados

Elementary Streams (Cadenas Elementales)

Sección 4: ISO/IEC 13818-1, La capa de sistema de MPEG-

4.3 Elementary Streams (Cadenas Elementales)

Un Elementary Stream no es mas que la salida en bruto de un codificador, y contiene no mas que la información necesaria para que un decodificador pueda formar el video o el audio original. La sintaxis de la señal comprimida está rígidamente definida, de forma que asegure que todos los decodificadores puedan usarla. El codificador no esta definido, sin embargo debe ser tal , que produzca la sintaxis de salida correcta. De esta forma se estandarizan los decodificadores, pudiéndolos fabricar a bajo costo. En contraste, los codificadores pueden ser mas complejos y mas caros, de forma que se adapten mejor a los requerimientos de alta calidad de codificación. Cuando el codificador y decodificador son de diferentes complejidades, se dice que el sistema de codificación es asimétrico.

El estándar MPEG permite también que la calidad sea mejorada a medida que los algoritmos de codificación son refinados, permitiendo aún que los decodificadores mas viejos decodifiquen el bit stream.

4.3.1 Sintaxis del Video Elementary Stream

La figura 4.3 muestra la construcción de un video elementary stream. La unidad fundamental de información es el bloque DCT, que representa un arreglo 8x8 de píxeles que pueden ser Y, Cr, o Cb. El coeficiente DC es enviado primero, y es representado mas exactamente que los demás coeficientes (MPEG-2 permite la elección de 8, 9, 10 u 11 bits para el coeficiente DC). Seguido de los demás coeficientes, se envía un código EOB (End Of Block).

Los bloques son ensamblados en macrobloques, que son la unidad fundamental de una imagen para ser compensada por movimiento. Cada macrobloque de una imagen P o B tiene un vector de movimiento bidimensional en su header. En imágenes B, los vectores pueden ser forward o backward. La compensación de

movimiento puede ser basada en campo en cuadro, y esto es indicado en el header. También se indica la escala usada para la recuantización de los coeficientes. Usando los vectores, el decodificador usa la información de imágenes anteriores o posteriores para producir la imagen predicha. Aplicando la IDCT a cada bloque, se obtiene la imagen corrección que hay que sumarle a la imagen predicha para formar la imagen correcta.

En codificación 4:2:0 ,cada macrobloque tiene 4 bloques Y y dos bloques de cada color. En formato 4:2:2, habría 2 bloques de cada color por cada 4 de luminancia. Para identificar cada bloque correctamente, estos se envían en un orden específico. (ver apéndice C para mas información sobre submuestreo del canal de croma).

Los macrobloques son ensamblados en slices, que deben representar siempre partes de una imagen de izquierda a derecha. En MPEG, se permite que los slices tengan cualquier largo y comiencen en donde sea. El slice es la unidad elemental de sincronización para la codificación de longitud variable y diferencial. Los primeros vectores en el slice son enviados absolutamente, mientras que los restantes son enviados diferencialmente. En imágenes Intra, también los primeros coeficientes DC son enviados absolutamente y los restantes en forma diferencial.

Un número de slices son combinados para hacer una imagen, que es la parte activa de un campo a un cuadro. El header de la imagen indica si esta fue codificada como I, P o B y también incluye una referencia temporal para que la imagen sea presentada en el orden correcto. Para situaciones especiales, como un paneo de la cámara, los vectores de movimiento de los diferentes macrobloques serán los mismos, por lo que se envía un vector global, y los vectores individuales como diferencias con este.

Las imágenes pueden ser combinadas para producir un GOP, que debe comenzar siempre con una imagen I. El GOP es la unidad fundamental de codificación temporal. Los GOP’s pueden ser abiertos o cerrados. En un GOP cerrado, las últimas imágenes B no requieren de la imagen I del siguiente GOP para

Si son usados varios GOP’s, estos son combinados para producir una secuencia de video. La secuencia comienza con un código de inicio de secuencia seguido del header de la secuencia, y finaliza con un código de fin de secuencia. Se pueden colocar además headers adicionales a la secuencia a la mitad de esta. Esto permite que la decodificación pueda comenzar en alguna parte en la mitad de la secuencia. El header de la secuencia especifica el tamaño vertical y horizontal de la imagen, la relación de aspecto, el formato de submuestreo de croma, el picture rate, el uso de scan progresivo o entrelazado, el perfil, nivel, bit rate, y las matrices de cuantización usadas en codificación Intra e Inter.

Sin el header de la secuencia, los decodificadores no pueden entender el bit stream, por lo que los headers de la secuencia se vuelven el punto de inicio para comenzar la decodificación.

4.3.2 Audio Elementary Streams

Varios tipos de audio pueden ser metidos en un multiplexor MPEG-2. Estos tipos provienen de las tres capas del MPEG Audio y el AC-3. El tipo de codificación de audio usada debe estar incluida en un descriptor, que el decodificador leerá a los efectos de invocar al decodificador adecuado.

El proceso de codificación de audio es un poco diferente que el de video. No hay un equivalente a las diferentes I, P o B frames, y los “frames” de audio tienen todos la misma cantidad de datos. No hay equivalencia con las imágenes B, y los frames de audio nunca son trasmitidos fuera de orden.

En MPEG-2 Audio, el header de la secuencia contiene el descriptor que indica que capa se uso para codificar el audio y el tipo de compresión (estéreo conjunto, por ej. ), seguido de la velocidad de muestreo original. La secuencia de audio es formada a partir de un número de unidades de acceso (AUs) que serán codificadas como audio frames.

Si se usa AC-3 , esto también se verá reflejado en el header de la secuencia.

Documento similar