Documentos de Académico
Documentos de Profesional
Documentos de Cultura
29 Introducción A La Compresión de Video Bajp Estandar Mpeg2 PDF
29 Introducción A La Compresión de Video Bajp Estandar Mpeg2 PDF
Victor Paladino
widgetp@adinet.com.uy
Contenido
Pag
Introducción general.............................................................................2
Introducción............................................................................................16
3.1 Perfiles y Niveles..............................................................................16
3.1.1 Perfiles escalables..............................................................16
3.1.2 Reparto de datos en MPEG-2............................................18
3.2 Video entrelazado.............................................................................18
3.3 Entrelazado y Pulldown 3:2..............................................................18
3.4 MPEG-2 y el video entrelazado........................................................19
3.5 Exploración (Scanning).....................................................................21
3.6 Entrelazada o progresiva?.................................................................21
3.7 Consecuencias del entrelazado..........................................................22
3.8 Codificación de Mobile.....................................................................23
3.8.1 Codificación de Mobile como entrelazada.........................23
3.8.2 Codificación de Mobile como progresiva...........................24
Resumen..................................................................................................27
4.1 Sobre la notación...............................................................................27
4.2 Unidades de presentación y unidades de acceso...............................27
4.3 Elementary Streams (Cadenas Elementales)....................................29
4.3.1 Sintaxis del Video Elementary Stream................................29
4.3.2 Audio Elementary Stream...................................................31
4.4 Cadenas elementales paquetizadas (PES).........................................31
4.4.1 Paquetes PES.......................................................................31
4.4.2 Time Stamps………………………………………………32
4.4.3 PTS/DTS………………………………………………….32
4.5 Cadenas de Programa (Programme Streams)………………………33
4.5.1 Grabación vs Transmisión………………………………...33
4.6 La Cadena de Transporte (Transport Stream)...................................35
4.6.1 El header del paquete de transporte........................................35
4.6.2 Información Especifica de Programa (PIS)............................37
4.6.2.1 The Programme Map Table (PMT)............................37
4.6.2.2 The Programme Asociation Table (PAT)……………37
4.6.2.3 The Network Information Table (NIT)………………38
4.6.2.4 The Conditional Access Table (CAT)……………….38
4.7 Otra información especifica de programa…………………………...38
4.8 Como demultiplexar MPEG-2...........................................................41
Resumen ...................................................................................................43
Glosario de términos................................................................................43
1
Introducción general
En Marzo de 1995 se completó el estándar movimiento, y el uso de la transformada del
MPEG-2, compuesto de 9 partes, con el numeral coseno como herramienta para dicha
ISO/IEC 13818. El nombre completo es compresión.
“Information Technology—Generic Coding of Todas las técnicas mencionadas, con excepción
Moving Pictures and Associated Audio” de algunas serán similares a las usadas en
ISO/IEC 13818. Las primeras 5 partes están MPEG-1. Cada vez que aparezca una nueva
organizadas como en MPEG-1 (Sistema, Video, técnica o algoritmo introducido por MPEG-2 se
Audio, Conformación y Software). Las 4 partes hará mención de eso. Veremos que una de las
adicionales son listadas a continuación. diferencias importantes entre ambos estándares
de compresión , MPEG-1 y MPEG-2, es que
La parte 6, Digital Storage Medium Command este último brinda un soporte para material
and Control (DSM-CC), provee la sintaxis para entrelazado, ya que una de las aplicaciones mas
controlar el estilo de reproducción y acceso importantes de este nuevo estándar es la
aleatorio de los bitstreams codificados y transmisión de señales de televisión, en donde
almacenados en medios digitales tales como el se adquieren las imágenes en forma entrelazada.
DVD. Los comandos de reproducción incluyen
Still Frame, Fast Forward, Advance y GoTo. El concepto de video entrelazado, así como
también los perfiles y niveles que define
La parte 7, Non-Backward Compatible Audio MPEG-2, serán tratados en detalle en la sección
(NBC), define una nueva sintaxis para audio 3. En la primera parte de dicha sección, se
surround en una forma que no es compatible con hablaran de los perfiles y niveles que define
MPEG-1, por ejemplo el AC-3. MPEG-2 para lograr la adaptación a las
diferentes necesidades de los usuarios.
La parte 8 es una extensión a la parte de video Aparecerá el concepto de escalabilidad, como
de MPEG-2 (13818-2) y define la sintaxis y alternativa de adaptación a la calidad de la
semántica para la representación de video compresión.
codificado con una precisión de 10 bits por La segunda parte de esta sección, trata en detalle
muestra. el video entrelazado explicando como se forma
una imagen entrelazada, que consecuencias trae
La parte 9, Real Time Interface (RTI), define para la compresión, y como MPEG-2 sortea
una sintaxis para señales de control de video estas complicaciones para codificar de manera
bajo demanda. mas eficiente.
Este trabajo no pretende dar al lector En la sección 4, se trata la parte del sistema de
información cabal de las nueve partes antes MPEG-2 (ISO/IEC 13818-1). Aquí se explica
mencionadas. Simplemente, se hablará de la como el estándar define la sintaxis de salida de
parte de video (ISO/IEC 13818-2) y la parte del un codificador, ya sea que la aplicación sea
Sistema (ISO/IEC 13818-1). Se supondrá que el almacenamiento del audio y/o el video, o la
lector no esta familiarizado con la compresión transmisión del mismo a través de un canal
de video, con lo cual se dará una breve ruidoso. Se intentará dar al lector la idea de
introducción en la sección 1. porque se definen dos sintaxis diferentes
En la sección 2, se explica detalladamente la dependiendo de una aplicación u otra.
forma en que MPEG consigue llevar a cabo la
compresión de una secuencia de video. Se Por último, en la sección 5, se tratan las
explican con detalle las técnicas de compresión referencias de reloj que usa MPEG-2 para
espacial y temporal, compensación de sincronizar el material de audio y video y
2
mantener la sincronía también entre trasmisor y 4:2:2 (ver apéndice C para submuestreo del
receptor. canal de croma).
Todas las secciones que componen este trabajo
están basadas en su mayor parte en los
documentos que figuran al final del mismo.
Remito desde ya al lector a consultar dicho
material si así lo desea.
A medida que avancemos en el trabajo, se irán
encontrando conceptos y palabras nuevas para el
lector. A los efectos comprender mejor la
lectura, se colocó al final del trabajo un glosario
de términos en donde el lector puede consultar
en el momento que considere necesario.
Total=216 Mbps
MPEG es uno de los mas populares estándares
de compresión de video y audio, debido a que Debido a estas dificultades, era necesario una
no es un simple estándar. En vez de eso, es un forma de codificación del material de audio y/o
rango de estándares disponibles para diferentes video, en la cual se requieran menos datos para
aplicaciones, pero basados en principios representar al material. La forma en que MPEG
similares. MPEG es el acrónimo de Moving consigue llevar a cabo este objetivo, es mediante
Pictures Experts Group, establecido por la ISO el procesamiento de la secuencia de video ( o la
para trabajar en compresión. señal de audio), de manera tal de codificar solo
Esta sección es simplemente una breve lo necesario, y dejar que el decodificador
introducción a los conceptos que hay detrás de “adivine” el resto, y posiblemente, como en la
la compresión de video. Puede tomarse como mayoría de los casos, la eliminación de
referencia para la segunda sección, en donde se determinada información no tan crítica para el
tratan con detalle los conceptos mencionados observador. En las siguientes secciones se tratan
aquí. con cierto detalle las técnicas usadas por MPEG
para llevar a cabo la compresión.
1.1 Por que es necesaria la compresión?
1.2 Introducción a la compresión de video
El éxito inicial del video digital fue en
aplicaciones de post producción, en donde la En todo material real ya sea de audio o video,
producción de video generaba alrededor de 200 hay dos tipos de componentes de señal: aquellos
Mbps de datos, con lo cual se requería de gran componentes que son nuevos o impredecibles y
capacidad de almacenamiento o gran ancho de aquellos que pueden ser anticipados. Los
banda para su eventual transmisión. La siguiente componentes nuevos son llamados entrópicos y
figura ilustra este concepto para la digitalización corresponden a la verdadera información en la
de una imagen de 625 líneas, 720 píxeles por señal. Los restantes son llamados redundancia
línea y una cadencia de cuadros de 30 cuadros ya que no son esenciales. La redundancia puede
por segundo, resultando en un ancho de banda ser espacial tal como un área plana de una
de 216 Mbps para su eventual transmisión. El imagen, en donde los píxeles cercanos tienen
formato de submuestreo de croma usado es todos el mismo valor, o temporal ,en donde se
explota la similitud de imágenes sucesivas. En
3
sistemas de codificación sin pérdidas, se intenta aplicación. Mas adelante se tratara en mas
que el codificador extraiga la redundancia de la detalle este concepto.
señal y envíe solo la entropía al decodificador.
En sistemas con pérdidas, se elimina cierta Hay diferentes formatos de video digital y cada
información irrelevante o no tan crítica para el uno tiene su bit rate. Por ejemplo, un sistema de
observador antes de analizar los componentes alta definición podría tener 6 veces el bit rate de
importantes en la señal. Solo la entropía es un sistema de definición estándar.
almacenada o transmitida y el decodificador Consecuentemente, conocer solo el bit rate a la
calcula la redundancia con la señal recibida. La salida del codificador no es muy útil. Lo que
figura 1.1 ilustra este concepto. importa es la razón de compresión, que es la
relación entre el bit rate a la entrada del
codificador y el bit rate a la salida del mismo.
Desafortunadamente, el número de variables
involucradas, hace difícil determinar el factor de
compresión adecuado. La figura 1.1 muestra que
si toda la entropía es enviada, la calidad es
buena. Sin embargo, si el factor de compresión
es incrementado con el fin de reducir el bit rate,
la calidad decae.
Para identificar la entropía completamente, un
codificador debería ser muy complejo. Un
compresor práctico, deberá enviar mas datos
generalmente, para asegurarse de llevar la
entropía en ellos. La figura 1.1b muestra la
relación entre complejidad y performance. A un
nivel de calidad dado, se requiere de un
compresor mas sofisticado para lograr altas
Figura 1.1
razones de compresión.
Un codificador ideal debería transmitir solo la
La entropía en señales de video varía. En el
entropía y un decodificador ideal debería
proceso de codificación, algunas imágenes
reconstruir la señal completa con esa
tendrán mas entropía que otras y por lo tanto
información. En la práctica sin embargo, no se
requerirán de mas datos para ser representadas,
puede alcanzar la idealidad. Un codificador
si lo que queremos es mantener la calidad de la
ideal requeriría de un retardo muy grande para
codificación constante. Bajo este esquema de
poder extraer solo la redundancia de la señal,
codificación, tendremos calidad constante pero
retardo que es inconcebible para determinadas
bit rate variable, con lo cual se introduce un
aplicaciones en tiempo real. En algunos casos,
buffer a la salida del codificador que absorba
un codificador ideal sería muy caro. Se sigue
dichas variaciones de entropía y produzca un bit
entonces que no hay un sistema de compresión
rate constante a la salida.
ideal.
En la práctica se necesita de un rango de
En la codificación de video bajo el estándar
codificadores con diferentes grado de retardo y
MPEG, aparecen dos conceptos importantes y
complejidad. La potencia de MPEG es que no es
claramente diferenciados: la codificación Intra
solo un formato de compresión, sino un rango
(Intra Coding) y la codificación Inter (Inter
de herramientas de compresión que pueden
Coding). Codificación Intra es una técnica que
ser combinadas eficazmente para diferentes
explota la redundancia espacial o dentro de una
necesidades. MPEG-2 introduce el concepto de
imagen y codificación Inter explota la
perfiles y niveles, que justamente permiten la
redundancia temporal. La Intra Coding puede
elección mas apropiada para determinada
ser usada sola como en JPEG , o puede ser
4
combinada con Inter Coding, como en MPEG. descrita anteriormente. La compensación de
Intra coding relaciona dos propiedades de las movimiento simplemente minimiza la cantidad
imágenes típicas. Primero, no todas las de datos en la imagen diferencia.
frecuencias espaciales están simultáneamente Claramente, las imágenes codificadas
presentes y segundo, los componentes de temporalmente son difíciles de editar, ya que su
frecuencias espaciales altas son de mas baja contenido depende de alguna imagen quizás ya
amplitud que las bajas. Intra coding requiere del trasmitida tiempo atrás. Los sistemas de
análisis de frecuencias espaciales en una producción tendrán que limitar el grado de
imagen. Este análisis es el propósito de codificación temporal para permitir la edición y
transformadas como wavelets o la DCT. Las esto afectara el límite de la compresión.
trasformadas producen coeficientes que
describen la magnitud de cada componente
espacial frecuencial. Típicamente, muchos Sección 2
coeficientes serán cero, con lo que se omitirán ,y
se lograra por lo tanto una reducción en el bit
ISO/IEC 13818-2 MPEG-2 Video
rate. La sección 2.2 trata en detalle la
codificación Intra, o codificación espacial.
En esta sección se tratan en detalle los
conceptos introducidos en la sección anterior.
Inter coding, relaciona las similitudes entre
Se explicará como MPEG lleva a cabo la
imágenes sucesivas. Si una imagen esta
compresión de una secuencia de video haciendo
disponible en el codificador, la siguiente imagen
uso de la compresión tanto espacial como
puede ser reconstruida enviando solo la imagen
temporal. Todas las técnicas mencionadas en
diferencia. Esta diferencia se incrementa con el
esta sección son heredadas de MPEG-1. Como
movimiento, pero esto puede ser compensado
se mencionó anteriormente, en MPEG-2 aparece
con la estimación de movimiento, ya que un
el concepto de video entrelazado, pero no sino
objeto en una imagen generalmente solo
hasta la sección 3 se hablara de esto. En dicha
cambiará de posición, no de apariencia. Si el
sección, “lo nuevo en MPEG-2”, se explicará en
movimiento puede ser medido, puede ser creada
detalle el video entrelazado, y como MPEG-2
una aproximación a la imagen actual , corriendo
codifica dicho material. Pido por tanto al lector,
parte de la imagen previa a una nueva localidad.
que se olvide de este concepto hasta la próxima
El proceso de movimiento es controlado por un
sección.
vector que es transmitido al decodificador. La
codificación Inter es tratada en detalle en la
2.1 Codificación espacial o temporal?
sección 2.7 conjuntamente con la compensación
de movimiento en la sección 2.8 y la
Como se vio en la primera sección, la
codificación bidireccional en la sección 2.9.
compresión de video saca partido tanto de la
redundancia espacial como la temporal .En
MPEG-2 maneja tanto imágenes progresivas
MPEG la redundancia temporal es extraída
como entrelazadas, llamando ‘picture’ a una
usando similitudes entre imágenes sucesivas.
imagen dada en alguna posición temporal ,
Tanto como sea posible, la imagen actual es
independientemente si es campo o cuadro (ver
estimada a partir de imágenes recientemente
el glosario para las definiciones).
enviadas. Cuando se usa esta técnica, solo se
La codificación temporal es ahora mas difícil,
necesita enviar la diferencia entre la imagen
ya que los píxeles en un campo estarán en otra
estimada y la actual. La imagen diferencia es
posición en el siguiente.
entonces sujeta a codificación espacial.
Es mas fácil comenzar explicando la
La compensación de movimiento minimiza pero
codificación espacial antes que la temporal.
no elimina la diferencia entre imágenes
La compresión espacial se relaciona con las
sucesivas. La imagen diferencia puede ser ahora
similitudes entre píxeles adyacentes en áreas
tratada como imagen Intra, con la técnica
planas de la imagen y en frecuencias espaciales
5
dominantes en el modelo. JPEG solo utiliza La transformada de Fourier tiene la desventaja
compresión espacial ya que fue diseñado para de requerir de coeficientes para los términos
comprimir imágenes fijas. No obstante, JPEG seno y coseno de cada frecuencia.
puede usarse para codificar una sucesión de En la trasformada del coseno, la señal de entrada
imágenes para video en el así llamado ‘Motion es reflejada con respecto al eje de las ordenadas
JPEG’. En este esquema, la compresión no es antes de multiplicarla por las funciones base. La
tan buena como en MPEG, pero la capacidad de figura 2.2 muestra que este reflejo cancela todos
edición es interesante, ya que se puede editar los componentes seno y duplica los
cuadro a cuadro. componentes coseno de la señal. Ahora los
coeficientes seno de la trasformada son
2.2 Codificación espacial innecesarios y solo se necesita un coeficiente
para cada frecuencia.
El primer paso en la codificación espacial, es
desarrollar un análisis de frecuencias espaciales
mediante una transformada. Una transformada
es una forma de expresar una forma de onda en
un dominio diferente, en este caso, el de la
frecuencia. La salida de la trasformada es un
conjunto de coeficientes que indican cuanto de
una determinada frecuencia esta presente.
Figura 2.2
La transformada mas conocida es la de Fourier.
Esta trasformada encuentra cada componente de La Transformada Discreta del Coseno (DCT) es
frecuencia multiplicando muestra a muestra la la versión muestreada de la transformada del
señal de entrada por su respectiva función base e coseno, y es usada ampliamente en dos
integrando el producto. La figura 2.1 muestra dimensiones. Un bloque de 8x8 píxeles es
que cuando la señal de entrada no contiene la transformado en un bloque de 8x8 coeficientes.
función base, este producto da cero, pero si la Ya que la operación requiere la multiplicación
contiene, la integral dará un coeficiente que por fracciones, algunos coeficientes tendrán
describe la amplitud de esa componente. longitud de palabra mas larga que los valores de
los píxeles. Típicamente, un bloque de píxeles
de 8 bits , incurrirá en un bloque de coeficientes
de 11 bits. Por lo tanto, la DCT no produce una
compresión, sino lo contrario. No obstante, la
DCT convierte la fuente de píxeles en una forma
en donde es mas fácil la compresión.
Figura 2.1
La figura 2.3 muestra los coeficientes de la DCT
para un bloque 8x8. Para un bloque de
Los resultados serán como se describieron , si la luminancia, el coeficiente DC indica el nivel
componente de frecuencia de la señal esta en medio de brillo en la imagen. Moviéndonos a lo
fase con la función base. Si la componente esta largo de las filas, se incrementa la frecuencia
en cuadratura con la función base, la integral horizontal, y a lo largo de las columnas se
será cero. Por lo tanto será necesario realizar dos incrementa la frecuencia vertical.
búsquedas para cada frecuencia, una con la
función base en fase y otra en cuadratura , para
encontrar las componentes en cuadratura en la
señal.
6
2.3 Ponderación
Figura 2.3
7
Figura 2.5
2.4 Scanning
En el decodificador, los coeficientes se
multiplicarán por sus valores correspondientes En material de video típico, los coeficientes
de forma tal de recuperar los coeficientes de la significativos de la DCT se encuentran en la
DCT con ruido de cuantización superpuesto. Por esquina superior del bloque de coeficientes.
supuesto, este ruido será mayor a las altas Después de la recuantización, los coeficientes de
frecuencias. mas alta frecuencia posiblemente se habrán
reducido a cero. Podría ser obtenida una forma
Claramente, el grado de compresión obtenido y de codificación mas eficiente si primero se
el subsecuente bit rate, es función de la trasmitieran los coeficientes distintos de cero y
severidad del proceso de recuantización. luego un código indicando que los restantes
Diferentes bit rates requerirán diferentes tablas coeficientes son cero. El Scanning es una
de cuantización y en MPEG-2 es posible usar técnica que permite llevar a cabo esto último, ya
diferentes tablas para la compresión y que envía los coeficientes en orden decreciente
trasmitirlas al receptor para la correcta de probabilidad de magnitud. La figura 2.6ª
decodificación. 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í.
8
Figura 2.6
En la figura 2.6b, se muestra el escaneo para una RLC simplemente transmite la cantidad de ceros
imagen entrelazada (nuevo en MPEG-2). En una en la carrera en vez de cada bit individualmente.
imagen entrelazada, un bloque 8x8 DCT de un
campo se extiende sobre el doble de área La probabilidad de ocurrencia de ciertos valores
vertical de la pantalla, así que para una imagen de coeficientes en un material de video real
dada ,las frecuencias verticales parecerán ser el puede ser estudiada. En la práctica, algunos
doble de grandes que las horizontales. Por lo valores ocurren mas frecuentemente que otros.
tanto, el escaneo ideal para imágenes Esta información estadística puede utilizarse
entrelazadas es el que se muestra en la figura para llevar a cabo una mejora en la compresión
2.6b, en donde se ve que una frecuencia vertical con códigos de longitud variable. Los valores
dada se escanea antes que la misma frecuencia que ocurren mas frecuentemente son codificados
horizontal. con palabras mas cortas que los que ocurren
Volveremos sobre este punto mas adelante. menos a menudo. De cara a la deserealizacion,
no se permite que una palabra sea prefijo de otra
2.5 Codificación entrópica (código instantáneo).
9
Figura 2.7
En la figura 2.7 se asume que la señal de entrada homogéneas tenderán a vaciarlo. Si el buffer
es 4:2:2 (ver apéndice C sobre submuestreo de esta en peligro de over flowing , la cuantización
canal de croma) con 8 a 10 bits por píxel. se deberá hacer mas severa para bajar el bit rate.
MPEG trabaja con resolución de 8 bits, por lo
cual será necesario una etapa de redondeo En el decodificador, el bit stream es
cuando la señal de entrada tiene palabras de 10 deserealizado y la codificación entrópica es
bits. La mayoría de los perfiles de MPEG revertida para obtener los coeficientes
trabajan con muestreo 4:2:0, por lo que será ponderados. Se realiza la ponderación inversa de
necesario también una etapa de filtrado pasabajo los coeficientes , y luego se arma la matriz DCT
vertical . Esto elimina información de la imagen de acuerdo al zig-zag. Luego se aplica la IDCT
y también baja el bit rate. y se recrean los bloques 8x8 de coeficientes.
La etapa DCT transforma la información de la Los bloques son almacenados en RAM que se
imagen al dominio de la frecuencia. Luego, los lee una línea a la vez. Para obtener una salida
coeficientes son ponderados y truncados, 4:2:2 a partir de una 4:2:0, se debe realizar una
obteniendo la primera compresión significante. interpolación vertical como se muestra en la
Estos coeficientes son escaneados en zig-zag figura 2.8.
por las razones mencionadas anteriormente.
Después del último coeficientes distinto de cero, 2.7 Codificación temporal
se genera un código end of block (EOB). Luego
son comprimidos con RLC y VLC. En un La redundancia temporal puede ser explotada
sistema de bit rate variable, la cuantización es realizando codificación Inter, es decir,
fija, pero en un sistema de bit rate fijo se trasmitiendo solo las diferencia de imágenes. La
necesita de un buffer para absorber las figura 2.9 muestra que un retardo de una imagen
variaciones en el proceso de codificación. combinada con un sustractor, puede llevar a
Imágenes con muchos detalles tenderán a llenar cabo la operación.
el buffer, mientras que imágenes mas
10
Figura 2.8
Figura 2.9
11
Figura 2.10
Figura 2.11
Cuando un objeto se mueve en la pantalla puede de crominancia se extiende sobre la misma área
aparecer en otra posición en la imagen siguiente que 4 bloques 8x8 de luminancia. Por lo tanto,
pero generalmente no cambiará su apariencia. esta es la mínima área que puede ser desplazada
por un vector. Un macrobloque 4:2:0 contiene
La diferencia de imagen puede ser reducida, cuatro bloques de luminancia, uno de croma Cr
midiendo el movimiento en el codificador. Este y una de croma Cb.
movimiento es enviado al decodificador como
un vector. El decodificador usa este vector para En el perfil 4:2:2 , el color es muestreado solo
correr parte de la imagen previa a un lugar mas en la dirección horizontal. La figura 2.12b
adecuado en la nueva imagen. muestra que un bloque de crominancia se
extiende sobre la misma área que dos bloques de
Un vector controla el movimiento de imagen luminancia. Un macrobloque 4:2:2 contiene 4
entera de la imagen conocida como bloques de luminancia , 2 bloques de Cr y dos
macrobloque. El tamaño del macrobloque bloques de Cb.
depende de la codificación DCT y la estructura
de muestreo del color. La figura 2.12ª muestra El estimador de movimiento trabaja
que en un sistema 4:2:0, el espaciamiento comparando los macrobloques de luminancia de
vertical de las muestras de croma es dos imágenes sucesivas.
exactamente el doble que las muestras de
luminancia. Un simple bloque 8x8 de muestras
12
Figura 2.12
13
Lo mismo ocurre cuando la cámara realiza un macrobloques individuales, una imagen
paneo, van apareciendo nuevas áreas de las codificada bidireccionalmente puede obtener
cuales no se tenía información de ellas. MPEG compensación de movimiento de una imagen
ayuda a minimizar este problema introduciendo anterior o posterior , o aún de un promedio de
la codificación bidireccional, que permite que la ambas. La codificación bidireccional reduce la
imagen actual sea codificada teniendo en cuenta cantidad de datos diferencia , mejorando el
la información de imágenes antes y después de grado de predicción posible.
la actual. La figura 2.13 muestra el concepto de
codificación bidireccional. Sobre una base de
Figura 2.13
2.10 Imágenes I, P y B
En MPEG, se necesitan tres tipos diferentes de contiene vectores que indican en que posición
imágenes para soportar codificación diferencial en la imagen anterior estaba cada macrobloque y
y bidireccional, mientras se minimiza la la diferencia que debe ser sumada para
propagación del error. reconstruir ese macrobloque. Las imágenes P
Las imágenes I, son codificadas Intra, y no requieren, mas o menos, la mitad de datos que
requieren información adicional para la las imágenes I.
decodificación. Requieren un montón de datos Las imágenes B son predichas
mas que las otras imágenes, y por lo tanto no se bidireccionalmente a partir de imágenes
trasmiten mas que la cantidad necesaria. anteriores o posteriores I o P. Los datos en estas
Consisten primariamente de coeficientes imágenes consisten de vectores que indican en
transformados y no tienen vectores. Estas que posición en la imagen anterior o posterior
imágenes permiten la conmutación de canales y deberían ser tomados los datos. También
detienen la propagación del error. contienen los coeficientes transformados de la
diferencia que debe ser sumada para reconstruir
Las imágenes P, son predichas hacia delante a el macrobloque. Estas imágenes son las que
partir de una imagen previa que puede ser una requieren menos datos para ser creadas.
imagen I o una P. Los datos de estas imágenes
14
La figura 2.14 introduce el concepto de GOP o requiere de este dato para codificar
Group of Pictures. Cada GOP comienza con bidireccionalmente dichas imágenes B. Con el
una imagen I y tiene imágenes P espaciadas fin de regresar las imágenes en su secuencia
regularmente. Las restantes son imágenes B. El correcta, se introduce una referencia de tiempo
GOP esta definido hasta la última imagen antes en cada imagen. Las marcas de tiempo son
de la siguiente imagen I. Tienen largos variables analizadas en la sección 4.4.2.
, pero 12 o 15 son los valores mas comunes. El almacenamiento temporal de imágenes
Claramente, si los datos de las imágenes B van a requiere de cierta memoria adicional tanto en el
ser tomados de imágenes futuras, esas imágenes codificador como en el decodificador , e
deben estar disponibles tanto en el codificador introduce además cierto retardo. Se deberá
como en el decodificador. Por lo tanto, la controlar entonces la cantidad de imágenes B,
codificación bidireccional requiere el para poder controlar dicho retardo.
almacenamiento temporal de imágenes. La La figura 2.15 muestra el compromiso existente
figura 2.14 también muestra que las imágenes P entre factor de compresión y retardo en la
son enviadas antes que las B. Cabe notar codificación. Para una calidad dada, enviar solo
además, que las últimas imágenes B no pueden imágenes I, requiere de mas del doble de bit rate
ser enviadas sino hasta que la siguiente imagen I que enviar IBBP.
del siguiente GOP sea trasmitida, ya que se
Figura 2.14
Figura 2.15
15
decodificador teniendo asignado cierto perfil y
Sección 3 nivel, debe ser capaz de decodificar perfiles y
niveles mas bajos.
Lo nuevo en MPEG-2
El perfil simple no soporta codificación
bidireccional , con lo que solo tendrá a su salida
Introducción imágenes I y P. Esto reduce el retardo en la
codificación y decodificación y permite
La sección anterior introdujo con considerable hardware mas simple. El Simple Profile ha sido
detalle la forma en que MPEG realiza la definido solamente al Main Level (SP@ML) .
compresión de video. Las técnicas mencionadas
son comunes tanto para MPEG-1 como para El Main Profile fue diseñado para un amplio
MPEG-2 ya que se pidió al lector que se uso. El Low Level usa una baja resolución de
abstrajera de los conceptos que hay detrás del entrada teniendo solo 352 píxeles por línea.
video entrelazado. Como veremos en esta La mayoría de las aplicaciones broadcasting
sección, MPEG-2 introduce dos técnicas nuevas requerirán del subconjunto MP@ML (Main
en el proceso de codificación aplicables a Profile at Main Level) que soporta SDTV
material entrelazado. Aparecerán por lo tanto en (Estándar Definition TV).
esta sección, los conceptos de campo y cuadro,
y aprenderemos como MPEG-2 codifica El High Level –1440 es una forma de alta
eficientemente las imágenes entrelazadas. definición que duplica la definición del ML.
Recordemos que una de las aplicaciones mas Este nivel, no solo duplica la resolución sino
importantes de este nuevo estándar es el de que también la mantiene para el formato 16:9
codificar señales de televisión para incrementando el número de muestras
broadcasting, estando por lo tanto bajo el horizontales de 1440 a 1920.
tratamiento de imágenes entrelazadas. La
sección 3.2 explica el concepto de video 3.1.1 Perfiles escalables
entrelazado y la sección 3.4 enseña como
MPEG-2 codifica dicho material. Como antes, No todas las aplicaciones tienen un simple y
remito al lector a consultar el glosario ante la bien definido usuario final. Servicios tales como
aparición de palabras nuevas. Modo de Transferencia Asincrónico (ATM ) y
HDTV con compatibilidad hacia atrás con la TV
3.1 Perfiles y niveles necesitan entregar mas de una resolución y
calidad. MPEG-2 tiene definido tres perfiles
MPEG-2 es aplicable a un amplio rango de escalables que permiten que una imagen
aplicaciones que requieren diferentes completa sea decodificada con solo una parte
performance y complejidad. Para propósitos del bitstream. Estos tres tipos son: SNR (Signal
prácticos, el estándar MPEG-2 es dividido en to Noise Ratio ), Spatial y High. Se requiere que
perfiles y cada perfil es dividido en niveles (ver solo el perfil High escalable soporte el formato
figura 3.1). Un perfil es básicamente el grado de 4:2:2 además del 4:2:0.
complejidad esperado en el codificador. Un Las imágenes comprimidas son ensambladas en
nivel es un conjunto de parámetros tales como el diferentes capas, una capa principal y una o
tamaño de la imagen o el bit rate usado en ese varias capas de ayuda. La capa principal puede
perfil. Se puede decir que un perfil limita la ser decodificada sola para obtener una imagen
complejidad, es decir, los algoritmos, y un nivel de cierta calidad. Si a esta última le sumamos
limita los parámetros tales como bit rate, las demás capas de ayuda, se puede mejorar la
dimensiones de cuadro, frames rates, etc. calidad de la imagen y/o la resolución.
En principio hay 24 combinaciones posibles,
pero no todas han sido definidas. Un
16
Figura 3.1
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.
19
En contraste, la predicción basada en campo usa DCT basada en campo o basada en cuadro,
dos vectores de movimiento, uno proveniente de como se muestra en la figura 3.4 y 3.5. La DCT
un campo par y el otro del campo impar. Por lo basada en cuadro ,es la misma que la DCT de
tanto, pueden haber hasta cuatro vectores por MPEG-1. La DCT basada en campo, en cambio,
macrobloque (dos por cada dirección forward o opera sobre filas alternadas, es decir, las filas de
backward). un mismo campo, son juntadas en un mismo
En el modo codificación como campo, la bloque 8x8. El porque de esta forma de
predicción es solo en el modo campo, pero codificación, viene del hecho que quizás estén
puede ser relativa ya sea al campo par como al mas correlacionadas líneas de un mismo campo
impar. que líneas consecutivas en la imagen, debido
Independientemente del modo de predicción, esto al intervalo de tiempo que existe entre un
cada macrobloque en una imagen codificada campo y el otro.
como cuadro, puede ser codificado mediante
20
adquirida en forma entrelazada o progresiva.
3.5 Exploración (Scanning) Para ello, tomaremos la secuencia y la
codificaremos con MPEG-2 en formato
Después de realizar la DCT a un bloque 8x8 entrelazado primero y luego en formato
píxeles, se nota que generalmente los progresivo. Tomaremos para ambos esquemas
coeficientes mas significativos se encuentran en de compresión, los siguientes parámetros de
la parte superior izquierda de la matriz. Una vez codificación:
evaluados, los coeficientes menos significativos
pueden ser redondeados a cero. Se logra de este N=12, nº de frames en el GOP
modo una transmisión de datos mas eficiente, ya M=3, distancia I-P
que se transmiten primero los coeficientes Frame_rate=25
distintos de cero, y luego un código que indique Bit_rate=4 Mbps
que los demás coeficientes son todos cero. Profile: Main
La exploración es una técnica que aumenta la Level: Low
probabilidad de alcanzar este resultado, porque
ella envía los coeficientes en forma descendente Para la compresión entrelazada se seteará
según su probabilidad. La figura 2.6ª y 2.6b,
muestran que en un sistema ya sea entrelazado o Alternate_scan=1 (para las los 3 tipos de
no, la probabilidad de hallar coeficientes de imágenes)
mayor peso ,es mas alta en la parte superior Picture_format=1 (field_picture)
izquierda de la matriz que en la inferior derecha. Progressive_secuence=0
La figura 2.6ª muestra que una buena Progresive_frame=0
exploración para una imagen progresiva es el
zig-zag, ya que las frecuencias horizontales y Para la compresión progresiva ,será
verticales no son en general muy diferentes.
Una imagen entrelazada esta compuesta de dos Alternate_scan=0 (para las los 3 tipos de
campos entrelazados como se explicó en la imágenes)
sección 3.2. Si codificamos como entrelazado, Picture_format=0 (frame_picture)
estaremos codificando cada campo por Progressive_secuence=1
separado, con lo cual las líneas en la imagen (el Progresive_frame=1
campo en cuestión), estarán separadas el doble
de distancia que en un cuadro completo. Este Una vez codificadas las imágenes,
distanciamiento entre líneas consecutivas en un compararemos la calidad (SNR) de cada cuadro
campo, hace que las frecuencias verticales en medida contra la secuencia original.
esta imagen sean por lo general de mas peso que Al codificar ambos esquemas con el mismo bit
las sus duales horizontales. rate, podremos decir que la compresión que
En la figura 2.6b, se muestra la exploración para resulte en un mejor SNR, será la mas óptima.
una fuente entrelazada. Se observa que la La pregunta que surge ahora es la siguiente, si la
exploración se extiende dos veces mas por calidad de las imágenes codificadas bajo un
encima del área vertical intentando primero esquema es mejor que el otro, ¿significa que la
conseguir las frecuencias verticales antes que las secuencia fue adquirida en ese formato?
horizontales. La figura 2.6b, muestra que esta De lo que si podemos estar seguros, es que si
exploración entrega primero las frecuencias una secuencia fue adquirida en forma
espaciales verticales. entrelazada, y el movimiento en la escena fue
tal que los dos campos se correlacionan poco,
3.6 Entrelazada o progresiva?. Experiencia entonces una codificación que tenga en cuenta
con Mobile. esta baja correlación entre líneas consecutivas,
será mejor que uno en donde se considere que
En esta parte intentaremos determinar si una las líneas fueron escaneadas en forma secuencial
secuencia de imágenes ( mobile ) dada, fue en el tiempo.
21
Si se tomaron imágenes cada 40 mseg (25 Hz), La experiencia que haremos es un tanto
primero un campo y luego el siguiente, la exagerada, pero servirá para mostrar el efecto.
velocidad de barrido vertical en la imagen Lo que haremos, será tomar el primer y último
habrá sido de 50 Hz, ya que en un tiempo de cuadro de la secuencia mobile, y formar un solo
cuadro se deben barrer dos campos. Basta que cuadro entrelazado. Tomaremos para ello el
en un lapso de 20 mseg haya ocurrido un campo par de mobile0, y lo entrelazaremos con
cambio sustancial en la imagen para que las el campo impar de mobile23. El movimiento
líneas consecutivas, es decir, los campos que se produce entre estos dos cuadros es mas
entrelazados, estén poco correlacionados. Este que suficiente como para hacer aparecer el
efecto se conoce como “combing”. combing.
Bajo esta situación, sabemos que la codificación Luego de este proceso, calculamos la DCT por
entrelazada que codifica ambos campos en bloques en ambos cuadros, en mobile0, que
forma independiente será la mejor. Sin embargo, suponemos que es progresiva, y en el nuevo
sin no hubo un cambio sustancial entre los cuadro formado, que es entrelazado.
diferentes campos, es decir, en ausencia de Por último, y a los efectos de comparar un
combing, lo mejor será codificar como cuadro y el otro, opté por tomar de entre los 64
progresivo ya que la distancia entre líneas coeficientes de la DCT, el que mide la máxima
consecutivas en un campo hace menos eficiente frecuencia horizontal sin cambios verticales, y el
a la DCT, ya que se enriquecen las frecuencias que mide la máxima frecuencia vertical sin
verticales. cambios horizontales (ver fig 3.6).
22
data1
data2
F recuencias horizontales progresiva
100 entrelazada
50
-50
-100
0 5 10 15 20 25 30 35 40 45
F recuencias verticales
1000
500
-500
-1000
0 5 10 15 20 25 30 35 40 45
# de bloque DCT 8*8 en la fila
Figura 3.7: Coeficientes correspondientes a bloques DCT 8*8 comprendidos
entre las filas 160 y 168 de la imagen.
23
SNR vs nº de cuadro para ambos campos
24
23
22
21
SNR (dB)
20
19
Campo par
18 Campo impar
17
0 5 10 15 20 25
nº de cuadro
Figura 3.9
24
SNR vs # de cuadro para codificacion progresiva
25
24
23
SNR (dB)
22
21
20
19
0 5 10 15 20 25
# de cuadro
Figura 3.10
25
24
23
22
SNR (dB)
21
20
19
progresiva
18 entrelazada
17
0 5 10 15 20 25
nº de cuadro
Figura 3.11. Comparación de ambos esquemas de codificación
25
El codificar cada imagen como dos cuadros Al codificar línea por línea, reducimos el peso
separados, hace que la DCT sea menos eficiente de dichas frecuencias y hacemos que la
( en ausencia de combing) ya que baja la información de cada macrobloque se concentre
correlación entre píxeles verticales debido al en las bajas frecuencias, haciendo mas eficiente
espaciamiento de las líneas. Dicho de otra la codificación.
manera, las frecuencias verticales se vuelven
mas importantes .
26
oportunidades de incluir elementos de sintaxis
privadas (definidas por el usuario) para
optimizar una aplicación particular.
Sección 4
4.1 Sobre la notación
ISO/IEC 13818-1 :La capa del sistema
Cuando hablemos de un programa nos
de MPEG-2 estaremos refiriendo a un servicio particular que
esta siendo codificado, como una secuencia de
Resumen video con su audio asociado y quizás algunos
datos auxiliares (ver figura 4.1). Si
La especificación de Sistema de MPEG-2 paralelamente se codifica otra secuencia de
describe como las cadenas de datos video, o simplemente audio, en un canal o dos,
comprimidos de audio y video pueden ser diremos que se trata de otro programa.
multiplexados juntas con otros datos para
formar una simple cadena de datos (single data La palabra cadena, se tomó como traducción de
stream) disponible para transmisión y/o stream, y es simplemente una sucesión de bits
almacenamiento. Esta sección cubre los de audio o video.
principios y terminología de la capa del sistema
de MPEG-2. Aquí se cubren tres áreas Un múltiplex es simplemente una forma de
fundamentales: Primeramente, las estructura de multiplexar cadenas de datos. MPEG-2 define
los diferentes múltiplex; segundo, la dos diferentes tipos de múltiplex, el de
información de servicio que pueden presentar, y programa y el de transporte.
tercero, el sistema de marcas de tiempo y
referencias de reloj utilizadas para sincronizar 4.2 Unidades de presentación y unidades de
en el decodificador componentes de programa acceso
relacionados.
La figura 4.2 muestra una secuencia de video sin
En la capa de sistema de MPEG-2, se comprimir siendo codificada MPEG a un bit
especifican dos posibles alternativas de rate de 5 Mbps. Cada imagen en la secuencia sin
multiplexión. La cadena de programa comprimir se denomina unidad de presentación.
(programme stream), fue diseñada pensando en El codificador codifica cada unidad de
el almacenamiento y reproducción de un simple presentación para formar una imagen codificada
programa a partir de un dispositivo de que se denomina unidad de acceso. Note que las
almacenamiento digital (eventualmente libre de unidades de acceso no son todas del mismo
ruido), mientras que la cadena de transporte tamaño. El tamaño depende de si la imagen es I,
(transport stream), fue pensada para la entrega P o B.
simultánea de múltiples programas sobre
canales con ruido. Ambos múltiplex facilitan la
inclusión de información específica de programa
(Programme Specific Information, PSI) que
detallan el/los programas y las cadenas
elementales presentes. Los múltiplex también
usan un sistema de marcas de tiempo y
referencias de reloj para asegurar la
reproducción sincrónica de cadenas elementales
relacionadas, y el correcto comportamiento de
los buffers en el decodificador. En la figura 4.1
se esquematiza la producción de las cadenas de
programa y de transporte. Mas adelante se
hablará en detalle de ambas. Hay muchos
elementos de sintaxis opcionales y muchas
27
Figura 4.1. Generación de cadenas de transporte y programa en MPEG-2.
28
movimiento puede ser basada en campo en
cuadro, y esto es indicado en el header. También
se indica la escala usada para la recuantización
4.3 Elementary Streams (Cadenas de los coeficientes. Usando los vectores, el
Elementales) decodificador usa la información de imágenes
anteriores o posteriores para producir la imagen
Un Elementary Stream no es mas que la salida predicha. Aplicando la IDCT a cada bloque, se
en bruto de un codificador, y contiene no mas obtiene la imagen corrección que hay que
que la información necesaria para que un sumarle a la imagen predicha para formar la
decodificador pueda formar el video o el audio imagen correcta.
original. La sintaxis de la señal comprimida está En codificación 4:2:0 ,cada macrobloque tiene 4
rígidamente definida, de forma que asegure que bloques Y y dos bloques de cada color. En
todos los decodificadores puedan usarla. El formato 4:2:2, habría 2 bloques de cada color
codificador no esta definido, sin embargo debe por cada 4 de luminancia. Para identificar cada
ser tal , que produzca la sintaxis de salida bloque correctamente, estos se envían en un
correcta. De esta forma se estandarizan los orden específico. (ver apéndice C para mas
decodificadores, pudiéndolos fabricar a bajo información sobre submuestreo del canal de
costo. En contraste, los codificadores pueden ser croma).
mas complejos y mas caros, de forma que se Los macrobloques son ensamblados en slices,
adapten mejor a los requerimientos de alta que deben representar siempre partes de una
calidad de codificación. Cuando el codificador y imagen de izquierda a derecha. En MPEG, se
decodificador son de diferentes complejidades, permite que los slices tengan cualquier largo y
se dice que el sistema de codificación es comiencen en donde sea. El slice es la unidad
asimétrico. elemental de sincronización para la codificación
de longitud variable y diferencial. Los primeros
El estándar MPEG permite también que la vectores en el slice son enviados absolutamente,
calidad sea mejorada a medida que los mientras que los restantes son enviados
algoritmos de codificación son refinados, diferencialmente. En imágenes Intra, también
permitiendo aún que los decodificadores mas los primeros coeficientes DC son enviados
viejos decodifiquen el bit stream. absolutamente y los restantes en forma
diferencial.
4.3.1 Sintaxis del Video Elementary Stream
Un número de slices son combinados para hacer
La figura 4.3 muestra la construcción de un una imagen, que es la parte activa de un campo
video elementary stream. La unidad a un cuadro. El header de la imagen indica si
fundamental de información es el bloque DCT, esta fue codificada como I, P o B y también
que representa un arreglo 8x8 de píxeles que incluye una referencia temporal para que la
pueden ser Y, Cr, o Cb. El coeficiente DC es imagen sea presentada en el orden correcto. Para
enviado primero, y es representado mas situaciones especiales, como un paneo de la
exactamente que los demás coeficientes cámara, los vectores de movimiento de los
(MPEG-2 permite la elección de 8, 9, 10 u 11 diferentes macrobloques serán los mismos, por
bits para el coeficiente DC). Seguido de los lo que se envía un vector global, y los vectores
demás coeficientes, se envía un código EOB individuales como diferencias con este.
(End Of Block).
Los bloques son ensamblados en macrobloques, Las imágenes pueden ser combinadas para
que son la unidad fundamental de una imagen producir un GOP, que debe comenzar siempre
para ser compensada por movimiento. Cada con una imagen I. El GOP es la unidad
macrobloque de una imagen P o B tiene un fundamental de codificación temporal. Los
vector de movimiento bidimensional en su GOP’s pueden ser abiertos o cerrados. En un
header. En imágenes B, los vectores pueden ser GOP cerrado, las últimas imágenes B no
forward o backward. La compensación de 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 se usa AC-3 , esto también se verá reflejado
Si son usados varios GOP’s, estos son en el header de la secuencia.
combinados para producir una secuencia de
video. La secuencia comienza con un código de 4.4 Cadenas Elementales Paquetizadas (PES)
inicio de secuencia seguido del header de la
secuencia, y finaliza con un código de fin de Para propósitos prácticos, las cadenas
secuencia. Se pueden colocar además headers elementales conteniendo audio o video deben
adicionales a la secuencia a la mitad de esta. ser partidas en paquetes. Estos paquetes son
Esto permite que la decodificación pueda identificados mediante headers que contienen
comenzar en alguna parte en la mitad de la marcas de tiempo (time stamps) para
secuencia. El header de la secuencia especifica sincronización. Los PES pueden ser usados para
el tamaño vertical y horizontal de la imagen, la crear Cadenas de Programa (Program Stream) o
relación de aspecto, el formato de submuestreo Cadenas de Transporte (Trasport Stream).
de croma, el picture rate, el uso de scan
progresivo o entrelazado, el perfil, nivel, bit 4.4.1 Paquetes PES
rate, y las matrices de cuantización usadas en
codificación Intra e Inter. En PES, las largas cadenas elementales son
Sin el header de la secuencia, los divididas en paquetes de tamaño adecuado para
decodificadores no pueden entender el bit la aplicación (ver figura 4.4). El tamaño podría
stream, por lo que los headers de la secuencia se ser de unos pocos cientos de kilobytes, aunque
vuelven el punto de inicio para comenzar la varían mucho de acuerdo a la aplicación. Cada
decodificación. paquete es precedido por un PES packet header.
La estructura completa de un paquete PES se
4.3.2 Audio Elementary Streams puede consultar en el apéndice A.
El paquete comienza con un prefijo de comienzo
Varios tipos de audio pueden ser metidos en un de código de 24 bits, y un stream ID que
multiplexor MPEG-2. Estos tipos provienen de identifica el contenido del paquete como video o
las tres capas del MPEG Audio y el AC-3. El audio y futuras identificaciones como tipo de
tipo de codificación de audio usada debe estar codificación de audio. Estos 2 parámetros (Start
incluida en un descriptor, que el decodificador Code prefix y Stream ID ) comprenden el packet
leerá a los efectos de invocar al decodificador start code, que identifica el comienzo del
adecuado. paquete.
Debido a que MPEG solo define la cadena de
El proceso de codificación de audio es un poco transporte y no el codificador, un diseñador
diferente que el de video. No hay un equivalente podría construir una cadena de transporte a
a las diferentes I, P o B frames, y los “frames” partir de una cadena elemental en un solo paso.
de audio tienen todos la misma cantidad de En este caso, el paquete PES no existiría nunca
datos. No hay equivalencia con las imágenes B, en una forma identificable, en vez de eso, estaría
y los frames de audio nunca son trasmitidos lógicamente presente en la carga de la cadena de
fuera de orden. trasporte. Las cadenas de transporte se tratarán
luego.
En MPEG-2 Audio, el header de la secuencia
contiene el descriptor que indica que capa se uso
para codificar el audio y el tipo de compresión
(estéreo conjunto, por ej. ), seguido de la
velocidad de muestreo original. La secuencia de
audio es formada a partir de un número de
unidades de acceso (AUs) que serán codificadas
como audio frames.
31
Figura 4.4
Figura 4.5
33
transmisión de bit rate fijo y posiblemente con
ruido e interferencia. elementales son organizados en “packs” (ver
En una cadena de programa, los paquetes PES figuras 4.6 y 4.7 ).
que fueron obtenidos a partir de cadenas
Figura 4.6
Figura 4.7
35
Figura 4.8
Figura 4.9
Figura 4.10
Figura 4.11
36
A partir de esta tabla, el decodificador puede
4.6.2 Información Específica de Programa determinar que la cadena elemental de video
(PIS) codificada esta siendo transportada en paquetes
de transporte con PID=726, y que la cadena
En una cadena de transporte, cada paquete de elemental de audio en inglés esta disponible en
transporte tiene un PID que indica a que cadena los paquetes con PID=57.
elemental pertenece su payload (ver sección La PMT básica puede ser enriquecida con
anterior). Puede haber muchas diferentes algunos de los descriptores especificados en
cadenas elementales comprendiendo diferentes MPEG-2. Ellos dan información de un
programas. Cómo puede un decodificador programa o de sus cadenas elementales que los
determinar que cadena elemental pertenece a componen. Los descriptores incluyen
cada programa?. La respuesta es incluir parámetros de codificación de video, parámetros
información adicional en la cadena de transporte de codificación de audio, identificación de
que explicite la relación entre los programas lenguaje, información de pan y scan, detalles de
disponibles y los PID. Dicha información es acceso condicional, información de copyrigth y
llamada Programme Specific Information (PIS ) demás. Un Broadcaster u otro usuario pueden
y debe estar presente en cada cadena de definir otros descriptores privados si lo desean.
transporte.
El PIS especificado por la capa del sistema 4.6.2.2 The Programme Asociation Table
MPEG-2, comprende 4 tipos de tablas: La (PAT)
Programme Map Table (PMT), la
Programme Association Table (PAT), la Una lista completa de todos los programas
Network Information Table (NIT), y la disponibles en una cadena de transporte, es
Conditional Access Table (CAT). Note que mantenida en un PAT. Esta tabla es fácil de
estas tablas pueden llevarse en los payloads de encontrar, ya que siempre tiene un PID=0. Cada
uno o mas paquetes de transporte, y por lo tanto programa es listado con el valor de PID de los
ser acomodadas en una cadena de transporte. paquetes de transporte que contienen su Tabla
del Mapa del Programa (PMT). Por ejemplo, en
4.6.2.1 The Programme Map Table (PMT) el PAT de la figura 4.13, el PMT del programa 3
se encuentra en los paquetes de transporte con
Cada programa llevado en una cadena de PID=1127.
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.
Figura 4.13
Figura 4.12
Esta permitido que una única PMT, contenga
información de mas de un programa. Esto es de
37
particular ventaja cuando las definiciones de Una tabla llamada Programme Stream Map es
programas son cortas. En vez de usar varios definida para usar en una cadena de programa y
paquetes de transporte para colocar las PMT de establece el tipo (audio, video, otro) de
los diferentes programas, usamos un solo información llevada en cada cadena elemental.
paquete y colocamos en esa única PMT la Puede ser enriquecida con descriptores privados
información de otros programas. definidos por MPEG, para dar información
sobre el programa o las diferentes cadenas
4.6.2.3 The Network Information Table (NIT) elementales.
La figura 4.14 muestra de que forma se utilizan
El programa número cero tiene especial las tablas descritas anteriormente, constituyendo
significado en la Tabla de Asociación de una PSI (Program Specific Information).
Programa. Es usado para indicar el camino a la Se incluyó además un resumen de la jerarquía
Network Information Table (NIT). Esta tabla es de producción de las cadenas de programa y de
opcional y su contenido es privado (es decir, transporte que usa MPEG-2 en la figura 4.15.
definido por el broadcaster y no por MPEG).
Cuando está presente, lleva información de la
red física por donde es transportada la cadena de
transporte, tal como frecuencias de los canales,
detalles del transponder de los satélites,
características de modulación, originador del
servicio, nombre del servicio y detalles de redes
alternativas disponibles.
38
Figura 4.14. Uso de las tablas definidas por MPEG-2
39
40
fácilmente por los distintos programas y
4.8 Como demultiplexar MPEG-2 servicios que se le ofrecen.
41
permiten que el decodificador sincronice su
Las muestras de cada reloj de programa reloj con el reloj del programa que está
llamadas Programme Clock References (PCR) decodificando o que va a decodificar
son llevadas en la cadena de transporte. Ellas
Figura 5.1
Un PCR de cada programa debe aparecer en la En cadenas de transporte, los relojes son
cadena de transporte al menos una vez cada 0.1 llamados Programme Clocks (Relojes del
segundos. Para encontrar en que paquete de Programa) y las referencias de tiempo son
transporte se lleva la PCR de determinado llamadas Programme Clock References
programa, hay que consultar la tabla del mapa (Referencias del Reloj del Programa).
del programa (PMT) (ver figura 4.9). Dejando de lado la diferencias en los nombres,
hay muy pocas diferencias entre los relojes y sus
Note la confusión potencial aquí. En una cadena funciones en los diferentes múltiplex.
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).
42
Resumen
El estándar MPEG-2 fue pensado para transmisión de señales de TV en forma completamente digital.
De cara a esto, una de las mas sobresalientes características del estándar 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 señal base con la información mas importante de video, y otra secundaria o de ayuda para
los usuarios mas exigentes. Esto es simulcasting. Un ejemplo de esto es la difusión de HDTV, donde los
usuarios convencionales solo decodifican el SDTV.
La capa del sistema de MPEG-2 es la primera parte del estándar (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
aplicación. Si la aplicación en cuestión es almacenamiento y reproducción de la secuencia, MPEG-2
utiliza las cadenas de programa que son relativamente largas y de tamaño 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 aplicación es la transmisión de múltiples programas por un canal ruidoso,
MPEG-2 hace uso de las cortas y de tamaño fijo cadenas de transporte.
Debido a la necesidad de sincronía entre el transmisor y el receptor, se deben incluir en la secuencia las
referencias de reloj, que son muestras del reloj del codificador.
La especificación completa de MPEG-2 estuvo lista en Noviembre de 1994, y fue publicada en el año
1995.
MPEG-2 no estandariza los codificadores, pero si la sintaxis de salida del bitstream. Con esto se logra
que los diseñadores 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 términos
Cadena Elemental (Elementary Stream): Secuencia de bits en bruto ya sea de audio, video o datos
auxiliares provenientes de la codificación de un determinado material.
Cadenas de Programa (Programme Stream): Uno de los dos posibles múltiplex que define MPEG-
2.La cadena de programa es el múltiplex adecuado para almacenamiento de audio y/o video.
Cadenas de Transporte (Transport Stream): Uno de los dos posibles múltiplex que define MPEG-
2.La cadena de transporte es el múltiplex adecuado para la transmisión de audio y/o video sobre un
canal ruidoso.
Campo (field): Un campo corresponde a la mitad de las líneas de una imagen completa. El campo impar
de una imagen esta constituido por las líneas 1, 3, 5, 7....y el par por las líneas 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.
Cuadro (frame): Imagen completa. Si esta fue adquirida en forma entrelazada, un cuadro se refiere al
conjunto de ambos campos.
Entrelazado: Procedimiento que mezcla dos campos de un cuadro para formar el cuadro completo. Las
líneas de cada campo se alternan en el mezclado.
Imagen (Picture): Se refiere ya sea a un solo campo de un cuadro o al cuadro completo. Depende del
contexto en que nos encontremos.
Múltiplex: Organización de las cadenas elementales paquetizadas (PES) realizada ya sea para
almacenamiento del material o la transmisión del mismo. MPEG-2 define dos alternativas de múltiplex:
la cadena de transporte y la cadena de programa.
NIT (Network Information Table): Tabla de Información de Red. Información opcional sobre el
enlace por el cual circulan los datos.
Nivel: Conjunto de parámetros de codificación, 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
aplicación.
Overflowing: Estado de saturación del buffer del codificador, producido posiblemente por la
codificación de imágenes de mucha entropía.
PAT (Programme Asociation Table): Tabla de Asociación de Programa. Información 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 envía al decodificador, a los efectos de mantener la sincronía.
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 operación de un codificador.
PES (Paquetized Elementary Stream): Cadenas elementales paquetizadas. Sintaxis definida por
MPEG-2 para la división de las largas cadenas elementales de audio o video producidas por un
codificador. Cada PES contiene un header con los datos necesarios para la descodificación. 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 específicos de un programa en
particular.
Programa: Secuencia de video, audio o video con su audio asociado disponible en el codificador para
ser comprimida.
RLC (Run Length Coding): codificación por longitud de carrera. Algoritmo de codificación que hace
uso de largas cadenas de símbolos iguales para una codificación eficiente.
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 envía al decodificador, a los efectos de mantener la sincronía.
Underflowing: Estado del buffer del codificador en el cual se encuentra prácticamente vació, debido
posiblemente a la codificación de imágenes de baja entropía.
VLC (Variable Length Coding): Codificación de longitud variable. Algoritmo de codificación que
hace uso de la estadística de los símbolos para codificar de forma mas eficiente. Los símbolos mas
probables se codifican con palabras mas cortas.
45
Apéndice A
46
Detalle del header
47
Detalle del campo de adaptación
Apéndice B
48
Estructura del system header
49
Apéndice C
El primer paso en la reducción del bit rate de una secuencia de video es el submuestreo del canal de
croma. Hoy la mayoría de las imágenes electrónicas son grabadas en color, en el dominio RGB (Red,
Green, Blue). MPEG transforma las imágenes RGB al espacio luminancia crominancia, generalmente
referido al dominio Y-Cr-Cb, definido como
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 función 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 aplicación, fijando un
compromiso entre calidad y bit rate. La siguiente tabla ilustra los diferentes modos de submuestreo para
una imagen típica CCIR 601 con 720 pixeles/linea y 480 líneas por cuadro:
50
Factor de Factor de
Formato Muestras líneas Y Muestras líneas C submuestreo submuestreo
de croma Y por línea por cuadro C por línea por cuadro horizontal vertical
Apéndice D
Un compresor MPEG
Figura D.1
Las figuras D.1, D.2, y D.3 muestran las estructura de un compresor MPEG típico. La señal de video
preprocesada entra en una serie de buffers que almacenan imágenes y eventualmente cambian el orden
de las imágenes. 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 imágenes B que van llegando ( o mejor dicho, las que van a ser
imágenes 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 predicción 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
predicción, que luego se codifica espacialmente. además, 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 imágenes 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 atrás respectivamente y producir las dos imágenes
predecidas hacia adelante y atrás. Luego son restadas de la imagen actual y ambos errores de predicción
se codifican espacialmente. En una base de macrobloque por macrobloque, son seleccionados los datos
que representan la diferencia mas pequeña. Luego se transmiten junto con los respectivos vectores de
movimiento. Una vez que se codifican todas las imágenes intermedias (imágenes B), de nuevo se
retienen imágenes 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 especificación del estándar MPEG-2. Dos de los documentos que colaboraron con gran parte de la
información 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