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