<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于DVI和FPGA的視頻疊加器設計

基于DVI和FPGA的視頻疊加器設計

作者: 時(shí)間:2011-08-17 來(lái)源:網(wǎng)絡(luò ) 收藏

摘 要: 利用作為主控單元,以數字視頻接口DVI為視頻接口、TI公司的TFP401和TFP410為視頻信號的編解碼芯片、ISSI公司的SRAM IS61LV10248-8TI為存儲單元完成視頻疊加器的設計。通過(guò)該系統,從路圖像的非黑像素能夠覆蓋主路圖像相同坐標的像素。
關(guān)鍵詞: 數字視頻疊加;;

 飛機研發(fā)過(guò)程中,需要對包含目標信息和地圖信息的機載視頻信號進(jìn)行調試。但是機載顯示終端普遍存在價(jià)格昂貴、使用壽命短等缺點(diǎn),如果使用它不斷地調試機載視頻信號,則機載顯示終端的消耗會(huì )增大,研發(fā)成本將大幅提高。
本文介紹了一種DVI視頻信號疊加器的設計方案,可以對兩組相同分辨率和刷新頻率的DVI視頻信號轉化、合成并輸出。通過(guò)該系統,從路圖像的非黑像素能夠覆蓋主路圖像相同坐標的像素,從而完成對機載顯示終端的模擬。該方案主要以1024×768@60Hz的視頻源為研究對象,可根據實(shí)際需要調節,并可支持多種分辨率和刷新頻率(640×480@60Hz,800×600@60Hz,1024×768@60Hz)。
由于設計了這種模擬裝置,因此不必用機載顯示終端調試機載視頻信號,從而減少對機載顯示終端的消耗。DVI視頻信號疊加器的使用,節約了開(kāi)發(fā)成本。


1 DVI接口
數字視頻接口(DVI)是一種適應數字顯示器飛速發(fā)展而產(chǎn)生的顯示接口。DVI 標準由 DDWG(Digital Display Working Group)于1999年4月正式推出,該組織包括了Intel、IBM、HP、Silicon Image、NEC等眾多芯片及整機的生產(chǎn)廠(chǎng)家,因而 DVI 標準具有廣泛的業(yè)界支持[1]。DVI的接口主要有兩種類(lèi)型:DVI-Digital(DVI-D),只支持數字式顯示器,共 24 個(gè) 引 腳;DVI-Integrated(DVI-I),兼容模擬和數字的連接,共29個(gè)引腳。計算機顯卡一般有DVI-I和VGA兩個(gè)接口。本設計選用的是 DVI-I 接口,相對于VGA(Video Graphics Array)接口,其優(yōu)勢突出,DVI傳輸的是數字信號,數字圖像信息不需經(jīng)過(guò)數字→模擬→數字繁瑣的轉換過(guò)程,就會(huì )直接被傳送到顯示設備上,大大節省了時(shí)間,因此它的速度更快,能有效消除拖影現象。而且VGA模擬信號易受干擾,DVI信號則抗干擾能力強,圖像信號沒(méi)有衰減,色彩更純凈、逼真。


2 VESA標準介紹
VESA(Video Electronics Standards Association)即視頻電子標準協(xié)會(huì ),主要致力于制訂并推廣顯示相關(guān)標準。它規定了各種分辨率和刷新頻率的顯示監視器定時(shí)標準(簡(jiǎn)稱(chēng)VESA標準)。


2.1 VESA標準時(shí)序圖與參數定義
從圖 1可以看出[2],VESA標準包括場(chǎng)同步(VSYNC)、行同步(HSYNC)、像素數據有效(DE)、像素時(shí)鐘(CLK)、像素數據(Data,一般為24 bit)五組信號。

基于DVI和FPGA的視頻疊加器設計

VESA標準的五組視頻信號之間有嚴格的定時(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)同步極性都是負極性為例,即同步期為低電平[2]。關(guān)于同步極性的規定(如在1 024×768@60Hz的視頻格式下),如圖2中“Hor Sync Polarity=NEGATIVE”,“Ver Sync Polarity= NEGATIVE”所示。

基于DVI和FPGA的視頻疊加器設計

