• No se han encontrado resultados

Introducción a la compresión de video bajo el estándar MPEG-2.

N/A
N/A
Protected

Academic year: 2021

Share "Introducción a la compresión de video bajo el estándar MPEG-2."

Copied!
58
0
0

Texto completo

(1)

Introducción a la compresión

de video bajo el estándar

MPEG-2

.

Monografía para el curso de Codificación de

Imágenes y Video.

Instituto de Ingeniería Eléctrica de la Facultad

de Ingeniería.

Noviembre de 2002

Victor Paladino

[email protected]

(2)

Contenido

Pag

Introducción general...2

Sección 1: Introducción a MPEG 1.1 Por que es necesaria la compresión?...3

1.2 Introducción a la compresión de video...3

Sección 2: ISO/IEC 13818-2, MPEG-2 Video 2.1 Codificación espacial o temporal?...5

2.2 Codificación espacial...6 2.3 Ponderación...7 2.4 Scanning...8 2.5 Codificación entropica...9 2.6 Un codificador espacial...9 2.7 Codificación temporal...10 2.8 Compensación de movimiento...12 2.9 Codificación bidireccional...13 2.10 Imágenes I, P y B...14

Sección 3: Lo nuevo en MPEG-2 Introducción...16

3.1 Perfiles y Niveles...16

3.1.1 Perfiles escalables...16

3.1.2 Reparto de datos en MPEG-2...18

3.2 Video entrelazado...18

3.3 Entrelazado y Pulldown 3:2...18

3.4 MPEG-2 y el video entrelazado...19

3.5 Exploración (Scanning)...21

3.6 Entrelazada o progresiva?...21

3.7 Consecuencias del entrelazado...22

3.8 Codificación de Mobile...23

3.8.1 Codificación de Mobile como entrelazada...23

3.8.2 Codificación de Mobile como progresiva...24

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

4.1 Sobre la notación...27

4.2 Unidades de presentación y unidades de acceso...27

4.3 Elementary Streams (Cadenas Elementales)...29

4.3.1 Sintaxis del Video Elementary Stream...29

4.3.2 Audio Elementary Stream...31

(3)

4.4.1 Paquetes PES...31

4.4.2 Time Stamps………32

4.4.3 PTS/DTS……….32

4.5 Cadenas de Programa (Programme Streams)………33

4.5.1 Grabación vs Transmisión………...33

4.6 La Cadena de Transporte (Transport Stream)...35

4.6.1 El header del paquete de transporte...35

4.6.2 Información Especifica de Programa (PIS)...37

4.6.2.1 The Programme Map Table (PMT)...37

4.6.2.2 The Programme Asociation Table (PAT)………37

4.6.2.3 The Network Information Table (NIT)………38

4.6.2.4 The Conditional Access Table (CAT)……….38

4.7 Otra información especifica de programa………...38

4.8 Como demultiplexar MPEG-2...41

Sección 5: Referencias de Reloj ...41

Resumen ...43

Glosario de términos...43

Apéndice A: Estructura de los paquetes PES y la cadena de transporte...46

Apéndice B: Estructura del pack header y el system header de un pack, componentes de una cadena de programa de MPEG-2...48

Apéndice C : Submuestreo del canal de croma...50

(4)

La aplicación primaria de MPEG-2 fue la transmisión digital de señales de TV con buena calidad y a velocidades de 4 a 10 Mbps. Debido a esto, la principal característica y diferencia con MPEG-1 es que MPEG-2 brinda un soporte para imágenes entrelazadas, es decir, se tomo en cuenta el hecho de que las

cámaras de TV forman una imagen tomando primero un campo y luego el otro. Ya que estos dos

campos están separados por un intervalo de tiempo, codificar la secuencia con MPEG-1 no produciría

los mejores resultados, ya que MPEG-1 asume que no hay diferencia de tiempo entre líneas sucesivas

en la imagen. El estándar MPEG-2 provee una forma de codificar imágenes entrelazadas incluyendo dos técnicas basadas en campo: predicción basada en campo y DCT basada en campo.

Otras mejoras, como la introducción de una DCT con precisión de 10 bits en el coeficiente DC, cuantización no lineal, tablas VLC y control mejorado de mismach (para los vectores de movimiento ) han sido introducidas en este nuevo estándar que han brindado mejoras sustanciales aun para material progresivo. Otra especificación clave del MPEG-2 son las extensiones escalables ,que permiten la división de la señal de video en dos o mas cadenas de bits representando el video a diferentes resoluciones, calidad de imagen ,o cadencia de cuadros.

(5)

Introducción general

En Marzo de 1995 se completó el estándar MPEG-2, compuesto de 9 partes, con el numeral ISO/IEC 13818. El nombre completo es “Information Technology—Generic Coding of Moving Pictures and Associated Audio” ISO/IEC 13818. Las primeras 5 partes están organizadas como en MPEG-1 (Sistema, Video, Audio, Conformación y Software). Las 4 partes adicionales son listadas a continuación.

La parte 6, Digital Storage Medium Command and Control (DSM-CC), provee la sintaxis para controlar el estilo de reproducción y acceso aleatorio de los bitstreams codificados y almacenados en medios digitales tales como el DVD. Los comandos de reproducción incluyen Still Frame, Fast Forward, Advance y GoTo. La parte 7, Non-Backward Compatible Audio (NBC), define una nueva sintaxis para audio surround en una forma que no es compatible con MPEG-1, por ejemplo el AC-3.

La parte 8 es una extensión a la parte de video de MPEG-2 (13818-2) y define la sintaxis y semántica para la representación de video codificado con una precisión de 10 bits por muestra.

La parte 9, Real Time Interface (RTI), define una sintaxis para señales de control de video bajo demanda.

Este trabajo no pretende dar al lector información cabal de las nueve partes antes mencionadas. Simplemente, se hablará de la parte de video (ISO/IEC 13818-2) y la parte del Sistema (ISO/IEC 13818-1). Se supondrá que el lector no esta familiarizado con la compresión de video, con lo cual se dará una breve introducción en la sección 1.

En la sección 2, se explica detalladamente la forma en que MPEG consigue llevar a cabo la compresión de una secuencia de video. Se explican con detalle las técnicas de compresión espacial y temporal, compensación de

movimiento, y el uso de la transformada del coseno como herramienta para dicha compresión.

Todas las técnicas mencionadas, con excepción de algunas serán similares a las usadas en MPEG-1. Cada vez que aparezca una nueva técnica o algoritmo introducido por MPEG-2 se hará mención de eso. Veremos que una de las diferencias importantes entre ambos estándares de compresión , MPEG-1 y MPEG-2, es que este último brinda un soporte para material entrelazado, ya que una de las aplicaciones mas importantes de este nuevo estándar es la transmisión de señales de televisión, en donde se adquieren las imágenes en forma entrelazada. El concepto de video entrelazado, así como también los perfiles y niveles que define MPEG-2, serán tratados en detalle en la sección 3. En la primera parte de dicha sección, se hablaran de los perfiles y niveles que define MPEG-2 para lograr la adaptación a las diferentes necesidades de los usuarios. Aparecerá el concepto de escalabilidad, como alternativa de adaptación a la calidad de la compresión.

La segunda parte de esta sección, trata en detalle el video entrelazado explicando como se forma una imagen entrelazada, que consecuencias trae para la compresión, y como MPEG-2 sortea estas complicaciones para codificar de manera mas eficiente.

En la sección 4, se trata la parte del sistema de MPEG-2 (ISO/IEC 13818-1). Aquí se explica como el estándar define la sintaxis de salida de un codificador, ya sea que la aplicación sea almacenamiento del audio y/o el video, o la transmisión del mismo a través de un canal ruidoso. Se intentará dar al lector la idea de porque se definen dos sintaxis diferentes dependiendo de una aplicación u otra.

