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

?

一種基于圖像旋轉(zhuǎn)顯示的DDR2高效存儲方法

2016-02-24 10:41劉承禹徐曉梅
關(guān)鍵詞:分塊順時針利用率

劉承禹,田 澤,劉 浩,徐曉梅

(1.中國航空計(jì)算技術(shù)研究所,陜西 西安 710068;2.集成電路與微系統(tǒng)設(shè)計(jì)航空科技重點(diǎn)試驗(yàn)室,陜西 西安 710068)

一種基于圖像旋轉(zhuǎn)顯示的DDR2高效存儲方法

劉承禹1,2,田 澤1,2,劉 浩1,2,徐曉梅1,2

(1.中國航空計(jì)算技術(shù)研究所,陜西 西安 710068;2.集成電路與微系統(tǒng)設(shè)計(jì)航空科技重點(diǎn)試驗(yàn)室,陜西 西安 710068)

圖像旋轉(zhuǎn)是一種常用的數(shù)字圖像處理技術(shù),目前已廣泛應(yīng)用于各領(lǐng)域。在圖像系統(tǒng)中,通常采用DDR2作為系統(tǒng)的顯示緩存。圖像顯示系統(tǒng)通常采取從左向右、從上到下的掃描刷新方式,圖像數(shù)據(jù)也以同樣的方式進(jìn)行存儲,而這種圖像數(shù)據(jù)的常規(guī)存儲方法在大分辨率圖像旋轉(zhuǎn)顯示時難以滿足系統(tǒng)對DDR2的帶寬需求。為解決這一問題,圖像數(shù)據(jù)必須采用高效的存儲方法。以圖像旋轉(zhuǎn)顯示原理為依據(jù),對比常規(guī)存儲方法,重點(diǎn)闡述了分塊存儲方法及其效率,最后結(jié)合項(xiàng)目進(jìn)行了FPGA原型驗(yàn)證。驗(yàn)證結(jié)果表明,分塊存儲方法提高了DDR2的帶寬利用率,能夠高效滿足系統(tǒng)的旋轉(zhuǎn)顯示需求,解決了常規(guī)存儲方法難以滿足大分辨率圖像旋轉(zhuǎn)顯示的問題。

圖像旋轉(zhuǎn)顯示;存儲;帶寬利用率;效率

0 引 言

圖像旋轉(zhuǎn)是一種常用的數(shù)字圖像處理技術(shù)[1],目前已廣泛應(yīng)用于各領(lǐng)域。絕大多數(shù)顯示系統(tǒng)采取從左至右、從上到下的掃描方式[2-3],圖像數(shù)據(jù)也是以同樣的方式進(jìn)行存儲。旋轉(zhuǎn)顯示能夠使圖像旋轉(zhuǎn)90°、180°或270°后顯示在LCD屏幕上[4-6]。

目前圖像顯示系統(tǒng)均采用DDR2(或DDR3,文中以DDR2為例,DDR3原理類似)作為系統(tǒng)顯示緩存[7]。由于圖像數(shù)據(jù)在DDR2中的常規(guī)存儲方式為從左至右、從上到下存儲,與顯示系統(tǒng)的掃描方式一致,因此,在非旋轉(zhuǎn)顯示時,系統(tǒng)對DDR2按行從左至右、從上到下讀取圖像數(shù)據(jù),此時DDR2的帶寬利用率最高[8-9]。但是,在90°或270°旋轉(zhuǎn)顯示時,系統(tǒng)需要對DDR2按列讀取圖像數(shù)據(jù),此時DDR2的帶寬利用率最低[10-11]。在大分辨率圖像旋轉(zhuǎn)顯示時,甚至無法滿足系統(tǒng)需要。為了提高DDR2帶寬利用率,滿足系統(tǒng)對大分辨率圖像的旋轉(zhuǎn)顯示需求,必須采用高效的DDR2存儲方法。

文中結(jié)合某GPU具體項(xiàng)目實(shí)踐,從提高DDR2帶寬利用率角度出發(fā),設(shè)計(jì)了一種高效的DDR2存儲方法。該方法可以同時滿足顯示系統(tǒng)對大分辨率圖像的正常和旋轉(zhuǎn)顯示需求。

1 圖像旋轉(zhuǎn)顯示原理

圖像顯示系統(tǒng)的結(jié)構(gòu)如圖1所示。

圖1 圖像顯示系統(tǒng)結(jié)構(gòu)

