Interface da câmera - Camera interface
O CAMIF , também o bloco de interface de câmera, é o bloco de hardware que faz interface com diferentes interfaces de sensor de imagem e fornece uma saída padrão que pode ser usada para processamento de imagem subsequente .
Uma interface de câmera típica suportaria pelo menos uma interface paralela, embora atualmente muitas interfaces de câmera estejam começando a suportar a interface MIPI CSI .
A interface paralela da interface da câmera consiste nas seguintes linhas:
Linha de dados paralela de 8 a 12 bits
- Estas são linhas de dados paralelas que transportam dados de pixel. Os dados transmitidos nessas linhas mudam a cada Pixel Clock (PCLK).
Sincronização horizontal (HSYNC)
- Este é um sinal especial que vai do sensor da câmera ou ISP para a interface da câmera. Um HSYNC indica que uma linha do quadro é transmitida.
Sincronização vertical (VSYNC)
- Este sinal é transmitido depois que todo o quadro é transferido. Esse sinal costuma ser uma forma de indicar que um quadro inteiro foi transmitido.
Pixel Clock (PCLK)
- Este é o clock do pixel e mudaria a cada pixel.
NOTA: As linhas acima são todas tratadas como linhas de entrada para o hardware de interface da câmera.
Exemplo
Vamos supor que um sensor esteja transmitindo um quadro VGA 640x480. O quadro de vídeo é de formato RGB888. Vamos supor que temos um sensor de câmera transmitindo 8 bits por clock de pixel (PCLK). Isso significa que para transferir um pixel de dados, serão necessários 3 PCLKs. O HSYNC seria disparado pelo sensor a cada 640 x 3, 1920 PCLKs. Um VSYNC seria disparado pelo sensor após todo o quadro ser transmitido, ou seja, após 1920x480, 921600 PCLKs.
Isso assume que o sensor da câmera processa os dados brutos da matriz do sensor e interpola os valores para cada canal de cor por meio de um processo conhecido como demosaicing ou debayering em referência a um filtro Bayer . A matriz de filtro Bayer é imposta sobre os pixels de 640x480, portanto, o número real de pixels vermelhos, verdes e azuis é um quarto da matriz total para os canais vermelho e azul e a metade para o canal verde em um filtro Bayer típico. A maioria dos sensores produz os dados não processados para evitar os custos de hardware de implementação de algoritmos de demosaicing. Assim, os dados lidos na linha de dados paralela viriam dos canais de cores verde, vermelho, verde, vermelho ... Então, na próxima linha, azul, verde, azul, verde ...
O bloco de hardware da interface da câmera (que poderia ser parte de qualquer SOC) monitoraria constantemente as linhas acima para ver se o sensor transmitiu algo. Uma interface de câmera típica viria com algum buffer interno e também teria um DMA associado para transferir a imagem para a memória de destino. O buffer capturaria os pixels de entrada para armazená-los temporariamente e, usando o DMA, os pixels seriam transferidos (provavelmente linha por linha) através de várias transferências DMA de rajada para um endereço de destino na memória (pré-programado pelo programador do driver da interface da câmera). A interface do programador da interface da câmera também pode fornecer a facilidade de emitir interrupções de hardware após o recebimento dos sinais HSYNC, VSYNC para o microcontrolador host. Isso pode servir como um gatilho útil para a reprogramação de DMA, se necessário.