999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于改進(jìn)三層緩沖技術(shù)的大圖片處理*

2018-01-26 02:46:08馮偉桓王茂芝曾穎超
關(guān)鍵詞:界面設(shè)備

馮偉桓,王茂芝,曾穎超

(成都理工大學(xué)數(shù)學(xué)地質(zhì)四川省重點(diǎn)實(shí)驗(yàn)室,四川 成都 610059)

1 引言

為解決Windows桌面系統(tǒng)圖片操作時(shí)界面重繪導(dǎo)致的閃屏從而極大降低用戶體驗(yàn)的問(wèn)題,出現(xiàn)了以下圖片處理技術(shù):(1)雙緩沖技術(shù)[1]。其原理是在內(nèi)存中開(kāi)辟一塊與顯示設(shè)備環(huán)境相兼容的內(nèi)存區(qū)域,將處理及繪制圖片等相對(duì)耗時(shí)的操作放在內(nèi)存區(qū)域中,即先在內(nèi)存區(qū)域中處理及繪制圖片,然后將繪制完成的圖形通過(guò)位塊傳輸法[1]拷貝到真正的顯示設(shè)備環(huán)境輸出。基于該原理的圖形處理技術(shù),對(duì)于避免閃屏有非常明顯的效果,并且編程較為簡(jiǎn)單。雙緩沖技術(shù)的加速原理是利用內(nèi)存繪圖操作的高速性[2],從而解決界面閃屏的現(xiàn)象。但是,在實(shí)際使用雙緩沖技術(shù)繪圖過(guò)程中,出現(xiàn)的另一個(gè)費(fèi)時(shí)環(huán)節(jié)是在內(nèi)存兼容位圖和圖形顯示設(shè)備位圖格式之間的轉(zhuǎn)換。為了解決這個(gè)問(wèn)題,從雙緩沖技術(shù)又衍生出了緩存位圖技術(shù)[3]。(2) 緩存位圖技術(shù)[4]。緩存位圖技術(shù)通過(guò)使用GDI+(Graphics Device Interface Plus)圖形設(shè)備接口提供的CachedBitmap類[5],創(chuàng)建一個(gè)使用特定圖形輸出設(shè)備格式來(lái)存儲(chǔ)指定位圖數(shù)據(jù)的緩存位圖對(duì)象,從而節(jié)省格式轉(zhuǎn)換的時(shí)間[5]。(3)圖像分塊處理技術(shù)[6]。圖像分塊處理技術(shù)中最常用的是九宮格圖像分塊技術(shù)[7],其原理是:先將大圖片分割為相同寬高的九小塊,然后再按照需要分別顯示圖像的一塊或者幾塊,從而把顯示大圖片的問(wèn)題轉(zhuǎn)化為顯示小圖片,在根源上解決界面重繪導(dǎo)致的閃屏問(wèn)題[7]。然而,這樣的技術(shù)應(yīng)用十分有限,只適用于不需要完整顯示大圖片的情形[8]。如電子地圖、海洋遙感影像,用戶在特定的時(shí)間,只關(guān)心地圖或影像中的一部分[8],即在特定的時(shí)間,顯示相應(yīng)的圖片分塊。