系統(tǒng)以DDR2存儲器為系統(tǒng)的顯示緩存。圖像處理引擎將繪制好的圖像通過DDR2后端接口和DDR2控制器緩存在DDR2存儲器中。圖像顯示輸出時,DDR2后端接口通過DDR2控制器從DDR2存儲器中按行讀取圖像數(shù)據(jù),并緩存在數(shù)據(jù)緩存模塊中。數(shù)據(jù)緩存模塊為雙緩結(jié)構(gòu),可以緩存兩行圖像數(shù)據(jù)。顯示輸出控制按行進(jìn)行數(shù)據(jù)處理,并且最終輸出到顯示器[12]。

圖像顯示時,顯示器始終是以從左至右、從上到下的順序按行掃描。圖像數(shù)據(jù)在DDR2存儲器中的常規(guī)存儲方式也是以從左至右、從上到下的順序按行緩存,與圖像掃描順次一致,如圖2所示,即圖像的每一行像素?cái)?shù)據(jù)在DDR2按行存儲。

圖2 圖像常規(guī)存儲示意圖

圖像正常(0°旋轉(zhuǎn))顯示時,顯示系統(tǒng)在DDR2中以圖3(a)的順序按行讀取數(shù)據(jù),即從左上角開始,一行內(nèi)從左至右讀取數(shù)據(jù),對行的讀取順序?yàn)閺纳系较?;圖像順時針旋轉(zhuǎn)90°顯示時,顯示系統(tǒng)必須以圖3(b)的順序按列讀取數(shù)據(jù),即從左下角開始,一列內(nèi)從下到上,對列的讀取順序?yàn)閺淖笾劣?;圖像順時針旋轉(zhuǎn)180°顯示時,顯示系統(tǒng)必須以圖3(c)的順序按行讀取數(shù)據(jù),即從右下角開始,一行內(nèi)從右至左,對行的讀取順序?yàn)閺南碌缴希粓D像順時針旋轉(zhuǎn)270°顯示時,顯示系統(tǒng)必須以圖3(d)的順序按列讀取數(shù)據(jù),即從右上角開始,一列內(nèi)從上到下,對列的讀取順序?yàn)閺挠抑磷蟆?/p>

圖3 旋轉(zhuǎn)顯示時數(shù)據(jù)讀取方式

2 DDR2帶寬利用率分析

從上節(jié)的描述可以看出,圖像0°旋轉(zhuǎn)和180°旋轉(zhuǎn)顯示時,顯示系統(tǒng)對DDR2的讀取方式為按行讀取,圖像90°和270°旋轉(zhuǎn)顯示時,顯示系統(tǒng)對DDR2的讀取方式為按列讀取?;谶@兩種讀取方式,DDR2帶寬利用率差別很大,其帶寬利用率可用公式T1/(T1+T2)計(jì)算。其中,T1為數(shù)據(jù)周期,T2為空閑周期[13]。

根據(jù)DDR2的頁面特性,按行讀取時,顯示系統(tǒng)一次處理一行圖像像素?cái)?shù)據(jù),此行圖像像素?cái)?shù)據(jù)全在DDR2同一行地址內(nèi),因此讀取此行數(shù)據(jù)時不需要切換頁面,除刷新外,沒有空閑周期,T2可忽略不計(jì),此時DDR2的帶寬利用率可以達(dá)到95%以上。

按列讀取時,顯示系統(tǒng)一次處理一列圖像像素?cái)?shù)據(jù),此列圖像的每個像素?cái)?shù)據(jù)均在DDR2的不同行地址內(nèi),因此讀取此列數(shù)據(jù)時需要多次切換頁面,每讀取一次,需要關(guān)閉上一個頁面,重新打開下一個頁面,T2大于T1,此時DDR2的帶寬利用率很低,具體利用率如表1所示。

表1 常規(guī)存儲列讀取DDR2帶寬利用率

從以上分析可以看出,如果按常規(guī)方式存儲圖像數(shù)據(jù),圖像90°和270°旋轉(zhuǎn)顯示時,系統(tǒng)對DDR2中的圖像數(shù)據(jù)將按列讀取,此時DDR2的帶寬利用率只有很低的13%至23%左右。顯然在系統(tǒng)中,這將極大浪費(fèi)DDR2的帶寬,難以滿足系統(tǒng)需求,甚至在大分辨率圖像顯示應(yīng)用等情況下提高DDR2的數(shù)據(jù)位寬或工作頻率才能滿足系統(tǒng)對DDR2帶寬的需求,這將增加設(shè)計(jì)難度。

下面介紹一種非常規(guī)的分塊圖像數(shù)據(jù)存儲方式,可以大幅提高圖像90°和270°旋轉(zhuǎn)顯示時DDR2的帶寬利用率。

