国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于OpenGL的圖像渲染加速方法

2012-04-29 02:31:34李士丹陳星豪
電腦知識(shí)與技術(shù) 2012年1期

李士丹 陳星豪

摘要:針對(duì)圖像渲染速度和CPU、GPU效率問(wèn)題,在分析了基于OpenGL圖像渲染技術(shù)的基礎(chǔ)上,提出了改進(jìn)OpenGL渲染流程,加入CPU監(jiān)控器和任務(wù)分配器模塊,讓GPU和CPU根據(jù)實(shí)際情況共同分擔(dān)繪圖和渲染任務(wù)的構(gòu)想,從而達(dá)到加速圖像渲染速度的目的。經(jīng)實(shí)驗(yàn)證明,改進(jìn)的渲染流程對(duì)圖像處理速度具有優(yōu)化作用,是一種可行的圖像渲染加速方法。

關(guān)鍵詞:圖像渲染;OpenGL;渲染加速;GPU;CPU

中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)01-0194-03

A Method of Speeding Image Rendering based on OpenGL

LI Shi-dan,CHEN Xing-hao

(Guangxi Electric Power Institute of Vocational Training,Nanning 530007,China)

Abstract:Aiming at the issues of image-rendering technoligy based on OpenGL.,this paper proposed a new method which set GPU and CPU together to working for image rendering through reorganizing the OpenGL rendering procedure..the proof of the experimentation show that this method can increasing the speed of the image rendering.

Key words:image-rendering;OpenGL;speeding rendering;GPU;CPU

圖形圖像渲染速度問(wèn)題是計(jì)算機(jī)多媒體應(yīng)用的重點(diǎn)問(wèn)題。傳統(tǒng)的方法中,如喬少杰、王有為文獻(xiàn)[1]提出的方法,是將全部工作負(fù)擔(dān)在CPU上,致使CPU高負(fù)荷運(yùn)行并導(dǎo)致響應(yīng)惡化,從性能和質(zhì)量上均無(wú)法滿足高質(zhì)量實(shí)時(shí)處理的要求。而如NILSSON文獻(xiàn)[2]提出的方法,主要渲染任務(wù)交給GPU完成,CPU只承擔(dān)必要的程序控制,雖然使渲染速度和渲染質(zhì)量都得到了優(yōu)化,但是CPU的資源利用率比較低。

在現(xiàn)代的計(jì)算機(jī)應(yīng)用技術(shù)中(特別是影視處理、虛擬現(xiàn)實(shí)等領(lǐng)域),圖形的處理變得越來(lái)越重要,需要一個(gè)專門用于處理圖形的處理器,這就是GPU。GPU是相對(duì)于CPU的一個(gè)概念,GPU英文全稱Graphic Processing Unit,中文翻譯為“圖形處理器”。借助GPU實(shí)現(xiàn)的各種高級(jí)數(shù)學(xué)計(jì)算可在像素級(jí)別完成圖像處理工作,即可滿足實(shí)時(shí)響應(yīng)的需要,也減輕了CPU的負(fù)擔(dān),使CPU在相同時(shí)間內(nèi)執(zhí)行更多的通用程序控制。其中主要的應(yīng)用是科學(xué)計(jì)算可視化,即基于CPU和GPU明確任務(wù)分工實(shí)現(xiàn)的科學(xué)計(jì)算實(shí)時(shí)可視化[3]。CPU處理得到的數(shù)據(jù)直接輸出到GPU繪圖渲染核心,渲染繪制后輸出到屏幕。在不損失CPU性能的前提下獲得對(duì)當(dāng)前處理結(jié)果的動(dòng)態(tài)觀測(cè)。圖形渲染在天氣預(yù)報(bào)、電子軌道計(jì)算、地球磁場(chǎng)模擬、核試驗(yàn)、DNA分子排布等大規(guī)??茖W(xué)計(jì)算任務(wù)中扮演著重要的角色。

在喬少杰等人提出的重組渲染流程的基礎(chǔ)上,加入了CPU監(jiān)控器和任務(wù)分配器模塊,搭建高速特效渲染通道的解決方案:使用OpenGL硬件加速的繪圖引擎繪制圖形,CPU除了必要的程序控制,還承擔(dān)一定的渲染任務(wù),從而能加速渲染速度,提高CPU的利用率。

1技術(shù)背景

1.1開發(fā)框架

Mac OS X Tiger操作系統(tǒng)為圖形圖像處理提供系統(tǒng)內(nèi)嵌處理引擎支持,同時(shí)對(duì)開發(fā)人員開放相應(yīng)的編程框架支持[5]。Cocoa是Mac OS X應(yīng)用程序開發(fā)框架代號(hào),它使用面向?qū)ο蠹夹g(shù),封裝全部系統(tǒng)核心架構(gòu)技術(shù)的實(shí)現(xiàn),為應(yīng)用程序開發(fā)提供完整可靠,可擴(kuò)展可維護(hù)的接口。本文的測(cè)試程序在Cocoa框架內(nèi)實(shí)現(xiàn)。

1.2圖形繪制系統(tǒng)