上述三種典型的圖片處理技術(shù)在處理小型圖片時(shí)都可以取得不錯(cuò)的效果。其中圖像分塊處理技術(shù)在電子地圖和海洋遙感影像等領(lǐng)域也能較完善地解決界面重繪導(dǎo)致的閃屏問(wèn)題。但是,在其它領(lǐng)域處理大圖片或圖像的時(shí)候,直接應(yīng)用圖像分塊處理技術(shù)處理大圖片或圖像則無(wú)法達(dá)到預(yù)期效果。而使用雙緩沖技術(shù)和緩存位圖技術(shù)又會(huì)出現(xiàn)如下問(wèn)題:(1)由于圖片規(guī)模較大,導(dǎo)致創(chuàng)建與顯示設(shè)備環(huán)境兼容的位圖不能清楚地顯示圖片的每一個(gè)細(xì)節(jié);(2)在使用雙緩沖繪圖時(shí),每次重繪都要將所有處理指令執(zhí)行一遍,對(duì)于大圖片時(shí)耗太大[9,10]。為此國(guó)內(nèi)國(guó)防科技大學(xué)的竇強(qiáng)、周興銘及武漢科技大學(xué)的張哲源等人在雙緩沖的基礎(chǔ)上研究了多層緩沖條件下的消息最大響應(yīng)時(shí)間[11],提出多層緩沖技術(shù)構(gòu)想,衍生出目前應(yīng)用較為廣泛的三層緩沖技術(shù)[12],在一定程度上解決了軟件層面因顯示和操作大圖片而引發(fā)的閃屏和系統(tǒng)阻塞等問(wèn)題。

然而,現(xiàn)有傳統(tǒng)的三層緩沖技術(shù)主要針對(duì)繪圖指令過(guò)于復(fù)雜時(shí)只使用雙緩沖技術(shù)無(wú)法滿足需求的情況,因而在雙緩沖的基礎(chǔ)上再添加一層內(nèi)存緩沖,并借此避免出現(xiàn)閃屏的現(xiàn)象[10]。但是,該技術(shù)添加的內(nèi)存緩沖都是與顯示設(shè)備兼容的,并且,對(duì)于每次界面重繪,該技術(shù)仍需要將所有處理指令重新執(zhí)行一遍,在重繪大圖片的時(shí)候仍會(huì)消耗大量的時(shí)間,造成系統(tǒng)出現(xiàn)阻塞。因此,傳統(tǒng)的三層緩沖技術(shù)已無(wú)法滿足大圖片處理需求。本文提出使用改進(jìn)的三層緩沖技術(shù)來(lái)處理和顯示大圖片。

2 改進(jìn)三層緩沖技術(shù)

2.1 算法原理

傳統(tǒng)的三層緩沖技術(shù)處理和顯示大圖片的主要問(wèn)題在于界面重繪時(shí)會(huì)造成系統(tǒng)阻塞,其原因是在載入大圖片的時(shí)候,會(huì)產(chǎn)生一個(gè)明顯的耗時(shí)過(guò)程[4],而在界面重繪的時(shí)候,傳統(tǒng)的三層緩沖會(huì)將所有的指令重新執(zhí)行一遍。本文提出的改進(jìn)三層緩沖技術(shù)算法原理是:在內(nèi)存中開(kāi)辟一塊與大圖片屬性相兼容的內(nèi)存區(qū)域,用于存放大圖片數(shù)據(jù);然后再在內(nèi)存中開(kāi)辟另一塊與顯示設(shè)備環(huán)境相兼容的內(nèi)存區(qū)域,用于執(zhí)行其它的圖形處理指令;最后通過(guò)位塊傳輸法[1]將內(nèi)存中的圖形依次拷貝到真正的顯示設(shè)備環(huán)境輸出。改進(jìn)的三層緩沖技術(shù)與傳統(tǒng)技術(shù)的差異體現(xiàn)在以下幾個(gè)方面:(1)需要分別創(chuàng)建與大圖片屬性相兼容的內(nèi)存區(qū)域和與顯示設(shè)備環(huán)境相兼容的內(nèi)存區(qū)域;(2)在大圖片輸出完成之后僅僅釋放與顯示設(shè)備環(huán)境相兼容的內(nèi)存區(qū)域,保留與圖片屬性相兼容的內(nèi)存區(qū)域;(3)界面需要重繪時(shí),直接使用之前保存的與圖片屬性兼容的內(nèi)存區(qū)域,避免重新載入圖片,從而解決系統(tǒng)阻塞問(wèn)題。

2.2 算法模型