3 分塊存儲及效率

3.1 分塊存儲方式

分塊存儲方式如圖4所示。

1180 Fungal sinusitis involving ocular misdiagnosed as meningitis: a case report

圖4 圖像分塊存儲示意圖

將DDR2的地址空間分成大小相等的地址塊,每個地址塊在DDR2中占據(jù)多行地址,且只占據(jù)每行地址的一部分,每塊地址存儲一行圖像數(shù)據(jù)。每一行圖像數(shù)據(jù)在地址塊中以從左至右、從上到下的順序存儲。地址塊的順序亦為從左至右、從上到下,即圖像行按圖4所示的地址塊的編號順序在DDR2存儲。這樣,圖像的每一行像素?cái)?shù)據(jù)在DDR2中不再是按行存儲,而是按塊存儲。

3.2 顯示輸出數(shù)據(jù)讀取方式

在分塊存儲方式中,由于圖像的每一行像素?cái)?shù)據(jù)在DDR2地址中是按塊存儲,因此在圖像顯示輸出時,對DDR2存儲地址的讀取不再是簡單地按行或按列讀取,而是根據(jù)不同的旋轉(zhuǎn)度數(shù),有不同的讀取方式[14]。

在圖像正常(0°旋轉(zhuǎn))顯示和順時針旋轉(zhuǎn)180°顯示時,顯示系統(tǒng)以圖像行為單位處理圖像數(shù)據(jù),即每次讀取一行圖像數(shù)據(jù),而每一行圖像數(shù)據(jù)存儲在DDR2的一個地址塊中,因此顯示系統(tǒng)每次讀取一個地址塊的數(shù)據(jù)。

在圖像正常(0°旋轉(zhuǎn))顯示時,顯示系統(tǒng)對圖像行的處理是按行順序處理,行內(nèi)數(shù)據(jù)亦是順序處理,因此顯示系統(tǒng)按地址塊的編號順序讀取圖像行數(shù)據(jù),在地址塊內(nèi)亦按從左至右、從上到下順序進(jìn)行讀取。

在圖像順時針旋轉(zhuǎn)180°顯示時,顯示系統(tǒng)對圖像行的處理是按行逆序處理,行內(nèi)數(shù)據(jù)亦是逆序處理,因此顯示系統(tǒng)按地址塊的編號逆序讀取圖像行數(shù)據(jù),在地址塊內(nèi)亦按從右至左、從下到上逆序進(jìn)行讀取。

在圖像順時針旋轉(zhuǎn)90°顯示和順時針旋轉(zhuǎn)270°顯示時,顯示系統(tǒng)以圖像列為單位處理圖像數(shù)據(jù),即每次讀取一列圖像數(shù)據(jù),而每一列圖像數(shù)據(jù)分散存儲在DDR2的每一個地址塊中,因此顯示系統(tǒng)每處理一列圖像數(shù)據(jù)需要讀取所有地址塊中的一個數(shù)據(jù)。

在圖像順時針旋轉(zhuǎn)90°顯示時,由于顯示系統(tǒng)對每列圖像數(shù)據(jù)是逆序處理,因此顯示系統(tǒng)每處理一列圖像數(shù)據(jù)以地址塊的編號逆序讀取每個地址塊中的一個數(shù)據(jù);由于對圖像列的處理是按列順序處理,因此對地址塊內(nèi)的數(shù)據(jù)是順序讀取。

在圖像順時針旋轉(zhuǎn)270°顯示時,由于顯示系統(tǒng)對每列圖像數(shù)據(jù)是順序處理,因此顯示系統(tǒng)每處理一列圖像數(shù)據(jù)以地址塊的編號順序讀取每個地址塊中的一個數(shù)據(jù);由于對圖像列的處理是按列逆序處理,因此對地址塊內(nèi)的數(shù)據(jù)是逆序讀取。

3.3 帶寬利用率分析

分塊存儲時,DDR2的帶寬利用率跟地址塊的大小相關(guān)。下面以10位列地址、64位數(shù)據(jù)總線DDR2、圖像分辨率為1 600×1 200為例分析計(jì)算DDR2的帶寬利用率。

DDR2有10位列地址,即每行有1 024個地址,將每行地址分為16個地址塊,即每個地址塊有每行地址中的64個地址,每個地址存儲64位數(shù)據(jù);圖像每行1 600個像素,以每個像素32位數(shù)據(jù)為例,每行圖像需800個地址來存儲像素?cái)?shù)據(jù),800/64=12.5,即每個地址塊需占據(jù)13行DDR2行地址,64個列地址,其分塊方式如圖4所示。

