camera理論基礎和工作原理

轉載自:https://www.cnblogs.com/fjutacm/p/220631977df995512d136e4dbd411951.html

 

一、攝像頭模組CCM

二、攝像頭工作原理

 

 

一、攝像頭模組(CCM)

    1、camera特寫

    攝像頭模組,Camera Compact Module,簡寫爲CCM,是影響捕捉的重要元器件,我的理解就是硬件上的攝像頭。如下圖:

 

 

 

    2、攝像頭內部分解

    攝像頭硬件結構圖:

 

     (1)、工作原理

    光線通過鏡頭Lens進入攝像頭內部,然後經過IR Filter過濾紅外光,最後到達sensor(傳感器),senor分爲按照材質可以分爲CMOS和CCD兩種,可以將光學信號轉換爲電信號,再通過內部的ADC電路轉換爲數字信號,然後傳輸給DSP(如果有的話,如果沒有則以DVP的方式傳送數據到基帶芯片baseband,此時的數據格式Raw Data,後面有講進行加工)加工處理,轉換成RGB、YUV等格式輸出。

     (2)、鏡頭 Lens

    鏡頭是相機的靈魂,單反中一個鏡頭上萬是很隨意的事。鏡頭對成像有很重要的作用,相當於人眼中的晶狀體,利用透鏡的折射原理,景物光線透過鏡頭在聚焦平面上形成清晰的像,然後通過感光材料CMOS或CCD記錄影像,並通過電路轉換爲電信號。鏡頭產業有比較高的技術門檻,國外主要集中在日本、韓國,國內主要是在臺灣,業內比較知名的如:富士精機、柯尼卡美能達、大力光、Enplas等。

    Lens一般由幾片透鏡組成透鏡結構,按材質可分爲塑膠透鏡(plastic)或玻璃透鏡(glass),玻璃鏡片比樹脂鏡片貴。塑膠透鏡其實是樹脂鏡片,透光率和感光性等光學指標比不上鍍膜鏡片。

    通常攝像頭採用的鏡頭結構有:1P、2P、1G1P、1G2P、2G2P、2G3P、4G、5G等。透鏡越多,成本越高,相對成像效果會更出色(個人理解是光線更均勻、更細緻;對光線的選通更豐富;成像畸變更小,但是會導致鏡頭變長,光通量變小)。

 

    (3)、紅外濾光片 IR Filter

    主要是過濾掉進入鏡頭的光線中的紅外光,這是因爲人眼看不到紅外光,但是sensor卻能感受到紅外光,所以需要將光線中的紅外光濾掉,以便圖像更接近人眼看到的效果。

    (4)、傳感器 Sensor

    sensor是攝像頭的核心,負責將通過Lens的光信號轉換爲電信號,再經過內部AD轉換爲數字信號。每個pixel像素點只能感受R、G、B中的一種,因此每個像素點中存放的數據是單色光,所以我們通常所說的30萬像素或者130萬像素,表示的就是有30萬或130萬個感光點,每個感光點只能感應一種光,這些最原始的感光數據我們稱爲RAW Data。Raw Data數據要經過ISP(應該理解爲Image Sensor Processor,是Sensor模塊的組成部分,下面有解釋)的處理才能還原出三原色,也就是說如果一個像素點感應爲R值,那麼ISP會根據該感光點周圍的G、B的值,通過插值和特效處理等,計算出該R點的G、B值,這樣該點的RGB就被還原了,除此之外,ISP還有很多操作,下面有介紹。

   目前常用的sensor有兩種,一種是CCD(電荷耦合)原件;一種是CMOS(金屬氧化物導體)原件。

    >>CCD(Charge Coupled Device),電荷耦合器件傳感器:使用一種高感光度的半導體材料製成,能把光線轉變成電荷,通過模數轉換器芯片轉換成電信號。CCD由許多獨立的感光單位組成,通常以百萬像素爲單位。當CCD表面受到光照時,每個感光單位都會將電荷反映在組件上,所有的感光單位產生的信號加在一起,就構成了一幅完整的圖像。CCD傳感器以日本廠商爲主導,全球市場上有90%被日本廠商壟斷,索尼、松下、夏普是龍頭。

    >>CMOS(Complementary Metal-Oxide Semiconductor),互補性氧化金屬半導體:主要是利用硅和鍺做成的半導體,使其在CMOS上共存着帶N(-)和P(+)級的半導體,這兩個互補效應所產生的電流可以被處理芯片記錄並解讀成影像。CMOS傳感器主要以美國、韓國和中國臺灣爲主導,主要生產廠家是美國的OmnVison、Agilent、Micron,中國臺灣的銳像、原相、泰視等,韓國的三星、現代。

    (5)、圖像處理芯片 DSP

    DSP是CCM的重要組成部分,它的作用是將感光芯片獲得的數據及時地快速地傳遞到中央處理器並刷新感光芯片,因此DSP芯片的好壞,直接影響畫面品質,如:色彩飽和度、清晰度、流暢度等。如果sensor沒有集成DSP,則通過DVP的方式傳輸到baseband芯片中(可以理解爲外掛DSP),進入DSP的數據是RAW Data,採集到的原始數據。如果集成了DSP,則RAW Data會經過AWB、color matrix、lens shading、gamma、sharpness、AE和de-noise處理,最終輸出YUV或者RGB格式的數據。如下圖中所示,ISP(Image Sensor Processor,不是Image Signal Processor)部分中使用的就是DSP來處理Image sensor的輸出數據(Raw Data):

    

 

    DSP結構框架:

    >>ISP(Image Signal Processor),鏡像信號處理器或者圖像信號處理器

    >>JPEG encoder,JPEG圖像編碼器,有軟件硬件之分。

    (6)、DVP

    DVP分爲三個部分:輸出總線;輸入總線;電源總線;如下圖:

    

 >>輸入總線介紹

    a>PWDN是camera的使能管腳,有兩種配置方式,一種爲standby,一種是normal work,設置爲standby的時候,一切對camera的操作都是無效的,包括復位。所以在RESET之前,一定要將PWDN管腳設置爲normal模式,否則RESET無效。

    b>RESET是camera的復位管腳,此方式爲硬復位模式,camera的各個IO口恢復到出廠默認狀態。只有在XCLK開啓後,將RESET置爲低,硬復位纔有效,否則復位無效。

    c>XCLK是camera的工作時鐘管腳,此管腳爲BB提供camera的工作時鐘。

    d>IIC是camera和BB通信的總線通道。

