一種基于FPGA的立體視頻轉(zhuǎn)換系統(tǒng)研究設(shè)計
當(dāng)某一幀數(shù)據(jù)到來時,輸入端的數(shù)據(jù)不停地從雙端口RAM的一個端口寫入SRAM_Rx。每當(dāng)檢測到DE的下降沿,說明已經(jīng)有一行的數(shù)據(jù)寫入完畢,則從另外一個端口將SRAM_Rx的數(shù)據(jù)寫入DDR用于保存當(dāng)前幀數(shù)據(jù)的存儲區(qū)。寫入一行結(jié)束時,輸入端要等到下一個DE下降沿到來才會再次有讀寫SDRAM的需求。也就是說SDRAM此時處于空閑期,于是馬上從之前保存好的上一幀數(shù)據(jù)中讀出相應(yīng)的一行數(shù)據(jù)寫入SRAM_Tx,輸出端則在寫入SRAM_Tx一行完畢后從SRAM_Tx的另一個端口讀出數(shù)據(jù)。這樣一直到一幀結(jié)束。當(dāng)下一幀數(shù)據(jù)到來時,交換讀寫所指向的幀存儲區(qū),這樣保證了原視頻信號的幀率不變。
為了使設(shè)計簡單,DDR控制器模塊DDR_IF使DDR工作在BL(Burst Length)即數(shù)據(jù)突發(fā)長度等于2的狀態(tài)[4],并且以行為單位完成一次讀寫流程。每次要寫入或者讀出一行數(shù)據(jù)時,主控制模塊MAIN_CTL向DDR_IF發(fā)送讀寫請求,然后發(fā)送一行數(shù)據(jù)所需要傳送的突發(fā)長度的數(shù)量BL_CNT,以及該行數(shù)據(jù)要存入DDR的bank地址、行起始地址、列起始地址。之后,MAIN_CTL和DDR_IF進(jìn)入讀寫流程。一行數(shù)據(jù)讀寫操作的Modelsim時序仿真如圖6所示,圖中以一行數(shù)據(jù)有3個像素為例。
根據(jù)以上分析,DDR在一行數(shù)據(jù)的時間內(nèi)被復(fù)用,理論上只要滿足寫入一行加讀出一行數(shù)據(jù)的時間小于一行數(shù)據(jù)的持續(xù)時間Th即可。在1 600×1 200@60 Hz的分辨率下,行周期Th=13.3,當(dāng)DDR工作在165 MHz時,其讀一行數(shù)據(jù)加寫一行數(shù)據(jù)的時間為:Tl=1 600×2/165 M×2=9.7Th。即使考慮到DDR在讀寫之外的其他操作上花費(fèi)的額外時間,也能夠滿足要求。
2.3 格式轉(zhuǎn)換
2.3.1 3D模式
2.3.2 2D模式
對于本文設(shè)計的系統(tǒng),對程序稍作修改即可實(shí)現(xiàn)2D/3D兼容。只須在輸入端,第k個像素到達(dá)時,各分量分別存入地址addr=k即可。
本文介紹的立體視頻轉(zhuǎn)換系統(tǒng)能夠在不影響幀率的情況下進(jìn)行實(shí)時轉(zhuǎn)換,并且滿足2D/3D兼容的需要。該系統(tǒng)目前已應(yīng)用于立體顯示器格式轉(zhuǎn)換。DVI接口的使用,使得該系統(tǒng)有著廣泛的兼容性。此外,系統(tǒng)用一片SDRAM實(shí)現(xiàn)了幀緩沖的功能,在充分利用系統(tǒng)資源的同時,使得整個系統(tǒng)的設(shè)計更為簡潔,有利于減小體積和降低成本。同時,該系統(tǒng)實(shí)際上構(gòu)建了一個通用的視頻處理架構(gòu),具有很好的擴(kuò)展性,程序只需稍作修改即可用于其他尺寸、其他格式視頻源(如上下格式、時分格式)、其他立體實(shí)現(xiàn)方式(如按行或者按列分割左右圖像)的立體顯示器。
參考文獻(xiàn)
[1] 王元慶.自由立體顯示器的應(yīng)用與現(xiàn)狀[J].現(xiàn)代顯示,2003(1):38-41.
[2] 周如輝.實(shí)時視頻處理系統(tǒng)中乒乓緩存控制的設(shè)計[J]. 電子元器件應(yīng)用,2006(4):66-68.
[3] 朱煒.DDR SDRAM控制器的設(shè)計與實(shí)現(xiàn)[J].電子器件,2009(3):592-595.
[4] 王元慶.基于LCD的自由立體顯示技術(shù)[J].液晶與顯示,2003,18(2):116-201.
[5] 汪洋,王元慶.多用戶自由立體顯示技術(shù)[J].液晶與顯示,2009(3):434-437.
評論