《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于DVI和FPGA的視頻疊加器設(shè)計
基于DVI和FPGA的視頻疊加器設(shè)計
來源:電子技術(shù)應(yīng)用2011年第6期
趙艷軍,何其銳,施錫濤
電子科技大學(xué) 光電信息學(xué)院,四川 成都610054
摘要: 利用FPGA作為主控單元,以數(shù)字視頻接口DVI為視頻接口、TI公司的TFP401和TFP410為視頻信號的編解碼芯片、ISSI公司的SRAM IS61LV10248-8TI為存儲單元完成視頻疊加器的設(shè)計。通過該系統(tǒng),從路圖像的非黑像素能夠覆蓋主路圖像相同坐標(biāo)的像素。
中圖分類號: TP391.4
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2011)06-0031-04
Implementation of the device for video overlay based on DVI and FPGA
Zhao Yanjun,He Qirui,Shi Xitao
(School of Optoelectronic Information, University of Electronic Science and Technology of China, Chengdu 610054,China
Abstract: With FPGA as the master controller, DVI as the video interface, TFP401 and TFP410 of TI company respectively as the decoder and encoder chip, the SRAM IS61LV10248-8TI of ISSI company as the storage unit, the device for video overlay is implemented. Through this device, the non-black pixels of the slave image can overlay the pixels at the same location of the master image.
Key words : digital video overlay;FPGA;T.M.D.S


 飛機研發(fā)過程中,需要對包含目標(biāo)信息和地圖信息的機載視頻信號進(jìn)行調(diào)試。但是機載顯示終端普遍存在價格昂貴、使用壽命短等缺點,如果使用它不斷地調(diào)試機載視頻信號,則機載顯示終端的消耗會增大,研發(fā)成本將大幅提高。
    本文介紹了一種DVI視頻信號疊加器的設(shè)計方案,可以對兩組相同分辨率和刷新頻率的DVI視頻信號轉(zhuǎn)化、合成并輸出。通過該系統(tǒng),從路圖像的非黑像素能夠覆蓋主路圖像相同坐標(biāo)的像素,從而完成對機載顯示終端的模擬。該方案主要以1024×768@60Hz的視頻源為研究對象,可根據(jù)實際需要調(diào)節(jié),并可支持多種分辨率和刷新頻率(640×480@60Hz,800×600@60Hz,1024×768@60Hz)。
    由于設(shè)計了這種模擬裝置,因此不必用機載顯示終端調(diào)試機載視頻信號,從而減少對機載顯示終端的消耗。DVI視頻信號疊加器的使用,節(jié)約了開發(fā)成本。
1 DVI接口
    數(shù)字視頻接口(DVI)是一種適應(yīng)數(shù)字顯示器飛速發(fā)展而產(chǎn)生的顯示接口。DVI 標(biāo)準(zhǔn)由 DDWG(Digital Display Working Group)于1999年4月正式推出,該組織包括了Intel、IBM、HP、Silicon Image、NEC等眾多芯片及整機的生產(chǎn)廠家,因而 DVI 標(biāo)準(zhǔn)具有廣泛的業(yè)界支持[1]。DVI的接口主要有兩種類型:DVI-Digital(DVI-D),只支持?jǐn)?shù)字式顯示器,共 24 個 引 腳;DVI-Integrated(DVI-I),兼容模擬和數(shù)字的連接,共29個引腳。計算機顯卡一般有DVI-I和VGA兩個接口。本設(shè)計選用的是 DVI-I 接口,相對于VGA(Video Graphics Array)接口,其優(yōu)勢突出,DVI傳輸?shù)氖菙?shù)字信號,數(shù)字圖像信息不需經(jīng)過數(shù)字→模擬→數(shù)字繁瑣的轉(zhuǎn)換過程,就會直接被傳送到顯示設(shè)備上,大大節(jié)省了時間,因此它的速度更快,能有效消除拖影現(xiàn)象。而且VGA模擬信號易受干擾,DVI信號則抗干擾能力強,圖像信號沒有衰減,色彩更純凈、逼真。
