Diseño de Circuitos para Tratamiento de Imágenes Aplicando ...

download Diseño de Circuitos para Tratamiento de Imágenes Aplicando ...

If you can't read please download the document

Transcript of Diseño de Circuitos para Tratamiento de Imágenes Aplicando ...

  • 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