Compresión de imágenes

Slides:



Advertisements
Presentaciones similares
ALGORITMOS GENETICOS EVOLUCIÓN DE UNA POBLACIÓN DE
Advertisements

COMPENSACIÓN DE MOVIMIENTO
Convertidores A/D y D/A
Impedancia características de la línea de transmisión
Almacenamiento de imágenes digitales
Códigos Detectores y Correctores de Errores
JPEG/JPG Integrantes:
TRANSFORMACIONES GEOMÉTRICAS
Unidad académica: Ingenierías
Tema 6: El estándar JPEG Carlos Alberola López Lab. Procesado de Imagen, ETSI Telecomunicación.
Tema 6: Compresión de imagen
ALGORITMOS DE COMPRESIÓN DE VIDEO
Procesamiento digital de Imágenes
Álgebra elemental.
Procesamiento digital de Imágenes
UNIDAD I Conceptos Básicos.
TRANSFORMACIONES LINEALES PARA REDES NEURALES ARTIFICIALES
Matrices Es una estructura homogénea, compuesta por varios elementos, todos del mismo tipo y almacenados consecutivamente en memoria A cada elemento se.
J. Trinidad Guillen Bonilla, H. Guillen Bonilla, A. Guillen Bonilla,
Administración de Archivos
Introducción al diseño gráfico
SISTEMAS DE NUMERACIÓN
ANALISIS DE DATOS CATEGORICOS
JPEG/JPG Aguilar López Donaji Cruz Ortiz Nora Elida
Sistemas decimal, binario, octal y hexadecimal
Seguridad y encriptación Compresión de archivos
CÓDIGOS DE HUFFMAN. Códigos de Huffman Los códigos de Huffman, que representan caracteres por cadenas de bits de longitud variable, proporcionan alternativas.
FUNCIONAMIENTO BÁSICO Fuente inicial:. Arquitectura de computadores Los computadores digitales utilizan como modelo para su funcionamiento y organización.
Sistemas de numeración
(Organización y Manejo de Archivos)
Descomposición Factorial Unidad 5
COMPRESION DE IMAGENES DIGITALES Jaime Lopez Carvajal Univalle Tulua 2008.
Realzado en el dominio de la frecuencia
UNIVERSIDAD TECNICA DE COTOPAXI UNIDAD ACADEMICA DE CIENCIAS ADMINISTRATIVAS Y HUMANISTICAS CARRERA DE EDUCACION BASICA MATEMATICA I ING. MSC. OSCAR GUAYPATIN.
DISTRIBUCION NORMAL Mario Briones L. MV, MSc 2005.
Introducción general a la compresión de datos multimedia
Universidad Nacional de Colombia Curso Análisis de Datos Cuantitativos.
Unidad aritmético-lógica
Procesamiento Digital de Imágenes
Problema de inclusión en una Curva Digital Por Orellana Muñoz, Alfonso Paz Vicente, Rafael Pérez Medina, Gerardo Rodríguez Naranjo.
Imágenes en el PC Fuente: Curso HTML del CNICE. Tipos de imagen A grandes rasgos podríamos dividir las imágenes digitales en dos grupos: Imágenes vectoriales,
Tema 3: Filtros.
Procesamiento de Imágenes Digitales Propagación del Error en Codificación de Video Escalable Pablo Fernández Riejos Roberto Fuentes González Francisco.
Almacenamiento de imágenes digitales Primera parte.
MoMento S Grupo 33: Ignacio Ayllón Benito Félix A. Velázquez Salas.
SUBSTRACCIÓN DE IMÁGENES
Eliminación de ruido y Tratamiento de partes alargadas en imágenes digitales.
INFORMATICA VII (Programación e implementación de sistemas)
Procesamiento Digital de Imágenes
TEMA 2 CARACTERIZACIÓN FRECUENCIAL DE SEÑALES Y SISTEMAS
Digitalización y compresión de vídeo
Tema 4. VÍDEO DIGITAL.
Sistema Numérico Binario Prof. Carlos Rodríguez Sánchez.
GRAFICACIÓN BMP Y BMP COMPRIMIDO POR: MADRID BETANCOURT ILIANA
Ecuaciones Algebraicas
COMPUTO I - UASF SISTEMA BINARIOS.
Compresión de imágenes Carlos Miguel Calafate Visión por Computador 2002.
Estructura de datos I CIS - UABJB.
Elaboración de algoritmos usando lógica de programación
Diseño Aplicado a la Web
Televisión y Multimedia
Estadística Reporte Ejecutivo
Matemática de Redes Doc. Anna Dugarte.
DETECCION DE SEÑALES BINARIAS EN RUIDO GAUSSIANO El criterio de toma de decisión fue descrito por la ecuación Un criterio muy usado para escoger el nivel.
DETECCION DE PSK DIFERENCIAL El nombre de PSK diferencial (DPSK) algunas veces necesita clarificación, debido a dos aspectos separados del formato de.
Creación y tratamiento de imágenes digitales
OPTIMIZACION DEL DESEMPEÑO DE ERROR
CODIFICACION DE HUFFMAN
Sistema Numérico Binario Prof. Carlos Ortiz Muñoz.
Ing. José David Ortiz Salas
Transcripción de la presentación:

Compresión de imágenes

Tipos de imágenes Desde el punto de vista de la compresión Binarias: Blanco y negro. Escala de grises, color y estacionarias de vídeo.

Imágenes binarias Presentes en documentos que no contienen información continua del tono o en imágenes que pueden ser capturadas en blanco y negro. Ejemplos: Documentos de oficina, manuscritos, dibujos de ingeniería y arquitectura. Cuando no están comprimidas hay un bit por píxel: 1 para un píxel negro y 0 un píxel blanco.

Redundancia en imágenes binarias Bastantes estudios muestran que las imágenes binarias son estadísticas por naturaleza ya que consisten de espacios en blanco y zonas formadas por píxeles negros: texto, líneas, áreas rellenas. Esto hace que exista bastante redundancia en términos de información. La compresión de imágenes reduce la redundancia de los datos de la imagen.

RLE (Run Length Encoding) Es el primero y mas simple procedimiento de compresión de datos. Utilizado primariamente para comprimir imágenes en blanco y negro. Posteriormente ha formado la base de otros procedimientos de compresión como por ejemplo el CCITT grupo 3 – 1D

RLE (Run Length Encoding) El procedimiento consiste en sustituir una cadena de caracteres consecutivos repetidos por dos bytes: El primer byte contiene un número que representa el número de veces que el carácter está repetido. El segundo byte contiene al propio carácter. En otros casos se codifican en un solo byte: 1 bit (0 o 1) y 7 bits para especificar el número de caracteres consecutivos.

RLE (Run Length Encoding) 000000000000001111111000000000001111 Byte Valor en decimal Valor en hexadecimal 1 14 E 2 3 7 4 5 11 B 6 8

CCITT Grupo 3 1D Basada en el RLE Es una versión modificada denominada codificación Huffman Su fundamento es el siguiente: A secuencias mayores de píxeles negros o blancos, menor es el código en bits utilizado.

Tabla de códigos Grupo 3 RLE Blanco Código RLE Negro 1 000111 010 2 1000 10 4 1011 011 5 1100 0011

Códigos Grupo 3 A partir de 64 píxeles se generan códigos “makeup” en múltiplos de 64 píxeles. Para calcular el código de los valores intermedios se añaden al código “makeup” anterior el código de terminación correspondiente . Por ejemplo: para codificar 132 píxeles blancos: “makeup” 128 = 10010 Terminación 4 = 1011 TOTAL = 100101011

Algoritmo de Huffman 1.-Calcular la probabilidad de cada elemento 2.-Mientras haya mas de un elemento 3.-Ordenar en orden creciente de probabilidad 4.-Agrupar los dos elementos de menor probabilidad y sustituirlos por un nuevo elemento cuya probabilidad sea la suma de ambos. 5.-Si queda mas de un elemento volver a 2, si no parar y asignar códigos binarios.