Por último, en la sección 5, se tratan las referencias de reloj que usa MPEG-2 para sincronizar el material de audio y video y

(6)

mantener la sincronía también entre trasmisor y receptor.

Todas las secciones que componen este trabajo están basadas en su mayor parte en los documentos que figuran al final del mismo. Remito desde ya al lector a consultar dicho material si así lo desea.

A medida que avancemos en el trabajo, se irán encontrando conceptos y palabras nuevas para el lector. A los efectos comprender mejor la lectura, se colocó al final del trabajo un glosario de términos en donde el lector puede consultar en el momento que considere necesario.

Sección 1

Introducción a MPEG

MPEG es uno de los mas populares estándares de compresión de video y audio, debido a que no es un simple estándar. En vez de eso, es un rango de estándares disponibles para diferentes aplicaciones, pero basados en principios similares. MPEG es el acrónimo de Moving Pictures Experts Group, establecido por la ISO para trabajar en compresión.

Esta sección es simplemente una breve introducción a los conceptos que hay detrás de la compresión de video. Puede tomarse como referencia para la segunda sección, en donde se tratan con detalle los conceptos mencionados aquí.

1.1 Por que es necesaria la compresión?

El éxito inicial del video digital fue en aplicaciones de post producción, en donde la producción de video generaba alrededor de 200 Mbps de datos, con lo cual se requería de gran capacidad de almacenamiento o gran ancho de banda para su eventual transmisión. La siguiente figura ilustra este concepto para la digitalización de una imagen de 625 líneas, 720 píxeles por línea y una cadencia de cuadros de 30 cuadros por segundo, resultando en un ancho de banda de 216 Mbps para su eventual transmisión. El formato de submuestreo de croma usado es

4:2:2 (ver apéndice C para submuestreo del canal de croma).

Y=8*13.5=108 Mbps Cr=8*6.75=54 Mbps Cb=8*6.75=54 Mbps

Total=216 Mbps

Debido a estas dificultades, era necesario una forma de codificación del material de audio y/o video, en la cual se requieran menos datos para representar al material. La forma en que MPEG consigue llevar a cabo este objetivo, es mediante el procesamiento de la secuencia de video ( o la señal de audio), de manera tal de codificar solo lo necesario, y dejar que el decodificador “adivine” el resto, y posiblemente, como en la mayoría de los casos, la eliminación de determinada información no tan crítica para el observador. En las siguientes secciones se tratan con cierto detalle las técnicas usadas por MPEG para llevar a cabo la compresión.

1.2 Introducción a la compresión de video

En todo material real ya sea de audio o video, hay dos tipos de componentes de señal: aquellos componentes que son nuevos o impredecibles y aquellos que pueden ser anticipados. Los componentes nuevos son llamados entrópicos y corresponden a la verdadera información en la señal. Los restantes son llamados redundancia ya que no son esenciales. La redundancia puede ser espacial tal como un área plana de una imagen, en donde los píxeles cercanos tienen todos el mismo valor, o temporal ,en donde se explota la similitud de imágenes sucesivas. En

(7)

sistemas de codificación sin pérdidas, se intenta que el codificador extraiga la redundancia de la señal y envíe solo la entropía al decodificador. En sistemas con pérdidas, se elimina cierta información irrelevante o no tan crítica para el observador antes de analizar los componentes importantes en la señal. Solo la entropía es almacenada o transmitida y el decodificador calcula la redundancia con la señal recibida. La figura 1.1 ilustra este concepto.

Figura 1.1

Un codificador ideal debería transmitir solo la entropía y un decodificador ideal debería reconstruir la señal completa con esa información. En la práctica sin embargo, no se puede alcanzar la idealidad. Un codificador ideal requeriría de un retardo muy grande para poder extraer solo la redundancia de la señal, retardo que es inconcebible para determinadas aplicaciones en tiempo real. En algunos casos, un codificador ideal sería muy caro. Se sigue entonces que no hay un sistema de compresión ideal.

En la práctica se necesita de un rango de codificadores con diferentes grado de retardo y complejidad. La potencia de MPEG es que no es solo un formato de compresión, sino un rango de herramientas de compresión que pueden ser combinadas eficazmente para diferentes necesidades. MPEG-2 introduce el concepto de perfiles y niveles, que justamente permiten la elección mas apropiada para determinada

aplicación. Mas adelante se tratara en mas detalle este concepto.

Hay diferentes formatos de video digital y cada uno tiene su bit rate. Por ejemplo, un sistema de alta definición podría tener 6 veces el bit rate de un sistema de definición estándar. Consecuentemente, conocer solo el bit rate a la salida del codificador no es muy útil. Lo que importa es la razón de compresión, que es la relación entre el bit rate a la entrada del codificador y el bit rate a la salida del mismo. Desafortunadamente, el número de variables involucradas, hace difícil determinar el factor de compresión adecuado. La figura 1.1 muestra que si toda la entropía es enviada, la calidad es buena. Sin embargo, si el factor de compresión es incrementado con el fin de reducir el bit rate, la calidad decae.

Para identificar la entropía completamente, un codificador debería ser muy complejo. Un compresor práctico, deberá enviar mas datos generalmente, para asegurarse de llevar la entropía en ellos. La figura 1.1b muestra la relación entre complejidad y performance. A un nivel de calidad dado, se requiere de un compresor mas sofisticado para lograr altas razones de compresión.

La entropía en señales de video varía. En el proceso de codificación, algunas imágenes tendrán mas entropía que otras y por lo tanto requerirán de mas datos para ser representadas, si lo que queremos es mantener la calidad de la codificación constante. Bajo este esquema de codificación, tendremos calidad constante pero bit rate variable, con lo cual se introduce un buffer a la salida del codificador que absorba dichas variaciones de entropía y produzca un bit rate constante a la salida.

En la codificación de video bajo el estándar MPEG, aparecen dos conceptos importantes y claramente diferenciados: la codificación Intra (Intra Coding) y la codificación Inter (Inter Coding). Codificación Intra es una técnica que explota la redundancia espacial o dentro de una imagen y codificación Inter explota la redundancia temporal. La Intra Coding puede ser usada sola como en JPEG , o puede ser

(8)

combinada con Inter Coding, como en MPEG. Intra coding relaciona dos propiedades de las imágenes típicas. Primero, no todas las frecuencias espaciales están simultáneamente presentes y segundo, los componentes de frecuencias espaciales altas son de mas baja amplitud que las bajas. Intra coding requiere del análisis de frecuencias espaciales en una imagen. Este análisis es el propósito de transformadas como wavelets o la DCT. Las trasformadas producen coeficientes que describen la magnitud de cada componente espacial frecuencial. Típicamente, muchos coeficientes serán cero, con lo que se omitirán ,y se lograra por lo tanto una reducción en el bit rate. La sección 2.2 trata en detalle la codificación Intra, o codificación espacial.

Inter coding, relaciona las similitudes entre imágenes sucesivas. Si una imagen esta disponible en el codificador, la siguiente imagen puede ser reconstruida enviando solo la imagen diferencia. Esta diferencia se incrementa con el movimiento, pero esto puede ser compensado con la estimación de movimiento, ya que un objeto en una imagen generalmente solo cambiará de posición, no de apariencia. Si el movimiento puede ser medido, puede ser creada una aproximación a la imagen actual , corriendo parte de la imagen previa a una nueva localidad. El proceso de movimiento es controlado por un vector que es transmitido al decodificador. La codificación Inter es tratada en detalle en la sección 2.7 conjuntamente con la compensación de movimiento en la sección 2.8 y la codificación bidireccional en la sección 2.9. MPEG-2 maneja tanto imágenes progresivas como entrelazadas, llamando ‘picture’ a una imagen dada en alguna posición temporal , independientemente si es campo o cuadro (ver el glosario para las definiciones).

La codificación temporal es ahora mas difícil, ya que los píxeles en un campo estarán en otra posición en el siguiente.

