Descargar

Introducción a la codificación de imágenes

Enviado por Pablo Turmero


Partes: 1, 2, 3

    edu.red

    Introducción a la codificación de imágenes Las imágenes que percibimos están compuestas de ondas electromagnéticas (?: 250nm – 780nm). A diferentes longitudes de onda, diferentes sensaciones de color. El ojo es más sensible a unos colores que a otros. Dadas tres fuentes de luz de la misma intensidad y distinto color (una roja, otra verde y otra azul), el ojo percibe la verde con el doble de intensidad que la roja, y seis veces más intensa que la azul. Los mecanismos de percepción visual humanos son menos sensibles y estrictos que los auditivos. Ej.: Variaciones de frecuencia, supresión de imágenes, etc. Mezclando 3 colores (RGB) podemos obtener otro. Integra la información que recibe.

    edu.red

    Captura y digitalización de imagen I Las imágenes digitales están compuestas de píxels (picture element). Una cámara fotográfica digital utiliza un CCD (charge coupled device) para realizar el proceso de adquisición analógica. El CCD tiene una serie de pequeños diodos sensibles a la luz que convierten luz en cargas eléctricas (o sea, fotones en electrones). Cada diodo del CCD captura un píxel de la imagen a adquirir. Para poder situar cada píxel de la imagen (luz entrante) en su diodo correspondiente del CCD se utiliza una lente. Mediante la lente se puede conseguir también realizar zoom óptico (no confundir con zoom digital)

    edu.red

    Captura y digitalización de imagen II Problemática del color: Si el CCD captura la luz directa que recibe de la lente, sólo tenemos la intensidad de luz, pero no su color. Añadimos un filtro (R, G ó B) a cada píxel, de manera que algunos píxels reciben sólo la luz roja, otros la verde y otros la azul. El número de píxels que reciben luz verde es el mismo que la suma de los que reciben luz roja y azul. La información de color que no se ha obtenido en cada píxel se interpola directamente de sus vecinos, usando un DSP.

    edu.red

    Captura y digitalización de imagen III El CCD es un dispositivo analógico. Es necesario un conversor analógico digital (ADC) que obtenga la representación digital de cada píxel a partir de la señal eléctrica generada por cada diodo. Una cámara digital necesita un DSP para gestionar el funcionamiento de la cámara. Realiza el acceso y almacenamiento de fotos en memoria, el proceso de compresión, la interpolación de los colores, gestión de menús, etc. Uno de los más usados, el TMS320DSC24 de Texas Instruments, funciona a 80 Mhz y es utilizado por Kodak en sus productos.

    edu.red

    Captura y digitalización de imagen IV Codificación y recodificación. Cada muestra RGB se codifica con una cantidad de bits por componente de color (p.ej., 8 bits/componente?24 bits/muestra). A veces resulta interesante codificar el nivel de brillo de una muestra (luminancia, o componente Y) y las diferencias de color (crominancias azul, roja y verde, o componentes Cb, Cr, Cg). La conversión de RGB a YCbCr (YUV) se realiza mediante una matriz de conversión (aproximada): Y = 0.3R + 0.6G + 0.1B (Nivel de brillo o luminancia) U = B – Y (Diferencia de color azul) (equiv. Cb=U/2+128) V = R – Y (Diferencia de color rojo) (equiv. Cr=V/1.6+128) Cada uno de los componentes se codifica con 8 bits. Y (8 bits): rango 16-235 Cb (8 bits) y Cr (8 bits): rango 16-240 La diferencia de color verde (Cg) es redundante y no se almacena, ya que se puede obtener a partir de la Y, la Cb y la Cr.

    edu.red

    Captura y digitalización de imagen V Subsampling: El ojo es más sensible a la información de luminancia que de crominancia. (Gp:)

    Y (Gp:)

    Cb (Gp:)

    Cr (Gp:) 720 (Gp:) 480 o 576

    (Gp:)

    Y (Gp:) 720 (Gp:) 480 o 576 (Gp:)

    Cb (Gp:)

    Cr (Gp:) 360 (Gp:) 480 o 576

    Formato 4:4:4 (Gp:)

    Y (Gp:) 720 (Gp:) 480 o 576 (Gp:)

    Cb (Gp:)

    Cr (Gp:) 360 (Gp:) 240 o 288

    (Gp:)

    Y (Gp:) 720 (Gp:) 480 o 576 (Gp:)

    Cb (Gp:)

    Cr (Gp:) 180 (Gp:) 480 o 576

    Formato 4:2:0 Formato 4:2:2 Formato 4:1:1 Muestra Cr + Muestra Cb Muestra Y

    edu.red

    Tipos de imagen (según su resolución) La resolución de una imagen se mide según el número de píxels por lado (ancho x alto). En cámaras digitales se suele medir en Megapixels (millones de píxels por imagen) Common Intermediate Format (CIF) (352×288): Utilizado habitualmente en videoconferencia (junto con Quarter CIF) VGA (640×480): Usado por cámaras de baja calidad. n-Megapixels: Ofrecido por cámaras de mayor calidad. A veces, la resolución real de una cámara digital no coincide con la del CCD de esa misma cámara. P.ej, una cámara de 3,3 MP ofrece una resolución de 2048×1536. Parte de la circuitería del CCD que transporta los datos al ADC está situada en determinados diodos que no pueden ser usados. 7

    edu.red

    Compresión de imagen. Una imagen suele presentar redundancia espacial: Redundancia espacial: Las imágenes tienen información redundante susceptible de ser eliminada o reducida (por ejemplo, el color del cielo en una foto suele ser uniforme y azul :-). El proceso de compresión de imagen consistirá en: Eliminar en la medida de lo posible la redundancia espacial utilizando técnicas de source encoding (normalmente mediante transformada matemática). Codificar los datos obtenidos en el paso anterior usando entropy enconding (elimina aun más la redundancia espacial). Para conseguir mayores índices de compresión, este proceso será con pérdidas (cuantización de los datos).

    edu.red

    Redundancia espacial: JPEG Es un estándar ISO (‘91) cuyo origen proviene del grupo JPEG (Joint Photographic Expert Group).

    Codifica imágenes de tono-continuo Dispone de cuatro modos de operación (incluyendo codificación sin perdidas). Se definen una serie de parámetros que permiten codificar las imágenes para obtener una gran variedad de calidades de compresión. Factor de compresión ronda 20:1* Es un sistema de codificación simétrico. Forma parte de otros estándares de compresión de secuencias de vídeo (MPEG y H.26*).

    edu.red

    Codificación JPEG (pasos) Codificación JPEG en modo secuencial con pérdidas

    Paso 1: Preparación de la imagen. No define el formato de imagen original. Podría ser RGB, YUV, YIQ, YCrCb, etc. Convierte la imagen a formato YCbCr utilizando una reducción de color 4:1:1 (sub-sampling) Ej.: RGB 640×480 (VGA): Y (640×480), Cb y Cr (320×240) Se divide la imagen en bloques de 8×8 elementos Ej. anterior: 4800 bloques Y, 1200 Cb y 1200 Cr.

    (Gp:) Prep. de bloques (Gp:) DCT (Gp:) Cuantiz. (Gp:) Tabla (Gp:) Run Length (Gp:) Huffman (Gp:) Tabla (Gp:) Imagen original (RGB) (Gp:) Imagen codificada (Gp:) Codificación fuente (Gp:) Codificación entrópica

    edu.red

    Codificación JPEG: Transformada DCT Paso 2: Transformada discreta del coseno (DCT). Transforma un dominio de amplitudes al dominio de la frecuencia. Las componentes frecuenciales más altas son susceptibles de ser eliminadas (percepción visual) Se aplica esta transformada a cada bloque de 8×8 obteniendo la matriz de coeficientes DCT asociada Componente (0,0): el nivel de continua DC del bloque (Media) (Gp:) Fx (Gp:) Fy (Gp:) Coeficiente DCT

    Transformada DCT (Gp:) x (Gp:) y (Gp:) Amplitud

    edu.red

    Codificación JPEG: Transformada DCT(II) DCT-1D: (vector 8 elementos)

    DCT-2D: (matriz 8×8 elementos) Transformada directa Transformada inversa

    edu.red

    Codificación JPEG: Cuantificación Paso 3: Cuantificación (quantization). Se eliminan los coeficientes menos representativos de la DCT (transformación con pérdidas). Cada coeficiente de la matriz 8×8 es dividido por un valor almacenado en una tabla (quantization table). El estándar sugiere dos tablas una para la componente Y y otra para las componentes Cb y Cr. Estas tablas se pueden escalar con otro parámetro Q que nos permitirá ajustar el índice de compresión requerido. (Gp:) 150 (Gp:) 70 (Gp:) 38 (Gp:) 16 (Gp:) 4 (Gp:) 0 (Gp:) 1 (Gp:) 0 (Gp:) 88 (Gp:) 56 (Gp:) 22 (Gp:) 9 (Gp:) 2 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 21 (Gp:) 34 (Gp:) 12 (Gp:) 4 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 4 (Gp:) 6 (Gp:) 3 (Gp:) 7 (Gp:) 0 (Gp:) 1 (Gp:) 0 (Gp:) 0 (Gp:) 1 (Gp:) 0 (Gp:) 5 (Gp:) 0 (Gp:) 2 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 1 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) Coeficientes DCT

    (Gp:) 1 (Gp:) 1 (Gp:) 2 (Gp:) 4 (Gp:) 8 (Gp:) 16 (Gp:) 32 (Gp:) 64 (Gp:) 1 (Gp:) 1 (Gp:) 2 (Gp:) 4 (Gp:) 8 (Gp:) 16 (Gp:) 32 (Gp:) 64 (Gp:) 2 (Gp:) 2 (Gp:) 2 (Gp:) 4 (Gp:) 8 (Gp:) 16 (Gp:) 32 (Gp:) 64 (Gp:) 4 (Gp:) 4 (Gp:) 4 (Gp:) 4 (Gp:) 8 (Gp:) 16 (Gp:) 32 (Gp:) 64 (Gp:) 8 (Gp:) 8 (Gp:) 8 (Gp:) 8 (Gp:) 8 (Gp:) 16 (Gp:) 32 (Gp:) 64 (Gp:) 16 (Gp:) 16 (Gp:) 16 (Gp:) 16 (Gp:) 16 (Gp:) 16 (Gp:) 32 (Gp:) 64 (Gp:) 32 (Gp:) 32 (Gp:) 32 (Gp:) 32 (Gp:) 32 (Gp:) 32 (Gp:) 32 (Gp:) 64 (Gp:) 64 (Gp:) 64 (Gp:) 64 (Gp:) 64 (Gp:) 64 (Gp:) 64 (Gp:) 64 (Gp:) 64 (Gp:) Tabla de cuantificación

    (Gp:) 150 (Gp:) 70 (Gp:) 19 (Gp:) 4 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 88 (Gp:) 56 (Gp:) 11 (Gp:) 8 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 10 (Gp:) 17 (Gp:) 6 (Gp:) 1 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 1 (Gp:) 1 (Gp:) 1 (Gp:) 2 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) Coeficientes DCT cuantificados

    edu.red

    Codificación JPEG: Codificación entropía Paso 4: Codificación DPCM de los componentes DC de cada bloque. Bloques sucesivos tienen un valor medio muy similar. Paso 5: Codificación run-length de todos los componente de un bloque. Se hace un barrido “zig-zag” con el fin de agrupar todos los componentes nulos. (Gp:) 150 (Gp:) 70 (Gp:) 19 (Gp:) 4 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 88 (Gp:) 56 (Gp:) 11 (Gp:) 8 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 10 (Gp:) 17 (Gp:) 6 (Gp:) 1 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 1 (Gp:) 1 (Gp:) 1 (Gp:) 2 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 0 (Gp:) 150-70-88-10-56-19-4-11-17-1-0-1-6-8-0-0-0-1-1-0-0-0-0-0-2-..(39 0’s) (Gp:) 150-70-88-10-56-19-4-11-17-1-0-1-6-8-A0/3-A1/2-A0/5-2-A0/39

    edu.red

    Codificación JPEG: Codificación entropía Paso 6: Codificación estadística VLC: Huffman A lo obtenido en el paso anterior se aplica el algoritmo de Huffman para comprimir aún más la información. El resultado de este paso es lo que debemos enviar o almacenar.

    La decodificación JPEG consiste en realizar el proceso inverso: (Gp:) 110001110011100010….. (Gp:) Huffman decoder (Gp:) Run-lenght decoder (Gp:) Zig-zag ordering (Gp:) Inverse Quantization (Gp:) Inverse DCT

    edu.red

    Codificación JPEG: Ejemplo real (Quant) (Gp:) DCT

    Bloque de muestras (pixels) Bloque de muestras transformadas (Gp:) IDCT

    Bloque de muestras cuantizadas Bloque recuperado de muestras (Gp:) Quant

    Partes: 1, 2, 3
    Página siguiente