Ejemplo Comprimir la palabra MULTIMEDIA A(1) D(1) E(1) T(1) L(1) U(1) I(2) M(2)

Codificación diatómica Es una variación de la RLE Determina la ocurrencia de los pares de bytes mas frecuentes. Por ejemplo en textos se conocen por estudios estadísticos que parejas de letras aparecen mas frecuentemente vinculadas. En estos casos la pareja de bytes se sustituye por un solo byte que no aparezca en el texto. Se pueden alcanzar reducciones del 10% Una derivación optimizada son los diccionarios LZW

Codificación aritmética no adaptativa El mensaje se representa por el intervalo 0 – 1 (números reales). Según el mensaje crece el intervalo se hace mas pequeño … y el número de bits necesario para representarlo crece.

CCITT Grupo 3 2D Es bidimensional. La razón de compresión entre 10 y 20. Ofrece una alta compresión, porque estadísticamente muchas líneas difieren muy poco de la línea de arriba o de la de abajo.

CCITT Grupo 3 2D Utiliza un factor K mediante el que la imagen es dividida en diversos grupos de K líneas. La primera línea de cada grupo K según el procedimiento del grupo 3 1D. Dicha línea se convierte en la referencia para la siguiente línea. Por ejemplo una línea de texto se puede corresponder a 20-30 líneas de píxeles, en este caso la diferencia entre unas y otras será sólo la de los contornos.

Procedimiento de codificación con respecto a la línea de referencia Se analiza la línea a codificar y se buscan e identifican los cambios de píxel (p. e. El primer cambio en la posición a1) Se analiza la línea de referencia y se buscan e identifican los cambios de píxel (p. e. El primer cambio en la posición b1) Se calcula la diferencia entre ambas posiciones (Delta = b1 – a1)

Procedimiento de codificación con respecto a la línea de referencia Si Delta se encuentra entre -3 y +3 entonces se aplica un código denominado Vertical. 3 0000010 2 000010 1 010 -1 011 -2 000011 -3 0000011

Procedimiento de codificación con respecto a la línea de referencia Si Delta está fuera de los límites anteriores entonces se aplica: Bien el código de Paso  0001 Bien el código Horizontal  001

Ejemplo código vertical b1 b2 b0 Línea de referencia 00000000011111111111000000001111 00000000111111111111100000000011 Línea a codificar a0 a1 a2 b1 es el primer píxel que cambia a un valor 1, b2 es el siguiente píxel que cambia a 0. a0 es el primer píxel de la línea a codificar, a1 es el primer píxel que cambia a 1, a2 el siguiente píxel que cambia a 0. Delta = b1 – a1 = 10 – 9 = 1 Código a emplear: 010

Ejemplo código de Paso b1 b2 Línea de referencia 00000000111100000000001111111 00000000000000111111100000000 Línea a codificar a1 a2 La línea a codificar posee un primer píxel de cambio a1 a la derecha de b1 y fuera del intervalo vertical (-3, +3) y no se puede aplicar dicho código. Esto significa que a1 ha pasado a b1 y entonces se aplica el código de paso 0001. A continuación se efectúa el desplazamiento del puntero b1 a la siguiente posición b2 y se compara de nuevo con a1.

Ejemplo código Horizontal Se aplica cuando no se pueden usar ni el código Vertical ni el de Paso. Cuando Delta es superior a +4. Este código se utiliza conjuntamente con el código RLE para el grupo 3 1D. 001 + código makeup + código terminación

Compresión JPEG

Comisión estandarización Comenzó sus trabajos en junio de 1982. En junio de 1987 se presentaron diez técnicas diferentes para imágenes estáticas de color y escalas de grises. El análisis de las técnicas llevó a la conclusión de utilizar la transformada DCT. En 1992 JPEG fue reconocido por la ISO como estándar.

