![DOS真彩色模式下真彩色圖像顯示技術(shù)_第1頁](http://file4.renrendoc.com/view/5dd14927749a52584b25523d18f9d6ee/5dd14927749a52584b25523d18f9d6ee1.gif)
![DOS真彩色模式下真彩色圖像顯示技術(shù)_第2頁](http://file4.renrendoc.com/view/5dd14927749a52584b25523d18f9d6ee/5dd14927749a52584b25523d18f9d6ee2.gif)
![DOS真彩色模式下真彩色圖像顯示技術(shù)_第3頁](http://file4.renrendoc.com/view/5dd14927749a52584b25523d18f9d6ee/5dd14927749a52584b25523d18f9d6ee3.gif)
![DOS真彩色模式下真彩色圖像顯示技術(shù)_第4頁](http://file4.renrendoc.com/view/5dd14927749a52584b25523d18f9d6ee/5dd14927749a52584b25523d18f9d6ee4.gif)
![DOS真彩色模式下真彩色圖像顯示技術(shù)_第5頁](http://file4.renrendoc.com/view/5dd14927749a52584b25523d18f9d6ee/5dd14927749a52584b25523d18f9d6ee5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、DOS真彩色形式下真彩色圖像顯示技術(shù)摘要該文通過介紹irrusgd5434卡等幾種高、真彩色卡及其顯示形式,詳述了ds環(huán)境下與硬件無關(guān)的vesa高彩色仿真真彩色、真彩色圖像全息顯示的一般性方法,還提示了24位px真彩色圖像解壓縮快速顯示編程的要點(diǎn)。最后給出語言編程例如。一、高、真彩色顯示卡近年來,順應(yīng)ad、g及多媒體技術(shù)進(jìn)步的要求,許多彩色適配器板卡廠商先后推出性能價格比擬高的一系列高彩色(highlr)和真彩色(truelr)supervga顯示卡。如tridentirsystes公司的tgui94xx、tgui96xx,irruslgi的gd543x、gd544x,tsenglabratr
2、ies的et4000,arklgi的ark1000,、ark2000,s3inrprated的s386xxx等等。它們除了繼續(xù)支持標(biāo)準(zhǔn)vga形式外,都支持16色、256色、32k高彩色、64k高彩色及16.7真彩色vesabis擴(kuò)展形式,版本大多為vesa1.2,卡上具有32k、64k及16.7da,有16位isa、32位vesa、32位pi總線等多種接口,顯示vra配置一般有1、2、4,一般都帶有硬件加速的32位或64位圖形加速引擎(graphisengine),滿足了當(dāng)今386586各種檔次的p機(jī)對更多色彩、更高分辨率的要求。表1整理了市場上常見的gd5434(64位gui)、tgui94
3、40agi(32位gui)和ark2000pv(64位gui)三種pi總線高、真彩色顯示卡的ebis調(diào)用形式號、色彩數(shù)、分辨率、vesa形式對照及其相應(yīng)的vra占用等數(shù)據(jù)。其他支持vesa1.2的顯示卡只要查閱卡附手冊得到e(原始設(shè)備制造商)自定義的高、真彩色形式號或其對應(yīng)的vesa形式號。有些配4vra的顯示卡甚至可支持1280102416色(vesa1.211bh形式)。表1二、高、真彩色編程與256色編程的異同高、真彩色形式編程在寫視頻緩沖區(qū)端口索引號、頁切換方式、置形式號等方面類同擴(kuò)展256色編程,例如,trident的高、真彩色顯示卡,寫視頻緩沖區(qū)端口索引號仍是(0 x34,0 xe
4、)和(0 x35,page2),視頻窗口頁粒度仍是64,頁切換方式仍是64k頁、128k頁任眩不同點(diǎn)在于:高、真彩色形式已經(jīng)不再使用256組da存放器索引號及調(diào)色板概念,而使用像素字長的rgb分量數(shù)據(jù)直接描繪色彩及飽和度,寫視頻緩沖區(qū)映射到vra后由新的64kda或16da將色彩數(shù)據(jù)轉(zhuǎn)為模擬信號送多頻彩色顯示器,256色編程中有關(guān)調(diào)色板的bis中斷全部失去作用;其次,由于用多個字節(jié)表示一個像素,高、真彩色da轉(zhuǎn)換的時間成倍增加,顯示速度過分依賴卡上圖形引擎(graphisengine)的效率,再加上數(shù)據(jù)成倍占用ra或vra,所以顯示速度明顯慢于256色圖像顯示。另外,不同廠商自定義的訪問端口存
5、放器索引號的方式均各不一樣,直接根據(jù)硬件特性的編程必然缺乏通用性。假設(shè)按照這些顯示適配卡都支持的vesa(videeletrnisstandardsassiatin)標(biāo)準(zhǔn)擴(kuò)展bis功能調(diào)用接口編程,從而實(shí)現(xiàn)軟件接口層次上的兼容性,所編程序便可在眾多的supervga卡上運(yùn)行,有關(guān)vesa編程的詳細(xì)資料請查閱有關(guān)書刊。表2是高、真彩色像素的分量構(gòu)造示意,是理解高、真彩色圖像編程的關(guān)鍵。表2三、24位px圖像格式簡介24位px圖像的文件頭同16色、256色的一樣,共128字節(jié),其中每個像素所用的彩色位數(shù)(bit-perpixel)值為8,彩色平面數(shù)(lr-planes)值為3,不再使用調(diào)色板。24
6、位px圖像數(shù)據(jù)的存儲仍采用有限行程壓縮法,但卻是把單個的rgb行作為三個位平面數(shù)據(jù)分別進(jìn)展壓縮存放,第一個位平面由該行所有紅色像素組成;第二個位平面由該行所有綠色像素組成;第三個位平面由該行所有藍(lán)色像素組成,因?yàn)樾谐叹幋a方法并不是總能減小24位復(fù)雜圖像的大小,所以對24位px文件進(jìn)展解碼得到的結(jié)果圖像比原來的小也屬正常。本文所用24位px文件格式符合ppaintbrushversin5標(biāo)準(zhǔn),是從phtstyler1.0的tif圖例轉(zhuǎn)換的。將上述解壓縮的數(shù)據(jù)用于顯示時,需按顯示卡硬件高、真彩色da送色彩信號的順序-紅綠藍(lán)紅綠藍(lán)-重新組織,才能正確地顯示24位真彩色圖像。這一點(diǎn)是最不同于其他用三字
7、節(jié)行程編碼的24位rgb真彩色圖像(如24位tga)。其它格式24位的真彩色圖像文件只是圖像頭處理及解壓數(shù)據(jù)的方式不同,顯示的原理那么完全一樣。文后所附例程作適當(dāng)改變,就可用于24位tif、24位bp、24位tga等圖像文件的顯示。下面就640 x480分辨率介紹32k、64k高彩色、16真彩色形式顯示24位px圖像。四、32k、64k高彩色仿真16真彩色編程現(xiàn)成的64k色圖像很少,彩色掃描儀掃出的多為256色或24位真彩色,許多圖像處理軟件包的圖例也是同樣情形。這里只好用24位真彩色圖像經(jīng)下述圖示過程的位移合并,做成16位的64k高彩色像素字。這種取24位rgb分量高位的方法仿真顯示真彩色圖
8、像,亮堂部分的色彩層次能較好復(fù)原,低暗部分的色彩層次有微小損失,仿真效果很好。讀者也可根據(jù)需要作其他位的取舍(如舍兩頭留中間),以使色彩復(fù)原最小失真。圖圖示中的空格為零。32k高彩色仿真與此類似,只需將綠色分量也右移3位,與紅色、藍(lán)色分量一道做成最高位為零,低15位有效的一個字,送視頻緩沖區(qū)便可。詳細(xì)編程要點(diǎn)如下:1.調(diào)用vesabis4f02h號功能置高彩色圖形形式,成功后調(diào)用vesabis4f01h號功能返回每線字節(jié)數(shù)line-bytes及窗口頁粒度ingran等重要參數(shù);2.讀圖像頭后直接讀圖像數(shù)據(jù),按上述方法轉(zhuǎn)換為一16位字后送視頻緩沖區(qū)始址a000:0000,每一像素一個字,每送一個
9、字到視頻緩沖區(qū),地址偏移量加2;3.640480分辨率下每根掃描線需1280字節(jié),為進(jìn)步顯示速度,由line-bytes預(yù)先算出每根掃描線始址存于addr數(shù)組備查,由于滿屏需600k字節(jié),故編程上仍需考慮切換vra頁的情況。例程根據(jù)各種卡不同形式的窗口頁粒度ingran值,調(diào)用vesabis4f05h號功能訪問硬件分頁存放器實(shí)現(xiàn)64k頁形式切換(此時仍有一根掃描線跨兩頁的情形);4.顯示完畢,調(diào)用vesabis4f02h號功能置形式03h恢復(fù)原文本形式。五、16真彩色編程真彩色編程的關(guān)鍵是要理解圖像數(shù)據(jù)的存放順序及解壓方法,其次注意讀圖像數(shù)據(jù)后按順序要求作轉(zhuǎn)換,否那么圖像色彩失真。其余過程同高
10、彩色形式。詳細(xì)編程要點(diǎn)如下:1.調(diào)用vesabis4f02h號中斷置真彩色圖形形式;成功后調(diào)用vesabis4f01h號功能,返回每線字節(jié)數(shù)line-bytes及窗口頁粒度ingran等重要參數(shù);2.讀圖像文件頭后直接讀圖像數(shù)據(jù),解壓縮后按紅綠藍(lán)順序送視頻緩沖區(qū)始址a000:0000,每一像素三字節(jié),每送一像素到視頻緩沖區(qū),地址偏移量加3;3.在vesa112h形式(64048016.7lr)下,不同顯示適配卡的每線字節(jié)數(shù)是不一樣的,如ark2000pv為1920,gd5434及tgui9440為2048,s386868為2560,但由于使用vesa編程,4f01h號功能能準(zhǔn)確返回每線字節(jié)li
11、ne-bytes值,并預(yù)先算出每條掃描線始址存于addr數(shù)組,可進(jìn)步顯示速度,由于滿屏需900k以上字節(jié),故編程上仍需考慮切換vra頁的情況,換頁機(jī)制同64k色情形;4.有些裝2vra的適配卡,可在64048016.7色情況下使用32位快速格式,如s386868的112h形式及gd5434的76h形式,每線字節(jié)為2560,此時解壓縮后按紅綠藍(lán)及一零字節(jié)順序送視頻緩沖區(qū)始址a000:0000,每一像素4字節(jié),每送一像素到視頻緩沖區(qū),地址偏移量加4,類似特殊情況,例程照此稍作修改便可;5.顯示完畢,調(diào)用vesabis4f02h號功能置形式03h,恢復(fù)原文本形式。六、示范程序以上兩種編程實(shí)現(xiàn)見所附例
12、程,程序在有isa/vesa/pi三種總線插槽的tekhipp12型主板、addx4/100pu、8ra、e1024768、28隔行掃描彩色顯示器、irrusgd5434(2vra)顯示卡、brland+3.1sall形式下編譯通過。但執(zhí)行程序并不依賴所編譯的硬件環(huán)境,曾經(jīng)在裝有1vra的tgui9440、tgui9680、ark2000pv、s386868等vesa部分總線、pi部分總線、甚至isa總線的tvga8900d(也支持vesa1.2標(biāo)準(zhǔn),1以下的e形式號同tgui9440)顯示卡的486586各檔p機(jī)的ds環(huán)境下均獲通過。例如程序?qū)upervga卡vesabis高、真彩色擴(kuò)展形
13、式編程具有一般性。對本文未提到的其它高、真彩色顯示卡,只要其支持vesa標(biāo)準(zhǔn)(versin1.1),不加修改或稍作修改便可使用;對更高分辨率,只要顯示適配卡配2vra,便可作115h、116h、117h形式的編程,例程中只要修改highlr()、truelr()兩函數(shù)中n、的寬高界值和addr的上界。但更重要的是:程序運(yùn)行以前用顯示適配卡所配調(diào)整dra像素時鐘或調(diào)整彩色顯示器掃描頻率的實(shí)用程序,將像素時鐘和掃描頻率調(diào)整到該卡現(xiàn)行分辨率所要求的值上,例如,irrusgd5434卡(2vra)要在117h形式下順利仿真顯示16.7真彩色,須在ds下先執(zhí)行l(wèi)de.exet640=60t800=60t
14、1024=60t1280=0,程序便可順利顯示高彩色圖像。/24位px高、真彩色圖像顯例如程#inludestdi.h#inludestdlib.h#inludeds.h#inludebis.h#inludeni.h#inludei.h#inludee.h#inludefntl.h#inludeall.hunsignedlngdataffset,line-bytes;unsignedlngaddr;unsignedinturpage,ingran,y-res,idth,height;file*fp;typedefstrut/px圖像文件頭格式haranufaturer;harversin;ha
15、rending;harbits-perpixel;intxin,yin;intxax,yax;inthres;intvres;harpalette;harreserved;harlr-planes;intbytes-perline;intpalettetype;harfiller;pxhead;strutdeinfblkunsignedintdeattr;unsignedharinaattr;unsignedharinbattr;unsignedintingran;unsignedintinsize;unsignedintinaseg;unsignedintinbseg;unsignedhar
16、*pagefun;unsignedintbytespersanline;unsignedintxres,yres;unsignedharharx,hary;unsignedharnuberfplanes;unsignedharbitperpixel;unsignedharnuberfbanks;unsignedharerydel;unsignedharbanksize;unsignedharnuberfiagepages;unsignedharreserved;unsignedharx;deinf;vidsetvesade(unsignedintde);vidvesainf(unsignedi
17、ntde);vidap(vid);vidseletpage(unsignedintpage);vidhighlr(vid);vidtruelr(vid);ain()/主函數(shù)pxheadheader;har*filenae,;printf(pleaseenterthe640 x48024bitrgbdepxfilenae:);gets(filenae);if(fp=fpen(filenae,rb)=null)setvesade(0 x03);puts(filereadingerrr);exit(1);fread(har*)header,1,sizef(pxhead),fp);idth=heade
18、r.bytes-perline;height=header.yax-header.yin+1;printf(iageinfratin:idth=%d,height=%d,idth,height);if(header.bits-perpixel=8)(header.lr-planes=3)printf(type:24bitsrgbtruelrs);printf(1.eulatingdisplay16truelriageith64khighlr);printf(2.displayf16truelriage);printf(pressselet1r2:);if(=geth()=1)highlr();
19、setvesade(0 x03);elseif(=2)truelr();setvesade(0 x03);elseprintf(thisisnthigh-lrtrue-lriage!);exit(1);flse(fp);return0;/設(shè)置vesabis擴(kuò)展形式函數(shù)vidsetvesade(unsignedintde)uninregsr;unsignedintsetde=1;r.x.ax=0 x4f02;r.x.bx=de;int86(0 x10,r,r);if(r.x.ax!=0 x4f)setde=0;elsevesainf(de);urpage=0 xffff;return(setde
20、);/返回vesa編程信息函數(shù)vidvesainf(unsignedintde)uninregsr;strutsregssr;r.x.x=de;r.x.ax=0 x4f01;sr.es=fp-seg(deinf);r.x.di=fp-ff(deinf);int86x(0 x10,r,r,sr);ingran=deinf.ingran;line-bytes=deinf.bytespersanline;y-res=deinf.yres;/計算掃描線始址函數(shù)vidap(vid)registerinti,j;fr(i=0;iy-res;i+)addr=(unsignedlng)(i)*line-byt
21、es;/選擇視頻窗口對準(zhǔn)頁函數(shù)vidseletpage(unsignedintpage)uninregsr;if(page!=urpage)r.x.bx=0;r.x.dx=page*64l/ingran;r.x.ax=0 x4f05;int86(0 x10,r,r);urpage=page;/16位高彩色仿真24位px真彩色圖像顯示函數(shù)vidhighlr(vid)registerinti,j;unsignedintred,green,blue;unsignedint*rd,*rdptr;intn,k,nt,ttal;unsignedlngseget;unsignedhar*pi,*p0,*p1
22、,*p2;unsignedharpage,pidata;setvesade(0 x111);ap();seletpage(0);n=in(480,height);=in(640,idth);rd=(unsignedint*)all(2*);rdptr=rd;fr(k=0;k3;k+)pi=(unsignedhar*)all();p0=pi;p1=pi;p2=pi;fseek(fp,0 x80l,seek-set);fr(i=0;in;i+)pi=p0;pi=p1;pi=p2;rd=rdptr;fr(j=0;j3;j+)ttal=0;hile(ttal)nt=1;pidata=fget(fp);
23、if(0 x0=(0 x0pidata)nt=0 x3fpidata;pidata=fget(fp);fr(k=0;knt;k+)*pi+=pidata;else*pi+=pidata;ttal+=nt;pi=p0;pi=p1;pi=p2;fr(j=0;j;j+)red=*pi+3;green=*pi+2;blue=*pi+3;red=red11;green=green5;*rd+=red|green|blue;rd=rdptr;fr(j=0;j2*(-1);j+=2)seget=addr+j;page=seget16;if(seget=65535l)pke(0 xa000,addr+j,*rd+);elseseletpage(page);pke(0 xa000,addr+j,*rd+);geth();free(rdptr);fr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物聯(lián)網(wǎng)技術(shù)在職教實(shí)訓(xùn)室的應(yīng)用前景
- 現(xiàn)代物流配送體系的智能化升級路徑
- 2024年學(xué)年八年級語文上冊 第一單元 愛在人間 第3課《蘆花蕩》說課稿 滬教版五四制
- 2024年四年級英語下冊 Unit 5 What will you do this weekend Lesson 25說課稿 人教精通版(三起)
- Unit 1 Greetings(說課稿)-2024-2025學(xué)年滬教版(五四制)(2024)英語一年級上冊
- 2023二年級數(shù)學(xué)下冊 7 萬以內(nèi)數(shù)的認(rèn)識第2課時 1000以內(nèi)數(shù)的認(rèn)識(2)說課稿 新人教版
- Unit 3 Food Let's Spell(說課稿)-2024-2025學(xué)年人教新起點(diǎn)版英語三年級上冊
- 2024-2025學(xué)年高一地理《宇宙中的地球》說課稿
- 2023六年級數(shù)學(xué)上冊 八 探索樂園單元概述和課時安排說課稿 冀教版
- 2024-2025學(xué)年高中歷史 專題4 雅爾塔體制下的冷戰(zhàn)與和平 3 人類對和平的追求說課稿(含解析)人民版選修3
- 蘇東坡詞十首
- 山東省臨沂市2024年中考物理真題
- 2023年天津市文化和旅游局直屬事業(yè)單位招聘考試真題及答案
- 電力系統(tǒng)分析(郝亮亮)
- 改善護(hù)理服務(wù)行動計劃方案
- 建筑材料包銷協(xié)議書
- 常州市2023-2024學(xué)年八年級上學(xué)期期末地理試卷(含答案解析)
- 道路安全教育課件
- 《工程款糾紛》課件
- 2023年浙江省衢州市中考語文試題(含答案解析)
- 農(nóng)業(yè)與農(nóng)作物種植
評論
0/150
提交評論