手機(jī)上的攝像頭蒋畜,是一個(gè)微型的照相機(jī)简肴,用CMOS傳感器來充當(dāng)照相機(jī)的底片。當(dāng)外界景物發(fā)出的光線百侧,經(jīng)過鏡頭成像到COMS傳感器上砰识,此時(shí)得到的是一個(gè)倒立的縮小的二維的圖像。這個(gè)二維圖像本身是由無窮多個(gè)點(diǎn)組成的佣渴,先不考慮顏色通道當(dāng)作黑白圖像處理的話辫狼,是一個(gè)光強(qiáng)隨二維坐標(biāo)值變化而變化的模擬信號。
以前我們用鹵化銀當(dāng)?shù)灼恼盏臅r(shí)候辛润,底片上的感光顆粒膨处,其實(shí)是難以數(shù)清的,看起來好像有無窮多個(gè)像素砂竖,所以它的像素不能用確定的數(shù)值表示真椿。沖洗出來的照片畫面很細(xì)膩,但像素也不是真的無窮大乎澄,如果沖印放大到很大的尺寸后突硝,還是可以看出模糊了。每個(gè)顆粒的感光量也是不好算清楚和量化的置济,所以傳統(tǒng)膠片相機(jī)的底片保存的是模擬信號解恰。
而當(dāng)用CMOS傳感器來充當(dāng)?shù)灼瑫r(shí),傳感器上的二維陣列單元的個(gè)數(shù)浙于,就是攝像頭的像素护盈,或者叫攝像頭的分辨率,是可以確定具體數(shù)值的羞酗,比如常見1200萬像素的攝像頭分辨率為4032x3024腐宋。所以此時(shí)分辨率可以理解為圖像信號空間上的采樣率,分辨率越高則采樣率越高檀轨,失真就越小胸竞,越接近真相,看起來越清晰裤园。
CMOS傳感器把每個(gè)像素接收到的光信號轉(zhuǎn)換成電荷撤师,完成了光信號到電信號的轉(zhuǎn)換。再對模擬信號進(jìn)行AD轉(zhuǎn)換得到量化后的數(shù)字信號拧揽,一般用10bit來表示一個(gè)像素的數(shù)值剃盾。我們知道模擬信號轉(zhuǎn)換為數(shù)字信號,需要經(jīng)過采樣和量化淤袜,這兩步都會(huì)造成精度上的損失痒谴。此時(shí)得到的是RAW數(shù)據(jù),其本質(zhì)一個(gè)二維數(shù)組铡羡,每個(gè)元素用10bit表示取值0~1023积蔚。
但分辨率也不能無限制高下去,因?yàn)槭謾C(jī)攝像頭的體積有限烦周,所以CMOS傳感器的總面積有限尽爆,分辨率越高的話怎顾,則每個(gè)像素分到的面積會(huì)變小,感光的能力會(huì)變差漱贱,也更容易收到干擾槐雾,會(huì)導(dǎo)致噪點(diǎn)增多畫質(zhì)變差。
傳統(tǒng)的膠片相機(jī)幅狮,取景和成片的光路是分開的募强。光學(xué)取景器可以實(shí)時(shí)看到動(dòng)態(tài)的成像畫面,但只有按下快門鍵的時(shí)候崇摄,才會(huì)打開機(jī)械快門擎值,讓光進(jìn)入底片所在的暗室,完成一次拍照的曝光逐抑。
AV + TV = BV + SV
那就提下曝光的公式鸠儿,AV是光圈值的級數(shù),TV是曝光時(shí)間值的級數(shù)泵肄,BV是環(huán)境亮度值的級數(shù)捆交,SV是底片的感光靈敏度的級數(shù)。解釋一下腐巢,等式左邊是曝光過程的供給側(cè)品追,等式右邊是需求側(cè)冯丙。環(huán)境越暗需求越大肉瓦,底片靈敏度低需求也越大。此時(shí)需要加大光圈的開孔尺寸胃惜,或者增加曝光持續(xù)的時(shí)間泞莉,反之亦然。
對于手機(jī)攝像頭來說船殉,光圈是固定的鲫趁,底片的感光靈敏度可以通過設(shè)置ISO來調(diào)節(jié),曝光時(shí)間不是通過傳統(tǒng)的機(jī)械快門打開的時(shí)間來控制的利虫,而是通過控制CMOS傳感器的寄存器挨厚,來控制光信號積分的時(shí)間。也就是光一直照射在CMOS傳感器上糠惫,只不過通過開關(guān)來控制器件的曝光工作周期的開始和結(jié)束疫剃,并且一般是一行一行來控制的。
攝像頭一般通過MIPI接口把RAW數(shù)據(jù)傳輸?shù)狡脚_(tái)的ISP模塊硼讽。ISP里有個(gè)像素信息統(tǒng)計(jì)模塊巢价,可以統(tǒng)計(jì)RGB分量的值。然后ISP根據(jù)統(tǒng)計(jì)信息來進(jìn)行3A的調(diào)整。
AF就是自動(dòng)調(diào)整參數(shù)使畫面對焦清晰壤躲。以對比度對焦的方式為例城菊,根據(jù)RAW圖算出來的對比度,來調(diào)整鏡頭的位置柒爵,找到使畫面對比度最高時(shí)鏡頭的位置役电。鏡頭一般安裝在VCM馬達(dá)上,所以就通過控制馬達(dá)控制芯片的寄存器來控制馬達(dá)的位置棉胀,進(jìn)而控制鏡頭的位置。
需要注意的是冀膝,變焦和對焦是不同的概念唁奢。手機(jī)攝像頭的鏡頭組是無法改變每個(gè)鏡片之間的距離,所以焦距是無法改變的窝剖,也就無法實(shí)現(xiàn)光學(xué)變焦÷榈В現(xiàn)在有些手機(jī)的可以實(shí)現(xiàn)10的光學(xué)變焦,是通過切換兩個(gè)不同焦距的攝像頭來實(shí)現(xiàn)赐纱。為了避免跑題脊奋,變焦可能需要放到另外的文章來解釋。
AE就是就自動(dòng)調(diào)整參數(shù)使畫面曝光正確疙描,根據(jù)RAW圖得到的統(tǒng)計(jì)信息诚隙,來確定當(dāng)前是要增加曝光量還是減少曝光量。通過控制sensor的寄存器來實(shí)現(xiàn)控制曝光時(shí)間和ISO起胰,進(jìn)而控制曝光量久又。
AWB就是自動(dòng)調(diào)整參數(shù)使畫面整體的顏色正確,根據(jù)RAW圖得到的統(tǒng)計(jì)信息效五,來控制R/G和B/G的gain值地消,進(jìn)而來控制顏色的傾向。
經(jīng)過3A的調(diào)整后畏妖,RAW圖就是一張清晰的脉执,亮暗合適,顏色正常的圖片戒劫。具體一點(diǎn)半夷,其實(shí)顏色還需要經(jīng)過ISP的CCM模塊矯正,因?yàn)槟=M里的CFA的RGB三通道的響應(yīng)和我們?nèi)搜垌憫?yīng)有差異谱仪,所以需要經(jīng)過顏色矯正玻熙。?
RAW經(jīng)過解馬賽克可以得到RGB888格式的數(shù)據(jù),數(shù)據(jù)由10bit壓縮到8bit疯攒,會(huì)丟失一些精度嗦随。RGB888再經(jīng)過線性變換可以得到Y(jié)UV格式的數(shù)據(jù),如果是預(yù)覽的話,可以直接把YUV數(shù)據(jù)回調(diào)給應(yīng)用層去顯示枚尼。如果是錄像的話贴浙,可以把YUV數(shù)據(jù)傳入編碼器編碼后保存到文件。拍照的話署恍,需要把YUV進(jìn)一步編碼壓縮成JPEG格式的數(shù)據(jù)崎溃,這一步會(huì)損失一些信息。