Requerimientos que cumple JPEG Es independiente del tamaño de las imágenes. Es aplicable a cualquier imagen y razón de aspecto. La representación de color es independiente de implementaciones especiales. El contenido de una imagen puede ser de cualquier complejidad, con cualquier característica estadística. Debe funcionar sobre la mayoría de los procesadores estándar. Es posible la codificación línea a línea.

Fases en la compresión JPEG Preparación de la imagen. Procesamiento de la imagen. Cuantización. Codificación de entropía.

Preparación de la imagen I Una imagen fuente puede consistir de al menos 1 y como máximo 255 componentes o planos. muestras * * * * * * * * * * * * * * * * * * * * * * * * CN Y C2 C1 X

Preparación de la imagen II Cada componente de Ci puede tener diferente número de píxeles en los ejes horizontal (Xi) y vertical (Yi). Estos componentes pueden asignarse a los tres colores RGB o a las señales YUV por ejemplo.

Preparación de la imagen III La resolución de los componentes individuales Ci puede ser: Igual X1 = X2 = X3 y Y1 = Y2 = Y3, por ejemplo en la representación RGB. Distinta X1 = 4X2 = 4X3 y Y1 = 4Y2 = 4Y3, por ejemplo en el caso de la representación YUV. Cada píxel está representado por p bits con valores en el rango 0 a 2p-1.

Preparación de la imagen IV Todos los píxeles de todos los componentes dentro una misma imagen están codificados por el mismo número de bits. En el modo JPEG con pérdidas la precisión es de 8 o 12 bits por píxel. En el modo JPEG sin pérdidas la precisión es de 2 a 12 bits.

Preparación de la imagen V Las dimensiones de la imagen comprimida están definidas por nuevos valores: X el máximo de todas las Xi Y el máximo de todas las Yi Hi y Vi valores relativos de las razones de muestreo horizontal y vertical para cada componente i. Los valores Hi y Vi son enteros en el rango 1-4.

Preparación de la imagen VI Consideremos una imagen con una resolución máxima horizontal y vertical de 512 píxeles y los siguientes factores de muestreo: Nivel 0: H0 = 4, V0 = 1 Nivel 1: H1 = 2, V2 = 2 Nivel 2: H2 = 1, V2 = 1 Si asumimos X = 512, Y = 512, Hmax = 4 y Vmax = 2 El resultado sería: Nivel 0: X0 = 512, Y0 = 256 Nivel 1: X1 = 256, Y1 = 512 Nivel 2: X2 = 128, Y2 = 256

Preparación de la imagen VII Para el proceso de compresión la imagen se divide en unidades de datos: En el modo sin pérdidas utiliza un píxel como unidad de datos. El modo con pérdidas utiliza bloques de 8 x 8 píxeles. Esto es debido a que la DCT utiliza bloques conectados.

Preparación de la imagen VIII En la mayoría de los casos las unidades de datos se procesan componente a componente. El orden de procesamiento de las unidades de datos es de izquierda a derecha y de arriba abajo. Este procedimiento se denomina ordenación de datos no intercalados. Utilizando este procedimiento el visualizador de imágenes, por ejemplo en RGB presentaría un color después de otro. Sin embargo suele ser mas conveniente utilizar un procedimiento de intercalado.

Preparación de la imagen IX Ejemplo de intercalado

Preparación de la imagen X Las unidades de datos intercaladas de los diferentes componentes se combinan en las denominadas MCU (Minmum Coded Units). Si todos los componentes tienen la misma resolución (Xi x Yi), un MCU consiste en una unidad de dato por cada componente. En este caso el decodificador permite visualizar la imagen MCU tras MCU. Esto permite una presentación correcta del color incluso para imágenes parcialmente descodificadas.

Preparación de la imagen XI En el caso del ejemplo de intercalado, este posee cuatro componentes, los valores de Hi y Vi se dan para cada componente. El primer componente tiene la mayor resolución en ambas dimensiones y el cuarto presenta la menor resolución. Por ejemplo la MCU 1 sería: d100d101d110d111d200d201d300d310d400