La compensación de movimiento minimiza pero no elimina la diferencia entre imágenes sucesivas. La imagen diferencia puede ser ahora tratada como imagen Intra, con la técnica

descrita anteriormente. La compensación de movimiento simplemente minimiza la cantidad de datos en la imagen diferencia.

Claramente, las imágenes codificadas temporalmente son difíciles de editar, ya que su contenido depende de alguna imagen quizás ya trasmitida tiempo atrás. Los sistemas de producción tendrán que limitar el grado de codificación temporal para permitir la edición y esto afectara el límite de la compresión.

Sección 2

ISO/IEC 13818-2 MPEG-2 Video

En esta sección se tratan en detalle los conceptos introducidos en la sección anterior. Se explicará como MPEG lleva a cabo la compresión de una secuencia de video haciendo uso de la compresión tanto espacial como temporal. Todas las técnicas mencionadas en esta sección son heredadas de MPEG-1. Como se mencionó anteriormente, en MPEG-2 aparece el concepto de video entrelazado, pero no sino hasta la sección 3 se hablara de esto. En dicha sección, “lo nuevo en MPEG-2”, se explicará en detalle el video entrelazado, y como MPEG-2 codifica dicho material. Pido por tanto al lector, que se olvide de este concepto hasta la próxima sección.

2.1 Codificación espacial o temporal?

Como se vio en la primera sección, la compresión de video saca partido tanto de la redundancia espacial como la temporal .En MPEG la redundancia temporal es extraída usando similitudes entre imágenes sucesivas. Tanto como sea posible, la imagen actual es estimada a partir de imágenes recientemente enviadas. Cuando se usa esta técnica, solo se necesita enviar la diferencia entre la imagen estimada y la actual. La imagen diferencia es entonces sujeta a codificación espacial.

Es mas fácil comenzar explicando la codificación espacial antes que la temporal.

La compresión espacial se relaciona con las similitudes entre píxeles adyacentes en áreas planas de la imagen y en frecuencias espaciales

(9)

dominantes en el modelo. JPEG solo utiliza compresión espacial ya que fue diseñado para comprimir imágenes fijas. No obstante, JPEG puede usarse para codificar una sucesión de imágenes para video en el así llamado ‘Motion JPEG’. En este esquema, la compresión no es tan buena como en MPEG, pero la capacidad de edición es interesante, ya que se puede editar cuadro a cuadro.

2.2 Codificación espacial

El primer paso en la codificación espacial, es desarrollar un análisis de frecuencias espaciales mediante una transformada. Una transformada es una forma de expresar una forma de onda en un dominio diferente, en este caso, el de la frecuencia. La salida de la trasformada es un conjunto de coeficientes que indican cuanto de una determinada frecuencia esta presente.

La transformada mas conocida es la de Fourier. Esta trasformada encuentra cada componente de frecuencia multiplicando muestra a muestra la señal de entrada por su respectiva función base e integrando el producto. La figura 2.1 muestra que cuando la señal de entrada no contiene la función base, este producto da cero, pero si la contiene, la integral dará un coeficiente que describe la amplitud de esa componente.

Figura 2.1

Los resultados serán como se describieron , si la componente de frecuencia de la señal esta en fase con la función base. Si la componente esta en cuadratura con la función base, la integral será cero. Por lo tanto será necesario realizar dos búsquedas para cada frecuencia, una con la función base en fase y otra en cuadratura , para encontrar las componentes en cuadratura en la señal.

La transformada de Fourier tiene la desventaja de requerir de coeficientes para los términos seno y coseno de cada frecuencia.

En la trasformada del coseno, la señal de entrada es reflejada con respecto al eje de las ordenadas antes de multiplicarla por las funciones base. La figura 2.2 muestra que este reflejo cancela todos los componentes seno y duplica los componentes coseno de la señal. Ahora los coeficientes seno de la trasformada son innecesarios y solo se necesita un coeficiente para cada frecuencia.

Figura 2.2

La Transformada Discreta del Coseno (DCT) es la versión muestreada de la transformada del coseno, y es usada ampliamente en dos dimensiones. Un bloque de 8x8 píxeles es transformado en un bloque de 8x8 coeficientes. Ya que la operación requiere la multiplicación por fracciones, algunos coeficientes tendrán longitud de palabra mas larga que los valores de los píxeles. Típicamente, un bloque de píxeles de 8 bits , incurrirá en un bloque de coeficientes de 11 bits. Por lo tanto, la DCT no produce una compresión, sino lo contrario. No obstante, la DCT convierte la fuente de píxeles en una forma en donde es mas fácil la compresión.

La figura 2.3 muestra los coeficientes de la DCT para un bloque 8x8. Para un bloque de luminancia, el coeficiente DC indica el nivel medio de brillo en la imagen. Moviéndonos a lo largo de las filas, se incrementa la frecuencia horizontal, y a lo largo de las columnas se incrementa la frecuencia vertical.

(10)

Figura 2.3

En una imagen real, pueden ocurrir componentes de frecuencia diferentes en las diferentes direcciones, y un coeficiente en algún punto del bloque representará el peso de determinada frecuencia de dos dimensiones. Claramente, para imágenes en color, las muestras de diferencia de color también deben ser tratadas. Los datos Y, Cr y Cb son tratados individualmente en la codificación.

En mucho material real, muchos coeficientes tendrán valor cero o cerca de cero, y no serán transmitidos. Esto resulta en una significante compresión que resulta virtualmente sin pérdidas. Si se necesita una compresión mayor, se tendrá que reducir la longitud de palabra de los coeficientes distintos de cero, introduciendo una pérdida en el proceso. Con cuidado, las pérdidas pueden ser introducidas en una forma que sean menos visibles al observador.

2.3 Ponderación

La figura 2.4 muestra que la percepción humana al ruido no es uniforme, sino que es función de la frecuencia. Mas ruido puede ser tolerado a altas frecuencias.

Figura 2.4

La compresión reduce la exactitud de los coeficientes y tiene un efecto similar al de usar palabras cortas en PCM, es decir, aparece un nivel de ruido. En PCM, el resultado de acortar las palabras del código, resulta en un incremento del nivel de ruido a todas las frecuencias. Como la DCT separa los componentes de frecuencia, es posible controlar el espectro del ruido.

La figura 2.5 muestra que en el proceso de ponderación, los coeficientes de mas baja frecuencia son divididos por números pequeños y los de alta frecuencia por números mas grandes. Siguiendo a la división, se produce el truncamiento del coeficiente, lo que resulta en una recuantización.

Como resultado, los coeficientes de baja frecuencia espacial son recuantizados con pasos pequeños y los de alta frecuencia con pasos mas grandes y llevan mas ruido que los anteriores.

(11)

Figura 2.5

En el decodificador, los coeficientes se multiplicarán por sus valores correspondientes de forma tal de recuperar los coeficientes de la DCT con ruido de cuantización superpuesto. Por supuesto, este ruido será mayor a las altas frecuencias.

Claramente, el grado de compresión obtenido y el subsecuente bit rate, es función de la severidad del proceso de recuantización. Diferentes bit rates requerirán diferentes tablas de cuantización y en MPEG-2 es posible usar diferentes tablas para la compresión y trasmitirlas al receptor para la correcta decodificación.

2.4 Scanning

En material de video típico, los coeficientes significativos de la DCT se encuentran en la esquina superior del bloque de coeficientes. Después de la recuantización, los coeficientes de mas alta frecuencia posiblemente se habrán reducido a cero. Podría ser obtenida una forma de codificación mas eficiente si primero se trasmitieran los coeficientes distintos de cero y luego un código indicando que los restantes coeficientes son cero. El Scanning es una técnica que permite llevar a cabo esto último, ya que envía los coeficientes en orden decreciente de probabilidad de magnitud. La figura 2.6ª muestra que en un sistema no entrelazado, la probabilidad de que un coeficiente tenga un alto valor es mayor en la

