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