Procesamiento de la imagen I Después de la preparación de la imagen, las muestras sin comprimir se agrupan en unidades de datos de 8 x 8 píxeles y se pasan al codificador. El orden de las unidades de datos es definido por las MCU. Cada muestra simple se codifica usando 8 bits.

Procesamiento de la imagen II El primer paso en el procesamiento de la imagen en el modo de línea base es una transformación llevada a cabo mediante DCT. Los píxeles son desplazados en el rango -128, +127. Las unidades de datos formadas por los valores de 8 x 8 píxeles desplazados se definen por Syx (x e y en el rango 0-7)

Procesamiento de la imagen III DCT es similar a la FFT. Mapea los valores desde el dominio del tiempo al dominio de las frecuencias. La DCT ayuda a separar la imagen en partes (o sub-bandas espectrales) de diferente importancia (con respecto a la calidad visual de la imagen). Cada coeficiente puede ser contemplado como una frecuencia bidimensional.

Procesamiento de la imagen IV Dominio espacial Dominio frecuencias

Procesamiento de la imagen V Ecuación general bidimensional (imagen N x M) de la DCT f(i,j) es la intensidad del pixel en la fila i y la columna j F(u,v) es el coeficiente DCT en la fila k1 y la columna k2 en la matriz DCT. Para la mayoría de las imágenes, la mayoría de la energía de la señal reside en las bajas frecuencias; estas aparecen en la esquina superior izquierda de la DCT. Componente DC. La compresión se alcanza puesto que los valores cercanos a la esquina inferior derecha representan las altas frecuencias, y son a menudo suficientemente pequeñas pudiendo ser eliminadas sin ocasionar distorsión. Componentes AC

Procesamiento de la imagen VI Funciones básicas de la DCT

Procesamiento de la imagen VII Comparación entre FFT y DCT

Procesamiento de la imagen VIII 132 136 138 140 144 145 147 155 148 156 143 150 152 154 146 149 153 160 158 157 MATRIZ DE DATOS

Procesamiento de la imagen IX 173 -18 15 -8 23 -9 -14 19 21 -34 24 -10 11 14 7 -4 6 -5 4 3 -1 2 1 -2 -3 5 MATRIZ DESPUÉS DE LA DCT

Comparación de matrices 132 136 138 140 144 145 147 155 148 156 143 150 152 154 146 149 153 160 158 157 173 -18 15 -8 23 -9 -14 19 21 -34 24 -10 11 14 7 -4 6 -5 4 3 -1 2 1 -2 -3 5

Ejemplo DCT Imagen original Transformada DCT

Cuantización I Se lleva a cabo con todos los coeficientes obtenidos tras la DCT y es una transformación con pérdidas. La aplicación JPEG proporciona una tabla con 64 entradas. Cada entrada será usada para la cuantización de uno de los 64 coeficientes dividiendo cada coeficiente por su entrada correspondiente.

Cuantización II 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 MATRIZ COEFICIENTES CUANTIZACIÓN

Cuantización III 43 3 2 1 MATRIZ COEFICENTES DCT DESPUÉS CUANTIZACIÓN

Comparación de matrices 173 -18 15 -8 23 -9 -14 19 21 -34 24 -10 11 14 7 -4 6 -5 4 3 -1 2 1 -2 -3 5 43 3 2 1

Codificación de entropía I Durante el paso inicial de la codificación de entropía, los coeficientes DC cuantizados son tratados separadamente de los coeficientes AC cuantizados. El orden de procesamiento es una secuencia en zigzag.

Codificación de entropía II La codificación mediante entropía puede utilizarse aplicando el código de Huffman mediante una tabla previamente construida. La primera codificación que se efectúa es un RLE de los coeficientes AC que son cero debido al gran número de ellos.

Codificación de entropía III Los coeficientes DC determinan el color básico de las unidades de datos. Entre unidades de datos adyacentes las variaciones de color son pequeñas. Por tanto los coeficientes DC se codifican como las diferencias entre un coeficiente y el anterior, procesándose sólo la diferencia.

