
En el campo de los gráficos por ordenador y las imágenes digitales , el escalado de imágenes se refiere al cambio de tamaño de una imagen digital. En la tecnología de vídeo, la ampliación del material digital se conoce como aumento 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 utilizando transformaciones geométricas sin pérdida de calidad de 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 disminuir el número de píxeles (escalar hacia abajo), esto generalmente da como resultado una pérdida de calidad visible. 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ático
El escalado de imágenes puede interpretarse 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, el submuestreo a una imagen más pequeña a partir de un original de mayor resolución solo se puede realizar 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 transportar la imagen más pequeña.
En el caso del muestreo ascendente, un filtro de reconstrucción reemplaza al filtro anti-aliasing.
-
Imagen original de 160 x 160 píxeles -
Imagen original en el dominio de la frecuencia espacial
-
Filtrado paso bajo 2D , pero aún a 160x160px -
Imagen filtrada en el dominio de la frecuencia espacial
-
Imagen filtrada con paso bajo de 160 x 160 px, muestreada 4 veces a 40 x 40 px -
Muestreo ascendente de Fourier 4× de una imagen de 40 x 40 px reducida a 160 x 160 px (reconstrucción correcta) -
Muestreo ascendente de Fourier 4× de una imagen de 40 x 40 px reducida a 160 x 160 px (con alias)
Un enfoque más sofisticado para el escalado superior trata el problema como un problema inverso , resolviendo la cuestión de generar una imagen plausible que, al reducirse de escala, se parezca a la imagen de entrada. Se han aplicado diversas técnicas para esto, 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 la imagen es la interpolación del vecino más cercano , que reemplaza cada píxel por el píxel más cercano en la salida; para el aumento de escala, esto significa que habrá varios píxeles del mismo color. Esto puede conservar los detalles nítidos, pero también introducir irregularidades en imágenes que antes eran suaves. "El más cercano" en el vecino más cercano no tiene por qué ser el más cercano matemático. 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. [ cita requerida ]
Este algoritmo suele preferirse para imágenes que tienen pocos o ningún borde suave. Una aplicación común de esto se puede encontrar en el pixel art .
Algoritmos bilineales y bicúbicos
La interpolación bilineal funciona interpolando los valores de color de los píxeles, introduciendo una transición continua en el resultado 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. [ cita requerida ]
Remuestreo de Sinc y Lanczos
En teoría, el remuestreo sinc 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 con las imágenes digitales del mundo real. El remuestreo Lanczos , una aproximación al método sinc, produce mejores resultados. La interpolación bicúbica puede considerarse una aproximación computacionalmente eficiente al remuestreo Lanczos. [ cita requerida ]
Muestreo de cajas
Una debilidad de los algoritmos bilineales, bicúbicos y similares es que toman muestras de una cantidad específica de píxeles. Cuando se reduce la escala por debajo de un cierto umbral, como más del doble para todos los algoritmos de muestreo bi, los algoritmos tomarán muestras de píxeles no adyacentes, lo que da como resultado la pérdida de datos y resultados aproximados. [ cita requerida ]
La solución trivial a este problema es el muestreo de cajas, que consiste en considerar el píxel de destino como una caja en la imagen original y muestrear todos los píxeles dentro de la caja. 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. [ cita requerida ]
Mapa MIP
Otra solución al problema de reducción de escala del escalado bi-muestreo son los mipmaps . Un mipmap es un conjunto preescalado de copias reducidas de escala. Al reducir la escala, se utiliza el mipmap más grande más cercano como origen para garantizar que no haya una reducción de escala 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 costo es utilizar más memoria de imagen, exactamente un tercio más en la implementación estándar.
Métodos de transformada de Fourier
Una interpolación simple basada en la transformada de Fourier rellena el dominio de frecuencia con componentes cero (un enfoque basado en ventanas suaves reduciría el zumbido ). Además de la buena conservación (o recuperación) de los detalles, son notables el zumbido y el sangrado circular del contenido desde el borde izquierdo al borde derecho (y viceversa).
Interpolación dirigida por los bordes
Los algoritmos de interpolación dirigida por los bordes tienen como objetivo preservar los bordes en la imagen después del escalado, a diferencia de otros algoritmos, que pueden introducir artefactos de escalera.
Algunos ejemplos de algoritmos para esta tarea incluyen la interpolación dirigida por los bordes (NEDI), [1] [2] la interpolación de imágenes guiada por los bordes (EGGI), [3] la interpolación iterativa basada en la curvatura (ICBI), [ cita requerida ] y la interpolación de convolución cúbica direccional (DCCI). [4] Un análisis de 2013 encontró que DCCI tenía los mejores puntajes en la relación señal-ruido máxima y similitud estructural en una serie de imágenes de prueba. [5]
alta calidad
Para ampliar gráficos de 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 que se va a escalar. Luego, la versión independiente de la resolución se renderiza como una imagen rasterizada con la resolución deseada. Esta técnica la utilizan Adobe Illustrator , Live Trace e Inkscape . [6] Los gráficos vectoriales escalables son adecuados para imágenes geométricas simples, mientras que las fotografías no funcionan 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. Entre los programas que utilizan este método se incluyen waifu2x , Imglarger y Neural Enhance.
Demostración de mejora de escala convencional vs. waifu2x con reducción de ruido, utilizando un detalle de Phosphorus y Hesperus por Evelyn De Morgan . [Haga clic en la imagen para verla en tamaño completo]
-
Imagen original
-
Imagen ampliada al 200 % con PaintShop Pro
-
Imagen ampliada al 200 % usando waifu2x en modo Foto con reducción de ruido media
-
Imagen ampliada en un 400 % con Topaz AI Gigapixel con reducción de ruido baja
-
Imagen ampliada al 400 % con RealSR DF2K-JPEG
El software impulsado por inteligencia artificial, como MyHeritage Photo Enhancer, permite agregar detalles y nitidez a fotografías históricas que no están presentes en el original.
-
Fotografía de baja calidad de 270 × 368 píxeles de John Howard Lindauer , escaneada de un directorio de la Legislatura estatal -
La misma imagen mejorada y ampliada a 2160×2944 píxeles con Photo Enhancer de MyHeritage
Aplicaciones
General
El escalado de imágenes se utiliza, entre otras aplicaciones, en navegadores web , [7] 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 al imprimir imágenes a través de pantallas o impresoras.
Video
Esta aplicación permite ampliar imágenes para home theaters en dispositivos con salida HDTV a partir de contenido con resolución PAL, por ejemplo, de un reproductor de DVD. El aumento de escala se realiza en tiempo real y la señal de salida no se guarda.
Escalado de pixel art
Como los gráficos de pixel art suelen tener una resolución baja, se basan en la colocación cuidadosa de píxeles individuales, a menudo con una paleta de colores limitada. Esto da como resultado gráficos que dependen de 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 [8] para manejar gráficos de píxeles, ya que los algoritmos de escala tradicionales no tienen en cuenta las señales perceptivas.
Dado que una aplicación típica es mejorar la apariencia de los videojuegos de cuarta generación y anteriores en emuladores de arcade y consola , muchos están diseñados para ejecutarse en tiempo real para imágenes de entrada pequeñas a 60 cuadros 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 definidos, al tiempo que minimizan el desenfoque. Los algoritmos de escalado artístico 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 . Ganaron reconocimiento entre los jugadores, para quienes estas tecnologías alentaron un renacimiento de las experiencias de juego de los años 1980 y 1990. [ cita requerida ]
Estos filtros se utilizan actualmente en emuladores comerciales de Xbox Live , Virtual Console 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ō Dracula X Chi no Rondo .
Escalado en tiempo real
Varias empresas han desarrollado técnicas para mejorar la escala de 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 mejorar la resolución de las imágenes de menor resolución para su visualización en monitores de ordenador de mayor resolución. [9] La FidelityFX Super Resolution 1.0 (FSR) de AMD no emplea el aprendizaje automático, sino que utiliza algoritmos tradicionales escritos a mano para lograr un aumento de escala espacial en unidades de sombreado tradicionales. FSR 2.0 utiliza un aumento de escala temporal, de nuevo con un algoritmo ajustado a mano. Los ajustes preestablecidos estandarizados de FSR no se aplican, y algunos títulos como Dota 2 ofrecen controles deslizantes de resolución. [10] Otras tecnologías incluyen Intel XeSS y Nvidia Image Scaler (NIS). [11] [12]
Véase también
- Interpolación bicúbica
- Interpolación bilineal
- Reconstrucción de imágenes
- Remuestreo de Lanczos
- Interpolación de splines
- Tallado de costura
- Escalador de video
- Escala (geometría)
Referencias
- ^ "Interpolación dirigida por los bordes" . Consultado el 19 de febrero de 2016 .
- ^ Xin Li; Michael T. Orchard. "NUEVA INTERPOLACIÓN DIRIGIDA POR BORDES" (PDF) . 2000 IEEE International Conference on Image Processing : 311. Archivado desde el original (PDF) el 14 de febrero de 2016.
- ^ Zhang, D.; Xiaolin Wu (2006). "Un algoritmo de interpolación de imágenes guiado por bordes mediante filtrado direccional y fusión de datos". IEEE Transactions on Image Processing . 15 (8): 2226–38. Bibcode :2006ITIP...15.2226Z. doi :10.1109/TIP.2006.877407. PMID 16900678. S2CID 9760560.
- ^ Dengwen Zhou; Xiaoliu Shen. "Aumento de imagen mediante interpolación de convolución cúbica direccional" . Consultado el 13 de septiembre de 2015 .
- ^ Shaode Yu; Rongmao Li; Rui Zhang; Mou An; Shibin Wu; Yaoqin Xie (2013). "Evaluación del desempeño de métodos de interpolación dirigidos por los bordes para imágenes sin ruido". arXiv : 1303.6455 [cs.CV].
- ↑ Johannes Kopf y Dani Lischinski (2011). «Depixelizing Pixel Art». ACM Transactions on Graphics . 30 (4): 99:1–99:8. Archivado desde el original el 1 de septiembre de 2015. Consultado el 24 de octubre de 2012 .
- ^ Análisis de algoritmos de escalado de imágenes utilizados por navegadores web populares
- ^ "Pixel Scalers" . Consultado el 19 de febrero de 2016 .
- ^ "NVIDIA DLSS: respuestas a tus preguntas". www.nvidia.com . Archivado desde el original el 5 de octubre de 2021 . Consultado el 13 de octubre de 2021 .
- ^ "Dota 2 de Valve añade AMD FidelityFX Super Resolution - Phoronix" www.phoronix.com . Archivado desde el original el 21 de julio de 2021 . Consultado el 13 de octubre de 2021 .
- ^ Gartenberg, Chaim (19 de agosto de 2021). «Intel muestra su respuesta al DLSS de Nvidia, que llegará a las GPU Arc en 2022». The Verge . Archivado desde el original el 19 de agosto de 2021. Consultado el 13 de octubre de 2021 .
- ^ "¿Qué es el escalado de imágenes de Nvidia? Explicación de la tecnología de escalado". Tendencias digitales . 16 de noviembre de 2021 . Consultado el 3 de diciembre de 2021 .