這篇文章將從CMOS成像原理出發(fā),深入講解ISO的本質(zhì),誰決定ISO,原生ISO和基準(zhǔn)ISO的區(qū)別和定義,分析噪點(diǎn)產(chǎn)生的原因。詳解信噪比、動(dòng)態(tài)范圍的區(qū)別與計(jì)算,以及最重要的ISO如何影響信噪比與動(dòng)態(tài)范圍。
ISO的本質(zhì) 基準(zhǔn)/原生ISO區(qū)別
通常我們將ISO理解為傳感器對(duì)光的敏感程度,在膠片時(shí)代,可以調(diào)節(jié)銀鹽顆粒的大小來決定真正的感光效率,但在數(shù)碼相機(jī)時(shí)代這么理解并不恰當(dāng)。
因?yàn)閷?duì)于同一塊傳感器,光子到電子的轉(zhuǎn)換效率,也叫量子效率已經(jīng)確定,不隨ISO的改變而改變。
那我們?cè)谕瑯拥墓馊涂扉T下如何改變出圖亮度呢?加增益。沒錯(cuò),ISO的本質(zhì)就是增益,可以是模擬的,也可以是數(shù)字的。一般我們將僅由模擬增益決定的ISO稱為原生ISO,也叫native ISO,而最低原生ISO稱為基準(zhǔn)ISO,也叫Base ISO,但通常這兩個(gè)概念可以混用。
CMOS成像原理
為了搞清楚誰決定ISO的課題,我們來回顧一下CMOS圖像傳感器成像原理。
光子進(jìn)入CMOS的光電二極管內(nèi)被轉(zhuǎn)化為電子并捕獲到potential well也叫勢(shì)阱內(nèi)完成積累,這個(gè)光子到電子轉(zhuǎn)換效率被稱為量子效率,也叫QE。
?
勢(shì)阱的電子被浮動(dòng)擴(kuò)散節(jié)點(diǎn)FD也叫floating diffusion轉(zhuǎn)移并儲(chǔ)存到一個(gè)電容CFD里,讀出過程中,這個(gè)電容完成電荷到電壓的轉(zhuǎn)換并被源極跟隨器SF讀出。
?
之后這個(gè)電壓被一個(gè)可編程增益放大器PGA執(zhí)行模擬放大并交給模數(shù)轉(zhuǎn)換器ADC量化為數(shù)字信號(hào)。
?
深入理解誰決定ISO
縱觀整個(gè)光到電再到數(shù)字信號(hào)的讀出流程,ISO又體現(xiàn)在哪兒呢?
首先,量子效率決定了光電靈敏度,這個(gè)很好理解,一般相機(jī)為50%-60%。
其次,浮動(dòng)擴(kuò)散節(jié)點(diǎn)的電容CFD決定電荷到電壓的轉(zhuǎn)換關(guān)系,我們小學(xué)二年級(jí)就學(xué)過C=Q/V,表現(xiàn)電容和電壓、電荷量的關(guān)系,那一個(gè)電子給到這個(gè)電容能產(chǎn)生多少電壓呢?就是基本電荷量小q/Cfd。那么這個(gè)由浮動(dòng)擴(kuò)散節(jié)點(diǎn)電容值決定的電荷到電壓的對(duì)應(yīng)關(guān)系,就稱為conversion gain,也叫轉(zhuǎn)換增益,這個(gè)電容很重要,一會(huì)兒有大用處。
一般來說conversion gain的單位是微伏每電子,比如索尼a1高增益的conversion gain是85.7 uV/e-,表示它一個(gè)電子給到浮動(dòng)擴(kuò)散節(jié)點(diǎn)上,能轉(zhuǎn)化成85.7微伏的電壓。在同樣的量子效率和像素尺寸下,這個(gè)由浮動(dòng)擴(kuò)散電容決定的conversion gain就決定了基準(zhǔn)ISO,因?yàn)榇藭r(shí)PGA不放大,而源極跟隨器通常有固定倍率。
那當(dāng)PGA開始執(zhí)行模擬放大,比如說放大兩倍,意味著接受同樣曝光量下能給到ADC的電壓是基準(zhǔn)ISO的兩倍,基準(zhǔn)ISO100的被放大到ISO200,原生ISO就是被PGA的模擬增益乘上基準(zhǔn)ISO決定了。
?
但PGA的放大倍率也有限,一般是30db,那如果你想開非常非常高的增益,比如說ISO102400,已經(jīng)超過模擬放大極限怎么辦?ADC量化之后再機(jī)內(nèi)數(shù)字增益唄,這時(shí)和你后期提亮沒有任何區(qū)別,這一段也叫擴(kuò)展ISO。
簡(jiǎn)單看個(gè)例子,比如說使用imx410傳感器的尼康Z6,datasheet顯示最高30db的PGA放大,也就是32倍左右。已知imx410在ISO800時(shí)通過雙增益電路切換到高增益的conversion gain,配合32倍的PGA放大,最高原生ISO是32*800=25600,是不是正好對(duì)應(yīng)到實(shí)測(cè)數(shù)據(jù)。
?
當(dāng)然不同廠家對(duì)原生ISO的標(biāo)定有時(shí)也帶上數(shù)字放大,這里就不在贅述了。下面來詳細(xì)講講信噪比、動(dòng)態(tài)范圍和寬容度。
光的量子特性和散粒噪聲
絕大多數(shù)人都錯(cuò)誤的認(rèn)為高ISO下的噪點(diǎn)是CMOS引起的,但事實(shí)并非如此。光的散粒噪聲才是噪點(diǎn)的第一大來源,尤其是目前由于技術(shù)進(jìn)步,讀出噪聲可以壓到幾個(gè)電子的級(jí)別,散粒噪聲更是在大多數(shù)情況下占據(jù)主導(dǎo)。
不確定性原理指出,不可能同時(shí)精確確定一個(gè)基本粒子的位置和動(dòng)量。由于光的量子漲落,在某處測(cè)得的光子數(shù)量不是定值,而是呈現(xiàn)一定概率。
而一段時(shí)間內(nèi)光打到傳感器后的接收數(shù)量符合均值為λ的泊松分布。泊松分布有個(gè)很好的性質(zhì),就是其期望和方差都是均值λ,標(biāo)準(zhǔn)差自然是根號(hào)λ。這個(gè)性質(zhì)可以直接算公式,也可以通過中心極限定理近似到正態(tài)分布得到。
什么是信噪比?就是均值/標(biāo)準(zhǔn)差。
比如說某個(gè)像素成功轉(zhuǎn)換了n個(gè)光子為電子,那此時(shí)散粒噪聲信噪比就為n/根號(hào)n=根號(hào)n。
所以說對(duì)散粒噪聲,隨著光子數(shù)量n的增加,雖然噪聲是以根號(hào)n的形式增加,但其信噪比也在以也在以根號(hào)n的形式增漲,這就是為何我們要增加進(jìn)光量的微觀解釋。
而在需要用到高ISO的場(chǎng)景,本身的進(jìn)光量就小,光的信噪比不足。此時(shí)開高增益以提亮圖片,散粒噪聲就更加明顯了,這也是所謂“ISO引起噪點(diǎn)”的說法錯(cuò)誤所在:高ISO下的噪點(diǎn)是因?yàn)榈瓦M(jìn)光量造成散粒噪聲信噪比低,而不是開了高增益引起多余噪點(diǎn)。
?
進(jìn)光量相同 適當(dāng)?shù)母逫SO反而噪聲更低
讀出噪聲 熱噪和FPN
接下來,我們來看看讀出噪聲,也就是CMOS對(duì)信號(hào)的讀出本身引入的噪聲。
讀出噪聲最重要的來源是ADC量化之前的模擬電路部分,尤其是讀出電路中的FD和SF會(huì)分別引入100 μV左右的噪聲。當(dāng)開啟高ISO,PGA模塊對(duì)SF的讀出電壓加模擬增益,前面的所有讀出噪聲也被同步放大,這一段隨ISO放大而放大的讀出噪聲也叫前端讀出噪聲。
而PGA模塊和ADC本身也會(huì)引發(fā)噪聲,不隨模擬增益而改變,這一段也叫后端讀出噪聲。
其中對(duì)于ADC來說,連續(xù)變化的模擬信號(hào)采樣為離散的數(shù)字信號(hào)一定是不完美的,這其中的誤差稱為量化誤差,引發(fā)了量化噪聲,反映在raw文件里一般為固定的幾個(gè)bit,量化噪聲可以通過增加ADC的采樣精度而減少,比如選用14bit或16bit ADC。
當(dāng)然除了讀出電路本身引入的噪聲,成像過程中隨著快門時(shí)間增長(zhǎng),CMOS產(chǎn)熱會(huì)引起熱噪聲。
熱噪聲也約翰遜–奈奎斯特噪聲,本質(zhì)是電子的熱運(yùn)動(dòng)產(chǎn)生,任何時(shí)候都有,只是高溫更為明顯。在電容器里熱噪聲也叫KT/C噪聲。
?
以及由于不同像素之間的非均勻性導(dǎo)致的固定模式噪聲,也叫FPN,F(xiàn)ixed Pattern Noise
但這兩者一般來說并不占主導(dǎo),比如索尼A1的論文中就著重提到了采用列并行的取樣保持電路(S&H)對(duì)KT/C噪聲降噪。
動(dòng)態(tài)范圍與信噪比的定義與區(qū)別
剛剛有提到,信噪比是某一均值下對(duì)標(biāo)準(zhǔn)差的比值。
而動(dòng)態(tài)范圍的定義不一樣 ,動(dòng)態(tài)范圍DR是最大值和最小值的比值。
在CMOS里,最大值是像素達(dá)到飽和時(shí)最多能容納多少電子,也叫滿阱容;最小值是沒有信號(hào)輸入時(shí)本身cmos本身會(huì)引起的噪聲,也叫本底噪聲或零輸入響應(yīng),可以近似為讀出噪聲。
滿阱容被誰決定?還記得浮動(dòng)擴(kuò)散節(jié)點(diǎn)電容CFD嗎?給定允許的最大電壓擺幅V,是不是可以通過V*Cfd算出這個(gè)電容最多能容納多少電子,再結(jié)合基本電荷量q即可算出最多能容納多少電子。
這就是滿阱容,也叫FWC,full well capacity。
計(jì)算信噪比和動(dòng)態(tài)范圍
信噪比和動(dòng)態(tài)范圍怎么計(jì)算呢?通過photonstophotos.net查看不同相機(jī)的單個(gè)像素的最大滿阱容,以及在各個(gè)ISO下以電子為單位的讀出噪聲。
?
通過FWC/readout noise能算出這個(gè)相機(jī)的最大動(dòng)態(tài)范圍。我們通常將動(dòng)態(tài)范圍用擋來表示,2倍是一檔,那動(dòng)態(tài)范圍是多少擋呢?就是:
對(duì)于信噪比來說,由于現(xiàn)代傳感器讀出噪聲很小,我們可以通過滿阱容開根號(hào)得到的散粒噪聲信噪比近似為某相機(jī)的最大信噪比,以db來表示就是:
以a7R4為例的SNR和DR計(jì)算
具體來看個(gè)例子,以索尼a7R4為例,其最大滿阱容為36000個(gè)電子,最低原生ISO下讀出噪聲大概3個(gè)電子。
可以得到其最大動(dòng)態(tài)范圍是:
大概13.55檔。DXO測(cè)出來13.3,很精準(zhǔn)吧。
?
最大信噪比呢?我們通常用18%的中灰也就是大致吃到滿阱的18%來算此時(shí)的信噪比,也就是:
實(shí)測(cè)是37db,也差不多。
注意這里的計(jì)算都是基于像素層面,沒有縮圖,至于縮圖會(huì)復(fù)雜一點(diǎn)。
ISO如何影響和信噪比與動(dòng)態(tài)范圍
好,重點(diǎn)來了。ISO和信噪比、動(dòng)態(tài)范圍是什么關(guān)系呢?
首先,高ISO能提高信噪比,當(dāng)進(jìn)光量確定的時(shí)候,散粒噪聲的信噪比也確定了。而在相同的Base ISO下,采用更高的ISO,事實(shí)上就是改變的PGA放大器的放大倍數(shù)。
讓它放大電壓有什么用?第一,壓制放大器到ADC之間的那段傳輸噪聲。第二,讓ADC能接收更高的電壓擺幅,量化時(shí)能用到的有效色深采樣更高,壓制ADC的量化噪聲。
所以說這就得到了一個(gè)很反常理,但又非常正確的結(jié)論:給定相同的進(jìn)光量,在不過曝的前提下提高ISO,反而能壓制后端讀出噪聲提高信噪比。
而一般測(cè)試圖里提高ISO噪點(diǎn)變多,是因?yàn)橐3之嬅嫫毓庀嗤s小了光圈/縮短了快門,本質(zhì)上還是因?yàn)檫M(jìn)光量變少造成散粒噪聲信噪比降低,并不是ISO引起了噪點(diǎn)。
保持曝光不變,開高ISO必然要縮光圈/減快門,低進(jìn)光量引起噪點(diǎn)
?
保持進(jìn)光量不變,后期提到一個(gè)亮度,高ISO反而噪點(diǎn)少
我們來看看實(shí)測(cè)數(shù)據(jù),你會(huì)發(fā)現(xiàn)不論是新老相機(jī),高ISO的讀出噪聲總是比低ISO低那么點(diǎn),即使是具有所謂ISO不變性,后端讀出噪聲足夠低的新相機(jī),比如索尼a7C,高ISO的信噪比收益仍然存在,雖然收益沒那么明顯了。
這時(shí)候你可能有疑問了,唉不對(duì)啊,前文不是說了高ISO會(huì)放大散粒噪聲和前端讀出噪聲嗎?怎么到這里又壓噪聲了?
注意這里壓噪聲是指前期用高ISO比后期提亮信噪比高。對(duì)于散粒噪聲,它是光的物理屬性,想把很少的光提亮到高亮度,散粒噪聲總是被放大,所以說散粒不是CMOS的鍋。
在后期提亮?xí)r,要共同放大散粒+前端+后端噪聲,提高ISO只放大前端+散粒,帶一個(gè)固定的后端噪聲。所以我們才得到ISO對(duì)信噪比的結(jié)論:進(jìn)光量相同時(shí),高ISO能壓制后端讀出噪聲來提高信噪比。
至于ISO對(duì)動(dòng)態(tài)范圍的影響則完全相反。
ADC能接受的最大電壓擺幅是固定的,比如說1v。PGA不放大時(shí)FD能裝多少電子就是最大滿阱容。
那當(dāng)PGA放大器開始放大,比如說2倍,ADC還是只能接受1v,但對(duì)應(yīng)到放大器的輸入端就只能接受0.5v了,造成將將過曝時(shí)對(duì)應(yīng)的電子數(shù)量砍半。
所以說,ISO越高,動(dòng)態(tài)范圍越低,而且當(dāng)后端讀出噪聲足夠低的時(shí)候,提高ISO對(duì)于本底噪聲影響不大,造成的結(jié)果就是ISO和動(dòng)態(tài)范圍近似為線性負(fù)相關(guān)。
我們可以看到近期的幾個(gè)相機(jī),包括索尼a1,尼康z(mì)9在雙增益后都符合這個(gè)趨勢(shì)。下期會(huì)提到這個(gè)性質(zhì)和ISO不變性的聯(lián)系。
ISO的形象化理解
我們可以形象化地把ISO想成話筒的話放,你說話聲音一樣的時(shí)候,話筒振膜的振幅是確定的。但電路中傳輸過程和模數(shù)轉(zhuǎn)換過程一定會(huì)有噪聲,如果你說話聲音很小,就直接被淹沒在底噪里了,再怎么后期放大都沒用 。
這時(shí)候你開啟話放,適當(dāng)讓前端的電壓擺幅增大,是不是就對(duì)后端噪聲有壓制作用,提高了信噪比。
但如果話放增益開太大,電壓對(duì)振幅的靈敏度太高,你稍微說話大點(diǎn)聲就爆掉了(削波)。這時(shí)候是不是能接收的最大值和最小值之比就變小,所以動(dòng)態(tài)范圍就小了。
結(jié)語
簡(jiǎn)短地總結(jié)一下這篇內(nèi)容:
數(shù)碼相機(jī)的ISO不能理解為感光效率,而是一個(gè)增益。
基準(zhǔn)和原生ISO不一樣,基準(zhǔn)ISO是被一個(gè)電容決定的conversion gain影響,原生ISO是基準(zhǔn)ISO乘上模擬放大。
信噪比是均值/標(biāo)準(zhǔn)差,大多數(shù)情況下是散粒噪聲主導(dǎo)。
考慮光子射入符合泊松分布,散粒噪聲信噪比恰好是捕獲的光電子數(shù)量開根號(hào)
適當(dāng)?shù)母逫SO能壓后端讀出噪聲,提高信噪比
動(dòng)態(tài)范圍是滿阱容/讀出噪聲,其中滿阱容直接和ISO負(fù)相關(guān),而新相機(jī)的讀出噪聲變化沒那么大
讀出噪聲足夠低時(shí),ISO和動(dòng)態(tài)范圍是線性負(fù)相關(guān)
該開高ISO時(shí)開高ISO,比后期提亮噪點(diǎn)少,當(dāng)然也看光比
不要信“ISO引起噪點(diǎn)“,高ISO影響動(dòng)態(tài)范圍是真的
這就是我的第一期相機(jī)ISO硬核解讀。這篇文章從最底層的原理出發(fā),分析了ISO的本質(zhì),原生ISO和基準(zhǔn)ISO的區(qū)別和定義,講解了噪點(diǎn)產(chǎn)生的機(jī)制,詳細(xì)對(duì)比與計(jì)算了信噪比和動(dòng)態(tài)范圍的區(qū)別,以及ISO對(duì)它們的影響,并且澄清了噪點(diǎn)和ISO的關(guān)系,當(dāng)然也歡迎指出我的問題。下期會(huì)著重于雙原生ISO和雙增益,向右曝光,曝光寬容度和ISO不變性,并會(huì)結(jié)合實(shí)際給出更多例子。
歡迎加入【全棧芯片工程師】知識(shí)星球,手把手教你設(shè)計(jì)MCU、ISP圖像處理,從算法、前端、DFT到后端全流程設(shè)計(jì)。
實(shí)戰(zhàn)MCU+ISP圖像處理芯片版圖
實(shí)戰(zhàn)ISP圖像算法效果
?
知識(shí)星球發(fā)起MCU項(xiàng)目啟動(dòng),大家一起參與MCU項(xiàng)目規(guī)格啟動(dòng)討論,我把設(shè)計(jì)、驗(yàn)證、DFT、后端的知識(shí)點(diǎn)全部羅列出來,大家一起來完善。
以項(xiàng)目驅(qū)動(dòng)的方式介紹MCU芯片全流程設(shè)計(jì)的方法;提煉相關(guān)的檢查列表、signoff checklist的樣本;讓星球成員熟悉SoC架構(gòu)、設(shè)計(jì)流程、開發(fā)進(jìn)度、項(xiàng)目管理;
編輯:黃飛
評(píng)論
查看更多