Desarrollo de predictor de píxel adaptativo para mapas de bits Development of adaptive pixel predictor for bitmaps Javier Garduño Cimental [email protected] Resumen: L os mapas de bits, por naturaleza, consumen gran cantidad de espacio de almacenamiento. Si bien se han desarrollado muy diversos y sofisticados métodos de compresión para los mismos, han quedado relegados los métodos destinados a una compresión sin pérdida de información. El resultado de este trabajo pretende paliar esta carencia. Considerando que no es posible comprimir cualquier ráfaga de datos de un tamaño particular a uno más pequeño, y que un mapa de bits puede ser cualquier arreglo arbitrario de valores, se analizan algunos supuestos y principios asociados a las imágenes que pueden tener algún sentido para el observador, de manera que sea posible conseguir que dicho subconjunto, el de las imágenes con sentido, sea el favorecido por algún algoritmo compresor. El mecanismo ideado es un predictor de pixel, un algoritmo destinado a transformar los datos originales de un mapa de bits, sin que esto conlleve a una pérdida de información en los mismos. El resultado es un nuevo conjunto de datos con menor entropía que los datos originales, cualidad que favorece su compresión. Palabras clave: Algoritmo, compresión, imagen, matemáticas, predictor, mapa de bits, heurística, pixel. Abstract: Bitmaps, by nature, consume lots of storage space. While many have developed very sophisticated compression methods for them, those methods for lossless compression of information have been left behind. The result of this paper aims to fill this gap. Whereas it is not possible to compress any data burst of a particular size to a smaller, and that a bitmap can be any arbitrary arrangement of values, we analyze some assumptions and principles associated with the images that might make some núm. 11, 2012, pp. 97-118 sense to the observer, so that it is possible to make this subset, the images with meaning, favored by any compressor algorithm. The mechanism developed is a predictor of pixel, an algorithm designed to transform the original data of a bitmap, without this leading to a loss of information therein. The result is a new set of data with less entropy than the original data, a quality that enhances their compression. Keywords: Algorithm, compression, image, mathematics, predictor, bitmap, heuristic, pixel. 97 Javier GabinoGarduño EduardoCimental Castrejón García Introducción L os mapas de bits consumen gran cantidad de espacio de almacenamiento. Por tal motivo, es ideal la compresión de la información que constituye dicha imagen. Si bien existen muchos métodos de compresión, la mayoría de ellos están diseñados para realizar una reducción de tamaño con pérdida de información, quedando relegados los métodos que realizan la misma tarea sin pérdida de la misma. Normalmente, estos últimos incluyen un proceso encargado de transformar la información a fin de facilitar el alcance de mejores tasas de compresión. Sin embargo, dichos procesos son en extremo simples. Con la creación de este algoritmo se pretende llenar el nicho creado por las técnicas usadas tradicionalmente. El objetivo es encontrar una forma de transformar un mapa de bits (imagen) de forma que coadyuve a mejorar su compresión utilizando un algoritmo tradicional de compresión entrópica (Huffman)1, o similar. Entendiendo la compresión La compresión de datos hace referencia a la habilidad de reducir la cantidad de bits utilizados en el almacenamiento de tales datos. Por tasa de compresión se hace referencia a la razón que existe entre el tamaño original de los datos y el tamaño de la versión comprimida de los mismos. Es decir: Donde C es la tasa de compresión, D es el tamaño original de los datos, y d es el tamaño de los datos comprimidos. Mayores valores de C son mejores. En la teoría de la información, la información es tratada como una magnitud. Es cuantificable, y para caracterizar la información de una secuencia de símbolos, que es la manera en que se almacena los datos de un mapa de bits, se utiliza la entropía. La entropía y la no inyectividad de la compresión son conceptos de suma importancia en el desarrollo de este trabajo. Entropía Se refiere al grado de incertidumbre que existe en la aparición de símbolos en una secuencia de símbolos. 1 98 Huffman, D.A., A method for the construction of minimum-redundancy codes. En Resonance, vol 11 núm 2, pp 91–99, 2006. DESARROLLO DE PREDICTOR DE PÍXEL ADAPTATIVO LA RESPONSABILIDAD PATRIMONIAL DEL ESTADO PARA MAPAS DE BITS Definición formal de entropía2 La entropía medida en bits se define formalmente como: Matemáticas e Ingeniería Donde: p(xi) es la probabilidad de que la variable discreta x se encuentre en el estado xi. El conjunto de todos los xi representa los n símbolos posibles que puede contener una cadena de símbolos. No inyectividad de la compresión Para todos los casos una secuencia de símbolos, como la que podría estar almacenando una imagen, se codifica como una secuencia de bits. Dicha secuencia ordenada se puede considerar un número de base 2. Teniendo esto en cuenta, podemos establecer la siguiente propiedad general: Sea M el conjunto de todos los números de base n que se pueden escribir con m dígitos. Sea K el conjunto de todos los números de base n que pueden ser escritos con k dígitos. Donde: Para cada M existen exactamente m - 1 subconjuntos K. Llámese Tm al conjunto que contiene a dichos conjuntos K, quedando definido como: Al ser disjuntos los conjuntos Ki, el conjunto Tm posee una cardinalidad: Shannon, Claude E., A Mathematical Theory of Comunication, en The Bell System Technical Journal, vol 27, pp 379–423, 623–653, Julio Octubre 1948. 2 99 Javier GabinoGarduño EduardoCimental Castrejón García La cardinalidad de Tm no es otra cosa que la suma de la cardinalidad de cada uno de los subconjuntos Ki que lo constituyen. Llamemos regla de compresión a la función C que, recibiendo como entrada un elemento de M, dé como resultado un elemento de Tm, tal que para cada elemento de Tm generado por C, exista uno y sólo un elemento de M que lo haya generado. Por tal motivo, la función C no puede generar un elemento de Tm para todos y cada uno de los elementos de M. De lo que se concluye que no todo elemento de M puede ser asociado a un elemento de cualquier conjunto K de forma inyectiva. Además, nos muestra una relación inversa entre la razón de compresión y la fracción de datos que se pueden comprimir. En otras palabras, podemos decir lo siguiente: Lema 1. No es posible que todos los datos de tamaño m se compriman a un tamaño menor k, siempre que sea utilizada la misma regla de compresión. Lema 2. A mayor tasa de compresión, menor la cantidad de conjuntos de datos que pueden alcanzarla. Obtención del predictor de pixel En muchos casos, la información que posee un flujo de datos ha sido generada por un proceso no aleatorio. Esto convierte a dicho flujo de datos en algo potencialmente predecible. La predictibilidad de la información abre la posibilidad de reducir su entropía. Con todo lo anterior presente, se pretende crear un predictor de pixel que cumpla las siguientes funciones: • Explotar el orden y características intrínsecas que poseen las imágenes, con el fin de predecir su comportamiento, generando en el proceso un nuevo flujo de datos con menor entropía, facilitando así su compresión. • Servir como método de discriminación, alentando la compresión del subconjunto de imágenes que tengan sentido para el observador, sobre las imágenes carentes de él. Propósito del predictor de pixel Su objetivo es transformar el conjunto de datos que constituyen un mapa de bits, de forma que la aplicación de un método de compresión resulte en un conjunto de datos más pequeño. La forma de conseguirlo es prediciendo el valor de los pixeles, almacenando solamente las diferencias que posea con respecto al valor real. Se desea además que la compresión resultante sea “sin pérdida”. Para que todo ello resulte posible deben cumplirse las siguientes condiciones: 100 DESARROLLO DE PREDICTOR DE PÍXEL ADAPTATIVO LA RESPONSABILIDAD PATRIMONIAL DEL ESTADO PARA MAPAS DE BITS Condición 1. El predictor debe realizar una transformación sin pérdida de información. Condición 2. El predictor debe poseer inversa. Es decir, debe ser posible obtener los datos de la imagen original a partir del nuevo flujo de datos generado por el predictor. Supuestos Imagen ideal Una imagen ideal puede ser concebida como un campo escalar, donde el valor asociado a cada punto es su brillo correspondiente. Es una función donde su valor depende de la posición (x, y) considerada. Se puede expresar como: Matemáticas e Ingeniería Al hablarse de imagen, se hará referencia a un gráfico constituido por un solo canal de color. Para imágenes que contengan un número mayor de canales, como las imágenes en color, se utilizará el término imagen multicanal. Donde es un vector de coordenadas cartesianas (x, y) que representa cada punto de la imagen ideal. Un mapa de bits puede ser concebido como un muestreo de la función Φ donde cada muestra corresponde a un pixel. Imágenes posibles e imágenes con sentido Un mapa de bits puede ser cualquier arreglo de valores, pero no resulta interesante ni necesario tener la capacidad de comprimir todas las imágenes posibles. No todas las imágenes posibles tienen sentido para el observador. El propósito será, por tanto, encontrar un método que permita discriminar entre ambos tipos de imágenes: las que tienen “sentido” de las que no. De forma que el pequeño conjunto de imágenes con sentido sea el subconjunto de imágenes posibles que se compriman más. La definición de imagen con sentido es vaga hasta ahora. La pregunta entonces es: ¿qué significa exactamente imagen con sentido? Es necesario definir el concepto de manera formal. Para definir a una imagen con sentido, necesitamos conocer las características que debe tener una impresión visual, para que nuestro cerebro la interprete como información con significado relevante. Siguiendo principios muy elementales de la psicología del Gestalt, se nos dice que la percepción funciona a base de “recortes” en los cuales se posa la atención y llamamos “figuras”. Las zonas que circundan a los “recortes” o “figuras” son llamadas “fondo”. A esto se le conoce como Ley de figura-fondo3. Para que nuestro cerebro tome alguna sección de la imagen como figura es necesario que cumpla ciertas características, por 3 Köhler, Wolfgang, Psicología de la configuración, Ediciones Morata, 1967. 101 Javier GabinoGarduño EduardoCimental Castrejón García ejemplo, que dicha sección posea un color similar, o que tenga un fuerte contraste con los elementos que se encuentran a su alrededor, o bien, poseer alguna clase de patrón que no posee el resto de la imagen. En este caso particular, se aprovecharán estos principios como punto de partida para definir las características que cumple una imagen con sentido. Se puede decir lo siguiente: Definición 1. Una imagen con sentido está conformada por grandes áreas de valor (color) similar. Aquí se intenta hacer cumplir la Ley de figura-fondo, y en particular, uno de los rasgos característicos que hacen a la mente humana separar una figura de su fondo circundante: el contraste entre ellos. Asumimos que grandes áreas de color similar serán entendidas como la misma figura. Y que toda imagen con sentido está constituida de figuras. Hasta aquí, el término grandes áreas es ambiguo. Pero veremos que no es necesario definirlo explícitamente. Los pixeles, como expresiones del componente más pequeño e indivisible de un mapa de bits, son por naturaleza de poco tamaño. Su fin no es representar ni ser percibidos individualmente como una estructura en el gráfico que conforman. Son, de hecho, el detalle más insignificante que una imagen puede contener. En vista de lo anterior, podemos decir que: Definición 2. Un área grande consiste en un conjunto arbitrario de pixeles adyacentes entre sí. Siguiendo lo anterior, podemos deducir que dentro de un área grande, se cumple que: Definición 3. El valor de un pixel tiende a ser igual al valor de un pixel adyacente. De no ser el caso no se podría cumplir la definición 1, puesto que no se formarían grandes áreas de valor (color) similar. Grandes áreas de color no implican, necesariamente, que todos los pixeles que las conforman posean exactamente el mismo valor. Formulemos aquí, un supuesto un tanto aventurado, y fruto del sentido común: Definición 4. Para áreas grandes del mismo color, los valores de los pixeles intermedios a otros dos colocados en posiciones arbitrarias, tienden a contener los valores intermedios a los de dichos pixeles arbitrarios. Si los pixeles intermedios a otros dos no poseen sus valores también intermedios, se fomentarán diferencias más grandes entre pixeles adyacentes en el trayecto que va de un pixel arbitrario a otro. Lo cual, basándonos en la definición 3 es una situación más improbable, y por tanto, tendrá menor frecuencia de aparición. El comportamiento que 102 DESARROLLO DE PREDICTOR DE PÍXEL ADAPTATIVO LA RESPONSABILIDAD PATRIMONIAL DEL ESTADO PARA MAPAS DE BITS fomenta la definición 3 es una transición suave en los valores, pues minimiza las diferencias de valor entre pixeles adyacentes. Pixeles vecinos Los pixeles vecinos a otro llamado c se han denominado de la siguiente manera: γ (gamma), n (norte), δ (delta), o (oeste), e (este), α (alfa), s (sur) y β (beta). Su configuración se encuentra esquematizada en la figura 1. Matemáticas e Ingeniería Con esto en mente, se utilizarán los pixeles más próximos que sea posible para estimar el valor del pixel que se desea predecir. Figura 1: Pixeles vecinos. Donde los pixeles en gris son vecinos de c. Disponer de todos los pixeles vecinos de c significa que conocemos el valor de cada uno de ellos, lo cual sería ideal al momento de realizar la predicción. Sin embargo, no es conveniente la idea de utilizar todos los pixeles vecinos de c. De ser el caso, no podríamos obtener la imagen original a partir de los datos del nuevo flujo de datos generado por el predictor. Por tal motivo es indispensable que el algoritmo de predicción se base en datos que no necesiten al pixel por predecir para ser conocidos. Esto se consigue analizando de forma secuencial la imagen, utilizando solamente pixeles previamente conocidos. La forma tradicional para almacenar un mapa de bits es secuencial, de forma que se aprovecha una característica intrínseca a su naturaleza de esta manera. El recorrido usual para ordenar los pixeles de un mapa de bits es el siguiente: • El primer pixel es el situado en el extremo derecho de la línea superior de la imagen. • El consecutivo de cualquier pixel será siempre el situado a su derecha, si es que existe. De no existir se optará por el situado en el extremo izquierdo de la línea inmediatamente inferior. Si tampoco existe un pixel con esas características, se dice entonces que se ha alcanzado el último pixel. 103 Javier GabinoGarduño EduardoCimental Castrejón García Figura 2: Orden de los pixeles en una imagen. Usando la definición, los pixeles vecinos a c que pueden ser utilizados, de forma que del nuevo conjunto de datos se pueda obtener la imagen original, son: γ , n, δ y o. Considerando que, en esencia, las imágenes pueden ser cualquier arreglo de valores, se ha optado por buscar un predictor adecuado utilizando técnicas estadísticas y heurísticas. Plano simple El concepto de plano simple sirve como base para obtener una primera aproximación al valor del pixel desconocido c. Tomando dos pixeles arbitrarios de la imagen que pertenezcan a un área grande del mismo color, se tenderá a obtener una transición suave de valores en los pixeles intermedios. Se deduce que: Definición 5. La transición de valores tiene una dirección definida y una gradiente promedio, representada por: Donde d es la distancia entre los pixeles c1 y c2. Figura 3: Los pixeles c1 y c2 se encuentran a una distancia arbitraria d en una dirección arbitraria θ. Sus valores asociados se representan aquí por la tonalidad asignada a cada uno, y la transición de valores en los pixeles intermedios como la línea degradada que los une. 104 DESARROLLO DE PREDICTOR DE PÍXEL ADAPTATIVO LA RESPONSABILIDAD PATRIMONIAL DEL ESTADO PARA MAPAS DE BITS Esto es más fácil de observar si parametrizamos cada pixel con la triada ordenada (x, y, v), donde x e y se corresponden con las coordenadas cartesianas del pixel en el mapa de bits, y v con el valor (color) asociado a él. Esto convierte la imagen en una función v = f(x, y). Cada pixel se concibe como una muestra de dicha superficie. La distancia mínima entre dos puntos cualesquiera de una imagen es la distancia entre dos pixeles vecinos. De forma que esta distancia constituye el incremento más pequeño en el plano (x, y) sobre el cual es posible medir una razón de cambio. En este caso, un cambio en v. De forma que los pixeles vecinos a un pixel c, se convierten en el recurso ideal para realizar una aproximación del gradiente de la imagen en ese punto. Son necesarios al menos tres pixeles que no se encuentren sobre la misma recta, para calcular un gradiente. Los pixeles ideales para calcular dicho plano, por su cercanía a c, son: γ, n y o. Basta entonces calcular el plano correspondiente y medir su inclinación para así extrapolar el valor de c. Matemáticas e Ingeniería Estimación del gradiente Definición 6. El plano común al que pertenecen los pixeles γ, n y o de un pixel c cualquiera, es el plano simple de c. Al igual que la imagen, el plano simple es una función v’ = g(x, y). Los pixeles mencionados se encuentran posicionados de forma tal, que son los vértices de un paralelogramo. Esto resulta conveniente, pues convierte al cálculo del gradiente, y por tanto el de una primera estimación del valor de c, en una tarea sumamente sencilla; lo cual resulta recomendable. El centro de este paralelogramo imaginario, punto que denominaremos p, es también el punto medio entre los pixeles o y n. Por la definición 4, sabemos que el valor estimado de la imagen en p no es otra cosa que el punto medio de los valores de o y n. Pero no sólo eso, es también el punto medio entre los valores de γ y c. De forma que la estimación de c resulta muy simple. Basta estimar el valor de la imagen en p con ayuda de o y n, y extrapolar el valor de c utilizando γ y el valor de p previamente calculado, de forma que el resultado sea el valor de v’ en las coordenadas de c. Figura 4: Posición relativa en el plano (x, y) de los pixeles vecinos de c, que conforman al plano simple, el punto p, y las rectas que los unen. 105 Javier GabinoGarduño EduardoCimental Castrejón García Así, el valor estimado de c según el cálculo de plano simple es: Donde cs es la estimación de c por el método de plano simple. En la práctica, no es posible asignar todos los posibles valores de cs a c. Esto se debe a que los pixeles c sólo son capaces de almacenar un valor que se encuentre dentro de un rango previamente establecido, que está definido por la especificación del formato de mapa de bits utilizado. En los casos donde cs resulte un valor inválido para c, se seguirán las siguientes directrices: • Si el valor de cs es estrictamente mayor al límite superior del rango de c, entonces, cs tomará el valor de dicho límite superior. • Si el valor de cs es estrictamente menor al límite inferior del rango de c, entonces, cs tomará el valor de dicho límite inferior. Evaluación del método de plano simple Si los supuestos en los que se basa la predicción de plano simple son correctos, su aplicación a un conjunto de datos que no cumpla las características esperadas para una imagen con sentido resultará menos eficiente. La imagen más alejada de la ideal imagen con sentido es un ruido blanco, ya que el valor de un pixel carece de relación alguna con el valor de uno adyacente. Condiciones de prueba Imágenes El predictor de plano simple se puso a prueba con un conjunto de 132 imágenes debidamente seleccionadas. El conjunto está formado enteramente por imágenes multicanal, siguiendo el modelo sRGB4, con profundidad de 8 bits por canal. Sin embargo, sólo es necesario analizar un solo canal de color. Con este propósito, se decidió convertir las imágenes a un modelo de escala de grises con profundidad de 8 bits, siguiendo la definición establecida por la Unión Internacional de Telecomunicaciones en su especificación ITU-R 7095. La información de corrección de gamma, de existir, ha sido descartada. Como grupo de control, se han utilizado 31 imágenes de ruido en escala de grises de la misma profundidad de color. Poynton, Charles, Frequently Asked Questions about Color, consultado en: http://www.poynton.com/PDFs/ColorFAQ.pdf, el 2010-08-14, 1997 International Telecommunications Union, Basic Parameter Values for the HDTV Standard for the Studio and for International Programme Exchange, 1990. 4 5 106 DESARROLLO DE PREDICTOR DE PÍXEL ADAPTATIVO LA RESPONSABILIDAD PATRIMONIAL DEL ESTADO PARA MAPAS DE BITS Pixeles empleados Resultados Distribución del error en la predicción En el ruido, los errores se distribuyen en forma triangular. El número de pixeles posibles para cometer un error (por exceso o escasez, según el caso) se reduce de forma lineal al aumentar el valor absoluto de dicho error. La distribución típica se puede observar en la figura 5. Matemáticas e Ingeniería No todos los pixeles pertenecientes a una imagen se han utilizado en la prueba. La razón es que no todo pixel de una imagen posee vecinos γ, n, δ y o a la vez. De forma que no se han tomado en cuenta los pixeles pertenecientes a la primera fila de la imagen, así como los de la primera y última columna. Es el procedimiento seguido en todas las pruebas. Figura 5: Distribución típica de los errores de predicción por plano simple, cuando éste es aplicado al ruido Es el comportamiento esperado en el caso de un predictor que de resultados sin relación alguna con los valores a predecir. Se intenta verificar si la distribución de los errores en la predicción aplicada al ruido y a las imágenes con sentido es simétrica. En ambos casos, se aplicó el mismo test estadístico de asimetría6, bajo las siguientes hipótesis: H0: La distribución de los datos es simétrica. H1: La distribución no es simétrica. Para todas las imágenes de ruido analizadas se determina como verdadera la hipótesis H0. La tabla 1 muestra el promedio del coeficiente de sesgo y el valor-p de las pruebas, realizadas con una significancia del 0.05 a 31 diferentes imágenes de ruido. Prueba definida en: Zwillinger, D. y Kokoska, S.. CRC Standard Probability and Statistics Tables and Formulae. Chapman & Hall: New York. 2000. Sección 2.2.24.1. 6 107 Javier GabinoGarduño EduardoCimental Castrejón García Ruido (errores en la predicción) Coeficiente de sesgo Prueba de sesgo (valores-p) 0.0001409 0.6856337 Promedio Tabla 1: El promedio para los coeficientes del sesgo obtenido al analizar 31 imágenes de ruido. Asimismo, el promedio de los valores-p para las pruebas de sesgo del mismo conjunto. En el caso de imágenes con sentido, el error se distribuye de forma diferente. Tal y como puede apreciarse en la figura 6, que es representativa de este comportamiento, se observa un patrón distinto. Figura 6: Distribución típica de los errores de predicción por plano simple, cuando éste es aplicado a una imagen con sentido Salvo contadas excepciones, las distribuciones del error para la predicción aplicada a imágenes con sentido, no pasan la prueba de simetría. A pesar de su apariencia, son esencialmente no-simétricas. Imágenes con sentido (errores en la predicción) Promedio Coeficiente de sesgo Prueba de sesgo (valores-p) -0.0005462 0.0388129 Tabla 2: El promedio para los coeficientes de sesgo del error en la predicción obtenido al analizar imágenes con sentido. De igual manera, el promedio de los valores-p para la prueba de sesgo del mismo conjunto Al no ser simétricas, no podemos asumir la distribución normal de los errores, pero es posible notar una diferencia estadísticamente significativa entre ambas poblaciones. 108 DESARROLLO DE PREDICTOR DE PÍXEL ADAPTATIVO LA RESPONSABILIDAD PATRIMONIAL DEL ESTADO PARA MAPAS DE BITS Desviación estándar promedio del error en la predicción Ruido Imágenes con sentido 118.9920367 8.6577798 La destacable diferencia entre las desviaciones estándar y la diferencia en la simetría de ambas poblaciones, son las pruebas más contundentes sobre la diferencia de comportamiento del predictor entre ellas, así como de su eficacia al momento de intentar predecir el valor de los pixeles. Entropía calculada Se presenta el resumen del cálculo de la entropía por tipo de imagen: Matemáticas e Ingeniería Tabla 3: La dispersión por tipo de imagen (ruido e imagen con sentido) es claramente discernible, según los datos arrojados Entropía del error en la predicción Promedio Desviación estándar Ruido Imágenes con sentido 7.9992612 0.0000655 4.2026105 0.8729370 Tabla 4: Entropía promedio del error y desviación estándar del error por tipo de imagen Los datos revelan la entropía máxima que posee el error de predicción aplicado al ruido, acercándose al máximo teórico de 8.07. Se revela la profunda diferencia que existe entre ambos grupos de datos. Se demuestra así, que el predictor de pixel por plano simple realiza una transformación de los datos que es distinguible de una transformación arbitraria, y además, que lo hace de la forma deseada y esperada. Predicción de errores en cs Resulta indudable que la predicción por plano simple contendrá errores, y es deseable averiguar si dichos errores son también predecibles. Se intentó predecir dicho error buscando heurísticamente correlaciones entre él y otras variables involucradas en el proceso. Evaluando con posterioridad su eficacia en la reducción de los errores. Las variables elegidas para este análisis son las siguientes: Error de predicción por plano simple (cs – c). El error de predicción por el método de plano simple. Es el valor que se busca minimizar. Como se recordará, la profundidad de color de las imágenes empleadas en la prueba es de 8 bits. Por tanto, la entropía máxima medida en bits, es también 8. 7 109 Javier GabinoGarduño EduardoCimental Castrejón García Diferencia con delta (δ - cs). La diferencia entre el valor del pixel δ y el valor de la predicción por plano simple. Se elige con la intención de encontrar alguna correlación entre el error y el pixel δ vecino de c. Inclinación izquierda (p – o). Se llama de esta forma a la cantidad que cumple la siguiente igualdad: Donde m es la derivada direccional del segmento de línea dirigido . Inclinación derecha (p - γ). Se llama de esta forma a la cantidad que cumple la siguiente igualdad: Donde m es la derivada direccional del segmento de línea dirigido . Las inclinaciones izquierda y derecha son una herramienta para categorizar al plano simple en función de su gradiente. Esto puede verse con más claridad en la figura 7. Figura 7: Inclinación del plano simple. Esta puede ser izquierda o derecha, según se muestra en el presente esquema. La inclinación del plano simple no es una rotación. Las flechas circulares sólo existen para facilitar la comprensión del esquema. Distribución de pixeles y errores por tipo de inclinación Al graficar la inclinación izquierda contra la inclinación derecha, asignando un color diferente según la magnitud del error en la predicción por plano simple, se obtiene una gráfica por imagen con características típicas. Un ejemplo de estas gráficas se presenta en la figura 8. 110 DESARROLLO DE PREDICTOR DE PÍXEL ADAPTATIVO LA RESPONSABILIDAD PATRIMONIAL DEL ESTADO PARA MAPAS DE BITS Para el total de las imágenes analizadas las gráficas evidencian una correlación entre la inclinación derecha y la magnitud del error, considerando que valores positivos de la inclinación derecha muestran mayoría de puntos amarillos y rojos, asociados a errores positivos. Mientras que valores negativos de inclinación derecha muestran mayoría de puntos azules y verdes, asociados a errores negativos. Se evaluará la pertinencia de considerar dicha correlación real en función de su capacidad para reducir el error en la predicción final. Matemáticas e Ingeniería Figura 8: Inclinación izquierda vs. inclinación derecha. La magnitud del error por pixel se denota de acuerdo al color mostrado en la escala Es de notar que para el total de imágenes analizadas los gradientes se concentran en el centro, y en aquellos puntos donde el valor absoluto de las inclinaciones es muy similar, formando un patrón en forma de “X”. La presencia del patrón en forma de “X”, se interpreta como una evidencia a favor de la validez de la definición 3. Figura 9: Distribución típica de error vs. inclinación derecha utilizando predicción por plano simple aplicado a una imagen con sentido 111 Javier GabinoGarduño EduardoCimental Castrejón García Analizando dicha correlación entre la inclinación derecha y el error de predicción para imágenes con sentido, se obtiene lo siguiente: Coeficiente de correlación (promedio) Desviación estándar (promedio) 0.4799453 0.1155479 Tabla 5: Coeficiente de correlación promedio y desviación estándar promedio para todas las imágenes con sentido analizadas En el total de las imágenes analizadas existe un coeficiente de correlación positiva, cercana a 0.5. Con base en lo anterior, una corrección del valor predicho debe utilizar una razón positiva de la inclinación derecha. Sin embargo, se ha considerado irrelevante tomar a consideración la pendiente de una recta de regresión de los errores para establecer dicha razón por dos motivos: (1) resulta muy variable entre imágenes y, (2) es recomendable elegir un valor sencillo que favorezca la resolución rápida del problema en la computadora. Análisis de propuestas Plano simple secundario En el intento de involucrar al pixel δ en el cálculo de la predicción, se intentó una nueva estrategia creando un segundo plano simple que involucre el valor de dicho pixel. La diferencia radica en los pixeles utilizados en su definición. Definición 7: El plano común al que pertenecen los pixeles n, δ y o de un pixel c cualquiera, es el plano simple secundario de c. El análogo al punto p de este plano se le llamará q. Resulta fácil descubrir que se cumplen todas y cada una de las relaciones entre los pixeles involucrados, si se realizan las sustituciones correspondientes, y al igual que con el plano simple, es posible efectuar una predicción con base en él. Figura 10: Posición relativa en el plano (x, y) de los pixeles vecinos de c, que conforman al plano secundario, el punto q, y las rectas que los unen 112 DESARROLLO DE PREDICTOR DE PÍXEL ADAPTATIVO LA RESPONSABILIDAD PATRIMONIAL DEL ESTADO PARA MAPAS DE BITS Tabla de sustitución Plano secundario γ n o p c n δ o q c Tabla 6. Correspondencia de pixeles del plano simple, respecto al plano secundario. Aplicando la sustitución, es posible realizar cálculos homólogos. Propuestas de corrección Se eligió probar con diversos variantes del predictor. Su elección tiene el propósito de considerar la correlación del error y la inclinación derecha mencionada con anterioridad, así como incluir a un pixel no tomado en cuenta hasta ahora: el pixel δ, gracias a la utilización del plano simple secundario. Matemáticas e Ingeniería Plano simple Corrección 1 a 1: Por cada unidad de incremento en la inclinación derecha se efectúa un decremento unitario en el valor de cs, y viceversa. Si p no es entero, se tomará el entero adyacente a p más cercano al valor de cs. Corrección 1 a 1/2: Por cada unidad de incremento en la inclinación derecha se efectúa un decremento de 1/2 en el valor de cs, y viceversa. Cuando este valor no sea entero, se tomará el entero adyacente más cercano al valor de p. Corrección 1 a 3/2: Por cada unidad de incremento en la inclinación derecha se efectúa un decremento de 3/2 en el valor de cs, y viceversa. Cuando este valor no sea entero, se tomará el entero adyacente más cercano al valor de cs. Corrección 1 a 1 de plano secundario: Por cada unidad de incremento en la inclinación izquierda del plano secundario, se efectúa el incremento en una unidad en el valor de la predicción por plano secundario. Cuando este valor no sea entero, se tomará el entero adyacente más lejano al valor de cs. Corrección 1 a 1/2 de plano secundario: Por cada unidad de incremento en la inclinación izquierda del plano secundario, se efectúa el incremento de un medio en el valor de la predicción por plano secundario. Cuando este valor no sea entero, se tomará el entero adyacente más lejano al valor de cs. Asimismo, se utilizan también variantes que son el promedio de algunos de los métodos listados. En estos casos, si la predicción final no es entera, se tomará el entero adyacente más lejano al valor de cs. 113 Javier GabinoGarduño EduardoCimental Castrejón García Clasificación de pixeles Para segmentar la eficiencia de las propuestas, se clasificó a los pixeles según el gradiente del plano simple asociado a ellos. Pixeles tipo X: Son aquellos que poseen un plano simple en el cual el valor absoluto de la inclinación derecha e izquierda es el mismo, o bien, difieren en una unidad. Pixeles tipo U: Son los pixeles que tienen un plano simple donde el valor absoluto de la inclinación derecha es mayor al de la izquierda en más de una unidad. Pixeles tipo L: Son los pixeles que tienen un plano simple donde el valor absoluto de la inclinación izquierda es mayor al de la derecha en más de una unidad. Resultados Se ha calculado la entropía promedio de cada método propuesto por cada uno de los tipos de pixel establecidos, obteniendo lo siguiente: Entropías promedio Plano simple Plano simple (1 a 1) Plano simple (1 a 3/2) Plano simple (1 a 1/2) Plano secundario Promedio [Plano simple, Plano secundario] Plano secundario (1 a 1/2) Promedio [Plano simple(1 a 1/2), Plano secundario (1 a 1)] Promedio [Plano simple(1 a 1/2) Plano secundario (1 a 1/2)] X U L 3.4137 3.4093 3.5735 3.3399 3.9641 3.5515 3.8835 5.1118 5.0333 5.5286 4.7924 5.1931 4.8677 5.1272 4.8439 4.9954 5.1672 4.8901 5.6941 5.1746 5.5584 3.5758 4.7834 5.2005 3.5460 4.7737 5.1439 Tabla 6: Entropías promedio por predictor y tipo de pixel. De los datos anteriores podemos concluir que los mejores predictores por tipo de pixel son los siguientes: Pixel tipo X. Predictor por plano simple con corrección 1 a 1/2. La predicción es ce, donde: 114 DESARROLLO DE PREDICTOR DE PÍXEL ADAPTATIVO LA RESPONSABILIDAD PATRIMONIAL DEL ESTADO PARA MAPAS DE BITS Si el valor de ce no es entero, se redondeará al entero más próximo a p. Pixel tipo U. Predictor por promedio de plano simple con corrección 1 a 1/2 y plano secundario con corrección 1 a 1/2. Si el valor de ce no es entero, se redondea al entero más próximo a cs. Donde: Matemáticas e Ingeniería La predicción es ce donde: Para los casos donde el pixel δ no está disponible, se aplica el mismo predictor que el usado para los pixeles tipo X. Pixel tipo L: Predictor por plano simple. La predicción es ce, donde: Se debe anotar que para todos los casos se ha establecido que: Si el valor de ce es estrictamente mayor al límite superior del rango que puede almacenar un pixel, entonces, ce tomará el valor de dicho límite superior. Si el valor de ce es estrictamente menor al límite inferior del rango que puede almacenar un pixel, entonces, ce tomará el valor de dicho límite inferior. Implementación Los resultados anteriores fueron implementados en una especificación para almacenar mapas de bits (SPB), la cual fue expresamente creada para tal propósito. Los detalles de dicha especificación no se exponen aquí, pero se puede indicar que es capaz de almacenar una versión comprimida de un mapa de bits, por medio del algoritmo Gzip. El mapa de bits se trata previamente con el predictor de pixel descrito con anterioridad. Es capaz de almacenar versiones en escala de grises con o sin canal alpha, e imágenes en modo de color sRGB, con o sin canal alpha. 115 Javier GabinoGarduño EduardoCimental Castrejón García Casos especiales En el desarrollo del predictor de pixel precedente se han dejado a un lado de forma intencional aquellos casos atípicos donde el pixel por predecir, debido a su ubicación, carece de uno o más de los pixeles adyacentes necesarios para realizar la predicción. La implementación del algoritmo sí los toma en cuenta, y se presentan los siguientes predictores auxiliares: Valor por defecto. Aplica a la primera muestra de cada canal, cuando no existen muestras previas que puedan ser analizadas para obtener una predicción. Se establece como predicción el valor medio del rango total de c. Pixel anterior. Se utiliza para todas las muestras que forman parte de la primera fila del mapa de bits, excepto la primera muestra. Se establece como predicción el valor del pixel anterior. Pixel superior. Se utiliza para todas las muestras que forman parte de la primera columna del mapa de bits, excepto la primera muestra. Se establece como predicción el valor del pixel superior. 3 pixeles. Predicción utilizada para todas las muestras de la última columna del mapa de bits, siempre que no pertenezcan a la primera fila. Se establecen como predictores los mejores posibles para cada tipo de pixel (X, U o L) de acuerdo al análisis desarrollado con anterioridad, siempre que no hagan uso del pixel δ (que no está disponible en esos casos). Pruebas Se ha tomado una muestra de 33 imágenes diferentes a las utilizadas en el desarrollo del predictor, a las que se ha sometido a dos procesos de codificación: • Codificación como imagen SPB (la descrita anteriormente). • Codificación como variante de imagen SPB (SPBtest), que es idéntica a la codificación SPB tradicional, excepto en el proceso de filtrado de pixeles, donde se utiliza el predictor de Paeth8 siempre que es posible. Dicho predictor es ampliamente usado en la compresión de imágenes por su reconocida eficiencia. Para el resto de pixeles se utilizan los mismos predictores que en la especificación SPB. El tamaño resultante en bytes se muestra en la siguiente tabla: 8 116 Paeth, A. W., Image File Compression Made Easy. en Graphics Gems II. Academic Press, 1991. DESARROLLO DE PREDICTOR DE PÍXEL ADAPTATIVO LA RESPONSABILIDAD PATRIMONIAL DEL ESTADO PARA MAPAS DE BITS Imagen SPB SPB/SPBtest 6,399,819 16,793,362 2,518,255 23,805,772 16,791,644 6,344,894 8,023,638 44,676,151 16,984,991 11,760,360 6,540,183 27,749,431 14,210,413 9,912,544 19,399,412 15,793,593 6,202,777 6,148,379 7,128,750 5,446,897 6,469,015 9,730,167 5,540,647 6,397,765 11,977,202 7,024,793 4,751,957 8,244,812 27,094,664 11,923,112 22,616,283 22,887,959 928,870 6,151,637 15,787,152 2,399,356 22,536,898 15,556,930 6,187,642 7,715,144 43,563,402 15,886,171 10,667,948 6,157,838 27,534,558 13,256,127 9,422,133 18,176,219 15,341,207 6,219,708 5,766,102 6,845,181 5,116,772 6,130,908 9,092,717 5,295,561 5,892,107 10,663,550 7,013,593 4,431,724 7,812,771 25,811,650 10,854,181 20,997,765 21,642,637 1,040,294 0.961 0.940 0.953 0.947 0.926 0.975 0.962 0.975 0.935 0.907 0.942 0.992 0.933 0.951 0.937 0.971 1.003 0.938 0.960 0.939 0.948 0.934 0.956 0.921 0.890 0.998 0.933 0.948 0.953 0.910 0.928 0.946 1.120 Matemáticas e Ingeniería 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 SPBtest Tabla 7: Tamaño en bytes de las imágenes comprimidas utilizando el predictor desarrollado en éste trabajo y el predictor Paeth, ampliamente usado en la industria. Como es posible comprobar, a excepción de las imágenes 16 y 32, todas y cada una de ellas han generado un tamaño de archivo menor al conseguido utilizando el predictor de Paeth. Considerando que los mapas de bits son una muestra aleatoria de imágenes con sentido, está más allá de toda duda razonable que el predictor desarrollado aquí supera en desempeño al conocido como Paeth. 117 Javier GabinoGarduño EduardoCimental Castrejón García Conclusiones El resultado de esta prueba corrobora los resultados previamente obtenidos en el proceso de creación del predictor de mapa de bits: (1) el predictor genera un flujo de datos con menor entropía que la imagen con sentido original, (2) permite restaurar el flujo de datos original, (3) presenta un mejor desempeño en el tipo de imágenes analizadas que el predictor Paeth. Referencias bibliográficas • • • • • • • HUFFMAN, D.A., A method for the construction of minimum-redundancy codes. En Resonance, vol 11 núm 2, pp 91–99, 2006. SHANNON, Claude E., A Mathematical Theory of Comunication, en The Bell System Technical Journal, vol 27, pp 379–423, 623–653, Julio - Octubre 1948. KÖHLER, Wolfgang, Psicología de la configuración, Ediciones Morata, 1967. PAETH, A. W., Image File Compression Made Easy. en Graphics Gems II. Academic Press, 1991. POYNTON, Charles, Frequently Asked Questions about Color, consultado en: http://www. poynton.com/PDFs/ColorFAQ.pdf, el 2010-08-14, 1997 International Telecommunications Union, Basic Parameter Values for the HDTV Standard for the Studio and for International Programme Exchange, 1990. ZWILLINGER, D. y Kokoska, S.. CRC Standard Probability and Statistics Tables and Formulae. Chapman & Hall: New York. 2000. JAVIER GARDUÑO CIMENTAL Estudió la Licenciatura en Matemáticas Aplicadas y Computación en la Facultad de Estudios Superiores Acatlán. Es desarrollador web, webmaster, y asesor de la Dirección de la misma Facultad desde 2005. Desarrolla software de manera independiente. Ha impartido cursos sobre temas afines, y ha fungido como ponente en la 1º Jornada para Webmasters de la UNAM. 118