點擊左上方藍色“一口Linux”,選擇“設為星標”

一口君最近在玩瑞芯微的板子,之前寫了幾篇基于瑞芯微的文章,大家可以學習一下。
《瑞芯微rk356x板子快速上手》
《Linux驅動|rtc-hym8563移植筆記》
《Linux驅動 | Linux內核 RTC時間架構》
《瑞芯微 | 攝像頭ov13850移植筆記》
《rk3568 | 瑞芯微平臺GPIO引腳驅動編寫》
《rk3568 | rk平臺GPIO沖突檢測小技巧》
最近移植了2款ov系列攝像頭,順便把v4l2架構捋了一下,
計劃更新幾篇基于瑞芯微平臺的Camera相關文章,
Camera相關知識點較多,個人精力有限,
有對這塊精通,感興趣的老鐵,
可以加我好友:yikoupeng,共同學習討論。
先開始第一篇。
攝像頭,大家已經非常熟悉了,遍布在生活的方方面面。
尤其這上段時間炒的非常火的南京醫生上門打小孩老人事件,
由于有視頻有真相,魯醫生直接被陷入萬劫不復的境地。
其中的是非對錯本文不討論了,法律和道德自有評判。
但這說明了,攝像頭對我們的日常生活影響實在太大了。

根據不同參數,攝像頭有多種分類方式:

一個常見的監控用的攝像頭包括:外殼、感光芯片電路、鏡頭座、鏡頭、紅外燈板。
而對于手機上的攝像頭,很多廠家往往是設計為一個攝像頭模組(CameraCompact Module),簡稱CCM。
CCM 包含四大件: 鏡頭(lens)、傳感器(sensor)、軟板(FPC)、圖像處理芯片(DSP)。

決定一個攝像頭好壞的重要部件是:鏡頭(lens)、圖像處理芯片 (DSP)、傳感器(sensor)。

| 名稱 | 含義 |
|---|---|
| 3A算法 | AEC, AWB, AF算法 |
| AEC | Auto Exposure Control, 自動曝光控制 |
| AWB | Auto White Balance, 自動白平衡 |
| AF | Auto Focus, 自動對焦 |
| TE | Time Exposure, 曝光時間 |
| FBC | Frame Buffer Compressed, 幀緩沖壓縮 |
| IQ | Image Quality, 圖像質量 |
(joint photographic expert group)靜態圖像壓縮方式。一種有損圖像的壓縮方式。壓縮比越大,圖像質量也就越差。 當圖像精度要求不高存儲空間有限時,可以選擇這種格式。目前大部分數碼相機都使用JPEG格式。
指的是圖像中的雜點干擾,表現為圖像中有固定的彩色雜點。
白平衡指不管在任何光源下,都能將白色物體還原為白色。
白平衡是描述顯示器或相機中紅、綠、藍三基色混合生成后白色精確度的一項指標。
色溫表示光譜成份,光的顏色。色溫低表示長波光成分多。當色溫改變時,光源中三基色(紅、綠、藍)的比例會發生變化,需要調節三基色的比例來達到彩色的平衡,這就是白平衡調節的實際。
圖象傳感器的圖象數據被讀取后,系統將對其進行針對鏡頭的邊緣畸變的運算修正,然后經過壞像處理后被系統送進去進行白平衡處理(在不同的環境光照下,人類的眼睛可以把一些“白”色的物體都看成白色,是因為人眼進行了修正。但是SENSOR沒有這種功能,因此需要對SENSOR輸出的信號進行一定的修正,這就是白平衡處理技術)。
反映對色彩的識別能力和成像的色彩表現能力,就是用多少位的二進制數字來記錄三種原色。實際就是A/D轉換器的量化精度,是指將信號分成多少個等級,常用色彩位數(bit)表示。彩色深度越高,獲得的影像色彩就越艷麗動人。
非專業的SENSOR一般是24位;專業型SENSOR至少是36位。24位的SENSOR,感光單元能記錄的光亮度值最多有2^8=256級,每一種原色用一個8位的二進制數字來記錄,最多記錄的色彩是256×256×256約16,77萬種。
36位的SENSOR,感光單元能記錄的光亮度值最多有2^12=4096級,每一種原色用一個12位的二進制數字來記錄,最多記錄的色彩是4096×4096×4096約68.7億種。
像素格式,比如: RGB24,RGB565,RGB444,YUV4:2:2等。 RGB24,I420是目前最常用的兩種圖像格式。
這就是計算機表示顏色的原理,同樣也是手機屏幕和顯示器屏幕等顯示顏色的原理。