根據(jù)上述算法原理,本文提出改進(jìn)三層緩沖技術(shù),該技術(shù)在首次載入大圖片時(shí)的算法模型如圖1所示。其中,第一層緩沖將大圖片載入到與大圖片相兼容的內(nèi)存位圖中,該過(guò)程會(huì)產(chǎn)生一定耗時(shí)。第二層緩沖將大圖片兼容的內(nèi)存位圖轉(zhuǎn)換到與顯示設(shè)備相兼容的內(nèi)存位圖中,并且讓其它繪圖指令直接在該位圖上執(zhí)行。這層緩沖的功能與雙緩沖的內(nèi)存位圖功能類似。第三層緩沖將內(nèi)存中的圖像按照指定的縮放級(jí)別顯示到屏幕上。

Figure 1 First loaded model of the improved three level buffers technology圖1 改進(jìn)三層緩沖技術(shù)首次載入模型

改進(jìn)三層緩沖技術(shù)在界面重繪時(shí)的算法模型如圖2所示。圖2中第一層和第二層緩沖分別對(duì)應(yīng)首次載入模型圖1中的第二層和第三層緩沖,也就是說(shuō),改進(jìn)的三層緩沖技術(shù)在界面重繪時(shí)只需兩層(而非三層)緩沖支持。重繪界面時(shí),該模型直接使用首次載入大圖片保存下來(lái)的內(nèi)存位圖,避免重新載入大圖片,從而避免了在載入大圖片時(shí)造成的系統(tǒng)阻塞。

Figure 2 User interface redrawing model of the improved three level buffers technology圖2 改進(jìn)三層緩沖技術(shù)界面重繪模型

2.3 算法流程

基于上述算法模型,形成本文提出的改進(jìn)三層緩沖技術(shù)算法流程,如圖3所示。

Figure 3 Algorithm flow chart of the improved three level buffers technology圖3 改進(jìn)三層緩沖技術(shù)算法流程圖

3 應(yīng)用及效果分析

3.1 應(yīng)用案例

在地質(zhì)應(yīng)用中,巖心是礦產(chǎn)資源勘探、地質(zhì)開(kāi)發(fā)研究工作的第一手資料[13]。從鉆孔中取出的巖心樣本,本身包含了豐富的地質(zhì)信息,是地質(zhì)工作者認(rèn)知地下地層沉積、礦物成礦的最直接途徑,也是進(jìn)一步研究地質(zhì)構(gòu)造和成礦預(yù)測(cè)的重要依據(jù)[14]。專業(yè)人員在巖心影像分析基礎(chǔ)上繪制鉆孔柱狀圖,并進(jìn)行巖心信息化處理。由于數(shù)字化鉆孔柱狀圖可達(dá)100 MB,其數(shù)據(jù)容量遠(yuǎn)超普通圖片規(guī)模,使用普通的圖片處理和顯示技術(shù)不能取得良好的效果,為此采用改進(jìn)三層緩沖技術(shù)。基于上述算法流程,給出數(shù)字巖心圖片處理地質(zhì)應(yīng)用的關(guān)鍵解決代碼。

程序運(yùn)行效果如圖4所示,圖4a為圖片整體效果,圖4b為圖片局部放大效果。實(shí)驗(yàn)結(jié)果表明,基于改進(jìn)三層緩沖技術(shù)在對(duì)圖片進(jìn)行操作時(shí),不會(huì)出現(xiàn)系統(tǒng)阻塞現(xiàn)象,并且能夠在放大之后完整顯示圖片的細(xì)節(jié)。

關(guān)鍵代碼如下。

CBitmapmemImg;

if (!memImgDC.m_hDC)

{

memImgDC.CreateCompatibleDC(dc);

}

if (alreadyLoad)

{

// 創(chuàng)建與圖片屬性兼容的內(nèi)存位圖

memImg.CreateCompatibleBitmap(dc,imgMaxWidth,imgMaxHeight);

memImgDC.SelectObject(&memImg);

alreadyLoad= FALSE;

GraphicsdcPen(memImgDC.m_hDC);

dcPen.DrawImage(bkPic,0,0,imgMaxWidth,imgMaxHeight);

}

