《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于DVI和FPGA的視頻疊加器設(shè)計(jì)
基于DVI和FPGA的視頻疊加器設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2011年第6期
趙艷軍,何其銳,施錫濤
電子科技大學(xué) 光電信息學(xué)院,四川 成都610054
摘要: 利用FPGA作為主控單元,以數(shù)字視頻接口DVI為視頻接口、TI公司的TFP401和TFP410為視頻信號(hào)的編解碼芯片、ISSI公司的SRAM IS61LV10248-8TI為存儲(chǔ)單元完成視頻疊加器的設(shè)計(jì)。通過(guò)該系統(tǒng),從路圖像的非黑像素能夠覆蓋主路圖像相同坐標(biāo)的像素。
中圖分類號(hào): TP391.4
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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


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

 

 

    VESA標(biāo)準(zhǔn)的五組視頻信號(hào)之間有嚴(yán)格的定時(shí)參數(shù),場(chǎng)(行)掃描包括場(chǎng)(行)消隱期和場(chǎng)(行)有效顯示期(即Addr Time)。場(chǎng)(行)消隱期又包括同步期(Sync)、后肩(Back Porch)、頂(左)邊(Top (Left)Border)、底(右)邊(Bottom (Right)Border)、前肩(Front Porch)。圖 1以行同步極性和場(chǎng)同步極性都是負(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í)參數(shù)值如圖2所示[2]。結(jié)合圖 1與圖2便可容易地用VHDL語(yǔ)言生成1 024×768@60Hz的時(shí)序信號(hào)。
3 系統(tǒng)框圖
    系統(tǒng)總體框圖如圖 3所示,大致可分為五個(gè)部分:DVI接口、DVI解碼電路、FPGA主控制器及存儲(chǔ)器電路、DVI編碼電路。本設(shè)計(jì)只選取了兩路綠色數(shù)據(jù)輸入信號(hào)進(jìn)行處理,故以下的像素?cái)?shù)據(jù)信號(hào)(Data)無(wú)特殊說(shuō)明都是綠色的8位信號(hào)。

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

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

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

    由于只對(duì)兩路視頻中的綠色信號(hào)進(jìn)行了疊加,顯示色數(shù)有些不足。后期研究可向全彩色視頻疊加方向努力。但彩色信號(hào)疊加與綠色信號(hào)疊加在原理上相同,只是意味著要選用引腳數(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)載。