2.4.
Compresin digital de video
El trmino de compresin digital se refiere a la reduccin del volumen de datos que se requieren para representar una determinada informacin empleando una menor cantidad de espacio de almacenamiento, as como una reduccin de ancho de banda. La compresin de informacin de imgenes o video depende en gran medida de las limitaciones psicovisuales del ojo humano, permitiendo remover componentes de datos innecesarios en la seal de vdeo. 2.4.1. Redundancia y entropa Un concepto clave en la compresin digital de datos es la redundancia, que es la propiedad de un mensaje de contener datos que no aportan o repiten parte de la informacin dentro del mismo mensaje. Por lo que la principal funcin del codificador de un sistema de compresin digital consiste en eliminar dicha redundancia antes de transmitirla o almacenarla. En seales de video, se identifican dos tipos principales de redundancia: Redundancia psicovisual: Informacin visual que debido a las limitaciones del ojo humano pueden ser eliminadas sin una prdida perceptible de la calidad de la imagen. Redundancia espacial y temporal: El valor de un pixel es predecible dados los valores de pixeles cercanos en el mismo cuadro de imagen, o cuadros adyacentes. Es decir, existe correlacin entre pixeles contiguos. Por otro lado, la entropa representa la cantidad mnima promedio del contenido de informacin que necesita ser preservada para la correcta reconstruccin de la imagen. La entropa tambin se puede considerar como la cantidad de informacin promedio que contienen los smbolos usados, de esta manera, los smbolos con
menor probabilidad son los que aportan mayor informacin, mientras que los smbolos con mayor probabilidad aportan poca o nula informacin. 2.4.2. Principios de compresin digital de video Los sistemas de compresin digital son el resultado de la combinacin de diversas tcnicas como la codificacin de longitud variable (VLC: Variable Length Coding) y la codificacin por longitud de series (RLC: Run Length Coding). Codificacin por longitud de series RLC La compresin digital de imgenes a travs de la codificacin por longitud variable aprovecha la redundancia espacial entre pixeles contiguos, de esta forma, la redundancia puede ser reducida agrupando series de pixeles consecutivos del mismo valor generando un cdigo que represente un solo elemento de la serie y el nmero de veces que ste se repite, es decir, la longitud de serie. Mientras ms larga sea la serie, mayor ser el factor de compresin.
Figura 2.4.1. Codificacin por longitud de series
Codificacin de longitud variable La codificacin de longitud variable consiste en codificar los elementos ms frecuentes con un nmero menor de bits que los elementos menos frecuentes, dando como resultado una longitud promedio menor de bits que si empleara un nmero fijo de bits. El mtodo empleado ms comn para la codificacin de longitud variable es el algoritmo Huffman, el cual comprime datos asignando cdigos cortos a
secuencias que ocurren frecuentemente y cdigos ms largos a aquellos menos frecuentes, empleando las llamadas tablas de Huffman, asignadas en el codificador y conocidas por el decodificador.
Figura 2.4.2. Funcionamiento bsico del algoritmo de Huffman
Transformada de Coseno Discreta (DCT) La transformada de coseno discreta es un caso especial de la transformada discreta de Fourier donde bajo circunstancias especiales, se descompone la seal en slo una serie de funciones coseno, es decir, se eliminan los coeficientes sinusoidales de la transformada discreta de Fourier. La transformada DCT es frecuentemente usada en compresin de imagen, audio y video. Debido a la naturaleza bidimensional de las imgenes, se emplea una transformada DCT bidimensional descrita en la ecuacin A.5 (Apndice A), que transforma los valores de crominancia y luminancia de un bloque de NxN pixeles en una matriz de NxN coeficientes que representan la amplitud de la componente en frecuencia asociada con un pixel en especfico. Por convencin, y en aras de reducir la complejidad de los clculos a realizar, se aplica la DCT a bloques de 8x8 pixeles sucesivamente hasta completar el total de lneas y total de pixeles por lnea que conforman la imagen como se muestra en la ecuacin 2.1, cabe mencionar que las frecuencias se ordenan de menor a mayor, de izquierda a derecha, de esta forma, el coeficiente de frecuencia
0 o DC (Corriente Directa) queda en la esquina superior izquierda y el coeficiente de mayor frecuencia en la esquina inferior izquierda.. ( ) ( )
(2.1)
Donde,
Xk1,k2 = Coeficiente de la componente k1,k2 xn1,n2 = Amplitud (Y o C) del pixel en la posicin n1,n2
Adicionalmente, es necesario eliminar valores que se encuentren por debajo de un umbral de frecuencia (thresholding), esto debido a la dificultad del ojo humano de percibir frecuencias altas de crominancia. Los coeficientes restantes son cuantizados, reduciendo el nmero de bits requeridos. En la prctica, los coeficientes de frecuencias altas son cuantizados con menor precisin que los coeficientes de frecuencias menores. En la figura 2.4.3 se muestra la transformacin de un bloque de 8x8 pixeles en una matriz de 8x8 coeficientes empleando la transformada DCT y el resultado obtenido tras aplicar thresholding y cuantizacin. La imagen mostrada se compone de 80x60 bloques de 8x8 pixeles.
Figura 2.4.3. Transformacin de un bloque de 8x8 pixeles en una matriz de 8x8 coeficientes
2.4.3. Compresin de imgenes fijas: JPEG El estndar de compresin JPEG (Joint Photographic Experts Group) define una familia de tcnicas de compresin de imgenes fijas en escala de grises o color a 24 bits (8 bits por componente de color RGB). A continuacin se describe el proceso bsico de compresin de la norma JPEG: 1. Descomposicin en bloques: La imagen original en formato YCbCr, es dividida en bloques de 8x8 pixeles, cada bloque consta de 64 valores que representan las amplitudes de luminancia y crominancia. Cuando se digitaliza a 8 bits, los valores de luminancia van de 0 a 255, y los valores de crominancia van de -127 a +127. 2. Transformada del Coseno Discreta: La transformada DCT es aplicada a cada bloque generado, generando una nueva matriz 8x8 coeficientes. 3. Thresholding y cuantizacin: Se eliminan los coeficientes que se encuentran por debajo de un umbral predeterminado, y se cuantizan los coeficientes restantes con una precisin menor conforme aumenta la frecuencia. 4. Escaneo en zig-zag: Se ordena el tren de coeficientes para que los valores que sean cero se agrupen juntos mejorando los efectos de tcnicas VLC y RLC como se muestra en la imagen 2.4.4. 5. Codificacin por longitud de series: El nmero de ceros repetidos se agrupan y se codifican, reduciendo el volumen de informacin. 6. Codificacin de longitud variable: Se emplea una tabla de conversin codificando los coeficientes ms frecuentes con una palabra menor que aquellos menos frecuentes.
Figura 2.4.4. Escaneo en Zig-Zag de los coeficientes de la matriz
2.4.4. Compresin de video: MPEG El Grupo de Expertos de Imgenes en Movimiento MPEG (Motion Picture Experts Group) fue creado en 1988 como un grupo de trabajo dentro de la Organizacin Internacional de Estandarizacin (ISO) con el objetivo de definir estndares para la compresin digital de seales de audio y video, y as poder almacenarlas dentro de un CD-ROM con una tasa de bit promedio de 1.5 Mbps, de este proyecto surgi MPEG-1. La compresin de video MPEG se basa en los mismos principios que la compresin JPEG, y adicionalmente se emplean nuevas tcnicas conocidas como tcnicas de prediccin de compensacin de movimiento, las cuales aprovechan la redundancia temporal existente entre cuadros de imagen adyacentes, logrando deducir un cuadro de imagen a partir de cuadros precedentes o futuros como se ver a continuacin. Tipos de imagen MPEG El estndar MPEG define tres tipos de imgenes:
Imgenes I (Intra): Imgenes que son codificadas si referencia de otras imgenes, se logra una compresin moderada reduciendo la
redundancia espacial como en JPEG. Imgenes P (Predicted): Imgenes que son codificadas con respecto a imgenes I e imgenes P anteriores, empleando tcnicas de prediccin con compensacin de movimiento, logrando una tasa de compresin mayor que las imgenes I. Imgenes B (Bidirectional): Imgenes codificadas a partir de la interpolacin bidireccional entre imgenes I o P, ofreciendo la mayor tasa de compresin. Un grupo de imgenes (GOP: Group of Pictures) define la manera en que se suceden las imgenes I, P y B como se muestra en la figura 2.4.5. Una estructura GOP se describe por dos parmetros: N, la distancia entre dos imgenes I, y M, la distancia entre dos imgenes P.
Figura 2.4.5. Estructura de un grupo de imgenes M=3, N=12
El orden de las imgenes es modificado antes de la codificacin, de forma que el codificador y el decodificador dispongan antes de las imgenes I y P necesarias para el tratamiento de las imgenes B, y por tanto un codificador requiere de un decodificador local que reconstruya la imagen sobre las cuales se realizan las predicciones.
Adems, para cada tipo de imagen se produce un nmero diferente de bits, es decir, el codificador transmite a una tasa de bit variable, por lo que es necesario emplear un bfer entre el codificador y el canal para que el flujo de bits transmitido al canal sea constante. Estimacin y compensacin de movimiento La compensacin de movimiento consiste en encontrar un vector de movimiento dado por la diferencia de posicin entre dos macrobloques (2x2 bloques), esto se logra desplazando un macrobloque de la imagen actual dentro de una ventana de bsqueda de la imagen anterior, y se compara con todos los posibles macrobloques posibles dentro de esa ventana hasta encontrar el que ms se ajuste, lo que se conoce como block matching o empate de bloque. De esta manera se codifican solo los macrobloques que difieren, reduciendo el volumen de informacin. Para imgenes B, se obtienen vectores intermedios a travs de la interpolacin entre posiciones temporales de imgenes I y P como se muestra en la imagen 2.4.6.
Figura 2.4.6. Funcionamiento bsico de la compensacin de movimiento
Codificacin de video MPEG-2 En 1990 se publica el estndar MPEG-2 tras la necesidad de un estndar de codificacin de video para aplicaciones de difusin o broadcast. El estndar MPEG-2 es capaz de codificar seales de televisin SD (Standard Definition) a
tasas de transferencia entre los 3 y 15 Mbps y televisin HD (High Definition) de 15 a 30 Mbps. El estndar MPEG-2 se divide en 6 perfiles y 4 niveles ofreciendo un amplio rango de aplicaciones que requieren diferentes grados de complejidad y desempeo. Un perfil describe el subconjunto de herramientas algortmicas empleadas, mientras que un nivel identifica restricciones a parmetros como tamao mximo de imagen, tasa mxima de transferencia o resolucin mxima. Un codificador MPEG para un perfil y nivel dado, es capaz de codificar perfiles y niveles anteriores. Aunque en teora son posibles 24 combinaciones entre perfiles y niveles, solo estn definidas las que se muestran en figura 2.4.7.
Figura 2.4.7. Perfiles y niveles del estndar MPEG-2
Un perfil simple no soporta codificacin bidireccional, por tanto no emplea imgenes B, lo cual reduce la tasa de compresin simplificando el codificador y el decodificador, mientras que el perfil principal corresponde al mejor compromiso
entre tasa de compresin y costo, debido a que emplea los tres tipos de imgenes (I, P y B), sin embargo emplea codificadores y decodificadores ms complejos. Los perfiles escalables consisten en la codificacin jerrquica que permite transmitir un mismo programa en resolucin estndar y en alta definicin en trminos de resolucin espacial (perfil espacial) o de cuantizacin (perfil SNR), y permitir una recepcin con calidad aceptable en caso de dificultades en la recepcin. Por otro lado, el perfil alto es empleado en transmisin HDTV en formato 4:2:0 o 4:2:2, y adicionalmente el perfil 4:2:2 fue desarrollado para proporcionar compatibilidad con equipos de produccin digital de televisin existentes, donde no se requiere de escalabilidad espacial o SNR . La combinacin ms empleada en aplicaciones de difusin o broadcast es conocida como Perfil Principal a Nivel Principal o por sus siglas en ingls MP@ML (Main Profile at Main Level), el cual est basado en imgenes entrelazadas en formato 4:2:0 con una resolucin de 720 x 480 @ 30 Hz. Codificador y decodificador MPEG En la figura 2.4.8 se muestra un diagrama esquemtico de un codificador MPEG, donde se parte de la imagen digitalizada en formato 4:2:0 o 4:2:2 segn el perfil, el codificador elige si debe ser codificada en modo frame cuando un macrobloque formado en el campo impar sirve para predecir el bloque correspondiente del prximo campo impar, de la misma forma para campos pares o modo field cuando la prediccin de un macrobloque se efecta a partir del campo anterior. A continuacin se debe estimar los vectores de movimiento para cada macrobloque. La prediccin con compensacin de movimiento se realiza a partir de una imagen I o P, se eliminan los datos reales del macrobloque y se forma la seal de error de prediccin y se aplica la transformada DCT. Despus se pasa a la
cuantizacin, cuyos coeficientes son controlados por el estado de carga del bfer de salida de datos codificados. Por ltimo, se realiza la codificacin entrpica con ayuda de una tabla VLC antes de multiplexar la seal de video codificada junto con informacin auxiliar necesaria para que el decodificador pueda reconstruir la imagen como los vectores de movimiento y los modos de codificacin, y se obtiene un tren de bits a un flujo constante utilizable para un decodificador a la salida del bfer.
Figura 2.4.8. Diagrama esquemtico de un codificador MPEG
En la figura 2.4.9 se ilustra el proceso inverso realizado por un decodificador. La ventaja del decodificador es que no tiene que realizar la estimacin de movimiento, de esta manera su diseo resulta ms simple y econmico.
Figura 2.4.9. Diagrama esquemtico de un decodificador MPEG