// 創(chuàng)建與顯示設(shè)備兼容的內(nèi)存位圖

CDCmemBkDC;

CBitmapmemBk;

memBkDC.CreateCompatibleDC(dc);

memBk.CreateCompatibleBitmap(dc,windowSize.Width(),windowSize.Height());

memBkDC.SelectObject(&memBk);

GraphicsdcBrush(memBkDC.m_hDC);

dcBrush.DrawImage(bkImg,-13,-10,windowSize.Width()+26,windowSize.Height()+20);

memBkDC.SetStretchBltMode(HALFTONE);/*防止圖片失真*/

memBkDC.StretchBlt(viewPt.at(scaleIndex).x,

viewPt.at(scaleIndex).y,

viewSize.at(scaleIndex).cx,

viewSize.at(scaleIndex).cy,

&memImgDC,

0,

0,

imgMaxWidth,

imgMaxHeight,

SRCCOPY);

dc→BitBlt(0,0,windowSize.Width(),windowSize.Height(),&memBkDC,0,0,SRCCOPY);

memBk.DeleteObject();

memBkDC.DeleteDC();

程序運(yùn)行效果如圖4所示。

Figure 4 Achieved results by the improved three level buffers technology圖4 改進(jìn)三層緩沖技術(shù)實(shí)現(xiàn)的效果

3.2 性能分析

為進(jìn)一步測(cè)試算法性能,使用傳統(tǒng)三層緩沖技術(shù)和改進(jìn)三層緩沖技術(shù)分別顯示一張大小為98.5 MB的鉆孔柱狀圖,并且分別執(zhí)行一次圖片放大、縮小、上移、下移、左移、右移和復(fù)位的操作,平均時(shí)間如表1所示。

Table 1 Comparison of time consumption betweenthe two image display technologies

從表1可以得到,在大圖片被載入的時(shí)候,兩種技術(shù)載入時(shí)間幾乎相同,但是在執(zhí)行圖片操作時(shí)間上有很大的差異。使用傳統(tǒng)三層緩沖技術(shù),在每一次操作圖片的時(shí)候都需要重新載入圖片,因此操作用時(shí)和載入用時(shí)基本相同。而使用改進(jìn)三層緩沖技術(shù),在操作圖片的時(shí)候不需要重新載入圖片,因此操作用時(shí)大幅減少,從而避免系統(tǒng)阻塞,提高了用戶體驗(yàn)。本文提出的改進(jìn)三層緩沖技術(shù)算法解決了大圖片顯示和重繪時(shí)候的系統(tǒng)阻塞問(wèn)題,因此其總的響應(yīng)時(shí)間遠(yuǎn)遠(yuǎn)短于常規(guī)圖片顯示技術(shù)的。

4 結(jié)束語(yǔ)

針對(duì)數(shù)字巖心鉆孔柱狀圖的處理和顯示應(yīng)用案例,使用本文提出的改進(jìn)三層緩沖技術(shù),取得了非常好的效果。需要進(jìn)一步研究的問(wèn)題主要有:在大圖片載入的時(shí)候,仍然有一個(gè)明顯的耗時(shí)過(guò)程。要解決這個(gè)問(wèn)題,可以使用目前最新的圖形處理單元(GPU)[15],針對(duì)圖片格式在GPU上實(shí)現(xiàn)并行圖片解壓算法,替代傳統(tǒng)在CPU上實(shí)現(xiàn)的串行圖片解壓算法,其加速比可以達(dá)到1 000倍以上[16],從根源上解決大圖片載入造成的系統(tǒng)堵塞問(wèn)題。另一個(gè)需要進(jìn)一步研究的問(wèn)題是:對(duì)于一些由遙感影像轉(zhuǎn)化生成,動(dòng)輒上千兆的超大圖片,普通的臺(tái)式機(jī)已經(jīng)無(wú)法為其創(chuàng)建必須的內(nèi)存緩沖。為解決這個(gè)問(wèn)題,可以結(jié)合圖像切片技術(shù)和硬件加速的方法[17],同時(shí)結(jié)合本文提出的改進(jìn)三層緩沖技術(shù)以達(dá)到目的。

