Está en la página 1de 58

Introduccin a la compresin de video bajo el estndar MPEG-2.

Monografa para el curso de Codificacin de Imgenes y Video. Instituto de Ingeniera Elctrica de la Facultad de Ingeniera. Noviembre de 2002

Victor Paladino widgetp@adinet.com.uy

Contenido
Pag Introduccin general.............................................................................2 Seccin 1: Introduccin a MPEG 1.1 Por que es necesaria la compresin?...................................................3 1.2 Introduccin a la compresin de video................................................3 Seccin 2: ISO/IEC 13818-2, MPEG-2 Video 2.1 Codificacin espacial o temporal?.......................................................5 2.2 Codificacin espacial...........................................................................6 2.3 Ponderacin..........................................................................................7 2.4 Scanning...............................................................................................8 2.5 Codificacin entropica.........................................................................9 2.6 Un codificador espacial........................................................................9 2.7 Codificacin temporal........................................................................10 2.8 Compensacin de movimiento...........................................................12 2.9 Codificacin bidireccional.................................................................13 2.10 Imgenes I, P y B.............................................................................14 Seccin 3: Lo nuevo en MPEG-2 Introduccin............................................................................................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 Exploracin (Scanning).....................................................................21 3.6 Entrelazada o progresiva?.................................................................21 3.7 Consecuencias del entrelazado..........................................................22 3.8 Codificacin de Mobile.....................................................................23 3.8.1 Codificacin de Mobile como entrelazada.........................23 3.8.2 Codificacin de Mobile como progresiva...........................24 Seccin 4: ISO/IEC 13818-1, La capa de sistema de MPEG-2 Resumen..................................................................................................27 4.1 Sobre la notacin...............................................................................27 4.2 Unidades de presentacin 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 4.4 Cadenas elementales paquetizadas (PES).........................................31

4.4.1 Paquetes PES.......................................................................31 4.4.2 Time Stamps32 4.4.3 PTS/DTS.32 4.5 Cadenas de Programa (Programme Streams)33 4.5.1 Grabacin vs Transmisin...33 4.6 La Cadena de Transporte (Transport Stream)...................................35 4.6.1 El header del paquete de transporte........................................35 4.6.2 Informacin 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 informacin especifica de programa...38 4.8 Como demultiplexar MPEG-2...........................................................41 Seccin 5: Referencias de Reloj .............................................................41 Resumen ...................................................................................................43 Glosario de trminos................................................................................43 Apndice A: Estructura de los paquetes PES y la cadena de transporte.....46 Apndice B: Estructura del pack header y el system header de un pack, componentes de una cadena de programa de MPEG-2.............................48 Apndice C : Submuestreo del canal de croma..........................................50 Apndice D : Un compresor MPEG...........................................................51

La aplicacin primaria de MPEG-2 fue la transmisin digital de seales de TV con buena calidad y a velocidades de 4 a 10 Mbps. Debido a esto, la principal caracterstica y diferencia con MPEG-1 es que MPEG-2 brinda un soporte para imgenes entrelazadas, es decir, se tomo en cuenta el hecho de que las cmaras de TV forman una imagen tomando primero un campo y luego el otro. Ya que estos dos campos estn separados por un intervalo de tiempo, codificar la secuencia con MPEG-1 no producira los mejores resultados, ya que MPEG-1 asume que no hay diferencia de tiempo entre lneas sucesivas en la imagen. El estndar MPEG-2 provee una forma de codificar imgenes entrelazadas incluyendo dos tcnicas basadas en campo: prediccin basada en campo y DCT basada en campo. Otras mejoras, como la introduccin de una DCT con precisin de 10 bits en el coeficiente DC, cuantizacin no lineal, tablas VLC y control mejorado de mismach (para los vectores de movimiento ) han sido introducidas en este nuevo estndar que han brindado mejoras sustanciales aun para material progresivo. Otra especificacin clave del MPEG-2 son las extensiones escalables ,que permiten la divisin de la seal de video en dos o mas cadenas de bits representando el video a diferentes resoluciones, calidad de imagen ,o cadencia de cuadros.

Introduccin general
En Marzo de 1995 se complet el estndar MPEG-2, compuesto de 9 partes, con el numeral ISO/IEC 13818. El nombre completo es Information TechnologyGeneric Coding of Moving Pictures and Associated Audio ISO/IEC 13818. Las primeras 5 partes estn organizadas como en MPEG-1 (Sistema, Video, Audio, Conformacin y Software). Las 4 partes adicionales son listadas a continuacin. La parte 6, Digital Storage Medium Command and Control (DSM-CC), provee la sintaxis para controlar el estilo de reproduccin y acceso aleatorio de los bitstreams codificados y almacenados en medios digitales tales como el DVD. Los comandos de reproduccin 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 extensin a la parte de video de MPEG-2 (13818-2) y define la sintaxis y semntica para la representacin de video codificado con una precisin de 10 bits por muestra. La parte 9, Real Time Interface (RTI), define una sintaxis para seales de control de video bajo demanda. Este trabajo no pretende dar al lector informacin 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 compresin de video, con lo cual se dar una breve introduccin en la seccin 1. En la seccin 2, se explica detalladamente la forma en que MPEG consigue llevar a cabo la compresin de una secuencia de video. Se explican con detalle las tcnicas de compresin espacial y temporal, compensacin de movimiento, y el uso de la transformada del coseno como herramienta para dicha compresin. Todas las tcnicas mencionadas, con excepcin de algunas sern similares a las usadas en MPEG-1. Cada vez que aparezca una nueva tcnica o algoritmo introducido por MPEG-2 se har mencin de eso. Veremos que una de las diferencias importantes entre ambos estndares de compresin , 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 estndar es la transmisin de seales de televisin, en donde se adquieren las imgenes en forma entrelazada. El concepto de video entrelazado, as como tambin los perfiles y niveles que define MPEG-2, sern tratados en detalle en la seccin 3. En la primera parte de dicha seccin, se hablaran de los perfiles y niveles que define MPEG-2 para lograr la adaptacin a las diferentes necesidades de los usuarios. Aparecer el concepto de escalabilidad, como alternativa de adaptacin a la calidad de la compresin. La segunda parte de esta seccin, trata en detalle el video entrelazado explicando como se forma una imagen entrelazada, que consecuencias trae para la compresin, y como MPEG-2 sortea estas complicaciones para codificar de manera mas eficiente. En la seccin 4, se trata la parte del sistema de MPEG-2 (ISO/IEC 13818-1). Aqu se explica como el estndar define la sintaxis de salida de un codificador, ya sea que la aplicacin sea almacenamiento del audio y/o el video, o la transmisin del mismo a travs de un canal ruidoso. Se intentar dar al lector la idea de porque se definen dos sintaxis diferentes dependiendo de una aplicacin u otra. Por ltimo, en la seccin 5, se tratan las referencias de reloj que usa MPEG-2 para sincronizar el material de audio y video y

mantener la sincrona tambin entre trasmisor y receptor. Todas las secciones que componen este trabajo estn 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 irn encontrando conceptos y palabras nuevas para el lector. A los efectos comprender mejor la lectura, se coloc al final del trabajo un glosario de trminos en donde el lector puede consultar en el momento que considere necesario.

4:2:2 (ver apndice C para submuestreo del canal de croma).

Seccin 1 Introduccin a MPEG


MPEG es uno de los mas populares estndares de compresin de video y audio, debido a que no es un simple estndar. En vez de eso, es un rango de estndares disponibles para diferentes aplicaciones, pero basados en principios similares. MPEG es el acrnimo de Moving Pictures Experts Group, establecido por la ISO para trabajar en compresin. Esta seccin es simplemente una breve introduccin a los conceptos que hay detrs de la compresin de video. Puede tomarse como referencia para la segunda seccin, en donde se tratan con detalle los conceptos mencionados aqu. 1.1 Por que es necesaria la compresin? El xito inicial del video digital fue en aplicaciones de post produccin, en donde la produccin de video generaba alrededor de 200 Mbps de datos, con lo cual se requera de gran capacidad de almacenamiento o gran ancho de banda para su eventual transmisin. La siguiente figura ilustra este concepto para la digitalizacin de una imagen de 625 lneas, 720 pxeles por lnea y una cadencia de cuadros de 30 cuadros por segundo, resultando en un ancho de banda de 216 Mbps para su eventual transmisin. El formato de submuestreo de croma usado es

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 codificacin 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 seal de audio), de manera tal de codificar solo lo necesario, y dejar que el decodificador adivine el resto, y posiblemente, como en la mayora de los casos, la eliminacin de determinada informacin no tan crtica para el observador. En las siguientes secciones se tratan con cierto detalle las tcnicas usadas por MPEG para llevar a cabo la compresin. 1.2 Introduccin a la compresin de video En todo material real ya sea de audio o video, hay dos tipos de componentes de seal: aquellos componentes que son nuevos o impredecibles y aquellos que pueden ser anticipados. Los componentes nuevos son llamados entrpicos y corresponden a la verdadera informacin en la seal. 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 pxeles cercanos tienen todos el mismo valor, o temporal ,en donde se explota la similitud de imgenes sucesivas. En 3

sistemas de codificacin sin prdidas, se intenta que el codificador extraiga la redundancia de la seal y enve solo la entropa al decodificador. En sistemas con prdidas, se elimina cierta informacin irrelevante o no tan crtica para el observador antes de analizar los componentes importantes en la seal. Solo la entropa es almacenada o transmitida y el decodificador calcula la redundancia con la seal recibida. La figura 1.1 ilustra este concepto.