在圖像正常(0°旋轉(zhuǎn))顯示和順時針旋轉(zhuǎn)180°顯示時,顯示系統(tǒng)對DDR2按地址塊讀取,即每讀64個數(shù)據(jù)將切換一行。

在圖像順時針旋轉(zhuǎn)90°顯示和順時針旋轉(zhuǎn)270°顯示時,顯示系統(tǒng)對DDR2每次讀取所有地址塊中的一個數(shù)據(jù),即每讀16次數(shù)據(jù)將切換一行。這種方式減少了頁面切換次數(shù),增大了T1的值,因此提高了DDR2帶寬利用率,具體利用率如表2所示。

從以上分析可看出,按分塊方式存儲圖像數(shù)據(jù),圖像0°和180°旋轉(zhuǎn)顯示時,DDR2帶寬利用率有所降低,只有71%,但圖像90°和270°旋轉(zhuǎn)顯示時,DDR2的帶寬利用率達(dá)到了70%至80%左右,有大幅提高。

表2 分塊存儲旋轉(zhuǎn)顯示DDR2帶寬利用率

4 分塊存儲效率驗(yàn)證

在某GPU項(xiàng)目中,針對圖像的旋轉(zhuǎn)顯示,采用了該分塊存儲方法。其DDR2的突發(fā)長度固定為4,數(shù)據(jù)位寬為64位,時鐘頻率為333MHz,支持的最大分辨率為1 920×1 440@60Hz,每個像素有32位數(shù)據(jù)。

在圖像90°和270°旋轉(zhuǎn)顯示時,系統(tǒng)對DDR2中所有地址塊進(jìn)行一次突發(fā)讀操作將會讀取8列像素?cái)?shù)據(jù),因此在DDR2后端接口中增加了8個緩存區(qū),每個緩存區(qū)可以存儲最大分辨率的一列像素?cái)?shù)據(jù)。

在處理最大分辨率1 920×1 440@60Hz時,系統(tǒng)掃描一行需要時間約11.5μs。在圖像0°和180°旋轉(zhuǎn)顯示時,系統(tǒng)讀取一次需1 920×32/64×2×71%×333=2.1μs,小于11.5μs。在圖像90°和270°旋轉(zhuǎn)顯示時,系統(tǒng)讀取一次需1 440×2/71%×333=12.2μs,,由于一次讀取了8列像素?cái)?shù)據(jù),可供系統(tǒng)掃描8行,12.2μs遠(yuǎn)小于8×11.5μs。

通過上述計(jì)算可以看出,采用分塊存儲,系統(tǒng)DDR2緩存效率能滿足顯示輸出帶寬需求,并給圖像處理引擎的寫、繪圖等操作預(yù)留了足夠的帶寬。

在項(xiàng)目的實(shí)際FPGA驗(yàn)證中,采用常規(guī)存儲時,大分辨率圖像無法流暢地90°和270°旋轉(zhuǎn)顯示,而采用分塊存儲時,所有分辨率的圖像均能流暢、平滑地正常及旋轉(zhuǎn)顯示。該對比驗(yàn)證的結(jié)果表明,分塊存儲方法能夠解決常規(guī)存儲難以滿足大分辨率圖像旋轉(zhuǎn)顯示的問題。

5 結(jié)束語

文中介紹了圖像旋轉(zhuǎn)顯示原理和常規(guī)存儲方法在圖像旋轉(zhuǎn)顯示時的低效率缺陷,提出了分塊存儲方法,重點(diǎn)闡述了其讀取方式和效率,并結(jié)合項(xiàng)目進(jìn)行了有效的FPGA原型驗(yàn)證。結(jié)果表明,該分塊存儲方法具有很好的效果,提高了DDR2的帶寬利用率,能夠高效滿足系統(tǒng)的旋轉(zhuǎn)顯示需求,對有類似存儲需求的設(shè)計(jì)具有一定的參考價值。

[1]WolbergG.Digitalimagewarping[M].LosAlamitosCalifornia:IEEEComputerSocietyPress,1990:208-209.

[2] 陳 芳.一種基于錯切原理的圖像旋轉(zhuǎn)方法[J].淮陰師范學(xué)院學(xué)報(bào):自然科學(xué)版,2004,3(4):319-322.