2.2 VESA參數值舉例(1 024×768@60Hz)
VESA同樣規定了各種參數在不同分辨率和刷新頻率的具體值,例如1 024×768@60Hz的定時(shí)參數值如圖2所示[2]。結合圖 1與圖2便可容易地用VHDL語(yǔ)言生成1 024×768@60Hz的時(shí)序信號。


3 系統框圖
系統總體框圖如圖 3所示,大致可分為五個(gè)部分:DVI接口、DVI解碼電路、主控制器及存儲器電路、DVI編碼電路。本設計只選取了兩路綠色數據輸入信號進(jìn)行處理,故以下的像素數據信號(Data)無(wú)特殊說(shuō)明都是綠色的8位信號。

基于DVI和FPGA的視頻疊加器設計

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


4 工作流程
FPGA內部工作模塊如圖4所示。下面簡(jiǎn)要闡述關(guān)鍵信號的數據流向。

基于DVI和FPGA的視頻疊加器設計

場(chǎng)同步極性判斷模塊的功能是根據輸入的VESA1信號判斷出場(chǎng)同步極性(VSP),因VESA1和VESA2視頻格式相同,只需判斷VESA1的場(chǎng)同步極性。VESA1(VESA2)寫(xiě)地址生成模塊的功能是利用場(chǎng)同步極性實(shí)現寫(xiě)地址和像素位置的合理對應。輸出時(shí)序、寫(xiě)地址生成模塊的功能是利用場(chǎng)同步極性、VESA1寫(xiě)地址生成模塊生成的寫(xiě)地址a_write1和VESA1中的場(chǎng)同步信號,實(shí)現分辨率的判斷,進(jìn)而結合其他信號完成輸出時(shí)序的生成和讀地址的生成。SRAM控制模塊負責根據上述生成的讀地址和寫(xiě)地址,寫(xiě)入兩路VESA信號的新的像素數據,讀出先前存儲的兩路VESA信號像素數據。被讀出的兩個(gè)像素點(diǎn)將用于輸出時(shí)序、寫(xiě)地址生成模塊的像素疊加操作,產(chǎn)生的像素作為輸出像素。


4.1 場(chǎng)同步極性(Ver Sync Polarity)判斷
由于DE1=1期間,VSYNC1信號必然處于非同步期,此時(shí)的電平與同步期相反。所以,在DE1=1時(shí),若VSYNC1=1,則記為VSP=0(Ver Sync Polarity=NEGATIVE),否則,記為VSP=1(Ver Sync Polarity=POSITIVE)。在實(shí)現該模塊的編程中,采用VESA1視頻信號中的CLK1像素時(shí)鐘信號上升沿來(lái)同步此進(jìn)程,可以保證產(chǎn)生的信號穩定。


4.2 VESA1和VESA2寫(xiě)地址生成
因為VESA1寫(xiě)地址生成與VESA2寫(xiě)地址生成類(lèi)似,這里只介紹VESA1的寫(xiě)地址(a_write1)生成。由于系統中SRAM的地址總線(xiàn)為20位(尋址能力1M),所以a_write1為20位。若將輸入視頻信號的分辨率記為def,則VESA1一幀像素數據所需SRAM空間范圍是0~def-1。因此,在場(chǎng)同步期間(VSYNC1=VSP),可令a_write1=220-1。在非場(chǎng)同步期間,若處于像素數據有效期(DE1=1),則當像素時(shí)鐘(CLK1)上升沿到來(lái)時(shí),對a_write1實(shí)行自加一操作(假設已設置T.M.D.S解碼器1輸出的控制信號及像素數據在CLK1的上升沿前后穩定);若處于像素數據無(wú)效期(DE1≠0),則a_write1保持不變。這樣,在一幀圖像期間,對應從圖像左上角開(kāi)始計數的每個(gè)像素數據,便可形成0~def-1的地址范圍。


4.3 輸出時(shí)序、讀地址生成
4.3.1 分辨率判斷

a_write1(VESA1寫(xiě)地址)的范圍是0~def-1,而a_write1完成從def-1到0跳變的觸發(fā)源正是場(chǎng)同步信號(VSYNC1)從非同步期到同步期的跳變。因此,可定義一信號def_clk,當VSYNC1≠VSP時(shí),def_clk=0,否則,def_clk=1。這樣,當def_clk上升沿到來(lái)時(shí),正是場(chǎng)同步信號從非同步期到同步期的跳變,此時(shí)若令20位信號def_1= a_write1(等于def-1),且令def=def_1+1,則可得真正的分辨率,。


