¿Cómo funcionan los sensores de la cámara?

Ok … Estoy empezando un nivel un poco más bajo que algunos de los otros. Un sensor de cámara está compuesto de elementos electrónicos sensibles a la luz de algún tipo. Hay un montón de diferentes componentes sensibles a la luz que se han inventado a lo largo de los años, pero los sensores modernos casi todos usan fotodiodos.

Un diodo es un componente que normalmente funciona como un interruptor unidireccional: la electricidad puede pasar por un lado, pero no por el otro. Pero hay un montón de diodos especializados que utilizan las propiedades básicas de formas novedosas … algunos pueden actuar como referencias de voltaje, algunos pueden apagar la luz (LED … Estoy iluminando mi casa con estos), algunos pueden actuar como condensadores variables. Y algunos pasarán corriente proporcionalmente al número de fotones que golpean el sensor. De hecho, por cada fotón que golpea un fotodiodo, se transfiere un electrón.

Entonces, ahora que tiene el fotodiodo, crea un sensor construyendo una gran variedad de estos fotodiodos. Si profundiza en la documentación de la cámara, generalmente puede encontrar el tamaño de un “píxel”, que no es realmente el tamaño de un píxel, sino el tamaño de un sitio fotográfico. El sitio fotográfico contiene el fotodiodo, y ese es el único elemento fotosensible, pero también puede contener otras cosas, como la electrónica que impulsa los fotodiodos. Entonces, como un ojo humano, puede tener algunas cosas en el camino, reduciendo la luz que realmente llega al fotodiodo. Más recientemente, hay sensores “iluminados en la parte posterior”, que colocan el fotodiodo en la parte posterior y la electrónica en la parte frontal, más como el ojo superior del pulpo. Pero de cualquier manera, ahora tiene una variedad de fotodiodos … el sensor en sí.

Por supuesto, eso no hace nada todavía. Hay dispositivos electrónicos de soporte para alimentar y administrar todos esos fotodiodos. En algún momento, habrá un amplificador de ganancia programable, como un control de volumen, que aumenta la señal del fotodiodo según sea necesario. El alimenta un convertidor analógico a digital. La mayoría de los ADC en las cámaras en estos días producen una salida de 12 o 14 bits.

Ahora, echemos un vistazo a los fotodiodos ellos mismos … no saben nada sobre el color, y generalmente responden a un espectro bastante amplio. Si desea una cámara monocromática, es posible que esté bien con el sensor tal cual, tal vez con un filtro infrarrojo para evitar que se grabe la luz IR. Pero quieres color. Entonces, en la mayoría de los sensores, hay una serie de filtros de color, uno por fotodiodo … ya has visto la discusión de los sensores Bayer en este artículo. Algunas compañías usan sensores “que no son de Bayer”, ya que están usando una matriz que no es RGBG … Canon usó CMYG en algunas de las primeras cámaras. Fujitsu y Sony han utilizado algunas configuraciones de color alternativas. Panasonic tiene una tecnología que utiliza micro divisores de color en lugar de filtros de color, para evitar pérdidas. Mira, un filtro espectral perfecto cortará el 66% de la luz que va a cada fotodiodo. Para evitar esto, las cámaras de video profesionales con sensores pequeños en realidad usan tres sensores y un prisma diacróico, para dividir la luz en haces R, G y B separados para separar los sensores R, G y B. Junto con el filtro, la mayoría de los sensores también tienen una matriz de microlentes, para enfocar la luz en el fotodiodo y, con suerte, evitar el hecho de que el sensor fotográfico no sea el sitio completo de la foto.

Ok, entonces hay un sensor. Está controlado por un microprocesador, que puede controlar cuándo está recolectando luz, cuándo no, etc. Algunas cámaras usan esa función para establecer la exposición, pero los modelos más profesionales usan un obturador electrónico separado para hacer la exposición. Es posible que realmente obtenga dos exposiciones por cada una que tome. Como todos los dispositivos electrónicos, los fotodiodos tienen una “corriente oscura” … básicamente, hay energía en el sistema debido al calor … de ahí proviene el ruido en una foto con poca luz. La cámara puede tomar una foto totalmente oscura, luego la que está buscando con luz y todo, y usarla primero para establecer “cero” para cada píxel.

Una vez expuesto, el microprocesador leerá los datos del sensor. Los CCD más antiguos eran básicamente una brigada de cubos gigantes, donde solo se leía un píxel a la vez, pero en estos días, la mayoría de los sensores tienen múltiples líneas de acceso y pueden leer muy rápido. Los datos que provienen directamente del sensor, con todo ese filtro extraño que puede ser muy específico para esa única cámara … eso es lo que la cámara grabará en un archivo sin formato. Y como mencioné, los píxeles suelen tener una resolución de 12 o 14 bits … esa es una razón por la que a los profesionales les gusta sin formato … no solo no está comprimido como un JPEG, sino que tiene absolutamente toda la información que la cámara grabó.

Como señaló, esa puede ser una gran cantidad de datos, especialmente si está haciendo videos. Pero los procesadores e interfaces están diseñados específicamente para ese tipo de datos. Si tengo una cámara de 20Mpixel, probablemente estoy leyendo 30-35 MB por foto del sensor. Y si puedo disparar a 10 fps, eso es 300-350 MB / s que tendría que almacenar, escribiendo archivos sin formato. Eso podría no suceder realmente. Ahora, por supuesto, 300 MB / s no es nada para una interfaz rápida … PCI Express funciona a 10 Gb / s en estos días (más de 1 GB / s) por enlace (cuatro cables … podría usar esto en un producto integrado … de hecho, lo hago, aunque nada tan integrado como una cámara moderna). Pero cuando toma una foto, obtiene algo de compresión (sin pérdida con raw, mucho más con JPEG), y luego entra en un búfer RAM grande y rápido en la cámara, haciendo cola para escribir en la memoria flash.

Y el proceso es idéntico para todas las cámaras. Claro, algunos no graban imágenes fijas, algunos no graban videos, algunos no graban en bruto, lo mismo puede que solo grabe en bruto, pero las cosas que suceden son las mismas para GoPro que para una DSLR que para un P&S que para un cámaras de cine

Ahora, por supuesto, si filmo video a, digamos, 1080p60, eso también es bastante información. Pero no tanto como piensas. Incluso con ese sensor de 20 megapíxeles, nunca voy a almacenar 20 megapíxeles. Algunas cámaras pueden “omitir líneas” … la única necesidad de leer parte de una imagen. Luego, el microprocesador en la cámara (que también es un procesador de imagen de foto / video) usará una combinación de software y hardware dedicado para procesar esa imagen a los 2 megapíxeles que necesita para video, luego comprímala para escribir en su tarjeta flash: a Motion JPEG, a AVC-Intra (tipo de MJPEG de principios del siglo XXI), o IPB AVC completo, o algo más. En ese punto, el video se reduce sustancialmente, a 25, 50, 100Mb / so más o menos. Las tarjetas SD son lo suficientemente rápidas.

Tomemos una imagen de fotograma completo, una toma de 20 megapíxeles y veamos qué sucede cuando se convierte en JPEG. Ok, como se mencionó, no tiene 20,000,000 de píxeles RGB, tiene una imagen en bruto con 5,000,000 de rojo, 10,000,000 de verde y 5,000,000 de píxeles azules. Ya sabes por qué hacemos esto … los fotodiodos no ven el color. Pero, ¿por qué generalmente no nos importa? Debido al ojo humano … tenemos 120,000,000 más o menos sensores en el ojo que ven la luminosidad, y solo unos 6,000,000 que ven el color. Así que todos los días se juegan todo tipo de trucos con el color de simples mortales.

Entonces, esta imagen en bruto, en la RAM realmente rápida de la cámara, se convierte en una imagen RGB en un proceso que a veces se denomina “des Baying”. En términos simples, estás interpolando. Tomemos un píxel rojo … sabes que es un valor rojo. Pero también encontrará que está rodeado por cuatro píxeles verdes (horizontalmente, verticalmente) y cuatro píxeles azules (en las diagonales). Existe una gran posibilidad de que el verde en su píxel actual sea similar a todos sus vecinos … por lo que interpola … toma el promedio de los colores vecinos. Y así obtener sus colores G y B para hacer un píxel a todo color.

Ahora podría ser un píxel de 36 o 42 bits, pero en el caso del video o JPEG, ahora vamos a reducirlo a 24 bits por píxel. Así que eso está hecho … pero luego, mientras estamos en eso, vamos a jugar con el color aún más. En lugar de almacenar un píxel RGB, el procesador de imágenes se convertirá en un espacio de color llamado YCrCb, que es una transformación sin pérdida del espacio de color RGB. Ahora que estamos en el espacio de color YCrCb, vamos a tirar 3/4 de las muestras de croma. Básicamente, eso significa que vamos a mantener 20,000,000 muestras Y, pero. Esto se llama submuestreo de croma, y ​​tanto JPEG como las compresiones de video más comunes emplean submuestreo 4: 2: 0, si desea obtener más información. Lo que esto significa es que por línea de píxel, solo almacenamos la mitad de las muestras, y Cr o Cb por línea, no ambas. Eso se traduce en solo 5,000,000 Cr y 5,000,000 Cb de muestras por disparo. Entonces, sin llegar realmente a JPEG, tomamos una imagen RGB de 60 MB y la convertimos en una imagen YCrCb 4: 2: 0 de 30 MB.

Luego viene la compresión JPEG real. JPEG divide la imagen en bloques de píxeles 8 × 8. Luego ejecuta una transformación reversible llamada Transformada discreta del coseno, que toma los datos espaciales de cada celda de 64 píxeles y los convierte en información de frecuencia. Luego se emplean varias reglas para cortar parte de la información de frecuencia más alta de cada celda. Después de que todas las células están tan reducidas, el resultado está codificado por Huffmann, una compresión sin pérdidas. Es el filtrado de la información de alta frecuencia y el submuestreo 4: 2: 0 lo que hace que JPEG pierda. Y probablemente haya encontrado diferentes “fortalezas” de JPEG … archivos más pequeños o imágenes “más finas”. Eso controla cómo se descarta la información de alta frecuencia.

Para el video, un video AVC-Intra es básicamente la misma idea, solo emplea innovaciones AVC como tamaño de bloque variable, compresión sin pérdidas más moderna, etc. Pero es literalmente un montón de fotogramas similares a JPEG.

Cuando vas a IPB AVC, esa es una historia diferente. “I” significa marco “Independiente”, que nuevamente va a una imagen fija similar a JPEG. Esto también se llama fotograma clave. El codificador crea un I-Frame, luego crea otro I-Frame. Solo que no codifica ese I-Frame … hace un análisis sofisticado de la diferencia entre los dos cuadros, utilizando algoritmos de estimación de movimiento … el objetivo es que un pequeño conjunto de vectores de movimiento, aplicado a ese primer I- La imagen del cuadro debería producir algo muy similar al segundo. Entonces eso está hecho, y se hace un marco de diferencia entre el segundo marco real y el calculado a partir del primer marco. Ese es el “error”, generalmente mucho negro con muy pocos bits de píxeles fantasma … que se comprime extremadamente bien. De modo que ese segundo cuadro se convierte en un cuadro “P”, para “Predictivo”, que codifica un conjunto de vectores compactos y un cuadro de error muy pequeño, también almacenado como un archivo JPEG muy comprimido. Si puede analizar muchos cuadros a la vez, también puede tener cuadros “B”, para “Bidireccional” … se puede predecir un Cuadro B tanto del cuadro siguiente como del siguiente.

En el antiguo MPEG-2, tenías un I-Frame por cada 15 fotogramas totales. En AVC, es técnicamente posible tener cientos de cuadros P o B entre cada cuadro I, pero esa sería una situación bastante inusual.

Bueno, probablemente lo suficiente como para masticar ahora.

Entonces, prácticamente todos los sensores de imagen usan una matriz de filtros Bayer, que alterna píxeles rojos / verdes / azules / verdes … usando los píxeles verdes para la luminancia y luego interpolando el color de los píxeles rojo y azul.

En su solicitud de patente de 1976, Bryce Bayer dijo que usó el doble del sensor verde porque imita el ojo humano: la percepción de luminancia de la retina humana usa células de cono M y L combinadas, durante la visión diurna, que son más sensibles a la luz verde. Creo que esto se debe a que hace mucho, mucho tiempo … el verde significaba vegetación, lo que significaba agua y posiblemente comida (por lo que era muy importante para los humanos detectar una mancha verde en la distancia).

Por lo tanto, un sensor Bayer 8MP tradicional tiene píxeles verdes de 4MP, azules de 2MP y rojos de 2MP, por lo que solo 8MB de datos si cada píxel usa 8 bits para cada canal de color. Además de eso, los fabricantes ofrecen algoritmos de compresión sin pérdidas y con pérdidas incluso para RAW. Un algoritmo de compresión sin pérdidas como la codificación Huffman (que re-implementé para un proyecto como estudiante de segundo año, es relativamente simple), Lempel – Ziv – Welch y la codificación aritmética generalmente pueden proporcionarle una relación de compresión mejor que 4: 1 (depende de los datos fuente)

En realidad, también hay un par de sensores de imagen que no son de Bayer … existe la Fuji EXR CMOS TECHNOLOGY, que trata de evitar problemas de muaré y falso color cambiando el diseño / orientación de píxeles (el muaré y el alias tienden a suceder cuando la imagen tiene un patrón rectangular que se alinea con el patrón bayer de la matriz de sensores), no recuerdo si arregla los patrones Aliasing y Moire con un filtro anti-aliasing. Creo que el sensor FUJIFILM TransX más reciente es un intento más reciente de solucionarlo allí.

Sin embargo … el sensor que no es Bayer más notable es el sensor Foveon X3. Probablemente es lo que pensabas que hacían los sensores de la cámara antes de contarte sobre los filtros Bayer … captura información RGB para cada píxel (lo llamaron como superpíxeles por razones de marketing para diferenciar). Fue increíblemente emocionante para las personas en 2005 cuando era el primero. anunciado y las imágenes se veían bastante bien … sin embargo, se ha visto obstaculizado por el hecho de que solo está disponible en los cuerpos de Sigma, y ​​aunque definitivamente hay algunos fanáticos de Foveon, en general, la mayoría de las personas encuentran que las ligeras mejoras de la nitidez por píxel y la precisión del color (recuerdo que tenía que establecer el balance de blancos con cuidado) no valía la pena los inconvenientes de un cuerpo de cámara con capacidad para dejar (estoy haciendo esto en base a recuerdos de 4 años … pero creo que la Sigma SD15 no se vendió bien y creo que dejó de hacer SLR con chips Foveon). Recientemente, con el factor de forma del telémetro, salieron con algunas cámaras de aspecto extraño con lente focal fija … quién sabe, me encantaría probar un Foveon en un cuerpo de cámara más moderno.


Algunas imágenes e información más sobre Foveon. Sensores: revisión de fotografía digital

Actualización: se me señaló … que me quedé tan atrapado con el malentendido correcto en los primeros tres puntos, que me detuve allí. Intentaré continuar un poco más

– si una cámara tiene 8M píxeles, y suponiendo 8 bits por color 8M * 3 = 22.89MB, significaría casi 23MB de datos.
– si está capturando a 1080 y 30 fps, significaría 1920 * 1080 * 3 * 30 = 178 MB / seg
– Si se trata de un sistema como el GoPro, que captura todo el sensor (12MP) y luego reduce a 1080, ¿cómo puede capturar 1 GB / seg de datos?

Veamos

– ¿Hay algún hardware dentro del sensor que reduzca la escala (p. Ej., Reduzca 1 GB a 178 MB) o proporcione RGB a YUV, por lo que transmitirá 10 o 12 bits en lugar de los 24 bits por color?

Sí … hay un hardware de procesamiento de señal que reduce la escala de la lectura completa del sensor. aquí es cuando Canon lo comercializa con los chips de procesamiento de imágenes de la serie DIGIC y Nikon es Expeed. Para GoPro es un SoC creado por
Ambarella (haga clic en los enlaces para más información).

– ¿Quién hace exactamente el barrido de cada píxel? ¿Hay un doble buffer en el sensor, o es el host lo que lo hace? Esta pregunta es sobre el efecto de que no sé exactamente el nombre en inglés, pero el que sucede cuando uno toma una foto en un automóvil en movimiento, en la ventana, y la imagen se vuelve diagonal. El punto es que cuanto más rápido algo barre el sensor, menos ocurre este efecto negativo.

La pieza de hardware que lee los datos de un sensor suele ser el convertidor de analógico a digital. La mayoría de las SLR ahora tienen un ADC de 14 bits, las más antiguas tienen una de 12 bits (AFAIK, nada corriente lee el color de 24 bits). Esto, por cierto, es la razón por la cual las personas hacen popo-poo en JPEG porque solo tienen 8 bits. Más información en Ventajas de las cámaras de catorce bits – Parte I. En la mayoría de las cámaras … si tiene una salida de video a RCA dividida en su cámara, eso es analógico y, por lo tanto, el procesador de imágenes también debe convertir los datos RGB en el archivo a YUV para mostrar en la televisión.

El efecto extraño que ves se llama Persiana enrollable … eso se debe a que la mayoría de los sensores CMOS se leen horizontalmente línea por línea … si el objeto se mueve durante ese tiempo … parece diagonal. Hay otros diseños de chips como CCD (que eran más populares hace una década, pero son más caros) que hacen lecturas globales y no tienen este problema.

Sí, los búfer dobles de la cámara: las cámaras deportivas tienen un búfer más grande para manejar esas altas tasas de captura (como 10 imágenes por segundo). Más información aquí.

Buffer: revisión de fotografía digital

Más actualizaciones para ti Scott Danzig y Lưu Vĩnh Phúc

Eso depende completamente del hardware del sensor y de su arquitectura.

El gran problema es que los sensores de imagen digital en color solo registran una fracción de los datos de color (luz) que intentan representar. Cada píxel en un sensor de color solo es sensible a uno de los tres canales de color: rojo, verde o azul. La mayoría de los sensores actuales están diseñados con un patrón Bayer, que distribuye uniformemente los píxeles en un patrón de verificación que consta de 50% de píxeles verdes, 25% de píxeles rojos y 25% de píxeles azules (porque la luz verde es la más abundante). Por lo tanto, después de que el sensor captura una imagen, en cada ubicación de píxel individual, un algoritmo de computadora tiene que intentar calcular (también conocido como adivinar con alta precisión) la intensidad de los dos canales de color faltantes (esto se conoce como demostración). Las técnicas de deshumedecimiento generalmente funcionan analizando los vecinos de cada píxel y calculando los valores de intensidad de color faltantes en función de las intensidades encontradas en ubicaciones vecinas. Pero, ¿qué pasa si las intensidades vecinas no son precisas debido al ruido? La respuesta breve es que la efectividad del demosaicing disminuye drásticamente, ya que las suposiciones sobre los dos canales de color que faltan podrían ser malas o incluso totalmente erróneas. Esto es lo que conduce a una pérdida significativa de los detalles del borde y el ruido de color. Si tenemos muchos píxeles en una imagen, la probabilidad de tener una buena suposición dentro de un área determinada es alta, y es por eso que el escalado (disminución de resolución) reduce el ruido aparente. De manera similar, si tenemos un ruido general bajo, para empezar, la representación original de los detalles y el color será precisa, por lo que no necesitaremos realizar ningún muestreo (o tanto) para obtener una buena imagen.

