ESCUELA SUPERIOR DE INGENIEROS
DEPARTAMENTO DE TEORÍA DE LA SEÑAL Y COMUNICACIONES
PROYECTO FIN DE CARRERA
Decodificador de vídeo MPEG-2 en Matlab
y
análisis del bitstream
Autor: Elena Aguilar Fernández
Tutor: José Ramón Cerquides Bueno
PROYECTO FIN DE CARRERA
Decodificador de vídeo MPEG-2 en MATLAB
y
UNIVERSIDAD DE SEVILLA
ESCUELA SUPERIOR DE INGENIEROS Ingeniero de Telecomunicación
PROYECTO FIN DE CARRERA:
Decodificador de vídeo MPEG-2 en MATLAB y análisis del bitstream
Autor: Elena Aguilar Fernández Tutor: José Ramón Cerquides Bueno
PREFACIO
En la actualidad, el vídeo digital es algo cotidiano en nuestras vidas, tanto en su reproducción y almacenamiento, como para su transmisión a través de distintos medios de comunicación. Es en esta última aplicación donde surge una clara necesidad de comprimir la información. Por esto, y como ha sucedido para las imágenes estáticas y para la información de audio, han surgido varios estándares de codificación (MJPEG, MPEG-1, MPEG-2, MPEG-4, etc).
En este proyecto nos centraremos en uno de los estándares más extendidos como es el caso de MPEG-2 [1] [2] [3]. Comenzaremos el proceso con un análisis de las técnicas de compresión generales empleadas en compresores de vídeo. En segundo lugar continuaremos con un estudio detallado de la estructura del vídeo comprimido MPEG-2 [1] y la forma de convertir la información en un flujo de bits. Finalmente, se desarrolla una aplicación en MATLAB que realiza dos tares principales: el demultiplexado de la información de vídeo, y la decodificación de ésta cumpliendo la recomendación MPEG-2 [2].
ÍNDICE DE CONTENIDOS ... II
ÍNDICE DE FIGURAS ... V
ÍNDICE DE TABLAS... VII
ÍNDICE DE CONTENIDOS
1
INTRODUCCIÓN ... 1
1.1 Introducción ...1
1.2 Conceptos de vídeo digital ...2
1.2.1 Formatos de vídeo digital ... 6
1.2.2 Codificación de la señal de vídeo digital ... 9
1.3 Necesidad de compresión ...10
1.4 Motivaciones ...11
1.5 Objetivos...12
1.6 Organización de la memoria ...13
2
TÉCNICAS DE COMPRESIÓN DE LA SEÑAL DE VÍDEO... 15
2.1 Sistemas de compresión...15
2.2 Técnicas de compresión de imágenes ...17
2.2.1 Redundancia espacial ... 17
2.2.2 Redundancia estadística ... 23
2.2.3 Redundancia temporal ... 24
3
CONCEPTOS BÁSICOS DE MPEG (Moving Pictures Experts Group) .... 29
3.1 Introducción ...29
3.2 Historia...30
3.3 El estándar MPEG-2 ...33
3.3.1 Organización de la norma ISO/IEC 13818 ... 34
3.3.2 Perfiles y Nivles ... 36
3.4 Aspectos generales ...37
3.4.1 Jerarquía de un vídeo en MPEG-2... 39
3.4.2 Procesamiento temporal... 40
3.4.3 División de una imagen en slices ... 42
3.4.4 Formatos de crominancia ... 44
3.4.5 Reducción de redundancia espacial... 45
3.4.6 Representación del movimiento – macrobloques ... 45
3.4.7 Codificación de vídeo entrelazado ... 46
3.5 Proceso de codificación...46
3.5.1 Descomponer imagen en bloques... 47
3.5.2 DCT ... 48
3.5.3 Cuantificador variable ... 48
3.5.4 Escaneo en Zig-Zag ... 50
3.5.5 Codificación entrópica ... 51
3.6 Resumen codificación imágenes I ...55
3.7 Resumen codificación imágenes P ...56
3.8 Resumen codificación imágenes B...56
3.9 Peculiaridades de vídeo entrelazado ...57
3.9.1 División en macrobloques ... 57
3.9.2 Escaneo coeficientes transformados... 58
3.9.3 Compensación de movimiento ... 59
4
CAPA DE SISTEMA ... 62
4.1 Multiplexaje y sintaxis ...62 4.2 Program Stream ...65 4.3 Transport Stream ...67 4.4 Temporización...685
CAPA DE AUDIO ... 70
5.1 Conceptos básicos de señal de audio ...70
5.1.1 Necesidad de compresión ... 70
5.1.2 Técnicas de compresión de audio... 70
5.2 Proceso de codificación en MPEG-2...72
5.2.1 Capa 1 ... 74
5.2.2 Capa 2 ... 74
5.2.3 Capa 3 ... 74
6
CAPA DE VÍDEO ... 75
6.1 Estructura de datos de vídeo codificados...75
6.1.1 Jerarquía de la capa básica ... 75
6.1.2 Códigos de comienzo ... 76
6.1.3 Reglas semánticas para estructuras sintácticas más altas... 77
6.2 Sintaxis y semántica del bitstream de vídeo...80
6.2.1 Video Sequence ... 81 6.2.2 Group of Pictures... 83 6.2.3 Picture... 84 6.2.4 Slice ... 86 6.2.5 Macroblock ... 87 6.2.6 Block ... 90 6.3 Extensiones escalables...91
6.3.1 Extensión escalable espacial ... 92
6.3.2 Extensión escalable SNR ... 92
6.3.3 Extensión escalable temporal... 93
7.2 Estudio de tiempos ...116
7.2.1 Compresión frente a velocidad de decodificación... 116
7.2.2 Reparto de tiempo en el proceso de decodificación ... 119
8
CONCLUSIONES ... 120
8.1 Conclusiones ...120
8.2 Objetivos cumplidos...121
8.3 Líneas futuras de investigación ...122
REFERENCIAS... 123
ÍNDICE DE FIGURAS
Figura 1.1 División de la imagen en dos campos entrelazados ... 3
Figura 1.2 Muestreo espacial y temporal de la secuencia de vídeo ... 4
Figura 1.3 Retícula de muestreo rectangular para la digitalización de las imágenes ... 4
Figura 1.4 Versiones de una misma imagen con distintas resoluciones ... 5
Figura 1.5 Distribución espacial de las muestras de luminancia y croma en el formato 4:2:2 ... 7
Figura 1.6 Distribución de las componentes de luminancia y croma en el formato 4:2:0 ... 7
Figura 1.7 Etapas en la codificación y transmisión de una señal de vídeo digital... 9
Figura 2.1 Proceso general de codificación y decodificación de la información ... 15
Figura 2.2 Proceso general de codificación y descodificación de imágenes mediante la transformada coseno ... 18
Figura 2.3 Ejemplo numérico y gráfico de la transformada discreta del coseno ... 22
Figura 2.4 Ejemplo de dos fotogramas seguidos y su diferencia... 24
Figura 2.5 Ejemplo de bloques utilizados para realizar la predicción en codificación diferencial .... 25
Figura 2.6 Ejemplo del bloque utilizado para la predicción en una codificación por compensación de movimiento ... 26
Figura 2.7 Cálculo del vector de movimiento para la compensación de movimiento... 27
Figura 3.1 Modelo de la capa de Sistema de MPEG-2... 35
Figura 3.2 Esquema codificador y decodificador MPEG-2... 38
Figura 3.3 Estructura jerárquica del vídeo MPEG ... 39
Figura 3.4 Ejemplo de estructura de imagen temporal ... 41
Figura 3.5 Reordenación de imágenes (GOP N=9, M=3) ... 42
Figura 3.6 Estructura slice general ... 43
Figura 3.7 Estructura slice restringida ... 43
Figura 3.8 Bloques en el formato 4:2:0 ... 44
Figura 3.9 Bloques en el formato 4:2:2 ... 44
Figura 3.10 Bloques en el formato 4:4:4 ... 45
Figura 3.11 Diagrama del proceso de codificación en MPEG-2... 47
Figura 3.12 Entrada y salida descomposición en bloques NxN ... 47
Figura 3.13 Bloques en el formato 4:2:0 ... 47
Figura 3.14 Entrada y salida DCT bidimensional ... 48
Figura 3.15 Entrada y salida cuantificador variable... 48
Figura 3.16 Matriz de cuantificación para luminancia y crominancia W(v,u)... 49
Figura 3.17 Ejemplo de cuantificación de un bloque... 50
Figura 3.18 Entrada y salida escaneo Zig-Zag ... 50
Figura 3.19 Matriz de escaneo zig-zag ... 51
Figura 3.20 Entrada y codificación entrópica ... 51
Figura 3.21 Predicción de trama en imágenes de trama... 54
Figura 3.22 Predicción de campo en imágenes de trama ... 54
Figura 3.23 Predicción Dual-prime en imágenes de trama ... 55
Figura 3.24 Esquema de codificación de las imágenes I ... 55
Figura 3.25 Esquema de codificación de las imágenes P... 56
Figura 3.26 Esquema de codificación de las imágenes B... 57
Figura 3.27 División en bloques de un macrobloque para imágenes progresivas y entrelazadas .. 58
Figura 3.28 Matriz de escaneo alternada... 59
Figura 4.4 Estructura del Program Stream ... 65
Figura 4.5 División de un PES en TS packets ... 67
Figura 5.1 Esquema de un codificador de subbanda... 71
Figura 5.2 Esquema de un decodificador de subbanda ... 71
Figura 5.3 Esquema de un codificador de audio MPEG... 73
Figura 5.4 Esquema de un decodificador de audio MPEG ... 73
Figura 6.1Estructura jerárquica del tren de bits de vídeo... 76
Figura 6.2 Organización del tren de bits de alto nivel ... 79
Figura 7.1 Diagrama de flujo del demultiplexor... 96
Figura 7.2 Reparto de tiempos considerando mismo tiempo de decodificación... 117
Figura 7.3 Reparto de tiempos real ... 118
Figura 7.4 Reparto de memoria ocupada ... 118
ÍNDICE DE TABLAS
Tabla 1.1 Características básicas de los sistemas PAL y NTSC ... 3
Tabla 1.2 Comparación entre formatos digitales ... 9
Tabla 3.1 Características de los perfiles de MPEG-2 ... 37
Tabla 3.2 Resoluciones máximas de los niveles de MPEG-2 ... 37
Tabla 3.3 Combinaciones recomendadas Perfil/Nivel y Máximo bitrate (Mbps)... 37
Tabla 6.1 Valores de código de comienzo... 77
Tabla 6.2 Códigos de identificador de código de comienzo de extensión ... 80
Tabla 6.3 Significado de chroma_format ... 82
Tabla 6.4 Número de bloques en función de chroma_format... 82
Tabla 6.5 Estructura time_code... 83
Tabla 6.6 Tipo de codificación de imagen ... 84
Tabla 6.7 Precisión coeficientes DC intracodificados ... 85
Tabla 6.8 Significado de picture_structure... 85
Tabla 6.9 Significado frame_motion_type... 88
Tabla 6.10 Siginficado field_motion_type ... 89
Tabla 6.11 Relación entre intra_dc_precision y el valor de reiniciación del predictor... 90
Tabla 6.12 Selección de tablas VLC de coeficientes DC ... 91
ÍNDICE DE ECUACIONES
Ecuación 2.1 Transformada discreta del coseno 2D... 21 Ecuación 2.2 Transformada inversa discreta del coseno 2D... 21 Ecuación 3.1 Obtención de los coeficientes cuantificados... 50
1 INTRODUCCIÓN
1.1 Introducción
Actualmente nos encontramos en una época en la que prácticamente todo tratamiento de información que imaginemos se hace mediante un dispositivo con funcionamiento digital. Podemos ver como a lo largo de la última década, se han ido sustituyendo los métodos de adquisición, almacenaje y reproducción de cualquier tipo de información. Así por ejemplo, las cámaras fotográficas, videocámaras, reproductores de música, grabadoras, etc, han sido reemplazadas por sus homólogos digitales con las diferencias que esto conlleva.
La digitalización de señales analógicas aporta considerables ventajas entre las que podemos citar la protección frente a ruidos, la facilidad para encriptar las señales, la posibilidad de procesar digitalmente los datos, el poder enviar las señales digitales a grandes distancias, así como la gran capacidad de almacenamiento que en medios digitales encontramos y que aumenta a velocidad vertiginosa. No obstante, por lo general, la digitalización supone un aumento considerable del ancho de banda. A pesar de esto, el gran desarrollo experimentado por las tecnologías de la información en los últimos tiempos ha provocado, entre otros avances, un incremento de las comunicaciones digitales. El procesamiento digital de señales adquiere un interés especial, puesto que es la base para plataformas tales como Internet, multimedia, televisión digital y sonido digital. La posibilidad de transmitir vídeo digital se presentaba como algo muy lejano hace unos años. Incluso se llegó a pensar que su introducción no se lograría hasta bien entrado el siglo XXI [13].
Lo que hizo cambiar esta percepción fue la aparición de eficaces algoritmos de compresión de vídeo, que reducían de manera significativa el flujo necesario para la transmisión de imágenes.
Para comprender la necesidad de algoritmos compresores necesitaremos primero unas nociones básicas sobre el vídeo digital sin comprimir. Por esto, en el siguiente capítulo
motivaciones que nos han llevado ha desarrollar este proyecto y los objetivos propuestos en su comienzo. Además, se incluye un apartado con la organización del resto de la memoria.
1.2 Conceptos de vídeo digital
El vídeo es una captura, grabación, almacenamiento, y reconstrucción de una secuencia de imágenes que representan escenas en movimiento. Tanto el cine, la televisión y el vídeo doméstico están basados, entre otros, en un fenómeno conocido como “persistencia de la visión”. Dicho fenómeno consiste en una imperfección del ojo humano, por el cual toda imagen que visualice se queda almacenada en la retina durante una fracción de segundo. De esta forma, si al ojo humano se le muestra una rápida sucesión de imágenes, tenderá a unirlas, y si éstas son muy similares, con pequeños cambios y se exponen a una velocidad adecuada, el cerebro las reconoce como imágenes en movimiento.
El vídeo surge como una tecnología íntimamente ligada a la televisión, pues nació como auxiliar de ésta para evitar que toda la programación fuera en directo, facilitando el trabajo de grabación, la planificación de horarios, el almacenaje de programas y la reproducción de los mismos. Por esto actualmente, cualquier formato de vídeo tiene herencias de este sistema.
La innovación en el registro de imágenes visuales y auditivas en este formato, comienza a finales de los años 50 e inicios de los 60. Entre 1965 y 1978 se consolida como un medio con singularidad y aplicaciones propias y empieza a ser independiente de la producción televisiva.
Una fecha importante en la historia de este medio es 1964, durante los Juegos Olímpicos de Tokio, año en el que se hace la primera emisión diferida de la transmisión en directo de este acontecimiento.
En 1965 se efectúa el primer vídeo personal con una intención artística, cuando el coreano Nam June Pail filmó la visita del Papa Pablo VI a Nueva York desde la ventanilla de un taxi.
Posteriormente, en 1968. la Sony Corporation produce el “portpack”, primera cámara portátil comercializada, y en ese mismo año ocurre que Jean Louis Godard graba la
revuelta francesa de estudiantes por la mañana (hecho conocido como el Mayo Francés), y es visto por la noche en una librería francesa [19].
Como hemos dicho, el vídeo y la televisión se relacionan y se pueden considerar medios complementarios. Por esto, para estudiar la transición entre vídeo analógico y vídeo digital tomaremos como ejemplo la señal analógica empleada en televisión.
La señal analógica de televisión está compuesta de imágenes. Como hemos dicho, para crear la sensación de movimiento dichas imágenes deben cambiar cada cierto tiempo de forma que el ojo no lo perciba (25 imágenes por segundo en PAL, y 30 en NTSC). A su vez, cada imagen está formada por líneas (625 líneas para un televisor PAL, 525 para un televisor NTSC), pero una imagen digital está compuesta de píxeles. Las principales características de estos dos sistemas se detallan en la siguiente tabla.
IMAG/S CAMP/S LINEAS/IMAG TLINEA FLINEA TIMAGEN FIMAGEN TCAMPO FCAMPO
PAL B/G 25 50 625 64 s 15625 Hz 40 ms 25 Hz 20 ms 50 Hz
NTSC 30 60 525 63,56 s 15734 Hz 33,33 ms 29,97 Hz 16,66 ms 60 Hz
Tabla 1.1 Características básicas de los sistemas PAL y NTSC
Puesto que más adelante hablaremos del vídeo entrelazado introducimos aquí algunos conceptos. Consiste en realizar una doble exploración entrelazada de las líneas de cada imagen como se muestra en la figura 1.1. La imagen se divide en dos subimágenes o campos explorando alternativamente las líneas pares y las impares. La proximidad entre líneas consecutivas hace que el espectador integre las dos subimágenes y obtenga la sensación de que éstas se están renovando a una frecuencia doble de la real. Con ello se consigue eliminar un fenómeno de parpadeo que aparecía con la exploración normal.
Para la digitalización de esta señal de vídeo se hace un muestreo de cada una de las imágenes (muestreo temporal) en filas y columnas (muestreo espacial) tal y como se representa en la figura 1.2.
Figura 1.2 Muestreo espacial y temporal de la secuencia de vídeo
Si consideramos una señal analógica en blanco y negro (solo tiene información de la luminancia, es decir, del nivel de gris en cada punto) y tomamos muestras equiespaciadas en cada una de sus líneas, se obtendrá un muestreo de la imagen con estructura rectangular (cada cuadro de televisión guarda una relación de aspecto rectangular 4/3), en la que cada muestra representa los valores de luminancia obtenidos como se representa en la figura 1.3.
De este modo, la imagen digital puede tratarse como una matriz u[n,m]. Cada una de estas muestras serán los llamados elementos de imagen o píxeles. El número de muestras que se toman en cada línea de la imagen debe guardar una relación con el número de líneas de cada imagen con objeto de que la resolución en ambas direcciones tenga valores parecidos. Así pues, como primera aproximación, en un sistema como el europeo (PAL) que utiliza 575 líneas activas, el número de muestras tomadas en cada línea debería ser de unas (4/3) x 575 = 766 muestras, donde hemos multiplicado por la relación de aspecto para tener en cuenta que la imagen no es cuadrada. En la figura 1.4 se muestran distintas versiones de la misma imagen muestreada con distintas resoluciones (en este caso cuadradas).
Figura 1.4 Versiones de una misma imagen con distintas resoluciones
Cada una de estas muestras de luminancia deberá representarse con un número de bits o una profundidad. La experiencia empírica demuestra que el número mínimo de niveles a partir del que no se aprecia ninguna mejora en la calidad de las imágenes se sitúa entre los 45 y 60 por lo que bastaría con 6 ó 7 bits para codificarlos. Debido a que toda la estructura de las memorias está basadas en palabras de 8 bits, se decidió cuantificar los niveles de luminancia con 8 bits (256 niveles posibles).
En el caso en que se trate de imágenes en color, puede optarse por muestrear las 3 componentes de color RGB o bien la luminancia y las señales diferencia de color. En el primer caso, la resolución de las tres imágenes debe ser la misma. En el segundo, es
1.2.1 Formatos de vídeo digital
La primera norma que surge para la televisión digital será la CCIR 601, que se encarga del muestreo de la señal, sin llevar a cabo ningún tipo de compresión. Puesto que se hará referencia a este formato en el futuro, considero oportuno introducir algunos conceptos.
Recomendación 601
En 1982, el ITU-R (anteriormente CCIR), en su recomendación 601, desarrolló un conjunto de especificaciones para señales de televisión digital en estudios de televisión o de producción de vídeo.
El objetivo de esta recomendación era facilitar el intercambio de programas a escala internacional. Las recomendaciones definen muchos parámetros comunes entre el formato americano (NTSC) y europeo (PAL) con el objeto de que los fabricantes puedan incluir varios módulos comunes en equipos para 525 y 625 líneas. El uso de este formato permite la interconexión entre distintos equipos digitales.
Existen básicamente dos variantes básicas conocidas como 4:2:2 y 4:4:4, donde los dígitos indican la proporción entre las muestras dedicadas a la luminancia (Y) y las dedicadas a las componentes de color (Cr y Cb, componentes diferencia).
Las dimensiones de la componente de luminancia en los formatos 4:4:4 y 4:2:2 son de 720x576 en los sistemas de 625/50 y de 720x480 en los de 525/30.
El sistema más utilizado es el 4:2:2, en el que están codificadas la luminancia y las señales diferencia de color. El formato 4:4:4 puede utilizarse también con componentes RGB.
En la figura 1.5 se muestra la disposición de las muestras tomadas en el formato 4:2:2. Como se puede ver, las señales diferencia de color tienen la mitad de muestras en el sentido horizontal y el mismo que la luminancia en el sentido vertical.
Figura 1.5 Distribución espacial de las muestras de luminancia y croma en el formato 4:2:2
Además de las dos variantes básicas 4:2:2 y 4:4:4, destaca también el formato 4:2:0 que es una simplificación del 4:2:2. Se obtiene reduciendo a la mitad la frecuencia de muestreo de las componentes de croma en el sentido vertical. Con ello, se iguala la densidad de muestras de croma en las dos direcciones. Las muestras de croma se obtienen a partir de las muestras del formato 4:2:2, promediando dos filas consecutivas. En la figura 1.6 se muestra un ejemplo del muestreo de este formato.
consigue una importante reducción respecto a la tasa de bits original, que puede hacer factible la codificación de la señal en soportes de baja densidad o canales de reducido ancho de banda.
Uno de los formatos de vídeo reducido más populares es el SIF (Source Intermediate
Format) que, esencialmente, consiste en un submuestreo de factor dos del formato 4:2:0
que se aplica tanto a las componentes de luminancia como de croma. Los tamaños de las matrices de luminancia para el formato SIF son de 360x288 para el estándar de 625 líneas y 360x240 para el de 525 líneas. Las matrices de croma también se submuestrean en un factor 2 en cada dirección respecto las matrices de croma del 4:2:0 (180x144 para 625 líneas y 180x120 para 525). También se realiza una reducción de la frecuencia de imagen a 25 Hz para el sistema europeo y a 30 Hz para el americano. Con ello, las imágenes resultantes no son entrelazadas. En estas condiciones, se obtiene una calidad equivalente al formato de vídeo analógico VHS.
El formato CIF (Common Intermediate Format) es un compromiso entre el formato SIF para 625 y 525 líneas. Utiliza 360x288 muestras de resolución de luminancia (europeo) y una frecuencia de refresco de 30 Hz (americano).
Los formatos QSIF y QCIF (Quater) se obtienen reduciendo de nuevo la resolución espacial en un factor 4 (factor 2 en cada dirección) y la resolución temporal en un factor de 2 o 4. Estos formatos suelen utilizarse para la transmisión de señales de vídeo telefonía con el estándar de compresión H.261 o para la transmisión de vídeo en directo por Internet. Los submuestreos espaciales se realizan filtrando las señales SIF (o directamente la 4:2:0). Las posiciones espaciales de las componentes de luminancia y croma resultantes son parecidas a las del formato SIF.
Formatos de píxel cuadrado
En aplicaciones informáticas es conveniente que los píxeles tengan una relación de aspecto cuadrada, ya que las tarjetas de visualización y los programas de tratamiento de imagen asumen esta propiedad. Por ello, es conveniente redefinir unos formatos alternativos para poder gestionar las señales de vídeo digital mediante ordenador. Los formatos utilizados en entornos informáticos se suelen denominar formatos de píxel cuadrado y son equivalentes a los formatos que hemos considerado hasta ahora, con la salvedad de que se modifica el número de elementos por fila para forzar que la relación de aspecto del píxel sea cuadrada. Así, en el estándar de 625 líneas, el tamaño de una imagen 4:2:0 será de 768x576 píxeles (768 = (4/3) x 576) mientras que en el estándar de
525 líneas tendremos un tamaño de imagen de 640x480 píxeles (640 = (4/3) x 480). Este formato es conocido como VGA y, como vemos, proviene del estándar americano. El resto de formatos SIF, CIF y QCIF de píxel cuadrado se obtienen dividiendo las resoluciones espaciales por factores de dos. En la tabla 1.2 se comparan los tamaños de cada formato en las versiones de 625 líneas, 525 líneas y formatos cuadrados.
Europeo TV Americano TV Eur. Cuadrado Amer. Cuadrado 4:2:0 720x576 720x480 768x576 640x480
SIF 360x288 360x240 384x288 320x240
CIF 360x288 360x288 384x288 384x288
QSIF 180x144 180x120 192x144 160x120
Tabla 1.2 Comparación entre formatos digitales
1.2.2 Codificación de la señal de vídeo digital
En la figura 1.7 se representan las distintas etapas conceptuales que intervienen en el proceso de codificación de la señal de vídeo digital.
Figura 1.7 Etapas en la codificación y transmisión de una señal de vídeo digital
• La codificación de fuente consiste en extraer toda la redundancia posible en la señal, reduciendo el número de bits con el que se representa la información sin que ello suponga una pérdida aparente de calidad para el sistema visual humano. Los métodos y estrategias empleados para la codificación de fuente son muy variados, y resulta difícil establecer un procedimiento de compresión óptimo puesto que los resultados dependen, en gran medida, de las características de las
• La multiplexación de distintas señales básicas es necesaria para formar una única trama binaria que transporte la información y contenidos de todo el canal definido por la plataforma operadora.
• La codificación de canal se utiliza para adecuar la forma de onda de las señales a las características del canal. En esta etapa se introducen códigos de protección frente a errores, códigos de encriptación de la información y se adecua la forma de onda de las señales para que puedan ser directamente utilizadas por la etapa de modulación o transmisión. Esta última etapa se encarga de adaptar los datos a las características del medio de transmisión, para garantizar una correcta recepción de las señales.
• El medio de transmisión condiciona el tipo de modulación que se utiliza y la codificación de canal. Así, en un medio como el cable, los sistemas de detección y corrección de errores pueden ser más simples que en el caso de la comunicación vía satélite, debido a que la relación señal a ruido es mucho mayor y, por tanto, se reduce la probabilidad de error.
1.3 Necesidad de compresión
Para tener una idea general del volumen de datos binarios que supone la digitalización de una señal de vídeo, y por ello, la necesidad de compresión, consideremos como ejemplo el caso del estándar 4:2:2. La luminancia se muestrea a una frecuencia de 13.5 MHz tomando 8 bits por muestra, lo que da un total de 108 Mbps. Además, cada una de las señales de diferencia de color se muestrean a 6.75 MHz, nuevamente con 8 bits por muestra, lo que produce un nuevo flujo de 108 Mbps. En total tenemos un flujo de 216 Mbps asignados exclusivamente a la señal de vídeo digital, sin tener en cuenta las componentes de audio o de información adicional que pueden desear incluirse en la señal de televisión [6]. Este flujo de datos, si bien puede ser soportado en la transferencia de datos entre equipos de un estudio, es excesivo para su transmisión directa al usuario, ya que requeriría utilizar un considerable ancho de banda.
Por ello, en el momento que haya que transmitir o almacenar la señal de vídeo digital es fundamental aplicar procedimientos y tratamientos específicos de los datos que permitan comprimir la cantidad de información que debe transmitirse al canal.
En el caso de señales de vídeo analógicas resultaba suficiente un ancho de banda de 5 MHz para mantener una resolución espacial y tasa de refresco de imágenes aceptable. Evidentemente, aunque se usen códigos y modulaciones digitales de gran eficiencia espectral, el ancho de banda necesario para transmitir una tasa de bits de 216 Mbps es muy superior a los 5 MHz que requiere el sistema analógico.
Por esta razón, los formatos digitales derivados del ITU 601 se han mantenido como estándares digitales para el intercambio de información entre equipos terminales en estudios de grabación y producción de vídeo y no se han extendido a sistemas de transmisión y almacenaje de la señal de vídeo.
Tomando estos formatos digitales como punto de partida, es necesario aplicar un proceso de reducción de la tasa de bits que permita la transmisión o almacenaje de las señales sin una pérdida aparente de calidad o sin hacer uso excesivo de los medios de los que se dispone. Este proceso es conocido como compresión o codificación y consiste básicamente en la reducción del número de parámetros requeridos para representar la señal, manteniendo una buena calidad de imagen.
1.4 Motivaciones
En un primer momento, el proyecto iba a consistir en un estudio y comparación de distintos algoritmos de detección de cambios de plano en vídeo comprimido. La idea consistía en programar en MATLAB algunos de los algoritmos más característicos y comparar su bondad con respecto a distintos parámetros. Se pensó en basarse en el estándar de vídeo comprimido MPEG-2. Para ello, en primer lugar, me centré en la documentación de estos algoritmos, seleccionando tres de ellos. Cuando comencé la parte técnica y llegó la hora de programar, resultó que no existía ningún código abierto en MATLAB que analizara la estructura del vídeo comprimido. Esto era necesario, ya que cualquier algoritmo de cambio de plano compara determinados parámetros (presentes en el bitstream de vídeo) en las sucesivas imágenes, de forma que cuando detectan una diferencia mayor a un umbral, indicarán que se ha producido el cambio.
La razón de haber escogido el estándar de vídeo comprimido MPEG-2, y no otra de las versiones de MPEG, es principalmente el gran número de aplicaciones en las que se emplea este estándar, desde sistemas de almacenamiento digital como el DVD (en una versión modificada) hasta la televisión de alta definición.
1.5 Objetivos
Aunque el principal objetivo de este proyecto es el desarrollo de un decodificador de vídeo MPEG-2 en MATLAB, su consecución necesariamente se ha tenido que basar en la realización de varias tareas previas.
En primer lugar se debía entender por qué es necesaria la compresión al mismo tiempo que estudiar las técnicas empleadas para realizarla. Estas técnicas, basadas en la compresión empleada en imágenes estáticas, deben conseguir un flujo de bits óptimo para las aplicaciones en las que se usará la información de vídeo. Hasta este punto, muchos de los distintos estándares de compresión existentes se basan en procesos equivalentes.
Centrándonos en el estándar elegido, MPEG-2, la primera tarea a realizar fue un estudio exhaustivo del estándar. Aparte de las técnicas de compresión empleadas en este caso particular, debíamos comprender las distintas estructuras existentes en su bitstream. Al ser un estándar abierto, la recomendación proporciona simplemente una sintaxis que deben cumplir los vídeos comprimidos con este estándar, lo cual deja gran libertad al diseñador del codificador o decodificador. Las distintas estructuras que forman un bitstream con formato MPEG-2 y las relaciones entre ellas vienen recogidas en la recomendación ISO/IEC 13818-1, denominada Capa de Sistema. Además, como la información que se iba a descomprimir era la de vídeo, se realizó el estudio pertinente de la Capa de Vídeo, recogida en la recomendación ISO/IEC 13818-2.
En la parte de desarrollo técnico se fijaron dos objetivos. El primero de ellos era realizar un programa capaz de demultiplexar la información de vídeo, para su posterior descompresión y análisis. El segundo era el decodificador propiamente dicho. Para la realización de este programa se debía emplear como patrón la sintaxis recogida en la Capa de Vídeo del estándar, con los mismos algoritmos y, en la medida de lo posible, la misma información. De esta forma se conseguiría que cualquier persona ajena al proyecto, siempre que tenga en cuenta la recomendación, pudiera comprender e incluso modificar el código para cualquier otra aplicación.
Aunque no se fijó como objetivo minimizar la velocidad de descompresión, se llevará a cabo un estudio de tiempos empleados en el desarrollo de la aplicación para detectar cuál serían las partes mejorables del algoritmo.
1.6 Organización de la memoria
La memoria está dividida en ocho capítulos, a su vez subdivididos en partes y temas concretos que relacionamos a continuación.
El primer capítulo sirve de introducción o de preámbulo, mostrándose algunos conceptos de vídeo digital y la necesidad de comprimir este tipo de información. Incluyéndose también las motivaciones que nos han llevado a realizar este proyecto y los objetivos fijados.
En el segundo capítulo se exponen las técnicas usadas en los estándares de compresión de vídeo. Se da por tanto, una visión general, sin particularizar ni definir ningún estándar en concreto.
El tercer capítulo nos detalla la información relacionada con el estándar MPEG-2, en cuya primera parte, se habla de su historia y de la organización de la recomendación ISO/IEC 13818. Posteriormente, y con un nivel más detallado que en el capítulo segundo, se presentan las técnicas de compresión empleadas.
En el cuarto capítulo hablamos de la Capa de Sistema (ISO/IEC 13818-1), que contiene la forma de multiplexar la distinta información de vídeo, audio y de otros tipos. Además se explican las dos formas de agrupar dicha información.
En el quinto capítulo damos un repaso general a las técnicas de compresión de audio y de una forma algo más superficial que en el caso de vídeo hablamos del proceso de codificación empleado en MPEG-2.
En el sexto capítulo llegamos a la información de vídeo. Presentando la estructura de datos de vídeo y los principales parámetros que definen este tipo de información.
La información del desarrollo se recoge en el capítulo siete. En primer lugar se explican las características fundamentales de las aplicaciones diseñadas, haciendo un estudio de
Finalmente y como colofón, en el octavo capítulo se incluyen las conclusiones, los objetivos cumplidos y las posibles vías futuras de desarrollo a partir de este proyecto.
2 TÉCNICAS DE COMPRESIÓN DE LA SEÑAL DE VÍDEO
La compresión es el proceso de compactar los datos en un menor número de bits. En el caso de la compresión de vídeo hemos dicho que necesitamos disminuir la tasa necesaria (unos 216 Mbps) para poder almacenar y transmitir este tipo de información.2.1 Sistemas de compresión
Un sistema de compresión de información suele estar formado por dos etapas que se ilustran en la figura 2.1. La transformación de los datos es un procedimiento genérico que se utiliza para representar la información en una forma alternativa y en la que, en principio, resulta más evidente la redundancia existente en los datos originales. Es necesario que esta transformación sea invertible, es decir, que a partir de los datos transformados podamos recuperar de forma lo más exacta posible la información original.
Figura 2.1 Proceso general de codificación y decodificación de la información
Consideremos como ejemplo la aplicación de una transformada de Fourier a las señales que representan la información de un fragmento de audio. Es posible que resulte más eficiente codificar los datos resultantes de esta transformación que los datos originales. En efecto, en el dominio transformado de Fourier es más simple identificar las regiones espectrales que tienen una energía por debajo del umbral de audición, o analizar las bandas que resultarán enmascaradas por otras señales y que por lo tanto no serían
debemos recordar que al final de la cadena de codificación / decodificación, deben presentarse los datos en el mismo formato de entrada para que puedan ser correctamente interpretados por el sistema auditivo. Esto significa que deberemos aplicar la transformación inversa sobre los datos codificados para devolverlos a su dominio de representación original.
En general, la compresión puede ser con pérdidas (lossy) o sin pérdidas (lossless) en función de si la información que se recupera coincide exactamente con la original o es sólo una aproximación. Los métodos de codificación sin pérdidas se utilizan sobre todo en aplicaciones de codificación de datos binarios de aplicaciones informáticas en los que es absolutamente necesario recuperar la información original. Los formatos más populares son el zip y el arj. En tratamiento de imágenes los métodos de compresión sin pérdidas encuentran su aplicación en la codificación de imágenes médicas o científicas en las que puede resultar crítico la pérdida de parte de la información. El formato JPEG dispone de una versión de codificación sin pérdidas que suele emplearse en estas aplicaciones.
La compresión con pérdidas es la más habitual en la codificación de señales de vídeo y audio. Evidentemente, las pérdidas son tolerables siempre que la calidad de las señales decodificadas sean aceptables. El principio general sobre el que se sustenta la codificación con pérdidas es que no resulta necesario codificar aquellas componentes de la información que no son observables por los sistemas de percepción humana. Por lo tanto, estos métodos se fundamentan en las características psicofisiológicas de los sistemas auditivo y visual, que son, en última instancia, los que deben evaluar la calidad del algoritmo de compresión. Por ello, es fundamental comprender las limitaciones y características de estos sistemas de percepción para diseñar codificadores en los que las pérdidas de información resulten poco evidentes o incluso inapreciables. La principal ventaja de estas estrategias de codificación es que consiguen unos factores de compresión muy superiores a los que se obtienen con los métodos sin pérdidas. Además, suelen ser métodos escalables con la aplicación, es decir, el grado de pérdida de calidad que se tolera depende del ámbito al que se destine el codificador. Así, la calidad que se exige en una aplicación de vídeo en directo para Internet es muy inferior a la que se exige para la radiodifusión de televisión. Análogamente, un codificador de vídeo para aplicaciones multimedia (MPEG-1) deberá realizar una compresión mucho mayor que un codificador para aplicaciones de televisión (MPEG-2), ya que las tasas de transferencia
de bits que admite un CDROM son mucho menores que las que admiten los canales de televisión.
2.2 Técnicas de compresión de imágenes
La compresión de imágenes y de secuencias de vídeo se basa en la eliminación de tres tipos de redundancias:
• Redundancia Espacial: Se basa en los píxeles que están cerca unos de otros, ya que estos tienen un parecido muy grande entre ellos. Para eliminar esta redundancia se usan métodos transformados, como por ejemplo la (DCT, Discret
Cosinus Transform) y la cuantificación. Estas técnicas serán conocidas como
codificación Intratrama.
• Redundancia Estadística: Consiste en determinar que valores de bit se repiten más en una secuencia. Utilizaremos métodos como el VLC (Variable Length
Code) y el RLC (Run Length Code) para poder eliminar esta redundancia.
• Redundancia Temporal: Pretende aprovechar el hecho de que un píxel se repita a lo largo del tiempo. Para poder eliminar este tipo de redundancia se utilizaran técnicas predictivas para poder deducir la posición futura de los píxeles. En concreto utilizaremos una predicción Intertrama con la técnica de compensación de movimiento, basada en obtener la imagen de predicción a partir de vectores de movimiento de imágenes pasadas y/o futuras. Esta eliminación de redundancia es la que nos comprimirá más el video.
En este apartado sólo se expondrán los aspectos generales de los métodos más utilizados en algoritmos de compresión de vídeo. Normalmente, cualquiera de las técnicas empleadas están basadas en bloques, que en el caso genérico serán de tamaño NxM, aunque en la mayoría de los casos se toman bloque cuadrados, NxN. En el siguiente capítulo se detallarán estas técnicas para el caso de MPEG-2.
2.2.1 Redundancia espacial
la transformada coseno discreta. El método de cuantificación será explicado para el caso particular del codificador MPEG más adelante.
Transformada coseno discreta (DCT)
La codificación de imagen utilizando algún tipo de transformadas es bastante popular y se extiende a otras transformaciones como Fourier, Walsh-Hadamard, Hart, Karhunen-Loeve, Wavelet, etc. Estos procedimientos de codificación se conocen con el nombre genérico de métodos transformados.
Este método de codificación se basa en el esquema de la figura 2.2. La imagen a comprimir se divide en bloques o subimágenes de tamaño reducido sobre las que se aplica la transformación. El resultado de la transformada de cada bloque se cuantifica y posteriormente se aplican códigos eficientes para transmitir o almacenar esta información. La compresión de imagen se produce principalmente durante el proceso de cuantificación, donde parte de la información se descarta o se cuantifica con un número de niveles muy reducido. Veremos que la información de cada subimagen puede quedar muy bien empaquetada en unos pocos coeficientes transformados, de modo que resulta suficiente con determinar qué coeficientes son los más representativos y codificar la imagen utilizando únicamente estos elementos. Evidentemente, también existe alguna ganancia de compresión debido a la codificación de los coeficientes mediante algoritmos eficientes, aunque en ningún modo es tan significativa como la debida a la parte de cuantificación.
Figura 2.2 Proceso general de codificación y descodificación de imágenes mediante la transformada coseno
La decodificación de la imagen se realiza aplicando el proceso inverso: los coeficientes se descodifican y se aplica la transformada inversa, de manera que se recuperan los elementos de imagen en el dominio espacial original. Posteriormente, es necesario recomponer la imagen a partir de los bloques en los que se ha divido originalmente. Esta recomposición de la imagen suele ser uno de los principales problemas de los métodos transformados. En efecto, debido a la cuantificación de los coeficientes transformados, la subimagen se recupera con cierto error respecto a la original. Este error es muy crítico si se produce en los límites de las subimágenes, debido a que al fusionar todos los bloques aparecerán cambios de nivel de gris bruscos que pueden reproducir la descomposición en bloques cuando se observa la imagen descomprimida. El problema es particularmente notorio con algunas transformadas como la de Fourier o Walsh-Hadamard. La transformada coseno presenta excelentes propiedades en la codificación de los contornos de las subimágenes que, de hecho, ha sido uno de los motivos principales por los que se ha elegido esta transformada en casi todos los estándares de codificación.
Otro de los aspectos cruciales en la codificación por métodos transformados es la elección del tamaño de las subimágenes. En principio es aconsejable elegir los tamaños de los bloques para que exista cierto grado de correlación entre bloques adyacentes. Otra restricción importante es que los tamaños de las subimágenes deberían ser una potencia de 2 para facilitar el uso de algoritmos rápidos en la implementación de la transformación. El factor de compresión que puede obtenerse aumenta a medida que se utilizan bloques más grandes, aunque también se incrementa la carga computacional. En la mayoría de aplicaciones pensadas para una resolución espacial similar a la de los sistemas de televisión, los bloques son de tamaño 8x8 o 16x16.
Antes de introducirnos en los detalles de la transformada coseno analizaremos sus características principales, que justifican su amplio uso en codificación de imagen y que, posteriormente, nos ayudarán a comprender algunas de sus particularidades.
• Capacidad de compactación de la energía en el dominio transformado. La transformada coseno discreto (DCT- Discrete Cosine Transform) consigue concentrar la mayor parte de la información en unos pocos coeficientes transformados. Esto permite obtener importantes ventajas para una codificación
que significa que siempre es posible encontrar un bloque de imagen en la que la energía en el dominio transformado esté dispersada entre todos los coeficientes. No obstante, esto tiene una probabilidad de ocurrencia muy baja y no suele producirse nunca si trabajamos con imágenes naturales. La capacidad de compactación de la energía de la DCT es muy superior a la que se obtiene con las transformadas de Walsh- Hadamard, Hart y también Fourier. La transformada Karhunen-Loeve consigue una compactación óptima, aunque al precio de un elevado coste computacional. La transformada Wavelet también consigue concentrar la energía en unos pocos coeficientes, aunque en este caso, la posición de los coeficientes con mayor energía depende de la imagen.
• Es una transformada independiente de los datos. Esto significa que el algoritmo es independiente del contenido de la imagen. Prácticamente todas las transformadas que hemos venido comentando son independientes de los datos, con la excepción de la Karhunen-Loeve, donde las matrices asociadas a la transformación deben calcularse en función de las características de la propia imagen. Por este motivo, la transformada de Karhunen Loeve es óptima en el sentido de compactación de energía.
• Existen algoritmos eficientes para el cálculo rápido. Existen algoritmos análogos al de la FFT (Fast Fourier Transform) para realizar la transformación. Los algoritmos se encuentran disponibles en circuitos integrados especializados en realizar esta transformación. La restricción para poder utilizar estos algoritmos es que los bloques tengan un tamaño que sea múltiplo de una potencia de dos. Si no es así, deberán añadirse ceros a las subimágenes, aunque esto supone que aumenta notablemente el riesgo de que aparezca el efecto de bloques al decodificar la imagen.
• Errores reducidos en los contornos de los bloques. Probablemente éste es uno de los motivos principales por los que se ha elegido la DCT frente a otras transformadas. La presencia de errores de codificación muy pequeños en los límites de la subimagen es necesaria para evitar la aparición del efecto de bloques en la imagen reconstruida.
• Identificación e interpretación frecuencial de los componentes transformados. Para aprovechar al máximo la capacidad de compresión de un método es conveniente que los coeficientes puedan interpretarse desde el punto
de vista frecuencial con facilidad. Esto permite introducir conceptos psico-visuales, permitiendo dedicar un menor número de bits a aquellas componentes que de antemano sabemos que no resultan críticas para el sistema visual.
La ecuación que se utiliza para la transformada NxN bidimensional (se suponen bloques cuadrados) es:
( )
=( ) ( )
∑∑
−( )
⎡⎢⎣(
+)
⎥⎦⎤ ⎢⎣⎡(
+)
⎥⎦⎤ = − = 2N vπ 1 y 2 cos N 2 uπ 1 x 2 cos y x, f v C u C N 2 v u, F N 1 0 x 1 N 0 ycon
u, v, x, y =0, 1, 2, … N-1
donde
x, y son coordenadas espaciales en el dominio espacial
u, v son coordenadas en el dominio transformado
( ) ( )
2
1
=
v
,C
u
C
para u,v = 0
C( ) ( )
u ,C v =1para u, v = 1,2,…,N-1
Ecuación 2.1 Transformada discreta del coseno 2D
En general sólo trataremos con bloques cuadrados cuyos tamaños son, como hemos comentado, una potencia de 2.
De forma análoga, la ecuación para la transformada inversa es:
( )
=
∑∑
−( ) ( ) ( )
⎢⎣
⎡
(
+
)
⎥⎦
⎤
⎢⎣
⎡
(
+
)
⎥⎦
⎤
= − =N
v
y
N
u
x
v
u
F
v
C
u
C
N
y
x
f
N u N v2
1
2
cos
2
1
2
cos
,
2
,
1 0 1 0π
π
Vemos un ejemplo numérico de esta transformada en la figura 2.3. 120 108 90 75 69 73 82 89 127 115 97 81 75 79 88 95 134 122 105 89 83 87 96 103 137 125 107 92 86 90 99 106 131 119 101 86 80 83 93 100 117 105 87 72 65 69 78 85 100 88 70 55 49 53 62 69 89 77 59 44 38 42 51 58 DCT 700 90 100 0 0 0 0 0 90 0 0 0 0 0 0 0 -90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0
Figura 2.3 Ejemplo numérico y gráfico de la transformada discreta del coseno
Tal y como se dijo anteriormente, la DCT consigue concentrar la mayor parte de la información en unos pocos coeficientes transformados. Además, podemos ver cómo estos coeficientes distintos de cero se encuentran situados en las frecuencias bajas.
2.2.2 Redundancia estadística
Códigos de longitud variable (VLC)
La idea básica de los códigos de longitud variable es asignar palabras código de longitudes distintas en función de la probabilidad de los mensajes. Los mensajes más probables se codificarán con un menor número de bits que los mensajes menos probables.
Para que los códigos de longitud variable resulten eficaces es necesario disponer de procedimientos sistemáticos para generar estos códigos directamente a partir de las características de las fuentes. Además, es fundamental que los códigos obtenidos resulten eficientes, es decir, que permitan obtener una tasa media de bits próxima a la entropía de la fuente.
Entre estos códigos podemos destacar los códigos de Huffman y sus variantes.
Codificación por longitud de series (RLC)
Esta codificación comenzó a utilizarse a mediados de la década de los 50 para la codificación de documentos digitalizados. Para documentos de texto o gráficos binarios, que únicamente contienen los niveles blanco y negro, podemos codificar cada línea indicando, de forma alternada, cuantos píxeles toman el nivel blanco y cuantos el nivel negro en palabras sucesivas. Para ello, es necesario establecer que siempre empezamos por uno de los niveles.
A este procedimiento básico, podemos añadir un código de Huffman que tenga en cuenta la estadística con la que se producen los mensajes que indican la longitud de las series de blancos y negros. Aquellas longitudes que se producen con mayor frecuencia serán codificadas con palabras de menos longitud.
La idea básica del RLC puede extenderse a fuentes con varios mensajes o símbolos, pero en las que predomine uno de los mensajes con gran probabilidad. En el caso del proceso de codificación de imágenes, muchos de los coeficientes de la transformada coseno obtenidos, una vez cuantificados, toman el valor nulo, por lo que resulta más eficiente especificar la cantidad de coeficientes consecutivos que toman este valor.
2.2.3 Redundancia temporal
La redundancia temporal se basa en que dentro de una secuencia de vídeo, los cambios producidos entre imágenes son mínimos, ya que gran parte de los objetos y elementos permanecen en la misma posición y con las mismas características de un fotograma a otro. Un área de la imagen actual proviene por lo general de un área cercana de la imagen anterior, por lo que podemos emplear la información anterior y fijarnos en las diferencias. Normalmente los métodos para eliminar la redundancia temporal se realizan en secciones rectangulares o bloques.
En la figura 2.4 se muestran dos fotogramas seguidos, las diferencias entre ellos a simple vista son inapreciables, pero si representamos la imagen diferencia podemos ver que efectivamente ha habido cambios. En esta imagen un nivel medio de gris representa una diferencia nula y los niveles más claros o más oscuros de gris serán diferencias positivas o negativas, respectivamente. La mayor parte de los elementos no se han modificado pero en los contornos si ha habido modificaciones. Esto puede ser debido o bien al movimiento de la cámara, o al movimiento de los objetos.
Figura 2.4 Ejemplo de dos fotogramas seguidos y su diferencia
Esta técnica es ampliamente utilizada en los codecs para la producción de vídeo en soporte informático. El procedimiento general suele conocerse con el nombre de codificación de fotogramas en diferencias. Normalmente, la secuencia de vídeo suele descomponerse en fotogramas clave (key frame) y fotogramas diferencia (delta frames). Los fotogramas claves deberán codificarse de forma independiente del resto de fotogramas, teniendo en cuenta únicamente la redundancia espacial de la imagen. Periódicamente se insertará un fotograma clave en la secuencia codificada para evitar la propagación de errores de codificación en las imágenes delta.
Esta técnica, aunque se utiliza a menudo, no es óptima cuando se producen desplazamientos de los objetos dentro de la imagen o aparecen nuevos motivos debido al
movimiento de la cámara u otros aspectos. En la figura 2.5 mostramos un movimiento de la cámara en una imagen simplificada.
Imagen de referencia Imagen a codificar Redundancia temporal
Figura 2.5 Ejemplo de bloques utilizados para realizar la predicción en codificación diferencial
La figura muestra cuál sería la sección de la imagen utilizada para predecir el bloque de interés. En este caso la ganancia del codificador es nula debido a que el error de predicción es precisamente igual a la imagen.
Técnicas de compensación de movimiento
La compensación de movimiento es una técnica de predicción temporal que intenta optimizar los resultados obtenidos por la codificación diferencial analizando el movimiento que realizan los objetos dentro de la imagen y compensándolos.
Siguiendo con el ejemplo de figura anterior, en el caso de compensación de movimiento, el bloque que utilizaríamos para la predicción es el mostrado en la figura 2.6. Ahora, el error de predicción puede llegar a ser nulo, por lo que no es necesario volver a codificar el bloque, simplemente habría que transmitir el vector de desplazamiento que hay que utilizar en la imagen de referencia para construir este fragmento de la imagen.
Imagen de referencia Imagen a codificar Redundancia temporal
Figura 2.6 Ejemplo del bloque utilizado para la predicción en una codificación por compensación de movimiento
Como es de esperar, los vídeos reales no son tan simples como el ejemplo que hemos puesto. Los objetos pueden sufrir deformaciones, cambios de perspectiva o de tamaño o trasladarse en el espacio mediante rotaciones. Todos estos efectos no se pueden modelar mediante vectores de traslación.
Por esta razón, para codificar las secuencias de vídeo de forma óptima, el procesador deberá ser capaz de identificar las regiones de la imagen con nuevos componentes y codificarlos basándose en la redundancia espacial, y los elementos que se parezcan a imágenes pasadas o futuras, con la técnica de compensación de movimiento.
Podemos resumir el proceso de codificar un bloque mediante esta técnica en los siguientes pasos:
1. Buscar un área o bloque de la imagen de referencia (pasada o futura, la única condición es que haya sido codificada y transmitida previamente) que sea óptima para realizar la predicción del bloque actual. Para realizar esto, se compara el bloque de la trama actual con alguno o todos de los posibles bloques de la trama referencia. Este proceso se conoce como estimación de movimiento.
2. La zona elegida se convierte en el predictor para el bloque actual y lo que se hace es restar al bloque actual el predictor. Así, tenemos un bloque residual. Este proceso es la compensación de movimiento.
3. El bloque residual se codifica y transmite junto con la diferencia de posición entre los bloques actuales y de referencia. Esta diferencia son los llamados vectores de movimiento (componente de desplazamiento vertical y horizontal).
Figura 2.7 Cálculo del vector de movimiento para la compensación de movimiento
Cuando queramos decodificar esta información se parte de que el decodificador ya ha decodificado la imagen de referencia. Entonces, lo que hay que hacer para recuperar la información del bloque es desplazar el bloque referencia con el vector de movimiento y añadir el bloque diferencial. La señal de error (bloque residual) puede ser transmitida tal cual o usando métodos transformados como se hacía para eliminar la redundancia espacial. También se podrá emplear códigos de longitud variable para el error y los vectores de movimiento.
Hemos dicho que las imágenes referencia puede ser tanto pasadas como futuras. A esto se le conoce como compensación de movimiento bidireccional. La idea básica consiste en codificar una imagen utilizando no sólo las imágenes de referencia del pasado, sino también las futuras. En principio esto da una solución no causal, pero lo que se hace es modificar el orden de codificación y transmisión de las imágenes, que no será el orden en que se representen en un display.
futura), backward (imagen pasada), bidireccional (ambas imágenes) o codificar el bloque sin predicción (error demasiado grande).
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).
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
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
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.
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.