aplicacin. 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 definicin podra tener 6 veces el bit rate de un sistema de definicin estndar. Consecuentemente, conocer solo el bit rate a la salida del codificador no es muy til. Lo que importa es la razn de compresin, que es la relacin entre el bit rate a la entrada del codificador y el bit rate a la salida del mismo. Desafortunadamente, el nmero de variables involucradas, hace difcil determinar el factor de compresin adecuado. La figura 1.1 muestra que si toda la entropa es enviada, la calidad es buena. Sin embargo, si el factor de compresin es incrementado con el fin de reducir el bit rate, la calidad decae. Para identificar la entropa completamente, un codificador debera ser muy complejo. Un compresor prctico, deber enviar mas datos generalmente, para asegurarse de llevar la entropa en ellos. La figura 1.1b muestra la relacin entre complejidad y performance. A un nivel de calidad dado, se requiere de un compresor mas sofisticado para lograr altas razones de compresin. La entropa en seales de video vara. En el proceso de codificacin, algunas imgenes tendrn mas entropa que otras y por lo tanto requerirn de mas datos para ser representadas, si lo que queremos es mantener la calidad de la codificacin constante. Bajo este esquema de codificacin, tendremos calidad constante pero bit rate variable, con lo cual se introduce un buffer a la salida del codificador que absorba dichas variaciones de entropa y produzca un bit rate constante a la salida. En la codificacin de video bajo el estndar MPEG, aparecen dos conceptos importantes y claramente diferenciados: la codificacin Intra (Intra Coding) y la codificacin Inter (Inter Coding). Codificacin Intra es una tcnica que explota la redundancia espacial o dentro de una imagen y codificacin Inter explota la redundancia temporal. La Intra Coding puede ser usada sola como en JPEG , o puede ser

Figura 1.1

Un codificador ideal debera transmitir solo la entropa y un decodificador ideal debera reconstruir la seal completa con esa informacin. En la prctica sin embargo, no se puede alcanzar la idealidad. Un codificador ideal requerira de un retardo muy grande para poder extraer solo la redundancia de la seal, retardo que es inconcebible para determinadas aplicaciones en tiempo real. En algunos casos, un codificador ideal sera muy caro. Se sigue entonces que no hay un sistema de compresin ideal. En la prctica 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 compresin, sino un rango de herramientas de compresin que pueden ser combinadas eficazmente para diferentes necesidades. MPEG-2 introduce el concepto de perfiles y niveles, que justamente permiten la eleccin mas apropiada para determinada

combinada con Inter Coding, como en MPEG. Intra coding relaciona dos propiedades de las imgenes tpicas. Primero, no todas las frecuencias espaciales estn simultneamente presentes y segundo, los componentes de frecuencias espaciales altas son de mas baja amplitud que las bajas. Intra coding requiere del anlisis de frecuencias espaciales en una imagen. Este anlisis es el propsito de transformadas como wavelets o la DCT. Las trasformadas producen coeficientes que describen la magnitud de cada componente espacial frecuencial. Tpicamente, muchos coeficientes sern cero, con lo que se omitirn ,y se lograra por lo tanto una reduccin en el bit rate. La seccin 2.2 trata en detalle la codificacin Intra, o codificacin espacial. Inter coding, relaciona las similitudes entre imgenes 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 estimacin de movimiento, ya que un objeto en una imagen generalmente solo cambiar de posicin, no de apariencia. Si el movimiento puede ser medido, puede ser creada una aproximacin 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 codificacin Inter es tratada en detalle en la seccin 2.7 conjuntamente con la compensacin de movimiento en la seccin 2.8 y la codificacin bidireccional en la seccin 2.9. MPEG-2 maneja tanto imgenes progresivas como entrelazadas, llamando picture a una imagen dada en alguna posicin temporal , independientemente si es campo o cuadro (ver el glosario para las definiciones). La codificacin temporal es ahora mas difcil, ya que los pxeles en un campo estarn en otra posicin en el siguiente. La compensacin de movimiento minimiza pero no elimina la diferencia entre imgenes sucesivas. La imagen diferencia puede ser ahora tratada como imagen Intra, con la tcnica

descrita anteriormente. La compensacin de movimiento simplemente minimiza la cantidad de datos en la imagen diferencia. Claramente, las imgenes codificadas temporalmente son difciles de editar, ya que su contenido depende de alguna imagen quizs ya trasmitida tiempo atrs. Los sistemas de produccin tendrn que limitar el grado de codificacin temporal para permitir la edicin y esto afectara el lmite de la compresin.

Seccin 2 ISO/IEC 13818-2 MPEG-2 Video


En esta seccin se tratan en detalle los conceptos introducidos en la seccin anterior. Se explicar como MPEG lleva a cabo la compresin de una secuencia de video haciendo uso de la compresin tanto espacial como temporal. Todas las tcnicas mencionadas en esta seccin son heredadas de MPEG-1. Como se mencion anteriormente, en MPEG-2 aparece el concepto de video entrelazado, pero no sino hasta la seccin 3 se hablara de esto. En dicha seccin, 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 prxima seccin. 2.1 Codificacin espacial o temporal? Como se vio en la primera seccin, la compresin de video saca partido tanto de la redundancia espacial como la temporal .En MPEG la redundancia temporal es extrada usando similitudes entre imgenes sucesivas. Tanto como sea posible, la imagen actual es estimada a partir de imgenes recientemente enviadas. Cuando se usa esta tcnica, solo se necesita enviar la diferencia entre la imagen estimada y la actual. La imagen diferencia es entonces sujeta a codificacin espacial. Es mas fcil comenzar explicando la codificacin espacial antes que la temporal. La compresin espacial se relaciona con las similitudes entre pxeles adyacentes en reas planas de la imagen y en frecuencias espaciales 5

dominantes en el modelo. JPEG solo utiliza compresin espacial ya que fue diseado para comprimir imgenes fijas. No obstante, JPEG puede usarse para codificar una sucesin de imgenes para video en el as llamado Motion JPEG. En este esquema, la compresin no es tan buena como en MPEG, pero la capacidad de edicin es interesante, ya que se puede editar cuadro a cuadro. 2.2 Codificacin espacial El primer paso en la codificacin espacial, es desarrollar un anlisis 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 seal de entrada por su respectiva funcin base e integrando el producto. La figura 2.1 muestra que cuando la seal de entrada no contiene la funcin base, este producto da cero, pero si la contiene, la integral dar un coeficiente que describe la amplitud de esa componente.

La transformada de Fourier tiene la desventaja de requerir de coeficientes para los trminos seno y coseno de cada frecuencia. En la trasformada del coseno, la seal 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 seal. 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 versin muestreada de la transformada del coseno, y es usada ampliamente en dos dimensiones. Un bloque de 8x8 pxeles es transformado en un bloque de 8x8 coeficientes. Ya que la operacin requiere la multiplicacin por fracciones, algunos coeficientes tendrn longitud de palabra mas larga que los valores de los pxeles. Tpicamente, un bloque de pxeles de 8 bits , incurrir en un bloque de coeficientes de 11 bits. Por lo tanto, la DCT no produce una compresin, sino lo contrario. No obstante, la DCT convierte la fuente de pxeles en una forma en donde es mas fcil la compresin. 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. Movindonos a lo largo de las filas, se incrementa la frecuencia horizontal, y a lo largo de las columnas se incrementa la frecuencia vertical.

Figura 2.1

Los resultados sern como se describieron , si la componente de frecuencia de la seal esta en fase con la funcin base. Si la componente esta en cuadratura con la funcin base, la integral ser cero. Por lo tanto ser necesario realizar dos bsquedas para cada frecuencia, una con la funcin base en fase y otra en cuadratura , para encontrar las componentes en cuadratura en la seal.

2.3 Ponderacin La figura 2.4 muestra que la percepcin humana al ruido no es uniforme, sino que es funcin de la frecuencia. Mas ruido puede ser tolerado a altas frecuencias.

Figura 2.3

En una imagen real, pueden ocurrir componentes de frecuencia diferentes en las diferentes direcciones, y un coeficiente en algn punto del bloque representar el peso de determinada frecuencia de dos dimensiones. Claramente, para imgenes en color, las muestras de diferencia de color tambin deben ser tratadas. Los datos Y, Cr y Cb son tratados individualmente en la codificacin. En mucho material real, muchos coeficientes tendrn valor cero o cerca de cero, y no sern transmitidos. Esto resulta en una significante compresin que resulta virtualmente sin prdidas. Si se necesita una compresin mayor, se tendr que reducir la longitud de palabra de los coeficientes distintos de cero, introduciendo una prdida en el proceso. Con cuidado, las prdidas pueden ser introducidas en una forma que sean menos visibles al observador.

Figura 2.4

La compresin 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 cdigo, 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 ponderacin, los coeficientes de mas baja frecuencia son divididos por nmeros pequeos y los de alta frecuencia por nmeros mas grandes. Siguiendo a la divisin, se produce el truncamiento del coeficiente, lo que resulta en una recuantizacin. Como resultado, los coeficientes de baja frecuencia espacial son recuantizados con pasos pequeos y los de alta frecuencia con pasos mas grandes y llevan mas ruido que los anteriores.

Figura 2.5

2.4 Scanning En el decodificador, los coeficientes se multiplicarn por sus valores correspondientes de forma tal de recuperar los coeficientes de la DCT con ruido de cuantizacin superpuesto. Por supuesto, este ruido ser mayor a las altas frecuencias. Claramente, el grado de compresin obtenido y el subsecuente bit rate, es funcin de la severidad del proceso de recuantizacin. Diferentes bit rates requerirn diferentes tablas de cuantizacin y en MPEG-2 es posible usar diferentes tablas para la compresin y trasmitirlas al receptor para la correcta decodificacin. En material de video tpico, los coeficientes significativos de la DCT se encuentran en la esquina superior del bloque de coeficientes. Despus de la recuantizacin, los coeficientes de mas alta frecuencia posiblemente se habrn reducido a cero. Podra ser obtenida una forma de codificacin mas eficiente si primero se trasmitieran los coeficientes distintos de cero y luego un cdigo indicando que los restantes coeficientes son cero. El Scanning es una tcnica que permite llevar a cabo esto ltimo, ya que enva 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.

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 parecern ser el doble de grandes que las horizontales. Por lo tanto, el escaneo ideal para imgenes 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 Codificacin entrpica En video real, no todas las frecuencias espaciales aparecen simultneamente. Por lo tanto, muchos coeficientes de la DCT sern 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 prctica, algunos valores ocurren mas frecuentemente que otros. Esta informacin estadstica puede utilizarse para llevar a cabo una mejora en la compresin con cdigos 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 (cdigo instantneo). 2.6 Un codificador espacial La figura 2.7 muestra todos los conceptos descritos anteriormente sobre codificacin espacial.

