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