4.3.2 暫時(shí)輸出時(shí)序控制信號生成
VESA標準的控制信號包括VSYNC、HSYNC、DE。由于已知兩路視頻信號的分辨率(def),這時(shí)將VESA1的像素時(shí)鐘(CLK1)作為暫時(shí)的輸出時(shí)序像素時(shí)鐘(CLK33),再結合VESA標準的介紹,便可生成分辨為def的暫時(shí)的輸出時(shí)序控制信號VSYNC33、HSYNC33、DE33。


4.3.3 VESA3讀地址生成
由于此地址生成方法與VESA1和VESA2寫(xiě)地址生成方法相同,只是此處生成的地址是SRAM控制器用來(lái)讀取像素數據而已,故不再贅述。


4.3.4 換場(chǎng)信號生成
當主時(shí)序換場(chǎng)時(shí),每一路視頻信號的兩片SRAM需要交換讀寫(xiě)方式,即若換場(chǎng)前讀SRAM1、SRAM3,寫(xiě)SRAM2、SRAM4,則換場(chǎng)后讀SRAM2、SRAM4,寫(xiě)SRAM1、SRAM3。因此需要一個(gè)信號在主時(shí)序相鄰兩場(chǎng)的電平不同,即換場(chǎng)信號,記為v_trans。此信號用來(lái)控制圖 4中SRAM控制模塊的讀寫(xiě)方式。
v_trans的生成方式比較簡(jiǎn)單,只需在VSYNC33的上升沿到來(lái)時(shí)將v_trans取反即可。


4.3.5 輸出時(shí)序同步處理和疊加像素生成
由于信號在FPGA生成的電路存在延遲,主時(shí)序控制信號和像素時(shí)鐘信號可能產(chǎn)生不同步現象。因此需要對控制信號進(jìn)行同步處理,同步期間同時(shí)生成像素數據Data3(VESA3像素數據)并輸出。VESA3中的像素時(shí)鐘直接短接CLK33即可。Data11(Data22)是從SRAM中讀取的VESA1(VESA2)鏈路像素數據。
同步過(guò)程為CLK33下降沿到來(lái)時(shí)輸出控制信號和像素數據。由于本文將VESA1作為主路、VESA2作為從路,所以要將VESA2信號疊加在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分為一組,對應VESA1鏈路;將SRAM3和SRAM4分為一組,對應VESA2鏈路。SRAM控制模塊需要對每一組中的兩塊SRAM輪流進(jìn)行讀寫(xiě)操作。若v_trans=0,則用VESA3讀地址生成模塊產(chǎn)生的地址a_read來(lái)讀取SRAM1、SRAM3,分別得像素數據Data11、Data22,同時(shí)用VESA1、VESA2寫(xiě)地址生成模塊產(chǎn)生的地址a_write1、a_write2分別將Data1、Data2寫(xiě)入SRAM2、SRAM4;否則,用地址a_read讀取SRAM2、SRAM4,分別得像素數據Data11、Data22,同時(shí)用地址a_write1和a_write2分別將Data1和Data2寫(xiě)入SRAM1、SRAM3。Data11、Data22被送至輸出時(shí)序、讀地址生成模塊進(jìn)行疊加像素生成。


5 實(shí)驗結果
對于1 024×768@60Hz的VESA時(shí)序,控制信號(vsync,hsync,de)和像素時(shí)鐘(idck)的仿真結果如圖 5所示,其他分辨率的仿真圖不再給出。經(jīng)過(guò)測量場(chǎng)同步信號和行同步信號的周期分別為16.7 ms、20.7 ?滋s,與VESA標準[2]一致,其他參數經(jīng)測量也吻合,不再列舉。

基于DVI和FPGA的視頻疊加器設計

由于只對兩路視頻中的綠色信號進(jìn)行了疊加,顯示色數有些不足。后期研究可向全彩色視頻疊加方向努力。但彩色信號疊加與綠色信號疊加在原理上相同,只是意味著(zhù)要選用引腳數更多的FPGA。



關(guān)鍵詞: FPGA 最小化傳輸差分信號

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>