|
[01 - 02 - 03 - 04 - 05 - 06 - 07 - 08 - 09 - 10 - 11 - 12 - 13] Modelos matemáticos para las imágenes del mundo real: modelo binario, medidas y distribuciones - Imágenes subjetivas - Métrica para imágenes - Imágenes digitales - Una definición de fractal diferente - Sistemas de funciones iteradas: ejemplos - El juego del caos: ejemplos - Transformación con condensación - Sistemas de funciones iteradas recurrentes - SFI para generar medidas - El problema inverso - Compresión con técnicas fractales - Sistemas de funciones iteradas particionados - Sistemas L: curvas fractales y ramificaciones - Autómatas celulares y autoorganización crítica |
||||
|
Resulta difícil apreciar autosemejanzas, por ejemplo, en la imagen de Lena.
Sin embargo, considerando porciones convenientes de imagen y comparándolas entre si, resultan visualmente semejantes. Es decir, esta imagen y, en general, las imagenes naturales, poseen alguna clase de autosemejanza interna.
Esta autosemejanza puede ser extraida y explotada haciendo uso de SFI particionados. La compresión con SFIP consiste en determinar transformaciones w (eventualmente contractivas y eventualmente afines) que aplican bloques de pixels de la imagen original (bloques fuente F) en otros bloques de menor tamaño de la misma (bloques destino D), con el criterio de hacer mínima la diferencia entre los niveles de gris respectivos de w(F) y D. |
||||
| ILUSTRACIÓN | Ilustraremos el procedimiento con una imagen cuadrado I, con niveles de gris, por ejemplo 256, que se consiguen con 1 byte por pixel. El algoritmo comienza realizando una partición de la imagen en bloques, que suponemos ahora cuadrados, los bloques D. Seguidamente, se selecciona un diccionario de partes cuadradas de la imagen original, los bloques F, de tamaño mayor que los respectivos bloques D. Evidentemente, el diccionario deberá tener muchos mas efectivos que la partición. | |||
|
|
||||
|
||||
|
Si suponemos la imagen original I con PxP pixels, efectuamos una partición de la misma en ND=(P/r)2 bloques de tamaño rxr. Seleccionamos también sobre I la colección de todos los bloque cuadrados de tamaño 2rx2r (no necesariamente disjuntos), los bloques fuente. Su número resulta NF=(P-2r+1)2. Por ejemplo, si P=256, y r=8, se tiene |
||||
|
|
||||
| y para los bloque fuente, | ||||
|
|
||||
|
En el contexto de las imágenes con niveles de gris, para comparar cada bloque destino D con todos los bloques fuente F se hace uso de una transformación afín |
||||
![]() |
||||
|
donde si controla el contraste y oi el brillo de la transformación. En el caso particular ilustrado, los bloques fuente y los bloques destino son cuadrados. Las aplicaciones afines diferentes entre dos cuadrados, descritas por los coeficientes ai, bi, ci, di, aparte de la eventual contracción, son ocho:
Simetría respecto de diagonal secundaria (simetriads.m) Los coeficientes a, b, c, d, identifican, sucesivamente, a cada una de las 8 posibles isometrías del cuadradrado, de forma que es necesario comparar 8x58081=464648 cuadrados F con cada uno de los 1024 cuadrados destino D. Además cada cuadrado F tiene 4 veces mas pixels que cada destino D, de forma que es necesario en cada caso promediar los valores de pixel de los bloque 4x4 en F. La comparación minimiza la distancia de los pixels de F (transformado y promediado) y D. Para hacer esto, supongamos que tenemos un bloque F, su transformado F, y el destino D, todos con con el mismo número n de pixels. Es necesario hacer mínima la función |
||||
|
|
||||
|
donde designamos con f y p los pixels de F y D, respectivamente. Aplicando la condición necesaria de extremo resulta |
||||
![]() |
||||
|
Si el denominador para si es 0, entonces si=0. Hallado el valor mínimo obtenemos, para cada bloque D, un colectivo a, b, c, d, e, f, s, o. Puesto que la codificación debe recoger las localizaciones de los bloques fuente D, y las transformaciones afines, que incluyen brillo y contraste, teóricamente, serían necesarios 1024x8x32 bits=262144 bits (32768 bytes) para describir la imagen comprimida. En la práctica, se precisan 8 bits para determinar la posición de D, 7 bits para o, 5 bits para s y 3 bits para la isometría, lo que totaliza 3968 bytes para el ejemplo desarrollado. Teniendo en cuenta que partimos de una imagen con 256x256x1 = 65536 bytes la razón de compresión resultante es |
||||
|
|
||||
|
La recuperación de la imagen (descomprimida) se realiza aplicando la correspondiente transformación de Hutchinson en forma iterativa, partiendo de una imagen arbitraria. |
||||
| INDEPEN-DENCIA DE LA RESOLUCIÓN |
Como en el caso de los SFI, los SFIP describen una imagen sin resolución fija. En realidad, el patrón está determinado por las dimensiones en pixels (anchura por altura). Todo lo que sucede a partir de este patrón original es un proceso de interpolación, añadiendo nuevo detalle artificial, sin relación real con detalles reales. En cualquier caso, esta propiedad de independencia de la resolución, puede ser útil. Eliminando de los propósitos centrales la búsqueda de una alta compresión, se codifica la imagen mediante un SFIP de muy alta calidad, que permita, en tiempo de descodificación, realizar una interpolación fina que muestre el detalle deseado. |
|||
| MÉTRICA | Es posible seleccionar varias métricas para comparar imágenes (por supuesto, del mismo tamaño). Por ejemplo, | |||
![]() |
||||
| TÉCNICAS DE PARTICIÓN |
Un problema de la ilustración descrita es el tamaño fijo de los bloques. Hay regiones de la imagen que precisan de un tamaño pequeño de bloque para resultar bien descritas (ojos de Lena) y otras que no precisan tamaños tan pequeños. De hecho, para conseguir niveles elevados de compresión, sería conveniente manejar bloque grandes. Otro problema está relacionado con los recursos computacionales necesarios para realizar la compresión (tiempo). En este caso, estarían relacionados con las búsquedas necesarias para comparar todos los bloques fuente con todos los bloques destino. Para la formación de las familias de bloques se hace uso de varias técnicas alternativas: partición quadtree, partición horizontal-vertical (H-V), partición triangular, etc. Partición quadtree Partición HV Partición triangular |
|||
| CLASIFICA- CIÓN |
Puesto que constatamos que uno de los problemas clave que influyen en la velocidad de compresión es el número de bloques fuente que es necesario procesar y comparar con un número determinado a priori de bloques destino, aparte de las diferentes técnicas para la construcción de familias, existen métodos para la reducción de efectivos de las mismas basadas en clasificaciones. Existen numerosos esquemas de clasificación. Uno de ellos consiste en caracterizar los bloques (fuente y destino) de acuerdo con su contenido. Así, se consideran
Borde, mid-range y shade (de izquierda a derecha) extraídos de Lena De esta forma la estrategia se reduce a comparar solamente aquellos bloques fuente-destino que se encuentran en la misma familia. Otros parámetros que se pueden añadir para una clasificación adicional son la desviación típica de los niveles de gris de un bloque y el número de niveles de gris dominantes dentro de un bloque, cantidad que hace referencia a un umbral que se estima de forma subjetiva. |
|||
| CONCLU- SIONES |
En general, no existen implantaciones de esquemas fractales puros, siendo la tendencia a combinar mecanismos que perfeccionen aspectos diferentes del resultado obtenido. En todo caso, estos métodos han demostrado que son una alternativa a considerar cuando el interés es comprimir una vez, descomprimir muchas veces. Este es el caso de información preparada sobre CD-ROM o DVD.
Imagen original, decodificada CF y decodificada JPEG (de izquierda a derecha) |
|||