存儲方式舉例:
YUV 4:2:0其顏色的一種存放格式如圖所示:

所謂分辨率就是指畫面的解析度,由多少象素構成的數值越大,圖像也就越清晰。
分辨率不僅與顯示尺寸有關,還會受到顯像管點距、視頻帶寬等因素的影響。
我們通常所看到的分辨率都以乘法形式表現的,比如1024*768,其中的1024表示屏幕上水平方向顯示的點數,768表示垂直方向的點數。
| 解析度 | 分辨率 乘法 | 像素值 | 像素值簡稱 |
|---|---|---|---|
| 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 | |
| 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萬像素 |
幀率指的就是1秒鐘時間里傳輸、顯示圖片的幀數,每一幀就是一個畫面,快速連續的多幀就形成了運動的動態效果。
高的幀率可以得到更加流暢,更加逼真的畫面。
碼流就是指視頻數據在單位時間內的數量大小,也叫碼率,是視頻編碼畫面質量控制中最重要的部分,同樣的分辨率和幀率下,視頻碼流越大,畫面質量越高,對應的存儲容量也就越大。
曝光就是圖像的明暗程度 ,照片太暗稱為曝光不足 ,照片太亮稱為曝光過度。曝光由光圈、曝光時間、ISO三者共同決定。
攝像頭常用接口包括:USB、DVP、MIPI
我們常用的電腦攝像頭接口是USB接口,這種攝像頭比較常見,需要支持UVC(USB Video Class)協議。
還有一部分的攝像頭(比如說某些支持DVP接口的硬件)是DVP(Digital Video Port)攝像頭數據并口傳輸協議,
DVP是并口,提供8-bit或10-bit并行傳輸數據線、HSYNC(Horizontal sync)行同步線、VSYNC(Vertical sync)幀同步線和PCLK(Pixel Clock)時鐘同步線。
DVP總線PCLK極限約在96M左右,而且走線長度不能過長,所有DVP最大速率最好控制在72M以下,PCB layout較容易畫
以OV3640攝像頭為例: DVP分為三個部分:

移動產業處理器接口(Mobile Industry Processorinterface,MIPI)
常見的智能手機上的攝像頭是MIPI接口,
CSI是相機串行接口(CMOS Sensor Interface)的簡稱。

MIPI總線速率lvds接口耦合,走線必須差分等長,并且需要保護,故對PCB走線以及阻抗控制要求高一點(一般來講差分阻抗要求在85歐姆~125歐姆之間)
MIPI是LVDS低壓差分串口,只需要要CLKP/N、DATAP/N——最大支持4-lane,一般2-lane即可。
MIPI接口比DVP的接口信號線少,由于是低壓差分信號,產生的干擾小,抗干擾能力也強。
DVP接口在信號完整性方面受限制,速率也受限制。
500W還可以勉強用DVP,800W及以上都采用MIPI接口。
所以高清攝像頭我們都選用MIPI接口 。
最后看一下攝像頭模組今年7月出貨量排行榜:
攝像頭最主要的應用市場就是安防監控,
目前國內監控市場前10的公司如下:

隨著美麗國的制裁,像海康這樣大廠市場營收幾乎腰斬。
衷心祝愿咱們的高端芯片產業鏈早日完善,成熟,
百花發時我不發,我若發時都嚇殺!
誓與老美戰一場,芯片傾銷歐美亞。
end
一口Linux?
關注,回復【1024】海量Linux資料贈送
精彩文章合集
文章推薦