資源描述:
《dos真彩色模式下真彩色圖像顯示技術(shù) 》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、DOS真彩色模式下真彩色圖像顯示技術(shù)摘要該文通過(guò)介紹CirrusGD5434卡等幾種高、真彩色卡及其顯示模式,詳述了DOS環(huán)境下與硬件無(wú)關(guān)的VESA高彩色仿真真彩色、真彩色圖像全息顯示的一般性方法,還提示了24位PCX真彩色圖像解壓縮快速顯示編程的要點(diǎn)。最后給出C語(yǔ)言編程示例。一、高、真彩色顯示卡近年來(lái),順應(yīng)CAD、CG及多媒體技術(shù)進(jìn)步的要求,許多彩色適配器板卡廠商先后推出性能價(jià)格比較高的一系列高彩色(HighColor)和真彩色(TrueColor)SuperVGA顯示卡。如TridentMicrosystems公司的TGUI
2、94XX、TGUI96XX,CirrusLogic的GD543X、GD544X,TsengLaboratories的ET4000,ARKLogic的ARK1000,、ARK2000,S3Incorporated的S386CXXX等等。它們除了繼續(xù)支持標(biāo)準(zhǔn)VGA模式外,都支持16色、256色、32K高彩色、64K高彩色及16.7M真彩色VESABIOS擴(kuò)展模式,版本大多為VESA1.2,卡上具有32K、64K及16.7MDAC,有16位ISA、32位VESA、32位PCI總線等多種接口,顯示VRAM配置一般有1M、2M、4M,一般
3、都帶有硬件加速的32位或64位圖形加速引擎(GraphicsEngine),滿足了當(dāng)今386~586各種檔次的PC機(jī)對(duì)更多色彩、更高分辨率的要求。表1整理了市場(chǎng)上常見(jiàn)的GD5434(64位GUI)、TGUI9440AGi(32位GUI)和ARK2000PV(64位GUI)三種PCI總線高、真彩色顯示卡的OEMBIOS調(diào)用模式號(hào)、色彩數(shù)、分辨率、VESA模式對(duì)照及其相應(yīng)的VRAM占用等數(shù)據(jù)。其他支持VESA1.2的顯示卡只要查閱卡附手冊(cè)得到OEM(原始設(shè)備制造商)自定義的高、真彩色模式號(hào)或其對(duì)應(yīng)的VESA模式號(hào)。有些配4MVRAM
4、的顯示卡甚至可支持1280×102416M色(VESA1.211BH模式)。表1二、高、真彩色編程與256色編程的異同高、真彩色模式編程在寫視頻緩沖區(qū)端口索引號(hào)、頁(yè)切換方式、置模式號(hào)等方面類同擴(kuò)展256色編程,例如,Trident的高、真彩色顯示卡,寫視頻緩沖區(qū)端口索引號(hào)仍是(0x3C4,0xE)和(0x3C5,page),視頻窗口頁(yè)粒度仍是64,頁(yè)切換方式仍是64K頁(yè)、128K頁(yè)任選。不同點(diǎn)在于:高、真彩色模式已經(jīng)不再使用256組DAC寄存器索引號(hào)及調(diào)色板概念,而使用像素字長(zhǎng)的RGB分量數(shù)據(jù)直接描述色彩及飽和度,寫視頻緩沖區(qū)
5、映射到VRAM后由新的64KDAC或16MDAC將色彩數(shù)據(jù)轉(zhuǎn)為模擬信號(hào)送多頻彩色顯示器,256色編程中有關(guān)調(diào)色板的BIOS中斷全部失去作用;其次,由于用多個(gè)字節(jié)表示一個(gè)像素,高、真彩色DAC轉(zhuǎn)換的時(shí)間成倍增加,顯示速度過(guò)分依賴卡上圖形引擎(GraphicsEngine)的效率,再加上數(shù)據(jù)成倍占用RAM或VRAM,所以顯示速度明顯慢于256色圖像顯示。另外,不同廠商自定義的訪問(wèn)端口寄存器索引號(hào)的方式均各不相同,直接根據(jù)硬件特性的編程必然缺乏通用性。若按照這些顯示適配卡都支持的VESA(VideoElectronicsStandar
6、dsAssociation)標(biāo)準(zhǔn)擴(kuò)展BIOS功能調(diào)用接口編程,從而實(shí)現(xiàn)軟件接口層次上的兼容性,所編程序便可在眾多的SuperVGA卡上運(yùn)行,有關(guān)VESA編程的詳細(xì)資料請(qǐng)查閱有關(guān)書刊。表2是高、真彩色像素的分量結(jié)構(gòu)示意,是理解高、真彩色圖像編程的關(guān)鍵。表2三、24位PCX圖像格式簡(jiǎn)介24位PCX圖像的文件頭同16色、256色的一樣,共128字節(jié),其中每個(gè)像素所用的彩色位數(shù)(bit-perpixel)值為8,彩色平面數(shù)(color-planes)值為3,不再使用調(diào)色板。24位PCX圖像數(shù)據(jù)的存儲(chǔ)仍采用有限行程壓縮法,但卻是把單個(gè)的R
7、GB行作為三個(gè)位平面數(shù)據(jù)分別進(jìn)行壓縮存放,第一個(gè)位平面由該行所有紅色像素組成;第二個(gè)位平面由該行所有綠色像素組成;第三個(gè)位平面由該行所有藍(lán)色像素組成,因?yàn)樾谐叹幋a方法并不是總能減小24位復(fù)雜圖像的大小,所以對(duì)24位PCX文件進(jìn)行解碼得到的結(jié)果圖像比原來(lái)的小也屬正常。本文所用24位PCX文件格式符合PCPaintbrushVersion5標(biāo)準(zhǔn),是從PhotoStyler1.0的TIF圖例轉(zhuǎn)換的。將上述解壓縮的數(shù)據(jù)用于顯示時(shí),需按顯示卡硬件高、真彩色DAC送色彩信號(hào)的順序--紅綠藍(lán)紅綠藍(lán)......--重新組織,才能正確地顯示24位
8、真彩色圖像。這一點(diǎn)是最不同于其他用三字節(jié)行程編碼的24位RGB真彩色圖像(如24位TGA)。其它格式24位的真彩色圖像文件只是圖像頭處理及解壓數(shù)據(jù)的方式不同,顯示的原理則完全相同。文后所附例程作適當(dāng)改變,就可用于24位TIF、24位BMP、24位TGA等圖像文件