[1] Liu Yu,Wang Ming-hui.A study on high speed drawing of graphics and image in GDI+ based application [J].Advanced Display,2006,69(11):66-69.(in Chinese)

[2] Han Li-na, Shi Hao-su.Dealing with flicker problem about GDI with double buffering[J].Computer Engineering and Design,2006,27(17):3258-3260.(in Chinese)

[3] Olafsen E,Scribner K,David K.MFC Visual C 6.0 programming insider[M].Wang Jian-hua,Chen Yi-fei,Zhang Huan-sheng, Translation.Beijing:China Machine Press,2000:687-692.(in Chinese)

[4] Chand M.Graphics programming with GDI+[M].Boston:Addison Wesley Professional,2003:532-576.

[5] Eric W, Garrett C, Robinson S.GDI+ programming-creating custom controls using C#[M].Birmingham:WROX Press Ltd,2002:432-448.

[6] Campadelli P.Color image segmentation using hopfield net works[J].Image and Vision Computing,1997,15(3):161-166.

[7] Wei Hong-bo,Lü Zhen-su.A survey of image segmentation[J].Journal of Gansu Sciences,2004,16(2):19-24.(in Chinese)

[8] Sonka M,Hlavac V,Boyle R D.Image processing analysis and machine vision[M].Second Edition.Los Angeles:Thomson Learning and PT Press,2003:308-412.

[9] Pratt W K.Digital image processing[M].New Jersey:John Wiley Sons,2009:216-232.

[10] Serban L. GDI+ custom controls with Visual C#2005[M].Birmingham:Packet Publishing,2006:327-342.

[11] Dou Qiang,Zhou Xing-ming.A worst-case response time analysis algorithm of messages with multiple-buffering[J].Acta Electronica Sinica,2002,13(5):23-28.(in Chinese)

[12] Zhang Zhe-yuan,Xiong Qing-guo,Li Wen-xiang.Based on double buffering technology to solve game development in pictures updated problem[J].Information Technology,2011,12(8):12-16.(in Chinese)

[13] Wang Ya,Wu Xiao-hong,Luo Dai-sheng,et al.Design and implementation of core image database management system[J].Computer Knowledge and Technology,2004,20(2):5-8.(in Chinese)

[14] Zhang Jin-chang.Core drilling techniques and their applications in the exploration of mineral resources[J].Exploration Engineering(Rock & Soil Drilling and Tunneling),2009,36(8):1-6.(in Chinese)

[15] Garland M,Grand S L,Nickolls J.Parallel computing experiences with CUDA [J].IEEE Computer Society,2008,27

(8):13-28.

[16] Harada T. Real-time rigid body simulation on GPU[M].Boston:Addison Wesley Professional,2007:611-632.

[17] Hu Xiao-dan,Li Wen,Liu Hai-bo.A fast image region segmentation method based on Gaussion statistical model[J].Journal of Fujian Normal University(Natural Science Edition),2011,26(2):133-135.(in Chinese)

附中文參考文獻(xiàn):

[1] 柳鈺,王明輝.基于GDI+的快速圖形圖像繪制技術(shù)研究[J].現(xiàn)代顯示,2006,69(11):66-69.

