El objetivo para este filtro era, por una parte suavizar los bordes de la imagen y por otra, eliminar en general el pixelado, que se produce con el filtro de interpolación aplicado al zoom normal de NEGA, aunque es mucho más rápido en ejecución, y útil para determinados niveles no muy elevados de aumento, está basado en el filtro de punto vecino cercano (nearest neighbor,) pero su eficiencia es muy pobre e insuficiente, como se puede apreciar en la imagen Fig.1.

Fig.1. Zoom normal (nearest neighbor)

Fig.1. Zoom normal (nearest neighbor)

Por ese motivo, se decidió estudiar un nuevo filtro basado en SINC.

El filtro, según el manual del NIST(National Institute of Standards and Technology) de la universidad de Cambridge sobre funciones matemáticas.(1) está basado en la función matemática llamada Seno Cardinal (Sinc), su interpretación matemática tiene dos formas

Para la función NO normalizada y x ≠ 0 . Ver Fig.2

Fig.2. SINC (no normalizada)

Fig.2. SINC (no normalizada)

Para filtrar nuestro tipo de señal tenemos la función normalizada para x ≠ 0. Ver Fig.3

Fig.3. SINC (normalizada)

Fig.3. SINC (normalizada)

Para los dos casos si x = 0 entonces  sinc(0) = 1

La normalización, es la forma de la función que nosotros utilizaremos para el filtro, dicha normalización, hace que la integral definida de la función, para los números reales sea igual a 1 (en la no normalizada da lo mismo) los ceros de la función normalizada, así mismo, son valores enteros de x.

Dicha función normalizada, es la transformada de Fourier de la función rectangular sin escala.

Los pasos por cero de la onda senoidal, en la función no normalizada, son múltiplos distintos de cero y enteros de PI, en la función normalizada de SINC los pasos por cero, son números enteros no nulos.

La función SINC, tiene la particularidad de que en un procesamiento de señal, elimina todos los componentes de una determinada frecuencia de corte, sin afectar a las frecuencias bajas, con una fase lineal de respuesta. Lo que lo hace un filtro “ideal” y perteneciendo a los filtros electrónicos llamados, de pared de ladrillo.

Su respuesta a un impulso es una función SINC en el dominio del tiempo . Ver Fig.4

Fig.4. Impulso SINC / Tiempo

Fig.4. Impulso SINC / Tiempo

Sin embargo, la respuesta a la frecuencia de un filtro SINC es una función rectangular. Ver Fig.5.

Fig.5. SINC respuesta señal cuadrada

Fig.5. SINC respuesta señal cuadrada

En la aplicación real, se asigna a cada muestra de la señal una copia a escala y traducida del Kernel Lanczos, que no es más que una función SINC, con ventana por el lóbulo central de un segundo tiempo, la suma de estos núcleos traducidos y escalados se evalúa a continuación.

La interpolación es multivariable y es el mejor método de interpolación comparado con otros filtros, como la interpolación cúbica, lineal, Mitchel, de punto vecino cercano, etc…

Dicho Kernel está definido como la función SINC normalizada:

Fig.6. Kernel SINC normalizada

Fig.6. Kernel SINC normalizada

 

Fig.7. Lanzos kernel a= 2 y 3

Fig.7. Lanzos kernel a= 2 y 3

El parámetro a es un entero positivo, se suele aplicar desde 2 hasta 10, el núcleo Lanczos tendrá 2a-1 lóbulos un positivo en el centro y a-1 lóbulos alternantes positivos y negativos, en cada lado del central. En la Fig.7 se puede ver un ejemplo para valores 2 y 3.

La interpolación se define para una señal unidimensional como:

Para valores enteros de i dadas unas muestras Si para el valor de S(x) interpolado en un argumento verdadero de x y arbitrario por la convolución discreta de las muestras con el kernel de Lanczos

 

 

blankDonde a es el parámetro de tamaño del filtro y  es la función suelo. Los límites de esta suma son tales que el núcleo es cero fuera de ellos.

Mientras el parámetro a es un entero positivo, el núcleo es continuo en todas partes, su derivada se define continua en todas partes incluso cuando x = ±a en donde ambas funciones SINC van a cero. Por lo que la función S(x) perteneciente a la señal reconstruida también será continua, con derivada continua.

