亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2018-01-26 02:46:08馮偉桓王茂芝曾穎超
        關(guān)鍵詞:分塊巖心內(nèi)存

        馮偉桓,王茂芝,曾穎超

        (成都理工大學(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)境輸出?;谠撛淼膱D形處理技術(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類(lèi)[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)存位圖功能類(lè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]。專(zhuān)業(yè)人員在巖心影像分析基礎(chǔ)上繪制鉆孔柱狀圖,并進(jìn)行巖心信息化處理。由于數(shù)字化鉆孔柱狀圖可達(dá)100 MB,其數(shù)據(jù)容量遠(yuǎn)超普通圖片規(guī)模,使用普通的圖片處理和顯示技術(shù)不能取得良好的效果,為此采用改進(jìn)三層緩沖技術(shù)?;谏鲜鏊惴鞒蹋o出數(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.

        猜你喜歡
        分塊巖心內(nèi)存
        Osteotomized folded scapular tip free flap for complex midfacial reconstruction
        分塊矩陣在線性代數(shù)中的應(yīng)用
        “春夏秋冬”的內(nèi)存
        一種頁(yè)巖巖心資料的保存方法
        化工管理(2017年23期)2017-09-11 14:14:22
        Acellular allogeneic nerve grafting combined with bone marrow mesenchymal stem cell transplantation for the repair of long-segment sciatic nerve defects: biomechanics and validation of mathematical models
        反三角分塊矩陣Drazin逆新的表示
        基于自適應(yīng)中值濾波的分塊壓縮感知人臉識(shí)別
        基于多分辨率半邊的分塊LOD模型無(wú)縫表達(dá)
        長(zhǎng)巖心注CO2氣水交替驅(qū)試驗(yàn)?zāi)M研究
        基于內(nèi)存的地理信息訪問(wèn)技術(shù)
        欧美大屁股xxxx高潮喷水| 亚洲精品久久久中文字| 97久久综合精品国产丝袜长腿| 国产高清成人在线观看视频| 超清精品丝袜国产自在线拍| 亚洲午夜精品a区| 日韩在线精品视频免费| 极品人妻少妇av免费久久| 国产探花在线精品一区二区| 专区国产精品第一页| 久久99精品免费国产| 久久午夜精品人妻一区二区三区| 亚洲欧美aⅴ在线资源| 美国黄色片一区二区三区| 日本一曲二曲三曲在线| 加勒比色老久久爱综合网| 丰满人妻av无码一区二区三区| 国产精品丝袜美女在线观看| 少妇被猛烈进入中文字幕| 日韩女同一区二区三区久久| 男女边摸边吃奶边做视频韩国| 无码人妻久久一区二区三区app| 欧美一级在线全免费| 日韩美女人妻一区二区三区| 人人妻人人澡人人爽人人精品浪潮| 全球av集中精品导航福利| 99综合精品久久| 亚洲av日韩专区在线观看| 亚洲欧美日韩成人高清在线一区| 日韩在线第二页| 女同性恋看女女av吗| 日韩夜夜高潮夜夜爽无码 | 国产精品反差婊在线观看| 日韩精品久久午夜夜伦鲁鲁| 北条麻妃国产九九九精品视频| 人妻少妇精品无码专区二| 日韩亚洲在线一区二区| 国产精品亚洲片在线观看不卡| 国产精品乱码在线观看| 国产一区二区精品av| 99国产精品久久99久久久|