>>輸出總線介紹

    a>data爲camera的數據管腳。此數據腳可以輸出的格式有YUV、RGB、JPEG等。

    b>VSYNC爲camera的幀同步信號管腳。一個VYSNC信號結束表示一幀(即一個畫面)的數據已經輸出完畢。

    c>HSYNC爲camera行同步信號管腳。一個HSYNC信號結束表示一行的數據已經輸出完畢。

    d>PCLK爲像素同步信號管腳。一個PCLK信號結束表示一個像素點的數據已經輸出完畢。    

>>Power線介紹

    a>AVDD爲camera的模擬電壓。

    b>DOVDD爲camera的GPIO口數字電壓。

    c>DVDD爲camera的核工作電壓。

    一般來說,要求先提供sensor的GPIO口電壓,接着提供模擬電壓,最後提供工作電壓。時序如下圖:

    (7)、FPC柔性電路板(柔性PCB)

  簡稱"軟板", 又稱"柔性線路板",連接芯片和手機。起到電信號傳輸作用。

    (8)、ISP、DSP、基帶芯片的區別和聯繫

    幾篇文章中出現的術語,這裏做個專門的補充。

  >>常見基帶處理器或者基帶芯片負責數據處理與儲存,相當於一個協處理器,主要組件爲DSP、微控制器、內存(如SRAM、Flash)等單元,主要功能爲基帶編碼/譯碼、聲音編碼及語音編碼 等。目前主流基帶架構:DSP+ARM。可分爲五個子塊:CPU處理器、信道編碼器、DSP、調制解調器和接口模塊。

    基帶芯片是用來合成即將的發射的基帶信號,或對接收到的基帶信號進行解碼。具體地說,就是:發射時,把音頻信號編譯成用來發射的基帶碼;接收時,把收到的基帶碼解譯爲音頻信號。同時,也負責地址信息(手機號、網站地址)、文字信息(短訊文字、網站文字)、圖片信息的編譯。

    >>ISP,Image Signal Processor,圖像信號處理器;DSP,Data Signal Processor,數字信號處理器。

    ISP一般用來處理Image Sensor(圖像傳感器)的輸出數據,如進行:AEC(自動曝光控制)、AGC(自動增益控制)、AWB(自動白平衡)、色彩校正、Gamma校正、祛除壞點、Auto Black Level、Auto White Level 等等功能的處理。

    >>而DSP功能就比較多了,它可以做些拍照以及回顯(JPEG的編解碼)、錄像以及回放(Video 的編解碼)、H.264的編解碼、還有很多其他方面的處理,總之是處理數字信號了。可以認爲ISP是一類特殊的處理圖像信號的DSP。

  在這篇文章中,可以將基帶芯片當做開發板上的控制芯片,ISP和DSP可以對等,都是對Raw Data進行處理。這裏尊重原文作者的說法,並沒有統一。

    還有要注意的是,在攝像頭這部分,要看清楚ISP表示的是什麼,是Image Signal Processor(圖像信號處理器),還是Image Sensor Processor(圖像傳感器處理器)。像上面的OV2665裏面的ISP就是Image Sensor Processor,相當於Sensor模塊中的一部分,由DSP做處理器。而下面的GC0308,則正好相反,是Image Signal Processor,是一個真正的處理器,所以在看到ISP的時候要根據語境看指的是一個具體的處理器還是模塊的組成部分而非實指。

    

 

    

    3、CCM組裝方式

    (1)、定焦CCM組裝

    CCM分爲定焦模組和自動變焦模組,其中定焦模組主要由鏡頭、鏡座、感光集成電路、軟性線路板、補強和鋼片裝配而成,其裝配圖如下:

    

 

    (2)、自動變焦模組組裝

    主要是鏡頭下面裝了一個VCM音圈馬達

    

    (3)、3D模組

    多臺攝像頭拍攝圖像,然後組合:

    

 

 

     4、攝像頭的一些技術指標

    (1)、圖像解析度/分辨率(resolution)

