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

基于改進三層緩沖技術的大圖片處理*

2018-01-26 02:46:08馮偉桓王茂芝曾穎超
計算機工程與科學 2018年1期
關鍵詞:界面設備

馮偉桓,王茂芝,曾穎超

(成都理工大學數學地質四川省重點實驗室,四川 成都 610059)

1 引言

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

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

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

2 改進三層緩沖技術

2.1 算法原理

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

2.2 算法模型

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

Figure 1 First loaded model of the improved three level buffers technology圖1 改進三層緩沖技術首次載入模型

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

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

2.3 算法流程

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

Figure 3 Algorithm flow chart of the improved three level buffers technology圖3 改進三層緩沖技術算法流程圖

3 應用及效果分析

3.1 應用案例

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

程序運行效果如圖4所示,圖4a為圖片整體效果,圖4b為圖片局部放大效果。實驗結果表明,基于改進三層緩沖技術在對圖片進行操作時,不會出現系統阻塞現象,并且能夠在放大之后完整顯示圖片的細節。

關鍵代碼如下。

CBitmapmemImg;

if (!memImgDC.m_hDC)

{

memImgDC.CreateCompatibleDC(dc);

}

if (alreadyLoad)

{

// 創建與圖片屬性兼容的內存位圖

memImg.CreateCompatibleBitmap(dc,imgMaxWidth,imgMaxHeight);

memImgDC.SelectObject(&memImg);

alreadyLoad= FALSE;

GraphicsdcPen(memImgDC.m_hDC);

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

}

// 創建與顯示設備兼容的內存位圖

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();

程序運行效果如圖4所示。

Figure 4 Achieved results by the improved three level buffers technology圖4 改進三層緩沖技術實現的效果

3.2 性能分析

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

Table 1 Comparison of time consumption betweenthe two image display technologies

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

4 結束語

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

[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)

附中文參考文獻:

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

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

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

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

[11] 竇強,周興銘.多重緩沖條件下消息最大響應時間算法的研究[J].電子學報,2002,13(5):23-28.

[12] 張哲源,熊慶國,李文翔.基于雙緩沖技術解決游戲開發中畫面更新問題[J].信息技術,2011,12(8):12-16.

[13] 王亞,吳曉紅,羅代升,等.巖心圖像數據庫管理系統的規劃設計與實現[J].電腦知識與技術,2004,20(2):5-8.

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

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

猜你喜歡
界面設備
諧響應分析在設備減振中的應用
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
空間界面
金秋(2017年4期)2017-06-07 08:22:16
電子顯微打開材料界面世界之門
人機交互界面發展趨勢研究
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: аⅴ资源中文在线天堂| 老色鬼欧美精品| 中文字幕无码av专区久久| 国产一级毛片高清完整视频版| 人妻丰满熟妇AV无码区| 久久精品国产一区二区小说| 91亚洲视频下载| 欧美成人看片一区二区三区 | 免费一级毛片在线观看| 国产成年无码AⅤ片在线| a天堂视频| 99青青青精品视频在线| 福利在线不卡一区| 久久精品国产亚洲AV忘忧草18| 国产精品视频猛进猛出| 国产一级毛片网站| 91区国产福利在线观看午夜| 亚洲a免费| 亚洲免费黄色网| 精品无码国产一区二区三区AV| 色婷婷综合在线| 久久 午夜福利 张柏芝| 人妻少妇久久久久久97人妻| 久久国语对白| 欧美不卡视频在线观看| 久久精品欧美一区二区| 久久九九热视频| 亚洲日韩国产精品无码专区| 日韩精品欧美国产在线| 毛片在线播放a| 国模私拍一区二区三区| 亚洲成人动漫在线| 在线播放真实国产乱子伦| 亚洲美女高潮久久久久久久| 99精品国产电影| 婷婷亚洲视频| 亚洲香蕉久久| 精品国产免费第一区二区三区日韩| 日韩精品免费一线在线观看| 成人精品亚洲| 成人午夜久久| 精品第一国产综合精品Aⅴ| 久久网综合| 超清人妻系列无码专区| 亚洲综合香蕉| 午夜欧美理论2019理论| 91精品免费久久久| 爆乳熟妇一区二区三区| 亚洲三级成人| 91娇喘视频| 中文无码伦av中文字幕| 第九色区aⅴ天堂久久香| 日韩AV手机在线观看蜜芽| 午夜影院a级片| 白浆视频在线观看| 青青草原国产av福利网站| 久久国产精品夜色| 国产91视频观看| 欧美日本中文| 亚洲无码精品在线播放| 日本一区二区三区精品国产| 夜夜操国产| 久久77777| 中文字幕 日韩 欧美| 亚洲国产91人成在线| 久爱午夜精品免费视频| 国产经典三级在线| AV无码一区二区三区四区| 色老头综合网| 精品一区二区三区四区五区| 国产黑人在线| 国产精彩视频在线观看| 波多野结衣爽到高潮漏水大喷| 国产精品色婷婷在线观看| 性喷潮久久久久久久久| 国产在线啪| 亚洲综合色婷婷| 无码高潮喷水在线观看| 国产亚洲视频中文字幕视频| 99热免费在线| 毛片在线播放网址| 国产高清不卡视频|