Registrarse
Resultados 1 al 6 de 6
  1. #1
    Ingreso
    30 abr, 08
    Ubicación
    Madrid
    Mensajes
    883
    Post Thanks / Like

    Eliminación de artefactos de interpolación

    Esta entrada está desactualizada y ha sido eliminada.
    Última edición por ManuelLlorens; 24/11/2008 a las 11:12
    Manuel Llorens

    Olympus E-P1, E-510, E-300
    www.rawness.es

  2. #2
    Ingreso
    30 abr, 08
    Ubicación
    Madrid
    Mensajes
    883
    Post Thanks / Like
    Podéis olvidaros de todo lo anterior . Al final, y después de muchas, pero que muchas, pruebas en el día de ayer, lo mejor viene al día siguiente. No hay como dormir para aclararse las ideas.

    Entre las pruebas de ayer hubo de todo, incluso acabé creando mi propio algoritmo de interpolación, CPM, de Color Propagation Maps. No es que sea muy potente pero algún día lo mejoraré. Los resultados están entre el bilineal y el VNG en cuanto a definición, aunque es bastante más rápido que VNG y trabaja con 4 colores. Si lo consigo optimizar para que sea más rápido podría ser el algoritmo de interpolación por defecto en vez del bilineal, al menos para las Olympus y Panasonic (en bilineal también se ven las cosas mal debido a los canales verdes). Lo importante es que me ha convencido de que es imposible obtener la definición de PPG y AHD utilizando cuatro canales (necesitaba comprobarlo para quitarme esa espina. Ahora tengo claro que no se puede interpolar bien sin equilibrar antes los canales verdes... aunque tengo alguna idea que ya probaré cuando acabe este proyecto). Necesitamos el canal verde completo con G1 y G2 porque es el que tiene mayor distribución espacial como punto de partida para interpolar los rojos y azules (uno de cada dos píxeles de la imagen es verde).

    El problema viene cuando no podemos asimilar los dos canales verdes, G1 y G2, como un sólo canal por su diferencia de señal, lo que provoca los laberintos. La adaptación global de las señales de G1 y G2 se ha demostrado bastante eficaz, pero insuficiente, probablemente como consecuencia del ruido o de pequeñas alinealidades del sensor de la cámara. Así que el único remedio que queda es adaptar localmente la señal de los canales verdes antes de asimilarlos como uno sólo para mandarlos a interpolar con PPG o AHD.

    Ayer probé con varios métodos, a cada cual más peregrino. Arriba tenéis los resultados de mis pruebas. Finalmente he encontrado el método perfecto, que además es el más lógico (pero eso sólo lo he visto después de dormir esta noche ).

    A partir de ahora habrá por tanto las siguientes únicas opciones:
    • SIN EQUILIBRAR
    • EQUILIBRADO GLOBAL
    • EQUILIBRADO GLOBAL+LOCAL
    El único parámetro especificable es el TAMAÑÓ DE CELDA para el equilibrado local, que por defecto es de 8 píxels, con lo que se toma una celda de 16 píxels (de momento cuadrada, pero cuando optimice y retoque el código será circular, aunque no cambiará mucho el resultado) alrededor de cada píxel verde. Lo que hace después es equilibrar el valor del píxel según el valor medio de los canales verdes dentro de la celda, usando previamente una interpolación de cada canal verde de modo que contribuyan por igual los dos canales al cálculo. Viendo los resultados que se obtiene con 8 píxeles no veo ningún motivo para usar un radio diferente.

    Como siempre, se descartan en el cálculo los píxeles saturados y tampoco se modifican los píxeles saturados ni en el equilibrado global ni en el local.

    Ahora mismo el algoritmo es un poco lento, especialmente si se especifica un TAMAÑO DE CELDA grande, como es lógico. Con el valor por defecto 8 los resultados son inmejorables, incluso en ejes, gradientes, zonas saturadas, texturas difíciles...

    Entiendo que a los puristas os dé un poco de respeto hacer modificaciones locales, pues se podría pensar que eso estropea la imagen de algún modo. Os garantizo que elimina los laberintos al 100%, no modifica la textura ni el detalle de la imagen ni un mínimo (y si parece cambiarla es porque los laberintos pueden parecer textura), no cambia el balance de blancos, no cambia los bordes y no añade un sólo artefacto nuevo (con un TAMAÑO DE CELDA muy pequeño se ganará en velocidad, pero sí puede introducir pequeños artefactos). La única pega que tiene hoy por hoy es que es lento, espero poder acelerarlo. También crea algunos artefactos en los límites de la imagen, donde la celda no cabe entera, pero eso es fácil de solucionar no quitando laberintos localmente en los bordes de la imagen. Son pequeños detalles.

    Yo creo que los ejemplos que os pongo abajo hablan por sí solos. También creo _GUI_ que ahora sí sería interesante enseñarle los resultados a Coffin.

    El último ejemplo es de mi E-510, los otros cuatro de mi E-300 (mucho más propensa a generar laberintos, y probablemente también la E-500 que comparte el sensor). Van en los tres casos, el primero con AHD sin reducción de laberintos, el segundo con reducción global+local con radio de celda 8 y el tercero con VNG-4. Los usuarios de Olympus/Panasonic, sin la reducción de laberintos nos tendríamos que conformar con la primera o con la última de las imágenes.

    De la E-300 (AHD, AHD sin laberintos, VNG-4):




    De la E-300 (AHD, AHD sin laberintos, VNG-4):




    De la E-300 (AHD, AHD sin laberintos, VNG-4):




    De la E-300 (AHD, AHD sin laberintos, VNG-4):




    De la E-510 (AHD, AHD sin laberintos, VNG-4):




    Un saludo:
    Última edición por ManuelLlorens; 08/06/2008 a las 15:55
    Manuel Llorens

    Olympus E-P1, E-510, E-300
    www.rawness.es

  3. #3
    Ingreso
    07 mar, 06
    Ubicación
    Madrid (a ratos Alicante)
    Mensajes
    9,488
    Post Thanks / Like
    Si he entendido bien antes igualabas el nivel medio de G1 al de G2 calculando unos factores a partir de los valores medios de G1 y G2 en celdas de 16x16 píxels, que aplicados previamente al balance de blancos global, hacen que el nivel medio de los dos canales G fuera el mismo en dichas subceldas. Luego se aplicaba un balance de blancos global con idéntico multiplicador para G1 y G2. Esto provocaba que los píxels de las zonas más cercanas a los bordes de cada celda no estuvieran tan bien corregidos y aparecieran artefactos donde había transiciones fuertes de color.

    Ahora lo que haces es para cada píxel G calcular el nivel medio de G1 y G2 en una celda cuadrada centrada en el píxel en cuestión, y corriges el nivel G del píxel en cuestión por el factor que igualaría dichos niveles medios de G1 y G2 en la celda, no?. Hecho esto se aplica el balance de blancos global con idéntico multiplicador para G1 y G2.

    Cómo de lento va? cuánto tarda para toda la imagen? lo digo porque como vaya esto irá el anti-ghosting de perfect Blend que te comenté.

    Me piro al Retiro!
    "En ocasiones veo halos."

    http://www.guillermoluijk.com para suscribirte haz clic aquí
    Último contenido: EL MITO DEL TRÍPODE QUE ASESINÓ A UN ESTABILIZADOR

  4. #4
    Ingreso
    30 abr, 08
    Ubicación
    Madrid
    Mensajes
    883
    Post Thanks / Like
    Cita Iniciado por _GUI_ Ver mensaje
    Si he entendido bien antes igualabas el nivel medio de G1 al de G2 calculando unos factores a partir de los valores medios de G1 y G2 en celdas de 16x16 píxels, que aplicados previamente al balance de blancos global, hacen que el nivel medio de los dos canales G fuera el mismo en dichas subceldas. Luego se aplicaba un balance de blancos global con idéntico multiplicador para G1 y G2. Esto provocaba que los píxels de las zonas más cercanas a los bordes de cada celda no estuvieran tan bien corregidos y aparecieran artefactos donde había transiciones fuertes de color.
    Empecé por ahí, luego lo hice en celdas 2x2 (un píxel raw) y he acabado...

    Cita Iniciado por _GUI_ Ver mensaje
    Ahora lo que haces es para cada píxel G calcular el nivel medio de G1 y G2 en una celda cuadrada centrada en el píxel en cuestión, y corriges el nivel G del píxel en cuestión por el factor que igualaría dichos niveles medios de G1 y G2 en la celda, no?. Hecho esto se aplica el balance de blancos global con idéntico multiplicador para G1 y G2.
    ... exactamente así.

    Cita Iniciado por _GUI_ Ver mensaje
    Cómo de lento va? cuánto tarda para toda la imagen? lo digo porque como vaya esto irá el anti-ghosting de perfect Blend que te comenté.
    Con 16x16 píxeles unos 2 segundos en una imagen de 8 Mpx. Pero no está nada optimizado.

    Cita Iniciado por _GUI_ Ver mensaje
    Me piro al Retiro!
    Ya me dirás qué has comprado.

    Un saludo:
    Última edición por ManuelLlorens; 08/06/2008 a las 15:42
    Manuel Llorens

    Olympus E-P1, E-510, E-300
    www.rawness.es

  5. #5
    Ingreso
    30 abr, 08
    Ubicación
    Madrid
    Mensajes
    883
    Post Thanks / Like
    He optimizado el algoritmo y ahora es bastante más rápido (yo creo que es perfectamente utilizable) y una pizca más preciso (pero seguro que si Coffin lo coge algún día lo pone patas arriba y lo deja mucho más rápido y preciso).

    Un saludo:
    Manuel Llorens

    Olympus E-P1, E-510, E-300
    www.rawness.es

  6. #6
    Ingreso
    30 abr, 08
    Ubicación
    Madrid
    Mensajes
    883
    Post Thanks / Like
    Última actualización aquí.
    Manuel Llorens

    Olympus E-P1, E-510, E-300
    www.rawness.es


 

Marcadores

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •