El CAMIF , también el bloque de interfaz de la cámara es el bloque de hardware que las interfaces con diferentes sensores de imagen interfaces y proporciona una salida estándar que se puede utilizar para su posterior procesamiento de imágenes .
Una interfaz de cámara típica admitiría al menos una interfaz paralela, aunque en estos días muchas interfaces de cámara están comenzando a admitir la interfaz MIPI CSI .
La interfaz paralela de la interfaz de la cámara consta de las siguientes líneas:
Línea de datos paralela de 8 a 12 bits
- Estas son líneas de datos paralelas que transportan datos de píxeles. Los datos transmitidos en estas líneas cambian con cada Pixel Clock (PCLK).
Sincronización horizontal (HSYNC)
- Esta es una señal especial que va desde el sensor de la cámara o ISP a la interfaz de la cámara. Un HSYNC indica que se transmite una línea de la trama.
Sincronización vertical (VSYNC)
- Esta señal se transmite después de que se transfiere toda la trama. Esta señal es a menudo una forma de indicar que se transmite una trama completa.
Reloj de píxeles (PCLK)
- Este es el reloj de píxeles y cambiaría en cada píxel.
NOTA: Todas las líneas anteriores se tratan como líneas de entrada al hardware de la interfaz de la cámara.
Ejemplo
Supongamos que un sensor está transmitiendo una trama VGA de 640x480. El cuadro de video tiene un formato RGB888. Supongamos que tenemos un sensor de cámara que transmite 8 bits por reloj de píxel (PCLK). Esto significa que para transferir un píxel de datos, se necesitarían 3 PCLK. El sensor dispararía el HSYNC después de cada 640 x 3, 1920 PCLK. El sensor dispararía un VSYNC después de que se transmita la trama completa, es decir, después de 1920x480, 921600 PCLK.
Esto supone el sensor de cámara procesa los datos en bruto de la matriz de sensores e interpola los valores para cada canal de color a través de un proceso conocido como demosaicing o debayering en referencia a un filtro de Bayer . La matriz de filtros Bayer se impone sobre los 640x480 píxeles, por lo que la cantidad real de píxeles rojos, verdes y azules es una cuarta parte de la matriz total para los canales rojo y azul y la mitad para el canal verde en un filtro Bayer típico. La mayoría de los sensores emiten los datos sin procesar para evitar los costos de hardware de implementar algoritmos de demostración. Entonces, los datos leídos en la línea de datos paralela provendrían de los canales de color verde, rojo, verde, rojo ... Luego, en la siguiente línea, azul, verde, azul, verde ...
El bloque de hardware de la interfaz de la cámara (que podría ser parte de cualquier SOC) monitorearía constantemente las líneas anteriores para ver si el sensor ha transmitido algo. Una interfaz de cámara típica vendría con cierto almacenamiento en búfer interno y también tendría un DMA asociado para transferir la imagen a la memoria de destino. El búfer capturaría los píxeles entrantes para almacenarlos temporalmente y, utilizando el DMA, los píxeles se transferirían (probablemente línea por línea) a través de múltiples transferencias DMA de ráfagas a una dirección de destino en la memoria (preprogramada por el programador del controlador de la interfaz de la cámara). La interfaz del programador de la interfaz de la cámara también puede brindar la posibilidad de emitir interrupciones de hardware al recibir las señales HSYNC, VSYNC al microcontrolador anfitrión. Esto podría servir como un disparador útil para la reprogramación de DMA si fuera necesario.