esquina superior izquierda del bloque y menor en la esquina inferior derecha. Un escaneo diagonal de 45º es lo mejor para usar aquí.

(12)

Figura 2.6

En la figura 2.6b, se muestra el escaneo para una imagen entrelazada (nuevo en MPEG-2). En una imagen entrelazada, un bloque 8x8 DCT de un campo se extiende sobre el doble de área vertical de la pantalla, así que para una imagen dada ,las frecuencias verticales parecerán ser el doble de grandes que las horizontales. Por lo tanto, el escaneo ideal para imágenes entrelazadas es el que se muestra en la figura 2.6b, en donde se ve que una frecuencia vertical dada se escanea antes que la misma frecuencia horizontal.

Volveremos sobre este punto mas adelante.

2.5 Codificación entrópica

En video real, no todas las frecuencias espaciales aparecen simultáneamente. Por lo tanto, muchos coeficientes de la DCT serán cero. A pesar del escaneo, pueden aparecer coeficientes cero entre valores distintos de cero. Run Length Encoding (RLC) permite que estos coeficientes sean manejados de forma eficiente. Cuando se presenta una cadena de ceros, un

RLC simplemente transmite la cantidad de ceros en la carrera en vez de cada bit individualmente. La probabilidad de ocurrencia de ciertos valores de coeficientes en un material de video real puede ser estudiada. En la práctica, algunos valores ocurren mas frecuentemente que otros. Esta información estadística puede utilizarse para llevar a cabo una mejora en la compresión con códigos de longitud variable. Los valores que ocurren mas frecuentemente son codificados con palabras mas cortas que los que ocurren menos a menudo. De cara a la deserealizacion, no se permite que una palabra sea prefijo de otra (código instantáneo).

2.6 Un codificador espacial

La figura 2.7 muestra todos los conceptos descritos anteriormente sobre codificación espacial.

(13)

Figura 2.7

En la figura 2.7 se asume que la señal de entrada es 4:2:2 (ver apéndice C sobre submuestreo de canal de croma) con 8 a 10 bits por píxel. MPEG trabaja con resolución de 8 bits, por lo cual será necesario una etapa de redondeo cuando la señal de entrada tiene palabras de 10 bits. La mayoría de los perfiles de MPEG trabajan con muestreo 4:2:0, por lo que será necesario también una etapa de filtrado pasabajo vertical . Esto elimina información de la imagen y también baja el bit rate.

La etapa DCT transforma la información de la imagen al dominio de la frecuencia. Luego, los coeficientes son ponderados y truncados, obteniendo la primera compresión significante. Estos coeficientes son escaneados en zig-zag por las razones mencionadas anteriormente. Después del último coeficientes distinto de cero, se genera un código end of block (EOB). Luego son comprimidos con RLC y VLC. En un sistema de bit rate variable, la cuantización es fija, pero en un sistema de bit rate fijo se necesita de un buffer para absorber las variaciones en el proceso de codificación. Imágenes con muchos detalles tenderán a llenar el buffer, mientras que imágenes mas

homogéneas tenderán a vaciarlo. Si el buffer esta en peligro de over flowing , la cuantización se deberá hacer mas severa para bajar el bit rate. En el decodificador, el bit stream es deserealizado y la codificación entrópica es revertida para obtener los coeficientes ponderados. Se realiza la ponderación inversa de los coeficientes , y luego se arma la matriz DCT de acuerdo al zig-zag. Luego se aplica la IDCT y se recrean los bloques 8x8 de coeficientes. Los bloques son almacenados en RAM que se lee una línea a la vez. Para obtener una salida 4:2:2 a partir de una 4:2:0, se debe realizar una interpolación vertical como se muestra en la figura 2.8.

2.7 Codificación temporal

La redundancia temporal puede ser explotada realizando codificación Inter, es decir, trasmitiendo solo las diferencia de imágenes. La figura 2.9 muestra que un retardo de una imagen combinada con un sustractor, puede llevar a cabo la operación.

(14)

Figura 2.8

Figura 2.9

La imagen diferencia es una imagen mas, y puede ser codificada espacialmente después. El decodificador revierte de codificación espacial y le suma la diferencia para obtener la siguiente imagen. Muchos sistemas de compresión realizan un offset en la imagen antes de aplicar la DCT, eliminando con esto los posibles valores negativos producidos en le proceso de codificación. Hay algunas desventajas en este modelo. Primero, ya que solo son enviadas las imágenes diferencia, se hace imposible la decodificación de la secuencia una vez comenzada la transmisión. Segundo, si alguna imagen diferencia contiene algún error, este se

propagará indefinidamente. La solución a este problema es usar un sistema que no es completamente diferencial. La figura 2.10 muestra que periódicamente se envían imágenes Intra , que son codificadas solo espacialmente. Si ocurre un error o hay un cambio de canal , se podrá resumir la decodificación en la próxima imagen Intra. La figura 2.10 solo generaliza el concepto. En la sección 2.10 y en la figura 2.14, se introduce el concepto de GOP, en donde se detalla la estructura de la secuencia de imágenes.

(15)

Figura 2.10

2.8 Compensación de movimiento

El movimiento reduce las similitudes entre las imágenes e incrementa la cantidad de datos

necesarios para crear una imagen diferencia. La compensación de movimiento se utiliza para incrementar la similitud de las imágenes. La figura 2.11 muestra el principio.

Figura 2.11

Cuando un objeto se mueve en la pantalla puede aparecer en otra posición en la imagen siguiente pero generalmente no cambiará su apariencia. La diferencia de imagen puede ser reducida, midiendo el movimiento en el codificador. Este movimiento es enviado al decodificador como un vector. El decodificador usa este vector para correr parte de la imagen previa a un lugar mas adecuado en la nueva imagen.

Un vector controla el movimiento de imagen entera de la imagen conocida como macrobloque. El tamaño del macrobloque depende de la codificación DCT y la estructura de muestreo del color. La figura 2.12ª muestra que en un sistema 4:2:0, el espaciamiento vertical de las muestras de croma es exactamente el doble que las muestras de luminancia. Un simple bloque 8x8 de muestras

de crominancia se extiende sobre la misma área que 4 bloques 8x8 de luminancia. Por lo tanto, esta es la mínima área que puede ser desplazada por un vector. Un macrobloque 4:2:0 contiene cuatro bloques de luminancia, uno de croma Cr y una de croma Cb.

En el perfil 4:2:2 , el color es muestreado solo en la dirección horizontal. La figura 2.12b muestra que un bloque de crominancia se extiende sobre la misma área que dos bloques de luminancia. Un macrobloque 4:2:2 contiene 4 bloques de luminancia , 2 bloques de Cr y dos bloques de Cb.

El estimador de movimiento trabaja comparando los macrobloques de luminancia de dos imágenes sucesivas.

(16)

Figura 2.12

Un macrobloque en la primera imagen es usado como referencia. Cuando la entrada es entrelazada, los píxeles estarán en posiciones verticales diferentes en los dos campos , y por lo tanto, será necesario interpolar un campo antes de que sea comparado con el otro. La correlación entre la referencia y todos los posibles desplazamientos es medida con una resolución de medio píxel sobre el rango entero de la búsqueda. Cuando se encuentra la correlación mas grande , esta es asumida como la correlación que representa al movimiento. Este vector de movimiento tiene una componente vertical y una horizontal. En material típico, el movimiento es continuo a través de las imágenes. Una mejora en la compresión se logra si estos vectores se transmiten diferencialmente. Consecuentemente, si un objeto se mueve a velocidad constante, los vectores diferenciales serán cero. Los vectores de movimiento están asociados a macrobloques

