-
Departamento de Electrnica y Electromagnetismo
Diseo de Circuitos para Tratamiento de Imgenes
Aplicando Tcnicas Basadas en Soft Computing
Tesis Doctoral
Nashaat Mohamed Hussein Hassan
Tutor:
ngel Barriga Barros
Sevilla de 2009
-
Departamento de Electrnica y Electromagnetismo
Diseo de Circuitos para Tratamiento de Imgenes
Aplicando Tcnicas Basadas en Soft Computing
Memoria presentada por
Nashaat Mohamed Hussein Hassan
Para obtener el grado de Doctor
Director:
Dr. ngel Barriga Barros
Catedrtico de Universidad
Dpto. Electrnica y Electromagnetismo
Departamento de Electrnica y Electromagnetismo
Universidad de Sevilla
-
Agradecimientos
En el desarrollo de este trabajo quiero agradecer la colaboracin y ayuda de todas
las personas que han contribuido ya sea a travs de la discusin o bien proporcionando
las facilidades que me han permitido llevarlo a cabo. En primer lugar quiero agradecer a
mi profesor, mi tutor y amigo ngel Barriga Barros. Inicialmente ngel me dio la
oportunidad de empezar esta historia y despus ha sido entusiasta y me ha apoyado
durante todos estos aos. Debo dar un agradecimiento a Iluminada y Santiago que
tambin me han estado apoyando durante todo el tiempo. Agradecimientos especiales a
Federico, Gashaw y Piedad. Debo dar un especial agradecimiento a la familia que
conforma el Instituto de Microelectrnica de Sevilla del CSIC y al Departamento de
Electrnica y Electromagnetismo de la Universidad de Sevilla. En especial a la Unidad
Tcnica del IMSE y al personal de Secretara y Administracin.
Tambin quiero agradecer el apoyo de varias instituciones con cuya financiacin se
ha posibilitado este trabajo. La investigacin presentada aqu ha sido soportada en parte
por una beca de doctorado de la Agencia Espaola de Cooperacin Internacional
(AECI), el proyecto TEC2005-04359/MIC del Ministerio Espaola de Educacin y
Ciencia y el Gobierno Regional de Andaluca en virtud de conceder el proyecto de
excelencia TIC2006-635.
Finalmente, quiero agradecer el apoyo de mi familia, mi esposa Marwa, mi madre,
mi hermano Refaei, mi hermano Refat, mi hermano Hussein, mi hermana Amal y a toda
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
vi
la familia. Tambin quiero agradecer el apoyo de la familia de mi esposa, su madre
Nadia, su padre Madany, sus hermanos Ahmad, Mohamed, Omar y Zeyad y a sus
hermanas Walaa y Esraa. Y a la familia de mi profesor Margarita y a sus hijos Carlos y
Margarita.
-
Prefacio
La Tesis que se presenta se enmarca en el campo de aplicacin del desarrollo de
sistemas para el procesado de imgenes. Dentro de esta rea se pretende dar soluciones
a algunos de los problemas que aparecen a la hora de realizar el tratamiento de bajo
nivel de imgenes en sistemas que presentan restricciones tanto de coste como de
velocidad de operacin. La Tesis pretende abordar cuatro aspectos relacionados con el
procesado de imgenes: la compresin de imgenes, la mejora del contraste, la
segmentacin y la deteccin de bordes. El desarrollo de los algoritmos de tratamiento de
imgenes se afronta desde una perspectiva especfica mediante tcnicas basadas en soft
computing. Esta perspectiva permitir desarrollar estrategias que cumplan con los
requisitos impuestos y den lugar a circuitos eficientes.
El primero de los aspectos que se abordan en esta Tesis corresponde a la
compresin de imgenes. La necesidad de realizar la compresin proviene de la
limitacin del ancho de banda en los medios de comunicacin as como la necesidad de
reducir el espacio de almacenamiento. Las tcnicas de compresin de imgenes
permiten eliminar la redundancia en la imagen con objeto de reducir la informacin que
es necesario almacenar o transmitir. A la hora de considerar los algoritmos de
compresin se considerarn tanto el caso de compresin sin prdidas y el caso de
compresin con prdidas.
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
viii
El segundo aspecto que se trata en esta Tesis es el control del contraste.
Bsicamente el contraste de imgenes puede ser definido como el cambio de la relacin
de luminancia de los elementos de una imagen. Cuando la variacin en la luminancia es
baja entonces la imagen tiene poco contraste. El control del contraste de imgenes es
una operacin necesaria en determinadas aplicaciones de procesamiento de imgenes.
As, por ejemplo, la mejora del contraste permite distinguir objetos en la imagen que no
son distinguibles cuando se produce prdida de contraste.
El tercer y el cuarto aspecto considerados en esta Tesis corresponden a la
segmentacin de imgenes y la deteccin de bordes. Los algoritmos de segmentacin y
de deteccin de bordes permiten extraer informacin de las imgenes y reducir los
requerimientos necesarios para el almacenamiento de la informacin. Por otro lado los
mecanismos de extraccin de bordes se implementan mediante la ejecucin de la
correspondiente realizacin software sobre un procesador. Sin embargo en aplicaciones
que demanden restricciones en los tiempos de respuesta (aplicaciones en tiempo real) se
requiere de implementaciones especficas en hardware. El principal inconveniente de las
tcnicas de deteccin de bordes para su realizacin hardware es la alta complejidad de
los algoritmos existentes. Por este motivo se afronta el desarrollo de una tcnica que
ofrezca resultados adecuados para la deteccin de bordes en imgenes y
simultneamente permite realizar implementaciones hardware de bajo coste y alta
velocidad de procesado.
Esta Tesis se ha organizado en cinco captulos. El primer captulo cubre definiciones
y conceptos bsicos de imgenes digitales. El segundo captulo trata de la compresin
de imgenes. Se describen algunas mostrando las tcnicas de compresin y se proponen
e implementan nuevas estrategias. El captulo 3 se centra en el control del contraste. El
cuarto captulo trata la segmentacin de imgenes. En este caso nos centramos en la
segmentacin binaria basada en aplicar un valor umbral. Finalmente en el captulo
quinto se considera el problema de la deteccin de bordes
-
ndice
Lista de tablas...xiii
Lista de figuras..xv
Captulo 1. Conceptos bsicos1 1.1. Representacin digital de imgenes....2
1.2. Fundamentos y transformaciones de colores.....7 1.2.1. Imgenes monocromticas........7 1.2.2. Imgenes en color......9
1.3. Formatos de almacenamiento de imgenes digitales...15 1.3.1. Formato BMP......................................................................15
1.3.2. Formato GIF17
1.3.3. Formato PNG...18
1.3.4. Formato JPEG.19
1.3.5. Formato TIFF..20
1.4. Histograma de la imagen...21
1.5. Aplicacin del Soft Computing en el procesado de
Imgenes..24
1.6. Resumen..25
Captulo 2. Compresin de imgenes..27
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
x
2.1. Medida de calidad en compresin de imgenes...29
2.2. Run-Length Encoding (RLE)31
2.3. Codificacin estadstica: Codificacin de Huffuman..32
2.4. Comprensin basada en transformada: JPEG36
2.5. Muestreo uniforme41
2.6. Algoritmos de eliminacin de redundancia.43 2.6.1. Aproximacin por programacin dinmica..45
2.6.2. Algoritmo geomtrico.46
2.7. Algoritmos propuestos....49 2.7.1. Modificacin del algoritmo geomtrico.49
2.7.2. Particionado del histograma y codificacin..57
2.8. Diseo e implementacin hardware de los algoritmos
de compresin propuestos..66 2.8.1. Diseo del circuito de compresin de los algoritmos Geomtricos..67
2.8.2. Diseo del circuito de descompresin de los algoritmos
Geomtricos..72
2.8.3. Circuito de compresin/descompresin de los algoritmos
Geomtricos..76
2.8.4. Diseo del circuito de compresin del algoritmo de
particionado del histograma y codificacin...77
2.9. Resumen...80
Captulo 3. Control del contraste en imgenes...83 3.1. Tcnicas de control del contraste en imgenes85
3.2. lgebra de ukasiewicz.93
3.3. Control del contraste mediante operadores de
ukasiewicz.95
3.4. Diseo de los operadores bsicos de ukasiewicz109 3.4.1. Realizaciones basadas en redes neuronales.109
3.4.2. Realizaciones basadas en lgica combinacional..112
-
ndice
xi
3.4.3. Resultados de implementacin.114
3.5. Control de contraste aplicando lgica difusa.116
3.6. Aplicacin de la lgica de Lukasiewicz a la
aproximacin de funciones lineales a tramos.128 3.6.1. Funciones de una variable.129 3.6.2. Funciones de ms variables...134
3.6.3. Comparacin entre tcnicas de realizacin..135
3.7. Resumen137
Captulo 4. Segmentacin de imgenes..139
4.1. Segmentacin de imgenes..140 4.1.1. Segmentacin por discontinuidades.140
4.2.1. Segmentacin por similitud..141
4.2. Mtodos de umbralizacion...143 4.2.1. Mtodo basado en la frecuencia de nivel de gris.145
4.2.2. Mtodo de Otsu..146
4.2.3. Mtodos basados en lgica difusa.149
4.3. Clculo del umbral mediante lgica difusa150
4.4. Diseo del circuito para el clculo del umbral..154
4.5. Resumen164
Captulo 5. Deteccin de bordes.165
5.1. Algoritmos para la deteccin de bordes en imgenes
...166 5.1.1 Mtodos basados en gradiente...166
5.1.2 Mtodos basados en Laplaciana171
5.2. Descripcin de la tcnica de deteccin de bordes
Propuesta...172 5.2.1 Etapa de filtrado.173 5.2.2 Etapa de umbralizacon y deteccin de bordes176
5.3. Anlisis de calidad...178
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
xii
5.4. Diseo del sistema de deteccin de bordes.180
5.5. Resumen187
Conclusiones189
Apndice A...193
Apndice B...197
Apndice C...201
Apndice D...219
Bibliografa...223
-
Lista de tablas
1.1. Ejemplos de generacin de colores RGB.9
1.2. Profundidad de color en el formato PNG..19
1.3. Ejemplo de distribucin de los niveles de gris de una imagen de 64x64 y 8
niveles de intensidad...............................22
2.1. Configuraciones del circuito de compresin de imgenes...67
2.2. Coste de las implementaciones en trminos de slices ocupados..77
2.3. Tiempo de compresin y descompresin de imgenes (en seg) para una
frecuencia de 100 MHz.79
3.1. Recursos consumidos..115
3.2. Retraso mximo..115
3.3. Coste en slices de las realizaciones sobre FPGA de las funciones f1(x) y
f2(x)...............136
3.4. Retraso mximo (en nseg.) en las realizaciones sobre FPGA de las Funciones f1(x) y f2(x).136
4.1. Umbrales obtenidos al aplicar los mtodos de Otsu, frecuencia de gris y la
tcnica propuesta................162
5.1. Pxeles activos que toman el valor de los bordes y el porcentaje respecto a la
imagen total...179
5.2. Porcentaje de pxeles que coinciden con el obtenido por Canny.180
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
xiv
-
Lista de figuras
1.1. Formacin de una imagen [EDWA99]..3
1.2. Generacin de una imagen digital, a) la imagen continua, b) una lnea de
barrido de A a B en la imagen continua, c) muestreo, d)
cuantizacin.4
1.3. Efecto de reducir la resolucin espacial NxM..6
1.4. Efecto de variar el nmero de niveles de intensidad...7
1.5. Operaciones de combinacin de imgenes binarias (a y b). (c) BA ; (d)
BA ; (e) BA ; (f) A ...8
1.6. Representacin de imgenes en color RGB10
1.7. Transformacin RGB a HSL...11
1.8. Representacin tridimensional de los espacios bsicos de color de un
dispositivo aditivo (RGB) o sustractivo (CMY).14
1.9. Estructura de archivos de mapa de bits.16
1.10. Imagen BMP con paleta de 4 bits (16 colores)...17
1.11. Imagen comprimida JPEG a) mxima calidad b) mnima calidad..20
1.12. Histograma del ejemplo de la imagen descrita en la tabla 1.3.22
1.13. Ejemplos de imgenes con sus histogramas...23
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
xvi
2.1. Etapas de un sistema de compresin de imgenes.29
2.2. Etapas del proceso de a) compresin JPEG, b) descompresin...38
2.3. (a) Muestreo uniforme (k=2), (b) descompresin para k=3..42
2.4. Ejemplo de compresin y descompresin aplicando muestreo uniforme:
(a) imagen soccer original de 64x64 pixels, (b) imagen comprimida con
razn de muestreo k=2, (c) imagen descomprimida.43
2.5. Error de tnel de la funcin F con error .................................................44
2.6. Aplicacin de programacin dinmica...45
2.7. Esquema de compresin...46
2.8. Pseudocdigo del algoritmo de compresin...47
2.9. Pseudocdigo del algoritmo de descompresin..47
2.10. Clculo de tangentes en el algoritmo geomtrico..48
2.11. Ejemplo del algoritmo propuesto50
2.12. a) Imagen soccer de 64x64, b) imagen Lena de 128x128, c) imagen
Cameraman de 128x 128..52
2.13. Comparacin de algoritmos: razn de compresin...53
2.14. Comparacin de algoritmos: RMSE...55
2.15. Comparacin de algoritmos para un RMSE prefijado.56
2.16. Funciones de pertenencia distribuidas en el universo de discurso de la
variable que representa el color de un pxel...57
2.17. Representacin exacta del universo de discurso58
2.18. Ejemplo de codificacin de la imagen.59
2.19. Esquema de codificacin..60
2.20. Resultados de la razn de compresin61
2.21. Resultados del valor de RMSE62
2.22. Comparacin de los algoritmos de compresin en funcin de la razn de
compresin64
2.23. Comparacin de los algoritmos de compresin en funcin del RMSE65
2.24 Circuito bsico comn de los algoritmos geomtricos de comprensin...68
2.25. Circuito del algoritmo geomtrico de comprensin AG1.69
2.26. Carta ASM del algoritmo geomtrico de comprensin AG170
2.27. Circuito del algoritmo geomtrico de comprensin AG2.70
2.28. Circuito del algoritmo geomtrico de comprensin AG3.71
-
Lista de figuras.
xvii
2.29. Esquemtico del circuito de compresin72
2.30. Smbolo del circuito de descompresin del algoritmo AG2..73
2.31. Descripcin algortmica VHDL de la FSM del algoritmo de
descompresin AG3..74
2.32. Esquemtico del circuito de descompresin AG3..75
2.33. Esquema de bloques del circuito de descompresin..76
2.34. Smbolo del circuito de cuantizacin..76
2.35. Esquema del sistema de compresin/descompresin78
2.36. Esquemtico del circuito de compresin78
2.37. Algoritmo de compresin.79
3.1. Transformacin lineal..87
3.2. Transformacin de tramos lineales.88
3.3. Diagrama de bloques del circuito de control del contraste de [CHO00].89
3.4. CDF y su aproximacin lineal a tramos (a) de una imagen oscura, (b) de
una imagen clara..90
3.5. Diagrama de bloques del mtodo de [KIM99]...90
3.6 Transformacin gaussiana92
3.7. Representacin grfica de los operadores de ukasiewicz...94
3.8. a) Imagen original y su histograma, b) imagen resultante de aplicar la
suma acotada y su histograma.96
3.9. a) Imagen original (356x292), b) yx , c) 20 yx , d) 40 yx ..97
3.10. a) Imagen Mesi (120x89), b) yx , c) 20 yx , d) 40 yx ...98
3.11. a) Imagen Dibujo8 (119x80), b) yx , c) 20 yx , d) 40 yx ...99
3.12. Imagen con distintos valores de control de contraste para la suma
acotada y los histogramas..100
3.13. a) Imagen original y su histograma, b) imagen resultante de aplicar el
producto acotado y su histograma100
3.14. Imagen con distintos valores de control de contraste para el producto
acotado y los histogramas..101
3.15. Imagen con distintos valores de control de contraste para el producto
acotado y los histogramas102
3.16. Imagen con distintos valores de control de contraste para el producto
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
xviii
acotado y los histogramas...102
3.17. Imagen con distintos valores de control de contraste para el producto
acotado y los histogramas..103
3.18. a) Imagen original; suma acotada para mascara de b) 1x2 pxeles, c) 2x2
pxeles y d) 1x2+40 pxeles, e) 2x2+40 pxeles.104
3.19. Variacin del contraste aplicando la suma acotada a mscaras de 2
pixeles y de 2x2 pixeles con diferentes valores del control C (0, 30 y -30).
..105
3.20. El sistema difuso del sistema de toma decisiones en el control de
contraste..106
3.21. Resultados de aplicar control de contraste: a) imagen original, b) sistema
basado en la figura 3.20, c) sistema que incluye de regla (1), d) sistema
que incluye la regla (2)...108
3.22. a) Entidad de una neurona. b) Funcin de activacin de la neurona109
3.23. Esquemtico del circuito de una neurona de dos entradas.110
3.24. Operadores min(x,y) y max(x,y) realizados mediante redes neuronales.
..110
3.25. Superficies correspondientes a los operadores (a) min(x,y) y (b) max(x,y).
.111
3.26. a) Circuito mximo, b) circuito mnimo...111
3.27. Esquema de bloques del operador mnimo..113
3.28. Circuito producto acotado.113
3.29. Circuito optimizado del producto acotado...113
3.30. Circuito suma acotada114
3.31. Sistema para el control de contraste con 3 funciones de pertenencia para
los antecedentes, 5 para el consecuente y 9 reglas...117
3.32. Sistema para el control de contraste con 5 funciones de pertenencia para
los antecedentes, 9 para el consecuente y 25 reglas.118
3.33. Superficies correspondientes a la funcin de control de contraste para el
caso de a) 3 funciones de pertenencia en los antecedentes, b) 5 funciones
de pertenencia.118
3.34. a) Imagen original, b) yx , c) ),(3 yxfyx MF , d) ),(5 yxfyx MF .
119
-
Lista de figuras.
xix
3.35. a) Imagen original, b) yx , c) ),(3 yxfyx MF , d)
),(5 yxfyx MF ..120
3.36. a) Imagen original, b) yx , c) ),(3 yxfyx MF , d)
),(5 yxfyx MF .121
3.37. Sistema para el control de contraste con 3 funciones de pertenencia para
os antecedentes, 5 para el consecuente y 9 reglas...122
3.38. a) Caso de f(x,y) en el rango [-127,0], b) caso de f(x,y) en el rango
[-63,64]123
3.39. Sistema para el control de contraste con 3 funciones de pertenencia para
los antecedentes, 5 para el consecuente y 9 reglas...124
3.40. Sistema para el control de contraste con 5 funciones de pertenencia para
los antecedentes, 9 para el consecuente y 25 reglas124
3.41. a) Imagen original, b) yx , c) ),(3 yxfyx MF , d) ),(5 yxfyx MF .
.125
3.42. a) Caso de f(x,y) en el rango [-127,0], b) caso de f(x,y) en el rango
[-63,64]126
3.43. Esquema del sistema de control de contraste...127
3.44. a) Imagen original, b) yx , c) sistema de control difuso de la figura
3.43...128
3.45. Ejemplo de funcin lineal a tramos...130
3.46. Descripcin funcional VHDL de la funcin f1(x).....................................132
3.47. Funcin VHDL para el producto acotado132
3.48. Realizaciones de la funcin f1(x) basada en (a) red neuronal, (b)
operadores de ukasiewicz133
3.49. Superficie correspondiente a la funcin f2(x)...134
3.50. Realizacin de f2(x) mediante (a) una red neuronal, (b) operadores de
ukasiewicz basados en lgica combinacional.135
4.1. Ejemplo del algoritmo de segmentacin por regiones.142
4.2. Clasificacin en 3 grupos de los pixeles de una imagen...143
4.3. a) Imagen de Lena, b) imagen binaria con T=0.5144
4.4. Histograma de la imagen de Lena.146
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
xx
4.5. Funciones de pertenencia para N=9, a) antecedente, b) consecuente151
4.6. Base de reglas para N=9.152
4.7. Clculo del umbral en Matlab153
4.8. Arquitectura VHDL de la base de conocimiento..155
4.9. Paquete VHDL con las definiciones de los tipos de datos y de las
funciones......156
4.10. a) Smbolo del sistema de generacin del umbral, b) Mdulo de
Inferencia fuzzy (FIM) y divisor, c) bloque FIM con el motor de
Inferencia difuso y circuito acumulador..157
4.11. Sistema de test basado en una placa de desarrollo Spartan3-Starter
Board158
4.12. Sistema de test del circuito de clculo del umbral...159
4.13. a) Inicio de la operacin del sistema con la lectura de la imagen de
memoria, b) Generacin del resultado final con la divisin. c)
Representacin de la salida en los displays 7-segmentos160
4.14. Resultados de implementacin a) del circuito de generacin del umbral,
b) del sistema de test...161
4.15. a) Ejemplos de imgenes b) mtodo de Otsu, c) frecuencia de nivel de
gris, d) tcnica propuesta...163
5.1. Aplicacin del mtodo de Canny a la imagen de Lena169
5.2. Aplicacin del mtodo de Roberts a la imagen de Lena.169
5.3. Aplicacin del mtodo de Sobel a la imagen de Lena..170
5.4. Aplicacin del mtodo de Prewitt a la imagen de Lena..171
5.5. Aplicacin del mtodo zero-cross a la imagen de Lena...172
5.6. Diagrama de flujo para la deteccin de bordes...172
5.7. a) Imagen con ruido salt&peppers, filtrado b) mximo, c) mnimo173
5.8. Aplicacin del filtrado de Kuwahara a un bloque de 3x3 pxeles. 175
5.9. a) Imagen con ruido salt&peppers, b) salida del filtro Kuwahara..175
5.10. a) Imagen de entrada con ruido del tipo salt&peppers, b) salida del filtro
basado en la suma acotada de Lukasiewicz.176
5.11. Mscara 3x3 para la deteccin de bordes....177
5.12. (a) Imagen binaria de Lena, (b) deteccin de bordes..177
5.13. Orientaciones para la generacin de los bordes..178
5.14. Diagrama de boques del sistema de deteccin de bordes181
-
Lista de figuras.
xxi
5.15. Pseudocdigo del algoritmo de deteccin de bordes181
5.16. Esquema para el procesado de un pxel181
5.17. Diagrama de bloques de la arquitectura 8x3...183
5.18. Esquema de una unidad funcional (FU)...184
5.19. a) Filtro Lukasiewicz, b) lgica de umbralizacin, c) circuito de deteccin
de bordes..184
5.20. FSM de la unidad de control del sistema..185
5.21. Cronograma de la operacin del circuito.186
5.22. Resultados de implementacin sobre FPGA186
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
xxii
-
Captulo 1
Conceptos bsicos
Las imgenes desempean un importante papel en nuestra sociedad como un medio
de comunicacin. La mayora de los medios de comunicacin (por ejemplo, peridicos,
televisin, cine, etc) utilizan las imgenes (fijas o en movimiento) como portadores de
informacin. El enorme volumen de informacin ptica y la necesidad de su tratamiento
y transmisin han dado lugar a la necesidad de sistemas especficos de procesamiento
de imgenes. El problema de la transmisin de imgenes constituye uno de los campos
ms fecundos en cuanto a aportes de resultados y propuestas [WILL79] [JOSE04].
Precisamente una de las aplicaciones iniciales de sta categora de tcnicas de
tratamiento de imgenes consisti en mejorar las fotografas digitalizadas de peridicos
enviadas por cable submarino entre Londres y Nueva York. La introduccin del sistema
Bartlane de transmisin de imgenes por cable a principios de la dcada de 1920 redujo
el tiempo necesario para enviar una fotografa a travs del Atlntico de ms de una
semana a menos de tres horas. Un equipo especializado de impresin codificaba las
imgenes para transmisin por cable y luego las reconstrua en el extremo de recepcin.
Otra de las lneas de inters desde los primeros momentos correspondi a la mejora de
la calidad visual de estas primeras imgenes digitales. Este aspecto estaba relacionado
con la seleccin de procedimientos de impresin y la distribucin de niveles de brillo.
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
2
Los esfuerzos iniciados en torno a 1964 en el laboratorio de Jet Propulsion
(Pasadena, California) se refera al procesamiento digital de imgenes de la luna
procedentes de satlite. A raz de estos trabajos surgi una nueva rama de la ciencia
denominada procesamiento digital de imgenes. Desde entonces dicha rama del
conocimiento ha mostrado un enorme crecimiento y ha generado un importante impacto
tecnolgico en varias reas como, por ejemplo, en las telecomunicaciones, la televisin,
la medicina y la investigacin cientfica. El procesamiento digital de imgenes se refiere
a la transformacin de una imagen a un formato digital y su procesamiento por
computadoras o sistemas digitales. Tanto la entrada y salida del sistema de
procesamiento digital de imgenes son imgenes digitales [JAHN05]. El anlisis de la
imagen digital est relacionado con la descripcin y el reconocimiento de los contenidos
digitales [CHEN99]. En este caso la entrada del sistema de procesado es una imagen
digital y el resultado que se genera tras el procesado es una descripcin simblica de la
imagen. Algunos trabajos de investigacin en esta rea se pueden consultar en
[GONZ87, GONZ02, GONZ07, YOUN98, RUSS95, AZRI82, PITA00].
En este captulo presentamos una introduccin general de algunos conceptos bsicos
sobre las imgenes digitales que sern utilizados en este trabajo de tesis. Finalmente,
vamos a realizar una breve discusin sobre el papel de la aplicacin del Soft Computing
en el procesamiento de imgenes.
1.1. Representacin digital de imgenes
Una imagen es una distribucin de la energa luminosa como una funcin de la
posicin espacial. La figura 1.1 ilustra la formacin de una imagen. Una fuente de luz
(en este ejemplo corresponde al Sol) emite la energa luminosa que incide en un objeto.
La energa luminosa puede sufrir diversas transformaciones al incidir en un objeto, tal
como ser absorbida por el objeto, ser transmitida a travs del objeto y/o reflejarse en el
objeto.
-
Captulo 1. Conceptos bsicos
3
Figura 1.1. Formacin de una imagen [EDWA99].
En la figura 1.1 se muestra cmo la luz radiante del Sol se refleja en la superficie
del jugador del bisbol y a continuacin es capturada por la cmara y transmitida a
travs de un medio de transmisin a un receptor de televisin. La imagen formada en la
cmara se puede expresar matemticamente como
),(*),(),( yxryxiyxf =
La ecuacin anterior expresa el modelo de la imagen en la cmara en funcin de la
iluminacin de luz ),( yxi y la reflexin del objeto ),( yxr . La funcin ),( yxr vara
entre 1 y 0. La funcin ),( yxf describe la energa luminosa de la imagen con respecto
a las coordenadas espaciales x e y. As pues una imagen es una distribucin espacial de
la energa luminosa ),( yxf . Dicha funcin slo puede tomar valores reales positivos
[DATE01]. El procesado digital de imgenes requiere transformar la funcin continua
que representa la imagen en una funcin discreta.
La idea bsica del muestreo y la cuantizacin se ilustra en la figura 1.2 [GONZ07].
La figura 1.2a muestra una imagen f(x,y) continua respecto a las coordenadas x e y as
como respecto al valor de la funcin o amplitud.
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
4
a) b)
c) d) Figura 1.2. Generacin de una imagen digital, a) la imagen continua, b) una lnea de
barrido de A a B en la imagen continua, c) muestreo, d) cuantizacin.
La digitalizacin de los valores de las coordenadas se denomina muestreo. La
digitalizacin de los valores de la amplitud corresponde a la cuantizacin o conversin
analgico/digital [GONZ07]. La funcin unidimensional de la figura 1.2b corresponde a
los niveles de intensidad o amplitud de la imagen continua a lo largo del segmento AB
en la figura 1.2a. En dicha figura aparece una variacin aleatoria de los valores de la
funcin debido al ruido. La figura 1.2c ilustra el muestreo de la funcin unidimensional.
Para ello se toman valores equi-espaciados a lo largo de la lnea AB. La ubicacin
espacial de cada muestra se indica mediante una marca vertical en la parte inferior de la
figura. Las muestras se presentan como pequeos cuadrados blancos superpuestos en la
funcin. Si bien el muestreo permite discretizar el nmero de valores de la funcin el
valor (amplitud) es continuo. La cuantizacin o discretizacion de la amplitud permite
disponer de la funcin digital que representa la imagen (figura 1.2d). El proceso de
cuantizacin da lugar a una prdida de informacin que se conoce como error de
cuantizacin o ruido de cuantizacin [WHIT05].
Una imagen digital es una funcin bidimensional ),( yxf que se representa
mediante la siguiente matriz:
-
Captulo 1. Conceptos bsicos
5
=
)1,1(....)0,1(...
)1,1(....)1,1()0,1()1,0(....)1,0()0,0(
),(
NMfMf
NfffNfff
yxf
donde M es el nmero de filas o valores discretos de la variable x y N es el nmero
de columnas o valores discretos de la variable y. El proceso de digitalizacin requiere
tomar decisiones respecto a los valores de muestreo y cuantizacin (N, M y L para el
nmero de niveles discretos de intensidad). Debido a requerimientos de procesado y
almacenamiento el nmero de niveles de intensidad normalmente es una potencia de 2:
kL 2=
donde k es el numero de bits en cada elemento de la matriz (nmero de bits para
codificar el nivel de intesidad). El nmero de bits (B) necesarios para almacenar una
imagen digitalizada NxM viene dado por
kxMxNB =
La expresin anterior contiene los parmetros que definen la resolucin de una
imagen. La resolucin viene dada por el nmero de muestras y niveles de intensidad
necesarios para realizar la aproximacin de la imagen [JAHN05, PITA00, WILL93,
RUSS07]. As el grado de detalle discernible de una imagen depende de los parmetros
que definen su resolucin. La figura 1.3 muestra una imagen digital con diferentes
valores de los parmetros de muestreo (N y M) para un valor fijo del parmetro de
cuantizacin L=256 (k=8).
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
6
1024x1024 512x512
256x256 128x128
64x64 32x32 Figura 1.3. Efecto de reducir la resolucin espacial NxM.
La figura 1.4 muestra el efecto producido por la variacin del nmero de bits usados
para representar los niveles de intensidad en una imagen (L=256, 2, 4, 32
respectivamente). En este caso el tamao de la imagen est fijado al valor NxM=
400x400.
-
Captulo 1. Conceptos bsicos
7
Figura 1.4. Efecto de variar el nmero de niveles de intensidad.
De lo anterior podemos extraer como conclusin que un elemento de una imagen
digital o pxel est representado por bits de informacin. Un pxel es pues una unidad de
informacin pero no una unidad de medida ya que no se corresponde con un tamao
concreto. Un pxel puede ser muy pequeo (0.1 milmetros) o muy grande (1 metro)
[RUSS07].
1.2. Fundamentos y transformaciones de colores
1.2.1. Imgenes monocromticas
Un mecanismo de cuantizacin bsico consiste en representar cada pxel con dos
posibles valores: blanco y negro. En este caso tan slo se requiere 1 bit para representar
el nivel de intensidad. Esta codificacin se realiza comparando la intensidad de cada
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
8
pxel con un valor denominado umbral. El resultado de la cuantizacin es una imagen
binaria.
Las operaciones con imgenes binarias permite aplicar operadores booleanos (and,
or, xor, complemento, etc) para combinar los datos de diferentes imgenes binarias
[RUSS02]. La figura 1.5 muestra algunos ejemplos de combinacin de imgenes
aplicando operadores booleanos pxel a pxel.
Figura 1.5. Operaciones de combinacin de imgenes binarias (a y b).
(c) BA ; (d) BA ; (e) BA ; (f) A
A medida que se aumenta el nmero de bits se pueden representar diferentes niveles
de intensidad. En el caso de imgenes monocromticas el nmero de bits utilizados para
cada uno de los pxeles determina el nmero de los diferentes niveles de brillo
disponibles. Una representacin tpica corresponde a codificar con 8 bits por pxel lo
que permite disponer de 256 niveles de gris. Esta representacin ofrece suficiente
resolucin de brillo para el sistema visual humano y proporciona un adecuado margen
de ruido. Por otro lado la representacin de 8 bits es adecuada ya que corresponde a un
byte de informacin. En algunas aplicaciones, tales como imgenes mdicas o en
astronoma, se utilizan codificaciones de 12 o 16 bits por pxel [UMBA05].
-
Captulo 1. Conceptos bsicos
9
1.2.2. Imgenes en color
El color se forma mediante la combinacin de los tres colores bsicos: rojo, verde y
azul (en ingls correspondiente a las siglas RGB) y puede expresarse mediante una
tripleta de valores de 0 a 1 (R, G, B). La tabla 1.1 muestra ejemplos de colores definidos
mediante estas tripletas.
Color R G B
Blanco 1 1 1 Rojo 1 0 0 Amarillo 1 1 0 Verde 0 1 0 Turquesa 0 1 1 Gris 0.5 0.5 0.5 Rojo Oscuro 0.5 0 0 Azul 0 0 1 Aguamarina 0.5 1 0.83 Negro 0 0 0
Tabla 1.1. Ejemplos de generacin de colores RGB
Utilizando los 8 bits monocromo estndar como un modelo la imagen en color
correspondiente tendra 24 bits por pxel, 8 bits para cada una de las tres bandas de
colores (rojo, verde y azul). La figura 1.6 muestra una representacin de una imagen en
color RGB. Cada pxel (x,y) de la imagen tiene 3 planos que representan la intensidad
de cada color R (IR(x,y)), G (IG(x,y)) y B (IB(x,y)).
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
10
Rojo IR(x,y) Verde IG(x,y)
Azul IB(x,y)
Figura 1.6. Representacin de imgenes en color RGB.
En muchas aplicaciones es conveniente transformar la informacin de color RGB en
un espacio matemtico que separe la informacin de brillo de la informacin de color. A
continuacin vamos a mostrar algunas de estas transformaciones del modelo de color
[UMBA05].
El modelo HSL es una representacin en tres planos correspondiente a
Tono/Saturacin/Luminosidad (Hue/Saturation/Lightness). La figura 1.7 muestra la
transformacin del mapa RGB al mapa HSL. Dicha transformacin corresponde a las
siguientes relaciones:
>
=GBsi
GBsiH
360
donde
[ ]
[ ]
+
+= 2/12
1
))(()(
)()(21
cosBGBRGR
BRGR
[ ]),,min()(
31 BGRBGR
S++
=
3)( BGRL ++=
-
Captulo 1. Conceptos bsicos
11
Estas expresiones asumen que los valores RGB estn normalizados entre 0 y 1, y
se mide en grados desde el eje de color rojo.
Cubo de color RGB
Espacio de color HSL
Figura 1.7. Transformacin RGB a HSL.
Otro modelo es el denominado YUV. El plano Y indica la luminancia y los planos
U y V son los dos componentes de crominancia [QSHI00]. La luminancia Y se puede
determinar a partir del modelo RGB mediante la siguiente relacin:
BGRY 114.0587.0299.0 ++=
Los otros dos componentes de crominancia U y V se definen como diferencias de color
de la siguiente manera.
)(877.0)(493.0
YRVYBU
==
Por lo tanto expresando de forma matricial estas relaciones tenemos que:
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
12
=
BGR
VUY
100.0515.0615.0436.0289.0147.0114.0587.0299.0
Un modelo de color utilizando en los sistemas de televisin NTSC (National
Television Systems Comittee) es el modelo YIQ. Este modelo surgi para compatibilizar
la televisin en color con la televisin en blanco y negro que slo rquiere del
componente de luminancia. El plano Y corresponde al componente de luminancia. Los
parmetros I y Q son generados en relacin al mtodo de modulacin utilizada para
codificar la seal portadora. La relacin entre los componentes de crominancia y los
parmetros I y Q corresponden a las transformaciones lineales siguientes:
VUQVUI
545.0839.0839.0545.0
+=+=
Por lo tanto es posible expresar YIQ directamente en trminos de RGB:
=
BGR
QIY
312.0523.0211.0322.0274.0596.0114.0587.0299.0
Por su parte el sistema de televisin SECAM (Sequential Couleur a Memoire)
utiliza el modelo YDbDr. La relacin entre YDbDr y RGB es la siguiente.
=
BGR
DrDbY
217.0116.1333.1333.1883.0450.0114.0587.0299.0
donde
VDrUDb
169.2059.3
==
De los modelos anteriores (YUV, YIQ y YDbDr) se observa que los componentes
de crominancia I, Q, Db y Dr son transformaciones lineales de U y V. Por lo tanto estos
modelos de color estn ntimamente relacionados entre s.
-
Captulo 1. Conceptos bsicos
13
Los parmetros U y V en el modelo YUV pueden tomar valores positivos y
negativos. Con objeto de tener componentes de crominancias no negativas se puede
realizar un escalado de los parmetros YUV. Esto da lugar a la codificacin YCbCr que
se utiliza en la codificacin de las normas internacionales de JPEG y MPEG [QSHI00].
La transformacin de una seal RGB de 24 bits en el modo YCrCb se realiza de la
siguiente manera:
+
=
12812816
071.0368.0439.0439.0291.0014898.0504.0257.0
BGR
CrCbY
El factor 128 se incluye con objeto de mantener los datos en el rango [0,255] con 8
bits por banda de color en los datos.
Los sistemas de color anteriores son independientes del dispositivo, creando colores
coherentes con independencia de los dispositivos concretos para crear o reproducir la
imagen (monitores, impresoras, etc.). Estos modos permiten cambiar la luminosidad de
una imagen sin alterar los valores de tono y saturacin del color, siendo adecuados para
transferir imgenes de unos sistemas a otros pues los valores cromticos se mantienen
independientes del dispositivo de salida de la imagen.
Para la impresin a color se utiliza el modelo de color sustractivo CMY. En este
modo se restan del color banco los colores cian, magenta o amarillo (CMY) para
generar la gama de colores. La conversin de RGB a CMY se define como sigue (estas
ecuaciones que asuman los valores RGB son normalizadas para el rango de (0 a 1):
BYGM
RC
==
=
11
1
El cian absorbe la luz roja, el magenta la verde y el amarillo la luz azul. Por lo tanto
para imprimir una imagen RGB normalizado en verde con valores (0, 1, 0) se usan los
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
14
valores CMY (1, 0, 1). Para este ejemplo el cian absorbe la luz roja y el amarillo
absorbe la luz azul dejando slo la luz verde que se refleje.
La figura 1.8 muestra la representacin tridimensional de los espacios bsicos de
representacin del color dependiente de un dispositivo aditivo (RGB) o sustractivo
(CMY).
B
(B)
(B)
(0,0,1)(C)
(0,1,1)
(1,1,1)(W)(M)
(1,0,1)
(G)(0,1,0)
(1,1,0)(Y)
(R) (1,0,0)
(0,0,0)
(K) G
R Y
(Y)(0,0,1) (0,1,1)
(1,1,1)(1,0,1)
(0,0,0) (0,1,0)
(1,1,0)(1,0,0)(C)
C
(M)M
(G) (K)
(R)
(W)
Figura 1.8. Representacin tridimensional de los espacios bsicos de color de un
dispositivo aditivo (RGB) o sustractivo (CMY).
En la prctica esto no permite generar el color negro de manera adecuada por lo que
se aade tinta negra y el proceso de impresin se denomina a cuatro colores CMYK. El
-
Captulo 1. Conceptos bsicos
15
modo CMYK, trabaja con cuatro canales de 8 bits (32 bits de profundidad de color),
ofreciendo una imagen cuatricromtica compuesta por los 4 colores primarios para
impresin: Cian (C), Magenta (M), Amarillo (Y) y Negro (K). Se trata de un modelo de
color sustractivo en el que la suma de todos los colores primarios produce tericamente
el negro. El principal inconveniente es que este modo slo es operativo en sistemas de
impresin industrial y en las publicaciones de alta calidad ya que, exceptuando los
escneres de tambor que se emplean en fotomecnica, el resto de los digitalizadores
comerciales trabajan en modo RGB. El proceso de convertir una imagen RGB al
formato CMYK crea una separacin de color. En general es mejor convertir una imagen
al modo CMYK despus de haberla modificado.
1.3. Formatos de almacenamiento de imgenes digitales
Un formato describe la forma en que los datos que representan una imagen son
almacenados. Los datos de la imagen deben ser representados en una determinada forma
fsica para ser almacenados y transmitidos. El objetivo de los formatos de imagen es
garantizar que los datos se almacenan de acuerdo con un conjunto de reglas previsibles,
lo que garantiza la independencia con el dispositivo de informacin [TERR08].
Existe una gran variedad de formatos de almacenamiento de imgenes [BRIN99,
CAMP02, MIAN99, RICH06, SLUD07, WILK98]. La razn de esta proliferacin se
debe, por un lado, a que hay muchos tipos diferentes de imgenes y aplicaciones con
distintas necesidades. Por otro lado tambin hay razones de cuota de mercado,
propiedad de la informacin y falta de coordinacin dentro de la industria de imgenes.
Sin embargo existen algunos formatos estndares que son ampliamente utilizados
[UMBA05, BURG07].
1.3.1. Formato BMP
El formato BMP (Bit MaP) es un formato definido por Windows para almacenar
imgenes. Se ha modificado varias veces desde su creacin, pero se ha mantenido
estable desde la versin 3 de Windows. El formato BMP soporta imgenes con 1, 2, 4,
8, 16 y 32 bits por pxel aunque los archivos usuales son de 16 y 32 bits por pxel. El
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
16
formato BMP permite la compresin de las imgenes, aunque no es muy habitual su
utilizacin comprimida.
El fichero BMP est compuesto por una cabecera con informacin sobre el formato
utilizado para recoger la imagen y el cuerpo del mismo contiene la codificacin
apropiada de la imagen. En la cabecera se encuentra la informacin sobre el tamao de
la imagen, la paleta utilizada si la hubiese, el uso o no de la compresin y otras
caractersticas de la imagen. A continuacin se aade el cuerpo de la imagen que
contiene los pxeles de la imagen en bruto o bien comprimida con el mecanismo de
compresin RLE (Run Length Encoding, ver captulo 2) [SALO04]. La estructura de
archivos BMP se muestra en la figura 1.9.
Cabecera de archivo
Cabecera de imagen
Tabla de colores
Datos de pxeles
Figura 1.9. Estructura de archivos de mapa de bits
La paleta o tabla de colores es un diccionario en el que se recoge por cada valor
posible para la imagen su correspondencia cromtica. Dependiendo del nmero de bits
disponibles para la paleta ser necesaria o no su inclusin en la imagen. De esta forma,
para imgenes con 24 bits no es necesario disponer de paleta, ya que en la propia
imagen se indica el color de cada pxel.
En el cuerpo de la imagen se recoge por cada pxel de la misma el color que le
corresponde. Si existe paleta de colores ser el ndice correspondiente en la misma y si
no existe indicar directamente el color utilizado. Un ejemplo de una imagen con una
paleta de colores de 4 bits se muestra en la figura 1.10.
-
Captulo 1. Conceptos bsicos
17
Figura 1.10. Imagen BMP con paleta de 4 bits (16 colores)
La imagen queda representada por los ndices de entrada en la paleta de colores. De
este modo, la fila superior de la imagen, que es de color azul, queda almacenada con el
valor 3, que es el ndice correspondiente al azul en la paleta de colores. De esta forma el
tamao de la imagen se ha visto reducido, ya que no ha sido necesario escribir los 24
bits de los colores para cada entrada, aunque tambin se ha limitado el nmero de
colores posibles a 16. Si el nmero de colores es muy diverso la inclusin de la paleta
de colores tambin afectar al tamao de la imagen resultante ya que tiene que incluirse
siempre con la imagen. Normalmente la informacin de la imagen no se recoge como en
el ejemplo de la figura 1.10 sino que las filas se encuentran en orden inverso
almacenndose en primer lugar la informacin sobre la ltima fila de la imagen.
1.3.2. Formato GIF
Las imgenes almacenadas como BMP ofrecen una buena calidad, pero al no ser
usual el uso de la compresin los archivos que las contienen tienden a ser de gran
tamao. Por este motivo surgieron otros formatos que permiten la compresin de las
imgenes como puede ser el formato GIF (Graphics Interchange Format).
El formato GIF fue propuesto por la compaa CompuServer y usa como algoritmo
de compresin LZW (Lempel Ziv Welch) [WADE94]. En este formato tambin se usan
paletas de colores, pudiendo ir desde los 2 colores hasta los 256. Es posible utilizar este
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
18
formato con paletas mayores, aunque no est destinado para este fin y no es muy
frecuente.
Al estar limitada la paleta de colores hasta las 256 posibilidades las imgenes que
pueden ser almacenadas sin prdida de informacin son aquellas que puedan
representarse con esta cantidad de colores. Cualquier imagen que supere los 256 colores
ver reducida su paleta a este lmite, por lo que se perder informacin. Por este motivo
este formato es recomendable para imgenes pequeas y de colores slidos, no estando
recomendado su uso en imgenes fotogrficas o de color verdadero (paleta de color de
24 bits).
La compresin de este formato se basa en agrupar la informacin de los colores
contiguos que son iguales, de forma que si en la imagen aparecen varios pxeles con el
mismo color, en vez de repetir esta informacin como se hace en el formato BMP, aqu
se indica el color y el nmero de pxeles consecutivos que han de ser coloreados con el
mismo.
1.3.3. Formato PNG
El formato PNG (Portable Network Graphics) surgi para mejorar algunos aspectos
del GIF, como la limitacin del nmero de colores en su paleta, as como para solventar
algunos aspectos legales debido al uso de patentes en el formato de compresin.
La paleta de colores en este formato est dividida en canales. En imgenes a color se
pueden asimilar estos canales con los niveles de rojo, verde y azul de un pxel, tal y
como ocurre en el formato BMP. Cada canal dispone de un nmero determinado de bits,
ampliando as las posibilidades de uso de las paletas. Dependiendo de los canales
disponibles en la imagen se dispone de una mayor o menor profundidad de color en la
imagen. Las diferentes posibilidades se describen en la tabla 1.2. En la columna bits por
canal se indican cuantos bits se utilizan por cada canal para recoger la informacin del
pxel en cada tipo de imagen. El nmero representado en la tabla indica el nmero total
de bits necesarios por cada pxel y se obtiene multiplicando el nmero de bits por canal
por el nmero total de canales de la imagen.
-
Captulo 1. Conceptos bsicos
19
Tabla 1.2. Profundidad de color en el formato PNG.
El formato PNG tambin utiliza la compresin para reducir el tamao de la imagen.
El proceso utilizado para este fin se conoce como deflacin y consiste en la utilizacin
conjunta de los algoritmos LZ77 [TASI04] y una codificacin de Huffman [BRYA07].
1.3.4. Formato JPEG
JPEG (Joint Photographic Experts Group) es un algoritmo diseado por un comit
de expertos del ISO/CCITT estandarizado internacionalmente en el ao 1992 que
trabaja con imgenes tanto en escala de grises como a color. Hay diferentes versiones y
mejoras que se han ido produciendo, existiendo tanto versiones con prdidas como sin
prdidas. El algoritmo aprovecha la forma en la que el sistema visual humano trabaja
para eliminar informacin de la imagen que no es detectada por el mismo. As, el ojo
humano es ms sensible a cambios en la luminancia que en la crominancia y de igual
forma detecta mejor cambios de brillo en zonas homogneas que en aquellas con gran
variacin.
Dentro del formato JPEG existen diferentes mtodos para llevar a cabo alguno de
los pasos a desarrollar, dando lugar a varias categoras de imgenes. Como ya se ha
comentado anteriormente es posible realizar compresiones de las imgenes con prdidas
o sin prdidas, incluso ajustar los niveles de prdidas que se deseen. La figura 1.11
muestra un ejemplo de una imagen JPEG con distintas calidades. El proceso de
compresin JPEG se describe con detalle en el captulo 2.
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
20
a) b)
Figura 1.11. Imagen comprimida JPEG a) mxima calidad b) mnima calidad
1.3.5. Formato TIFF
El formato TIFF (Tagged Image File Format) fue originalmente desarrollado por la
Aldus Corporation en 1980 como un intento de proporcionar un formato estndar para
el almacenamiento y el intercambio de imgenes en blanco y negro creados por
escneres y aplicaciones de edicin. Este formato se utiliza como contenedor de
imgenes. En un fichero TIFF se almacena la imagen y una serie de etiquetas que
recogen informacin sobre la misma, como puede ser el tamao de la misma, la
disposicin de la informacin, la compresin utilizada, etc. Una caracterstica
interesante que proporciona este formato es la posibilidad de almacenar ms de una
imagen en un nico fichero.
Las imgenes almacenadas pueden ser comprimidas utilizando varios mtodos entre
los que se encuentran el LZW como en el formato GIF y la compresin utilizada en
JPEG.
La utilizacin de etiquetas permite un manejo ms preciso de estos formatos. Se
permiten el uso de etiquetas privadas o metadatos que aporten mayor informacin sobre
la imagen. Esta informacin no es tenida en cuenta en aquellas aplicaciones que no
entiendan el significado de estas etiquetas. Sin embargo el formato TIFF presenta
algunos problemas ya que las disposiciones de los datos de la imagen en el archivo
TIFF dan lugar a ficheros de gran tamao.
-
Captulo 1. Conceptos bsicos
21
1.4. Histograma de la imagen
El histograma de una imagen es una herramienta visual de gran aceptacin y utilidad
para el estudio de imgenes digitales. Con una simple mirada puede proporcionar una
idea aproximada de la distribucin de niveles de iluminacin, el contraste que presenta
la imagen y alguna pista del mtodo ms adecuado para manipularla. El histograma de
una imagen se puede definir como una funcin que representa el nmero de veces que
se repiten cada uno de los valores de los pxeles. As el histograma de una imagen
digital con L niveles de iluminacin en el rango [0,L-1]) es el grfico de una funcin
discreta de la forma:
nn
rp kkr =)(
donde rk es un nivel de iluminacin (siendo k=0,1,2,...,L-1), nk es el nmero de
pxeles en la imagen con el valor rk y n es el nmero total de pxeles de la imagen
[GONZ07].
Las intensidades se representan de manera grfica en el eje de cartesiana de abcisa
mientras que el nmero de ocurrencias para cada intensidad se representan en el eje de
ordenadas. La frecuencia de aparicin de cada nivel de luminancia en el histograma se
muestra de forma relativa debido al hecho de que el valor absoluto puede variar en
funcin del tamao de la imagen.
La tabla 1.3 muestra un ejemplo para una imagen de 64x64 pxeles codificados con
3 bits (8 niveles intensidad). El histograma de la imagen se muestra en la figura 1.12.
Otros ejemplos de imgenes con sus correspondientes histogramas se muestran en la
figura 1.13.
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
22
rk nk pr (rk)
r0=0 790 0.19
r0=1 1023 0.25
r0=2 850 0.21
r0=3 656 0.16
r0=4 329 0.08
r0=5 245 0.06
r0=6 122 0.03
r0=7 81 0.02
Tabla 1.3. Ejemplo de distribucin de los niveles de gris de una imagen de 64x64 y
8 niveles de intensidad.
0.25 0.20 0.15 0.10 0.05
0 1/7 2/7 3/7 4/7 5/7 6/7 1 kr
)( kr rp
Figura 1.12. Histograma del ejemplo de la imagen descrita en la tabla 1.3.
-
Captulo 1. Conceptos bsicos
23
Figura 1.13. Ejemplos de imgenes con sus histogramas.
Muchas aplicaciones de procesado digital de imgenes se basan en el procesamiento
del histograma. En los sucesivos captulos plantearemos diferentes tcnicas de
procesado basadas en esta herramienta.
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
24
1.5. Aplicacin del Soft Computing en el procesado de imgenes
El Soft Computing es un campo emergente que busca la sinergia de diferentes
campos tales como la lgica difusa, las redes neuronales, la computacin evolutiva, el
razonamiento probabilstica, entre otros. Lotfi Zadeh fue el primero en establecer el
concepto de Soft Computing [ZADE94] planteando la integracin de tcnicas propias de
la lgica difusa con las de redes neuronales y la computacin evolutiva.
A diferencia de los sistemas de computacin tradicionales, que se basan a la plena
verdad y exactitud, las tcnicas de Soft Computing explotan la imprecisin, la verdad
parcial y la incertidumbre para un problema particular. Otra caracterstica del Soft
Computing consiste en la importancia que desempea el razonamiento inductivo.
En los ltimos aos se ha incrementado el inters en el uso de tcnicas basadas en
Soft Computing para resolver problemas de procesado de imgenes cubriendo un amplio
rango de dominios tales como anlisis de imgenes, mejora y restauracin de imgenes,
visin artificial, procesado de imgenes mdicas, procesado de video, segmentacin,
codificacin y transmisin de imgenes, etc [KERR00, NACH07, REUS06, KAME07,
BLOC06, NACH03].
Nuestro inters en la aplicacin de tcnicas basadas en Soft Computing viene dado
por el objetivo de disponer de tcnicas heursticas de razonamiento que permitan
generar implementaciones hardware de sistemas de procesado de imgenes de bajo
coste y una alta velocidad de procesado. Es por ello que en los prximos captulos se
plantea la sinerga de tcnicas basadas en el lgebra multivaluada de ukasiewicz,
lgica difusa y redes neuronales. En nuestro caso la conjuncin de ests tcnicas se
realiza atendiendo a criterios de implementacin, de razonamiento para la toma de
decisiones y como mecanismo de clculo para aprovechar las particularidades que estos
sistemas nos ofrecen.
-
Captulo 1. Conceptos bsicos
25
1.6. Resumen
En este captulo se han presentando definiciones y conceptos bsicos de aspectos
relacionados con las imgenes, codificacin, formato de almacenamiento, etc. Algunos
de los conceptos que aqu se describen se utilizan en el resto de la memoria de tesis.
Nos hemos centrado en dar algunas pinceladas sobre ideas generales del proceso de
digitalizacin de imgenes, concepto de resolucin, fundamentos del color y la
transformacin de diferentes representaciones. Estos conceptos junto con los formatos
de almacenamiento sern recurrentes en esta tesis. Finalmente se da una muy breve
pincelada sobre el campo del Soft Computing con objeto de centrar los mecanismos y
herramientas de las que se ha hecho uso en el desarrollo de este trabajo.
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
26
-
Captulo 2
Compresin de imgenes
Las tcnicas de compresin de imgenes permiten eliminar la redundancia en la
imagen con objeto de reducir la informacin que es necesario almacenar o transmitir. La
redundancia es la correlacin que existe entre los pixeles de la imagen. A la hora de
considerar el tipo de redundancia que aparece en una imagen podemos realizar una
clasificacin en tres categoras [RAMI01]:
1) Redundancia espacial o correlacin entre pxeles prximos.
2) Redundancia espectral o correlacin entre diferentes planos de color o bandas
espectrales.
3) Redundancia temporal o correlacin entre imgenes adyacentes en una
secuencia de imgenes (en aplicaciones de video).
La compresin de imgenes persigue reducir el nmero de bits necesarios para
representar una imagen eliminando la redundancia espacial tanto como sea posible. La
eliminacin de la redundancia temporal entra dentro del mbito de la codificacin de
video.
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
28
A la hora de clasificar los algoritmos de compresin se pueden organizar en dos
categoras: algoritmos de compresin sin prdidas y con prdidas. En los esquemas de
compresin sin prdidas, la imagen reconstruida, despus de la compresin, es
numricamente idntica a la imagen original. Mediante este mtodo de compresin slo
se pueden alcanzar unos modestos resultados. La compresin sin prdidas se emplea en
aplicaciones en las que los datos de la imagen en bruto son difciles de obtener o bien
contienen informacin vital o importante que debe conservarse como, por ejemplo,
ocurre en aplicaciones de diagnsticos mdicos por imgenes. Una imagen reconstruida
despus de una codificacin con prdidas contiene cierta degradacin relativa a la
original. Esta degradacin a menudo es debida a que el esquema de compresin elimina
completamente la informacin redundante. Sin embargo, los esquemas de codificacin
con prdidas son capaces de alcanzar una compresin mucho ms alta y, bajo
condiciones normales de visin, no se aprecian estas prdidas.
Entre los mtodos de compresin sin prdidas podemos destacar los siguientes:
Run-length encoding (RLE); usado en PCX, BMP, TGA y TIFF.
Codificacin estadstica (por entropa) como la codificacin Huffman
Algoritmos basados en diccionario como LZW usado en GIF y TIFF
Entre los mtodos de compresin con perdidas podemos destacar los siguientes:
Reduccin del espacio de colores y submuestreo de cromancia
Algoritmos basados en transformada tales como DCT (JPEG) o wavelet.
Compresin fractal
En general un sistema de compresin de imgenes consta de tres etapas [GONZ02]
como se muestra en la figura 2.1: transformacin, cuantificacin y codificacin. En la
transformacin se aplica una funcin que transforma el conjunto de datos de la imagen
original en otro conjunto de datos que permita aplicar las estrategias de eliminacin de
redundancia. Esta fase es reversible y permite obtener la imagen original. Un ejemplo
consiste en transformar una imagen bidimensional en una forma de onda lineal. Otro
ejemplo lo constituye la aplicacin de la transformada discreta del coseno (DCT) sobre
-
Captulo 2. Compresin de imgenes
29
la imagen original. En la fase de cuantificacin es cuando se elimina la redundancia. En
esta fase es cuando se realiza la prdida de informacin. Finalmente la fase de
codificacin construye la salida basada en un esquema de compresin sin prdidas.
transformacin cuantificacin codificacin Imagen
de entrada
Imagen comprimida
Figura 2.1. Etapas de un sistema de compresin de imgenes.
Nuestro objetivo en este captulo se centra en presentar nuevos algoritmos de la
compresin de imgenes. Los sistemas que presentamos permiten tanto la compresin
con prdidas y sin perdidas. Los mtodos de compresin se han implementado sobre
FPGA y dan lugar a una imagen comprimida con una buena calidad y al mismo tiempo
circuito de bajo coste y alta velocidad de procesado. Este captulo se organiza en siete
apartados. En el primer apartado se presentan las medidas de calidades en las tcnicas
de compresin de imgenes. En el segundo apartado se describe el algoritmo Run-
Length Encoding (RLE). En el apartado tres se muestra la codificacin de Huffman. En
el apartado cuatro se presenta el algoritmo JPEG. En el apartado cinco se trata un
algoritmo de muestreo uniforme y a continuacin los algoritmos de eliminacin de
redundancia. En el apartado seis se presentan los algoritmos propuestos. Finalmente, se
describe el diseo y la implementacin hardware de los algoritmos propuestos.
2.1. Medida de calidad en compresin de imgenes
Para evaluar el rendimiento de cualquier tcnica de compresin de imgenes es
necesario tener en cuenta dos aspectos: el tamao que se consigue en la comprensin y
el error que se comente en la aproximacin. El tamao de la imagen comprimida nos
indica la eficiencia en la comprensin. Dicha eficiencia puede medirse mediante el
parmetro denominado la razn de la compresin. La razn de compresin se define
como el cociente entre el tamao original y el tamao de la imagen comprimida.
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
30
1:comp
orig
TT
CR =
La razn de compresin se referencia frente a la unidad. De esta manera el objetivo
de todo algoritmo de compresin consiste en tener una razn de comprensin lo mas
alta posible. Valores por encima de 1 y alejados indican una buena comprensin.
Un segundo aspecto a la hora de evaluar un algoritmo de comprensin hace
referencia a la calidad de la imagen obtenida. Para medir dicha calidad se requiere de
algn parmetro que permita estimar el error que se comente en la transformacin. En la
literatura existen diversas alternativas a la hora de considerar el error de la
aproximacin.
El error medio absoluto (MAE, Mean Absolute Error) es una medida de la distancia
entre la imagen original y la imagen comprimida. Este parmetro viene dado por la
expresin siguiente para una imagen de NxM pxeles:
MN
jiimgjiimgMAE ji
finalorig
=
)),(),((,
Otra medida corresponde al error cuadrtico medio (MSE, Mean Squared Error)
que representa la varianza:
MN
jiimgjiimg
MSE jifinalorig
= 2,
)),(),((
Un parmetro muy utilizado es la raz del error cuadrtico medio (RMSE, Root
Mean Squared Error) que corresponde al error estndar:
MN
jiimgjiimg
MSERMSE jifinalorig
== 2,
)),(),((
-
Captulo 2. Compresin de imgenes
31
Otro parmetro muy empleado es la relacin seal a ruido de pico (PSNR, Peak
Signal-to-Noise Ratio):
)(log20)(log10 102
10 MSEMAX
MSEMAXPSNR ==
donde MAX es el mximo valor que puede tomar un pxel en la imagen. Cuando los
pxeles se representan usando B bits entonces MAX = 2B 1. Para una imagen en
formato RGB, la definicin del PSNR es la misma, pero el MSE se calcula como la
media aritmtica de los MSEs de los tres colores (R, G y B).
2.2. Run-Length Encoding (RLE)
La codificacin RLE es la forma ms sencilla de compresin. Se utiliza
ampliamente en la mayora de formatos de archivos de mapas de bits, tales como TIFF,
BMP y PCX. Este tipo de codificacin reduce el tamao fsico de una repeticin de
cadena de smbolos. Consiste en convertir los smbolos idnticos consecutivos en un
cdigo formado por el smbolo y el nmero de veces que se repite. De esta manera la
cadena siguiente
ABBBCCCCCDEFGGGGHI
Se codifica por esta otra en la que la longitud se reduce de 18 smbolos a 12:
A3B5CDEF4GHI
A la hora de implementar este esquema de codificacin existen dos alternativas. La
primera consiste en sustituir una cadena de smbolos consecutivos repetidos por dos
bytes. El primer byte contiene un nmero que representa el nmero de veces que el
smbolo est repetido. El segundo byte contiene al propio smbolo. En el caso de una
imagen en blanco y negro cada pixel puede codificarse mediante un slo byte. En este
caso se requiere un bit para el valor del pixel (0 para negro y 1 para blanco) y se
emplean los 7 bits restantes para especificar el nmero de repeticiones.
http://es.wikipedia.org/wiki/Modelo_de_color_RGB
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
32
Puesto que la compresin RLE se basa en la codificacin de secuencias con
smbolos repetidos, los factores a tener en cuenta a la hora de implementar dicha tcnica
son:
1) el nmero de repeticiones consideradas para la codificacin. Al tener que
codificar una secuencia mediante un nmero y un smbolo, una secuencia
demasiado corta podra traducirse en la nula compresin de los datos.
2) el nmero de bits con que se representar el contador de repeticiones.
3) el tamao y naturaleza del alfabeto pues la representacin de cada smbolo es
determinante para la eleccin del tamao de las secuencias con repeticin.
2.3. Codificacin estadstica: Codificacin de Huffman
La codificacin de Huffman genera un cdigo de longitud variable en el que la
longitud de cada cdigo depende de la frecuencia relativa de aparicin de cada smbolo;
cuanto ms frecuente sea un smbolo su cdigo asociado ser ms corto. Se trata de un
cdigo libre de prefijos, es decir, ningn cdigo forma la primera parte de otro cdigo.
Esto permite que los mensajes codificados sean no ambiguos. Este enfoque se present
por primera vez por David Huffman en 1952 para archivos de texto y ha dado lugar a
muchas variaciones [GONZ02].
El principio en el que se basa el algoritmo de codificacin de Huffman consiste en
utilizar un menor nmero de bits para codificar los datos que se producen con ms
frecuencia. Los cdigos se almacenan en un libro de cdigos que pueden ser construidos
para cada imagen o un conjunto de imgenes. En todos los casos el libro de cdigos
debe transmitirse para permitir la decodificacin. Vamos a describir un ejemplo que
ilustre este proceso. Imaginemos el siguiente flujo de datos:
AAAABCDEEEFFGGGH
-
Captulo 2. Compresin de imgenes
33
La frecuencia de cada smbolo es la siguiente: A: 4, B: 1, C: 1, D: 1, E: 3, F: 2, G: 3,
H: 1. A partir de esta frecuencia se puede generar un modelo estadstico que refleja la
probabilidad de que cada valor:
A: 0,25, B: 0.0625, C: 0.0625, D: 0.0625, E: 0.1875, F: 0,125, G: 0.1875, H: 0.0625
A partir de estas probabilidades se genera un cdigo de longitud variable que
permite describir de forma univoca cada smbolo:
G A F E D H B C
00 10 110 111 0100 0101 0110 0111
De esta manera la cadena original puede sustituirse por su cdigo y cada smbolo
puede reconocerse en la decodificacin de manera univoca
AAAABCDEEEFFGGGH
10 10 10 10 0110 0111 0100 111 111 111 110 110 00 00 00 0101
El proceso de asignacin del cdigo Huffman emplea un rbol binario en el que las
hojas representan a los smbolos y el camino de la raz a las hojas dan la representacin
binaria. Para ello el camino de la izquierda codifica un 0 y el de la derecha un 1.
Vamos a ilustrar el procedimiento para el ejemplo anterior. El primer paso consiste
en ordenar los smbolos en funcin de la frecuencia (o de su probabilidad) de menor a
mayor. Esta ordenacin se mantiene en todo el proceso ya que cada rama tiene un
cdigo 0 a la izquierda y 1 a la derecha.
G:3 B:1 C:1 D:1 H:1 F:2 E:3 A:4
A continuacin se agrupa los smbolos de menor frecuencia (B y C) en un rbol
binario. La suma de sus frecuencias corresponde al valor de la raz del rbol. Dicho
rbol se ordena en la posicin que le corresponde por el valor de la frecuencia agregada.
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
34
G:3 D:1 H:1 F:2 E:3 A:4
B:1 C:1
2
El proceso se repite hasta que todos los smbolos se han agrupado dentro de un
nico rbol. As el tercer paso agrupar los smbolos D y H.
G:3 F:2 E:3 A:4
B:1 C:1
2
D:1 H:1
2
En la siguiente iteracin se agrupan los rboles de menor frecuencia y se le asocia
un rbol que tiene de frecuencia raz el valor 4.
G:3 F:2 E:3 A:4
B:1 C:1
2
D:1 H:1
2
4
En la siguiente iteracin se agrupan F y E en un rbol cuya raz tiene frecuencia 5.
Dicho rbol se ordena en la ltima posicin ya que corresponde al de mayor frecuencia.
En las sucesivas iteraciones se va construyendo el rbol binario agrupando los sub-
rboles de menor frecuencia.
G:3 A:4
B:1 C:1
2
D:1 H:1
2
4
F:2 E:3
5
-
Captulo 2. Compresin de imgenes
35
A:4
F:2 E:3
5
G:3
B:1 C:1
2
D:1 H:1
2
4
7
A:4
F:2 E:3
5
G:3
B:1 C:1
2
D:1 H:1
2
4
7
9
A:4
F:2 E:3
5 G:3
B:1 C:1
2
D:1 H:1
2
4
7
16
9
A:4
F:2 E:3
5 G:3
B:1 C:1
2
D:1 H:1
2
4
7
0
0
0
0
0
0
0
1
1 1
1 1
1 1
En la ltima iteracin se tiene el rbol binario que asigna los cdigos a cada
smbolo. Cada rama de la izquierda asigna el valor 0 y el de la derecha el valor 1. As el
cdigo de B es 0110. La longitud del cdigo depender de la distancia del smbolo a la
raz. As la longitud del cdigo de B es de 4 bits mientras que la del cdigo A es de 2
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
36
bits. Esta distancia depende de la frecuencia. A menor frecuencia mayor longitud de
cdigo.
Para un rbol binario T es posible calcular el nmero de bits necesarios para
codificar una imagen. As sea x un smbolo (valor de pixel de la imagen). Denominamos
el alfabeto como H (conjunto de valores que toman los pixel). La frecuencia f(x) donde
xHx , , corresponde al histograma de la imagen. Sea dT(x) la profundidad de la
hoja x en el rbol T. El nmero de pixels necesarios para codificar la imagen viene dado
por:
=Hx
T xdxfTB )()()(
2.4. Comprensin basada en transformada: JPEG
Una de las tcnicas de compresin de imgenes ms ampliamente utilizada es el
algoritmo JPEG. El nombre JPEG corresponde al acrnimo de Joint Photographic
Experts Group. Se trata de un algoritmo estndar ISO y CCITT (ahora denominado
ITU-T) [CCIT92, JPEG]. El nombre formal del JPEG como estndar es ISO/IEC IS
10918-1 | ITU-T Recommendation T.81. El documento que define el estndar IS 10918
tiene actualmente 4 partes:
Parte 1 El estndar JPEG bsico que define las opciones y alternativas para
la codificacin de imgenes.
Parte 2 Establece el conjunto de reglas y comprobaciones para realizar el
software de acuerdo con la parte 1.
Parte 3 Establece extensiones para mejorar el estndar incluyendo el
formato de ficheros SPIFF.
Parte 4 Define mtodos de registrar algunos parmetros usados para
extender JPEG.
-
Captulo 2. Compresin de imgenes
37
JPEG es un algoritmo de compresin con prdidas (si bien existe una versin para
compresin sin prdidas) [GONZ02, PENN04]. Una de las caractersticas que hacen
muy flexible el algoritmo es que es posible ajustar el grado de compresin. Si se
especifica una compresin muy alta se perder una cantidad significativa de calidad,
mientras que con una tasa de compresin baja se obtiene una calidad muy parecida a la
de la imagen original.
Este algoritmo de compresin utiliza dos caractersticas que el sistema visual
humano posee para lograr eliminar informacin de la imagen que el ojo no es capaz de
detectar. El primero de ellos consiste en que no tenemos la misma capacidad para
apreciar las variaciones de crominancia que las variaciones de luminancia. La segunda,
es que somos capaces de detectar ligeros cambios en el tono entre dos zonas de color
adyacente pero, cuando la diferencia es grande, esta no tiene por qu ser codificada de
forma precisa.
Esta tcnica se basa en la aplicacin de la transformada discreta del coseno (DCT,
Discrete Cosine Transform). La DCT se utiliza en muchas tcnicas de compresin tales
como JPEG, H.261, H.263, MPEG-1, MPEG-2 y MPEG-4 entre otras. La DCT expresa
una secuencia de datos finitos en trminos de suma de cosenos a diferentes frecuencias.
As las filas de una matriz A de tamao NxN son funciones coseno:
[ ]
==
+
==
+
=1,...1,0;1,...2,1
2)12(cos2
1,...1,0;02
)12(cos1
NjNiN
ijN
NjiN
ijNA ij
Una ventaja de aplicar la DCT a una matriz de datos que representa una imagen es
que permite concentrar mucha informacin en los primeros coeficientes.
El algoritmo JPEG est constituido por una serie de etapas que se muestran en la
figura 2.2. La imagen se descompone en bloques de 8x8 pixels que se procesan de
forma casi independiente. En la primera etapa se realiza una transformacin del espacio
de color para trabajar con valores YUV (o YCbCr). As si una imagen en color est
codificada en formato RGB se transforma al formato YUV. El componente de
http://es.wikipedia.org/wiki/Algoritmo_de_compresi%C3%B3n_con_p%C3%A9rdida
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
38
luminancia representa en realidad una escala de grises, mientras que los otros dos
componentes de crominancia son informacin de color. Esta transformacin se realiza
aplicando la siguiente ecuacin:
=
BGR
QIY
312.0523.0211.0322.0274.0596.0114.0587.0299.0
+
=
12812816
071.0368.0439.0439.0291.0014898.0504.0257.0
BGR
CrCbY
Finalmente, en la fase de transformacin del espacio de color, se requiere un cambio
de nivel en el color ya que la DCT est centrada en el cero. Lo que se hace es restar a
cada valor de color 128 para cambiar el signo de los coeficientes.
FDCT Cuantizacin Codificador de entropa
Data comprimida De la imagen
DCT-basada en Codificador
Tabla de especificacin
Tabla de especificacin
IDCT Decuantizacin Decodificador de entropa
Imagen comprimida
Tabla de especificacin
Tabla de especificacin
DCT-basada en decodificador
8x8 bloques
Fuente de Datos de Imagen
Reconstruido de Datos de Imagen
Transformacin de la imagen
Re-transform macin de la imagen
a)
b)
Figura 2.2. Etapas del proceso de a) compresin JPEG, b) descompresin.
La siguiente etapa realiza la DCT. Existen diversas alternativas a la hora de
implementar la DCT. Una estrategia consiste en evaluar la siguiente expresin:
-
Captulo 2. Compresin de imgenes
39
TMFMC =
donde F es el bloque 8x8 y M es la matriz siguiente:
=
0.0975- 0.2778 0.4157- 0.4904 0.4904- 0.4157- 0.2778- 0.0975 0.1913 0.4619- 0.4619 0.1913- 0.1913- 0.4619- 0.4619- 0.1913 0.2778- 0.4904 0.0975- 0.4157- 0.4157 0.0975- 0.4904- 0.2778
0.3536 0.3536- 0.3536- 0.3536 0.3536 0.3536 0.3536- 0.3563 0.4157- 0.0975 0.4904 0.2778 0.2778- 0.4904 0.0975- 0.4157 0.4619 0.1913 0.1913- 0.4619- 0.4619- 0.1913 0.1913 0.4619
0.4904- 0.4157- 0.2778- 0.0975- 0.0975 0.2778- 0.4157 0.4904 0.3536 0.3536 0.3536 0.3536 0.3536 0.3536- 0.3536 0.3536
M
Vamos a considerar el siguiente ejemplo de imagen 8x8:
=
136 154 136 123 123 123 136 110 166 180 136 136 149 110 105 123
154 198 180 154 136 123 136 128136 136 149 166 167 136 154 180136 136 149 166 167 136 180 239123 123 154 180 154 154 198 254110 136 154 154 154 136 180 192136 123 123 123 123 123 123 154
F
El resultado de realizar la DCT corresponde a la matriz siguiente en la que cada
valor se ha redondeado a su entero ms cercano:
=
69-223-10-4157-109-14-1898-16761527-523-154--39-413-1731533-1014-13-19-12-8137-304-30-381-5791--118-1527311310830-8-221429682938160
C
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
40
Una vez aplicada la DCT a una imagen la siguiente etapa corresponde a la
cuantizacin. En esta etapa es cuando se realiza la prdida de informacin. La
cuantizacin se realiza aprovechando las caractersticas del ojo humano que se coment
anteriormente. En efecto, puesto que los valores de alta frecuencia no son apreciables
pueden eliminarse sin que provoque efecto visual alguno. La cuantizacin consiste en
realizar la siguiente operacin:
( ) ( ) ( )( )jiQjiCdondearjiC ,/,Re,* =
Donde Q es la matriz de cuantizacin. Los valores de la matriz Q se obtienen
teniendo en cuenta el comportamiento visual del ojo humano. As la calidad de la
imagen comprimida depender de los valores que se hayan considerado en la matriz Q.
Un ejemplo de matriz de cuantizacin es la siguiente:
=
99 103 100 112 98 95 92 72101 120 121 103 87 78 64 4992 113 104 81 64 55 35 2477 103 109 68 56 37 22 18
62 80 87 51 29 22 17 1456 69 57 40 24 16 13 1455 60 58 26 19 14 12 1261 51 40 24 16 10 11 16
Q
El resultado de aplicar la cuantizacin a nuestro ejemplo da lugar a la siguiente
matriz:
=
00000000000000000000000000000012-0000-1-1-53-000-1-20-47-00012193000143310
*C
-
Captulo 2. Compresin de imgenes
41
Puede observarse que los valores de frecuencia bajos se encuentran concentrados en
una zona de la matriz mientras que el resto toma valores 0. El primer elemento de la
matriz se denomina coeficiente DC (Direct Current) mientras que el resto se denominan
coeficientes AC (Alternating Current). Los valores DC y AC son tratados de manera
diferente. As los coeficientes DC de cada bloque 8x8 de la imagen se codifican
guardando la diferencia que existe entre ellos. Los coeficientes AC se codifican
mediante una codificacin de entropa aplicando compresin Huffman. Para ello la
matriz bidimensional se transforma en una vector unidimensional realizando una
exploracin en zig-zag.
DC
En el fichero JPEG el primer coeficiente ser el coeficiente DC y a continuacin la
codificacin de los coeficientes AC.
2.5. Muestreo uniforme
Un mecanismo muy simple de compresin de imgenes consiste en realizar un
submuestreo de la imagen. Para ello se recorre la imagen seleccionando un pxel entre
cada k donde k es constante. Ello permite comprimir una imagen de N pxeles en N/k. El
algoritmo de compresin realiza como primer paso una conversin de la imagen en una
forma de onda unidimensional. Para el caso de una imagen de N pxeles la forma de
onda tiene N valores.
La figura 2.3a muestra la aplicacin de muestreo uniforme para k=2. En este caso la
imagen se codifica con 8 bits por pxel (imagen monocroma). Cada pxel toma un valor
entre 0 (negro) y 255 (blanco). La grfica de la figura 2.3a representa la forma de onda
de la imagen. Dicha imagen se muestrea para un valor de k=2, esto es, cada dos pxeles
-
Diseo de circuitos para tratamiento de imgenes aplicando tcnicas basadas en Soft Computing
42
se selecciona uno. De esta manera se reduce la cantidad de informacin que representa
la imagen a la mitad.
255
0 i-1 i+1 i i+2 i+3
255
0 i-1 i1 i i2 (a) (b)
Figura 2.3. (a) Muestreo uniforme (k=2), (b) descompresin para k=3
Por otro lado el algoritmo de descompresin interpola los pxeles que han sido
eliminados de la imagen hasta recuperar los N pxeles de la imagen original. A la hora
de realizar esta reconstruccin un mecanismo puede ser repetir cada pxel k veces. Otra
alternativa cosiste en realizar interpolacin lineal como se observa en la figura 2.3b para
el caso k=3. En este caso se insertan nuevos pxeles entre cada dos mediante
aproximacin lineal.
La figura 2.4 muestra un ejemplo de muestreo uniforme de la imagen soccer de
64x64 pxeles. La razn de muestreo es k=2. Se puede observar los efectos de la
aproximacin tanto en la imagen comprimida (figura 2.4b) como en la descomprimida
(figura 2.4c). Puesto que el mecanismo de interpolacin se basa en una aproximacin
lineal a tramos se trata de una