Codificación de entropía IV La codificación de Huffman sigue dos pasos: Formar una secuencia intermedia de símbolos. Convertir la secuencia anterior en una secuencia binaria.

Codificación de entropía V Codificación de Huffman del coeficiente DC: Se utilizan dos símbolos: (tamaño) (amplitud) El tamaño (valor en bits del número de bits necesarios para codificar la amplitud) se codifica mediante un código de longitud variable a partir de la tabla de Hufman. La amplitud se codifica mediante un entero de longitud variable. Por ejemplo: (6) (61)  0110 111101

Codificación de entropía VI Codificación Hufman de los coeficientes AC: (runlength, tamaño) (amplitud) Runlength: número de ceros consecutivos antes de un componente AC distinto de 0. Tamaño: número de bits utilizados para codificar la amplitud. Amplitud: valor de los componentes AC distintos de 0.

Codificación de entropía VII Ejemplo de codificación componentes AC: 000000 25 6 AC = 0 1 AC = 25 (6, 9) (25) Si runlength > 15 el símbolo es (15, 0) que indica 16 ceros. Por ejemplo (15, 0) (7, 4) (12) indica que delante del número 12 hay 23 ceros (16 + 7)

Codificación de entropía VIII 61 -3 2 -1 4 -4 -2 1 MATRIZ DESPUÉS DE CUANTIZACIÓN Secuencia zig-zag 61,-3,4,-1,-4,2,0,2,-,0,0,0,0,2,0,0,0,1,0,0,0,0, 0,0,-1,0,0,-1,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,0,0,0,0,0,0,0

Codificación de entropía IX Secuencia zig-zag 61,-3,4,-1,-4,2,0,2,-,0,0,0,0,2,0,0,0,1,0,0,0,0, 0,0,-1,0,0,-1,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,0,0,0,0,0,0,0 Secuencia de símbolos intermedios (6)(61),(0,2)(-3),(0,3)(4),(0,1)(-1),(0,3)(-4), (0,2)(2),(1,2)(2),(0,2)(-2),(0,2)(-2),(5,2)(2), (3,1)(1),(6,1)(-1),(2,1)(-1),(4,1)(-1),(7,1)(-1), (0,0) El símbolo (0,0) indica que el resto de componentes AC=0

Codificación de entropía X Secuencia de símbolos intermedios (6)(61),(0,2)(-3),(0,3)(4),(0,1)(-1),(0,3)(-4), (0,2)(2),(1,2)(2),(0,2)(-2),(0,2)(-2),(5,2)(2), (3,1)(1),(6,1)(-1),(2,1)(-1),(4,1)(-1),(7,1)(-1), (0,0) Secuencia de bits definitiva 1110111101001001000001100011011011011100101111111101111011101011111011011100011101101111101001010 La secuencia final 1010 significa EOB (End Of Block)

Codificación de entropía XI CODIFICACIÓN COEFICIENTES DC Longitud en bits BCD Codificación DC 0000 1 0001 -1, 1 2 0010 -3, -2, 2, 3 3 0011 -7..-4, 4..7 4 0100 -15..-8, 8..15 5 0101 -31..-16, 16..31 6 0110 -63..-32, 32..63 7 0111 -127..-64, 64..127 8 1000 -255..-128, 128..255 9 1001 -511..-256, 256..511

Codificación de entropía XI CÓDIGOS HUFFMAN COEFICIENTES AC (RUNLENGTH, TAMAÑO) CÓDIGO (0,0) EOB 1010 (0,1) 00 (0,2) 01 (0,3) 100 (1,2) 11011 (2,1) 11100 (3,1) 111010 (4,1) 111011 (5,2) 11111110111 (6,1) 1111011 (7,1) 11111010

Codificación de entropía XII CODIFICACIÓN DE AMPLITUD AMPLITUD CÓDIGO -4 011 -3 00 -2 01 -1 1 2 10 3 11 4 100