[3] 吳恩華,柳有權(quán).基于圖形處理器(GPU)的通用計(jì)算[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2004,16(5):601-612.

[4]DanielssonPE,HammerinM.Highaccuracyrotationofimages[J].GraphicalModelsandImageProcessing,1992,54(4):340-344.

[5]LunaFD.Introductionto3DgameprogrammingwithDirectX9.0[M].TexasPlano:WordwarePublishingInc,2003.

[6] 曹厚德,劉劍波.一種基于FPGA的圖像旋轉(zhuǎn)實(shí)現(xiàn)技術(shù)[J].計(jì)算機(jī)應(yīng)用與軟件,2011,28(7):89-91.

[7] 葉至軍.VisualC++/DirectX9 3D游戲開發(fā)導(dǎo)引[M].北京:人民郵電出版社,2006.

[8] 汪國有,項(xiàng)國平,孫天春.利用FFT實(shí)現(xiàn)圖像的快速高質(zhì)量旋轉(zhuǎn)變換[J].華中科技大學(xué)學(xué)報(bào):自然科學(xué)版,2003,31(4):91-93.

[9] 李洪偉.圖像跟蹤器中視頻處理系統(tǒng)的設(shè)計(jì)與電子消像旋的實(shí)現(xiàn)[D].成都:電子科技大學(xué),2006.

[10]GrayK.MicrosoftdirectX9programmablegraphicspipeline[M].WashingtonRedmond:MicrosoftPress,2003.

[11]Microsoft.MicrosoftDirectXSDKdocuments[EB/OL].[2000-04-15].http://www.microsoft.com.

[12] 石 慎,張艷寧,郗潤平,等.基于Bresenham畫線算法的圖像快速高精度旋轉(zhuǎn)算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2007,19(11):1387-1392.

[13] 李開宇,張煥春,經(jīng)亞枝.基于FPGA的高速高質(zhì)量圖像旋轉(zhuǎn)[J].中國圖象圖形學(xué)報(bào),2004,9(3):285-289.

[14] 汪國有,王岳環(huán),張?zhí)煨?大轉(zhuǎn)角下高質(zhì)量圖像旋轉(zhuǎn)快速算法[J].華中科技大學(xué)學(xué)報(bào),1999,27(6):45-47.

An Efficient Storage Method of DDR2 Based on Image Rotation Display

LIU Cheng-yu1,2,TIAN Ze1,2,LIU Hao1,2,XU Xiao-mei1,2

(1.Aeronautics Computing Technique Research Institute,Xi’an 710068,China; 2.Key Lab of Aeronautics Science and Technology of Integrate Circuit and Micro-system Design, Xi’an 710068,China)

Image rotation is a common digital image processing technology which is widely applied in various fields.In image system,DDR2 is always used as the display memory.Image display system scans to refresh images usually from left to right and from top to bottom,then saving image data in the same order,but for image rotation display of maximum resolution,this general storage method can’t meet the requirement of DDR2 bandwidth for system.In order to solve this problem,the high-effective storage method must be used.On the basis of the principle of image rotation display,contrasting the general storage method,the block storage method and efficiency of it is discussed.At last,FPGA verification is made in combination of project.The result indicates this block storage method increases bandwidth utilization of DDR2,which can meet the requirement of rotation display,and solves the problem which general storage method can’t meet maximum resolution image rotation display.

image rotation display;memory;bandwidth utilization;efficiency

2015-06-16

2015-09-22

時間:2016-03-22

中國航空工業(yè)集團(tuán)創(chuàng)新基金(2010BD63111)

劉承禹(1982-),男,工程師,研究方向?yàn)榧呻娐吩O(shè)計(jì);田 澤,博士,研究員,中航首席技術(shù)專家,研究方向?yàn)镾oC設(shè)計(jì)、嵌入式系統(tǒng)設(shè)計(jì)、VLSI設(shè)計(jì)。

http://www.cnki.net/kcms/detail/61.1450.TP.20160322.1517.010.html

TP39

A

1673-629X(2016)04-0016-04

10.3969/j.issn.1673-629X.2016.04.004

猜你喜歡
分塊順時針利用率
一季度我國煤炭開采和洗選業(yè)產(chǎn)能利用率為74.9%
面向量化分塊壓縮感知的區(qū)域?qū)哟位A(yù)測編碼
鋼結(jié)構(gòu)工程分塊滑移安裝施工方法探討
2020年煤炭采選業(yè)產(chǎn)能利用率為69.8% 同比下降0.8%
最后才吃梨
一種面向不等尺寸分塊海量數(shù)據(jù)集的并行體繪制算法
分塊矩陣初等變換的妙用
晶胞參數(shù)及空間利用率的相關(guān)計(jì)算突破
圖形前線
淺議如何提高涉煙信息的利用率