Figura 2.7

En la figura 2.7 se asume que la seal de entrada es 4:2:2 (ver apndice C sobre submuestreo de canal de croma) con 8 a 10 bits por pxel. MPEG trabaja con resolucin de 8 bits, por lo cual ser necesario una etapa de redondeo cuando la seal de entrada tiene palabras de 10 bits. La mayora de los perfiles de MPEG trabajan con muestreo 4:2:0, por lo que ser necesario tambin una etapa de filtrado pasabajo vertical . Esto elimina informacin de la imagen y tambin baja el bit rate. La etapa DCT transforma la informacin de la imagen al dominio de la frecuencia. Luego, los coeficientes son ponderados y truncados, obteniendo la primera compresin significante. Estos coeficientes son escaneados en zig-zag por las razones mencionadas anteriormente. Despus del ltimo coeficientes distinto de cero, se genera un cdigo end of block (EOB). Luego son comprimidos con RLC y VLC. En un sistema de bit rate variable, la cuantizacin es fija, pero en un sistema de bit rate fijo se necesita de un buffer para absorber las variaciones en el proceso de codificacin. Imgenes con muchos detalles tendern a llenar el buffer, mientras que imgenes mas

homogneas tendern a vaciarlo. Si el buffer esta en peligro de over flowing , la cuantizacin se deber hacer mas severa para bajar el bit rate. En el decodificador, el bit stream es deserealizado y la codificacin entrpica es revertida para obtener los coeficientes ponderados. Se realiza la ponderacin 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 lnea a la vez. Para obtener una salida 4:2:2 a partir de una 4:2:0, se debe realizar una interpolacin vertical como se muestra en la figura 2.8. 2.7 Codificacin temporal La redundancia temporal puede ser explotada realizando codificacin Inter, es decir, trasmitiendo solo las diferencia de imgenes. La figura 2.9 muestra que un retardo de una imagen combinada con un sustractor, puede llevar a cabo la operacin.

10

Figura 2.8

Figura 2.9

La imagen diferencia es una imagen mas, y puede ser codificada espacialmente despus. El decodificador revierte de codificacin espacial y le suma la diferencia para obtener la siguiente imagen. Muchos sistemas de compresin realizan un offset en la imagen antes de aplicar la DCT, eliminando con esto los posibles valores negativos producidos en le proceso de codificacin. Hay algunas desventajas en este modelo. Primero, ya que solo son enviadas las imgenes diferencia, se hace imposible la decodificacin de la secuencia una vez comenzada la transmisin. Segundo, si alguna imagen diferencia contiene algn error, este se

propagar indefinidamente. La solucin a este problema es usar un sistema que no es completamente diferencial. La figura 2.10 muestra que peridicamente se envan imgenes Intra , que son codificadas solo espacialmente. Si ocurre un error o hay un cambio de canal , se podr resumir la decodificacin en la prxima imagen Intra. La figura 2.10 solo generaliza el concepto. En la seccin 2.10 y en la figura 2.14, se introduce el concepto de GOP, en donde se detalla la estructura de la secuencia de imgenes.

11

Figura 2.10

2.8 Compensacin de movimiento El movimiento reduce las similitudes entre las imgenes e incrementa la cantidad de datos

necesarios para crear una imagen diferencia. La compensacin de movimiento se utiliza para incrementar la similitud de las imgenes. La figura 2.11 muestra el principio.

Figura 2.11

Cuando un objeto se mueve en la pantalla puede aparecer en otra posicin 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 tamao del macrobloque depende de la codificacin 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 mnima 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 direccin 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 imgenes sucesivas.

12

Figura 2.12

Un macrobloque en la primera imagen es usado como referencia. Cuando la entrada es entrelazada, los pxeles estarn 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 correlacin entre la referencia y todos los posibles desplazamientos es medida con una resolucin de medio pxel sobre el rango entero de la bsqueda. Cuando se encuentra la correlacin mas grande , esta es asumida como la correlacin que representa al movimiento. Este vector de movimiento tiene una componente vertical y una horizontal. En material tpico, el movimiento es continuo a travs de las imgenes. Una mejora en la compresin se logra si estos vectores se transmiten diferencialmente. Consecuentemente, si un objeto se mueve a velocidad constante, los vectores diferenciales sern cero. Los vectores de movimiento estn 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 mvil 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 enva un vector, la parte estacionaria estar bien compensada pero habr que corregir la parte mvil. Un compresor inteligente podra comparar ambas tcnicas y quedarse con la que requiere menos datos diferenciales. 2.9 Codificacin bidireccional Cuando un objeto se mueve, va ocultando el fondo delante suyo y revelando el fondo que tiene detrs. El fondo revelado, requiere que sean trasmitidos nuevos datos ya que no hay informacin previa de ese fondo ahora revelado. 13

Lo mismo ocurre cuando la cmara realiza un paneo, van apareciendo nuevas reas de las cuales no se tena informacin de ellas. MPEG ayuda a minimizar este problema introduciendo la codificacin bidireccional, que permite que la imagen actual sea codificada teniendo en cuenta la informacin de imgenes antes y despus de la actual. La figura 2.13 muestra el concepto de codificacin bidireccional. Sobre una base de

macrobloques individuales, una imagen codificada bidireccionalmente puede obtener compensacin de movimiento de una imagen anterior o posterior , o an de un promedio de ambas. La codificacin bidireccional reduce la cantidad de datos diferencia , mejorando el grado de prediccin posible.

Figura 2.13

2.10 Imgenes I, P y B En MPEG, se necesitan tres tipos diferentes de imgenes para soportar codificacin diferencial y bidireccional, mientras se minimiza la propagacin del error. Las imgenes I, son codificadas Intra, y no requieren informacin adicional para la decodificacin. Requieren un montn de datos mas que las otras imgenes, y por lo tanto no se trasmiten mas que la cantidad necesaria. Consisten primariamente de coeficientes transformados y no tienen vectores. Estas imgenes permiten la conmutacin de canales y detienen la propagacin del error. Las imgenes P, son predichas hacia delante a partir de una imagen previa que puede ser una imagen I o una P. Los datos de estas imgenes contiene vectores que indican en que posicin en la imagen anterior estaba cada macrobloque y la diferencia que debe ser sumada para reconstruir ese macrobloque. Las imgenes P requieren, mas o menos, la mitad de datos que las imgenes I. Las imgenes B son predichas bidireccionalmente a partir de imgenes anteriores o posteriores I o P. Los datos en estas imgenes consisten de vectores que indican en que posicin en la imagen anterior o posterior deberan ser tomados los datos. Tambin contienen los coeficientes transformados de la diferencia que debe ser sumada para reconstruir el macrobloque. Estas imgenes son las que requieren menos datos para ser creadas.

14

La figura 2.14 introduce el concepto de GOP o Group of Pictures. Cada GOP comienza con una imagen I y tiene imgenes P espaciadas regularmente. Las restantes son imgenes 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 imgenes B van a ser tomados de imgenes futuras, esas imgenes deben estar disponibles tanto en el codificador como en el decodificador. Por lo tanto, la codificacin bidireccional requiere el almacenamiento temporal de imgenes. La figura 2.14 tambin muestra que las imgenes P son enviadas antes que las B. Cabe notar adems, que las ltimas imgenes 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 imgenes B. Con el fin de regresar las imgenes en su secuencia correcta, se introduce una referencia de tiempo en cada imagen. Las marcas de tiempo son analizadas en la seccin 4.4.2. El almacenamiento temporal de imgenes requiere de cierta memoria adicional tanto en el codificador como en el decodificador , e introduce adems cierto retardo. Se deber controlar entonces la cantidad de imgenes B, para poder controlar dicho retardo. La figura 2.15 muestra el compromiso existente entre factor de compresin y retardo en la codificacin. Para una calidad dada, enviar solo imgenes I, requiere de mas del doble de bit rate que enviar IBBP.

Figura 2.14

Figura 2.15

15

Seccin 3 Lo nuevo en MPEG-2


Introduccin La seccin anterior introdujo con considerable detalle la forma en que MPEG realiza la compresin de video. Las tcnicas 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 detrs del video entrelazado. Como veremos en esta seccin, MPEG-2 introduce dos tcnicas nuevas en el proceso de codificacin aplicables a material entrelazado. Aparecern por lo tanto en esta seccin, los conceptos de campo y cuadro, y aprenderemos como MPEG-2 codifica eficientemente las imgenes entrelazadas. Recordemos que una de las aplicaciones mas importantes de este nuevo estndar es el de codificar seales de televisin para broadcasting, estando por lo tanto bajo el tratamiento de imgenes entrelazadas. La seccin 3.2 explica el concepto de video entrelazado y la seccin 3.4 ensea como MPEG-2 codifica dicho material. Como antes, remito al lector a consultar el glosario ante la aparicin 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 propsitos prcticos, el estndar MPEG-2 es dividido en perfiles y cada perfil es dividido en niveles (ver figura 3.1). Un perfil es bsicamente el grado de complejidad esperado en el codificador. Un nivel es un conjunto de parmetros tales como el tamao 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 parmetros 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 codificacin bidireccional , con lo que solo tendr a su salida imgenes I y P. Esto reduce el retardo en la codificacin y decodificacin y permite hardware mas simple. El Simple Profile ha sido definido solamente al Main Level (SP@ML) . El Main Profile fue diseado para un amplio uso. El Low Level usa una baja resolucin de entrada teniendo solo 352 pxeles por lnea. La mayora de las aplicaciones broadcasting requerirn del subconjunto MP@ML (Main Profile at Main Level) que soporta SDTV (Estndar Definition TV). El High Level 1440 es una forma de alta definicin que duplica la definicin del ML. Este nivel, no solo duplica la resolucin sino que tambin la mantiene para el formato 16:9 incrementando el nmero 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 Asincrnico (ATM ) y HDTV con compatibilidad hacia atrs con la TV necesitan entregar mas de una resolucin 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 adems del 4:2:0. Las imgenes 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 dems capas de ayuda, se puede mejorar la calidad de la imagen y/o la resolucin.

