3 CONCEPTOS BÁSICOS DE MPEG (Moving Pictures Experts Group)

Anuncio
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
3 CONCEPTOS BÁSICOS DE MPEG (Moving Pictures
Experts Group)
3.1 Introducción
El Moving Picture Experts Group (Grupo de Expertos de Imágenes en Movimiento)
referido comúnmente como MPEG, es un grupo de trabajo del ISO/IEC encargado de
desarrollar estándares de codificación de audio y video. Desde su primera reunión (año
1988 en Ottawa, Canadá), el MPEG ha crecido hasta incluir 350 miembros de distintas
industrias y universidades. La designación oficial del MPEG es ISO/IEC JTC1/SC29
WG11.
MPEG es una de las técnicas de compresión de audio/vídeo más populares porque no es
sólo un estándar, si no que es una familia de estándar que se pueden aplicar en
diferentes aplicaciones pero todos basados en principios similares.
MPEG ha normalizado los siguientes formatos de compresión y normas auxiliares:
•
MPEG-1: estándar inicial de compresión de audio y vídeo. Usado después como
la norma para CD de vídeo, incluye popular formato de compresión de audio Capa
3 (MP3).
•
MPEG-2: normas para audio y vídeo para difusión con calidad de televisión.
Utilizado para servicios de TV por satélite como DirecTV (Cadena estadounidense
de televisión vía satélite de difusión directa), señales de televisión digital por cable
y (con ligeras modificaciones) para los discos de vídeo DVD.
•
MPEG-3: diseñado originalmente para HDTV (Televisión de Alta Definición), pero
abandonado posteriormente en favor de MPEG-2.
•
MPEG-4: expande MPEG-1 para soportar "objetos" audio/vídeo, contenido 3D,
codificación de baja velocidad binaria y soporte para gestión de derechos digitales
(protección de copyright).
•
MPEG-7: sistema formal para la descripción de contenido multimedia
•
MPEG-21: MPEG describe esta norma futura como un "marco multimedia".
29
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
3.2 Historia
Podríamos decir que todo empieza en 1987 cuando el italiano Leonardo Chiariglione, que
había pertenecido al comité consultivo internacional de radiocomunicaciones (CCIR,
International Radio Consultative Comittee), era el encargado de la estandarización de la
televisión de alta definición (HDTV, High Definition Television), pero se encontraba un
tanto desilusionado por el fracaso en adoptar un único estándar internacional ya que
Japón, Europa y Estados Unidos pugnaban por su propio formato. Ese año asistía al
encuentro del grupo unido de expertos en imágenes (JPEG, Joint Pictures Experts
Group) que había sido formado en 1982 por la organización de estándares
internacionales (ISO, International Organization for Standardization) y por la comisión
electrotécnica internacional (IEC, International Electrotechnical Comittee) y cuyo objetivo
era establecer un conjunto de formatos que permitieran obtener una codificación eficiente
de imágenes estacionarias, de uso público, que mitigaran la aparición de formatos
propietarios. En este encuentro, Chiariglione quedó profundamente impresionado por lo
que se podía lograr entre un grupo de expertos cuando no se manejaban intereses de
ninguna industria. Así que se aproximo al director del grupo JPEG, el japonés Hiroshi
Yoshuda, y le sugirió la creación de un grupo semejante al JPEG, que se encargara de
estandarizar la codificación digital de las imágenes en movimiento.
De esta manera, en 1988 y con Yoshuda como representante ante la ISO, la organización
ISO/IEC crea el comité técnico unido sobre tecnologías de la información, subcomité 29,
grupo de trabajo 11 (ISO/IEC JTC1/SC29/WG11), más conocido como MPEG, bajo la
dirección
de
Chiariglione,
encargándole
el
desarrollo
de
estándares
para
la
representación codificada de imágenes en movimiento, la información del audio asociado
y su combinación para la grabación y lectura en un medio de almacenamiento digital. En
ese momento el grupo estaba formado por 12 personas pero durante los años posteriores
expertos de todo el mundo en video, audio y sistemas fueron uniéndose llegando a ser
200 participantes en el año 1992.
Una vez creado el grupo MPEG, su primer objetivo fue la posibilidad de almacenar y
reproducir de señales de video y audio en soporte CD-ROOM para su uso en
aplicaciones multimedia.
La inclusión de una señal de vídeo y audio en un soporte como el CD, que originalmente
había sido pensado para incluir únicamente la información asociada a un canal de audio
estereofónico, representó un importante problema tecnológico durante el desarrollo del
30
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
estándar MPEG-1, ya que los factores de compresión que debían utilizarse se situaban
entre 100 y 200. El flujo de datos que admite un CD-ROOM de simple velocidad
(150Kbytes/s) es de unos 1,2 Mbps mientras que el fuljo de bits implícito en una señal de
vídeo 4:2:2 es, como hemos dicho, de aproximadamente 260 Mbps (estándar ITU 601,
formato 4:2:2).
La solución al problema se obtuvo reduciendo la calidad de la imagen en un doble
proceso de reducción espacial y temporal. Este proceso significa una reducción inicial de
los datos basada en el remuestreo temporal y espacial, por lo que no puede considerarse
como una verdadera compresión de vídeo. Por una parte, la resolución de las imágenes
se redujo a la mitad, tanto en la dirección horizontal como en la vertical. Aunque esta
reducción suponga una pérdida de calidad considerable comparándola con el formato
estándar de radiodifusión, la resolución que se obtiene es equivalente a la del formato de
registro en cinta magnética VHS.
Otra simplificación importante en el MPEG-1 es que no admite vídeo entrelazado, por lo
que sólo se requiere codificar uno de los dos campos de la señal original.
A finales de 1990 ya existía un borrador del proyecto que demostraba que se podía
generar un flujo de datos con audio de calidad CD (16 bits por muestra y un muestreo a
44,1 kHz) y video de calidad (LDTV, Low Definition Television) equivalente a la calidad de
una cinta VHS. Ya para finales de 1992 se concluía el primer estándar definitivo,
conocido como MPEG-1 (numerado como ISO/IEC 11172) con una tasa de datos de 1,5
Mbps, 1,15 Mbps para el video y 350 Kbps para el audio en estéreo. En relación al audio
podemos comentar que la capa 3 (layer 3) de audio de la norma MPEG-1 es la que ha
dado lugar al polémico MP3.
Durante el desarrollo del MPEG-1 los participantes del grupo MPEG se dieron cuenta que
la base de las técnicas que estaban desarrollando también era óptima para aplicaciones
que requerían mayor resolución y un bitrate (tasa de bits) de hasta diez veces superior.
Esto les hizo pensar en avanzar la implementación de la televisión digital que estaba
prevista para el siguiente milenio, cuando las redes de banda ancha ya se hubieran
extendido. Entonces con el objetivo de unificar criterios para la implementación de la
televisión digital el grupo desarrollo el siguiente estándar, el MPEG-2 (numerado como
ISO/IEC 13818) que fue aprobado el 11 de Noviembre de 1994.
El estándar MPEG-2 mantiene cierto grado de compatibilidad con las secuencias de bits
producidas por el MPEG-1 y pretende cubrir aplicaciones de mayor ancho de banda,
31
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
además de la principal diferencia de que el estándar MPEG-2 es capaz de tratar señales
de vídeo entrelazadas. Involucra compresión de datos (flujos de bits) originalmente a 260
Mbps (sin compresión) hasta lograr una tasa de bits entre 2 y 15 Mbps (después de la
compresión). Su diseño es sumamente flexible y cubre una amplio espectro de sistemas
de vídeos que van desde los formatos digitales ITU 601 4:2:2, ITU 601 4:2:0, HDTV
(televisión de alta definición) 4:2:0, EDTV (televisión con definición mejorada) 4:2:0,
formatos CIF y SIF, formatos HHR 4:2:0, algunos de ellos en versiones de exploración
progresiva, otros con exploración entrelazada y algunos con ambos tipos de exploración.
Para que el MPEG-2 pueda cubrir todo este amplio espectro de aplicaciones ha sido
necesario definir subconjuntos de la sintaxis y semántica de la secuencia de bits en la
forma de distintos perfiles y niveles, que luego explicaremos.
En cuanto al audio el nuevo estándar introdujo un nuevo esquema multicanal de señal de
audio surround.
El estándar MPEG-3, cuya intención era estandarizar la televisión de alta definición, fue
posteriormente incluido en MPEG-2, ya que se demostró que si se aumentaba el bitrate
de la señal de video del MPEG-2 se llegaba a los mismos resultados.
Los objetivos actuales del grupo son los nuevos estándares MPEG-4 y MPEG-7. El
MPEG-4 (Coding of Audio-Visual Objects) (numerado como ISO/IEC 14496) fue
aprobada de manera formal en octubre de 1998, esta fue una primera versión, más tarde
se aprobó una segunda versión pensada para un número mayor de aplicaciones que fue
aprobada en diciembre de 1999 (no reemplaza la primera versión, sólo la amplía). Es
importante indicar que las ampliaciones y mejoras del MPEG-4 se realizarán hasta finales
del año 2002 y serán incluidas en las especificaciones como nuevos perfiles, pero
compatibles con la primera y la segunda versión.
Este estándar se orienta a la transmisión de señales de vídeo y audio con velocidades
muy bajas (64 kbps), fundamentalmente para aplicaciones de vídeo telefonía,
aplicaciones multimedia, intranets e Internet. Las secuencias de bits están especialmente
diseñadas para hacer frente a las altas variabilidades del canal en este tipo de
comunicaciones, en donde es fácil que se produzcan reducciones de la velocidad,
pérdidas parciales de datos, etc. Por ello, la trama o stream de vídeo y audio suele estar
escalada de modo que, en función de la tasa de bits recibida, el receptor puede visualizar
las imágenes con mayor o menor calidad.
32
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
Además, proporciona mayor flexibilidad que el MPEG-2 para el uso de técnicas de
compresión basadas en la forma de onda permitiendo el uso de la transformada Wavelet,
la codificación vectorial y la realización de transformaciones afines para la compensación
de movimiento. Por último, permite realizar una codificación orientada a objetos, pudiendo
utilizar codificadores fractales o morfológicos, modelado de objetos y descriptores de
escenas.
El estándar MPEG-7 (Multimedia Content Description Interface) (numerado como
ISO/IEC 15938) intenta abarcar todos los aspectos (diferentes a la compresión de la
información) que involucra la multimedia. Es decir, MPEG-7 describe la manera de
ofrecer, filtrar, buscar y manejar información multimedia digitalizada. La primera versión
del MPEG-7 se aprobó en julio del año 2001. Se han ido incluyendo varias mejoras
posteriormente las cuales tal vez sean reunidas en una segunda versión del estándar.
Este estándar está orientado a aplicaciones de búsqueda en bases de datos de
contenidos audiovisuales y especifica los procedimientos para insertar los descriptores de
imagen, vídeo, gráficos 2D, etc.
A finales de 1999, MPEG empezó a trabajar en el nuevo estándar MPEG-21 (Multimedia
Framework)
cuyo
objetivo
primordial
es
proporcionar
estándares
que
estarán
fundamentados principalmente en el punto de vista de los usuarios, y no tanto de la
industria.
3.3 El estándar MPEG-2
El estándar MPEG-2 es genérico, esto significa que sus especificaciones no están
orientadas a una aplicación en concreto sino que contiene un conjunto de herramientas
que permiten su uso en una gran variedad de aplicaciones de uso muy diferente, además
permite diferentes condiciones de operaciones tales como diferentes bitrates, diferentes
canales de transmisión, etc. Esta característica hace que el MPEG-2 sea un estándar
flexible y que puede ser usado en un gran número de aplicaciones digitales a la vez que
también aumenta su complejidad.
Para poder facilitar su rango de aplicación, el estándar no ordena que métodos de
codificación deban usarse, como tampoco especifica detalles del codificador o
decodificador. Sólo especifica los formatos con los que se deben representar los datos en
la entrada del decodificador y un conjunto de reglas y procesos de decodificación. Esto se
debe a las diferentes complejidades que pueden tener los codificadores según sean las
33
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
necesidades de las diferentes aplicaciones a usar, a parte de para poder permitir la
continua optimización y mejora de los codificadores. A pesar de ser un estándar ya
completo y cerrado, su aplicación aún no ha encontrado límites.
Para poder hacerse una idea del rango de aplicaciones en las que se puede aplicar el
estándar, podemos ver la siguiente lista, en la que encontramos aplicaciones que se
tuvieron en cuenta para que el estándar facilitara su implementación.
•
Televisión – Por radiodifusión terrestre, satélite y cable.
•
Televisión de alta definición – Por radiodifusión terrestre, satélite y cable. Así
como el Cine electrónico.
•
Video en sistemas de almacenamiento digital (DSM): CD-ROM, DVD…
•
Video en computadoras – Video e-mail, sistemas de información multimedia.
•
Video bajo demanda (VoD) – Películas, eventos en directo…
•
Videocomunicación – Video multipunto.
•
Network Video – Video sobre diferentes redes: ATM, LAN…
•
Video Profesional – Edición no lineal, post-producción.
La amplia gama de aplicaciones del MPEG-2 sea seguramente la clave de su éxito. Ya
que su desarrollo ha provocado que en el campo de la multimedia digital pase de ser una
industria donde todos avanzaban por libre, a un industria dinámica y unificada, con
estándares que fomentan la interoperabilidad de los productos, y sobretodo una industria
competitiva.
3.3.1 Organización de la norma ISO/IEC 13818
El documento que describe el estándar MPEG-2 es la norma/recomendación ISO/IEC
13818 y está dividido en 9 capas o partes. Las tres primeras partes de MPEG-2 son las
más importantes.
•
ISO/IEC 13818-1:2000. Systems.
•
ISO/IEC 13818-2:2000. Video.
•
ISO/IEC 13818-3:1998. Audio.
•
ISO/IEC 13818-4: 1998. Conformance testing.
34
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
•
ISO/IEC TR 13818-5: 1997. Software simulation.
•
ISO/IEC 13818-6: 1998. Extensions for DSM-CC.
•
ISO/IEC 13818-7: 1997. Advanced Audio Coding (AAC).
•
ISO/IEC 13818-9: 1996. Extension for real time interface for systems decoders.
•
ISO/IEC 13818-10: 1999. Conformance extensions for Digital Storage Media
Command and Control (DSM-CC).
Además de estos documentos, se han publicado otras correcciones y ampliaciones.
Como hemos dicho, las más importantes son las siguientes:
•
13818-1 Sistema: Especifica como combinar o multiplexar diferentes tipos de
información multimedia en un único stream para que pueda ser o bien transmitido
o bien almacenado. Existen dos formatos, cada uno óptimo en diferentes
aplicaciones, Flujo de Programa (Program Stream) y Flujo de Transporte
(Transport Stream). El esquema general de esta capa se muestra en la figura 3.1.
Figura 3.1 Modelo de la capa de Sistema de MPEG-2
•
13818-2 Video: Especifica la codificación de la señal de video. Hay definidos
distintos perfiles y niveles para ofrecer la diversidad de funcionalidades. Éstos
están descritos en el siguiente apartado.
35
Conceptos básicos de MPEG
•
Decodificador vídeo MPEG-2
13818-3 Audio: Especifica la codificación de la señal de audio.
3.3.2 Perfiles y Nivles
La Especificación anterior está destinada a ser genérica en el sentido de que sirva para
una gran gama de aplicaciones, velocidades binarias, resoluciones, calidades y servicios.
Las aplicaciones deben abarcar, entre otras cosas, medios de almacenamiento digital,
radiodifusión de televisión y comunicaciones. En la elaboración de la especificación de
vídeo se han considerado diversas exigencias de aplicaciones típicas, se han formulado
los elementos algorítmicos necesarios y se han integrado en una sola sintaxis.
Sin embargo, considerando la aplicación práctica de toda la sintaxis, se ha estipulado
también un número limitado de subconjuntos de la sintaxis por medio de "perfil" y "nivel".
Perfil
Un "perfil" es un subconjunto definido de toda la sintaxis de tren de bits definida. Dentro
de los límites impuestos por la sintaxis de un perfil dado, es posible aún requerir una
variación muy grande en el funcionamiento de los codificadores y decodificadores según
los valores tomados por los parámetros en el bitstream.
Por ejemplo, es posible especificar tamaños de trama de hasta (aproximadamente) 214
de anchura de muestra por 214 de altura de línea. Actualmente no es práctico ni
económico utilizar un decodificador capaz de implementar todos los tamaños de tramas
posibles.
Nivel
Para tratar este problema se definen "niveles" dentro de cada perfil. Un nivel es un
conjunto definido de constricciones impuestas a los parámetros en el tren de bits. Estas
constricciones pueden ser simples límites de números. Como otra posibilidad, pueden
adoptar la forma de constricciones en combinaciones aritméticas de los parámetros (por
ejemplo, la anchura de trama multiplicada por la altura de trama multiplicada por la
velocidad de trama).
Las principales características de estos perfiles y niveles se detallan en las tablas
siguientes.
36
Conceptos básicos de MPEG
Perfil
Simple
Main
SNR
Spatial
High
Decodificador vídeo MPEG-2
Características
Muestreo 4:2:0, solo cuadros I y P, no codificación escalable
Como arriba, incluyendo cuadros B
Como arriba, incluyendo escalabilidad SNR
Como arriba, incluyendo escalabilidad espacial
Como arriba, incluyendo muestreo 4:2:2
Tabla 3.1 Características de los perfiles de MPEG-2
Nivel
Low
Main
High-1440
Low
Resolución máxima
352x288 (luminancia), 30 Hz
720x576 (luminancia), 30 Hz
1440x1152 (luminancia), 60 Hz
1920x1152 (luminancia), 60 Hz
Tabla 3.2 Resoluciones máximas de los niveles de MPEG-2
Niveles
Simple
High
High 1440
Main
Low
15
Perfiles
SNR Esc.
Main
80
60
15
4
15
4
Spat. Esc.
High
60
100
80
20
Tabla 3.3 Combinaciones recomendadas Perfil/Nivel y Máximo bitrate (Mbps)
3.4 Aspectos generales
El algoritmo empleado para la codificación de vídeo en MPEG-2 logra una elevada
relación de compresión a la vez que mantiene la buena calidad de la imagen. Es una
compresión con pérdidas pues no se preservan los valores de muestra exactos durante la
codificación. La obtención de una buena calidad de imagen a las velocidades binarias de
interés exige una compresión muy alta, que no se puede lograr con la sola
intracodificación (eliminación de redundancia espacial) de las imágenes. La elección de
las técnicas se basa en la necesidad de equilibrar una alta calidad de imagen y relación
de compresión con el requisito de hacer el acceso aleatorio al tren de bits codificado.
Se utilizan varias técnicas para lograr una elevada compresión. El algoritmo utiliza
primero compensación de movimiento basada en bloque para reducir la redundancia
temporal que se encarga de proporcionar los vectores de desplazamiento que deben
aplicarse en la predicción de imágenes. La compensación de movimiento se utiliza tanto
para la predicción causal de la imagen vigente a partir de una imagen anterior y para la
37
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
predicción interpolativa no causal, a partir de imágenes pasadas y futuras. Se definen
vectores de movimiento para cada región de 16 muestras por 16 líneas de la imagen. El
error de predicción, se comprime aún más utilizando la transformada de coseno discreta
(DCT) para suprimir la correlación espacial antes de que sea cuantificada en un proceso
irreversible que descarta la información menos importante. Por último, los vectores de
movimiento se combinan con la información DCT cuantificada y se codifican utilizando
códigos de longitud variable. En el caso en que se realice una codificación intra-trama
del bloque, la señal de la salida del predictor por compensación es cero, de modo que se
calcula directamente la DCT del bloque a codificar. Los coeficientes transformados se
cuantifican, generalmente utilizando las tablas de cuantificación por defecto, aunque
también es posible emplear tablas propias. Un esquema simplificado de los algoritmos de
codificación y de decodificación los tenemos en la figura 3.2.
Figura 3.2 Esquema codificador y decodificador MPEG-2
38
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
3.4.1 Jerarquía de un vídeo en MPEG-2
Hasta ahora hemos dicho que un vídeo digital es una secuencia de imágenes con una
determinada resolución espacial, es decir, un número de píxeles en el sentido vertical y
en el horizontal, que no tienen que ser iguales. La secuencia de vídeo puede ser
entrelazada, en cuyo caso tendremos dos campos por imagen, o no entrelazada, con una
sola trama por imagen.
En el caso de vídeo comprimido, llamaremos a cada imagen trama (frame, aunque
también se emplea el término de imagen indistintamente), la cual está formada por tres
matrices, una matriz de luminancia y dos de crominancia.
Además, hemos visto que las técnicas generales de compresión de vídeo, normalmente
trabajan con bloques. MPEG tiene toda una jerarquía a la hora de definir la información
de vídeo codificada que podemos ver en la figura 3.3.
Figura 3.3 Estructura jerárquica del vídeo MPEG
Como muchos de los conceptos que aparecen en la figura se van a usar a partir de
ahora, daremos una breve definición
•
Secuencia de vídeo. Es la sucesión de todas las tramas en el orden de
transmisión que tiene un vídeo codificado. Esta secuencia está formada por uno o
más Grupos de Imágenes.
39
Conceptos básicos de MPEG
•
Decodificador vídeo MPEG-2
GOP (Group of Pictures). Es una secuencia de imágenes que se transmiten en
un orden distinto al que serán presentados en el display y que facilita el acceso
aleatorio a la secuencia. Está formado por un número de imágenes, que puede
variar de un vídeo a otro, pero será el mismo en todos los GOP de una secuencia.
•
Imagen. Es la unidad de codificación que contiene las tres matrices que forman la
imagen, una para luminancia y dos para crominancia. Se divide en slices.
•
Slice. Es la unidad básica de resincronización del sistema y desempeña un papel
fundamental en el soporte de errores. Su número y colocación dentro de una
imagen es variable. Está formada por uno o más macrobloques.
•
Macrobloque. Es la unidad básica sobre la que se realiza la compensación de
movimiento. Está formado por una región de 16x16 en la matriz de luminancia y
regiones de 8x8 en la componente de corma. Pueden aparecer macrobloques no
codificados (skkiped).
•
Bloque. Es la unidad de codificación a la que se aplica la transformada coseno.
Está formada por 8x8 píxeles.
3.4.2 Procesamiento temporal
Debido a los requisitos contradictorios de acceso aleatorio y compresión muy eficaz se
definen tres tipos principales de imágenes en los que se emplean técnicas de codificación
distintas.
•
Imágenes I (Intra-trame). El procedimiento de compresión utilizado es muy
parecido al del estándar JPEG. Se codifican de forma independiente sin referencia
a otras imágenes (no aprovechan la redundancia temporal). Proporcionan puntos
de acceso a la secuencia codificada donde la decodificación puede comenzar,
pero se codifican con compresión moderada solamente.
•
Imágenes P (Predicted). La codificación de estas imágenes se realiza utilizando
compensación de movimiento forward (hacia delante) a partir de una imagen I u
otra imagen P previamente codificadas. Estas imágenes pueden propagar errores
y sirven como imágenes de referencia de otras imágenes P y de las imágenes
siguientes.
•
Imágenes B (Bidreccional). Se obtienen usando compensación de movimiento
bidireccional a partir de imágenes I o P. Proporcionan el más alto grado de
40
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
compresión. Las imágenes con codificación predictiva bidireccional nunca se
utilizan como referencias para la predicción por lo que no propagan errores.
La organización de los tres tipos de imágenes en una secuencia es muy flexible. La
elección se deja al codificador y dependerá de los requisitos de la aplicación. En la figura
3.4 se ilustra una posible relación y proporción entre los tres diferentes tipos de
imágenes.
Figura 3.4 Ejemplo de estructura de imagen temporal
GOP (Group of Pictures)
Las posibles secuencias de imágenes se denominan grupo de imágenes (GOP) y suelen
identificarse mediante dos parámetros N y M que identifican el número total de imágenes
de la secuencia y el número de imágenes que hay entre dos imágenes que pueden
utilizarse como imágenes de referencia (I o P). Un ejemplo típico es en el que N y M
toman los valores 12 y 3 respectivamente.
Es importante conocer las imágenes de referencia que toman cada una de las imágenes
dependiendo si son P o B.
Orden de transmisión de las imágenes
El uso de predicción bidireccional, junto con el objetivo de reducir al máximo posible la
memoria del decodificador, imponen que el orden en el que se transmiten las imágenes
sea distinto del orden en el que deben visualizarse. El MPEG establece que no se
41
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
necesite almacenar más de dos imágenes de referencia en el decodificador. Por esto, las
imágenes del tipo B se reciben siempre después de haber recibido las referencias que se
han utilizado en su codificación. Mostramos en la figura 3.5 el orden natural (a la entrada
del codificador), el orden de transmisión (salida del codificador y entrada del
decodificador), el estado de las dos memorias del decodificador y el orden de
representación (display).
Orden Natural
P-3
I0
B1
B2
P3
B4
B5
P6
B7
B8
I9
I0
B-2
B-1
P3
B1
B2
P6
B4
B5
I9
Memoria 1 DEC
P-3
P-3
P-3
P3
P3
P3
P3
P3
P3
I9
Memoria 2 DEC
I0
I0
I0
I0
I0
I0
P6
P6
P6
P6
Imagen display
P-3
B-2
B-1
I0
B1
B2
P3
B4
B5
P6
Orden Transmisión
B-2
B-1
Figura 3.5 Reordenación de imágenes (GOP N=9, M=3)
3.4.3 División de una imagen en slices
Como hemos comentado, un slice es una serie de un número arbitrario de macrobloques
sucesivos (ordenados de izquierda a derecha). Hay algunas restricciones a la hora de
dividir una imagen en slices:
•
Las slices no se pueden superponer
•
El primer y último macrobloque de un slice estarán en la misma fila de la imagen
ni pueden ser macrobloques skipped (no codificados).
•
Deben contener al menos un macrobloque.
Los slices aparecen en la secuencia de bits en el orden en que se encuentran,
comenzando en la parte superior izquierda de la imagen y continuando por orden de
barrido de izquierda a derecha y de arriba abajo.
Estructura de slice general
En el caso más general no es necesario que los slices cubran toda la imagen. Un ejemplo
de esto se muestra en la figura 3.6. Las zonas que no están incluidas en un slice no están
codificadas y ninguna información se codifica para estas zonas.
42
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
Si los slices no cubren toda la imagen, es necesario que si la imagen se emplea después
para formar predicciones, sólo se hagan predicciones de las regiones incluidas en los
slices. Es responsabilidad del codificador asegurar esto.
Figura 3.6 Estructura slice general
Estructura de slice restringida
En determinados casos se empleará una estructura de slices restringida, que se
representa en la figura 3.7.
Figura 3.7 Estructura slice restringida
43
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
3.4.4 Formatos de crominancia
Como en la mayoría de formatos digitales se emplea el modelo de luminancia y dos
señales diferencia de color (YCbCr). Además del formato 4:2:0 sustentado en MPEG-1,
esta especificiación sustenta los formatos de crominancia 4:2:2 y 4:4:4.
Los formatos de crominancia afectan principalmente al número y el orden de los bloques
que forman los macrobloques.
Formato 4:2:0
Un macrobloque consiste en seis bloques, 4 Y 1 Cb y 1 Cr. El orden se muestra en la
figura 3.8.
Figura 3.8 Bloques en el formato 4:2:0
Formato 4:2:2
Un macrobloque consiste en ocho bloques, 4 Y 2 Cb y 2 Cr. El orden se muestra en la
figura 3.9.
Figura 3.9 Bloques en el formato 4:2:2
44
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
Formato 4:4:4
Un macrobloque consiste en doce bloques, 4 Y 4 Cb y 4 Cr. El orden se muestra en la
figura 3.10.
Figura 3.10 Bloques en el formato 4:4:4
3.4.5 Reducción de redundancia espacial
Las imágenes originales y las señales de errores de predicción tienen una elevada
redundancia espacial. Este estándar utiliza un método de DCT basado en bloque, con
cuantificación ponderada visualmente y codificación de longitud de pasada. Después de
la predicción con compensación de movimiento o la interpolación, la imagen residual se
divide en bloques de 8 por 8, que se transforman en el dominio de DCT donde son
ponderados antes de ser cuantificados. Después de la cuantificación, muchos de los
coeficientes son de valor cero y de este modo se utiliza la codificación bidimensional de
longitud de pasada y de longitud variable para codificar eficazmente los coeficientes
restantes.
3.4.6 Representación del movimiento – macrobloques
La elección de macrobloques de 16 por 16 para la unidad de compensación del
movimiento es un resultado del compromiso entre la ganancia de codificación
proporcionada por la utilización de la información de movimiento y la tara necesaria para
representarlo. Se puede predecir cada macrobloque temporalmente de varias maneras
diferentes. Por ejemplo, en la codificación de trama, la predicción a partir de la trama de
referencia anterior puede basarse en trama o basarse en campo. Según el tipo del
macrobloque, la información de los vectores de movimiento y otra información conexa se
codifica con la señal de error de predicción comprimida en cada macrobloque. Los
45
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
vectores de movimiento se codifican diferencialmente con respecto a los últimos vectores
de movimiento codificados utilizando códigos de longitud variable. La longitud máxima de
los vectores de movimiento que se puede representar se puede programar imagen por
imagen, de modo que se puedan satisfacer las aplicaciones más exigentes sin
comprometer el funcionamiento del sistema en situaciones más normales.
Es responsabilidad del codificador calcular los vectores de movimiento apropiados. La
especificación no estipula cómo se debe hacer esto.
3.4.7 Codificación de vídeo entrelazado
Cada trama de vídeo entrelazado consiste en dos campos separados por un periodo de
campo. El codificador de MPEG-2 permite codificar la trama como imagen (secuencia
progresiva) o codificar los dos campos como dos imágenes (secuencia entrelazada). La
codificación de trama o la codificación de campo se puede seleccionar de manera
adaptable trama por trama.
La codificación de trama se prefiere típicamente cuando la escena vídeo contiene un
detalle importante con movimiento limitado. En cambio, la codificación de campo, en la
cual el segundo campo puede ser predecido a partir del primero, funciona mejor cuando
hay movimiento rápido.
El tratamiento de imágenes entrelazadas en MPEG-2 afecta a la definición de los
macrobloques y de los bloques que intervienen en la transformada del coseno. También
afecta a la forma de exploración de los coeficientes transformados y a los procedimientos
de estimación de movimiento. Una vez que se expliquen estos conceptos, se añadirá
información de cómo se realiza en este caso en el apartado 3.6.
3.5 Proceso de codificación
El primer paso para codificar un vídeo es codificar una imagen I (intra-frame). Para
estudiar este proceso vamos a suponer que el vídeo de entrada ha sido muestreado con
formato 4:2:0. Recordamos que el número de bits con el que se codifica cada muestra es
el mismo para luminancia y crominancia, siendo en ambos casos de 9 bits. El tamaño de
cada imagen no nos importa, ya que partiremos de la unidad básica de bloque.
En la figura 3.11 se representa el diagrama de bloques de este proceso.
46
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
Figura 3.11 Diagrama del proceso de codificación en MPEG-2
3.5.1 Descomponer imagen en bloques
Figura 3.12 Entrada y salida descomposición en bloques NxN
Como ya dijimos, en este formato habrá un total de seis bloques, cuatro bloques de
luminancia, uno de croma azul y otro de croma roja. Los bloques tienen un tamaño de
8x8 píxeles ordenados de forma secuencial, primero por filas y posteriormente por
columnas como se vuelve a representar en la figura 3.13.
Figura 3.13 Bloques en el formato 4:2:0
Cada bloque lo representamos como f(y,x) y sus valores oscilan en un rango entre -256 y
255 para todo x e y.
47
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
3.5.2 DCT
Figura 3.14 Entrada y salida DCT bidimensional
A cada bloque se le calcula la DCT bidimensional con una precisión de 3 bits adicionales
respecto a la precisión de entrada (un total de 12 bits). Forman la matriz nombrada como
F(v,u).
El coeficiente de continua (DC), que corresponde al coeficiente (0,0) de la matriz
transformada F(v,u), se debe codificar con mayor precisión que el resto de coeficientes
de alterna. Esto es debido a que los errores en este coeficiente supondrán una variación
del nivel de gris medio de todo el bloque, con lo que la estructura de codificación podría
resultar visible en la imagen decodificada. Por este motivo, los coeficientes DC se
codifican en modo diferencial, respecto al coeficiente de continua del bloque anterior. Así,
el rango dinámico de este coeficiente es mayor. El coeficiente de continua (DC), varía en
un rango de 0 a 4095 (siempre positivo, ya que no hemos eliminado la componente de
continua) y el resto de coeficientes (AC) varían entre -2046 y 2045.
3.5.3 Cuantificador variable
Figura 3.15 Entrada y salida cuantificador variable
48
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
A los coeficientes resultantes de la DCT se les aplican tablas de cuantificación que
pueden ser definidas por el propio codificador (deberán incluirse las tablas en las
cabeceras del fichero) o utilizar las tablas que por defecto recomienda al estándar. Los
rangos de la matriz QF(v,u) dependerán del paso de cuantificación empleado para cada
coeficiente.
Las tablas de cuantificación indican la importancia relativa de cada coeficiente
transformado y suelen representarse como el paso de cuantificación con el que se
codificará cada elemento. En la figura 3.16 se representan la tabla de cuantificación que
se emplean por defecto en MPEG-2 para el caso de imágenes I para la cuantificación de
las componentes de luminancia y de crominancia. Estas tablas se obtienen de forma
experimental, a partir de pruebas de calidad subjetivas que tienen en cuenta la respuesta
del sistema visual humano. Podemos observar como el paso de cuantificación aumenta
(se utilizan menos niveles) a medida que aumentan las frecuencias.
8
16
19
22
26
27
29
34
16
16
22
24
27
29
34
37
19
22
26
27
29
34
34
38
22
22
26
27
29
34
37
40
22
26
27
29
32
35
40
48
26
27
29
32
35
40
48
58
26
27
29
34
38
46
56
69
27
29
35
38
46
56
69
83
Figura 3.16 Matriz de cuantificación para luminancia y crominancia W(v,u)
Además de las matrices de ponderación existe otro método que consiste en emplear un
factor de escala para que el tamaño del paso pueda ser modificado en el caso de que la
tasa de bits sea excesivamente alta.
El coeficiente DC tiene nuevamente un tratamiento especial, ya que siempre se obtendrá
dividiendo F(0,0) por un divisor constante que se obtiene de la información del tren de
bits. Es constante en el sentido de que no se realiza con ninguno de los dos métodos
posibles anteriores.
49
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
Desde un punto de vista operativo, las matrices de cuantificación se utilizan para
determinar el nivel real con el que se codificará cada coeficiente transformado. El cálculo
del nivel real se realiza dividiendo los coeficientes de la DC por el número de pasos de
cuantificación especificados por la matriz y aproximando el resultado obtenido por el
entero más próximo.
⎛ F (v,u ) ⎞
⎟⎟
QF (v,u ) = round ⎜⎜
⎝ W (v,u ) ⎠
Ecuación 3.1 Obtención de los coeficientes cuantificados
Vamos a mostrar un ejemplo del proceso de cuantificación completo que se aplica a un
bloque de luminancia de 8x8 píxeles de la imagen original.
Figura 3.17 Ejemplo de cuantificación de un bloque
3.5.4 Escaneo en Zig-Zag
Figura 3.18 Entrada y salida escaneo Zig-Zag
50
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
Tal y como esperábamos, la mayoría de los coeficientes cuantificados toman el valor
cero. Utilizando una matriz de escaneo zig-zag, que se muestra en la figura 3.16, se
puede obtener un flujo de bits con muchos ceros seguidos. Normalmente, para vídeos
progresivos no entrelazados, se emplea la siguiente matriz de escaneo, aunque el
codificador puede definir la suya propia. Al aplicar este escaneo se obtiene un vector con
64 elementos que denominamos QFS(n).
1
2
6
7
15 16 28 29
3
5
8
14 17 27 30 43
4
9
13 18 26 31 42 44
10 12 19 25 32 41 45 54
11 20 24 33 40 46 53 55
21 23 34 39 47 52 56 61
22 35 38 48 51 57 60 62
36 37 49 50 58 59 63 64
Figura 3.19 Matriz de escaneo zig-zag
De esta forma, en el ejemplo anterior obtendríamos una secuencia:
130, -2, -2, 1, 0, 1, 0, -1, 0, 0, 0, 0, -1, 0, 0, … resto de coeficientes nulos
3.5.5 Codificación entrópica
Figura 3.20 Entrada y codificación entrópica
51
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
La secuencia obtenida en el apartado anterior tenía la mayoría de los coeficientes
cuantificados con valor cero, de modo que la codificación combinada entre códigos de
longitud variable (VLC) y métodos de longitud de series (RLC) puede resultar muy
eficiente.
La codificación de los coeficientes AC y DC difiere, por lo que se explican por separado.
Coeficientes AC
Cada coeficiente se codifica empleando dos tipos de palabras (A,B), donde A es el
número de ceros seguidos codificados y B es el siguiente valor no nulo. Cuando la
cadena de ceros seguidos llega a la longitud máxima del vector, se introduce una palabra
especial llamada EOB (End Of Block).
En el ejemplo anterior tendríamos un código RLC como el siguiente:
130, -2, -2, 1, 0, 1, 0, -1, 0, 0, 0, 0, -1, 0, 0, … resto de coeficientes nulos
(0,130), (0,-2), (0,-2), (0,1), (1,1), (1,-1), (4,-1), EOB
La codificación de estas parejas se hace mediante códigos de longitud variable. El
estándar MPEG-2 define unas tablas para que todos los compresores descompresores
sean compatibles. Cada una de las parejas posibles tendrá una cantidad variable de bits
para representarlas.
Coeficiente DC
Para la codificación de los componentes DC también se utilizan dos tipos de palabras A y
B. La palabra A indica mediante códigos de longitud variable el número de bits que
siguen para indicar el valor del coeficiente. La palabra B, que va a continuación, es un
código de longitud fija (indicada por la palabra A) y es el valor diferencial del coeficiente
de continua en binario natural en complemento a 1. Como se codifican los valores
diferenciales, en el decodificador habrá que mantener unos predictores en memoria (se
deben mantener 3 predictores, uno por cada componente de color).
3.5.6 Compensación de movimiento
Una vez codificadas las imágenes I, podemos pasar a explicar cómo se codifican el resto
de imágenes. Esta parte es algo más compleja, pues debe realizarse la estimación de
52
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
movimiento y decidir cuál es la forma más eficiente de codificar un macrobloque en
función de los resultados obtenidos.
La misión del codificador es elegir entre las distintas posibilidades de codificar un
macrobloque aquella que proporcione la mejor opción. Las matrices de cuantificación
empleadas para la codificación por predicción tienen un paso de cuantificación uniforme
para todos los coeficientes. Esto es debido a que el contenido frecuencial de las señales
de error no muestra ninguna preferencia para concentrar su energía en unas frecuencias
particulares.
Los modos de predicción son las diferentes maneras en que un bloque es movido desde
la imagen de referencia hasta la imagen actual. Los modos de predicción pueden cambiar
en cada macrobloque. Debido a que el estándar debe dar soporte a las secuencias de
vídeo entrelazado, necesitamos más de un solo modo de predicción.
En general, podemos distinguir cuatro modos de predicción, aunque los más importantes
son los dos primeros.
•
Predicción de trama. Forma una predicción para la trama a partir de una o más
tramas decodificadas previamente.
•
Predicción de campo. Las predicciones se hacen independientemente para cada
campo utilizando datos de uno o más campos decodificados previamente. Solo se
realiza para codificar imágenes entrelazadas.
•
Compensación de movimiento 16x8. Se emplean dos vectores de movimientos
para cada macrobloque. El primer vector de movimiento se utiliza para la región
16x8 superior y el segundo para la inferior. En el caso de un macrobloque con
predicción bidireccional, se utilizarán un total de cuatro vectores de movimiento,
dos para la predicción hacia delante y dos para la predicción hacia atrás. En
MPEG-2 sólo se utilizará este tipo de compensación con imágenes de campo.
•
Aritmética Dual-prime. Se codifica un vector de movimiento junto con un vector
de movimiento diferencial.
Además de esta clasificación, debemos distinguir si la imagen actual que estamos
codificando será entrelazada o no. En este apartado explicaremos los casos en los que
formemos una imagen de trama (frame picture, los dos campos a la vez) y en el apartado
3.9 el caso de imagen de campo (field picture).
53
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
En los siguientes ejemplos sólo consideramos una imagen de referencia. Como las
imágenes B usan dos imágenes de referencia (hacia delante y hacia atrás) lo que se
hace es una interpolación entre las dos.
Predicción de trama
Es el modo más simple de predicción. Se define un único vector de movimiento para cada
predicción (forward o backward). La predicción será un área entera de 16x16 píxeles
(macrobloque).
16x16
16x16
Reference Picture
(forward or backward)
Predicted picture
Figura 3.21 Predicción de trama en imágenes de trama
Predicción de campo (16x8)
Se definen dos vectores de movimiento, uno por cada campo de la imagen de referencia.
El área de predicción en este caso es de 16x8 en cada campo, por un lado las líneas
impares y por otro las pares. Cada vector de movimiento tendrá una bandera que indica
desde qué campo se debe formar la predicción, ya que ambos vectores de movimiento
pueden usar el mismo campo como referencia.
Figura 3.22 Predicción de campo en imágenes de trama
54
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
Predicción Dual-prime
Este modo de predicción sólo se usa en imágenes P. La idea es hacer una interpolación
entre los dos campos de la imagen de referencia. Hay un único vector de movimiento y
además se incluye un vector diferencial para indicar la distancia temporal entre los dos
campos. Con esta información se calcula un nuevo vector de movimiento y se forma una
segunda predicción que se interpola con la primera.
Si la imagen es entrelazada, se debe forma una predicción como la anterior para cada
campo, así que se incluyen dos vectores de movimiento y otros dos son calculados, por
lo que habrá un total de cuatro vectores.
Figura 3.23 Predicción Dual-prime en imágenes de trama
3.6 Resumen codificación imágenes I
Una imagen I está codificada sin referencia a ninguna imagen pasada o futura, solamente
se aplican técnicas de compresión de redundancia espacial y estadística, no de
redundancia temporal. El esquema empleado aparece en la figura 3.24.
Figura 3.24 Esquema de codificación de las imágenes I
55
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
3.7 Resumen codificación imágenes P
Las imágenes P se codifican empleando redundancia espacial, además de las espaciales
y estadísticas. La imagen de referencia anterior debe ser de tipo I o de tipo P. En este
tipo de imágenes puede haber macrobloques que se codifiquen sin referencia (intra
macroblock) o macrobloques que no se codifiquen (skipped macroblock), lo que quiere
decir que dicho macrobloque será igual al de la imagen de referencia. Podemos ver un
esquema simplificado en la figura 3.25.
Figura 3.25 Esquema de codificación de las imágenes P
3.8 Resumen codificación imágenes B
Se codifica con referencias a dos imágenes, una anterior y otra posterior (predicción
bidireccional). Las imágenes de referencia serán de tipo I o de tipo P. La codificación para
este tipo es similar a las imágenes de tipo P, pero ahora habrá dos imágenes de
referencia y dos vectores de movimiento y habrá que promediar.
56
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
Figura 3.26 Esquema de codificación de las imágenes B
3.9 Peculiaridades de vídeo entrelazado
Como dijimos hay ciertos aspectos que difieren en este caso, como son la definición de
macrobloques y bloques, la forma de escaneo de los coeficientes transformados y la
estimación de movimiento.
En la codificación de una imagen, la selección de los modos entrelazados o de los modos
progresivos convencionales puede realizarse en cada macrobloque de manera individual.
Con ello podemos obtener los beneficios de un mayor factor de compresión mediante el
uso de técnicas progresivas en aquellas zonas de la imagen que permanecen
estacionarias, mientras que en regiones con elevado movimiento horizontal podemos
utilizar los modos entrelazados.
3.9.1 División en macrobloques
Un macrobloque convencional de 16x16 píxeles se descompone en cuatro bloques de
luminancia de 8x8 píxeles tomando los píxeles adyacentes tal y como se muestra en la
57
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
figura 3.27. Un macrobloque entrelazado también se descompone en 4 bloques de 8x8
píxeles, pero ahora los bloques se toman utilizando líneas alternadas. De esta forma, en
un macrobloque entrelazado, los bloques están formados por líneas que corresponden
siempre al mismo campo.
Figura 3.27 División en bloques de un macrobloque para imágenes progresivas y entrelazadas
3.9.2 Escaneo coeficientes transformados
Cuando a un bloque del tipo entrelazado le aplicamos la transformada coseno debemos
tener en cuenta que los bloques provienen del submuestreo en el eje vertical por lo que
deberemos esperar un mayor contenido frecuencial en esta dirección. Al aumentar el
espacio entre las muestras, los niveles de los píxeles aumentarán de forma más rápida.
Esto se debe tener en cuenta al ordenar los coeficientes transformados y por ello hay otra
opción para escanear los coeficientes. Para este tipo de secuencias, se emplea otra
matriz de escaneo denominada alternada. La matriz que se emplea está representada en
la figura 3.28.
58
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
1
5
7
21 23 37 39 53
2
6
8
22 24 38 40 54
3
9
20 25 35 41 51 55
4
10 19 26 36 42 52 56
11 18 27 31 43 47 57 61
12 17 28 32 44 48 58 62
13 16 29 33 45 49 59 63
14 15 30 34 46 50 60 64
Figura 3.28 Matriz de escaneo alternada
3.9.3 Compensación de movimiento
Por lo que respecta a la compensación de movimiento, también puede realizarse
mediante campos separados o basándonos en la imagen global. Podemos encontrar
varias alternativas.
Como dijimos, la predicción de campo consiste en realizar predicciones para cada campo
utilizando datos de uno o más campos decodificados previamente. Pasamos a ver
ejemplos de los distintos modos de predicción en este caso.
Predicción de campo
Es el modo de predicción más usado para este tipo de imágenes. Se usa un solo vector
de movimiento y se forma un área de predicción de 16x16 píxeles. El vector de
movimiento tiene una bandera que indica si la predicción se debe tomar del campo
superior o del inferior En este caso, las predicciones son independientes para cada uno
de los campos que se tratan siempre por separado.
59
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
Figura 3.29 Predicción de campo en imágenes de campo
Predicción 16x8
Se definen dos vectores de moviendo y se forman dos predicciones de 16x8 píxeles. Los
vectores de movimiento tienen banderas que indican los campos que usar como
referencia.
Figura 3.30 Predicción 16x8 en imágenes de campo
Predicción Dual-prime
En este caso es más sencillo que en el de imágenes trama. Sólo habrá un vector de
movimiento y el calculado a partir del vector diferencial.
60
Conceptos básicos de MPEG
Decodificador vídeo MPEG-2
Figura 3.31 Predicción Dual-prime en imágenes de campo
61
Descargar