Escalado de imagen

En gráficos por computadora e imágenes digitales, imagen escalado se refiere al cambio de tamaño de una imagen digital. En tecnología de vídeo, la ampliación del material digital se conoce como mejora de escala o mejora de la resolución.
Al escalar una imagen gráfica vectorial, las primitivas gráficas que componen la imagen se pueden escalar mediante transformaciones geométricas sin pérdida de calidad de la imagen. Al escalar una imagen de gráficos rasterizados, se debe generar una nueva imagen con un número mayor o menor de píxeles. En el caso de reducir el número de píxeles (reducir), esto suele provocar una pérdida visible de calidad. Desde el punto de vista del procesamiento de señales digitales, el escalado de gráficos rasterizados es un ejemplo bidimensional de conversión de frecuencia de muestreo, la conversión de una señal discreta de una frecuencia de muestreo (en este caso, la frecuencia de muestreo local) a otra.
Matemática
El escalado de imágenes se puede interpretar como una forma de remuestreo o reconstrucción de imágenes desde el punto de vista del teorema de muestreo de Nyquist. Según el teorema, la reducción de resolución a una imagen más pequeña a partir de un original de mayor resolución sólo se puede llevar a cabo después de aplicar un filtro anti-aliasing 2D adecuado para evitar artefactos de aliasing. La imagen se reduce a la información que puede contener la imagen más pequeña.
En el caso del muestreo ascendente, un filtro de reconstrucción reemplaza al filtro anti-aliasing.
- Imagen original 160x160px
- Imagen original en dominio de frecuencia espacial
- 2D de paso bajo filtrado, pero todavía en 160x160px
- Imagen filtrada en dominio de frecuencia espacial
- imagen de baja velocidad filtrada de 160x160px 4× abajoampled a 40x40px
- 4× Fourier upsampling of 40x40px downsampled image to 160x160px (correct reconstruction)
- 4× Acoplamiento de Fourier de imagen de 40x40px a 160x160px (con alias)
Un enfoque más sofisticado para la ampliación trata el problema como un problema inverso, resolviendo la cuestión de generar una imagen plausible que, cuando se reduce, se parecería a la imagen de entrada. Para ello se han aplicado diversas técnicas, incluidas técnicas de optimización con términos de regularización y el uso de aprendizaje automático a partir de ejemplos.
Algoritmos
El tamaño de una imagen se puede cambiar de varias maneras.
Interpolación del vecino más cercano
Una de las formas más sencillas de aumentar el tamaño de una imagen es la interpolación del vecino más cercano, reemplazando cada píxel con el píxel más cercano en la salida; para la ampliación, esto significa que estarán presentes varios píxeles del mismo color. Esto puede preservar los detalles nítidos en el pixel art, pero también introducir irregularidades en imágenes que antes eran suaves. 'Más cercano' en el vecino más cercano no tiene por qué ser el matemático más cercano. Una implementación común es redondear siempre hacia cero. Redondear de esta manera produce menos artefactos y es más rápido de calcular.
Algoritmos bilineales y bicúbicos
La interpolación bilineal funciona interpolando valores de color de píxeles, introduciendo una transición continua en la salida incluso cuando el material original tiene transiciones discretas. Aunque esto es deseable para imágenes de tonos continuos, este algoritmo reduce el contraste (bordes nítidos) de una manera que puede ser indeseable para el arte lineal. La interpolación bicúbica produce resultados sustancialmente mejores, con un aumento en el costo computacional.
Remuestreo de Sinc y Lanczos
El remuestreo sinc, en teoría, proporciona la mejor reconstrucción posible para una señal perfectamente limitada en banda. En la práctica, las suposiciones detrás del remuestreo sinc no se cumplen completamente en las imágenes digitales del mundo real. El remuestreo de Lanczos, una aproximación al método sinc, produce mejores resultados. La interpolación bicúbica puede considerarse como una aproximación computacionalmente eficiente al remuestreo de Lanczos.
Muestreo de cajas
Una debilidad de los algoritmos bilineales, bicúbicos y relacionados es que toman muestras de un número específico de píxeles. Cuando se reduce la escala por debajo de un cierto umbral, como más del doble para todos los algoritmos de bimuestreo, los algoritmos muestrearán píxeles no adyacentes, lo que resulta en pérdida de datos y resultados aproximados.
La solución trivial a este problema es el muestreo de cuadros, que consiste en considerar el píxel de destino como un cuadro en la imagen original y muestrear todos los píxeles dentro del cuadro. Esto garantiza que todos los píxeles de entrada contribuyan a la salida. La principal debilidad de este algoritmo es que es difícil de optimizar.
Mapa MIP
Otra solución al problema de reducción de escala del bimuestreo son los mapas mip. Un mapa MIP es un conjunto preescalado de copias reducidas. Al reducir la escala, el mapa MIP más grande más cercano se utiliza como origen para garantizar que no se escale por debajo del umbral útil de la escala bilineal. Este algoritmo es rápido y fácil de optimizar. Es estándar en muchos marcos, como OpenGL. El coste es utilizar más memoria de imágenes, exactamente un tercio más en la implementación estándar.
Métodos de transformada de Fourier
La interpolación simple basada en la transformada de Fourier rellena el dominio de la frecuencia con componentes cero (un enfoque suave basado en ventanas reduciría el timbre). Además de la buena conservación (o recuperación) de los detalles, destacan los zumbidos y el sangrado circular del contenido desde el borde izquierdo al derecho (y al revés).
Interpolación dirigida al borde
Los algoritmos de interpolación dirigida a los bordes tienen como objetivo preservar los bordes de la imagen después del escalado, a diferencia de otros algoritmos, que pueden introducir artefactos de escalera.
Los ejemplos de algoritmos para esta tarea incluyen la nueva interpolación dirigida por bordes (NEDI), la interpolación de imágenes guiada por bordes (EGGI), la interpolación iterativa basada en curvatura (ICBI) y la interpolación de convolución cúbica direccional (DCCI). Un análisis de 2013 encontró que DCCI tenía las mejores puntuaciones en PSNR y SSIM en una serie de imágenes de prueba.
Hqx
Para ampliar gráficos por computadora con baja resolución y/o pocos colores (generalmente de 2 a 256 colores), se pueden lograr mejores resultados con hqx u otros algoritmos de escalado de pixel art. Estos producen bordes nítidos y mantienen un alto nivel de detalle.
Vectorización
La extracción de vectores, o vectorización, ofrece otro enfoque. La vectorización primero crea una representación vectorial independiente de la resolución del gráfico a escalar. Luego, la versión independiente de la resolución se representa como una imagen rasterizada con la resolución deseada. Esta técnica la utilizan Adobe Illustrator, Live Trace e Inkscape. Los gráficos vectoriales escalables se adaptan bien a imágenes geométricas simples, mientras que a las fotografías no les va bien con la vectorización debido a su complejidad.
Redes neuronales convolucionales profundas
Este método utiliza el aprendizaje automático para obtener imágenes más detalladas, como fotografías y obras de arte complejas. Los programas que utilizan este método incluyen waifu2x, Imglarger y Neural Enhance.
- Demostración del aumento convencional vs Waifu2x con reducción de ruido, utilizando un detalle de Phosphorus y Hesperus por Evelyn De Morgan. Haga clic para tamaños completos.
- Imagen original
- Imagen escalada 200% utilizando PaintShop Pro
- Imagen escalada 200% usando waifu2x en modo Foto con reducción de ruido mediano
- Imagen escalada 400% utilizando Topaz A.I. Gigapixel con reducción de ruido bajo
- Imagen escalada 400% utilizando RealSR DF2K-JPEG
El software impulsado por IA, como MyHeritage Photo Enhancer, permite agregar detalles y nitidez a fotografías históricas, donde no están presentes en el original.
- Baja calidad 270×368 pixel fotografía de John Howard Lindauer, escaneado desde un directorio Legislature del Estado
- La misma imagen mejorada y escalada a 2160×2944 píxeles por MyHeritage Photo Enhancer
Aplicaciones
Generalidades
El escalado de imágenes se utiliza, entre otras aplicaciones, en navegadores web, editores de imágenes, visores de imágenes y archivos, lupas de software, zoom digital, el proceso de generación de imágenes en miniatura y cuando se generan imágenes a través de pantallas o impresoras.
Vídeo
Esta aplicación es la ampliación de imágenes para sistemas de cine en casa para dispositivos de salida preparados para HDTV a partir de contenido de resolución PAL, por ejemplo, de un reproductor de DVD. La ampliación se realiza en tiempo real y la señal de salida no se guarda.
Escalado de pixel art
Como los gráficos pixel art suelen ser de baja resolución, dependen de la colocación cuidadosa de los píxeles individuales, a menudo con una paleta de colores limitada. Esto da como resultado gráficos que se basan en señales visuales estilizadas para definir formas complejas con poca resolución, hasta píxeles individuales. Esto hace que escalar el pixel art sea un problema particularmente difícil.
Se desarrollaron algoritmos especializados para manejar gráficos pixel-art, ya que los algoritmos de escala tradicionales no tienen en cuenta las señales de percepción.
Dado que una aplicación típica tiene como objetivo mejorar la apariencia de los videojuegos de cuarta generación y anteriores en emuladores de arcade y consolas, muchas están diseñadas para ejecutarse en tiempo real para imágenes de entrada pequeñas a 60 fotogramas por segundo.
En hardware rápido, estos algoritmos son adecuados para juegos y otros procesamientos de imágenes en tiempo real. Estos algoritmos proporcionan gráficos nítidos y nítidos, al tiempo que minimizan el desenfoque. Los algoritmos de arte de escalado se han implementado en una amplia gama de emuladores como HqMAME y DOSBox, así como en motores de juegos 2D y recreaciones de motores de juegos como ScummVM. Obtuvieron reconocimiento entre los jugadores, para quienes estas tecnologías alentaron un resurgimiento de las experiencias de juego de los años 80 y 90.
Estos filtros se utilizan actualmente en emuladores comerciales de Xbox Live, la consola virtual y PSN para permitir que los juegos clásicos de baja resolución sean más atractivos visualmente en las pantallas HD modernas. Los juegos lanzados recientemente que incorporan estos filtros incluyen Sonic's Ultimate Genesis Collection, Castlevania: The Dracula X Chronicles, Castlevania: Symphony of the Night, y Akumajō Drácula X Chi no Rondo.
Escalado en tiempo real
Varias empresas han desarrollado técnicas para mejorar los fotogramas de vídeo en tiempo real, como cuando se dibujan en la pantalla de un videojuego. El supermuestreo de aprendizaje profundo (DLSS) de Nvidia utiliza el aprendizaje profundo para muestrear imágenes de menor resolución a una resolución más alta para mostrarlas en monitores de computadora de mayor resolución. FidelityFX Super Resolución 1.0 (FSR) de AMD no emplea aprendizaje automático, sino que utiliza algoritmos tradicionales escritos a mano para lograr una ampliación espacial en unidades de sombreado tradicionales. FSR 2.0 utiliza ampliación temporal, nuevamente con un algoritmo ajustado manualmente. Los ajustes preestablecidos estandarizados de FSR no se aplican y algunos títulos como Dota 2 ofrecen controles deslizantes de resolución. Otras tecnologías incluyen Intel XeSS y Nvidia Image Scaler (NIS).