El núcleo será cero en cada número entero argumento x, excepto en x= 0 donde tiene valor 1. La señal reconstruida interpola, por tanto, exactamente las muestras dadas y tendremos S(x) = si para cada argumento entero x= i.

Jim Blinn (James F. Blinn) físico senior y científico informático estadounidense, experto en gráficos por computador en la NASA Jet Propulsión Laboratory(JPL) y el instituto Tecnológico de Nueva York. Afirmó que el kernel Lanczos con a= 3  “mantiene las frecuencias bajas y rechaza las altas frecuencias mejor que cualquier filtro (realizable) que hemos visto hasta ahora”

Estudio de MacWinLinCPS para la adaptación del filtro en NEGA

El problema de aplicar a > 1 en el kernel lanczos es que la señal interpolada puede ser negativa incluso si las muestras son positivas, esto puede provocar que las señales interpoladas, sean más amplias que el intervalo abarcado por los valores de muestra discretos, dando lugar a artefactos de anillo justo antes y después de los cambios bruscos de los valores de la muestra esto puede conducir a artefactos de recorte. Estos efectos se reducen si a = 2, pero la desventaja de bajar tanto el valor es que se pierde detalle en la interpolación en ciertos cambios de frecuencia bruscos y si bajamos a=1 el filtro no tiene casi efecto.

Con a=3 los resultados son aceptables y no se generan demasiados artefactos de anillo ni de recorte, pero ahora veremos porqué no es suficiente.

La imagen de la izquierda representa a=3 (Fig.8) y la de la derecha a=8 (Fig.9) los artefactos son más apreciables que en la a=3, pero también los detalles interiores de la letra, son más resaltados.

Fig.8 Kernel Lanczos con a=3

Fig.8 Kernel Lanczos con a=3

Fig.9. Kernel Lanczos con a=8

Fig.9. Kernel Lanczos con a=8

 

Debido a esto se ha optado por retocar el filtro para aproximar el valor en determinados casos de mucho aumento, con el valor a= 8, para corregir el ruido gráfico que provocan los artefactos generados por el filtro, se recomienda aplicar el filtro de enfoque, en cualquier nivel que sea aceptable según la imagen, este filtro se rediseñó para adaptarse a esto, aplica una convolución en las muestras, lo que provoca un nuevo filtraje de paso alto en determinadas frecuencias, la aplicación de estos dos filtros en conjunto, hace los efectos de un filtro de paso banda, limitando frecuencias mayoritariamente altas.

Este es el resultado después de aplicar el filtro de enfoque a las imágenes anteriores con el filtro kernel lanczos a=3 y a=8 respectivamente. Se puede apreciar sobre todo en la imagen de la derecha que tiene el filtro kernel Lanczos con valor de a=8, que se conservan igualmente los detalles interiores de la letra, pero han desaparecido completamente los artefactos que rodeaban a la letra en las zonas de mayor cambio brusco de frecuencia de las muestras.

blank

Fig.10 Lanczos 3 y focus

blank

Fig.11. Lanczos 8 y focus

Este filtro para el Zoom HQ junto con el de enfoque de NEGA Apcp, es el que mejor optimiza el alisado de bordes(antialiasing) e interpolación óptima para ampliación digital de imagen, además se han hecho pruebas y es el que mejor calidad obtiene en ampliaciones, no solo en cualquier tipo de imagen, sino en especial en textos escritos y documentos, siendo ideal para análisis forenses de pericia caligráfica y documentoscopia. NEGA es el único software del mercado que aplica el zoom,  los filtros y herramientas únicamente sobre la imagen, no distorsionando su origen, ni las indicaciones que hayamos incluido como flechas textos o marcadores, la activación de las herramientas y filtros sigue un método prefijado internamente, así el orden de activación no es importante, y la imagen queda sin distorsión alguna al desactivar filtros y zoom, sin embargo si utilizas Photoshop, Corel o Gimp, y cambias el orden de activación o desactivación de los filtros, zoom etc.., no obtienes los mismos resultados.