Sei sulla pagina 1di 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

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

Introduccin a MPEG

Total=216 Mbps
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

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.

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

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

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.

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.

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.

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.

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

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

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.

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).

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.

Figura 3.6

Vayamos a los resultados:

22

data1
data2
progresiva
entrelazada

F recuencias horizontales
100
50
0
-50
-100

10

15

20

25

30

35

40

45

35

40

45

F recuencias verticales
1000
500
0
-500
-1000

10

15
20
25
30
# de bloque DCT 8*8 en la fila

Figura 3.7: Coeficientes correspondientes a bloques DCT 8*8 comprendidos


entre las filas 160 y 168 de la imagen.

Comparando las frecuencias horizontales de


ambas 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

SNR (dB)

22
21
20
19

Campo par
Campo impar

18
17

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

SNR (dB)

23

22

21

20

19

10
15
# de cuadro

20

25

Figura 3.10

25
24
23

SNR (dB)

22
21
20
19

progresiva

18
17

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.

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.

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

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.

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.

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.
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.

cronolgico de los paquetes pertenecientes a la


misma cadena elemental debe preservarse.

4.6 La cadena de transporte

4.6.1 El header del paquete 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.

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:

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

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.

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.

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.

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.

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

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.

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

Potrebbero piacerti anche