QSIF/QQVGA 160 x 120 19200  
QCIF  176 x 144 25344  
SIF/QVGA 320 x 240    76800  
CIF 352 x 288   101376  10萬像素
VGA   640 x 480 307200 30萬像素(35萬是指648X488)
SVGA 800 x 600 480000 50萬像素
XGA 1024 x 768 786438 80萬像素
SXGA  1280 x 1024  1310720    130萬像素
UXGA 1600 x 1200 1920000   200萬像素
QXGA  2048 x 1536 3145728  300萬像素(320W)
QSXGA 2592 x 1944 5038848 500萬像素
  2816 x 2112 2947392 600萬像素
  3072 x 2304  7077888 700萬像素
  3200 x 2400 7680000 770萬像素
  3264 x 2448  7990272  800萬像素
  3876 x 2584 10015584 1000萬像素

 

    (2)、sensor輸出的圖像格式

    >>YUV:luma(Y)+chroma(UV)格式(亮度、色度),一般情況下sensor支持YUV422格式,即Y-U-Y-V次序輸出數據。

    >>RGB:傳統的紅綠藍格式,比如RGB565,5bit R + 6bit G + 5bit B,G多一位是因爲人眼對綠色比較敏感。

    >>RAW RGB:sensor的每一像素對應一個彩色濾光片,濾光片按Bayer Pattern(拜耳模板)分佈,將每一個像素的數據直接輸出,即Raw RGB Data。

    >>JPEG:有些sensor,特別是低分辨率的,其自帶JPEG engine,可以直接輸出壓縮後的jpg格式的數據。

    注意

    a>YUV一個像素佔2B,如果像素太大,在高時鐘下基帶芯片處理不過來,JPEG數據量就要小很多,因爲基帶芯片對輸出數據的速率有要求,所以基帶芯片低時鐘下使用YUV sensor,高時鐘下使用JPEG sensor。

    b>如果直接輸出RGB,對於LCD顯示是最方便的,但是大多數基帶芯片都是要求輸出爲YUV格式的數據再進行,這是因爲,YUV輸出數據的亮度信號沒有任何損失,而色偏信號人眼並不是特別敏感,RGB565輸出格式是R5G3 G3B5,會丟失很多原始信息,所以YUV圖像質量和穩定性要比RGB565好的多。因此,很低端的基帶芯片上纔會輸出RGB565格式。

    Raw和JPEG的區別:

    Raw優點:

    1>Raw格式文件本質上是一個沒有經過任何圖像處理的源文件,它能原原本本地記錄相機拍攝的信息,沒有經過圖像處理(銳化、色彩對比增強)和壓縮而造成的信息丟失。相比之下,JPEG格式的數據經過壓縮處理,無法完整的保存原圖形的所有數據。

    2>Raw是一種專業攝影師常用的格式,因爲它能原原本本地保存信息,讓用戶能大幅度進行後期製作,並且無論怎麼操作,照片都能無損的恢復到最初狀態;但是JPEG就弱了些,雖然因爲PS等技術的發展,也可以在JPEG上進行後期製作,但是如果做大幅度的調整還是Raw文件比較合適。

    3>可以用專門的軟件修正攝像機的不足,比如佳能DPP軟件可以修正鏡頭失光、變形等。

    Raw缺點:

    1>存儲數據量太大,JPEG就小很多

    2>需要專門的軟件來打開,JPEG幾乎所有的PC都可以直接打開

    3>打開速度較慢,JPEG較快

    4>不同的軟件有不同的方式去演繹RAW文件,所以在不同的軟件上會有細微的差別。

    5>廠商賣的專用軟件價格較高,而這方面JPEG幾乎無成本

 

   (3)、自動白平衡調整(AWB)

   定義:要求在不同色溫環境下,照白色的物體,屏幕中的圖像應也是白色的。色溫表示光譜成份,光的顏色。色溫低表示長波光成分多。當色溫改變時,光源中三基色(紅、綠、藍)的比例會發生變化,需要調節三基色的比例來達到彩色的平衡,這就是白平衡調節的實際。
   (4)、圖像壓縮方式
   JPEG:(joint photo graphicexpert group)靜態圖像壓縮方式。一種有損圖像的壓縮方式。壓縮比越大,圖像質量也就越差。當圖像精度要求不高存儲空間有限時,可以選擇這種格式。目前大部分數碼相機都使用JPEG格式。
   (5)、彩色深度(色彩位數)
   反映對色彩的識別能力和成像的色彩表現能力,實際就是A/D轉換器的量化精度,是指將信號分成多少個等級。常用色彩位數(bit)表示。彩色深度越高,獲得的影像色彩就越豔麗動人。現在市場上的攝像頭均已達到24位,有的甚至是32位(原文)
   (6)、圖像噪音
   指的是圖像中的雜點干撓。表現爲圖像中有固定的彩色雜點。
   (7)、視角
   與人的眼睛成像是相同原理,簡單說就是成像範圍。
   (8)、輸出/輸入接口
   串行接口(RS232/422):傳輸速率慢,爲115kbit/s
 並行接口(PP):速率可以達到1Mbit/s
 紅外接口(IrDA):速率也是115kbit/s,一般筆記本電腦有此接口
 通用串行總線USB:即插即用的接口標準,支持熱插拔。USB1.1速率可達12Mbit/s,USB2.0可達480Mbit/s
 IEEE1394(火線)接口(亦稱ilink):其傳輸速率可達100M~400Mbit/s 

    (9)、CAMIF, Camera Interface

    下面這張圖,沒看懂,暫時放在這裏:

    

     (10)、FIME,Fully Interactive Moblio Camera

    攝像頭採集的數據CPU無法直接處理,所以,主動芯片裏面集成了Camera控制器,即FIMC。攝像頭需要先將圖像數九傳送給控制器,經過控制器處理(裁剪拉昇後直接預覽或者編碼)之後交給CPU處理。MCLK就是由FIMC提供的。

    

    CAMMCLK給攝像頭提供時鐘,CAMRST是復位線,PWD在攝像頭工作時應該始終爲敵。HREF是行參考信號,PCLK是像素始終,VSYNC是場同步信號,一旦給攝像頭提供了時鐘,並且復位了攝像頭,攝像頭就開始工作了。

     FIMC信號定義如下所示(YCbCr模式)

