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