Understanding CMOS Image Sensor(一)
轉(zhuǎn)自知乎Camera技術(shù)專家?劉斯寧
鏈接:https://zhuanlan.zhihu.com/p/100777121
前言
攝像機(jī)用來成像的感光元件叫做image sensor或imager。CMOS Image Sensor (CIS) 最早是美國(guó)噴氣推進(jìn)實(shí)驗(yàn)室(Jet Propulsion Laboratory, JPL)的一個(gè)研究項(xiàng)目,Dr. Eric Fossum 是業(yè)界公認(rèn)的CIS技術(shù)發(fā)明人。1992年,Dr. Eric R. Fossum 在美國(guó)加州Pasadena(帕薩迪納)的噴氣推進(jìn)實(shí)驗(yàn)室工作,負(fù)責(zé)NASA一些雄心勃勃的太空探測(cè)器的建造和運(yùn)行。那一年NASA向員工們發(fā)出了一個(gè)頗為有趣的要求 ——“更快,更好,更便宜”。作為JPL圖像傳感器研究的負(fù)責(zé)人,F(xiàn)ossum 負(fù)責(zé)重新發(fā)明NASA太空船上的巨型相機(jī)。當(dāng)時(shí)在數(shù)碼攝影市場(chǎng)上已經(jīng)應(yīng)用了CCD技術(shù),但是CCD需要消耗大量的能量和相當(dāng)多的支持芯片。Fossum 團(tuán)隊(duì)發(fā)現(xiàn),如果能夠消除在成像陣列中反復(fù)轉(zhuǎn)移電荷的需要,那么這兩個(gè)問題都將解決,于是就誕生了CMOS有源像素傳感器。下圖是JPL 首個(gè)CMOS APS 芯片,只有28x28個(gè)像素,像素尺寸40umx40um,誕生于1993年4月。APS 是Active Pixel Sensor (主動(dòng)像素傳感器)的縮寫。P.S. 據(jù)史料記載,1936年時(shí),加州理工大學(xué)的五個(gè)學(xué)生在宿舍里制作火箭燃料,結(jié)果發(fā)生了爆炸,把宿舍墻炸出了一個(gè)洞。令人不可思議的是,學(xué)校竟然沒有收繳他們的作案工具,而是把他們趕到了郊外的一塊河谷上讓他們?cè)谀抢锢^續(xù)做實(shí)驗(yàn),于是他們就用學(xué)校的資助在河谷上建了一個(gè)火箭實(shí)驗(yàn)基地,這就是JPL的前身。那五個(gè)學(xué)生中就有“中國(guó)導(dǎo)彈之父”錢學(xué)森。
1 CMOS Sensor 原理
1.1 簡(jiǎn)介CMOS 是英文Complementary Metal Oxide Semicondutor 的縮寫,這是一種主流的半導(dǎo)體工藝,具有功耗低、速度快的優(yōu)點(diǎn),被廣泛地用于制造CPU、存儲(chǔ)器和各種數(shù)字邏輯芯片?;贑MOS 工藝設(shè)計(jì)的圖像傳感器叫做CMOS Image Sensor (CIS),與通用的半導(dǎo)體工藝尤其是存儲(chǔ)器工藝相似度達(dá)到90%以上。CMOS技術(shù)的主要特點(diǎn)是成對(duì)地使用PMOS和NMOS兩種晶體管,PMOS負(fù)責(zé)拉高,NMOS負(fù)責(zé)拉低,兩者配合可以實(shí)現(xiàn)數(shù)字信號(hào)的快速切換,這就是Complementary的具體含義。下圖以最基本的反相器為例說明了CMOS技術(shù)的基本原理。英文中的camera 實(shí)際上包含了兩類產(chǎn)品,一種是以拍攝靜態(tài)圖片為主的digital still camera,中文叫做相機(jī),比如各種單反相機(jī)和微單類產(chǎn)品。
用于手機(jī)的camera則有一點(diǎn)特別,拍照和拍視頻兩種功能使用都比較頻繁。
行車記錄儀和流媒體后視鏡屬于車載camera產(chǎn)品,也是近年來增長(zhǎng)比較快的市場(chǎng)。
在所有這些camera 產(chǎn)品中,CMOS sensor 是當(dāng)之無愧的核心元件,它位于鏡頭和圖像信號(hào)處理器(ISP)之間,把光信號(hào)轉(zhuǎn)換成ISP能夠處理的數(shù)字信號(hào)(電信號(hào))。CMOS sensor 與鏡頭、ISP一起構(gòu)成了camera 的靈魂,決定了camera 的核心價(jià)值。
當(dāng)人們選購(gòu)camera產(chǎn)品時(shí),可能第一關(guān)注的就是分辨率指標(biāo),這個(gè)指標(biāo)也是很多普通消費(fèi)者唯一能夠理解的技術(shù)指標(biāo)。比如某手機(jī)支持1200萬像素?cái)z像頭,它背后的意義是該手機(jī)可能使用SONY IMX378 sensor,該sensor在抓拍靜態(tài)照片時(shí)輸出分辨率為4056x3040的完整尺寸圖像,而拍照之前的預(yù)覽視頻則一般默認(rèn)是1920x1080的FHD高清圖像。有些眼尖的讀者已經(jīng)注意到這個(gè)問題了,為什么抓拍和預(yù)覽時(shí)圖像分辨率會(huì)不同?原因并不復(fù)雜,第一是省電,處理1200萬像素的預(yù)覽視頻消耗的能量基本上是200萬像素的6倍,手機(jī)的電量會(huì)迅速耗光;第二是成本,能夠處理1200萬像素預(yù)覽視頻的ISP復(fù)雜度更高,芯片面積更大,價(jià)格也更貴。第三是沒有必要,因?yàn)槭謾C(jī)屏幕的主流才剛剛達(dá)到200萬像素,更高的分辨率沒有實(shí)際意義?;谝陨显?,手機(jī)在抓拍和預(yù)覽時(shí)需要進(jìn)行模式切換,而每次切換模式需要為sensor和ISP重新配置大量的寄存器參數(shù),一般會(huì)有2萬個(gè)左右,所以在切換瞬間預(yù)覽視頻會(huì)短暫黑屏,而實(shí)際抓拍到的圖像與預(yù)覽圖像會(huì)存在一個(gè)明顯的時(shí)間延遲。這個(gè)延遲會(huì)給用戶造成不少困擾,比如會(huì)使家長(zhǎng)們?cè)谧ヅ男『⒌谋砬闀r(shí)遇到一定的技術(shù)困難,會(huì)錯(cuò)過很多生活中的精彩瞬間。在印刷行業(yè)中,描述一幅圖像的質(zhì)量通常會(huì)使用“像素密度”的概念,一種常用的定義是PPI(pixel per inch)或DPI(dot per inch),即每英寸長(zhǎng)度上(1in=25.4mm)打印多少個(gè)像素點(diǎn)。Photoshop軟件中默認(rèn)的標(biāo)準(zhǔn)像素密度是72dpi,高質(zhì)量標(biāo)準(zhǔn)是300dpi。下面的例子說明了不同像素密度對(duì)應(yīng)的圖像質(zhì)量效果。
- Identification:圖像質(zhì)量?jī)?yōu)秀,圖像中提供了充足的細(xì)節(jié),可以完全確定目標(biāo)的身份,并排除其它可能性
- Recognition: 圖像質(zhì)量良好,圖像提供的細(xì)節(jié)足以斷定圖像中的目標(biāo)是否與真實(shí)人物(或參考照片)屬于同一人物
- Classification:圖像質(zhì)量一般,圖像提供的細(xì)節(jié)僅能幫助分辨體貌特征,如男女、高矮、顏色等,但不能斷定全部細(xì)節(jié)
- Detection:圖像質(zhì)量差,僅能勉強(qiáng)分辨圖像中是否存在關(guān)注的目標(biāo)
- Useless:圖像質(zhì)量太差,不能說明任何問題
1.2 光電轉(zhuǎn)換目前大部分的sensor都是以硅為感光材料制造的,硅材料的光譜響應(yīng)如下圖所示。
像點(diǎn)的作用可以類比成一個(gè)盛水的小桶,它可以在一定范圍內(nèi)記錄其捕獲的光電子數(shù),如果入射的光子太少則可能什么都記錄不到,如果入射的光子太多則只能記錄其所能容納的最大值,多余的光電子由于無處安置只能就地釋放,就像水桶盛滿之后再繼續(xù)接水就會(huì)溢出一樣。溢出的自由電子會(huì)被專門的機(jī)制捕獲并排空。像點(diǎn)曝光的過程,非常類似下圖所示的用很多小桶接雨水的過程。
1.3 像點(diǎn)微觀結(jié)構(gòu)一個(gè)像點(diǎn)的解剖結(jié)構(gòu)如下圖所示。
- 硅感光區(qū),捕獲光子,激發(fā)光生電子
- 勢(shì)阱,用電場(chǎng)捕獲、存儲(chǔ)光生電子
- 電路,將電荷數(shù)量變換為電壓信號(hào),以及復(fù)位、選擇、讀出邏輯
- 濾光膜,選擇性透過三種波長(zhǎng)中的一種
- 微透鏡,將入射光線會(huì)聚到感光區(qū)
1.4 Bayer Filter為了能夠區(qū)分顏色,人們?cè)诠韪泄鈪^(qū)上面設(shè)計(jì)了一層濾光膜,每個(gè)像素上方的濾光膜可以透過紅、綠、藍(lán)三種波長(zhǎng)中的一種,而過濾掉另外兩種,如下圖所示。
像點(diǎn)之所以叫像點(diǎn)而不叫像素正式因?yàn)檫@了原因,一個(gè)嚴(yán)格意義上的像素,即pixel,是一個(gè)具備紅、綠、藍(lán)三個(gè)顏色分量的組合體,能夠表達(dá)RGB空間中的一個(gè)點(diǎn)。而sensor上的一個(gè)像點(diǎn)只能表達(dá)三種顏色中的一個(gè),所以在sensor范疇內(nèi)并不存在嚴(yán)格意義上的像素概念。但是很多情況下人們并不刻意區(qū)分像素和像點(diǎn)在概念上的差別,經(jīng)常會(huì)用像素來指代像點(diǎn),一般也不會(huì)引起歧義。所有的像點(diǎn)按照一定格式緊密排成一個(gè)陣列,構(gòu)成sensor的像敏區(qū),即color imaging array。像點(diǎn)陣列的微觀效果如下圖所示。其中感光膜的布局叫做Bayer Mosaic Color Filter Arrary,通常簡(jiǎn)寫為Bayer CFA或CFA。早期的工藝微透鏡之間是存在無效區(qū)域的,為了提高光能量的利用率,人們會(huì)努力擴(kuò)大微透鏡的有效面積,最終實(shí)現(xiàn)了無縫的透鏡的陣列。
索尼的Power HAD CCD 技術(shù)在Hyper HAD 技術(shù)基礎(chǔ)上縮小了微透鏡間距,進(jìn)一步提升了像素感光能力。
Bayer格式圖片是伊士曼·柯達(dá)公司科學(xué)家Bryce Bayer發(fā)明的,拜耳陣列被廣泛運(yùn)用與數(shù)字圖像處理領(lǐng)域。不同的sensor可能設(shè)計(jì)成不同的布局方式,下面是幾種常見的布局
上述各種Bayer格式的共同特點(diǎn)是接受一種顏色而拒絕兩種顏色,因此理論上可以近似認(rèn)為光能量損失了2/3,這是非??上У?。為了提高光能量的利用率,人們提出了RYYB的pattern,這是基于CMY三基色的CFA pattern,Cyan是青色(Red的補(bǔ)色),Magenta是品紅(Green的補(bǔ)色),Yellow是黃色(Blue的補(bǔ)色)。目前這種特殊的Bayer pattern已經(jīng)在華為P30系列和榮耀20手機(jī)上實(shí)現(xiàn)了量產(chǎn)。據(jù)華為終端手機(jī)產(chǎn)品線總裁何剛透露,為了保證RYYB陣列在調(diào)色方面的準(zhǔn)確性,華為付出了整整3年的時(shí)間。
1.5 成像與讀出Sensor成像的過程可以比喻成用水桶接水的過程,如下圖所示。在這個(gè)比喻中,雨水即相當(dāng)于光子,每個(gè)水桶即相當(dāng)于一個(gè)像點(diǎn),水桶收集雨水的過程即相當(dāng)于像點(diǎn)的曝光過程。當(dāng)收集到合適數(shù)量的雨水后,會(huì)有專門的工序統(tǒng)計(jì)每一個(gè)水桶收集到多少雨水,然后將桶倒空,重新開始下一次收集。
- 每個(gè)像素內(nèi)置一個(gè)電荷/電壓放大器(Charge/Voltage Converter, CVC),將像素勢(shì)阱中電荷的數(shù)量轉(zhuǎn)換成電壓信號(hào)
- 讀出邏輯選中某一行,該行所有像素的電荷/電壓放大器的輸出信號(hào)與列輸出信號(hào)聯(lián)通
- 讀出邏輯繼續(xù)選中某一列,該列信號(hào)與可編程輸出放大器(Output Amplifier)聯(lián)通,被選中的像素的電壓信號(hào)被放大一定倍數(shù)
- 放大后的電壓信號(hào)經(jīng)ADC轉(zhuǎn)換器后變成數(shù)字信號(hào),在sensor 內(nèi)部經(jīng)過一定的ISP處理,最后通過一定的接口協(xié)議(如MIPI)輸出到外部
- 一個(gè)reset 信號(hào)負(fù)責(zé)將某一行像素清零,使其從零開始積累電荷
- 一個(gè)read 信號(hào)負(fù)責(zé)選擇某一行,導(dǎo)致該行被讀出
下圖顯示了一個(gè)像素的曝光過程。
- 一個(gè)曝光過程從RESET開始,RESET信號(hào)保持一段時(shí)間后像素清零,恢復(fù)高電壓
- 像素自由積分,時(shí)間取決于用戶設(shè)置的曝光時(shí)間
- 像素采樣,準(zhǔn)備讀出
Rolling shutter 在空間和時(shí)間上的關(guān)系如下圖所示。
顯然,sensor read 信號(hào)與 reset 信號(hào)之間的時(shí)間間隔就是每個(gè)像素能夠積累光信號(hào)的時(shí)間,也就是人們所熟知的“曝光時(shí)間(exposure time)”,在技術(shù)領(lǐng)域則更多會(huì)使用“積分時(shí)間(integration time)”這個(gè)術(shù)語,它一般是以行為單位的一個(gè)量,能夠精確地反映像素曝光過程的物理本質(zhì)和實(shí)現(xiàn)原理。熟悉攝影的人都會(huì)知道,如果被拍攝的物體在相對(duì)攝像機(jī)運(yùn)動(dòng),則需要使用比較短的曝光時(shí)間,否則畫面就會(huì)出現(xiàn)運(yùn)動(dòng)模糊,這是因?yàn)樵谄毓膺^程中物體不斷從一個(gè)像素位置轉(zhuǎn)移到另一個(gè)像素位置,物體運(yùn)動(dòng)速度越快,運(yùn)動(dòng)模糊越嚴(yán)重,如下圖所示。
在下圖的例子中,由于彈琴的手在不停地移動(dòng)位置,所以在很多像素上都會(huì)留下一點(diǎn)曝光的痕跡,卻沒有任何一個(gè)像素上停留足夠久的時(shí)間。
以拍攝人物為例,當(dāng)在畫面中以正常速度步行時(shí),如果曝光時(shí)間大于1/30秒(約30ms)則畫面就開始出現(xiàn)運(yùn)動(dòng)模糊,下圖給出了一組經(jīng)驗(yàn)值,用于參考絕對(duì)曝光時(shí)間和運(yùn)動(dòng)模糊的關(guān)系。
1.7 Rolling shutter 效應(yīng)卷簾曝光的最顯著特點(diǎn)是每一行像素開始曝光的時(shí)間點(diǎn)是不同的,是與像素位置有關(guān)的的函數(shù)。當(dāng)畫面中存在運(yùn)動(dòng)的物體時(shí),物體在曝光過程中空間位置在不斷變化,畫面就發(fā)生變形,物體速度越快,變形就越嚴(yán)重。
這種形變通常稱為RS效應(yīng),或者“果凍效應(yīng)”(Jello effect),指圖像出現(xiàn)扭曲、傾斜等現(xiàn)象,仿佛進(jìn)入了“時(shí)空扭曲”的世界一般。
- 整體傾斜(skew),如下圖車輛的例子
- 圖像搖擺(wobble),如下圖所示
- 部分閃光(partial flash),如下圖所示
普通攝影閃光燈的閃光時(shí)間 通常只有幾個(gè)毫秒,顯著短于一幀圖像的成像時(shí)間,因此只有一部分畫面能夠被閃光照亮。
微軟研究院的Simon等人使用光流法追蹤搖擺像素的運(yùn)動(dòng)矢量,從而對(duì)搖擺進(jìn)行校正。
1.8 積分時(shí)間 (integration time)用戶在使用camera拍攝時(shí)需要根據(jù)場(chǎng)景特點(diǎn)決定所采用的曝光時(shí)間(exposure time),或者讓camera 在設(shè)定范圍內(nèi)自動(dòng)選擇最合適的曝光時(shí)間,這時(shí)所涉及的曝光時(shí)間概念主要與拍攝場(chǎng)景有關(guān),一般是以毫秒為單位計(jì)算的絕對(duì)時(shí)間,也是用戶比較熟悉和容易理解的概念。而sensor 中用來控制曝光長(zhǎng)短的寄存器參數(shù)稱為積分時(shí)間,一般是以行為單位的,這個(gè)概念是源于sensor 的技術(shù)特性,一般不需要用戶去理解。曝光時(shí)間和積分時(shí)間存在確定的換算關(guān)系。比如說int_t=159,指的是sensor reset 信號(hào)和read 信號(hào)之間的間隔為159行,而每行所占的絕對(duì)時(shí)間(line_time)與sensor 主頻(pixel clock, PCLK)的和每一行包含多少像素(行長(zhǎng) )有關(guān),具體公式是:line_time=h_size / pclk其中h_size 為行長(zhǎng),以PCLK 數(shù)為單位,1/pclk 為一個(gè)時(shí)鐘周期,即掃描一個(gè)像素需要花費(fèi)的絕對(duì)時(shí)間因此曝光時(shí)間與積分時(shí)間的換算公式如下:exposure time = int_t * line_time舉例來說,假設(shè)一個(gè)1080p sensor PCLK=76MHz,每行配置成2000個(gè)PCLK(由有效像素和blanking組成),則有line_time = 2000 / 76MHz = 26.32 us如果某個(gè)場(chǎng)景需要10ms曝光時(shí)間,則sensor 積分時(shí)間應(yīng)如下計(jì)算,int_t = 10000us / 26.32us = 379.9 (行)顯然這個(gè)例子可以安全地將sensor 寄存器配置為380行,就能得到10ms的曝光時(shí)間。但是當(dāng) int_t < 2 時(shí)問題就會(huì)變得有些復(fù)雜。假設(shè)計(jì)算出的理想積分時(shí)間是1.5行,此時(shí)自動(dòng)曝光算法就很容易產(chǎn)生振蕩,不停在1行和2行之間切換而無法穩(wěn)定在一個(gè)固定值。因此有些sensor 會(huì)支持分?jǐn)?shù)行,可以幫助解決這個(gè)問題。
1.9 工頻閃爍 (flicker)工頻閃爍,通常發(fā)生在室內(nèi)場(chǎng)景,曝光時(shí)間設(shè)置如果不是光源能量周期的整數(shù)倍,則圖像不同位置處積累的信號(hào)強(qiáng)度不同,并呈周期性變化,這是單幀圖像的情況。在視頻序列上,如果滿足一定條件,視頻會(huì)出現(xiàn)條紋模式在垂直方向上緩慢移動(dòng)。
1.10 與CCD的對(duì)比CCD技術(shù)的發(fā)展起源于1960年代,在2000年以前曾是image sensor 的主流解決方案,下圖對(duì)比了CCD和CMOS讀出方式的主要區(qū)別。
1.11 改進(jìn)的曝光方式Interlaced 曝光為了改善rolling shutter 曝光方式存在的問題,有人提出了Interlaced 曝光和讀出方式,如下圖所示,新的曝光順序?qū)⒁粠鸱殖?組,第一組包含行號(hào) {0,8,16,24...},第二組包含行號(hào) {1,9,17,25,...} ,以此類推,第八組包含行號(hào) {7,15,23,31,....} 。這種曝光方式的優(yōu)點(diǎn)是組與組之間的曝光延時(shí)為一幀時(shí)間的八分之一,以1080p@30fps 為例,一幀的讀出時(shí)間大致在28ms左右,在新的曝光方式下像素間的最大曝光延時(shí)僅為3.5ms,可以更好地捕捉運(yùn)動(dòng)場(chǎng)景。
斬波曝光(chopped)在智能交通領(lǐng)域常會(huì)遇到拍攝交通信號(hào)燈的需求。大部分信號(hào)燈直接使用220V市電供電,因此會(huì)存在10ms的光能量周期(美國(guó)是110V,周期8.3ms)。偶爾也會(huì)有信號(hào)燈廠家偷工減料,使用半波整流器件將電頻率的負(fù)半周過濾不用,這就導(dǎo)致信號(hào)燈每亮10ms之后就會(huì)熄滅10ms。雖然人眼看不出來,但sensor看的非常清楚。P.S. 遇到這種偷工減料的信號(hào)燈,一般可以要求業(yè)主更換信號(hào)燈供應(yīng)商,并拉黑原供應(yīng)商。由于信號(hào)燈存在10ms的明暗周期,當(dāng)sensor曝光時(shí)間很短時(shí),就會(huì)遇到某一幀圖像里信號(hào)燈碰巧全都不亮的尷尬場(chǎng)景,如下圖所示。
除了紅綠燈之外,很多汽車上使用的LED大燈或者信號(hào)燈也是有頻率的,而且平均點(diǎn)亮的時(shí)間(占空比,duty cycle)可能更短,如下圖所示,這種情況sensor抓拍到LED(信號(hào))燈熄滅的概率會(huì)更大。
為了緩解這個(gè)問題,有人提出了斬波曝光的工作模式,其原理是把正常曝光所需的曝光時(shí)間(比如1ms)分散到11ms的固定時(shí)間間隔內(nèi)執(zhí)行,通過多次短暫曝光的效果累加實(shí)現(xiàn)1ms等效曝光時(shí)間,且能保證采樣到信號(hào)燈最亮的時(shí)刻,如下圖所示。
1.12 畫幅
APS-C sensor 典型尺寸22mm寬,是單反相機(jī)的主力軍,具有6百萬~5千萬像素不等。
4/3英寸畫幅sensor,典型尺寸17.3mm寬,微單產(chǎn)品的主力,具有8百萬~2千萬像素不等。
1英寸畫幅sensor,典型尺寸13.2mm寬,用于單反和高端安防產(chǎn)品
1/3~2/3英寸sensor,便攜camera和安防camera的主力軍,1百萬~2千萬像素不等。
1/4~1/2英寸sensor,主要用于手機(jī)camera模組,8百萬~4千萬像素不等。