, no a objetos concretos. Puede haber ocasiones en que parte del macrobloque se movió y parte no. En este caso es imposible compensar apropiadamente. Si el movimiento de la parte móvil es compensado trasmitiendo un vector de desplazamiento, la parte estacionaria estará mal compensada y habrá la necesidad de corregir datos de diferencia. Si no se envía un vector, la parte estacionaria estará bien compensada pero habrá que corregir la parte móvil. Un compresor inteligente podría comparar ambas técnicas y quedarse con la que requiere menos datos diferenciales.

2.9 Codificación bidireccional

Cuando un objeto se mueve, va ocultando el fondo delante suyo y revelando el fondo que tiene detrás. El fondo revelado, requiere que sean trasmitidos nuevos datos ya que no hay información previa de ese fondo ahora revelado.

(17)

Lo mismo ocurre cuando la cámara realiza un paneo, van apareciendo nuevas áreas de las cuales no se tenía información de ellas. MPEG ayuda a minimizar este problema introduciendo la codificación bidireccional, que permite que la imagen actual sea codificada teniendo en cuenta la información de imágenes antes y después de la actual. La figura 2.13 muestra el concepto de codificación bidireccional. Sobre una base de

macrobloques individuales, una imagen codificada bidireccionalmente puede obtener compensación de movimiento de una imagen anterior o posterior , o aún de un promedio de ambas. La codificación bidireccional reduce la cantidad de datos diferencia , mejorando el grado de predicción posible.

Figura 2.13

2.10 Imágenes I, P y B

En MPEG, se necesitan tres tipos diferentes de imágenes para soportar codificación diferencial y bidireccional, mientras se minimiza la propagación del error.

Las imágenes I, son codificadas Intra, y no requieren información adicional para la decodificación. Requieren un montón de datos mas que las otras imágenes, y por lo tanto no se trasmiten mas que la cantidad necesaria. Consisten primariamente de coeficientes transformados y no tienen vectores. Estas imágenes permiten la conmutación de canales y detienen la propagación del error.

Las imágenes P, son predichas hacia delante a partir de una imagen previa que puede ser una imagen I o una P. Los datos de estas imágenes

contiene vectores que indican en que posición en la imagen anterior estaba cada macrobloque y la diferencia que debe ser sumada para reconstruir ese macrobloque. Las imágenes P requieren, mas o menos, la mitad de datos que las imágenes I.

Las imágenes B son predichas bidireccionalmente a partir de imágenes anteriores o posteriores I o P. Los datos en estas imágenes consisten de vectores que indican en que posición en la imagen anterior o posterior deberían ser tomados los datos. También contienen los coeficientes transformados de la diferencia que debe ser sumada para reconstruir el macrobloque. Estas imágenes son las que requieren menos datos para ser creadas.

(18)

La figura 2.14 introduce el concepto de GOP o Group of Pictures. Cada GOP comienza con una imagen I y tiene imágenes P espaciadas regularmente. Las restantes son imágenes B. El GOP esta definido hasta la última imagen antes de la siguiente imagen I. Tienen largos variables , pero 12 o 15 son los valores mas comunes. Claramente, si los datos de las imágenes B van a ser tomados de imágenes futuras, esas imágenes deben estar disponibles tanto en el codificador como en el decodificador. Por lo tanto, la codificación bidireccional requiere el almacenamiento temporal de imágenes. La figura 2.14 también muestra que las imágenes P son enviadas antes que las B. Cabe notar además, que las últimas imágenes B no pueden ser enviadas sino hasta que la siguiente imagen I del siguiente GOP sea trasmitida, ya que se

requiere de este dato para codificar bidireccionalmente dichas imágenes B. Con el fin de regresar las imágenes en su secuencia correcta, se introduce una referencia de tiempo en cada imagen. Las marcas de tiempo son analizadas en la sección 4.4.2.

El almacenamiento temporal de imágenes requiere de cierta memoria adicional tanto en el codificador como en el decodificador , e introduce además cierto retardo. Se deberá controlar entonces la cantidad de imágenes B, para poder controlar dicho retardo.

La figura 2.15 muestra el compromiso existente entre factor de compresión y retardo en la codificación. Para una calidad dada, enviar solo imágenes I, requiere de mas del doble de bit rate que enviar IBBP.

Figura 2.14

(19)

Sección 3

Lo nuevo en MPEG-2

Introducción

La sección anterior introdujo con considerable detalle la forma en que MPEG realiza la compresión de video. Las técnicas mencionadas son comunes tanto para MPEG-1 como para MPEG-2 ya que se pidió al lector que se abstrajera de los conceptos que hay detrás del video entrelazado. Como veremos en esta sección, MPEG-2 introduce dos técnicas nuevas en el proceso de codificación aplicables a material entrelazado. Aparecerán por lo tanto en esta sección, los conceptos de campo y cuadro, y aprenderemos como MPEG-2 codifica eficientemente las imágenes entrelazadas. Recordemos que una de las aplicaciones mas importantes de este nuevo estándar es el de codificar señales de televisión para broadcasting, estando por lo tanto bajo el tratamiento de imágenes entrelazadas. La sección 3.2 explica el concepto de video entrelazado y la sección 3.4 enseña como MPEG-2 codifica dicho material. Como antes, remito al lector a consultar el glosario ante la aparición de palabras nuevas.

3.1 Perfiles y niveles

MPEG-2 es aplicable a un amplio rango de aplicaciones que requieren diferentes performance y complejidad. Para propósitos prácticos, el estándar MPEG-2 es dividido en perfiles y cada perfil es dividido en niveles (ver figura 3.1). Un perfil es básicamente el grado de complejidad esperado en el codificador. Un nivel es un conjunto de parámetros tales como el tamaño de la imagen o el bit rate usado en ese perfil. Se puede decir que un perfil limita la complejidad, es decir, los algoritmos, y un nivel limita los parámetros tales como bit rate, dimensiones de cuadro, frames rates, etc.

En principio hay 24 combinaciones posibles, pero no todas han sido definidas. Un

decodificador teniendo asignado cierto perfil y nivel, debe ser capaz de decodificar perfiles y niveles mas bajos.

El perfil simple no soporta codificación bidireccional , con lo que solo tendrá a su salida imágenes I y P. Esto reduce el retardo en la codificación y decodificación y permite hardware mas simple. El Simple Profile ha sido definido solamente al Main Level (SP@ML) . El Main Profile fue diseñado para un amplio uso. El Low Level usa una baja resolución de entrada teniendo solo 352 píxeles por línea. La mayoría de las aplicaciones broadcasting requerirán del subconjunto MP@ML (Main Profile at Main Level) que soporta SDTV (Estándar Definition TV).

El High Level –1440 es una forma de alta definición que duplica la definición del ML. Este nivel, no solo duplica la resolución sino que también la mantiene para el formato 16:9 incrementando el número de muestras horizontales de 1440 a 1920.

3.1.1 Perfiles escalables

No todas las aplicaciones tienen un simple y bien definido usuario final. Servicios tales como Modo de Transferencia Asincrónico (ATM ) y HDTV con compatibilidad hacia atrás con la TV necesitan entregar mas de una resolución y calidad. MPEG-2 tiene definido tres perfiles escalables que permiten que una imagen completa sea decodificada con solo una parte del bitstream. Estos tres tipos son: SNR (Signal to Noise Ratio ), Spatial y High. Se requiere que solo el perfil High escalable soporte el formato 4:2:2 además del 4:2:0.

Las imágenes comprimidas son ensambladas en diferentes capas, una capa principal y una o varias capas de ayuda. La capa principal puede ser decodificada sola para obtener una imagen de cierta calidad. Si a esta última le sumamos las demás capas de ayuda, se puede mejorar la calidad de la imagen y/o la resolución.

(20)

Figura 3.1

