La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Compresión de imágenes

Presentaciones similares


Presentación del tema: "Compresión de imágenes"— Transcripción de la presentación:

1 Compresión de imágenes

2 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.

3 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.

4 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.

5 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

6 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.

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

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.

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

10 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 =

11 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.

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

13 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

14 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.

15 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.

16 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 líneas de píxeles, en este caso la diferencia entre unas y otras será sólo la de los contornos.

17 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)

18 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 2 000010 1 010 -1 011 -2 000011 -3

19 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

20 Ejemplo código vertical
b1 b2 b0 Línea de referencia 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

21 Ejemplo código de Paso b1 b2 Línea de referencia 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.

22 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

23 Compresión JPEG

24 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.

25 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.

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

27 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

28 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.

29 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.

30 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.

31 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.

32 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

33 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.

34 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.

35 Preparación de la imagen IX
Ejemplo de intercalado

36 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.

37 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

38 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.

39 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 , +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)

40 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.

41 Procesamiento de la imagen IV
Dominio espacial Dominio frecuencias

42 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

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

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

45 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

46 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

47 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

48 Ejemplo DCT Imagen original Transformada DCT

49 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.

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

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

52 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

53 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.

54 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.

55 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.

56 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.

57 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) 

58 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.

59 Codificación de entropía VII
Ejemplo de codificación componentes AC: 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)

60 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

61 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

62 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 La secuencia final 1010 significa EOB (End Of Block)

63 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 , 8..15 5 0101 , 6 0110 , 7 0111 , 8 1000 , 9 1001 ,

64 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) (6,1) (7,1)

65 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


Descargar ppt "Compresión de imágenes"

Presentaciones similares


Anuncios Google