Quartz是Mac OS X核心架構(gòu)圖形子系統(tǒng)部分代號(hào),它負(fù)責(zé)Mac OS X GUI繪圖的核心任務(wù),它由用于繪圖的Quartz 2D和用于合成最終屏幕輸出的Quartz Compositor組成[4]。

Quartz基于工業(yè)標(biāo)準(zhǔn)圖形庫(kù)OpenGL操縱CPU,使用OpenGL紋理渲染技術(shù)將輸出至屏幕的圖形元素合成基于PDF為成像模型基礎(chǔ)的PostScript文本,提供鋸齒平滑和高范圍縮放等高級(jí)圖形渲染能力[6]。Mac OS X v10.4 Tiger將Quartz技術(shù)升級(jí)為Quartz Ex? treme:Quartz 2D和Quartz Compositor均通過(guò)OpenGL獲得硬件加速支持:Quartz 2D和Quartz Compositor只保留PostScript繪圖指令,將需要組合的不同窗口繪制結(jié)果作為圖像紋理交付CPU 2D繪圖單元加速,在幀緩沖區(qū)合成最終屏幕視圖輸出到監(jiān)視器,實(shí)現(xiàn)了完全借助GPU加速在圖形加速卡中合成屏幕輸出。

1.3圖像特效引擎系統(tǒng)

在原有圖形架構(gòu)基礎(chǔ)上,M v10.4Tiger引入使用Core Image Kemel Language語(yǔ)言構(gòu)建的圖像特效渲染引擎CoreImage。其利用GPU像素著色器處理平面像素變換,實(shí)現(xiàn)像素級(jí)別的高速變換與高精度浮點(diǎn)數(shù)據(jù)處理。通過(guò)可編程GPU消除渲染時(shí)間延遲,利用GPU矢量引擎和超標(biāo)量流水線優(yōu)化CPU和GPU之間的數(shù)據(jù)通路。

Mac OS X v10.4 Tiger實(shí)現(xiàn)從圖形繪制和特效渲染的全面硬件加速;Quartz Extreme利用硬件合成圖像。

2渲染流程

2.1 CPU監(jiān)控器

在圖形處理過(guò)程當(dāng)中,CPU要么只承擔(dān)基本的控制任務(wù),要么就不加限制地承擔(dān)計(jì)算和渲染等繁重任務(wù),這就導(dǎo)致CPU利用率要么很低要么很高,這不但影響PC系統(tǒng)的性能,而且對(duì)圖形處理也有很大的影響。

針對(duì)此種情況,并分析了傳統(tǒng)的做法,本文提出了CPU監(jiān)控器的概念,其主要功能是實(shí)時(shí)監(jiān)測(cè)CPU的利用率,并返回精確的百分比數(shù)。具體的任務(wù)是:每隔一個(gè)時(shí)間值,探測(cè)CPU的占用率,并返回一個(gè)精確的百分值。具體流程如圖1所示。

2.2任務(wù)分配器

文獻(xiàn)[2]中提出了重組OpenGL渲染流程實(shí)現(xiàn)加速圖形繪制和圖像渲染結(jié)合的管道化方法,目的是實(shí)現(xiàn)GPU完全承擔(dān)繪圖和渲染加速,整個(gè)流程無(wú)需CPU參與,CPU占用率只占很少的比值,這在某一程度上優(yōu)化了應(yīng)用程序的響應(yīng)能力,也保障了系統(tǒng)不會(huì)因?yàn)殇秩救蝿?wù)繁重而導(dǎo)致無(wú)法流暢運(yùn)行。但是由于所有繪圖以及渲染任務(wù)都有GPU完成,而CPU卻留有很多的利用空間,從圖形處理這一特殊角度來(lái)看,資源利用率不高,處理速率還可以再提高。所以,本文提出了任務(wù)分配器的概念,通過(guò)任務(wù)分配器,在CPU占用率未達(dá)到一個(gè)臨界值的情況下,適當(dāng)?shù)胤峙浣oCPU一定的繪圖以及渲染任務(wù),從而讓CPU和GPU同時(shí)為圖形處理服務(wù),將有利于提升圖像的渲染速度。

具體的做法是:任務(wù)分配器讀取CPU監(jiān)控器返回的結(jié)果,判斷此結(jié)果是否達(dá)到某一臨界值,如果為真,則放棄分配任務(wù)到CPU;如果為假,則分配一定的繪圖以及渲染任務(wù)到CPU。

流程如圖2所示。

2.3渲染流程

2.3.1原先的流程

文獻(xiàn)[2]以基于OpenGL繪圖指令合成的可視化動(dòng)畫生成工具Quartz Composer為創(chuàng)作素材,借助Quartz 2D、OpenGL、Core Video等技術(shù)合成豐富多彩的視覺(jué)特效,將OpenGL繪圖指令組合成.qtz格式的文件導(dǎo)出,作為圖像源,并使用基于Core Video的QuickTime引擎;使用QCRenderer類執(zhí)行繪圖指令;基于線程調(diào)度的實(shí)時(shí)制圖方法。采用了鏈?zhǔn)降奶匦НB加方法---核心濾鏡引擎,還采用了基于OpenGL加速圖像輸出方法。其應(yīng)用程序流程如圖3所示。

