Interfaccia della fotocamera - Camera interface

Il CAMIF , anche il blocco Camera Interface è il blocco hardware che si interfaccia con diverse interfacce di sensori di immagine e fornisce un output standard che può essere utilizzato per la successiva elaborazione dell'immagine .

Una tipica interfaccia della telecamera supporterebbe almeno un'interfaccia parallela, sebbene oggigiorno molte interfacce della telecamera stiano iniziando a supportare l' interfaccia MIPI CSI .

L'interfaccia parallela dell'interfaccia della telecamera è composta dalle seguenti righe:

Linea dati parallela da 8 a 12 bit

Si tratta di linee dati parallele che trasportano dati pixel. I dati trasmessi su queste linee cambiano ad ogni Pixel Clock (PCLK).

Sincronizzazione orizzontale (HSYNC)

Questo è un segnale speciale che va dal sensore della fotocamera o dall'ISP all'interfaccia della fotocamera. Un HSYNC indica che viene trasmessa una riga del frame.

Sincronizzazione verticale (VSYNC)

Questo segnale viene trasmesso dopo che l'intero frame è stato trasferito. Questo segnale è spesso un modo per indicare che viene trasmesso un intero frame.

Pixel Clock (PCLK)

Questo è il pixel clock e cambierebbe su ogni pixel.

NOTA: le righe precedenti vengono tutte trattate come linee di input per l'hardware dell'interfaccia della telecamera.

Esempio

Supponiamo che un sensore stia trasmettendo un frame VGA 640x480. Il fotogramma video è di un formato RGB888. Supponiamo di avere un sensore della fotocamera che trasmette 8 bit per pixel clock (PCLK). Ciò significa che per trasferire un pixel di dati, sarebbero necessari 3 PCLK. L'HSYNC verrebbe attivato dal sensore ogni 640 x 3, 1920 PCLK. Un VSYNC verrebbe attivato dal sensore dopo che l'intero frame è stato trasmesso, cioè dopo 1920x480, 921600 PCLK.

Ciò presuppone che il sensore della fotocamera elabori i dati grezzi dalla matrice di sensori e interpoli i valori per ciascun canale di colore attraverso un processo noto come demosaicizzazione o debayering in riferimento a un filtro Bayer . L'array di filtri Bayer viene imposto sopra i 640x480 pixel, quindi il numero effettivo di pixel rossi, verdi e blu è un quarto dell'array totale per i canali rosso e blu e metà per il canale verde in un tipico filtro Bayer. La maggior parte dei sensori emette i dati non elaborati per evitare i costi hardware per l'implementazione degli algoritmi di demosaicizzazione. Quindi, i dati letti sulla linea dati parallela verrebbero dai canali di colore verde, rosso, verde, rosso ... Quindi, sulla riga successiva, blu, verde, blu, verde ...

Il blocco hardware dell'interfaccia della telecamera (che potrebbe far parte di qualsiasi SOC) monitorerebbe costantemente le linee sopra per vedere se il sensore ha trasmesso qualcosa. Una tipica interfaccia della fotocamera sarebbe dotata di un buffer interno e avrebbe anche un DMA associato per trasferire l'immagine nella memoria di destinazione. Il buffer catturerebbe i pixel in ingresso per bufferizzarli temporaneamente e utilizzando il DMA i pixel verrebbero trasferiti (probabilmente riga per riga) attraverso più trasferimenti DMA a raffica a un indirizzo di destinazione nella memoria (preprogrammato dal programmatore del driver dell'interfaccia della fotocamera). L'interfaccia del programmatore dell'interfaccia della telecamera potrebbe anche fornire la possibilità di emettere interrupt hardware alla ricezione dei segnali HSYNC, VSYNC al microcontrollore host. Questo potrebbe servire come trigger utile per la riprogrammazione DMA, se necessario.

Guarda anche

Riferimenti