文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.173394
中文引用格式: 劉星,梁發(fā)云,楊金遠(yuǎn),等. 基于FPGA的3D圖像傳感器設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2018,44(2):62-65.
英文引用格式: Liu Xing,Liang Fayun,Yang Jinyuan,et al. Design and implementation of 3D image sensor based on FPGA[J]. Application of Electronic Technique,2018,44(2):62-65.
0 引言
裸眼3D技術(shù)是《“十三五”國(guó)家戰(zhàn)略性新興產(chǎn)業(yè)發(fā)展規(guī)劃》中指出的重點(diǎn)發(fā)展領(lǐng)域,規(guī)劃表明了加快虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)、全息成像、裸眼三維圖形顯示(裸眼3D)等核心技術(shù)創(chuàng)新發(fā)展[1]的決心。影視拍攝的3D攝像機(jī)體積龐大、結(jié)構(gòu)復(fù)雜且價(jià)格昂貴,不適合嵌入式系統(tǒng)的應(yīng)用,嚴(yán)重制約了裸眼3D技術(shù)的產(chǎn)業(yè)化應(yīng)用。而便攜式產(chǎn)品、電視機(jī)的CPU不具備同步采集3D圖像的接口和能力,因此圖像3D傳感器只能使用FPGA或CPLD器件來(lái)高速并行處理圖像數(shù)據(jù)[2]。
本文根據(jù)人眼仿生學(xué)原理設(shè)計(jì)一種嵌入式的微型3D圖像傳感器,研究硬件邏輯方法以實(shí)現(xiàn)3D圖像的采集、傳輸、存儲(chǔ)及顯示,為便攜式領(lǐng)域提供獲取3D圖像數(shù)據(jù)的手段,力求解決裸眼3D技術(shù)產(chǎn)品化面對(duì)的技術(shù)瓶頸問(wèn)題。
1 系統(tǒng)設(shè)計(jì)思想
根據(jù)立體視覺(jué)原理,3D圖像應(yīng)同步采集并滿足成像清晰度、光軸會(huì)聚、視差匹配等要求。
3D圖像傳感器系統(tǒng)結(jié)構(gòu)包含兩只CMOS型圖像傳感器及緩存圖像數(shù)據(jù)的SDRAM,為了對(duì)兩只圖像傳感器進(jìn)行同步配置和采集,只能選用FPGA(或CPLD)作為邏輯控制芯片。
系統(tǒng)總體結(jié)構(gòu)圖如圖1所示,采用FPGA+雙CMOS+雙SDRAM硬件結(jié)構(gòu)。FPGA選用Altera公司的EP3C25Q240C8N為主控芯片;為滿足圖像傳感器分辨率的要求,CMOS圖像傳感器采用500萬(wàn)像素的OV5640;FPGA對(duì)OV5640獲取的圖像數(shù)據(jù)進(jìn)行采集并緩存至SDRAM,其容量應(yīng)滿足一幀高清晰度圖像數(shù)據(jù)的存儲(chǔ)要求。3D圖像傳感器的圖像拍攝和視頻錄制方法的指導(dǎo)思想為把同步采集的兩只OV5640的圖像數(shù)據(jù)按行像素進(jìn)行合并,以左右格式的全寬或半寬立體對(duì)圖像儲(chǔ)存至SD卡中。使用裸眼3D液晶屏作為實(shí)時(shí)監(jiān)控設(shè)備,F(xiàn)PGA邏輯控制左右圖像的像素重配后,再輸入至裸眼3D顯示屏顯示。
由于FPGA并不是CPU結(jié)構(gòu),而是一個(gè)可定制的能實(shí)現(xiàn)復(fù)雜邏輯電路的器件,因此需要為所連接的器件設(shè)計(jì)邏輯控制模塊。根據(jù)3D圖像傳感器的功能要求,按照?qǐng)D像數(shù)據(jù)的流向,F(xiàn)PGA的內(nèi)部邏輯設(shè)計(jì)應(yīng)包括圖像采集模塊、SDRAM緩存控制模塊、SD卡儲(chǔ)存模塊、裸眼3D LCD顯示控制模塊及系統(tǒng)控制模塊。
OV5640工作時(shí)鐘為24 MHz,F(xiàn)PGA外部時(shí)鐘為50 MHz,SDRAM工作時(shí)鐘為100 MHz,LCD的工作時(shí)鐘為25 MHz,所以系統(tǒng)控制模塊需解決跨時(shí)鐘域數(shù)據(jù)通信的問(wèn)題。FPGA內(nèi)部邏輯設(shè)計(jì)如圖2所示。
2 圖像數(shù)據(jù)采集與緩存方法
3D拍攝時(shí),如果兩只圖像傳感器未有效同步,則運(yùn)動(dòng)物體的曝光成像就會(huì)存在時(shí)間差,其后果是左右眼圖像不同步,從而使3D視覺(jué)無(wú)法形成而導(dǎo)致顯示失敗。因此3D圖像傳感器必須保證像素級(jí)的同步,使用FPGA的硬件邏輯控制來(lái)完成圖像傳感器準(zhǔn)確的同步配置和同步采集。
2.1 圖像傳感器同步配置及其數(shù)據(jù)采集
通過(guò)SCCB(串行攝像機(jī)控制總線)對(duì)OV5640的工作寄存器進(jìn)行配置[3],本文把圖像傳感器的圖像輸出數(shù)據(jù)設(shè)置為RGB565,再根據(jù)圖像監(jiān)控設(shè)備的分辨率1 024×768和800×600,把左右眼圖像傳感器的分辨率按半寬原則設(shè)置為512×768和400×600,幀頻為30 f/s,以此來(lái)驗(yàn)證FPGA的邏輯算法是否正確。
OV5640初始化完成后,圖像傳感器開(kāi)始啟動(dòng)工作,按設(shè)置的幀頻從數(shù)據(jù)接口輸出圖像數(shù)據(jù)。FPGA在PCLK(像素時(shí)鐘)、HREF(行同步信號(hào))和VSYNC(場(chǎng)同步信號(hào))的控制下開(kāi)始采集OV5640的圖像數(shù)據(jù)Data[7..0],設(shè)計(jì)邏輯算法將采集到的相鄰的兩個(gè)字節(jié)數(shù)據(jù)轉(zhuǎn)換為16位的圖像數(shù)據(jù)。使用Signal-tapII在線采集行場(chǎng)信號(hào)與數(shù)據(jù)信號(hào)的時(shí)序波形如圖3所示,當(dāng)PCLK處于上升沿時(shí)檢測(cè)行場(chǎng)信號(hào),VSYNC處于低電平且HREF為高電平時(shí)表示正在采集圖像數(shù)據(jù),當(dāng)VSYNC信號(hào)由低電平轉(zhuǎn)高電平時(shí),表示開(kāi)始采集新的一幀圖像數(shù)據(jù)。觀察圖3波形可知,設(shè)計(jì)的圖像傳感器數(shù)據(jù)采集的邏輯算法正確。
2.2 圖像數(shù)據(jù)緩存
為解決跨時(shí)鐘域數(shù)據(jù)通信問(wèn)題,F(xiàn)PGA內(nèi)部構(gòu)建了wr_FIFO和rd_FIFO連接OV5640和SDRAM,wr_FIFO用于接收OV5640采集的圖像數(shù)據(jù),rd_FIFO用于緩存輸出至LCD的圖像數(shù)據(jù)。當(dāng)wr_FIFO接收到wr_req(寫數(shù)據(jù)請(qǐng)求)時(shí),OV5640采集到的數(shù)據(jù)緩存至wr_FIFO中;當(dāng)rd_FIFO接收到rd_req(讀數(shù)據(jù)請(qǐng)求)時(shí),rd_FIFO將緩存的數(shù)據(jù)輸出至LCD顯示。
由于3D視頻圖像數(shù)據(jù)量大、傳輸速度高、像素級(jí)同步的要求,為了保證數(shù)據(jù)的有效處理,設(shè)計(jì)了SDRAM控制模塊,運(yùn)用了輪序法對(duì)SDRAM進(jìn)行分時(shí)操作[4]。當(dāng)SDRAM進(jìn)行寫操作時(shí),數(shù)據(jù)首先寫入BANK0,寫完一幀圖像數(shù)據(jù)后,切換為BANK3;當(dāng)SDRAM進(jìn)行讀操作時(shí)采用相同邏輯,切換BANK。根據(jù)以上邏輯,將輪序法操作SDRAM算法封裝成SDRAM控制器,使得圖像數(shù)據(jù)在SDRAM中的緩存更為簡(jiǎn)化和高效。左圖像傳感器的數(shù)據(jù)緩存操作流程如圖4所示。
3 圖像儲(chǔ)存
SD卡具有尺寸小、功耗低、讀取速度快等優(yōu)點(diǎn),所以在便攜式儲(chǔ)存領(lǐng)域應(yīng)用廣泛[5]。SPI以主從方式工作,系統(tǒng)采用SPI模式實(shí)現(xiàn)SD卡與FPGA的通信,由SPI_CLK(時(shí)鐘信號(hào))、SPI_MISO(主機(jī)輸入從機(jī)輸出)、SPI_MOSI(主機(jī)輸出從機(jī)輸入)、SPI_CSN(片選信號(hào))組成。
分辨率為2 048×768的左右立體對(duì)圖像以BMP格式儲(chǔ)存在SD卡中,分為三個(gè)過(guò)程:立體對(duì)圖像數(shù)據(jù)轉(zhuǎn)化為BMP圖像數(shù)據(jù)格式;SD卡初始化;SD卡寫操作控制[6]。3D圖像傳感器采集的圖像數(shù)據(jù)為RGB565,SD卡則以真彩色RGB888格式進(jìn)行儲(chǔ)存,所以需RGB565轉(zhuǎn)RGB888操作,有兩種方案選擇,一是采取低位補(bǔ)零方法,二是RGB565數(shù)據(jù)向高位移位后低位補(bǔ)原數(shù)據(jù)的高位,系統(tǒng)對(duì)兩個(gè)方案都進(jìn)行了實(shí)驗(yàn),觀看效果一致。SD卡的初始化按照SD卡的初始化流程實(shí)現(xiàn)。采用FAT16文件系統(tǒng)對(duì)SD卡進(jìn)行扇區(qū)管理,以便立體對(duì)圖像數(shù)據(jù)的正確寫入,使用Verilog_HDL(硬件描述語(yǔ)言)將FAT表、根目錄及54 B的BMP文件信息寫入SD卡對(duì)應(yīng)的物理地址。在左右數(shù)據(jù)通道的控制下,將左右圖像數(shù)據(jù)寫入SD卡的數(shù)據(jù)區(qū),左數(shù)據(jù)通道選通時(shí)序圖如圖5所示,右數(shù)據(jù)通道選通時(shí)序關(guān)系同理。
4 圖像顯示
采用8英寸裸眼3D顯示屏對(duì)采集到的圖像進(jìn)行顯示,該裸眼3D顯示屏能兼容2D和3D顯示,所以分別設(shè)計(jì)了左右立體對(duì)顯示和像素重配后的3D顯示兩種邏輯算法。系統(tǒng)采用LCD的驅(qū)動(dòng)模式為DE模式,DE信號(hào)相當(dāng)于行場(chǎng)兩個(gè)同步信號(hào)的復(fù)合信號(hào),通過(guò)h_cnt和v_cnt兩個(gè)計(jì)數(shù)器控制DE_h和DE_v兩個(gè)同步信號(hào),邏輯為DE=DE_h&DE_v,當(dāng)DE為高電平時(shí),LCD顯示接收到的圖像數(shù)據(jù)。
2D顯示時(shí),將具有一定視差的左右立體對(duì)圖像映射至LCD,根據(jù)時(shí)序標(biāo)準(zhǔn),切換左、右數(shù)據(jù)選通信號(hào),使得左、右圖像數(shù)據(jù)按行傳輸至LCD上顯示。硬件上設(shè)計(jì)了VGA接口和LCD接口,分別將立體對(duì)圖像映射至液晶電視和LCD上顯示,兩者映射原理相同,只是時(shí)序不同,左右立體對(duì)圖像映射至LCD的示意圖如圖6所示。
3D顯示時(shí),將左、右圖像數(shù)據(jù)分別映射至裸眼3D顯示屏左、右眼亞屏幕[7],即左圖像數(shù)據(jù)映射在屏幕的奇列像素上,右圖像數(shù)據(jù)映射在屏幕的偶列像素上,將左右圖像數(shù)據(jù)進(jìn)行行壓縮邏輯設(shè)計(jì),按照時(shí)鐘頻率交替寫入LCD中,完成像素重配。裸眼3D顯示屏在結(jié)構(gòu)上和普通2D顯示屏有很大的不同,觀看角度上也存在差異。當(dāng)人眼處于獨(dú)立視區(qū)時(shí),左右眼能獨(dú)立地看到左右亞屏幕上的圖像,通過(guò)大腦視覺(jué)中樞融合形成裸眼3D效果[8]。當(dāng)人眼處于非獨(dú)立視區(qū)時(shí),左右眼分別能看到左右亞屏幕上的圖像,此時(shí)形成重影而影響觀看效果。左右立體對(duì)圖像像素重配后映射至LCD的示意圖如圖7所示。
5 仿真分析及實(shí)驗(yàn)
OV5640采集8 bit的圖像數(shù)據(jù)在SDRAM緩存過(guò)程中需轉(zhuǎn)換為RGB565格式的16 bit數(shù)據(jù),使用嵌入式邏輯分析儀Signal-tapII對(duì)該轉(zhuǎn)換進(jìn)行仿真分析,仿真波形如圖8所示,通過(guò)觀察信號(hào)的值可驗(yàn)證該邏輯設(shè)計(jì)正確。對(duì)像素重配后在裸眼3D屏上顯示的圖像數(shù)據(jù)進(jìn)行仿真分析,其波形如圖9所示,通過(guò)在線仿真可看出3D顯示時(shí)的圖像數(shù)據(jù)和左右圖像傳感器獲取的圖像數(shù)據(jù)嚴(yán)格一致。
系統(tǒng)使用了液晶電視和裸眼3D顯示屏進(jìn)行了實(shí)驗(yàn),準(zhǔn)確穩(wěn)定地將采集到的高清立體對(duì)圖像輸入并顯示。3D圖像傳感器將立體對(duì)圖像像素重配后輸入至裸眼3D顯示屏顯示,效果良好。實(shí)驗(yàn)結(jié)果表明,設(shè)計(jì)的3D圖像傳感器及其邏輯算法能對(duì)3D圖像進(jìn)行完整的采集、傳輸、儲(chǔ)存、顯示,驗(yàn)證了系統(tǒng)硬件邏輯算法的正確性。
6 結(jié)論
便攜式3D拍攝設(shè)備具有廣闊的發(fā)展前景,根據(jù)人眼立體視覺(jué)仿生原理設(shè)計(jì)的3D圖像傳感器利用了FPGA高速并行處理的優(yōu)勢(shì),使得硬件構(gòu)架上更為集成化,解決了3D視頻圖像來(lái)源、儲(chǔ)存和像素重配等問(wèn)題。系統(tǒng)工作穩(wěn)定,移植性好,通過(guò)修改模塊程序即可支持不同的圖像傳感器和顯示器,支持2D和3D顯示,具有較好的兼容性。
3D圖像傳感器提供了3D圖像獲取的手段,使用者可隨時(shí)隨地記錄3D場(chǎng)景,可在裸眼3D設(shè)備上復(fù)現(xiàn)三維場(chǎng)景,獲得臨場(chǎng)感和沉浸感。3D圖像傳感器的研制為3D圖像傳感器的專用集成電路設(shè)計(jì)提供了有益的參考。
參考文獻(xiàn)
[1] “十三五”國(guó)家戰(zhàn)略性新興產(chǎn)業(yè)發(fā)展規(guī)劃(全文)[J].中國(guó)戰(zhàn)略新興產(chǎn)業(yè),2017(1):57-81.
[2] 梁發(fā)云,何輝,施建盛,等.基于FPGA的視頻信號(hào)采集技術(shù)研究[J].電視技術(shù),2014,38(7):54-57.
[3] Omini Vision.OV5640 datasheet[Z].2011.
[4] 戚翔宇.3D傳感器左右視頻合成技術(shù)研究[D].南昌:南昌大學(xué),2016.
[5] 劉敏,梁發(fā)云,王興鵬.裸眼3D系統(tǒng)SD卡FPGA讀取顯示研究[J].電視技術(shù),2015,39(9):40-43.
[6] 陳輝.高清3D傳感器數(shù)據(jù)處理技術(shù)研究[D].南昌:南昌大學(xué),2017.
[7] Liang Fayun,Cheng Jie,Tie Zhicheng,et al.Dynamical assembly for naked-eye-stereoscopic LCD screen[J].Advanced Materials Research,2011,403-408(11):3095-3098.
[8] 梁發(fā)云,鄧善熙,楊永躍.自由立體顯示器的視覺(jué)特性測(cè)量與研究[J].儀器儀表學(xué)報(bào),2006,27(10):1350-1353.