2 VESA標(biāo)準(zhǔn)介紹
    VESA(Video Electronics Standards Association)即視頻電子標(biāo)準(zhǔn)協(xié)會,主要致力于制訂并推廣顯示相關(guān)標(biāo)準(zhǔn)。它規(guī)定了各種分辨率和刷新頻率的顯示監(jiān)視器定時標(biāo)準(zhǔn)(簡稱VESA標(biāo)準(zhǔn))。
2.1 VESA標(biāo)準(zhǔn)時序圖與參數(shù)定義
    從圖 1可以看出[2],VESA標(biāo)準(zhǔn)包括場同步(VSYNC)、行同步(HSYNC)、像素數(shù)據(jù)有效(DE)、像素時鐘(CLK)、像素數(shù)據(jù)(Data,一般為24 bit)五組信號。

 

 

    VESA標(biāo)準(zhǔn)的五組視頻信號之間有嚴(yán)格的定時參數(shù),場(行)掃描包括場(行)消隱期和場(行)有效顯示期(即Addr Time)。場(行)消隱期又包括同步期(Sync)、后肩(Back Porch)、頂(左)邊(Top (Left)Border)、底(右)邊(Bottom (Right)Border)、前肩(Front Porch)。圖 1以行同步極性和場同步極性都是負(fù)極性為例,即同步期為低電平[2]。關(guān)于同步極性的規(guī)定(如在1 024×768@60Hz的視頻格式下),如圖2中“Hor Sync Polarity=NEGATIVE”,“Ver Sync Polarity= NEGATIVE”所示。

2.2 VESA參數(shù)值舉例(1 024×768@60Hz)
    VESA同樣規(guī)定了各種參數(shù)在不同分辨率和刷新頻率的具體值,例如1 024×768@60Hz的定時參數(shù)值如圖2所示[2]。結(jié)合圖 1與圖2便可容易地用VHDL語言生成1 024×768@60Hz的時序信號。
3 系統(tǒng)框圖
    系統(tǒng)總體框圖如圖 3所示,大致可分為五個部分:DVI接口、DVI解碼電路、FPGA主控制器及存儲器電路、DVI編碼電路。本設(shè)計只選取了兩路綠色數(shù)據(jù)輸入信號進(jìn)行處理,故以下的像素數(shù)據(jù)信號(Data)無特殊說明都是綠色的8位信號。

    連接DVI接口的計算機顯卡,通過DDC[3,4]接口讀取存儲在EEPROM中的EDID[3]數(shù)據(jù),在通信握手成功后,向DVI接口發(fā)出T.M.D.S視頻信號。DVI接口傳輸?shù)腡.M.D.S時序碼流,經(jīng)過T.M.D.S解碼電路可以被解碼為VESA標(biāo)準(zhǔn)的數(shù)字視頻信號。SRAM1(SRAM3)與SRAM2(SRAM4)構(gòu)成VESA1(VESA2)鏈路的一組乒乓RAM,輪流存儲VESA1(VESA2)鏈路的像素數(shù)據(jù)。FPGA讀取已存儲的像素數(shù)據(jù)進(jìn)行疊加操作并產(chǎn)生VESA標(biāo)準(zhǔn)的視頻信號,然后通過VESA3鏈路發(fā)送到T.M.D.S編碼電路。T.M.D.S編碼電路將VESA3鏈路的VESA標(biāo)準(zhǔn)的信號編碼成T.M.D.S時序碼流,最后將其傳送到DVI接口,供顯示器顯示。引入乒乓RAM是由于即使兩路VESA視頻信號分辨率和刷新頻率相同,兩者一般也存在非零的相位差,所以需要存儲器對它們的像素數(shù)據(jù)進(jìn)行存儲。
    T.M.D.S解碼電路的解碼芯片采用TFP401,T.M.D.S編碼電路的編碼芯片采用TFP410。SRAM選用IS61LV-
10248-8TI,其讀寫周期為8 ns,存儲空間為1 M×8 bit,能夠滿足系統(tǒng)像素時鐘最高為65 MHz、最高分辨率為1024×768的要求。
4 工作流程
    FPGA內(nèi)部工作模塊如圖4所示。下面簡要闡述關(guān)鍵信號的數(shù)據(jù)流向。

    場同步極性判斷模塊的功能是根據(jù)輸入的VESA1信號判斷出場同步極性(VSP),因VESA1和VESA2視頻格式相同,只需判斷VESA1的場同步極性。VESA1(VESA2)寫地址生成模塊的功能是利用場同步極性實現(xiàn)寫地址和像素位置的合理對應(yīng)。輸出時序、寫地址生成模塊的功能是利用場同步極性、VESA1寫地址生成模塊生成的寫地址a_write1和VESA1中的場同步信號,實現(xiàn)分辨率的判斷,進(jìn)而結(jié)合其他信號完成輸出時序的生成和讀地址的生成。SRAM控制模塊負(fù)責(zé)根據(jù)上述生成的讀地址和寫地址,寫入兩路VESA信號的新的像素數(shù)據(jù),讀出先前存儲的兩路VESA信號像素數(shù)據(jù)。被讀出的兩個像素點將用于輸出時序、寫地址生成模塊的像素疊加操作,產(chǎn)生的像素作為輸出像素。
4.1 場同步極性(Ver Sync Polarity)判斷
    由于DE1=1期間,VSYNC1信號必然處于非同步期,此時的電平與同步期相反。所以,在DE1=1時,若VSYNC1=1,則記為VSP=0(Ver Sync Polarity=NEGATIVE),否則,記為VSP=1(Ver Sync Polarity=POSITIVE)。在實現(xiàn)該模塊的編程中,采用VESA1視頻信號中的CLK1像素時鐘信號上升沿來同步此進(jìn)程,可以保證產(chǎn)生的信號穩(wěn)定。
4.2 VESA1和VESA2寫地址生成
    因為VESA1寫地址生成與VESA2寫地址生成類似,這里只介紹VESA1的寫地址(a_write1)生成。由于系統(tǒng)中SRAM的地址總線為20位(尋址能力1M),所以a_write1為20位。若將輸入視頻信號的分辨率記為def,則VESA1一幀像素數(shù)據(jù)所需SRAM空間范圍是0~def-1。因此,在場同步期間(VSYNC1=VSP),可令a_write1<=220-1。在非場同步期間,若處于像素數(shù)據(jù)有效期(DE1=1),則當(dāng)像素時鐘(CLK1)上升沿到來時,對a_write1實行自加一操作(假設(shè)已設(shè)置T.M.D.S解碼器1輸出的控制信號及像素數(shù)據(jù)在CLK1的上升沿前后穩(wěn)定);若處于像素數(shù)據(jù)無效期(DE1&ne;0),則a_write1保持不變。這樣,在一幀圖像期間,對應(yīng)從圖像左上角開始計數(shù)的每個像素數(shù)據(jù),便可形成0~def-1的地址范圍。
4.3 輸出時序、讀地址生成
4.3.1 分辨率判斷

      a_write1(VESA1寫地址)的范圍是0~def-1,而a_write1完成從def-1到0跳變的觸發(fā)源正是場同步信號(VSYNC1)從非同步期到同步期的跳變。因此,可定義一信號def_clk,當(dāng)VSYNC1&ne;VSP時,def_clk<=0,否則,def_clk<=1。這樣,當(dāng)def_clk上升沿到來時,正是場同步信號從非同步期到同步期的跳變,此時若令20位信號def_1<= a_write1(等于def-1),且令def<=def_1+1,則可得真正的分辨率,。
4.3.2 暫時輸出時序控制信號生成
    VESA標(biāo)準(zhǔn)的控制信號包括VSYNC、HSYNC、DE。由于已知兩路視頻信號的分辨率(def),這時將VESA1的像素時鐘(CLK1)作為暫時的輸出時序像素時鐘(CLK33),再結(jié)合VESA標(biāo)準(zhǔn)的介紹,便可生成分辨為def的暫時的輸出時序控制信號VSYNC33、HSYNC33、DE33。