Por ejemplo, un codificador MPEG convencional podría recuantizar una imagen en forma bastante severa , generando una imagen codificada con considerable ruido de cuantización. Ahora, si se decodifica localmente esa imagen y se resta píxel a píxel con la imagen original , se obtendrá una imagen de ruido. Esta imagen puede ser comprimida y trasmitida como señal de ayuda. Un decodificador simple podría solo decodificar la señal principal, obteniendo una imagen ruidosa, pero uno mas sofisticado decodificaría las dos señales para obtener una imagen de mejor calidad. Este es el principio de la escalabilidad SNR.

En forma alternativa, codificar solo las frecuencias espaciales mas bajas de una imagen HDTV , produciría una bitstream principal que un decodificador de SDTV podría decodificar. Si esta imagen de baja definición se resta de la imagen original, se obtendría una imagen con solo las frecuencias mas altas presentes. Esta imagen se podría codificar y trasmitir como señal de ayuda. Un decodificador podría decodificar ambas señales, la principal y la de ayuda para recrear la imagen de HDTV. Este es el principio de escalabilidad Espacial.

El High Profile soporta ambas formas de escalabilidad ,permitiendo además el muestreo 4:2:2

El perfil 4:2:2 ha sido desarrollado para mejorar la compatibilidad con equipos de producción digital. Este perfil permite el uso de 4:2:2 sin la necesidad de recaer en la complejidad del High Profile. Por ejemplo, en HP@ML ,el decodificador deber soportar escalabilidad SNR ,que no es requerida para producción. El perfil 4:2:2 tiene la misma libertad de estructura de GOP que los demás perfiles, pero generalmente se usa con GOP’s cortos que facilitan la edición. La operación con 4:2:2 requiere un bit rate mas alto que 4:2:0, y el uso de GOP’s cortos requiere aun mas bit rate para un nivel de calidad dado. Existe además , un tercer modo de escalabilidad en la compresión, llamada escalabilidad temporal. Esta técnica consiste en codificar la secuencia de cuadros a una velocidad mayor a la habitual (mayor quizás a 25 frames/seg ), de forma que se mantenga la compatibilidad hacia atrás con los compresores que trabajan con velocidades mas bajas. La velocidad temporal mas baja sirve como base para la codificación de la velocidad mas alta. Se codifican los cuadros a velocidad baja y luego se agregan

(21)

cuadros a la secuencia predecidos en base a la secuencia de velocidad alta. Algunos sistemas pueden solo decodificar la secuencia base de baja velocidad ,y otros pueden decodificar ambas y multiplexarlas para obtener la velocidad mas alta.

3.1.2 Reparto de datos en MPEG-2

Las redes ATM, difusiones terrestres, medios magnéticos, y otras aplicaciones tienen a veces dos canales disponibles para transmisión y/o almacenamiento. El bitstream de video es separado de tal forma que un canal contenga información crítica como headers, vectores de movimiento, y los coeficientes de baja frecuencia de la DCT, y el otro contenga la información menos crítica como los coeficientes de alta frecuencia de la DCT. Este segundo canal puede ser enviado con menos protección de error.

El reparto de datos no es compatible hacia atrás con otros bitstreams de video MPEG-2.

3.2 Video entrelazado

En sistemas de televisión, la exploración consiste en barridos horizontales rápidos combinados con barridos verticales mas lentos, de manera que la imagen queda explorada en líneas. Al final de cada barrido vertical o cuadro, el proceso vuelve a repetirse. Los monitores para computadoras explorar de esta manera, pero en la mayoría de los sistemas de radiodifusión el proceso de exploración consiste en entrelazado 2:1. En un proceso de barrido entrelazado, la velocidad de barrido vertical se duplica, de modo que haya espacio entre las líneas escaneadas. El barrido vertical o campo, tarda la mitad de tiempo y contiene la mitad de las líneas. En el segundo campo, las áreas que se perdieron son ahora escaneadas. La figura 3.2 muestra dicho concepto. Las líneas de ambos campos se entrelazan verticalmente de forma automática al finalizar la exploración, de forma de formar la imagen completa.

Figura 3.2

El escaneo entrelazado usado en los formatos estándar de televisión NTSC, PAL y SECAM, visualiza solo la mitad de las líneas horizontales de una vez / pasada (el primer campo que contiene todas las líneas de número impar es visualizado y a continuación se visualiza el segundo campo que contiene todas las líneas de número par). El entrelazado se basa en una característica de nuestros ojos que es la persistencia de la visión (la cual podría únicamente ser sicológica, no física), así como también en la persistencia del fósforo en el tubo de imagen de la televisión para mezclar los campos resultando en una única imagen.

3.3 Entrelazado y Pulldown 3:2

Una cámara de película filma a 24 cuadros por segundo, mientras que una cámara de video escanea campos de líneas pares e impares alternativamente a intervalos de 1/50 segundos. El DVD esta diseñado especialmente para ser visualizado en visualizadores de escaneo entrelazado, que cubren el 99.9% de los mil millones de TVs en todo el mundo. Sin embargo, la mayoría del contenido DVD viene de películas que son originalmente progresivas. Para hacer que una película funcione en formato entrelazado, el video de cada cuadro de película es partido en dos campos de video –240 líneas en un campo y otras 240 líneas en el otro—y codificado como campos separados en el torrente MPEG-2. Otra complicación es que la película va a 24 cuadros por segundo, mientras que la televisión va a 30 cuadros (60 campos) por segundo para NTSC o 25 cuadros (50 campos) por segundo para PAL y SECAM. Para visualizar en PAL/SECAM, la solución más

(22)

velocidad de 25/segundo, lo cual es acelerar la película un 4%, y acelerar el audio para que vaya a la par. Para visualización en NTSC, la solución es extender esos 24 cuadros a lo largo de 60 campos alternando la visualización del primer cuadro de película para dos campos de video y el siguiente cuadro de película en tres campos. Esto se llama pulldown 3:2. La secuencia funciona como se muestra debajo, donde A-E representan cuadros de película y A1, A2, B2, etc representan la separación de cada cuadro de película en dos campos de video.

Figura 3.3

Para codificar en MPEG-2, los campos repetidos (B1 y D2) no se almacenan dos veces. En vez de ello, se pone una marca para decir al decodificador que repita el campo. (El orden aparentemente invertido de C2-C1 y D2-D1 es debido al requerimiento de que deben alternarse los campos arriba y abajo). El MPEG-2 también tiene una marca para indicar cuando un cuadro es progresivo (que los dos campos vengan del mismo instante en el tiempo). Para contenidos de película, la marca de cuadro-progresivo debería estar a valor verdadero para cada cuadro.

3.4 MPEG-2 y el video entrelazado

Una de las mas grandes motivaciones para crear un nuevo estándar MPEG-2 fue el de dar un soporte para fuentes de video entrelazadas. El estándar MPEG-1 estaba enfocado a velocidades de alrededor 1.5 Mbps , y era asumido que la señal de video fuente había sido digitalizada a alrededor de 352x240 para 60 Hz (e.g U.S) y 352x288 para 50 Hz (e.g Europa). Las señales de video estándar llevan el doble de líneas que las mencionadas anteriormente, con un formato entrelazado. La forma mas simple de generar una imagen de la mitad de tamaño era quedarse con un solo campo de la señal de video, el otro

era descartado. Ya que se usa un solo campo de la

imagen, estos campos muestreados formaban una secuencia de video progresivamente escaneada. El MPEG-1 por lo tanto, incluía parámetros de codificación y algoritmos para secuencias progresivamente escaneadas solamente.