Signal

I/O

Description

   Type

HREF

I

行同步信號

 

PCLK

I

像素時鐘

DATA[7:0]

I

像素數據

FIELD

O

FIELD信號

MCLK

O

系統時鐘信號

 

 

    (11)、camera時鐘域

    每個攝像頭都有三個時鐘域,第一個是系統總線時鐘域;第二個是攝像頭像素時鐘域PCLK;第三個是內部始終MCLK。

    系統總線時鐘必須高於PCLK,CAM_MCLK必須固定頻率發呢拼比,如:PLL時鐘。

 

 

二、攝像頭工作原理

    1、手冊中內容掃盲:  

   首先,我們要明白,一旦給攝像頭提供了時鐘,並且復位了攝像頭,攝像頭就可以工作了,通過PCLK、HSYNC、VSYNC聽不傳輸數字圖像信號。

    攝像頭的驅動需要完成三大步:

    >>攝像頭的上電、時鐘這些基本條件

    >>IIC保證攝像頭的初始化

    >>攝像頭工作後傳回數據到主控

  原圖有誤,已經修改,紅色圈圈部分。

  控制部分是攝像頭上電、IIC控制接口;數據輸出是攝像頭拍攝的圖像數據傳到主控芯片,所以,需要有Data、行場同步時鐘(告訴主控芯片哪些數據是一行,哪些是一幀)、以及時鐘(PCLK,像素時鐘,告訴主控芯片哪些數據是一個像素點)。

    (1)、MCLK

    攝像頭要 工作,必須要有個時鐘進行同步,這個時鐘就是MCLK,必須要有,否則攝像頭就是一個死物,這個時鐘由主控芯片提供,確切的說是有主控芯片的控制器提供,下面會提到。

    (2)、RESET

    復位信號,上面有提

    (3)、SDA、SCL

    IIC總線,主要作用就是爲主控芯片配置或者讀取攝像頭的寄存器提供通道。mini2440音頻模塊中的L3協議,也是這個作用。不要看見協議就怕,協議就是一條路,數據傳輸的路,有規定的數據傳輸的道路。

    

 

 

    (4)、Configuration Register

    配置寄存器,控制器(在主控芯片中)通過IIC來設置,相當於告訴攝像頭如何工作等。

    (5)、Timing Control

    時序控制,主要是根據主控芯片提供的MCLK時鐘來控制行場同步、自動曝光AEC等。因爲這些都需要時鐘的配合。

    (6)、Pixel Array

    gc0308物理上的陣列是648H*492V,實際採樣陣列是648H*488V,也是有效陣列。實際取像的陣列是640H*480V。如下圖所示:

    

    (7)、CDS

    Correlated Double Sampling,相關雙聯取樣電路。CCD傳感器的每個像素點輸出波形只在一部分時間內是圖像信號,其餘時間是復位電平和干擾,爲了提取圖像信號並消除干擾,就要採用取樣保持電路。

    (8)、Analog Processing、10bit ADC

    主要是將sensor得到的電信號轉換爲數字信號,方便ISP或者DSP處理。

    (9)、Image Signal Processing

    圖像信號處理器,可以理解爲DSP的一種,主要是對sensor經過ADC處理後的Raw Data進行處理,主要有自動白平衡AWB、插值計算(Bayer interpolation主要是對Raw Data進行格式轉換,轉爲YUV /RGB等)、去噪、gamaa修正、色彩修正、邊緣增強等。這些都是由寄存器決定,寄存器又是通過IIC總線來設置的。

    (10)、Output Mode & Sync Control

    輸出接口,從光線進入鏡頭、過濾、光感應、ADC,然後到圖像數據處理,最終數據到達外部接口。攝像頭取一幅圖像的整個工作完成,攝像頭本質上還是一個終端節點,所以需要將採集好的圖像數據傳遞給主控芯片,所以要有數據引腳,圖形格式補在是Raw Data,而是YUV或者RGB數據。進行數據傳輸,肯定需要時鐘進行同步,所以需要PCLK,告訴主控芯片,哪個數據代表了一個像素點;VSYNC負責告訴芯片哪些是一幀數據,HSYNC則同步行數據。

    (11)、設備地址

    

    百科上的定義,在數據通信中,可以發送或接受數據的任何設備標識。

    操作系統課程上面有講到,系統爲了管理外部設備而進行的編碼。不知道這個地址是不是這個意思。

    反正寫入的時候指定0x42,讀取的時候指定0x43,

    (12)、IIC通信

 

 

    IIC通信是一個交互的過程,需要等待對方的確認信號,並不是一次性完成的。首先,主機需要做兩個事情:

    

 

    一個是,提供啓動、結束信號;一個是提供IIC時鐘信號。圖示很明白了,不在囉嗦。

    (13)、時序 Timing

    

 

 

 

     

    幀時間(Ft,Frame time)=幀時鐘不活動時間(Bt,Blank time)+啓動時間(St,Start time)+有效行時間(Vt,Valid line time)+結束時間(Et,End time)+8

    空白無效行時間(Vblank/Dummy line)=Bt+St+Et。

    首先要明白,物理上492行,但是實際感應光線的只有488行,4行是Dark Row,黑暗行;但是這488有數據的行中只有480行是有效行。然後推導公式,首先分析小公式——空白行時間,空白時間包括無效的幀同步時間,這裏就是VSYNC處於高電平的無效時間;開始數據採集之前需要有幾個時鐘週期的緩衝,然後纔開始採集行數據,所以這個時間,也就是啓動時間也要算在空白行時間裏面,同理,480行有效數據採集完成後,也需要幾個時鐘週期表示數據採集結束,結束時間也要包括在空白行時間裏面。

    一幀圖像所需要的時間,首先包括空白行時間Bt,還有有效行時間Vt,然後加上8。這個8應該是代表那8行無效數據(不確定),歡迎留言!

    exp_time應該是曝光時間,當曝光時間小於488行數據採集時間+空白行時間,這幀時間由所有行採集的時間+空白行時間控制,那麼VSYNC無效電平的時間=行空白時間-啓動時間-結束時間。

    如果曝光時間超過win_height+VB,也就是在曝光沒有在正常的一幀時間內完成,那麼肯定需要繼續曝光,幀時間由曝光時間確定。幀同步無效時間=曝光時間-win_height-啓動時間-結束時間。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章