本發明屬于光電成像處理技術領域,涉及一種光電系統動態范圍優化方法。
背景技術:
光電系統對場景動態范圍的響應是一個綜合因素,也是設計高質量光電系統的關鍵技術。依據相關的技術設計一套光電系統,使其實現成像功能相對容易,但如何使其擁有最佳性能卻并不容易。
目前動態范圍的研究很多,主要集中在高動態范圍到8位顯示范圍的映射。高動態范圍映射的前提是我們已經獲取了高動態范圍圖像,而獲取高動態范圍圖像是場景不變,系統光學系統不變,采用曝光時間由短到長,獲取一些列由暗到亮的同一場景圖片,然后合成一副高動態范圍圖像。該方案的致命缺點就是在獲取一系列照片時,場景不變。這也是有些手機或者相機具有HDR功能時,要求拍攝時盡量手保持不動的原因。
在實際的應用中,由于特定高動態場景(如爆炸)是瞬息萬變的,即使相機保持不動,場景一直在變化,獲取到的圖像也是不同的,無法合成高動態范圍圖像。
硬件研制高動態范圍相機是目前的一個比較熱的研究方向,一般采用高動態范圍傳感器,而影響最終產品效果涉及到很多參數,這些不同的參數對于最終結果的影響目前尚未見深入的研究。
技術實現要素:
本發明提出一種基于硬件模型的光電系統動態范圍優化方法,能夠定量分析光電系統中各個環節對動態范圍的影響,從而指導設計者快速、準確地配置動態范圍輸出最佳的光電系統。
本發明的方案如下:
基于硬件模型的光電系統動態范圍優化方法,配置模數轉換器的動態范圍大于圖像傳感器的動態范圍的2倍;根據光電系統的應用需求,按照以下數學模型進行針對性的硬件優化:
上式中,DRsys_circuit即經過硬件電路之后的動態范圍,Vsat是圖像傳感器的飽和輸出電壓,S2是圖像傳感器的光學靈敏度,Qnoise是圖像傳感器輸出的固有噪聲,Vcircuit是傳感器的硬件電路噪聲電壓,α是模數轉換器固有的噪聲,m為模擬增益的倍數,n為數字增益的倍數。
在確定硬件配置后,還可采用色調映射方式進行軟件優化,從而全面提高優化效果。
本發明具有以下技術效果:
動態范圍是光電系統的一個關鍵指標,信噪比也是光電系統的重要指標,這兩個指標是相關的。本發明以動態范圍為著手點,建立了影響動態范圍的系統模型,從定量角度分析光電系統中各個環節對動態范圍的影響,根據這些定量關系,設計者可以設計與實際要求相匹配的高性能系統。
附圖說明
圖1為光電系統動態范圍的系統模型。
圖2為柯達全幀CCD在28M時的光子轉移曲線。
圖3為圖像傳感器光照輸出曲線。
圖4為模數轉換器工作原理。
圖5為傳感器輸出與AD輸出曲線。
圖6為數字增益輸出曲線。
圖7為模擬增益輸出曲線。
圖8為系統硬件輸出曲線。
圖9為伽瑪映射的曲線(線性映射和非線性映射)。
具體實施方式
本發明對光電系統工作流程中的各模塊進行分析,建立了光電系統動態范圍模型,如圖1所示。影響動態范圍的有硬件設計相關部分,如圖像傳感器、模數轉換器(AD),增益;也有軟件相關的,如映射算法等。下面分別對這些部分進行分析。
1.傳感器動態范圍分析
傳感器工作原理是光子感應到傳感器上,在像素的成像區域產生相應的光電子,光電子的數量的多少取決于光子數量的多少;光電子根據傳感器的特性,將其轉換為相應的電壓,以電壓的形式進行輸出。
傳感器的動態范圍分有線性區域和非線性區域,以DALSA芯片為例,其飽和滿井輸出電壓(Full-well capacity saturation level)為3400mV;而其線性滿井輸出電壓(Full-well capacity linear operation)為2500mV;柯達公司(TRUESENSE)公司將飽和電子數定義在線性區域;沒有特別說明的,一般傳感器生產廠家給出芯片的滿井電荷都是指其在線性區域最大滿井電荷。
當傳感器工作在非線性區域時,增加了對場景動態范圍的識別,但是降低了該區域對照度的分辨率,一般對傳感器動態范圍的分析,不考慮其工作在非線性區域(實際上對該區域也有響應),后面討論的都是傳感器或者光電系統工作于線性區域。前面介紹場景動態范圍為最亮照度與最低照度之比,這里將其轉換為傳感器能識別的動態范圍,由于傳感器存在固有噪聲,根據傳感器的工作原理,傳感器的動態范圍:
Qsat是傳感器的飽和電子數;Qnoise是傳感器輸出的固有噪聲。固有噪聲由光子噪聲σshot、復位噪聲σreset、白噪聲σwhite、暗電流噪聲σdark、轉移噪聲等組成。Qnoise是與傳感器工作的溫度、頻率、信號電子數相關的一個參數。
固有噪聲是傳感器本身就有的,不管硬件電路怎么設計,由于傳感器特性,這些噪聲總是存在的。不過傳感器固有噪聲中,很多噪聲都與溫度相關,如復位噪聲σreset、白噪聲σwhite與環境溫度的根方成比例關系,暗電流噪聲σdark與溫度的關系更加明顯。雖然不能改變傳感器的固有噪聲,但在硬件可通過改變傳感器布局,盡量讓發熱芯片遠離傳感器,同時采用熱設計,將傳感器產生的熱快速導入結構殼體。對于對動態范圍或者信噪比要求很高的設計、必要時可以加入制冷模塊,以降低傳感器的固有噪聲。固有噪聲還和傳感器的輸出頻率有關,如時鐘轉移噪聲(CLOCKING NOISE),與頻率一般是平方根的比例關系。還與感光區感應到的信號電子數有關。由于固有噪聲在不同溫度時不一樣,廠家在傳感器中給的固有噪聲是在特定溫度(例如25℃)和特定頻率(例如30M)下給出的平均噪聲,不同廠家給出平均噪聲的表達方式不一樣,以讀出噪聲(Readout Noise)、黑噪聲(Dark noise)或者其他方式給出,一般以噪聲電子數量的方式給。平均噪聲各個廠家給出的方式不一樣,有的是測量出傳感器的光子轉移曲線(PHOTON TRANSFER CURVE),有的是給出噪聲的均方根誤差(RMS)誤差。是柯達的全幀CCD轉移曲線,從這個曲線可以求得在27M時,傳感器的的固有噪聲為25個電子;而該傳感器在27M兆時的飽和電子數為40000個電子,因此求得此時的傳感器的動態范圍為:
傳感器輸出時,除了固有噪聲外,還有硬件電路帶來的噪聲。硬件電路帶給傳感器的噪聲是由于硬件電路設計不佳,導致加載在傳感器上面的工作電源、傳感器驅動電路(CCD)、復位電平(CCD)、傳感器地信號等有噪聲,這個噪聲的結果就是在傳感器輸出時,將噪聲帶入輸出的總噪聲。比較典型的就是傳感器的供電輸出電源上有一個與傳感器輸出頻率接近的電源紋波,紋波噪聲將會帶入輸出放大電路,這樣的結果就是在最終的輸出圖像上有很多斜條紋,最終也影響了光電系統輸出的動態范圍。
在設計模型時,我們只關注傳感器輸出總噪聲。這個噪聲由傳感器固有噪聲和硬件噪聲組成,其固有噪聲與溫度相關,且溫度越高,噪聲越大;硬件噪聲與電路設計相關,最主要與電源紋波相關。這為我們設計高性能光電系統硬件系統提供參考。
在傳感器獲取一幅場景圖像時,傳感器感光區域能感知的光電子總數小于其總噪聲電荷時,傳感器不能分辨場景信息。而感知光電子總數與光學影像的強弱(光圈大小決定)和感光區域積分時間(曝光時間)相關。
為了對傳感器的特性有進一步了解這里介紹兩個概念,輸出靈敏度(OutputSensitivity)和光學靈敏度(PhotometricSensitivity)。
輸出靈敏度,單位是V/e,表示每個光電子能夠產生多少V的電壓輸出,光學靈敏度(Sensitivity),單位是表示,對于傳感器表面的光學影像,在單位照度(lux)和單位時間(s),傳感器能夠產生多少伏的電壓輸出。這兩個概念都是產生傳感器輸出電壓的能力,因此有些傳感器只給出光學靈敏度,將其稱之為靈敏度。因此,傳感器輸出的電壓為:
Vout=S1×I×t=S1×φ (3)
Vout=Q×S2
其中:Vout表示傳感器的模擬輸出電壓;
I表示傳感器表面感應的照度;
S1表示輸出靈敏度,S2光學靈敏度;
t表示積分時間;
φ表示照度與時間的乘積,輻射量。
傳感器最終輸出的是電壓信號,上述表達式是通過不同的方式表達輸出電壓與光強的關系。固有噪聲和電路噪聲對應的輸出電壓為:
Vsensor_noise=S2×Qnoise+Vcircuit; (4)
其中Vcircuit是電路帶給傳感器的噪聲,當傳感器感應的輻射量產生的輸出電壓小于Vnoise時,該能量將不能被傳感器有效的識別。
因此,我們得到傳感器輸出的動態范圍:
其中:DRsensor是傳感器輸出的動態范圍,Imax為傳感器能感應的最大照度,Imin為最小照度;Vsat和Vnoise表示分別與Imax和Imin對應的電壓輸出;Vsat也是飽和電荷數對應的電壓輸出,Vnoise表示傳感器固有電荷和硬件電路帶來的噪聲對應的噪聲電壓。
在光電系統工作流程中,與動態范圍相關的模塊如圖3所示;傳感器是光電系統的核心器件,當其產生光電電荷時,電荷以電壓的形式輸出(CCD和COMS一樣),經過模數轉化器采樣,將電壓轉換為數字圖像,數字圖像經過伽瑪校正等圖像處理對其數字圖像進行調整。
2.模數轉換器(AD)對動態范圍的影響分析
模數轉換器(AD)是將模擬信號轉化為數字信號的關鍵系統;其工作原理是將模擬信號量化到N位的數字信號,該轉換過程理論上是線性的。AD轉換也有動態范圍,其動態范圍定義:
其中:是模數轉換器(AD)的最大動態范圍,位數是采樣深度。以10位AD為例,其采樣的最大動態范圍為20log10210=60dB,當傳感器輸出的動態范圍大于60dB,根據奈奎斯采樣定律,采樣頻率是被采樣頻率的兩倍,才能有效采樣到數據。因此,按照采樣定律,對于傳感器輸出頻率為60dB的信號,至少要使用大于66dB動態范圍的AD進行采樣,才能保證傳感器的有效動態范圍不損失。
對于AD動態范圍和傳感器動態范圍還有直觀上的一種理解方式,AD對傳感器模擬輸出進行采樣,采樣分辨率是1個基本單位,AD兩個基本單位能否分辨出傳感器的Vnoise是AD和傳感器輸出匹配的關鍵。如果采樣位數太少,2個基本單位分辨出n×Vnoise,將有效的(n-1)×Vnoise光電子也采樣進兩個基本單位,造成傳感器動態范圍損失。當采樣位數太高,將Vnoise進行了n個下采樣,其中有用的采樣數只有一個,造成了AD動態范圍的浪費。
因此,選用AD時,必須依據傳感器的動態范圍進行選擇,AD的動態范圍必須大于傳感器的動態范圍,按照采樣定理2倍的采樣頻率設計。理論上來說,當AD的采樣頻率為傳感器輸出頻率的2倍時,可以對傳感器輸出的數據進行有效采樣,也就是說,AD的動態范圍比傳感器的動態范圍大6dB,才能有效采樣傳感器的動態范圍。
目前14位、16位,甚至更高采樣深度的模數轉換器很多,14位的動態范圍可以到84dB,16位的動態范圍到96dB;對于一般的傳感器來說,該分辨率的AD能夠滿足需求。
現在討論AD對光電系統動態范圍的影響。假設理想狀態,傳感器的輸出范圍與AD恰好匹配(AD的兩個單位對應傳感器的Vnoise),AD未帶入其他噪聲,AD傳遞的最大動態范圍為:
理想狀態下,只要滿足采樣定理要求,AD可以將整個動態范圍傳遞到數字輸出。
在實際中,由于AD器件本身的特性、系統給AD供電電源紋波噪聲、AD時鐘頻率及量化噪聲等的影響,在AD輸出時會帶入一定的噪聲,表現在系統中為傳感器沒有輸入時,AD的低位信號也會有相應的跳動,假設傳感器輸出的噪聲Vnoise對應AD的m個基本單位(m大于2),AD噪聲也為m個基本單位。此時AD傳遞的動態范圍為
也就是說,當AD帶來的噪聲與傳感器噪聲相當時,AD輸出的動態范圍將降低6個dB,這里我們量化AD噪聲,以傳感器噪聲Vsensor_noise為基本單位,AD噪聲為ADnoise;經過AD之后的有效動態范圍為:
其中:
α是AD噪聲與傳感器噪聲的比值,AD噪聲越大,AD輸出的動態范圍越小,AD噪聲越大,AD輸出的動態范圍越小。由公式,理論上當AD噪聲為0時,AD輸出的動態范圍等于傳感器的動態范圍。公式是以對數關系來表達的。
3.增益對動態范圍影響分析
增益也影響光電系統的動態范圍,增益分為數字增益和模擬增益。數字增益有時候是在圖像處理輸出時進行處理,有時在圖像處理之前,其本質沒有區別,為了對比數字增益和模擬增益的區別,在建模型時,將數字增益放置在AD之后,圖像處理之前。
先討論數字增益,數字增益是指將光電系統的輸出按照一定倍數線性放大。以圖6為例,以4倍放大系數為例,光電系統對照度的最低響應值提高了4倍;同時,對最高響應度降低了4倍。
數字增益4倍,其動態范圍降低24dB,即動態降為原來的因此,每當數字增益增加m倍,其動態范圍降為原來動態范圍的
因此,數字圖像經過數字增益其動態范圍為:
現在介紹分析一下模擬增益,模擬增益是指將傳感器的模擬輸出按照一定倍數線性放大。以圖7為例,設模擬增益系數為m,光電系統對照度的最低響應值變為原來的m倍;同時,對最高響應度降低了m倍,即:
模擬增益后,對最低照度的響應值對最高照度的響應值為根據前面AD部分的結論,傳感器的輸出作為AD的輸入時,模擬增益增加了m倍數,其輸出的噪聲也就增加了mVsensor_noise,而此時,AD本身的噪聲還是一個基本單元,因此,此時對應的AD輸入的最低照度值就為(α+m)Imin,模擬增益增加m倍之后的動態范圍為:
我們將模擬增益m倍也變換為DRAD相關的表達式,由于m>1,同時α>0,(12)不等式成立。
因此有下面公式:
這就是我們在設置增益時優先模擬增益而不是數字增益的原因,相同倍數模擬增益的動態范圍大于數字增益。
由上面兩個公式可得,圖像經過模擬增益和數字增益之后的動態范圍為:
其中:α是AD的噪聲,m為模擬增益的倍數,n為數字增益的倍數。
將模擬增益變換為對數關系:
因此,經過增益之后的動態范圍為:
其中:m是模擬增益,n是數字增益。
4.光電系統硬件輸出動態范圍分析
至此,硬件電路對動態范圍的影響已經分析結束。
由于系統是串聯關系,光電系統最終獲得的是傳感器傳遞的有效動態范圍,
因此最終得到如下硬件數學模型:
DRsys_circuit是經過硬件電路之后的動態范圍,Vsat是傳感器的飽和輸出電壓,S2光學靈敏度,Qnoise是傳感器輸出的固有噪聲電壓;Vcircuit是傳感器的硬件電路噪聲電壓;α是AD的固有噪聲,m為模擬增益的倍數,n為數字增益的倍數。
此時設計的電路有一個前提,就是AD的動態范圍大于傳感器的動態范圍的2倍,即ΔDR大于等于6dB。這也是設計動態范圍最大化的光電系統必須遵守的一個前提條件。
上述公式是我們設計一款高動態光電系統的指導依據,即可以按照該公式進行針對性的硬件優化。
可以看出,傳感器輸出噪聲在第一項的分母上,輸出噪聲越大,動態范圍越低,因此在設計光電系統時,為了提高動態范圍,首先降低傳感器輸出噪聲,一部分是固有噪聲Qnoise,該噪聲與溫度、頻率相關,在設計時,需要進行相關熱設計,確保在使用條件下,固有噪聲最低;同時傳感器供電電源噪聲也在分母上,為了提高動態范圍,需要使得給CCD供電的電源噪聲最小,在設計時需要采用低噪聲LDO供電,或者采用運放供電的方式,確定電源噪聲最小化。
以AD模擬噪聲α為例,該參數也在推導公式的分母上,在設計時,需要使得AD模擬噪聲最小,為了使得模擬噪聲最小,在設計時,除了低噪供電設計外,還需要進行地平面分割等措施,確保數字信號影響模擬信號的影響最小化。
根據公式,實際設計一款高性能高動態范圍的光電系統還需要注意以下幾點:
a)首先要選擇飽和電子數多的傳感器;由公式可知,飽和電子數與動態范圍成正比關系。
b)傳感器輸出的總噪聲由電路給傳感器帶來的噪聲和傳感器本身的噪聲決定,因此要選擇一款低噪聲傳感器;同時在設計硬件電路時盡可能讓系統給傳感器少的噪聲干擾,使其輸出更少的噪聲,這里涉及到傳感器電源紋波、系統的整體熱設計(傳感器溫度越高,噪聲越大)。
c)對于AD轉換電路部分的噪聲盡量控制,其降噪原理與方法與傳感器類似。
d)盡量不用增益,增益在分母上,對動態范圍以倍數平方的速度進行進行降低,即使模擬增益略好于數字增益,但是影響也非常大。
在設計的時候我們關注各個模塊噪聲,將各個模塊的噪聲降到最小,一旦系統設計完成,我們只關注其系統噪聲Vsys_noise,在動態范圍方面,此時Vsys_noise對應的就是最低可分辨噪聲。
其中:Vsys_noise=(1+α)Vsensor_noise
對于系統噪聲我們采用均方根的來估計。
我們將傳感器表面輸入為零(將鏡頭蓋蓋上),采集一張圖片,計算一幅圖片的均方根RMS,此時關閉增益。
均方根公式:
此時RMS就是系統噪聲Vsys_noise,輸出為AD的輸出總有效數據2位寬-1對應的就是Vsat,因此系統硬件動態范圍可以定義為:
RMS就是最低照度對應的硬件輸出噪聲位數。
當然,通常光電系統輸出的動態范圍不僅由硬件電路決定,很多時候(更廣泛的范圍)光電系統的輸出的動態范圍還與軟件算法相關。此類軟件算法屬于常規技術手段,下面也予以說明。
目前市面上傳感器的動態范圍一般都是60dB以上,硬件電路設計的性能指標高,此時硬件電路DRsys_circuit的動態范圍也在55dB以上,而我們日常顯示系統只有8位,光電系統最終以8位的數據輸出,輸出時的動態范圍只有log102552,48dB,對硬件電路的動態范圍進行了截取。此時可以采取一定的措施,降低該步驟的影響。
5.映射函數對動態范圍的影響分析
光電系統在硬件輸出時獲取了N位的數據,往往在終端顯示時或者在壓縮系統中需要將其以8位的形式輸出。將高位數據空間映射到低位數據空間上,這個過程就是色調映射,具體的映射表達式為映射函數。
色調映射一般是用在從HDR(高動態圖/輻照圖)映射到8位空間上,區別在于HDR圖像的位寬遠大于光電系統的硬件輸出位寬,但是色調映射原理都是相同的。
在色調映射時,我們只取有效位數(系統輸出總位數減去噪聲位數)進行映射,前面介紹了AD輸出的位數中總會含有噪聲位,映射噪聲位失去映射意義,因此設備的動態范圍可以寫成:
DRsys_circuit=20log(2M-1) (20)
M是有效位數據。
在分析色調映射前,我們先分析從硬件電路輸出到系統最終輸出映射不當時產生的影響。這里以12位AD轉換有效數據為例(系統輸出總位數可能是14位或者16位),硬件電路最終輸出了12位有效數據,光電系統最終的輸出為8位數據,如圖8所示,如果采取直接截取的方式(舍去低4位),此時光電系統的動態范圍:
其中:DRsys_circuit為前面推導的硬件系統動態范圍,截取高8位的動態范圍直接將系統的動態范圍降低了24dB。
為了保證光電系統輸出的動態范圍,需要將數據從12位數據映射到8位數據空間,需要進行映射運算。
DRdevice=f(DRsys_circuit) (22)
其中:f(x)為映射函數,DRsys_circuit是系統的硬件動態范圍,DRdevice是光電系統輸出的動態范圍。設計者可以根據應用需求,采用結合實際應用的f(x)從DRsys_circuit到DRdevice進行映射。
這里我們借鑒高動態范圍圖像(HDR)映射到8位空間的思路進行色調映射,從高位空間映射到低位空間可以使用公式[28]:
這里是輸入場景的輻照能量范圍,我們在這里將其更改為
不同的映射算法對系統動態范圍影響是不一樣的,映射算法按照映射方式式分為線性映射和非線性映射。現在對這兩種方式進行分析。
(1)線性映射
線性映射是通過等比例關系對12位數據映射到8位數據上。
線性映射對輸入的12位數據除以24,再取整數,其等價于將12位數據的后四位直接截取,和我們前面分析的一樣,如公式(21)所示。因此線性映射直接將原來動態范圍降低24dB。
(2)非線性映射
非線性映射是輸入位數與輸出位數不是線性關系的圖像映射,其目的是將更多的灰度空間分配給相對較低的照度空間。這樣既可以保證照度在相對低的區間(往往是人們關注的區間)保證相對高的采樣率,同時對于照度高的區域保持一定量的照度采樣。如此處理可以最大程度上減少對傳感器動態范圍的損失。
非線性的算法很多,有伽瑪映射、對數映射、Schlick映射、基于直方圖的映射等等,其本質思想都是一樣的,這里以最常用的伽瑪映射為例,介紹非線性映射對動態范圍的影響,其他映射的推導方式類似。
這里介紹的伽瑪映射并不是相同位數之間的映射,而是從高位數據空間到低位數據空間的映射。
對于12位圖像的伽瑪映射過程,先將12位數據通過伽瑪映射到12位數據空間上,然后經過線性映射(截取高8位)映射到8位數據空間上。圖9曲線可以明顯看出,映射之后的曲線對最低照度的響應明顯低于線性映射的最低照度。
如圖9所示,映射后的8位位深圖像灰度最小值對應的原始12位位深圖像灰度可以通過計算得出。
根據伽瑪映射公式有:
由于γ是大于1的數,因此非線性映射的動態范圍大于線性映射的動態范圍,從上述公式中求得,12位映射8位數據時,理論上當伽瑪等于1.5時,動態范圍沒有損失。
同理求得,當16位數據映射到8位數據時,理論上最佳的伽瑪值是2。其他位數空間的伽瑪映射值可以自行推導。很多文獻中認為,應該取0.45,對于不同的位數映射,這個值其實是不一樣的。