Como MPEG-2 esta enfocado a la codificación de señales de video de calidad broadcasting, es necesario codificar la fuente de video en su ancho de banda completo, resultando en campos tanto pares como impares en la secuencia. Ya que estos campos están separados por un intervalo de tiempo, codificar la secuencia utilizando MPEG-1 no arrojará los mejores resultados, ya que este algoritmo asume que no hay diferencia de tiempo entre líneas consecutivas en la imagen. El estándar MPEG-2 introduce una nueva forma de codificar imágenes entrelazadas mediante las inclusión de dos técnicas “basadas en campo” :predicción basada en campo y DCT basada en campo. En MPEG-2 , el término picture (imagen) se refiere ya sea a cuadro (frame) o campo (field). Por lo tanto, una representación codificada de una imagen puede ser reconstruida ya sea como campo o como cuadro. Durante la codificación, el codificador debe elegir si codificar una imagen como un cuadro o como dos campos. Si selecciona esta última forma de codificación, cada campo se codifica por separado, cada uno teniendo un tamaño vertical igual a la mitad de la imagen completa.

Con este esquema ,una imagen codificada Intra consiste de un cuadro Intra, de dos campos Intra, o de un campo Intra seguido de un campo P. La predicción de este último es en base al cuadro anterior Intra.

Una imagen codificada como Inter (P) , consiste de una imagen Inter o de dos cuadros Inter, al igual que las imágenes codificadas como bidireccionales (B) .

En el modo codificación como cuadro, la predicción puede hacerse ya sea en base a campo o en base a cuadro. La predicción basada en cuadro, usa un vector por dirección (forward o backward) para describir el movimiento relativo al cuadro de referencia.

(23)

En contraste, la predicción basada en campo usa dos vectores de movimiento, uno proveniente de un campo par y el otro del campo impar. Por lo tanto, pueden haber hasta cuatro vectores por macrobloque (dos por cada dirección forward o backward).

En el modo codificación como campo, la predicción es solo en el modo campo, pero puede ser relativa ya sea al campo par como al impar.

Independientemente del modo de predicción, cada macrobloque en una imagen codificada como cuadro, puede ser codificado mediante

DCT basada en campo o basada en cuadro, como se muestra en la figura 3.4 y 3.5. La DCT basada en cuadro ,es la misma que la DCT de MPEG-1. La DCT basada en campo, en cambio, opera sobre filas alternadas, es decir, las filas de un mismo campo, son juntadas en un mismo bloque 8x8. El porque de esta forma de codificación, viene del hecho que quizás estén mas correlacionadas líneas de un mismo campo que líneas consecutivas en la imagen, debido esto al intervalo de tiempo que existe entre un campo y el otro.

Figura 3.4.DCT basada en cuadro

(24)

3.5 Exploración (Scanning)

Después de realizar la DCT a un bloque 8x8 píxeles, se nota que generalmente los coeficientes mas significativos se encuentran en la parte superior izquierda de la matriz. Una vez evaluados, los coeficientes menos significativos pueden ser redondeados a cero. Se logra de este modo una transmisión de datos mas eficiente, ya que se transmiten primero los coeficientes distintos de cero, y luego un código que indique que los demás coeficientes son todos cero. La exploración es una técnica que aumenta la probabilidad de alcanzar este resultado, porque ella envía los coeficientes en forma descendente según su probabilidad. La figura 2.6ª y 2.6b, muestran que en un sistema ya sea entrelazado o no, la probabilidad de hallar coeficientes de mayor peso ,es mas alta en la parte superior izquierda de la matriz que en la inferior derecha. La figura 2.6ª muestra que una buena exploración para una imagen progresiva es el zig-zag, ya que las frecuencias horizontales y verticales no son en general muy diferentes. Una imagen entrelazada esta compuesta de dos campos entrelazados como se explicó en la sección 3.2. Si codificamos como entrelazado, estaremos codificando cada campo por separado, con lo cual las líneas en la imagen (el campo en cuestión), estarán separadas el doble de distancia que en un cuadro completo. Este distanciamiento entre líneas consecutivas en un campo, hace que las frecuencias verticales en esta imagen sean por lo general de mas peso que las sus duales horizontales.

En la figura 2.6b, se muestra la exploración para una fuente entrelazada. Se observa que la exploración se extiende dos veces mas por encima del área vertical intentando primero conseguir las frecuencias verticales antes que las horizontales. La figura 2.6b, muestra que esta exploración entrega primero las frecuencias espaciales verticales.

3.6 Entrelazada o progresiva?. Experiencia con Mobile.

En esta parte intentaremos determinar si una secuencia de imágenes ( mobile ) dada, fue

adquirida en forma entrelazada o progresiva. Para ello, tomaremos la secuencia y la codificaremos con MPEG-2 en formato entrelazado primero y luego en formato progresivo. Tomaremos para ambos esquemas de compresión, los siguientes parámetros de codificación: N=12, nº de frames en el GOP M=3, distancia I-P Frame_rate=25 Bit_rate=4 Mbps Profile: Main Level: Low

Para la compresión entrelazada se seteará

Alternate_scan=1 (para las los 3 tipos de imágenes)

Picture_format=1 (field_picture) Progressive_secuence=0

Progresive_frame=0

Para la compresión progresiva ,será

Alternate_scan=0 (para las los 3 tipos de imágenes)

Picture_format=0 (frame_picture) Progressive_secuence=1

Progresive_frame=1

Una vez codificadas las imágenes, compararemos la calidad (SNR) de cada cuadro medida contra la secuencia original.

Al codificar ambos esquemas con el mismo bit rate, podremos decir que la compresión que resulte en un mejor SNR, será la mas óptima. La pregunta que surge ahora es la siguiente, si la calidad de las imágenes codificadas bajo un esquema es mejor que el otro, ¿significa que la secuencia fue adquirida en ese formato?

De lo que si podemos estar seguros, es que si una secuencia fue adquirida en forma entrelazada, y el movimiento en la escena fue tal que los dos campos se correlacionan poco, entonces una codificación que tenga en cuenta esta baja correlación entre líneas consecutivas, será mejor que uno en donde se considere que las líneas fueron escaneadas en forma secuencial en el tiempo.

(25)

Si se tomaron imágenes cada 40 mseg (25 Hz), primero un campo y luego el siguiente, la velocidad de barrido vertical en la imagen habrá sido de 50 Hz, ya que en un tiempo de cuadro se deben barrer dos campos. Basta que en un lapso de 20 mseg haya ocurrido un cambio sustancial en la imagen para que las líneas consecutivas, es decir, los campos entrelazados, estén poco correlacionados. Este efecto se conoce como “combing”.

Bajo esta situación, sabemos que la codificación entrelazada que codifica ambos campos en forma independiente será la mejor. Sin embargo, sin no hubo un cambio sustancial entre los diferentes campos, es decir, en ausencia de combing, lo mejor será codificar como progresivo ya que la distancia entre líneas consecutivas en un campo hace menos eficiente a la DCT, ya que se enriquecen las frecuencias verticales.

3.7 Consecuencias del entrelazado

En esta parte, intentaremos verificar las consecuencias que aparecen cuando una imagen es escaneada en forma entrelazada estando presente el efecto de combing. Recordemos que el combing era producido por tomar dos campos independientes, habiéndose producido en ese intervalo de tiempo un movimiento sustancial en la escena. Bajo esta situación, veremos que aumentaran las frecuencias verticales en cada bloque 8*8 del cuadro, o al menos en esos bloques en donde estuvo presente el movimiento, ya que una línea y la otra no tendrán mucho que ver. En cuanto a las frecuencias horizontales, no se notarían grandes cambios.

La experiencia que haremos es un tanto exagerada, pero servirá para mostrar el efecto. Lo que haremos, será tomar el primer y último cuadro de la secuencia mobile, y formar un solo cuadro entrelazado. Tomaremos para ello el campo par de mobile0, y lo entrelazaremos con el campo impar de mobile23. El movimiento que se produce entre estos dos cuadros es mas que suficiente como para hacer aparecer el combing.

Luego de este proceso, calculamos la DCT por bloques en ambos cuadros, en mobile0, que suponemos que es progresiva, y en el nuevo cuadro formado, que es entrelazado.

