CCD(ChargeCoupledDevice,電荷耦合組件)使用一種高感光度的半導體材料制成,能把光線轉變成電荷,通過模數轉換器芯片轉換成數字信號,數字信號經過壓縮以后由相機內部的閃速存儲器或內置硬盤卡保存,因而可以輕而易舉地把數據傳輸給計算機,并借助于計算機的處理手段,根據需要和想像來修改圖像。CCD由許多感光單位組成,當CCD表面受到光線照射時,每個感光單位會將電荷反映在組件上,所有的感光單位所產生的信號加在一起,就構成了一幅完整的畫面。它就像傳統(tǒng)相機的底片一樣的感光系統(tǒng),是感應光線的電路裝置,你可以將它想象成一顆顆微小的感應粒子,鋪滿在光學鏡頭后方,當光線與圖像從鏡頭透過、投射到CCD表面時,CCD就會產生電流,將感應到的內容轉換成數碼資料儲存起來。CCD像素數目越多、單一像素尺寸越大,收集到的圖像就會越清晰。因此,盡管CCD數目并不是決定圖像品質的唯一重點,我們仍然可以把它當成相機等級的重要判準之一。目前掃描機、攝錄放一體機、數碼照相機多數配備CCD。
CCD經過長達35年的發(fā)展,大致的形狀和運作方式都已經定型。CCD的組成主要是由一個類似馬賽克的網格、聚光鏡片以及墊于最底下的電子線路矩陣所組成。目前有能力生產CCD的公司分別為:SONY、Philps、Kodak、Matsushita、Fuji和Sharp,大半是日本廠商。
CMOS(Complementaryetal-OxideSemiconductor,附加金屬氧化物半導體組件)和CCD一樣同為在數碼相機中可記錄光線變化的半導體。CMOS的制造技術和一般計算機芯片沒什么差別,主要是利用硅和鍺這兩種元素所做成的半導體,使其在CMOS上共存著帶N(帶–電)和P(帶+電)級的半導體,這兩個互補效應所產生的電流即可被處理芯片紀錄和解讀成影像。然而,CMOS的缺點就是太容易出現雜點,這主要是因為早期的設計使CMOS在處理快速變化的影像時,由于電流變化過于頻繁而會產生過熱的現象。
CCD和CMOS各自的利弊,我們可以從技術的角度來比較兩者主要存在的區(qū)別:
信息讀取方式不同。CCD傳感器存儲的電荷信息需在同步信號控制下一位一位的實施轉移后讀取,電荷信息轉移和讀取輸出需要有時鐘控制電路和三組不同的電源相配合,整個電路較為復雜。CMOS傳感器經光電轉換后直接產生電流(或電壓)信號,信號讀取十分簡單。
速度有所差別。CCD傳感器需在同步時鐘的控制下以行為單位一位一位的輸出信息,速度較慢;而CMOS傳感器采集光信號的同時就可以取出電信號,還能同時處理各單元的圖象信息,速度比CCD快很多。
電源及耗電量。CCD傳感器電荷耦合器大多需要三組電源供電,耗電量較大;CMOS傳感器只需使用一個電源,耗電量非常小,僅為CCD電荷耦合器的1/8到1/10,CMOS光電傳感器在節(jié)能方面具有很大優(yōu)勢。
成像質量。CCD傳感器制作技術起步較早,技術相對成熟,采用PN結合二氧化硅隔離層隔離噪聲,成像質量相對CMOS傳感器有一定優(yōu)勢。由于CMOS傳感器集成度高,光電傳感元件與電路之間距離很近,相互之間的光、電、磁干擾較為嚴重,噪聲對圖象質量影響很大。在相同分辨率下,CMOS價格比CCD便宜,但是CMOS器件產生的圖像質量相比CCD來說要低一些。到目前為止,市面上絕大多數的消費級別以及高端數碼相機都使用CCD作為感應器;CMOS感應器則作為低端產品應用于一些攝像頭上。是否具有CCD感應器一度成為人們判斷數碼相機檔次的標準之一。而由于CMOS的制造成本和功耗都要低于CCD不少,所以很多手機生產廠商采用的都是CMOS鏡頭?,F在,市面上大多數手機都采用的是CMOS攝像頭,少數也采用了CCD攝像頭。
光學變焦和數碼變焦原理
光學變焦(OpticalZoom)是通過鏡頭、物體和焦點三方的位置發(fā)生變化而產生的。當成像面在水平方向運動的時候,如下圖,視覺和焦距就會發(fā)生變化,更遠的景物變得更清晰,讓人感覺像物體遞進的感覺。
顯而易見,要改變視角必然有兩種辦法,一種是改變鏡頭的焦距。用攝影的話來說,這就是光學變焦。通過改變變焦鏡頭中的各鏡片的相對位置來改變鏡頭的焦距。另一種就是改變成像面的大小,即成像面的對角線長短在目前的數碼攝影中,這就叫做數碼變焦。實際上數碼變焦并沒有改變鏡頭的焦距,只是通過改變成像面對角線的角度來改變視角,從而產生了“相當于”鏡頭焦距變化的效果。
所以我們看到,一些鏡頭越長的數碼相機,內部的鏡片和感光器移動空間更大,所以變焦倍數也更大。我們看到市面上的一些超薄型數碼相機,一般沒有光學變焦功能,因為其機身內根部不允許感光器件的移動,而像索尼F828、富士S7000這些“長鏡頭”的數碼相機,光學變焦功能達到5、6倍。
數碼變焦(DigitalZoom)也稱為數字變焦,數碼變焦是通過數碼相機內的處理器,把圖片內的每個象素面積增大,從而達到放大目的。這種手法如同用圖像處理軟件把圖片的面積改大,不過程序在數碼相機內進行,把原來影像感應器上的一部份像素使用“插值”處理手段做放大,將影像感應器上的像素用插值算法將畫面放大到整個畫面。
與光學變焦不同,數碼變焦是在感光器件垂直方向向上的變化,而給人以變焦效果的。在感光器件上的面積越小,那么視覺上就會讓用戶只看見景物的局部。但是由于焦距沒有變化,所以,圖像質量是相對于正常情況下較差。
通過數碼變焦,拍攝的景物放大了,但它的清晰度會有一定程度的下降,所以數碼變焦并沒有太大的實際意義。因為太大的數碼變焦會使圖像嚴重受損,有時候甚至因為放大倍數太高,而分不清所拍攝的畫面。
Sensor內部工作原理
外部光線穿過lens后,經過colorfilter濾波后照射到Sensor面上,Sensor將從lens上傳導過來的光線轉換為電信號,再通過內部的DA轉換為數字信號。如果Sensor沒有集成DSP,則通過DVP的方式傳輸到baseband,此時的數據格式是RAWRGB。
Camera Sensor 圖像處理原理及實例分析
1、色彩感應及校正
1.1 原理
人眼對色彩的識別,是基于人眼對光線存在三種不同的感應單元,不同的感應單元對不同波段的光有不同的響應曲線的原理,通過大腦的合成得到色彩的感知。 一般來說,我們可以通俗的用RGB三基色的概念來理解顏色的分解和合成。
理論上,如果人眼和sensor對光譜的色光的響應,在光譜上的體現如下的話,基本上對三色光的響應,相互之間不會發(fā)生影響,沒有所謂的交叉效應。
但是,實際情況并沒有如此理想,下圖表示了人眼的三色感應系統(tǒng)對光譜的響應情況??梢奟GB的響應并不是完全獨立的。
下圖則表示了某Kodak相機光譜的響應。可見其與人眼的響應曲線有較大的區(qū)別。
1.2、 對sensor的色彩感應的校正
既然我們已經看到sensor對光譜的響應,在RGB各分量上與人眼對光譜的響應通常是有偏差的,當然就需要對其進行校正。不光是在交叉效應上,同樣對色彩各分量的響應強度也需要校正。通常的做法是通過一個色彩校正矩陣對顏色進行一次校正。
該色彩校正的運算通常是由sensor模塊集成或后端的ISP完成,軟件通過修改相關寄存器得到正確的校正結果。值得注意的一點是,由于RGB -》 YUV的轉換也是通過一個3*3的變換矩陣來實現的,所以有時候這兩個矩陣在ISP處理的過程中會合并在一起,通過一次矩陣運算操作完成色彩的校正和顏色 空間的轉換。
2、 顏色空間
2.1 、分類
實際上顏色的描述是非常復雜的,比如RGB三基色加光系統(tǒng)就不能涵蓋所有可能的顏色,出于各種色彩表達,以及色彩變換和軟硬件應用的需求,存在各種各樣的顏色模型及色彩空間的表達方式。這些顏色模型,根據不同的劃分標準,可以按不同的原則劃分為不同的類別。
匹配任意可見光所需的三原色光比例曲線
對于sensor來說,我們經常接觸到的色彩空間的概念,主要是RGB , YUV這兩種(實際上,這兩種體系包含了許多種不同的顏色表達方式和模型,如sRGB, Adobe RGB, YUV422, YUV420 …), RGB如前所述就是按三基色加光系統(tǒng)的原理來描述顏色,而YUV則是按照 亮度,色差的原理來描述顏色。
2.1.1 RGB 《-》 YUV的轉換
不比其它顏色空間的轉換有一個標準的轉換公式,因為YUV在很大程度上是與硬件相關的,所以RGB與YUV的轉換公式通常會多個版本,略有不同。
常見的公式如下:
Y=0.30R+0.59G+0.11B
U=0.493(B-Y) = -0.15R-0.29G+0.44B
V=0.877(R-Y) = 0.62R-0.52G-0.10B
但是這樣獲得的YUV值存在著負值以及取值范圍上下限之差不為255等等問題,不利于計算機處理,所以根據不同的理解和需求,通常在軟件處理中會用到各種不同的變形的公式,這里就不列舉了。
體現在Sensor上,我們也會發(fā)現有些Sensor可以設置YUV的輸出取值范圍。原因就在于此。
從公式中,我們關鍵要理解的一點是,UV 信號實際上就是藍色差信號和紅色差信號,進而言之,實際上一定程度上間接的代表了藍色和紅色的強度,理解這一點對于我們理解各種顏色變換處理的過程會有很大的幫助。
3.1、 白平衡
3.1.1、 色溫
色溫的定義:將黑體從絕對零度開始加溫,溫度每升高一度稱為1開氏度(用字母K來表示),當溫度升高到一定程度時候,黑體便輻射出可見光,其光譜成份以及給人的感覺也會著溫度的不斷升高發(fā)生相應的變化。于是,就把黑體輻射一定色光的溫度定為發(fā)射相同色光光源的色溫。
常見光源色溫:
光源 色溫(K)
鎢絲燈(白熾燈) 2500-3200k
碳棒燈 4000-5500k
熒光燈(日光燈,節(jié)能燈) 4500-6500k
氙燈 5600 k
炭精燈 5500~6500k
日光平均 5400k
有云天氣下的日光 6500-7000k
陰天日光 12000-18000k
隨著色溫的升高,光源的顏色由暖色向冷色過渡,光源中的能量分布也由紅光端向藍光端偏移。
值得注意的是,實際光源的光譜分布各不相同,而色溫只是代表了能量的偏重程度,并不反映具體的光譜分布,所以即使相同色溫的光源,也可能引起不同的色彩反應。
人眼及大腦對色溫有一定的生理和心理的自適應性,所以看到的顏色受色溫偏移的影響較小,而camera的sersor沒有這種能力,所以拍出來的照片不經過白平衡處理的話,和人眼看到的顏色會有較大的偏差(雖然人眼看到的和白光下真實的色彩也有偏差)。
太陽光色溫隨天氣和時間變化的原因,與不同頻率光的折射率有關:
波長長的光線,折射率小,透射能力強,波長短的光線,折射率大,容易被散射,折射率低,這也就是為什么交通燈用紅色,防霧燈通常是黃色,天空為什么是藍色的等等現象的原因。
知道了這一點,太陽光色溫變化的規(guī)律和原因也就可以理解和分析了,留給大家自己思考。
3.1.1 色溫變化時的色彩校正
所以從理論上可以看出,隨著色溫的升高,要對色溫進行較正,否則,物體在這樣的光線條件下所表現出來的顏色就會偏離其正常的顏色,因此需要降低 sensor對紅色的增益,增加sersor對藍光的增益。同時在調整參數時一定程度上要考慮到整體亮度的要保持大致的不變,即以YUV來衡量時,Y值要 基本保持不變,理論上認為可以參考RGB-》YUV變換公式中,RGB三分量對Y值的貢獻,從而確定RGAIN和BGAIN的變化的比例關系。但實 際情況比這還要復雜一些,要考慮到不同sensor對R,B的感光的交叉影響和非線性,所以最佳值可能和理論值會有一些偏差。
3.1.2 自動白平衡原理
3.1.2.1 原理
自動白平衡是基于假設場景的色彩的平均值落在一個特定的范圍內,如果測量得到結果偏離該范圍,則調整對應參數,校正直到其均值落入指定范圍。該 處理過程可能基于YUV空間,也可能基于RGB空間來進行。對于Sensor來說,通常的處理方式是通過校正R/B增益,使得UV值落在一個指定的范圍 內。從而實現自動白平衡。
3.1.2.2 特殊情況的處理
在自動白平衡中,容易遇到的問題是,如果拍攝的場景,排除光線色溫的影響,其本身顏色就是偏離平均顏色值的,比如大面積的偏向某種顏色的圖案如:草地,紅旗,藍天等等,這時候,強制白平衡將其平均顏色調整到灰色附近,圖像顏色就會嚴重失真。
因此,通常的做法是:在處理自動白平衡時,除了做為目標結果的預期顏色范圍外,另外再設置一對源圖像的顏色范圍闕值,如果未經處理的圖像其顏色均值超出了該闕值的話,根本就不對其做自動白平衡處理。由此保證了上述特殊情況的正確處理。
可見,這兩對闕值的確定對于自動白平衡的效果起著關鍵性的作用。
3.1.3 某平臺的例子
英文代碼 中文界面 色溫 色溫 RGAIN, GGAIN, BGAIN
cloud 陰天 7500k 0x1D4C, 0x00CD, 0x0085, 0x0080
daylight 日光 6500k 0x1964, 0x00A3, 0x0080, 0x0088
INCANDESCENCE 白熱光 5000k 0x1388, 0x00A5, 0x0080, 0x0088
FLUORESCENT 日光燈 4400k 0x1130, 0x0098, 0x0080, 0x00A8
TUNGSTEN 鎢絲燈 2800k 0x0AF0, 0x0080, 0x0081, 0x00A4
可以看到隨著色溫的升高,其變化規(guī)律基本符合上節(jié)中的理論分析。不過這里多數參數與理論值都有一些偏差,其中日光燈的色溫參數設置與理論值有較 大的偏差,實際效果也證明該日光燈的參數設置使得在家用日光燈環(huán)境下拍攝得到的照片顏色偏藍。修改其參數后實拍效果明顯改善。(再查一些資料可以看到通常 會有兩種熒光燈色溫 4000 和 5000K,目前我所接觸到的應該是5000K居多)
3.1.4 調試和驗證
具體參數的調整,應該在燈箱環(huán)境下,使用各種已知色溫的標準光源對標準色卡拍攝,在Pc機上由取色工具測量得到其與標準色板的RGB分量上的色彩偏差,相應的調整各分量增益的比例關系。為了更精確的得到結果,曝光量增益的設置在此之前應該相對準確的校正過
4、顏色相關特效處理
4.1 grayscale (灰階)
灰階圖的效果就是將彩色圖片轉換為黑白圖片。
4.2 理論
理論上,在YUV空間,將UV分量丟棄,只保留Y分量,這樣就可以得到黑白圖像,這也是彩色電式機信號能兼容黑白電視機的原理。如下圖理論上Y值一樣的顏色(右邊是用acdsee轉成灰度圖的效果),在grayscale模式下看應該是一樣的顏色。
算法上的操作,理論上應該把UV值改成灰色對應數值就可以了。不過根據軟件算法和硬件結構的不同,具體代碼也會有不同。
4.3 以某平臺為例
核心的兩行代碼如下:
SET_HUE_U_GAIN(0);
SET_HUE_V_GAIN(0);
這里設置UV GAIN為0,如果UV offset設置為128的話,最終得到的UV就是128,這就和理論是相符合的。
4.4 sepia / sepiagreen / sepiablue
所謂的復古(綠,藍)就是在灰階的基礎上,對UV值額外再做了一個offset,將灰度圖轉換成某種顏色的梯度圖。理論上為了獲得藍色效果,應該增加藍色差信號,減小紅色差信號。即增大U,減小V。
以sepiablue效果為例,這里的字節(jié)的MSB表示符號位:所以88為88,158為-30。
SET_HUE_U_GAIN(0);
SET_HUE_V_GAIN(0);
SET_HUE_U_OFFSET(88);
SET_HUE_V_OFFSET(158);
4.5 negative
所謂負片效果,就是將圖像的顏色反轉,看起來就像是在看膠片底片時的效果。這從理論上也很容易理解和處理,就是在RGB空間,取其補色,具體的操作就是用255分別減去RGB得到新的RGB值。通常會在ISP中實現該功能。
-
圖像
+關注
關注
2文章
1084瀏覽量
40461 -
Sensor
+關注
關注
0文章
134瀏覽量
49601
發(fā)布評論請先 登錄
相關推薦
評論