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