Por último, y a los efectos de comparar un cuadro y el otro, opté por tomar de entre los 64 coeficientes de la DCT, el que mide la máxima frecuencia horizontal sin cambios verticales, y el que mide la máxima frecuencia vertical sin cambios horizontales (ver fig 3.6).

Figura 3.6

(26)

0 5 10 15 20 25 30 35 40 45 -100 -50 0 50 100 Frecuencias horizontales data1 data2 progresiva entrelazada 0 5 10 15 20 25 30 35 40 45 -1000 -500 0 500 1000 Frecuencias verticales # de bloque DCT 8*8 en la fila

Figura 3.7: Coeficientes correspondientes a bloques DCT 8*8 comprendidos entre las filas 160 y 168 de la imagen.

Comparando las frecuencias horizontales de ambas imágenes, notamos que no son muy diferentes, sin embargo, las frecuencias verticales en esa hilera de bloques 8*8 es sustancialmente mayor en la imagen entrelazada que en la progresiva.

Dejamos en evidencia con esto último, el efecto que se produce en una imagen cuando la actividad en la escena es de tal magnitud que los diferentes campos escaneados se correlacionan poco. Es justamente la aparición de importantes frecuencias verticales en los bloques, lo que hace ineficiente a la DCT cuando se codifica el cuadro completo sin separar los dos campos.

3.8 Codificación de Mobile

Una vez examinadas las consecuencias del combing, vayamos a codificar la secuencia mobile en dos formatos diferentes, para ver cual es el mejor. Con este experimento podremos intuir el formato de adquisición de dicha secuencia, en base al análisis de la sección 3.6.

3.8.1 Codificación de mobile como entrelazada

La figura 3.9 muestra la SNR vs nº de cuadro para la codificación de mobile bajo el esquema entrelazado. Recordemos que en esta forma de codificación, el codificador divide cada imagen en dos campos para codificarlos

individualmente. Note la variación de la SNR durante la primera mitad de la secuencia, debido a la adaptación del bit rate que realiza el codificador. Al comenzar con el buffer vacío, se va cuantizado la matriz DCT en forma cada vez mas fina, permitiendo mejor calidad en la secuencia. Una vez que se llena el buffer, la SNR adquiere un comportamiento estacionario. Es entonces la última mitad de la secuencia la que tomaremos como relevante para la comparación de la calidad de la imagen.

(27)

0 5 10 15 20 25 17 18 19 20 21 22 23 24 nº de cuadro SN R ( d B )

SNR vs nº de cuadro para ambos campos

Campo par Campo impar

Figura 3.9

La grafica mostrada corresponde a la secuencia de imágenes en el orden real de ocurrencia en el tiempo, distinto del orden de codificación. Corresponde por lo tanto a la secuencia IBBPBBPBBPBB. Recordemos que el codificador necesita de las imágenes P para codificar las imágenes B anteriores. Además del comentario anterior sobre la tendencia estacionaria de la SNR producida por la realimentación que brinda el buffer, vale la pena comentar también porque las imágenes B resultan las de peor calidad en la secuencia codificada (analice el gráfico anterior). Esto es así porque las imágenes B se codifican siempre después que una imagen I o P, y estas imágenes tienden a llenar el buffer ya que no usan

compensación bidireccional. Por lo tanto cuando le llega el momento una imagen B, la realimentación habrá hecho que la cuantización se haga mas severa para alivianar el buffer., con lo cual la calidad de dichas imágenes es la peor de las tres. Luego, como las imágenes B incurren en pocos bits para el buffer, este se vacía y la cuantización se aligera un poco otra vez y el proceso se repite.

3.8.2 Codificación de mobile como progresiva

La figura 3.10 nos muestra la SNR, cuando elegimos la forma de codificación progresiva para la secuencia, y la figura 3.11 compara la SNR de ambos esquemas.

(28)

0 5 10 15 20 25 19 20 21 22 23 24 25

SNR vs # de cuadro para codificacion progresiva

# de cuadro SN R ( d B ) Figura 3.10 0 5 10 15 20 25 17 18 19 20 21 22 23 24 25 nº de cuadro SN R ( d B ) progresiva entrelazada

Figura 3.11. Comparación de ambos esquemas de codificación

Claramente, observamos una mejor calidad en las imágenes comprimidas en forma progresiva, en donde no se tienen en cuenta los campos, que en la forma entrelazada donde se codifica cada campo por separado.

En base a los razonamientos mencionados, diremos que , o bien mobile es progresiva o bien es entrelazada pero en ausencia de “combing”.

(29)

El codificar cada imagen como dos cuadros separados, hace que la DCT sea menos eficiente ( en ausencia de combing) ya que baja la correlación entre píxeles verticales debido al espaciamiento de las líneas. Dicho de otra manera, las frecuencias verticales se vuelven mas importantes .

Al codificar línea por línea, reducimos el peso de dichas frecuencias y hacemos que la información de cada macrobloque se concentre en las bajas frecuencias, haciendo mas eficiente la codificación.

(30)

Sección 4

ISO/IEC 13818-1 :La capa del sistema

de MPEG-2

Resumen

La especificación de Sistema de MPEG-2 describe como las cadenas de datos comprimidos de audio y video pueden ser multiplexados juntas con otros datos para formar una simple cadena de datos (single data stream) disponible para transmisión y/o almacenamiento. Esta sección cubre los principios y terminología de la capa del sistema de MPEG-2. Aquí se cubren tres áreas fundamentales: Primeramente, las estructura de los diferentes múltiplex; segundo, la información de servicio que pueden presentar, y tercero, el sistema de marcas de tiempo y referencias de reloj utilizadas para sincronizar en el decodificador componentes de programa relacionados.

En la capa de sistema de MPEG-2, se especifican dos posibles alternativas de multiplexión. La cadena de programa (programme stream), fue diseñada pensando en el almacenamiento y reproducción de un simple programa a partir de un dispositivo de almacenamiento digital (eventualmente libre de ruido), mientras que la cadena de transporte (transport stream), fue pensada para la entrega simultánea de múltiples programas sobre canales con ruido. Ambos múltiplex facilitan la inclusión de información específica de programa (Programme Specific Information, PSI) que detallan el/los programas y las cadenas elementales presentes. Los múltiplex también usan un sistema de marcas de tiempo y referencias de reloj para asegurar la reproducción sincrónica de cadenas elementales relacionadas, y el correcto comportamiento de los buffers en el decodificador. En la figura 4.1 se esquematiza la producción de las cadenas de programa y de transporte. Mas adelante se hablará en detalle de ambas. Hay muchos elementos de sintaxis opcionales y muchas

oportunidades de incluir elementos de sintaxis privadas (definidas por el usuario) para optimizar una aplicación particular.

4.1 Sobre la notación

Cuando hablemos de un programa nos estaremos refiriendo a un servicio particular que esta siendo codificado, como una secuencia de video con su audio asociado y quizás algunos datos auxiliares (ver figura 4.1). Si paralelamente se codifica otra secuencia de video, o simplemente audio, en un canal o dos, diremos que se trata de otro programa.

La palabra cadena, se tomó como traducción de stream, y es simplemente una sucesión de bits de audio o video.

Un múltiplex es simplemente una forma de multiplexar cadenas de datos. MPEG-2 define dos diferentes tipos de múltiplex, el de programa y el de transporte.

4.2 Unidades de presentación y unidades de acceso

La figura 4.2 muestra una secuencia de video sin comprimir siendo codificada MPEG a un bit rate de 5 Mbps. Cada imagen en la secuencia sin comprimir se denomina unidad de presentación. El codificador codifica cada unidad de presentación para formar una imagen codificada que se denomina unidad de acceso. Note que las unidades de acceso no son todas del mismo tamaño. El tamaño depende de si la imagen es I, P o B.

(31)

Figura 4.1. Generación de cadenas de transporte y programa en MPEG-2.

(32)

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

(33)

Referencias

Documento similar