16

Figura 3.1

Por ejemplo, un codificador MPEG convencional podra recuantizar una imagen en forma bastante severa , generando una imagen codificada con considerable ruido de cuantizacin. Ahora, si se decodifica localmente esa imagen y se resta pxel a pxel con la imagen original , se obtendr una imagen de ruido. Esta imagen puede ser comprimida y trasmitida como seal de ayuda. Un decodificador simple podra solo decodificar la seal principal, obteniendo una imagen ruidosa, pero uno mas sofisticado decodificara las dos seales 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 , producira una bitstream principal que un decodificador de SDTV podra decodificar. Si esta imagen de baja definicin se resta de la imagen original, se obtendra una imagen con solo las frecuencias mas altas presentes. Esta imagen se podra codificar y trasmitir como seal de ayuda. Un decodificador podra decodificar ambas seales, 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 adems el muestreo 4:2:2 El perfil 4:2:2 ha sido desarrollado para mejorar la compatibilidad con equipos de produccin 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 produccin. El perfil 4:2:2 tiene la misma libertad de estructura de GOP que los dems perfiles, pero generalmente se usa con GOPs cortos que facilitan la edicin. La operacin con 4:2:2 requiere un bit rate mas alto que 4:2:0, y el uso de GOPs cortos requiere aun mas bit rate para un nivel de calidad dado. Existe adems , un tercer modo de escalabilidad en la compresin, llamada escalabilidad temporal. Esta tcnica consiste en codificar la secuencia de cuadros a una velocidad mayor a la habitual (mayor quizs a 25 frames/seg ), de forma que se mantenga la compatibilidad hacia atrs con los compresores que trabajan con velocidades mas bajas. La velocidad temporal mas baja sirve como base para la codificacin de la velocidad mas alta. Se codifican los cuadros a velocidad baja y luego se agregan

17

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 magnticos, y otras aplicaciones tienen a veces dos canales disponibles para transmisin y/o almacenamiento. El bitstream de video es separado de tal forma que un canal contenga informacin crtica como headers, vectores de movimiento, y los coeficientes de baja frecuencia de la DCT, y el otro contenga la informacin menos crtica como los coeficientes de alta frecuencia de la DCT. Este segundo canal puede ser enviado con menos proteccin de error. El reparto de datos no es compatible hacia atrs con otros bitstreams de video MPEG-2. 3.2 Video entrelazado En sistemas de televisin, la exploracin consiste en barridos horizontales rpidos combinados con barridos verticales mas lentos, de manera que la imagen queda explorada en lneas. Al final de cada barrido vertical o cuadro, el proceso vuelve a repetirse. Los monitores para computadoras explorar de esta manera, pero en la mayora de los sistemas de radiodifusin el proceso de exploracin 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 lneas escaneadas. El barrido vertical o campo, tarda la mitad de tiempo y contiene la mitad de las lneas. En el segundo campo, las reas que se perdieron son ahora escaneadas. La figura 3.2 muestra dicho concepto. Las lneas de ambos campos se entrelazan verticalmente de forma automtica al finalizar la exploracin, de forma de formar la imagen completa.

Figura 3.2

El escaneo entrelazado usado en los formatos estndar de televisin NTSC, PAL y SECAM, visualiza solo la mitad de las lneas horizontales de una vez / pasada (el primer campo que contiene todas las lneas de nmero impar es visualizado y a continuacin se visualiza el segundo campo que contiene todas las lneas de nmero par). El entrelazado se basa en una caracterstica de nuestros ojos que es la persistencia de la visin (la cual podra nicamente ser sicolgica, no fsica), as como tambin en la persistencia del fsforo en el tubo de imagen de la televisin para mezclar los campos resultando en una nica imagen. 3.3 Entrelazado y Pulldown 3:2 Una cmara de pelcula filma a 24 cuadros por segundo, mientras que una cmara de video escanea campos de lneas pares e impares alternativamente a intervalos de 1/50 segundos. El DVD esta diseado 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 mayora del contenido DVD viene de pelculas que son originalmente progresivas. Para hacer que una pelcula funcione en formato entrelazado, el video de cada cuadro de pelcula es partido en dos campos de video 240 lneas en un campo y otras 240 lneas en el otroy codificado como campos separados en el torrente MPEG-2. Otra complicacin es que la pelcula va a 24 cuadros por segundo, mientras que la televisin 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 solucin ms simple es mostrar los cuadros de pelcula a una 18

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

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, inclua parmetros de codificacin y algoritmos para secuencias progresivamente escaneadas solamente. Como MPEG-2 esta enfocado a la codificacin de seales 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 estn 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 lneas consecutivas en la imagen. El estndar MPEG-2 introduce una nueva forma de codificar imgenes entrelazadas mediante las inclusin de dos tcnicas basadas en campo :prediccin basada en campo y DCT basada en campo. En MPEG-2 , el trmino picture (imagen) se refiere ya sea a cuadro (frame) o campo (field). Por lo tanto, una representacin codificada de una imagen puede ser reconstruida ya sea como campo o como cuadro. Durante la codificacin, el codificador debe elegir si codificar una imagen como un cuadro o como dos campos. Si selecciona esta ltima forma de codificacin, cada campo se codifica por separado, cada uno teniendo un tamao 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 prediccin 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 imgenes codificadas como bidireccionales (B) . En el modo codificacin como cuadro, la prediccin puede hacerse ya sea en base a campo o en base a cuadro. La prediccin basada en cuadro, usa un vector por direccin (forward o backward) para describir el movimiento relativo al cuadro de referencia. 19

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 tambin tiene una marca para indicar cuando un cuadro es progresivo (que los dos campos vengan del mismo instante en el tiempo). Para contenidos de pelcula, la marca de cuadro-progresivo debera 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 estndar MPEG-2 fue el de dar un soporte para fuentes de video entrelazadas. El estndar MPEG-1 estaba enfocado a velocidades de alrededor 1.5 Mbps , y era asumido que la seal de video fuente haba sido digitalizada a alrededor de 352x240 para 60 Hz (e.g U.S) y 352x288 para 50 Hz (e.g Europa). Las seales de video estndar llevan el doble de lneas que las mencionadas anteriormente, con un formato entrelazado. La forma mas simple de generar una imagen de la mitad de tamao era quedarse con un solo campo de la seal de video, el otro

En contraste, la prediccin 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 direccin forward o backward). En el modo codificacin como campo, la prediccin es solo en el modo campo, pero puede ser relativa ya sea al campo par como al impar. Independientemente del modo de prediccin, 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 codificacin, viene del hecho que quizs estn mas correlacionadas lneas de un mismo campo que lneas 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

Figura 3.5.DCT basada en campo.

20

