lunes, 20 de agosto de 2012

Más info del filtro xbr

He hecho una traducción  de un post de Hunter K sobre el filtro este, de lo mas importante y eso.

Este post compara el popular algoritmo HQx con el más nuevo xBR. Si quieres descargar los filtros, los puedes bajar del enlace de abajo.

Desde que Maxim Stepin crease el algoritmo de HQx hace más de una decada, se ha visto favorecido por la interpolación en tiempo real en el mundo de la emulación. Del modo que funciona es mirando cada pixel y comparandolo con los colores adyacentes. Si encuentra uno que encaja, el filtro compara el patron resultado con una tabla predefinida que para intentar representarlo.

Por ejemplo, si usamos un patrón como este:



y lo escalamos de la manera más simple--que es, una ampliación sin interpolación--tendrás este patrón de tablero:


Pero, si usas HQ2x, tendrás esto:



El algoritmo cree que el patron original esta intentando representar una linea diagonial más que un patrón de tablero, así que filtra los bordes para compensar.

Recientemente, un programador brasileño llamado Hyllian (aka Jararaca) creó un nuevo algoritmo que mejora al HQx, comocido como xBR (viene de "un filtro que escala por reglas").

xBR funciona del mismo modo que HQx pero está basado en reconocimiento de patrones, y puede escalar sobre patrones con el mismo resultado. Además, va más allá del HQx usando 2-fases de reglas de interpolación, que permiten manejar patrones mas complejos tales como antialias de lineas y curvas.

Adicionalmente, el algoritmo de xBR tiene factores de escala más algos y más sencillos que el HQx, haciendo unas 3-, 4-, 5- veces más rapido y efectivo el proceso.

A valores de escala muy altos (5 o más), el algoritmo xBR puede no mostrar algunos detalles, como pupulas de los ojos, puntos, y similares, por eso Hyllian introdujo algunos calculos adicionales para compensar (5xBR-v3.5a [sin conpensar] vs 5xBR-v3.5b [compensado]):






Por supuesto, la compensacion viene de sus propias pruebas a base de prueba y error, así que pueden variar las bases de un juego a otro.

Actualización: Hyllian hizo una tercera version que es incluso más precavido en el proceso. Aquí hay un GIF comparando las diferentes versiones con texto:


Otro aspecto interesante de este algoritmo es que funciona de manera muy efectiva con imagenes ya escaladas con xBR, así que puedes conseguir facilmente imagenes de un tamaño absurdo (escaladas a 1x, 3x, 9x and 27x) con unos intentos:
Esto lo pone en una competicion favorable con el metodo de la vectorizacion que hace poco ha sonado. xBR intenta mantener el detalle un poco mejor que el vectorizado, y permite trabajar en tiempo real, no como el vectorizado.

http://filthypants.blogspot.com.es/2012/03/xbr-vs-hqx-interpolation-filter.html

3 comentarios:

  1. Ahora una pregunta quisas un poco tonta, si yo quiero usar estos algoritmos para mejorar imagenes por ejemplo con photoshop ¿existe algun modo de hacer?, por que viendo como trabaja las lineas negras me parece ideal para por ejemplo mejorar escaneos.

    ResponderEliminar
  2. Pues no sé, los ficheros estos .shader o .cpi, si no los soporta el programa, no se podrán usar

    ResponderEliminar
  3. Dónde se ponen y como se activan estos filtros en el snes9x?

    ResponderEliminar

Los comentarios deben pasar una moderación.