基于CPLD的圖像傳感器非均勻性校正
圖像傳感器的非均勻性直接影響了成像系統(tǒng)的探測(cè)靈敏度和空間分辨率,用這樣的成像裝置觀察景物,成像質(zhì)量必然受到影響,甚至圖像會(huì)模糊不清. 因此,必須對(duì)非均勻性進(jìn)行校正. 盡管針對(duì)非均勻性校正的研究多種多樣,但目前在商業(yè)上有推廣價(jià)值的還是2點(diǎn)法,專家和工程師們的著眼點(diǎn)依然是修正和完善2點(diǎn)法,如提高精度和算法處理速度. 此外,一些非線性校正方法,如神經(jīng)網(wǎng)絡(luò)校正法、時(shí)域高通濾波器法還處于實(shí)驗(yàn)室研究階段.
圖像傳感器光敏元的光電轉(zhuǎn)換特性曲線反映了其輸出(U )與輻照度(H)之間的關(guān)系,因此,非均勻性體現(xiàn)為各個(gè)光敏元具有各不相同的光電轉(zhuǎn)換曲線. 非均勻性校正的最終目的就是通過校正處理使得圖像傳感器所有光敏元表現(xiàn)出完全相同的光電轉(zhuǎn)換關(guān)系. 2點(diǎn)法是在光敏元的輸出與輻照度成線性關(guān)系的前提下建立的,它以某一直線作為標(biāo)準(zhǔn),通過選擇合適的斜率和偏置校正系數(shù),將所有光敏元的轉(zhuǎn)換特性均校正為與標(biāo)準(zhǔn)直線重合(即有相同的線性函數(shù)) ,從而使所有的光敏元在相同的輻照度下,有相同的輸出.
實(shí)際上,光敏元的輸出與輻照度兩者之間通常被認(rèn)為服從拋物線模型. 顯然, 2點(diǎn)法所采用的線性近似是比較粗糙的,使其應(yīng)用范圍局限于圖像傳感器光電轉(zhuǎn)換線性較好或工作范圍較窄的情況. 為此,筆者引入了多點(diǎn)校正方法,該方法將整個(gè)飽和輻照度區(qū)域劃分成若干子區(qū)域,每個(gè)子區(qū)域的光敏元輸出與輻照度的關(guān)系采用線性函數(shù)表示,從而能夠更好地逼近拋物線模型,并將圖像傳感器的工作范圍擴(kuò)展到整個(gè)飽和輻照度區(qū)域. 為實(shí)現(xiàn)多點(diǎn)校正法,筆者設(shè)計(jì)了基于復(fù)雜可編程邏輯器件的硬件校正實(shí)現(xiàn)方案,實(shí)驗(yàn)表明,該校正系統(tǒng)可將圖像傳感器CL512J的非均勻度由40%校正到2%. 因此,多點(diǎn)校正法及其實(shí)現(xiàn)系統(tǒng)能在不提高制造工藝和進(jìn)一步研究光敏元結(jié)構(gòu)的基礎(chǔ)上,有效地降低圖像傳感器的非均勻性,獲得較為理想的圖像質(zhì)量.
1 非均勻性多點(diǎn)校正法
如果直接利用光電轉(zhuǎn)換關(guān)系的拋物線模型進(jìn)行校正,硬件實(shí)現(xiàn)較為困難. 因此,引入多點(diǎn)校正法,利用分段線性函數(shù)來逼近非線性響應(yīng)關(guān)系,即將整個(gè)飽和輻照度區(qū)域劃分成若干個(gè)子區(qū)域,每個(gè)子區(qū)域的光電轉(zhuǎn)換關(guān)系采用線性函數(shù)逼近,然后分別對(duì)每個(gè)子區(qū)域采用2點(diǎn)法進(jìn)行校正處理. 顯然,多點(diǎn)校正法是2點(diǎn)校正法的擴(kuò)展. 假設(shè)進(jìn)行n點(diǎn)校正, 圖1給出了在輻照度子區(qū)域(Hj, Hj+1 ) ( j = 1, ., n - 1; Hj+1>Hj )的校正示意圖.
圖1 2點(diǎn)校正法示意圖
圖中,直線a和b分別表示圖像傳感器中a和b 2個(gè)光敏元在(Hj , Hj+1 )區(qū)域內(nèi)的光電轉(zhuǎn)換特性的逼近直線,直線c表示校正后2個(gè)光敏元的轉(zhuǎn)換特性.
從圖1可看出,在Hj和Hj+1輻照度下,校正前a和b光敏元的視頻輸出值分別為Uaj、Ua(j+1) 、Ubj和Ub(j+1) . 由于非均勻性的存在,使得Uaj ≠Ubj、U a (j+1) ≠U b(j+1) . 校正后, a和b 2個(gè)光敏元在H j和H j+1輻照度下,均分別有相同的輸出: Ucj和Uc(j+1) . 同時(shí)也保證了在(Hj , Hj+1 )區(qū)域內(nèi),相同輻照度下2個(gè)光敏元均有相同的輸出. 直線i ( i = a, b)可表示為:
式中, Uij為i光敏元校正前的輸出; Kij、bij分別為對(duì)應(yīng)直線的斜率和偏置常數(shù)為使a和b光敏元的轉(zhuǎn)換特性經(jīng)校正后均表現(xiàn)為直線c所表示的轉(zhuǎn)換關(guān)系,按以下2式選擇斜率校正系數(shù)Gij和偏置校正系數(shù)Cij.
式(2)中, Kc為常數(shù), 表示直線c的斜率. 對(duì)Kc的選擇具有很強(qiáng)的隨意性, 通常選取所有光敏元中最大斜率的光電轉(zhuǎn)換直線或者取過2個(gè)不同光照下各個(gè)光敏元的算術(shù)平均值的直線作為標(biāo)準(zhǔn). 筆者則以獲取盡可能大的Gij作為標(biāo)準(zhǔn), 因此, 由Gij (最大取值可為250)和(Ui(j+1) - Uij )值可確定(Uc(j+1) - Ucj )值的范圍,從而確定Kc值. 同時(shí)保證校正后的視頻輸出值在飽和輻照度范圍內(nèi)隨輻照度增強(qiáng)而增大.
式(3)中,Mj為常數(shù). 在保證光電轉(zhuǎn)換曲線分段線性化后的連續(xù)性和單值性的情況下,Mj值等于分段點(diǎn)Hj校正后的視頻電壓值. 同時(shí), 結(jié)合Uij以及選擇合適的Gij ,保證獲取盡可能大Cij. 因此,校正后的視頻輸出Uc可表示為
將式(1) 、式(2)和式(3)代入式(4) ,經(jīng)整理后得:
可見,因?yàn)镵c、Mj和Hj均為常數(shù), 經(jīng)過校正處理后, 在同一輻照度下, 2個(gè)光敏元都有相同的視頻輸出電壓并且輸出電壓值與輻照度大小成一一對(duì)應(yīng)的線性關(guān)系. 同理,對(duì)有m 個(gè)光敏元的傳感器采用上述校正原理和校正算法可實(shí)現(xiàn)其非均勻性校正.
此外,由于不同圖像傳感器的光電轉(zhuǎn)換曲線各不相同,所以,在輻照度區(qū)域的劃分時(shí),各邊界點(diǎn)應(yīng)根據(jù)具體傳感器的特性加以選擇,不能一概而論. 筆者所采取的選取原則是,采用實(shí)驗(yàn)測(cè)取數(shù)據(jù),擬合出曲線的大致變化情況,再進(jìn)行輻照度區(qū)域劃分.2 非均勻性校正系統(tǒng)實(shí)現(xiàn)
2. 1 硬件設(shè)計(jì)
目前,在非均勻性校正的硬件實(shí)現(xiàn)上,采用的都是1點(diǎn)或2點(diǎn)校正法. 電路由計(jì)數(shù)器、存儲(chǔ)器、A /D轉(zhuǎn)換器和D /A轉(zhuǎn)換器等器件組成 . 通常,只能針對(duì)某個(gè)特定型號(hào)的圖像傳感器進(jìn)行電路板制作,擴(kuò)展性較差,而且,電路工作頻率較低. 采用這些器件很難實(shí)現(xiàn)多點(diǎn)實(shí)時(shí)校正.
為了實(shí)現(xiàn)非均勻性多點(diǎn)實(shí)時(shí)校正,筆者設(shè)計(jì)了基于復(fù)雜可編程邏輯器件(CPLD)的校正系統(tǒng). 該系統(tǒng)以CPLD EPM7512AE為核心,包括輸入和輸出信號(hào)調(diào)理電路、高速A/D采樣單元、D/A轉(zhuǎn)換單元和FLASH存儲(chǔ)器等功能模塊. 系統(tǒng)結(jié)構(gòu)如圖2所示.
圖2 校正系統(tǒng)結(jié)構(gòu)圖
校正系統(tǒng)通過輸入信號(hào)調(diào)理單元將接收到的圖像傳感器視頻輸出信號(hào)進(jìn)行預(yù)處理,將信號(hào)調(diào)整到A/D轉(zhuǎn)換器(ADC) TLV5580的采樣電壓范圍內(nèi).系統(tǒng)控制核心CPLD接收?qǐng)D像傳感器工作信號(hào),根據(jù)視頻信號(hào)串行輸出的規(guī)律,產(chǎn)生控制TLV5580工作的時(shí)鐘信號(hào)和轉(zhuǎn)換數(shù)據(jù)輸出使能信號(hào),從而控制TLV5580對(duì)經(jīng)過調(diào)理的視頻信號(hào)進(jìn)行采樣量化,并將量化后的數(shù)字信號(hào)實(shí)時(shí)讀入CPLD. 同時(shí), CPLD 從FLASH存儲(chǔ)器W29C040的相應(yīng)單元中讀出斜率和偏置校正系數(shù),實(shí)現(xiàn)式(4)描述的校正算法,完成對(duì)各個(gè)視頻信號(hào)的實(shí)時(shí)非均勻性校正.
CPLD還產(chǎn)生D/A轉(zhuǎn)換器(DAC) TL5632C工作時(shí)鐘信號(hào),控制TL5632C將校正后的數(shù)字信號(hào)實(shí)時(shí)地轉(zhuǎn)換成模擬信號(hào),并由輸出信號(hào)調(diào)理單元將該模擬信號(hào)調(diào)理為一個(gè)范圍合適的電壓信號(hào)作為校正系統(tǒng)的輸出(即經(jīng)過校正的視頻信號(hào)).
2. 2 CPLD設(shè)計(jì)思想
作為控制核心的CPLD是一種半定制器件,它最大的優(yōu)點(diǎn)就是采用編程的方式定制其具體實(shí)現(xiàn)的硬件電路,指定CPLD的硬件實(shí)現(xiàn)功能. 筆者主要采用硬件描述語(yǔ)言VHDL,并結(jié)合原理圖方式在MAX + PLUSⅡ集成開發(fā)環(huán)境下進(jìn)行CPLD 功能的設(shè)計(jì). 采用VHDL語(yǔ)言的設(shè)計(jì)方法,可實(shí)現(xiàn)器件的無(wú)關(guān)性,并且功能實(shí)現(xiàn)靈活、修改方便. CPLD的應(yīng)用以及VHDL設(shè)計(jì)方法的使用為校正系統(tǒng)能靈活地適用于不同圖像傳感器的校正以及實(shí)現(xiàn)不同的校正算法提供了可能和保證.
根據(jù)系統(tǒng)校正功能要求及工作流程, CPLD 實(shí)現(xiàn)的功能主要包括:
1) 分頻器. 分頻器對(duì)晶振信號(hào)進(jìn)行分頻,產(chǎn)生校正系統(tǒng)協(xié)調(diào)工作的時(shí)鐘基準(zhǔn)信號(hào). 分頻器采用VHDL進(jìn)行設(shè)計(jì),可以根據(jù)不同的晶振、不同的圖像傳感器工作頻率,靈活、方便地選擇不同的分頻數(shù),產(chǎn)生合適的時(shí)鐘基準(zhǔn)信號(hào).
2) ADC控制信號(hào)發(fā)生模塊. 該模塊采用VHDL進(jìn)行設(shè)計(jì),根據(jù)分頻器產(chǎn)生的時(shí)鐘基準(zhǔn)信號(hào)和圖像傳感器的工作信號(hào),產(chǎn)生能夠準(zhǔn)確控制TLV5580工作的時(shí)鐘信號(hào)和轉(zhuǎn)換數(shù)據(jù)輸出使能信號(hào),保證TLV5580實(shí)時(shí)、準(zhǔn)確地采集經(jīng)過調(diào)理后的視頻輸出信號(hào).
3) 地址發(fā)生器. 地址發(fā)生器產(chǎn)生讀取FLASH存儲(chǔ)器中斜率和偏置校正系數(shù)的地址信號(hào). 由于每個(gè)光敏元在每個(gè)輻照度子區(qū)域有一組數(shù)據(jù)(一個(gè)斜率校正系數(shù)和一個(gè)偏置校正系數(shù)) ,為了方便讀取,將同一輻照度子區(qū)域的所有光敏元的校正系數(shù)按照在圖像傳感器中的相對(duì)位置順序存儲(chǔ). 所以,同一光敏元在不同子區(qū)域下的數(shù)據(jù)地址,高位地址不同,低位地址則完全相同;同一子區(qū)域內(nèi)不同光敏元的數(shù)據(jù)地址,則高位相同,低位不同. 因此,地址發(fā)生器由2部分構(gòu)成:高位地址發(fā)生器和低位地址發(fā)生器.
高位地址發(fā)生器實(shí)質(zhì)上是一個(gè)比較器,確定當(dāng)前圖像傳感器所測(cè)量的輻照度所處的子區(qū)域. 其設(shè)計(jì)思想是:將采集到的第1個(gè)光敏元的視頻信號(hào)和預(yù)先設(shè)定的對(duì)應(yīng)于每段輻照度子區(qū)域的邊界值進(jìn)行比較,根據(jù)比較的結(jié)果產(chǎn)生相應(yīng)的高位地址. 由于采用并行執(zhí)行的指令來實(shí)現(xiàn),能夠很好地滿足實(shí)時(shí)處理的要求.低位地址發(fā)生器根據(jù)視頻信號(hào)逐一串行輸出的特點(diǎn)以及TLV5580工作特點(diǎn)(每個(gè)工作時(shí)鐘采集1個(gè)光敏元的輸出信號(hào))進(jìn)行設(shè)計(jì),實(shí)質(zhì)上是一個(gè)計(jì)數(shù)器,只需對(duì)TLV5580工作時(shí)鐘信號(hào)進(jìn)行計(jì)數(shù),就能產(chǎn)生相應(yīng)的低位地址.
4) 校正模塊. 由乘法和加法2個(gè)子模塊構(gòu)成,分別采用MAX + PLUS Ⅱ提供的功能單元LPM_MULT和LPM_ADD_SUB來實(shí)現(xiàn). 校正模塊將采集到的視頻信號(hào)以及從FLASH存儲(chǔ)器讀取的相應(yīng)校正系數(shù)按照式(4)進(jìn)行處理,實(shí)現(xiàn)圖像傳感器的實(shí)時(shí)非均勻性校正.
5) DAC控制信號(hào)發(fā)生模塊. 產(chǎn)生控制TL5632C工作的時(shí)鐘信號(hào),指揮TL5632C實(shí)時(shí)地將校正后的數(shù)字視頻信號(hào)轉(zhuǎn)換為模擬信號(hào).
由于非均勻性校正功能的實(shí)現(xiàn)對(duì)時(shí)序要求嚴(yán)格,在程序的設(shè)計(jì)中,一定要注意時(shí)序的合理性. 將程序編寫出來后,首先進(jìn)行了仿真實(shí)驗(yàn),在得到期望的工作波形數(shù)據(jù)后,進(jìn)行邏輯綜合生成網(wǎng)絡(luò)表和下載文件,最后將程序文件下載到EPM7512AE中,以便進(jìn)行下一步對(duì)圖像傳感器非均勻性校正指標(biāo)的測(cè)試.
3 實(shí)驗(yàn)結(jié)果
筆者以重慶大學(xué)研制的CL512J型自掃描光電二極管陣列( SSPA)圖像傳感器作為對(duì)象,進(jìn)行6點(diǎn)非均勻性實(shí)時(shí)校正的實(shí)驗(yàn). CL512J是一種具有512個(gè)光敏元的線陣列圖像傳感器. 其工作波形如圖3所示,以起始脈沖S信號(hào)(低電平有效)表示每一次掃描輸出的開始. 光敏元的視頻輸出電壓Uo 與時(shí)鐘信號(hào)CP同步,在CP的上升沿時(shí)刻開始輸出,經(jīng)過短暫的上升時(shí)間后,穩(wěn)定下來;在CP為低電平時(shí),輸出變?yōu)?. 因此,將S和CP信號(hào)引入校正系統(tǒng)作為CPLD產(chǎn)生各種控制信號(hào)的基本依據(jù).在實(shí)驗(yàn)中, 首先通過數(shù)據(jù)采集卡和計(jì)算機(jī), 將 CL512J 的校正系數(shù)計(jì)算出來, 按指定地址保存在FLASH存儲(chǔ)器中.
圖3 CL512J工作波形
然后, 在MAX + PLUS Ⅱ開發(fā)環(huán)境下, 根據(jù)CL512J的具體情況(光敏元個(gè)數(shù)、工作頻率、視頻信號(hào)串行輸出的特點(diǎn)等) ,設(shè)計(jì)出相應(yīng)的程序,經(jīng)過仿真驗(yàn)證后,將程序文件下載到CPLD中.最后,將CL512J的視頻信號(hào)接入校正系統(tǒng),并利用示波器觀察校正前后的視頻電壓波形. 圖4給出了一個(gè)實(shí)時(shí)校正的實(shí)驗(yàn)結(jié)果,上面一條曲線是CL512J實(shí)際的視頻輸出信號(hào),下面一條是經(jīng)過校正后的視頻信號(hào). 校正前, 輸出信號(hào)最大值為2V, 最小值不足0. 8V,非均勻性超過40%. 校正后,電壓信號(hào)在2V附近變化,非均勻性約為2%. 由于TLV5580等器件的工作特點(diǎn),校正信號(hào)延遲約5個(gè)CP時(shí)鐘后輸出.
圖4 不均勻性校正實(shí)驗(yàn)結(jié)果圖
4 結(jié)束語(yǔ)
設(shè)計(jì)的非均勻性校正算法以及硬件校正系統(tǒng),能夠有效地實(shí)現(xiàn)圖像傳感器的多點(diǎn)實(shí)時(shí)非均勻性校正.采用CPLD作為核心構(gòu)成的校正系統(tǒng)具有功耗低、抗干擾能力強(qiáng)、功能實(shí)現(xiàn)方便和擴(kuò)展靈活等優(yōu)點(diǎn),能夠有效地適用于多種圖像傳感器的校正.但是,由于存在光電轉(zhuǎn)換曲線分段線性化誤差、A/D轉(zhuǎn)換器和D/A轉(zhuǎn)換器等器件轉(zhuǎn)換精度問題以及實(shí)驗(yàn)條件的限制等客觀原因,影響了圖像傳感器非均勻性校正效果的進(jìn)一步提高.