Escalado de imagen

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 29 de diciembre de 2015; las comprobaciones requieren 69 ediciones .

El escalado de imágenes  es cambiar el tamaño de una imagen digital manteniendo la relación de aspecto . Escalar significa tanto un aumento (“ ampliación ” del inglés upscaling ) como una disminución (“ reducción de escala ” del inglés downscaling ) de la resolución de la imagen . Es muy utilizado en gráficos por computadora , procesamiento de video , en particular, se implementa a nivel de hardware en televisores y reproductores de video .   

Al mismo tiempo, dependiendo del tipo de gráficos ( ráster , vector ), el escalado se realiza mediante diferentes algoritmos . El escalado de imágenes vectoriales se produce sin pérdida de calidad de la imagen, mientras que al aumentar las imágenes rasterizadas, la calidad de la imagen puede perderse: son posibles distorsiones significativas en la geometría de pequeños detalles y la aparición de patrones falsos en las texturas . Por lo tanto, al escalar mapas de bits, se utilizan algoritmos especializados para suavizar los efectos no deseados.

Métodos de escalado de propósito general

La teoría general de los métodos de escalado se describe en el artículo Remuestreo .

Si la imagen tiene pequeños detalles contrastantes, es importante convertirla a un espacio de color lineal; de lo contrario (si la fuente está en sRGB ), el "desorden" resultante de luz y oscuridad en la imagen reducida será más oscuro de lo necesario.

La ventana del filtro de remuestreo es igual al tamaño del píxel de origen o de destino, el que sea mayor [1] .

Muchos algoritmos necesitan píxeles virtuales fuera del búfer de fotogramas. Dependiendo del propósito del algoritmo, puede hacer que la imagen sea físicamente unos pocos píxeles más grande o tomar datos de otro lugar usando el método if-then . Los datos se pueden tomar de los bordes (si se trata de una imagen terminada), tomar píxeles vacíos (si la imagen es un sprite ) o tomar píxeles del otro lado de la imagen (si la imagen debe repetirse sin problemas ) .

Aumentar

Para aumentar, generalmente no usan filtros de remuestreo en forma general, sino un caso especial: la interpolación.

La forma más sencilla de duplicar la resolución es copiar el método de píxel más cercano , que reemplaza cada píxel con cuatro píxeles del mismo color, mientras que la imagen, aunque conserva los detalles del original, adquiere un " efecto de escalera " no deseado . El mismo método se puede usar para cambios más sutiles en la resolución, por ejemplo, para una escala de 99% o 101%, respectivamente, eliminar o duplicar cada centésima de punto.

El método de interpolación bilineal proporciona cierta conservación de la suavidad de los contornos de la imagen, pero a veces provoca efectos no deseados de suavizado de detalles y aún genera un "efecto de escalera" bastante notable. Un método más avanzado es utilizar la interpolación bicúbica .

Disminuir

Para reducir imágenes, la convolución se usa con una u otra función del kernel. El método del vecino más cercano corresponde a un rectángulo estrecho, interpolación bilineal - un núcleo triangular... A menudo, para reducir fotos, se usa el filtro Lanczos , que da nitidez subjetiva, y un filtro rectangular ( box filter ), que desenfoca la imagen.

Uso de métodos de zoom para alejar y viceversa

Una pequeña reducción (hasta 0,5×) se lleva a cabo a menudo por interpolación. A coeficientes más altos, comienza la pérdida de información, de ahí la recomendación que surgió en los días de los primeros editores de fotos para reducir en etapas, no más de dos veces a la vez.

La interpolación del vecino más cercano y la interpolación bilineal, como la más simple, se utilizan cuando se requiere escalado en tiempo real en juegos y software de gráficos. La textura MIP se basa en tomar una textura cualitativamente reducida de un tamaño adecuado y luego escalarla mediante interpolación con un factor cercano a uno.

El método de convolución del kernel utilizado al reducir, al aumentar (si establece el ancho de ventana correcto - 1 píxel original) no daña la calidad, pero puede generar un trabajo de cálculo adicional. Algunos núcleos (como el filtro Lanczos ) introducen sus propios artefactos cuando se amplían más del doble.

El filtro rectangular se utiliza en los juegos de píxeles modernos (años 2010 y posteriores) para aumentar la imagen dos veces o más, incluso con un factor no entero [2] .

Métodos para escalar pixel art

Para ampliar imágenes de color pequeño en baja resolución , los algoritmos especiales son los más adecuados , desarrollados para gráficos de trama, que permiten, con ligeras distorsiones en la precisión de las formas de dibujo, preservar y enfatizar contornos claros y detalles finos. También existen algoritmos anti-aliasing adecuados para procesar fotografías e imágenes raster multicolores con efecto de escalera, agrupados bajo el nombre de "métodos de superescala" ( ing.  supersampling ).

