攝像頭是如何獲取彩色圖片的?先和大家說下CMOS圖像傳感器的工作原理。下圖是一個CMOS傳感器典型電路,4T-APS電路圖。該電路實現了光電信號的轉換,捕捉到外部的圖像信息。
接下來我們帶大家簡單認識下這個電路。
下圖紅色圈起來的部分是PD(光電二極管),作用實現光電轉換。它的基本原理就是通過光子激發,使硅中的電子產生躍遷,形成光電轉換。
下圖紅色圈起來的部分是FD(浮置擴散區),FD類似一個電容,他的作用是存儲PD產生的電子。TG是控制PD電子傳輸到FD的開關。
下圖紅色圈起來的部分是Reset信號,他的作用是清空FD中的殘留電子。
下圖紅色圈起來的部分是源隨器RS,用來控制浮置擴散區的電子傳輸到信號線的開關。
我們看看4T-APS 電路的工作過程。
首先光照在PD上進行曝光。PD上積累電子。
第二步打開reset,清空FD上的殘留電子,PD繼續曝光。
第三步,關掉reset,關掉RS,打開TG。讓電子傳輸到FD中。
第四步,關掉TG,打開RS,將光電轉換信息傳送到信號線上,完成一個圖像像素的一次采集。
從上面的過程中我們可以看到,CMOS傳感器能夠采集到光線的強度。通過將CMOS傳感器排布成陣列,不同位置采集到的光線強度不同,就可以獲取圖像信息。但是由于CMOS傳感器只能采集強度信息,無法采集到色彩信息,如果我們不對來源的光線進行特殊處理,那么我們獲取的是黑白圖片。
怎么獲取彩色圖片呢?我們知道色彩是由紅,綠,藍三種基色組成,假如我們每個CMOS傳感器只采集一種基色的光,最后拼接起來不就是彩色的?
想法有了,我們能不能在一個像素點布局三個CMOS傳感器分別采集三種顏色的光?這在物理結構上非常難實現。我們退而求其次,用相鄰的像素點采集不同的顏色,然后通過圖像算法恢復每個像素點的不同顏色的分量。現在的問題變成如何在不同的像素點采集不同顏色的光。
1976年伊士曼·柯達公司的科學家Bryce Bayer發明了拜耳濾色器(Bayer Filter)。拜耳濾色器(Bayer Filter)是一種將RGB濾色器排列在光傳感組件方格之上所形成的馬賽克彩色濾色陣列,實現不同像素點采集不同顏色的光。
下面是一張相機獲取圖像的示意圖。場景的光線通過攝像頭聚焦后送到濾色器,經過濾色后送到圖像傳感器。最終獲取每個像素點唯一色彩的圖像原始數據。
根據不同的顏色濾鏡陣列排布,獲取的原始數據有四種排列格式。由于人眼對綠光比較敏感,所以Bayer在發明濾色器時使用兩倍于紅色或藍色的綠色組件來模仿人眼的生理性質。
根據不同的顏色陣列的排布,上面bayer格式分為BGGR,GBRG,GRBG,RGGB四種格式。
CMOS 圖像傳感器獲取的原始數據不是真彩圖。如果我們硬要顯示原始數據的圖片,大概是下面的效果。
如何獲取真彩圖?下面需要ISP里面的demosaicing處理。其思想是從相鄰的像素中通過插值的方法補全每個像素的R,G,B 分量。
在傳統的ISP中有很多算法可以來做這個插值,包括最近鄰域法,bilinear 插值,cubic 插值等
在處芯積律SOC V2.0的項目里面,我們采用了Hibbard原理的邊緣檢測和色差的CFA插值法。其基本思想是在圖片的小平滑區域內,色差恒定。假設像素點P(i,j)鄰近的一個像素點是P(m,n)則有:
我們現在以BGGR格式的bayer 數據為例。
BGGR的格式大概如下面格式
假設我們采集到的數據是下面格式
我們首先計算各個像素點的綠色分量,G23這個點的綠色分量就是CMOS傳感器采集到的值。G33這個點的綠色分量怎么計算?,由于G32,G34,G23,G43的值都有,可以采用下面這種方式。
diffA= abs(G32 - G34)
diffB= abs(G23 - G43)
G33 = (G32 + G34) / 2, 當(diffA < diffB) 垂直方向差值較大,取水平方向均值
G33 = (G23 + G43) / 2, 當(diffA > diffB) 水平方向差值較大,取垂直方向均值
G33 = (G32 + G34 + G23 + G43) / 4, 當(diffA == diffB) 差值一樣大,取均值
通過類似的方法,我們可以算出圖像中大部分像素的G分量。
然后我們計算R分量。我們觀察離R33最近的R值有R22,R24,R42,R44。
根據色差恒定原理
R22-G22=R33-G33,R24-G24=R33-G33,R42-G42=R33-G33,R44-G44=R33-G33。
由此我們可以得出R22+R24+R42+R44-G22-G24-G42-G44=4(R33-G33);
最終可以計算出R33 為:
R33= G33 + (R22 + R24 + R42 + R44) / 4 - (G22 + G24 + G42 + G44) / 4
類似的我們計算R34,最鄰近的R值是R24,R44。通過色差恒定原理可以計算出
R34= G34 + (R24 + R44) / 2 - (G24 + G44) / 2
B分量也采用類似的方法計算出來。如B34,鄰近B34的B分量是B33,B35。通過色差恒定原理可以計算出
B34= G34 + (B33 + B35) / 2 - (G33 + G35) / 2
用上述方法,我們可以恢復每個像素點的R,G,B分量從而獲取全彩圖。
在采集自然界的色彩方法上,人類采用非常巧妙的方法。在我們享受五彩斑斕的視頻,相片時,我們也得感謝像Bayer這樣的工程師為此做出的貢獻。
審核編輯:劉清
-
光電轉換
+關注
關注
1文章
98瀏覽量
23398 -
光電二極管
+關注
關注
10文章
402瀏覽量
35931 -
光電信號
+關注
關注
0文章
24瀏覽量
8552 -
CMOS圖像傳感器
+關注
關注
10文章
216瀏覽量
27694
原文標題:攝像頭如何獲取彩色圖片?談談ISP怎么實現全彩圖
文章出處:【微信號:IP與SoC設計,微信公眾號:IP與SoC設計】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論