4.3.3 VESA3讀地址生成
    由于此地址生成方法與VESA1和VESA2寫地址生成方法相同,只是此處生成的地址是SRAM控制器用來讀取像素數(shù)據(jù)而已,故不再贅述。
4.3.4 換場信號生成
    當(dāng)主時序換場時,每一路視頻信號的兩片SRAM需要交換讀寫方式,即若換場前讀SRAM1、SRAM3,寫SRAM2、SRAM4,則換場后讀SRAM2、SRAM4,寫SRAM1、SRAM3。因此需要一個信號在主時序相鄰兩場的電平不同,即換場信號,記為v_trans。此信號用來控制圖 4中SRAM控制模塊的讀寫方式。
    v_trans的生成方式比較簡單,只需在VSYNC33的上升沿到來時將v_trans取反即可。
4.3.5 輸出時序同步處理和疊加像素生成
    由于信號在FPGA生成的電路存在延遲,主時序控制信號和像素時鐘信號可能產(chǎn)生不同步現(xiàn)象。因此需要對控制信號進(jìn)行同步處理,同步期間同時生成像素數(shù)據(jù)Data3(VESA3像素數(shù)據(jù))并輸出。VESA3中的像素時鐘直接短接CLK33即可。Data11(Data22)是從SRAM中讀取的VESA1(VESA2)鏈路像素數(shù)據(jù)。
    同步過程為CLK33下降沿到來時輸出控制信號和像素數(shù)據(jù)。由于本文將VESA1作為主路、VESA2作為從路,所以要將VESA2信號疊加在VESA1上。疊加算法為:若VESA2第i個像素點(Data22)為黑色(Data22=0),則輸出的VESA3第i個像素為VESA1的第i個像素(Data11),即Data3<=Data11;否則,輸出的VESA3第i個像素為VESA2的第i個像素,即Data3<=Data22。
4.4 SRAM控制
    將SRAM1和SRAM2分為一組,對應(yīng)VESA1鏈路;將SRAM3和SRAM4分為一組,對應(yīng)VESA2鏈路。SRAM控制模塊需要對每一組中的兩塊SRAM輪流進(jìn)行讀寫操作。若v_trans=0,則用VESA3讀地址生成模塊產(chǎn)生的地址a_read來讀取SRAM1、SRAM3,分別得像素數(shù)據(jù)Data11、Data22,同時用VESA1、VESA2寫地址生成模塊產(chǎn)生的地址a_write1、a_write2分別將Data1、Data2寫入SRAM2、SRAM4;否則,用地址a_read讀取SRAM2、SRAM4,分別得像素數(shù)據(jù)Data11、Data22,同時用地址a_write1和a_write2分別將Data1和Data2寫入SRAM1、SRAM3。Data11、Data22被送至輸出時序、讀地址生成模塊進(jìn)行疊加像素生成。
5 實驗結(jié)果
    對于1 024&times;768@60Hz的VESA時序,控制信號(vsync,hsync,de)和像素時鐘(idck)的仿真結(jié)果如圖 5所示,其他分辨率的仿真圖不再給出。經(jīng)過測量場同步信號和行同步信號的周期分別為16.7 ms、20.7 ?滋s,與VESA標(biāo)準(zhǔn)[2]一致,其他參數(shù)經(jīng)測量也吻合,不再列舉。

    由于只對兩路視頻中的綠色信號進(jìn)行了疊加,顯示色數(shù)有些不足。后期研究可向全彩色視頻疊加方向努力。但彩色信號疊加與綠色信號疊加在原理上相同,只是意味著要選用引腳數(shù)更多的FPGA。
參考文獻(xiàn)
[1] Digital Display Working Group.Digital visual interface DVI,Revision1.0.1999,4.
[2] Video Electronics Standards Association.VESA and industry standards and guidelines for computer display monitor  timing(DMT).Version 1.0,Revision 10,2004.
[3] Video Electronics Standards Association.VESA E-EDID  implementation guide.Version1.0,2001.
[4] Video Electronics Standards Association.Display data channel  (DDC) specification.Version 3,1997.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。