Comparación

La tabla compara los algoritmos de escala realizados con el software gratuito 2dimagefilter .

Algoritmo Imagen
(imágenes originales)
Super-xBR 4x
Águila 3x
hq3x
Escala 3x
XBR 3x
Superáguila
SuperSaI
Sal 2x
Escala 2x

Métodos para escalar gráficos vectoriales

Los gráficos vectoriales se pueden representar en cualquier resolución que desee. Pero hay matices.

Una tarea separada es escalar una imagen obviamente vectorial/ gráfica renderizada a una trama y posiblemente distorsionada por algoritmos de compresión (por ejemplo, para restaurar caricaturas ). La tarea no es tan restrictiva como el rastreo de ráster  : si, por ejemplo, se detecta un relleno degradado, no es necesario convertirlo en vectores primitivos. Para esto, por ejemplo, existe un algoritmo de red neuronal waifu2x .

Distancia a la diferencia visible

Los datos científicos utilizados para calcular la resolución del ojo humano son la base para calcular la distancia de visualización óptima para diferentes resoluciones de pantalla. Cuando esté sentado a la distancia óptima, podrá ver todos los detalles en la pantalla sin mirar los píxeles individuales. La distancia óptima depende del tamaño de la pantalla. Cuanto más grande sea la pantalla, más lejos podrá sentarse de ella.

Si estás sentado a la distancia óptima, verás todos los detalles de la imagen. A medida que se aleje de la pantalla, los detalles se perderán y la imagen se verá más suave. Si está viendo contenido 4K en un televisor 4K y está sentado a la distancia óptima para un televisor 1080p , verá una imagen 4K en la pantalla, pero sus ojos verán 1080p.

Uso en emuladores de consolas de juegos

Gracias al potente componente de hardware de las computadoras modernas , es posible utilizar algoritmos de escalado de imágenes en tiempo real para videojuegos. Los algoritmos altamente optimizados brindan una imagen clara y detallada con un efecto de desenfoque mínimo, sin requerir recursos significativos del sistema. Se utilizan en muchos emuladores de consolas de juegos como HqMAME , DOSBox y ScummVM .

Los algoritmos de escalado de imágenes se utilizan en emuladores comerciales de Xbox Live , Virtual Console y PlayStation Network y permiten a los jugadores, fanáticos de los juegos de baja resolución de los años 80 y 90, ver sus juegos favoritos con una calidad de imagen aceptable en pantallas HD . Dichos algoritmos se utilizan en Sonic's Ultimate Genesis Collection , Castlevania: The Dracula X Chronicles , Castlevania: Symphony of the Night y Akumajō Dracula X Chi no Rondo .

Problemas de escalado de imágenes

Al escalar imágenes, el problema más común es el efecto "irregular", que se elimina con los algoritmos de suavizado . En este caso, los píxeles adyacentes al píxel del borde de la imagen toman un valor intermedio entre el color de la imagen y el color de fondo, creando un degradado y desenfocando el borde.

El escalado de la imagen con suavizado depende del modelo de color adoptado en ella. El modelo de pantalla estándar es sRGB con una curva de respuesta polinomial por partes, que se aproxima bien a una curva de potencia . Sin embargo, la mayoría de las bibliotecas de gráficos tratan sRGB como un espacio lineal. El problema se nota menos en las fotos y más en los dibujos.

Existe un algoritmo simple para aumentar el arte de píxeles ("vecino más cercano avanzado") con un factor fraccional de 2 o más, pero no existe un algoritmo similar con un factor de 1 a 2. Por lo tanto, los juegos modernos (años 2010) con gráficos de píxeles intentan para hacer al menos dos veces la resolución más pequeña que la máquina de destino [2] .

Los historiadores están seriamente preocupados por los algoritmos de redes neuronales que generan detalles automáticamente, porque generan algo que no estaba en la imagen original. Y puede resultar que la imagen más popular sea una imagen técnicamente de mayor calidad, pero no auténtica. O después de ejecutar un servicio similar, el propietario eliminará el original de "baja calidad" [3] .

Véase también

Notas

  1. Conceptos básicos del remuestreo de imágenes . Consultado el 11 de mayo de 2020. Archivado desde el original el 23 de enero de 2022.
  2. 1 2 Gamasutra: blog de Lars Doucet: hacer un remake en HD de la manera correcta . Consultado el 3 de marzo de 2020. Archivado desde el original el 3 de marzo de 2020.
  3. Cuando escucho las palabras "la red neuronal restaurada", subo para verificar las copias de seguridad / Sudo Null IT News . Consultado el 3 de marzo de 2020. Archivado desde el original el 2 de marzo de 2020.

Literatura

Enlaces

incluyendo la familia Hqnx, SaI, Eagle, EPX, XBR, XBRz, Lanczos, etc.