PD
Artículo completo en: Cómo y por qué el tamaño del sensor afecta la calidad de la imagen (APS-C vs FF vs compact)

Contestaré una sola parte de esta pregunta relacionada con los sensores.

Primero, la mayoría de los sensores se filtran en varios niveles.

  • Filtro de paso bajo: se utiliza para evitar un efecto muaré en las imágenes al desenfocar deliberadamente la imagen. En cámaras de formato medio, esto se elimina con la razón de que las cámaras están diseñadas para profesionales y los profesionales manipularán la imagen según sea necesario para eliminar el muaré de manera controlada si existe. Las recientes cámaras de 35 mm de alto píxel están comenzando a eliminar los filtros de paso bajo, ya que la captura de alta densidad está menos sujeta a los patrones de muaré.
  • Filtro de longitud de onda larga: se utiliza para bloquear la luz de longitud de onda IR ya que los sensores CMOS son sensibles a este espectro no visible. Algunas cámaras como la Canon 60Da tienen este filtro eliminado para mejorar el rendimiento de la cámara en aplicaciones astronómicas.
  • Sensores CMOS: existen varios tipos básicos de sensores CMOS. Una cosa a tener en cuenta es que los sensores CMOS no miden el color. Solo miden los niveles de luz (escala de grises) a diferentes niveles de precisión (nivel de bits) y rango dinámico (rango de sensibilidad con sensores de nivel superior que capturan más de 14 duplicaciones de la intensidad de la luz). El color (excepto en cámaras diseñadas solo para fotografía en blanco y negro) se obtiene mediante uno de varios métodos:

  1. Usando un filtro Bayer: los colores rojo, verde y azul se capturan en celdas adyacentes separadas mediante el filtrado, de modo que los niveles de luz capturados en cualquier sitio fotográfico estén limitados por el espectro. Luego se combinan en un solo píxel de color en el hardware de la cámara. Existen diversos diseños de filtros Bayer, pero todos comparten una reducción en la resolución, ya que los colores se capturan en sitios de fotos adyacentes en lugar de en el mismo sitio de fotos.
  2. Uso de un sensor CMOS apilado: estos generalmente se basan en el concepto Foveon pero se refinan a las tecnologías más actuales. Olympus usa el diseño Foveon, pero Sony y Canon están presentando diseños y patentes más avanzados. Canon se ilustra a continuación:

En este diseño, cada sitio de fotos es capaz de capturar no solo RGB sino también UV e IR (en un sensor denso se eliminarían los filtros de paso bajo y todos los demás filtros). Este diseño funciona más como una película tradicional que captura el color en 3-4 capas. Sin filtro Bayer, la resolución se triplica sin pérdida de sensibilidad ISO (vinculada al tamaño del sitio de la foto). Se planea agregar capas UV e IR para mejorar los tonos de la piel.

En resumen, los diseños de sensores emergentes están comenzando y eventualmente eliminarán los filtros para aumentar la resolución del sensor.

– si una cámara tiene 8 millones de píxeles, … 23 MB de datos.
– si está capturando a 1080 … = 178 MB / seg

Realmente no es mucho. Los módulos de sensores actuales utilizan el bus MIPI CSI. Este es un enlace en serie de varios carriles. Cada carril es de aproximadamente 4 Gbps. Los módulos comunes ofrecen solo un carril (es suficiente), pero el estándar en realidad admite hasta 4 carriles concurrentes.

– Si se trata de un sistema como el GoPro, que captura todo el sensor (12MP) y luego reduce a 1080, ¿cómo puede capturar 1GB / seg de datos?

La GoPro no es nada especial. No sé qué sensor usan, pero tomemos el Omnivision OV13850 como de costumbre. Este es un módulo de 13MP. En realidad, puede hacer 13MP completos a 30 fps.

Más típicamente, cuando se configura para operar para captura de 1080p, tiene estabilización de imagen. El módulo tiene bastante inteligencia incorporada, incluido el muestreo descendente.

– ¿Quién hace exactamente el barrido de cada píxel?

El módulo lo hace.