Demosaicing

Un algoritmo de demostración es un proceso de imagen digital que se utiliza para reconstruir una imagen a todo color de las muestras de color incompletas emitidas por un sensor de imagen superpuesto con una matriz de filtros de color (CFA). También se conoce como interpolación CFA o reconstrucción del color.

La mayoría de las cámaras digitales modernas adquieren imágenes usando un solo sensor de imagen superpuesto con un CFA, por lo que la creación de imágenes es parte de la canalización de procesamiento necesaria para procesar estas imágenes en un formato visible.

Muchas cámaras digitales modernas pueden guardar imágenes en un formato sin formato que permite al usuario mostrarlas usando software, en lugar de usar el firmware incorporado de la cámara.

Gol
El objetivo de un algoritmo de demostración es reconstruir una imagen a todo color (es decir, un conjunto completo de tripletas de color) a partir de los canales de color espacialmente subestimados emitidos por el CFA. El algoritmo debe tener los siguientes rasgos:

Evitar la introducción de artefactos de color falso, como alias cromáticos, cremalleras (cambios abruptos de intensidad sobre un número de píxeles vecinos) y franja púrpura
Máxima conservación de la resolución de la imagen
Baja complejidad computacional para un procesamiento rápido o una implementación de hardware eficiente en la cámara
Capacidad de análisis para una reducción de ruido precisa

Matriz de filtros de color
Un conjunto de filtros de color es un mosaico de filtros de color frente al sensor de imagen. Comercialmente, la configuración CFA más comúnmente usada es el filtro Bayer ilustrado aquí. Esto tiene filtros alternos rojo (R) y verde (G) para filas impares y alternando filtros verde (G) y azul (B) para filas pares. Hay dos veces más filtros verdes que rojos o azules, que satisfacen la mayor sensibilidad del ojo humano a la luz verde.

Como el submuestreo de color de un CFA por su naturaleza da como resultado un aliasing, un filtro óptico anti-aliasing típicamente se coloca en el camino óptico entre el sensor de imagen y el lente para reducir los falsos artefactos de color (alias cromáticos) introducidos por interpolación.

Dado que cada píxel del sensor está detrás de un filtro de color, la salida es una matriz de valores de píxeles, cada uno indica una intensidad bruta de uno de los tres colores de filtro. Por lo tanto, se necesita un algoritmo para estimar para cada píxel los niveles de color para todos los componentes de color, en lugar de un solo componente.

Ilustración
Para reconstruir una imagen a todo color a partir de los datos recopilados por la matriz de filtrado de color, se necesita una forma de interpolación para completar los espacios en blanco. Las matemáticas aquí están sujetas a la implementación individual, y se llama demosaicing.

En este ejemplo, usamos la interpolación bicúbica de Adobe Photoshop para simular los circuitos de un dispositivo de filtro de Bayer, como una cámara digital.

La siguiente imagen simula la salida de un sensor de imagen filtrado por Bayer; cada píxel tiene solo un componente rojo, verde o azul. La imagen original correspondiente se muestra junto a la reconstrucción demostrada al final de esta sección.

La imagen reconstruida es típicamente precisa en áreas de color uniforme, pero tiene una pérdida de resolución (detalle y nitidez) y tiene artefactos de borde (por ejemplo, los bordes de las letras tienen franjas de color visibles y cierta rugosidad).

Algoritmos

Interpolación simple
Estos algoritmos son ejemplos de interpolación multivariante en una grilla uniforme, que utiliza operaciones matemáticas relativamente sencillas en instancias cercanas del mismo componente de color. El método más simple es la interpolación del vecino más cercano que simplemente copia un píxel adyacente del mismo canal de color. No es adecuado para ninguna aplicación donde la calidad importa, pero puede ser útil para generar vistas previas dados recursos de computación limitados. Otro método simple es la interpolación bilineal, donde el valor rojo de un píxel no rojo se calcula como el promedio de los dos o cuatro píxeles rojos adyacentes, y de manera similar para el azul y el verde. Los métodos más complejos que se interpolan de forma independiente dentro de cada plano de color incluyen la interpolación bicúbica, la interpolación spline y el remuestreo de Lanczos.

Aunque estos métodos pueden obtener buenos resultados en regiones de imágenes homogéneas, son propensos a graves artefactos de catarsis en regiones con bordes y detalles cuando se usan con CFAs de color puro. Sin embargo, la interpolación lineal puede obtener muy buenos resultados cuando se combina con un CFA espacial-espectral (pancromático). Se podrían explotar modelos de formación simples de imágenes para la creación de imágenes. En imágenes naturales dentro del mismo segmento, se debe preservar la proporción de colores. Este hecho se explotó en una interpolación sensible a la imagen para la creación de imágenes.

Correlación de píxeles dentro de una imagen
Los algoritmos de demostración más sofisticados explotan la correlación espacial y / o espectral de los píxeles dentro de una imagen en color. La correlación espacial es la tendencia de los píxeles a asumir valores de color similares dentro de una pequeña región homogénea de una imagen. La correlación espectral es la dependencia entre los valores de píxel de diferentes planos de color en una región de imagen pequeña.

Estos algoritmos incluyen:

La interpolación de Número variable de degradados calcula los gradientes cercanos al píxel de interés y utiliza los degradados más bajos (que representan partes más suaves y más similares de la imagen) para hacer una estimación. Se usa en las primeras versiones de dcraw y sufre de artefactos de color.
Pixel Grouping utiliza suposiciones sobre escenarios naturales para hacer estimaciones. Tiene menos artefactos de color en imágenes naturales que el método de Número variable de degradados; fue introducido en dcraw de rel. 8.71 como «agrupación de píxeles modelada».
La interpolación dirigida por homogénea adaptativa selecciona la dirección de la interpolación para maximizar una métrica de homogeneidad, minimizando así típicamente los artefactos de color. Se ha implementado en versiones recientes de dcraw.

Super-resolución de video / demosaicing
Se ha demostrado que la superresolución y el demosaicing son dos caras del mismo problema y es razonable abordarlos en un contexto unificado. Tenga en cuenta que estos dos problemas abordan el problema del aliasing. Por lo tanto, especialmente en el caso de la reconstrucción de video (multi-trama), un enfoque conjunto de súper resolución y demosaicing proporciona la solución óptima.

Compensaciones
Algunos métodos pueden producir mejores resultados para escenas naturales, y algunos para material impreso, por ejemplo. Esto refleja el problema inherente en la estimación de píxeles que realmente no sabemos con certeza. Naturalmente, también existe la compensación ubicua de la velocidad frente a la calidad de la estimación.

Uso en software de procesamiento de imágenes de computadora
Cuando uno tiene acceso a los datos brutos de la imagen de una cámara digital, uno puede usar el software de la computadora con una variedad de diferentes algoritmos de determinación del contenido en lugar de limitarse a la integrada en la cámara. Algunos programas de desarrollo en bruto, como RawTherapee, le dan al usuario la opción de elegir qué algoritmo se debe usar. La mayoría de los programas, sin embargo, están codificados para usar un método particular. Las diferencias en la representación de los detalles más finos (y la textura del grano) que provienen de la elección del algoritmo de determinación de proporción se encuentran entre las principales diferencias entre varios desarrolladores sin procesar; a menudo los fotógrafos prefieren un programa en particular por razones estéticas relacionadas con este efecto.

Los artefactos de color debido a la creación de pruebas proporcionan pistas importantes para identificar falsificaciones fotográficas.