3.5 Exploracin (Scanning) Despus de realizar la DCT a un bloque 8x8 pxeles, 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 transmisin de datos mas eficiente, ya que se transmiten primero los coeficientes distintos de cero, y luego un cdigo que indique que los dems coeficientes son todos cero. La exploracin es una tcnica que aumenta la probabilidad de alcanzar este resultado, porque ella enva los coeficientes en forma descendente segn 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 exploracin 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 seccin 3.2. Si codificamos como entrelazado, estaremos codificando cada campo por separado, con lo cual las lneas en la imagen (el campo en cuestin), estarn separadas el doble de distancia que en un cuadro completo. Este distanciamiento entre lneas 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 exploracin para una fuente entrelazada. Se observa que la exploracin 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 exploracin entrega primero las frecuencias espaciales verticales. 3.6 Entrelazada o progresiva?. Experiencia con Mobile. En esta parte intentaremos determinar si una secuencia de imgenes ( 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 compresin, los siguientes parmetros de codificacin: 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 compresin entrelazada se setear Alternate_scan=1 (para las los 3 tipos de imgenes) Picture_format=1 (field_picture) Progressive_secuence=0 Progresive_frame=0 Para la compresin progresiva ,ser Alternate_scan=0 (para las los 3 tipos de imgenes) Picture_format=0 (frame_picture) Progressive_secuence=1 Progresive_frame=1 Una vez codificadas las imgenes, 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 compresin que resulte en un mejor SNR, ser la mas ptima. La pregunta que surge ahora es la siguiente, si la calidad de las imgenes 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 codificacin que tenga en cuenta esta baja correlacin entre lneas consecutivas, ser mejor que uno en donde se considere que las lneas fueron escaneadas en forma secuencial en el tiempo.

21

Si se tomaron imgenes 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 lneas consecutivas, es decir, los campos entrelazados, estn poco correlacionados. Este efecto se conoce como combing. Bajo esta situacin, sabemos que la codificacin 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 lneas 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, habindose producido en ese intervalo de tiempo un movimiento sustancial en la escena. Bajo esta situacin, 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 lnea y la otra no tendrn mucho que ver. En cuanto a las frecuencias horizontales, no se notaran 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 mxima frecuencia horizontal sin cambios verticales, y el que mide la mxima frecuencia vertical sin cambios horizontales (ver fig 3.6).

Figura 3.6

Vayamos a los resultados:

22

F recuencias horizontales 100 50 0 -50 -100 0 5 10 15 20 25 30 35

data1 data2 progresiva entrelazada

40

45

F recuencias verticales 1000 500 0 -500 -1000 0 5 10 15 20 25 30 # de bloque DCT 8*8 en la fila 35 40 45

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 imgenes, 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 aparicin 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 Codificacin 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 adquisicin de dicha secuencia, en base al anlisis de la seccin 3.6.

3.8.1 Codificacin entrelazada

de

mobile

como

La figura 3.9 muestra la SNR vs n de cuadro para la codificacin de mobile bajo el esquema entrelazado. Recordemos que en esta forma de codificacin, el codificador divide cada imagen en dos campos para codificarlos individualmente. Note la variacin de la SNR durante la primera mitad de la secuencia, debido a la adaptacin del bit rate que realiza el codificador. Al comenzar con el buffer vaco, 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 comparacin de la calidad de la imagen.

23

SNR vs n de cuadro para ambos campos 24 23 22 21 20 19 18 17

SNR (dB)

Campo par Campo impar

10 15 n de cuadro

20

25

Figura 3.9

La grafica mostrada corresponde a la secuencia de imgenes en el orden real de ocurrencia en el tiempo, distinto del orden de codificacin. Corresponde por lo tanto a la secuencia IBBPBBPBBPBB. Recordemos que el codificador necesita de las imgenes P para codificar las imgenes B anteriores. Adems del comentario anterior sobre la tendencia estacionaria de la SNR producida por la realimentacin que brinda el buffer, vale la pena comentar tambin porque las imgenes B resultan las de peor calidad en la secuencia codificada (analice el grfico anterior). Esto es as porque las imgenes B se codifican siempre despus que una imagen I o P, y estas imgenes tienden a llenar el buffer ya que no usan

compensacin bidireccional. Por lo tanto cuando le llega el momento una imagen B, la realimentacin habr hecho que la cuantizacin se haga mas severa para alivianar el buffer., con lo cual la calidad de dichas imgenes es la peor de las tres. Luego, como las imgenes B incurren en pocos bits para el buffer, este se vaca y la cuantizacin se aligera un poco otra vez y el proceso se repite. 3.8.2 Codificacin de mobile como progresiva La figura 3.10 nos muestra la SNR, cuando elegimos la forma de codificacin progresiva para la secuencia, y la figura 3.11 compara la SNR de ambos esquemas.

24

SNR vs # de cuadro para codificacion progresiva 25

24

23 SNR (dB)

22

21

20

19

10 15 # de cuadro

20

25

Figura 3.10

25 24 23 22
SNR (dB)

21 20 19 18 17

progresiva entrelazada

10 15 n de cuadro

20

25

Figura 3.11. Comparacin de ambos esquemas de codificacin

Claramente, observamos una mejor calidad en las imgenes 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.

25

El codificar cada imagen como dos cuadros separados, hace que la DCT sea menos eficiente ( en ausencia de combing) ya que baja la correlacin entre pxeles verticales debido al espaciamiento de las lneas. Dicho de otra manera, las frecuencias verticales se vuelven mas importantes .

Al codificar lnea por lnea, reducimos el peso de dichas frecuencias y hacemos que la informacin de cada macrobloque se concentre en las bajas frecuencias, haciendo mas eficiente la codificacin.

26

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

Seccin 4 ISO/IEC 13818-1 :La capa del sistema de MPEG-2


Resumen La especificacin 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 transmisin y/o almacenamiento. Esta seccin cubre los principios y terminologa de la capa del sistema de MPEG-2. Aqu se cubren tres reas fundamentales: Primeramente, las estructura de los diferentes mltiplex; segundo, la informacin 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 multiplexin. La cadena de programa (programme stream), fue diseada pensando en el almacenamiento y reproduccin 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 simultnea de mltiples programas sobre canales con ruido. Ambos mltiplex facilitan la inclusin de informacin especfica de programa (Programme Specific Information, PSI) que detallan el/los programas y las cadenas elementales presentes. Los mltiplex tambin usan un sistema de marcas de tiempo y referencias de reloj para asegurar la reproduccin sincrnica de cadenas elementales relacionadas, y el correcto comportamiento de los buffers en el decodificador. En la figura 4.1 se esquematiza la produccin de las cadenas de programa y de transporte. Mas adelante se hablar en detalle de ambas. Hay muchos elementos de sintaxis opcionales y muchas

4.1 Sobre la notacin 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 quizs 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 traduccin de stream, y es simplemente una sucesin de bits de audio o video. Un mltiplex es simplemente una forma de multiplexar cadenas de datos. MPEG-2 define dos diferentes tipos de mltiplex, el de programa y el de transporte. 4.2 Unidades de presentacin 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 presentacin. El codificador codifica cada unidad de presentacin para formar una imagen codificada que se denomina unidad de acceso. Note que las unidades de acceso no son todas del mismo tamao. El tamao depende de si la imagen es I, P o B.

27

Figura 4.1. Generacin de cadenas de transporte y programa en MPEG-2.

Figura 4.2. Produccin de las unidades de acceso.

28

4.3 Elementary Elementales)

Streams

(Cadenas

Un Elementary Stream no es mas que la salida en bruto de un codificador, y contiene no mas que la informacin necesaria para que un decodificador pueda formar el video o el audio original. La sintaxis de la seal comprimida est rgidamente 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, pudindolos 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 codificacin. Cuando el codificador y decodificador son de diferentes complejidades, se dice que el sistema de codificacin es asimtrico. El estndar MPEG permite tambin que la calidad sea mejorada a medida que los algoritmos de codificacin son refinados, permitiendo an que los decodificadores mas viejos decodifiquen el bit stream. 4.3.1 Sintaxis del Video Elementary Stream La figura 4.3 muestra la construccin de un video elementary stream. La unidad fundamental de informacin es el bloque DCT, que representa un arreglo 8x8 de pxeles que pueden ser Y, Cr, o Cb. El coeficiente DC es enviado primero, y es representado mas exactamente que los dems coeficientes (MPEG-2 permite la eleccin de 8, 9, 10 u 11 bits para el coeficiente DC). Seguido de los dems coeficientes, se enva un cdigo 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 imgenes B, los vectores pueden ser forward o backward. La compensacin de

movimiento puede ser basada en campo en cuadro, y esto es indicado en el header. Tambin se indica la escala usada para la recuantizacin de los coeficientes. Usando los vectores, el decodificador usa la informacin de imgenes anteriores o posteriores para producir la imagen predicha. Aplicando la IDCT a cada bloque, se obtiene la imagen correccin que hay que sumarle a la imagen predicha para formar la imagen correcta. En codificacin 4:2:0 ,cada macrobloque tiene 4 bloques Y y dos bloques de cada color. En formato 4:2:2, habra 2 bloques de cada color por cada 4 de luminancia. Para identificar cada bloque correctamente, estos se envan en un orden especfico. (ver apndice C para mas informacin 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 sincronizacin para la codificacin de longitud variable y diferencial. Los primeros vectores en el slice son enviados absolutamente, mientras que los restantes son enviados diferencialmente. En imgenes Intra, tambin los primeros coeficientes DC son enviados absolutamente y los restantes en forma diferencial. Un nmero 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 tambin incluye una referencia temporal para que la imagen sea presentada en el orden correcto. Para situaciones especiales, como un paneo de la cmara, los vectores de movimiento de los diferentes macrobloques sern los mismos, por lo que se enva un vector global, y los vectores individuales como diferencias con este. Las imgenes pueden ser combinadas para producir un GOP, que debe comenzar siempre con una imagen I. El GOP es la unidad fundamental de codificacin temporal. Los GOPs pueden ser abiertos o cerrados. En un GOP cerrado, las ltimas imgenes B no requieren de la imagen I del siguiente GOP para 29

ser decodificadas, y el bit stream puede cortarse

al

final

del

GOP.

Figura 4.3

30

Si son usados varios GOPs, estos son combinados para producir una secuencia de video. La secuencia comienza con un cdigo de inicio de secuencia seguido del header de la secuencia, y finaliza con un cdigo de fin de secuencia. Se pueden colocar adems headers adicionales a la secuencia a la mitad de esta. Esto permite que la decodificacin pueda comenzar en alguna parte en la mitad de la secuencia. El header de la secuencia especifica el tamao vertical y horizontal de la imagen, la relacin 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 cuantizacin usadas en codificacin 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 decodificacin. 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 codificacin de audio usada debe estar incluida en un descriptor, que el decodificador leer a los efectos de invocar al decodificador adecuado. El proceso de codificacin 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 imgenes 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 compresin (estreo conjunto, por ej. ), seguido de la velocidad de muestreo original. La secuencia de audio es formada a partir de un nmero de unidades de acceso (AUs) que sern codificadas como audio frames.

Si se usa AC-3 , esto tambin se ver reflejado en el header de la secuencia. 4.4 Cadenas Elementales Paquetizadas (PES) Para propsitos prcticos, las cadenas elementales conteniendo audio o video deben ser partidas en paquetes. Estos paquetes son identificados mediante headers que contienen marcas de tiempo (time stamps) para sincronizacin. Los PES pueden ser usados para crear Cadenas de Programa (Program Stream) o Cadenas de Transporte (Trasport Stream). 4.4.1 Paquetes PES En PES, las largas cadenas elementales son divididas en paquetes de tamao adecuado para la aplicacin (ver figura 4.4). El tamao podra ser de unos pocos cientos de kilobytes, aunque varan mucho de acuerdo a la aplicacin. Cada paquete es precedido por un PES packet header. La estructura completa de un paquete PES se puede consultar en el apndice A. El paquete comienza con un prefijo de comienzo de cdigo de 24 bits, y un stream ID que identifica el contenido del paquete como video o audio y futuras identificaciones como tipo de codificacin de audio. Estos 2 parmetros (Start Code prefix y Stream ID ) comprenden el packet start code, que identifica el comienzo del paquete. Debido a que MPEG solo define la cadena de transporte y no el codificador, un diseador podra construir una cadena de transporte a partir de una cadena elemental en un solo paso. En este caso, el paquete PES no existira nunca en una forma identificable, en vez de eso, estara lgicamente presente en la carga de la cadena de trasporte. Las cadenas de transporte se tratarn luego.

31

Figura 4.4

4.4.2 Time Stamps Durante la compresin, algunas imgenes son enviadas fuera de secuencia debido a la codificacin bidireccional. Ellas requieren una cantidad variable de datos y estn sujetas a retardos variables debido a la multiplexin y transmisin. Con el sentido de mantener al audio y video sincronizados constantemente, se insertan cada tanto marcas de tiempo (time stamps) en las imgenes. Una marca de tiempo, es un nmero de 33 bit que es una muestra de un contador comandado por un reloj de 90 KHz. Este reloj es obtenido dividiendo el reloj de programa de 27 MHz por 300. Debido a que los momentos de presentacin estn separados regularmente, no es necesario incluir un time stamp en cada unidad de acceso (consultar seccin 4.2). En vez de eso, los time stamps pueden ser interpolados por el decodificador, pero ellos no deben estar mas de 700 mseg apartados en su cadena de transporte o programa. En cualquier tipo de mltiplex MPEG-2, las marcas de tiempo son llevadas como campos opcionales en los paquetes PES (ver apndice A). Los time stamps indican a que lugar del tiempo pertenece una unidad de acceso especfica. La mxima sincronizacin es obtenida cuando se insertan marcas de tiempo tanto en los headers de los paquetes PES de audio como en los de video. Cuando un decodificador recibe un PES especfico, decodifica cada unidad de acceso y

la almacena en RAM. Cuando la cuenta de lnea de tiempo alcanza el time stamp, la RAM es leda. Esta operacin tiene dos resultados deseables. Primero, se logra una correccin efectiva en la base de tiempo de cada cadena elemental. Segundo, las cadenas elementales de audio y video pueden ser sincronizadas juntas para formar un programa. 4.4.3 PTS/DTS Cuando es usada la codificacin bidireccional, una imagen puede haber sido decodificada un instante antes de que halla sido presentada, de manera que pueda actuar como fuente de datos para una imagen B. Aunque por ejemplo las imgenes pueden ser presentadas en el orden IBBP, ellas son trasmitidas en el orden IPBB. Consecuentemente, existen dos tipos de marcas de tiempo. La marca de tiempo de decodificacin (DTS) indica el momento en que una imagen debe ser decodificada, mientras que la marca de tiempo de presentacin (PTS) indica el momento que debe ser presentada a la salida del decodificador. Las imgenes B son decodificadas y presentadas simultneamente, de manera que solo tienen una PTS. Cuando se recibe una secuencia IPBB, tanto la imagen I como la P deben ser decodificadas antes que la primera imagen B. La figura 4.5 muestra que cuando una unidad de acceso recibida corresponde a una imagen I, esta tendr en el header tanto un PTS como un DTS y estas marcas de tiempo estn separadas un 32

perodo de imagen. Si est siendo usada la codificacin bidireccional, le seguir una imagen P que tambin tendr las dos marcas de tiempo, pero esta vez separadas tres perodos de imagen, de forma de permitir la intervencin de las imgenes B. Por lo tanto, si se recibe IPBB, I es retardada un perodo de imagen, P es

retardada tres perodos, las B no son retardadas, y la secuencia de presentacin se vuelve IBBP. Claramente, si la estructura de GOP es cambiada de forma que tres o mas imgenes B son colocadas entre las imgenes I y P, la diferencia de tiempo entre los DTS y PTS se hace mas grande.

Figura 4.5

El flag PTS/DTS en el header del paquete, es seteado para indicar la presencia de solo PTS o ambas marcas de tiempo. Los paquetes de audio pueden contener distintas unidades de acceso y el header del paquete contiene un PTS. Ya que los paquetes de audio nunca son trasmitidos fuera de secuencia, no se requieren las DTS. 4.5 Cadenas de Programa (Programme Stream) Las cadenas de programa son una forma de multiplexar diferentes cadenas de paquetes PES, y son tiles en aplicaciones que involucran grabacin, como los DVD. 4.5.1 Grabacin vs Transmisin Para una calidad de imagen dada, el bit rate de video comprimido cambiar con el contenido de cada imagen. Bajo este esquema, un canal de bit rate variable sera el recurso ideal. En transmisin, en donde los canales prcticos son de bit rate fijo, el bit rate total es mantenido constante mediante el

uso de stuffing (insercin de datos insignificantes). En DVD, el stuffing es un gasto de capacidad de almacenamiento. Sin embargo, un medio de almacenamiento puede ser enlentecido o acelerado, ya sea fsicamente, o en el caso de una unidad de disco, cambiando la velocidad de trasferencia de datos. Esta velocidad se puede ajustar de forma que el buffer de datos este lleno hasta la mitad, independientemente del bit rate actual que puede cambiar dinmicamente. Si el decodificador lee del buffer a una velocidad mas alta, tender a vaciar el buffer, y el sistema de control simplemente incrementara la velocidad de acceso para restaurar el balance, pero esta tcnica solo funciona si el audio y video fueron codificados con el mismo reloj. Para satisfacer estos requerimientos conflictivos, han sido creadas las cadenas de programa y las de transporte. Una cadena de programa trabaja bien sobre un programa simple de bit rate variable en entornos de grabacin virtualmente libres de ruido. Una cadena de transporte trabaja bien sobre mltiples programas y en entornos de 33

transmisin de bit rate fijo y posiblemente con ruido e interferencia. En una cadena de programa, los paquetes PES que fueron obtenidos a partir de cadenas

elementales son organizados en packs (ver figuras 4.6 y 4.7 ).

Figura 4.6

Figura 4.7

Un pack esta comprendido por un pack header, un opcional system header, y cierto nmero de paquetes PES que fueron obtenidos de alguna cadena elemental. No hay restriccin en cuanto al largo del pack, excepto que un pack header debe ocurrir cuando menos cada 0.7 segundos dentro de la cadena de programa, ya que el pack header contiene importante informacin de sincrona (la referencia de reloj del sistema, SCR). Los campos SCR se utilizan para sincronizar en el decodificador un reloj de sistema comn a 90 KHz que sirve de base de tiempos y de unidad de medida para los campos DTS y PTS de los paquetes. El system header contiene un resumen de las caractersticas de la cadena de programa tales como: su mximo bit rate, el nmero de cadenas elementales de audio y video que contribuyen, etc. Un decodificador puede usar la informacin contenida en el system header para ver si puede

decodificar la cadena o no. Al menos el primer pack de la secuencia debe tener un system header. La estructura completa del pack header y el system header se puede consultar en el apndice B. Cabe decir que la estructura de un pack (o paquete) en MPEG-2 es heredada completamente de MPEG-1. Una cadena de programa esta pensada para su uso en medios libre de errores, por eso lo de entornos de grabacin, debido a que son muy susceptibles a los errores. Esto es as debido al largo arbitrario de los packs. Cada paquete comienza con un header de paquete. La prdidas o error en el header puede causar la prdidas del paquete entero. Un paquete de programa puede contener miles de kilobytes de datos, y virtualmente se puede perder una secuencia de video completa. Debido tambin a la variabilidad de los largos de los paquetes, el decodificador no puede estimar el comienzo o 34

fin de un pack, resultando en prdidas de sincronismo si se llegara a alterar el campo de largo de paquete. 4.6 La cadena de transporte Una cadena de transporte consiste de paquetes de transporte cortos y de largo fijo (ver fig 4.9 o en el apndice A). Un paquete de transporte , es siempre de 188 bytes de largo y esta formado por un header de 4 bytes conteniendo un campo de adaptacin, y un payload. En una cadena de transporte, los paquetes PES provenientes de diferentes cadenas elementales, son repartidos entre varios payloads de los paquetes de transporte. La figura 4.10 muestra como los paquetes PES son partidos para formar diferentes paquetes de transporte. Este proceso esta sujeto a dos restricciones. 1. El primer byte de cada paquete PES, debe volverse el primer byte del payload de un paquete de transporte. 2. Un paquete de transporte solo puede contener datos de un nico paquete PES. Es improbable que un paquete PES llene exactamente los payloads de un nmero entero de paquetes de trasporte. Como se ve en la figura 4.10, frecuentemente ocurrir que no habr suficientes bytes como para llenar el payload del ltimo paquete de transporte. En estos casos se introduce en el paquete de transporte un campo de adaptacin del largo adecuado. Este malgasto puede ser minimizado eligiendo adecuadamente el tamao de los paquetes PES. Resumiendo, todos los paquetes PES que van a ser multiplexados juntos, se convierten a paquetes de transporte. Los paquetes de transporte son luego sacados secuencialmente para producir una cadena MPEG-2 de transporte. No hay restricciones en cuanto al orden en que aparecen los paquetes de transporte en el mltiplex, excepto que el orden

cronolgico de los paquetes pertenecientes a la misma cadena elemental debe preservarse. 4.6.1 El header del paquete de transporte Un paquete de transporte comienza con un header de 4 bytes. La estructura de este header es mostrada en la figura 4.11 y en el apndice A. De varios campos que contiene, cuatro son de particular importancia: El primer byte del header es un sync byte teniendo un valor de 47 (hex). Este byte puede ocurrir en alguna otra parte del paquete de transporte, pero el decodificador lo busca cada 188 bytes para identificar el comienzo de un nuevo paquete en la cadena de transporte. Una simple cadena de transporte puede llevar varios programas, cada uno comprendido por varios paquetes PES. El campo de 13 bits Packet Identifier (PID), identifica los paquetes de transporte que contienen cadenas elementales de un programa especfico. De los 213 posibles valores, 17 son reservados para propsitos especiales. Esto deja 8175 valores que pueden ser asignados a varias cadenas elementales, y representa el nmero mximo de cadenas elementales que pueden ser acomodadas en una simple cadena de transporte. El payload_unit_start_inidicator se setea para indicar alguna situacin peculiar acerca del primer byte de la parte de payload del paquete de transporte. Por ejemplo, el bit se setea si el primer byte del payload es tambin el primer byte del PES. Finalmente, el continuos_count_field es incrementado entre sucesivos paquetes de transporte pertenecientes a la misma cadena elemental.

35

Figura 4.8

Figura 4.9

Figura 4.10

Figura 4.11

36

4.6.2 Informacin Especfica de Programa (PIS) En una cadena de transporte, cada paquete de transporte tiene un PID que indica a que cadena elemental pertenece su payload (ver seccin anterior). Puede haber muchas diferentes cadenas elementales comprendiendo diferentes programas. Cmo puede un decodificador determinar que cadena elemental pertenece a cada programa?. La respuesta es incluir informacin adicional en la cadena de transporte que explicite la relacin entre los programas disponibles y los PID. Dicha informacin es llamada Programme Specific Information (PIS ) y debe estar presente en cada cadena de transporte. El PIS especificado por la capa del sistema MPEG-2, comprende 4 tipos de tablas: La Programme Map Table (PMT), la Programme Association Table (PAT), la Network Information Table (NIT), y la Conditional Access Table (CAT). Note que estas tablas pueden llevarse en los payloads de uno o mas paquetes de transporte, y por lo tanto ser acomodadas en una cadena de transporte. 4.6.2.1 The Programme Map Table (PMT) Cada programa llevado en una cadena de transporte tiene un PMT asociado a l. Esta tabla tiene los detalles del programa, y las cadenas elementales que lo componen. La figura 4.12 muestra un ejemplo de PMT.

A partir de esta tabla, el decodificador puede determinar que la cadena elemental de video codificada esta siendo transportada en paquetes de transporte con PID=726, y que la cadena elemental de audio en ingls esta disponible en los paquetes con PID=57. La PMT bsica puede ser enriquecida con algunos de los descriptores especificados en MPEG-2. Ellos dan informacin de un programa o de sus cadenas elementales que los componen. Los descriptores incluyen parmetros de codificacin de video, parmetros de codificacin de audio, identificacin de lenguaje, informacin de pan y scan, detalles de acceso condicional, informacin de copyrigth y dems. Un Broadcaster u otro usuario pueden definir otros descriptores privados si lo desean. 4.6.2.2 The Programme Asociation Table (PAT) Una lista completa de todos los programas disponibles en una cadena de transporte, es mantenida en un PAT. Esta tabla es fcil de encontrar, ya que siempre tiene un PID=0. Cada programa es listado con el valor de PID de los paquetes de transporte que contienen su Tabla del Mapa del Programa (PMT). Por ejemplo, en el PAT de la figura 4.13, el PMT del programa 3 se encuentra en los paquetes de transporte con PID=1127.

Figura 4.13 Figura 4.12

Esta permitido que una nica PMT, contenga informacin de mas de un programa. Esto es de 37

particular ventaja cuando las definiciones de programas son cortas. En vez de usar varios paquetes de transporte para colocar las PMT de los diferentes programas, usamos un solo paquete y colocamos en esa nica PMT la informacin de otros programas. 4.6.2.3 The Network Information Table (NIT) El programa nmero cero tiene especial significado en la Tabla de Asociacin de Programa. Es usado para indicar el camino a la Network Information Table (NIT). Esta tabla es opcional y su contenido es privado (es decir, definido por el broadcaster y no por MPEG). Cuando est presente, lleva informacin de la red fsica por donde es transportada la cadena de transporte, tal como frecuencias de los canales, detalles del transponder de los satlites, caractersticas de modulacin, originador del servicio, nombre del servicio y detalles de redes alternativas disponibles. 4.6.2.4 The Conditional Acces Table (CAT) Finalmente, est la Tabla de Acceso Condicional. Esta tabla debe estar presente a partir del momento en que al menos un programa sea de acceso condicional. La tabla provee detalles del sistema de mezcla en uso y provee los valores de PID de los paquetes de transporte que contienen la gestin de los accesos condicionales e informacin de derechos. El formato de esta informacin no esta especificado dentro de MPEG-2 . 4.7 Otra informacin Especfica de Programa La informacin Especfica de Programa esta definida tambin para ser usada en cadenas de programa mltiplex. Como una cadena de programa puede llevar solo un programa, todas las cadenas elementales presentes en el mltiplex deben pertenecer al mismo programa.

Una tabla llamada Programme Stream Map es definida para usar en una cadena de programa y establece el tipo (audio, video, otro) de informacin llevada en cada cadena elemental. Puede ser enriquecida con descriptores privados definidos por MPEG, para dar informacin sobre el programa o las diferentes cadenas elementales. La figura 4.14 muestra de que forma se utilizan las tablas descritas anteriormente, constituyendo una PSI (Program Specific Information). Se incluy adems un resumen de la jerarqua de produccin de las cadenas de programa y de transporte que usa MPEG-2 en la figura 4.15.

38

Figura 4.14. Uso de las tablas definidas por MPEG-2

El decodificador comienza buscando los paquetes de transporte con PID=0, donde se encuentra la PAT. En ella descubre, por ejemplo, que la PMT del programa n 3, se encuentra en el paquete con PID=33. Leyendo ese paquete, descubre que el video comprimido de ese programa se encuentra en los paquetes con PID=19, el audio para el mismo en los paquetes con PID=81 y PID=82, y datos auxiliares en los paquetes con PID=88.

39

40

4.8 Como demultiplexar MPEG-2 Las siguientes son las principales etapas que hay que seguir para encontrar un programa o servicio en un mltiplex de transporte MPEG-2, una vez que el mltiplex ha sido capturado (sintonizado en un canal). A partir de la captura (sincronizacin) de un nuevo canal: Filtrar el PID 0 para capturar los paquetes que transportan las secciones PAT. Construir la tabla de asociacin de programas (PAT) a partir de las secciones que la componen. Presentar el men de programas disponibles al usuario.

fcilmente por los distintos programas y servicios que se le ofrecen.

Seccin 5 Referencias de reloj


Los relojes usados en el multiplexor y en el decodificador no miden tiempo en horas y minutos, sino en unidades de 27 MHz expresadas con nmeros binarios de 42 bits. En una cadena de programa que puede llevar solo un programa simple, el reloj se llama System Clock. Las marcas de tiempo asignadas a todas las unidades de acceso, estn basadas en este reloj. La figura 5.1 resume el proceso de asignacin de marcas de tiempo. Una marca de tiempo es un valor que representa un tiempo. Una de las funciones del multiplexor es el de asignar marcas de tiempo a las unidades de acceso que salen del codificador. En la figura 5.1, el codificador ha generado tres unidades de acceso, y ellas han adquirido las marcas de tiempo 10:27, 10:28 y 10:29 respectivamente. Muestras regulares del reloj del sistema son llevadas en la cadena de programa, para permitir que el codificador y decodificador se sincronicen. Estas muestras son llamadas System Clock References (SCR) y son codificadas en campos opcionales de los pack headers de la cadena de programa. Una SCR debe aparecer en la cadena de programa al menos una vez cada 0.7 segundos. La segunda alternativa de multiplexin de MPEG-2, la cadena de transporte, puede tener diferentes programas. Cada programa tiene su propio reloj independiente, llamado Programme Clock, que no necesita estar sincronizado con los relojes de los dems programas. Esta permitido, sin embargo, que diferentes programas compartan un mismo reloj de programa. Las marcas de tiempo asignadas a las unidades de acceso, estn basadas en sus respectivos relojes de programa.

Despus de elegir el programa: Filtrar los PID correspondientes a este programa Construir la tabla de programa a partir de las secciones correspondientes que lo componen. Filtrar el paquete indicado por el campo PCR -PID; recuperar el PCR y sincronizar el reloj del sistema. Si hay varios PID de audio o video para este programa, presentar las opciones al usuario.

Una vez hecha esta nueva eleccin. Filtrar los PID correspondientes; puede empezar la decodificacin propiamente dicha.

La parte visible por el usuario de este proceso es la presentacin interactiva de la "gua electrnica de programa" (Electronic Program Guide, EPG); generalmente asociada a la red por medio de la informacin proporcionada por las tablas DVB-SI, para permitirle navegar

41

Las muestras de cada reloj de programa llamadas Programme Clock References (PCR) son llevadas en la cadena de transporte. Ellas

permiten que el decodificador sincronice su reloj con el reloj del programa que est decodificando o que va a decodificar

Figura 5.1

Un PCR de cada programa debe aparecer en la cadena de transporte al menos una vez cada 0.1 segundos. Para encontrar en que paquete de transporte se lleva la PCR de determinado programa, hay que consultar la tabla del mapa del programa (PMT) (ver figura 4.9). Note la confusin potencial aqu. En una cadena de programa, el reloj es llamado System Clock (Reloj del Sistema) y las referencias de tiempo son llamadas System Clock Reference (Referencia de Reloj del Sistema).

En cadenas de transporte, los relojes son llamados Programme Clocks (Relojes del Programa) y las referencias de tiempo son llamadas Programme Clock References (Referencias del Reloj del Programa). Dejando de lado la diferencias en los nombres, hay muy pocas diferencias entre los relojes y sus funciones en los diferentes mltiplex.

42

Resumen El estndar MPEG-2 fue pensado para transmisin de seales de TV en forma completamente digital. De cara a esto, una de las mas sobresalientes caractersticas del estndar es el de dar soporte a material entrelazado. Debido a las diferentes necesidades de los usuarios finales de servicio (end users), MPEG-2 introdujo el concepto de perfiles y niveles en donde aparecen los perfiles escalables. Gracias a ellos, se puede transmitir una seal base con la informacin mas importante de video, y otra secundaria o de ayuda para los usuarios mas exigentes. Esto es simulcasting. Un ejemplo de esto es la difusin de HDTV, donde los usuarios convencionales solo decodifican el SDTV. La capa del sistema de MPEG-2 es la primera parte del estndar (ISO/IEC 13818-1). En esta, se define la sintaxis para el bit stream tanto de audio como de video, y se diferencia la sintaxis dependiendo de la aplicacin. Si la aplicacin en cuestin es almacenamiento y reproduccin de la secuencia, MPEG-2 utiliza las cadenas de programa que son relativamente largas y de tamao variable. Como el medio es virtualmente libre de ruido, es muy poco probable que se pierdan datos y/o el sincronismo, y la carga adicional de esta cadenas de programa producida por los headers es sustancialmente menor que en las cadenas de transporte. Si la aplicacin es la transmisin de mltiples programas por un canal ruidoso, MPEG-2 hace uso de las cortas y de tamao fijo cadenas de transporte. Debido a la necesidad de sincrona entre el transmisor y el receptor, se deben incluir en la secuencia las referencias de reloj, que son muestras del reloj del codificador. La especificacin completa de MPEG-2 estuvo lista en Noviembre de 1994, y fue publicada en el ao 1995. MPEG-2 no estandariza los codificadores, pero si la sintaxis de salida del bitstream. Con esto se logra que los diseadores se adapten a sus necesidades de costo, y a su vez, que todos los decodificadores sean capaces de decodificar cualquier secuencia de video MPEG-2.

Glosario de trminos Cadena Elemental (Elementary Stream): Secuencia de bits en bruto ya sea de audio, video o datos auxiliares provenientes de la codificacin de un determinado material. Cadenas de Programa (Programme Stream): Uno de los dos posibles mltiplex que define MPEG2.La cadena de programa es el mltiplex adecuado para almacenamiento de audio y/o video. Cadenas de Transporte (Transport Stream): Uno de los dos posibles mltiplex que define MPEG2.La cadena de transporte es el mltiplex adecuado para la transmisin de audio y/o video sobre un canal ruidoso. Campo (field): Un campo corresponde a la mitad de las lneas de una imagen completa. El campo impar de una imagen esta constituido por las lneas 1, 3, 5, 7....y el par por las lneas 2, 4, 6, 8.....Si la imagen es entrelazada, esta se forma escaneando primero el campo impar y luego el par y entrelazando ambos campos.

43

CAT (Conditional Acces Table) : Tabla de Acceso Condicional. Registros de los accesos condicionales a determinados programas. Compensacin de Movimiento: Procedimiento por el cual se minimiza la diferencia entre imgenes consecutivas en una secuencia de video. Se basa en la busqueda en la imagen anterior de los macrobloques presentes en la imagen actual. Cuadro (frame): Imagen completa. Si esta fue adquirida en forma entrelazada, un cuadro se refiere al conjunto de ambos campos. DVD: Digital Video Disc.Dispositivo de almacenamiento digital. Entrelazado: Procedimiento que mezcla dos campos de un cuadro para formar el cuadro completo. Las lneas de cada campo se alternan en el mezclado. HDTV: High Definition TV. Televisin de alta definicin. Imagen (Picture): Se refiere ya sea a un solo campo de un cuadro o al cuadro completo. Depende del contexto en que nos encontremos. Mltiplex: Organizacin de las cadenas elementales paquetizadas (PES) realizada ya sea para almacenamiento del material o la transmisin del mismo. MPEG-2 define dos alternativas de mltiplex: la cadena de transporte y la cadena de programa. NIT (Network Information Table): Tabla de Informacin de Red. Informacin opcional sobre el enlace por el cual circulan los datos. Nivel: Conjunto de parmetros de codificacin, tales como bit y frame rate o picture format, que junto con el perfil definen el comportamiento de un codificador y decodificador, adecuado para determinada aplicacin. Overflowing: Estado de saturacin del buffer del codificador, producido posiblemente por la codificacin de imgenes de mucha entropa. PAT (Programme Asociation Table): Tabla de Asociacin de Programa. Informacin de todos los programas en una cadena de transporte. PC (Programme Clock): Reloj de Programa. Reloj que comanda las marcas de tiempo y referencias de reloj de un determinado programa en una cadena de transporte. PCR (Programme Clock References): Referencias de Reloj del Programa. Muestras del reloj de determinado programa que el codificador enva al decodificador, a los efectos de mantener la sincrona. Perfil: Indicador del grado de complejidad de un codificador. Cuanto mayor es el perfil en que opera un codificador, mejor es la calidad de la secuencia de video que produce para un determinado bit rate. Junto con el nivel, se establece el punto de operacin de un codificador. PES (Paquetized Elementary Stream): Cadenas elementales paquetizadas. Sintaxis definida por MPEG-2 para la divisin de las largas cadenas elementales de audio o video producidas por un codificador. Cada PES contiene un header con los datos necesarios para la descodificacin. A partir de los PES se forman las cadenas de transporte y programa definidas anteriormente. 44

PMT (Programme Map Table): Tabla de Mapa de Programa. Datos especficos de un programa en particular. Programa: Secuencia de video, audio o video con su audio asociado disponible en el codificador para ser comprimida. Imagen progresiva: Imagen que fue adquirida lnea por lnea. RLC (Run Length Coding): codificacin por longitud de carrera. Algoritmo de codificacin que hace uso de largas cadenas de smbolos iguales para una codificacin eficiente. SDTV (Imagen Definition TV: Televisin de definicin estndar. SC (System Clock): Reloj del Sistema. Reloj que comanda las marcas e tiempo y referencias de reloj en una cadena de programa. SCR (System Clock References): Referencias del Reloj del Sistema. Muestras del reloj del sistema que el codificador enva al decodificador, a los efectos de mantener la sincrona. Underflowing: Estado del buffer del codificador en el cual se encuentra prcticamente vaci, debido posiblemente a la codificacin de imgenes de baja entropa. VLC (Variable Length Coding): Codificacin de longitud variable. Algoritmo de codificacin que hace uso de la estadstica de los smbolos para codificar de forma mas eficiente. Los smbolos mas probables se codifican con palabras mas cortas. Unidad de presentacin: Imagen sin comprimir, dispuesta a ser codificada. Unidad de acceso: Imagen comprimida ya sea I, B, o P.

45

Apndice A Estructura de los paquetes PES y las cadenas de transporte

46

Detalle del header

47

Detalle del campo de adaptacin

Apndice B Estructura del pack header y el system header de un pack, componentes de una cadena de programa de MPEG-2
Estructura del pack header

48

Estructura del system header

49

Apndice C Submuestreo del canal de croma


El primer paso en la reduccin del bit rate de una secuencia de video es el submuestreo del canal de croma. Hoy la mayora de las imgenes electrnicas son grabadas en color, en el dominio RGB (Red, Green, Blue). MPEG transforma las imgenes RGB al espacio luminancia crominancia, generalmente referido al dominio Y-Cr-Cb, definido como Y = 0.3R + 0.6 B + 0.1G B Y Cr = + 0.5 2 R Y Cb = + 0.5 1.6 Es sabido que el sistema visual humano no responde de la misma manera a todas las frecuencias de la imagen ni a los diferentes canales de color. La siguiente figura ilustra la sensibilidad al contraste del ojo humano en funcin de la frecuencia espacial de la imagen para la luminancia y los dos canales de crominancia.

Figura A.1

Observamos que la sensibilidad al contraste decae con la frecuencia espacial de la imagen, y que este decaimiento es mas pronunciado para los canales de crominancia que para el de luminancia. Debido a esto, se puede realizar un submuestreo de ambos canales de croma, por ejemplo 2:1, sin perder perceptualidad en la imagen. El tipo de submuestreo usado depende de la aplicacin, fijando un compromiso entre calidad y bit rate. La siguiente tabla ilustra los diferentes modos de submuestreo para una imagen tpica CCIR 601 con 720 pixeles/linea y 480 lneas por cuadro:

50

Factor de Factor de Formato Muestras lneas Y Muestras lneas C submuestreo submuestreo de croma Y por lnea por cuadro C por lnea por cuadro horizontal vertical 4:4:4 4:2:2 4:2:0 4:1:1 4:1:0 720 720 720 720 720 480 480 480 480 480 720 360 360 180 180 480 480 240 480 120 ninguno 2:1 2:1 4:1 4:1 ninguno ninguno 2:1 ninguno 4:1

Apndice D Un compresor MPEG

Figura D.1

Las figuras D.1, D.2, y D.3 muestran las estructura de un compresor MPEG tpico. La seal de video preprocesada entra en una serie de buffers que almacenan imgenes y eventualmente cambian el orden de las imgenes. El dato luego entra al sustractor y al estimador de movimiento. En las figuras, los cuadros en negro no son usados en el proceso. Para crear una imagen I (figura D.1), se selecciona la 51

imagen mas reciente del buffer de entrada y el sustractor es apagado, de modo que la imagen pasa directamente al codificador espacial. Esta imagen es retenida en una memoria local para su uso futuro.

Figura D.2

Para crear una imagen P (figura D.2), las imgenes B que van llegando ( o mejor dicho, las que van a ser imgenes B), son almacenadas en el buffer de entrada de forma que se seleccione una imagen futura. Esta imagen P seleccionada es comparada con al imagen I almacenada en la memoria para crear el vector de prediccin hacia delante (forward motion vector). La imagen I es corrida por este vector para formar la imagen predecida. Luego se sustrae la imagen original de esta ultima para formar el error de prediccin, que luego se codifica espacialmente. adems, se almacena en la memoria local esta imagen P, de forma de usarla posteriormente.

52

Figura D.3

Una vez que se tienen almacenadas las imgenes I y P, se retira del buffer de entrada una imagen B previamente almacenada (figura D.3). Esta imagen se compara con la imagen I anterior y la P posterior para crear los vectores hacia delante y hacia atrs respectivamente y producir las dos imgenes predecidas hacia adelante y atrs. Luego son restadas de la imagen actual y ambos errores de prediccin se codifican espacialmente. En una base de macrobloque por macrobloque, son seleccionados los datos que representan la diferencia mas pequea. Luego se transmiten junto con los respectivos vectores de movimiento. Una vez que se codifican todas las imgenes intermedias (imgenes B), de nuevo se retienen imgenes en el buffer de entrada para codificar la imagen P futura y el proceso se repite a lo largo del GOP.

53

Documentos utilizados:
El presente trabajo esta basado en una recopilacion de diversos papers encontrados en Internet acerca de MPEG-2. Se intent reunir de todos ellos los datos mas relevantes para armar un resumen de la especificacin del estndar MPEG-2. Dos de los documentos que colaboraron con gran parte de la informacin citada en el trabajo son los siguientes: [1] MPEG Video Coding: A basic tutorial introduction, Research and Development Department, Policy and Planning Directorate, The British Broadcasting Corporation. [2]. A Guide to MPEG Fundamentals and Protocol Analysis (Including DVB and ATSC), Tektronix. www.tektronix.com

54

55

También podría gustarte