[2] 韓麗娜,石昊蘇.使用雙緩存來(lái)解決GDI下的閃爍問(wèn)題[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(17):3258-3260.

[3] Olafsen E,Scribner K,David K.MFC Visual C 6.0編程技術(shù)內(nèi)幕[M].王建華,陳一飛,張煥生,譯.北京:機(jī)械工業(yè)出版社,2000:687-692.

[7] 魏弘博,呂振肅.圖像分割技術(shù)縱覽[J].甘肅科學(xué)學(xué)報(bào),2004,16(2):19-24.

[11] 竇強(qiáng),周興銘.多重緩沖條件下消息最大響應(yīng)時(shí)間算法的研究[J].電子學(xué)報(bào),2002,13(5):23-28.

[12] 張哲源,熊慶國(guó),李文翔.基于雙緩沖技術(shù)解決游戲開(kāi)發(fā)中畫(huà)面更新問(wèn)題[J].信息技術(shù),2011,12(8):12-16.

[13] 王亞,吳曉紅,羅代升,等.巖心圖像數(shù)據(jù)庫(kù)管理系統(tǒng)的規(guī)劃設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2004,20(2):5-8.

[14] 張金昌.地質(zhì)巖心鉆探技術(shù)及其在資源勘探中的應(yīng)用[J].探礦工程(巖土鉆掘工程),2009,36(8):1-6.

[17] 胡小丹,李文,劉海博.基于高斯統(tǒng)計(jì)模型的快速圖像區(qū)域分割方法[J].福建師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,26(2):133-135.

猜你喜歡
界面設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
國(guó)企黨委前置研究的“四個(gè)界面”
基于VB6.0+Access2010開(kāi)發(fā)的設(shè)備管理信息系統(tǒng)
基于MPU6050簡(jiǎn)單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開(kāi)發(fā)方法研究
空間界面
金秋(2017年4期)2017-06-07 08:22:16
電子顯微打開(kāi)材料界面世界之門
人機(jī)交互界面發(fā)展趨勢(shì)研究
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
手機(jī)界面中圖形符號(hào)的發(fā)展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: аⅴ资源中文在线天堂| 99伊人精品| 99热这里只有免费国产精品 | 日本免费福利视频| 日韩在线播放欧美字幕| 欧美在线视频不卡第一页| 色综合久久88| 欧美国产精品拍自| 91午夜福利在线观看| 国产精品免费p区| 国产交换配偶在线视频| 日韩黄色在线| 看看一级毛片| 亚洲码在线中文在线观看| 91免费观看视频| 精品久久国产综合精麻豆| 久久美女精品| 精品久久久久成人码免费动漫| 中文字幕乱码中文乱码51精品| 亚洲欧洲一区二区三区| 国产真实二区一区在线亚洲| 毛片视频网址| 国产精品 欧美激情 在线播放 | 白浆视频在线观看| 亚洲最新地址| 精品少妇人妻一区二区| 国产福利免费在线观看| 午夜影院a级片| 国产精品一区二区不卡的视频| 国产99免费视频| 国产成人欧美| 毛片a级毛片免费观看免下载| 亚洲国产欧美自拍| 欧美一级夜夜爽| lhav亚洲精品| 91麻豆国产视频| 国产va免费精品| 国产色图在线观看| 国产成人福利在线视老湿机| 97se亚洲| 丁香亚洲综合五月天婷婷| 国产成人一区在线播放| 亚洲一区黄色| 亚洲福利视频一区二区| 国产无码在线调教| 久久免费视频6| 香蕉蕉亚亚洲aav综合| 免费国产高清精品一区在线| 亚洲精品va| 日本免费一级视频| 国产农村1级毛片| 欧美日韩精品一区二区视频| 狼友视频国产精品首页| 国产精品无码在线看| 国产精品污视频| 国产精品成人久久| 在线精品亚洲一区二区古装| 欧美日韩中文字幕在线| 国产成人亚洲精品蜜芽影院| 一区二区自拍| 久久精品国产电影| 亚洲国产精品成人久久综合影院| 亚洲成人手机在线| 日本三级欧美三级| 亚洲国产成人麻豆精品| 成人小视频网| 亚洲国产成人久久精品软件| 日韩不卡高清视频| 免费A级毛片无码免费视频| 广东一级毛片| 精品自拍视频在线观看| 99精品福利视频| 欧美综合激情| 日韩中文无码av超清| 国产呦精品一区二区三区网站| 国产欧美日韩另类| 青青国产视频| 国产成人精品高清不卡在线| 深夜福利视频一区二区| 精品少妇三级亚洲| 国产欧美性爱网| 99久久精品国产精品亚洲|