2.3.2改進(jìn)的流程

在原有流程的基礎(chǔ)上,對(duì)某些任務(wù)量比較繁重的環(huán)節(jié)調(diào)用CPU監(jiān)控器以及任務(wù)分配器,保證CPU臨界值之內(nèi)極力分擔(dān)圖形處理過(guò)程中的繪圖以及渲染任務(wù),從而達(dá)到加速的效果。具體流程如圖4所示。

3實(shí)驗(yàn)分析

為了便于比較實(shí)驗(yàn)結(jié)果,本文實(shí)驗(yàn)平臺(tái)以及實(shí)驗(yàn)素材均采用與文獻(xiàn)

[1]的實(shí)驗(yàn)平臺(tái)一致。

實(shí)驗(yàn)平臺(tái)所用的計(jì)算機(jī)型號(hào)為Mac Pro:Intel Xeon 5100處理器,1GB DDR2 ECC內(nèi)存,Mac OS X v10.4.9 Tiger操作系統(tǒng)。圖形加速卡為NVIDIA GeForce 7300 GT 256MB GDDR2 SDRAM。OpenGL引擎使用NVIDIA OpenGL引擎使用NVIDIA OpenGL硬件擴(kuò)展和Apple OpenGL軟件實(shí)現(xiàn)。

為了查看CPU在圖形處理過(guò)程當(dāng)中承擔(dān)任務(wù)的情況,采集了CPU監(jiān)控器的監(jiān)控一覽表,如表1所示。

從表1可以看出,從圖形處理開始,CPU處于正常狀態(tài),之后一直到7分38秒圖形處理結(jié)束之前,CPU處于一種臨界值(50%)內(nèi)的利用率,說(shuō)明CPU分擔(dān)GPU的圖形繪制以及渲染任務(wù),圖形處理結(jié)束之后,CPU回歸正常狀態(tài)。

為了分析應(yīng)用程序運(yùn)行過(guò)程的OpenGL代碼執(zhí)行時(shí)間,使用OpenGL Driver Monitor工具統(tǒng)計(jì)OpenGL驅(qū)動(dòng)指令與CPU指令對(duì)圖形加速卡的使用情況,表2、表3分別代表文獻(xiàn)[1]的結(jié)果和采用改進(jìn)流程后的結(jié)果。

從表2和表3的統(tǒng)計(jì)結(jié)果分析得出,采用改進(jìn)的流程OpenGL執(zhí)行的時(shí)間短,說(shuō)明利用CPU分擔(dān)圖形處理任務(wù)在速度上得到了優(yōu)化。

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

針對(duì)喬少杰等人所提出的文獻(xiàn)內(nèi)容進(jìn)行分析,在重新調(diào)整渲染流程的基礎(chǔ)上,加上了CPU監(jiān)控器和任務(wù)分配器,對(duì)整個(gè)作業(yè)流程進(jìn)行改進(jìn),讓CPU在其一定的占用率臨界值內(nèi)分擔(dān)GPU所承擔(dān)的繪圖和渲染任務(wù),保證系統(tǒng)性能不受影響的前提下,為圖形處理服務(wù)。從實(shí)驗(yàn)結(jié)果上分析可以看出,改進(jìn)的流程對(duì)渲染速度具有一定的優(yōu)化作用,達(dá)到圖像渲染加速的目的。

參考文獻(xiàn):

[1]喬少杰,王有為.基于OpenGL的快速圖像渲染方法[J].計(jì)算機(jī)應(yīng)用研究,2008,5(5):1589-1595.

[2] NILSSON P Hardware accelerated image compositing using OpenGL[C]//Proc of Usenix04 Annual Technical Conference.Santiago:Freenix Track.2004.

[3] NVIDIA Inc.NVIDIA OpenGL extension specifications[EB/OL]. http://developer.nvidia.com/object/nvidia—.opengl—.specs.htm1.

[4] Apple Inc.Apple OpenGL extensions specification[EB/OL].http://developer.apple.com/graphicsimaging/0pe“gL/extensi0ns.htm1.

[5] GELPHMAN D,LADEN B.Programming with Quartz:2D and PDF graphics in Mac OS X[M].San Francisco:Morgan Kaufmann Publi. sher,2005.

[6] DALRYMPLE M,HILLEGASS A.Advanced Mac OS X programming [M].2nd ed.[S.1.]:Big Nerd Ranch Publisher,2005.

乌恰县| 二连浩特市| 天峨县| 灵台县| 花垣县| 兴隆县| 沙坪坝区| 丹巴县| 武乡县| 临沭县| 开远市| 沙河市| 呼玛县| 济阳县| 石狮市| 年辖:市辖区| 行唐县| 繁峙县| 金坛市| 孝义市| 西和县| 习水县| 景德镇市| 浠水县| 东台市| 体育| 丁青县| 柳州市| 榆社县| 保靖县| 霍林郭勒市| 鄯善县| 卢氏县| 大埔区| 淄博市| 那曲县| 青海省| 台北县| 安康市| 紫云| 太原市|