VBE標(biāo)準(zhǔn)及其在實(shí)時動態(tài)圖像實(shí)時顯示中的應(yīng)用
摘要:本文介紹了視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)制定的VBE標(biāo)準(zhǔn),結(jié)合該標(biāo)準(zhǔn),通過對基于嵌入式平臺的遙感圖像實(shí)時滾動顯示系統(tǒng)的三種軟件實(shí)現(xiàn)方案進(jìn)行對比,凸顯了該標(biāo)準(zhǔn)的在硬件資源占用上的優(yōu)勢,最后,本文給出了一個基于嵌入式計(jì)算機(jī)平臺和VBE標(biāo)準(zhǔn)的遙感圖像實(shí)時動態(tài)顯示系統(tǒng)的實(shí)施方案。
關(guān)鍵詞:VGA標(biāo)準(zhǔn):VBE標(biāo)準(zhǔn):動態(tài)圖像實(shí)時顯示
0 引言
PC機(jī)的開放體系結(jié)構(gòu)使得有更多的廠商能夠參與計(jì)算機(jī)部件的生產(chǎn),參加標(biāo)準(zhǔn)的制定。在PC機(jī)圖形顯示領(lǐng)域的早期,IBM推出的VGA標(biāo)準(zhǔn)成為默認(rèn)的行業(yè)標(biāo)準(zhǔn),但隨后一段時期,其他廠商生產(chǎn)的VGA顯示卡雖兼容了IBM VGA的BIOS和寄存器,卻加入了擴(kuò)展功能,當(dāng)時,出現(xiàn)了眾多具有更高分辨率、更多色彩甚至附加圖形處理功能的顯示卡-Super VGA顯示卡。
當(dāng)時,對于Super VGA顯示卡的軟件開發(fā)者而言,他們卻要面對非常嚴(yán)重的問題:由于沒有硬件設(shè)計(jì)標(biāo)準(zhǔn),軟件開發(fā)者面對著各種完全不同的Super VGA硬件結(jié)構(gòu),而且,由于沒有統(tǒng)一的軟件開發(fā)界面,在程序開發(fā)中必須解決軟件兼容不同顯示卡的問題,隨之而來的是,對于某一具體的Super VGA顯示卡,除了一些特定的軟件可以得到制造廠家提供的顯示驅(qū)動程序支持,幾乎再沒有什么軟件包可以利用Super VGA帶來的能力和優(yōu)點(diǎn)。
VBE標(biāo)準(zhǔn)的制定就是要改變這種困境,作為各種Super VGA顯示卡的統(tǒng)一軟件接口,它可以使應(yīng)用軟件和系統(tǒng)軟件在較大的范圍內(nèi)利用擴(kuò)展VGA可用的優(yōu)勢。
本文先簡單介紹VBE標(biāo)準(zhǔn),然后結(jié)合一個具體設(shè)計(jì),給出如何利用VBE標(biāo)準(zhǔn)實(shí)現(xiàn)遙感圖像實(shí)時滾動顯示。
1 VBE標(biāo)準(zhǔn)
VBEl.0提供了基本信息查詢、顯示方式信息查詢、設(shè)置顯示方式、返回當(dāng)前顯示方式、保存/恢復(fù)視頻狀態(tài)等幾項(xiàng)基本功能,定義了有限的幾種擴(kuò)展顯示模式。
VBEl.1增加了設(shè)置/獲取邏輯掃描線長度等功能,并增加5種顯示模式和新的顯示方式參數(shù)。
VBEl.2增加了對調(diào)色板設(shè)置的接口及更多的顯示模式和顯示方式參數(shù)。
VBE2.0增加了對線性幀緩存和保護(hù)模式的支持等。
VBE3.0擴(kuò)充了過去版本中的許多功能,實(shí)現(xiàn)了刷新率、點(diǎn)時鐘、硬件幀切換等。由于篇幅所限,這里只對被硬件廠商廣泛支持的VBE-2.0標(biāo)準(zhǔn)定義的軟件接口做簡單介紹。
標(biāo)準(zhǔn)VGA的BIOS是通過中斷l(xiāng)O來調(diào)用的,而VBE是通過中斷4F,通過設(shè)置不同的功能號調(diào)用該標(biāo)準(zhǔn)的不同功能:
(1)功能調(diào)用00H--基本信息查詢
可返回VBE版本號、OEM名字,顯示視頻環(huán)境能力、支持的顯示方式、顯示存儲器數(shù)目等信息。
(2)功能調(diào)用01H--顯示方式信息查詢
可返回特定顯示方式的具體信息,包括顯示方式屬性、主機(jī)視頻窗口屬性、功能調(diào)用入口地址、分辨率、像素位數(shù)、顯示存儲器分塊數(shù)、分塊長度等。
(3)功能調(diào)用02H--設(shè)置顯示方式
設(shè)置顯示方式。
(4)功能調(diào)用03H--返回顯示方式
返回當(dāng)前顯示方式。
(5)功能調(diào)用04H--保存/恢復(fù)視頻狀態(tài)
保存/恢復(fù)視頻狀態(tài)。
(6)功能調(diào)用05H--主機(jī)視頻窗口控制
設(shè)置主機(jī)視頻窗口在顯示存儲器中的位置。
(7)功能調(diào)用06H--設(shè)置/獲取邏輯掃描線長度
通過對子功能的控制實(shí)現(xiàn)設(shè)置或獲取邏輯掃描線長度。
(8)功能調(diào)用07H--設(shè)置/獲取顯示起始地址
通過對子功能的控制實(shí)現(xiàn)設(shè)置或獲取顯示的起始地址。
(9)功能調(diào)用08H--設(shè)置/獲取調(diào)色板格式
通過對子功能的控制實(shí)現(xiàn)設(shè)置或獲取調(diào)色板格式。
(10)功能調(diào)用09H--設(shè)置/獲取調(diào)色板數(shù)據(jù)
通過對子功能的控制實(shí)現(xiàn)設(shè)置或獲取調(diào)色板數(shù)據(jù)。
(11)功能調(diào)用0AH--返回保護(hù)模式接口
返回保護(hù)模式程序接口。[!--empirenews.page--]
2 遙感圖像實(shí)時滾動顯示系統(tǒng)的設(shè)計(jì)要求
遙感圖像實(shí)時滾動顯示系統(tǒng)具有以下特點(diǎn):
(1)圖像尺寸大,行像素點(diǎn)數(shù)多;
(2)圖像滾動顯示,速度快,每秒刷新行數(shù)較多;
(3)顯示信息豐富,除顯示動態(tài)圖像外,還要能夠在圖像上疊加顯示文字信息和網(wǎng)格信息;
(4)有良好的視覺效果,圖像滾動顯示不能有跳躍的感覺;
(5)基于可滿足特殊環(huán)境要求的嵌入式平臺運(yùn)行。
基于上述設(shè)計(jì)限制,對動態(tài)圖像實(shí)時顯示系統(tǒng)顯示速度的要求是比較高的。具體的技術(shù)指標(biāo)如下:
輸入數(shù)據(jù)率: ≤2.5Mb/s
輸入每行像素?cái)?shù): 8192點(diǎn)/線
輸入數(shù)據(jù)格式: 遙感圖像+輔助數(shù)據(jù)
顯示字長: 8bit
顯示圖像灰度級: 256
屏幕顯示方式: 滾動顯示
網(wǎng)狀標(biāo)尺疊加顯示: 熱鍵選擇
輔助信息字符顯示: 熱鍵選擇
圖像顯示模式: A.高分辨率局部顯示,行顯示起始可選
B.抽樣全局顯示,行向8抽1,列向8抽1
要求實(shí)時顯示系統(tǒng)在1024×768的顯示模式下滾動顯示圖像的同時,在固定位置疊加顯示的輔助數(shù)據(jù)字符和網(wǎng)格標(biāo)尺。由于需要在全屏范圍內(nèi)疊加滾動的和靜止的兩種圖像,在嵌入式平臺的實(shí)現(xiàn)難度較大。
3 幾種軟件實(shí)現(xiàn)方案的對比
根據(jù)嵌入式計(jì)算機(jī)的顯示卡性能和可利用的編程軟件庫,可以采用以下3種方式實(shí)現(xiàn)實(shí)時圖像顯示軟件:
(1)基于幀切換
基于幀切換的滾動圖像與靜止圖像疊加顯示是通過類似電影放映的方式實(shí)現(xiàn)的,即由全屏圖像構(gòu)成一幀,許多這樣的幀一起構(gòu)成幀序列,通過在屏幕上順序顯示這些幀序列,就形成在圖像滾動顯示的同時疊加靜止網(wǎng)格和文字。
按照實(shí)時顯示的要求,基于幀切換的方法構(gòu)成一幀時,首先要在后臺顯存中重建整個一幀的圖像數(shù)據(jù),然后將網(wǎng)格和文字寫到顯存的相應(yīng)地址。這種方法的數(shù)據(jù)搬移量非常大,所需的顯示內(nèi)存容量很大,對顯存的存取速度要求高。
(2)基于幀切換,并利用硬件二維加速功能
利用硬件二維加速功能實(shí)現(xiàn)幀切換,這種方法與上述方法類似,不同的是它利用了硬件的優(yōu)勢,即滾動顯示的圖像與靜止的網(wǎng)格和文字分別存儲于顯示存儲器的不同區(qū)域,在顯示時由顯示卡的硬件進(jìn)行疊加,這樣,對每幀圖像的操作基本只集中在圖像數(shù)據(jù)的存儲區(qū)內(nèi)。
此時,構(gòu)成一幀的主要工作是重建整個一幀的圖像數(shù)據(jù),由于網(wǎng)格和文字存儲于顯存中的另一地址空間,一般情況下,僅需對個別文字進(jìn)行操作。然而,這種方法的數(shù)據(jù)搬移量還是非常大,對系統(tǒng)內(nèi)存尋址能力要求高,所需的顯示內(nèi)存容量更大。
(3)基于更改顯示窗口在顯存中的起始地址
在顯示存儲器中,屏幕上顯示的僅是顯存的一小部分。當(dāng)設(shè)定顯示模式后,可以把整個顯示存儲器看作是一幅縱向很長的畫面,顯示器作為一個窗口只顯示了其中的一部分。我們可以通過更改顯示窗口在內(nèi)存中的起始地址的方法來改變屏幕上的內(nèi)容,如果這種改變是順序、連續(xù)的,在屏幕上就會形成滾動的圖像。
每次輸入的圖像數(shù)據(jù)依次存儲于顯存中,再進(jìn)行所需的處理(如添加縱向的網(wǎng)格線),當(dāng)需要屏幕滾動時,首先更改顯示窗口在內(nèi)存中的起始地址,然后處理橫向的網(wǎng)格線和文字,使它們在屏幕上處于正確的位置。這種方法的數(shù)據(jù)搬移量比較小,所需的系統(tǒng)內(nèi)存和顯示內(nèi)存容量也很小,但這種方法的數(shù)據(jù)處理較復(fù)雜,在編程過程中需要考慮多種邊界的影響。同時,當(dāng)用戶不需要顯示網(wǎng)格線和文字時,恢復(fù)已被顯示網(wǎng)格線和文字破壞的原圖像數(shù)據(jù)的處理量是非常大的,是否能夠?qū)崿F(xiàn)取決于目標(biāo)系統(tǒng)的系統(tǒng)內(nèi)存和顯示內(nèi)存的存取速度以及編程語言的效率。[!--empirenews.page--]
結(jié)合圖像實(shí)時顯示分機(jī)的技術(shù)指標(biāo),可以通過表1具體說明上述三種方法各自的優(yōu)勢及問題:
對于普通的計(jì)算機(jī)平臺而言,三種實(shí)現(xiàn)方法對系統(tǒng)的要求都是可以滿足的,但在實(shí)際的工程實(shí)施中,則要考慮環(huán)境因素對目標(biāo)系統(tǒng)在結(jié)構(gòu)、溫度、濕度等方面的限制,這時,加以限制的目標(biāo)系統(tǒng)是否能滿足要求,成為制約圖像顯示方案的關(guān)鍵因素。
考慮特殊的環(huán)境適應(yīng)性要求,動態(tài)圖像實(shí)時顯示系統(tǒng)的嵌入式計(jì)算機(jī)必須具有插針式的機(jī)械結(jié)構(gòu),同時還要具有很小的體積,并具各PCI接口。因此,考慮成本和體積限制,選擇PC104plus結(jié)構(gòu)的嵌入式計(jì)算機(jī)。這種結(jié)構(gòu)的計(jì)算機(jī)的顯示內(nèi)存很少配置在2M以上,因此,利用硬件二維加速功能實(shí)現(xiàn)幀切換方法暫時不能應(yīng)用。盡管可以得到2M顯存的PC104plus計(jì)算機(jī),但由于系統(tǒng)主頻低,系統(tǒng)內(nèi)存和顯示內(nèi)存速度慢,經(jīng)過測試,基于幀切換方法只能達(dá)到25frame/s的顯示速度,考慮圖像數(shù)據(jù)輸入所占用的時間,最多也只能保證15frame/s,這樣的更新速度會造成圖像閃爍,是不能接受的。
4 基于VBE的圖像實(shí)時顯示軟件解決方案
基于更改顯示窗口在內(nèi)存中的起始地址的方法可以通過VBE編程接口實(shí)現(xiàn),具體如下:
4.1 目標(biāo)系統(tǒng)
在目標(biāo)系統(tǒng)中,與圖像顯示輸出相關(guān)的部分是嵌入式計(jì)算機(jī)和集成在其上的顯示卡,嵌入式計(jì)算機(jī)為PC104plus結(jié)構(gòu),具有PCI和ISA兩種總線接口,其CPU為Pentium MMXl66,系統(tǒng)內(nèi)存32M,顯示控制芯片為M69000,顯示內(nèi)存2M。
4.2 圖像實(shí)時顯示軟件
圖像實(shí)時顯示軟件由數(shù)據(jù)讀入、顯示輸出和顯示控制三個模塊構(gòu)成,下面只對本文相關(guān)的顯示輸出模塊進(jìn)行介紹。
顯示輸出模塊要實(shí)現(xiàn)在1024×768的高分辨率顯示模式下滾動顯示圖像數(shù)據(jù),同時疊加顯示固定的輔助數(shù)據(jù)字符和網(wǎng)格,并可由操作員通過顯示控制模塊控制是否顯示輔助數(shù)據(jù)字符和網(wǎng)格。在每次圖像滾動時,顯示輸出模塊需要完成以下操作:
(1)更改當(dāng)前讀寫窗口;
(2)將讀入數(shù)據(jù)寫入顯存的相應(yīng)地址;
(3)寫入縱向網(wǎng)格線;
(4)恢復(fù)原橫向網(wǎng)格線上的圖像數(shù)據(jù)(此期間需更改當(dāng)前讀寫窗口);
(5)寫入新的橫向網(wǎng)格線:
(6)恢復(fù)原輔助數(shù)據(jù)字符上的圖像數(shù)據(jù);
(7)寫入新的輔助數(shù)據(jù)字符;
(8)更改顯示窗口在顯存中的起始地址使屏幕滾動;
(9)重復(fù)(1)
4.3 性能
通過測試表明,每次滾動2條線,每秒可滾動120線,若每次滾動4條線,可以達(dá)到240線每秒,在這兩種情況下,圖像滾動時無明顯跳動感。
5 小結(jié)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,VBE標(biāo)準(zhǔn)不斷升級,最高版本是3.0版。同時,也派生出一些子標(biāo)準(zhǔn),如VBE/AF、VBE/AI、VBE/PM等。然而,計(jì)算機(jī)顯示系統(tǒng)的發(fā)展主流是向三維加速、立體顯示等方向發(fā)展,這些主流發(fā)展方向的功能很多都得不到VBE的支持。但在一些特殊應(yīng)用領(lǐng)域,VBE標(biāo)準(zhǔn)仍不失為一種適應(yīng)高環(huán)境要求的動態(tài)圖像實(shí)時顯示系統(tǒng)的較好解決方案。