《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 基于DSP的圖像旋轉(zhuǎn)算法數(shù)據(jù)調(diào)度策略

基于DSP的圖像旋轉(zhuǎn)算法數(shù)據(jù)調(diào)度策略

2008-07-23
作者:李筱琳1,,馮 燕1,,何亦征2

??? 摘 要: 為了在DSP平臺(tái)上實(shí)現(xiàn)實(shí)時(shí)大圖像旋轉(zhuǎn)" title="圖像旋轉(zhuǎn)">圖像旋轉(zhuǎn),結(jié)合TMS320DM642的性能結(jié)構(gòu)特點(diǎn),針對(duì)旋轉(zhuǎn)算法中嚴(yán)重影響DSP CPU效率發(fā)揮的大量非連續(xù)圖像像素地址訪問(wèn)的問(wèn)題,,提出了基于視口圖像塊覆蓋的DSP圖像旋轉(zhuǎn)算法數(shù)據(jù)調(diào)度策略" title="調(diào)度策略">調(diào)度策略,對(duì)算法的結(jié)構(gòu)流程進(jìn)行了優(yōu)化調(diào)整。
??? 關(guān)鍵詞: 大圖像旋轉(zhuǎn),;數(shù)據(jù)調(diào)度,;DM642;DSP,;實(shí)時(shí),;優(yōu)化

?

??? 圖像旋轉(zhuǎn)是一種應(yīng)用廣泛的數(shù)字圖像處理技術(shù),隨著應(yīng)用水平的不斷提高,,對(duì)在嵌入式系統(tǒng)中實(shí)現(xiàn)高分辨率大圖像旋轉(zhuǎn)的需求也越來(lái)越高,。如在航空領(lǐng)域的高分辨率數(shù)字地圖圖像的顯示處理過(guò)程中,由于現(xiàn)有的顯示芯片均不能支持圖像旋轉(zhuǎn)功能,,就需要在資源有限的嵌入式平臺(tái)上實(shí)現(xiàn)大幅面地圖圖像的實(shí)時(shí)旋轉(zhuǎn),。采用DSP平臺(tái)是一種實(shí)現(xiàn)方式,具體實(shí)現(xiàn)時(shí)需仔細(xì)考慮兩個(gè)方面的問(wèn)題,,一是選用計(jì)算量小的旋轉(zhuǎn)算法,,二是充分發(fā)揮DSP平臺(tái)強(qiáng)大的并行計(jì)算能力。
??? 目前,,已經(jīng)有很多有效降低計(jì)算量的圖像旋轉(zhuǎn)算法,,基于圖像線性存儲(chǔ)結(jié)構(gòu)" title="存儲(chǔ)結(jié)構(gòu)">存儲(chǔ)結(jié)構(gòu)的旋轉(zhuǎn)方法[1]就是其中之一。然而,,在DSP平臺(tái)上,,有限的高速存儲(chǔ)資源限制了這些算法效率的直接發(fā)揮,需要針對(duì)算法及DSP平臺(tái)的性能結(jié)構(gòu)特點(diǎn)進(jìn)行高效的數(shù)據(jù)調(diào)度,。對(duì)于圖像旋轉(zhuǎn)問(wèn)題而言,,數(shù)據(jù)調(diào)度還需要克服由于存在大量非連續(xù)圖像像素地址訪問(wèn)而嚴(yán)重影響DSP數(shù)據(jù)存取及CPU效率發(fā)揮的問(wèn)題。這是圖像旋轉(zhuǎn)本身的特殊性,,在其他圖像處理技術(shù)中是不存在的,。本文主要討論如何利用TI公司TMS320DM642芯片的資源特點(diǎn),進(jìn)行高效圖像旋轉(zhuǎn)的大規(guī)模數(shù)據(jù)調(diào)度,,從而實(shí)現(xiàn)適用于大圖像的DSP實(shí)時(shí)圖像旋轉(zhuǎn),。
1 基于圖像線性存儲(chǔ)結(jié)構(gòu)的旋轉(zhuǎn)方法介紹
??? 目前,圖像旋轉(zhuǎn)大多采用基于視口映射的處理,。視口是指屏幕上的顯示區(qū)域范圍,,方法是先計(jì)算出旋轉(zhuǎn)后視口圖像像素在源圖像中的坐標(biāo)地址值,再依據(jù)該地址在源圖像中對(duì)應(yīng)讀取像素值,,最后利用讀取的像素值進(jìn)行插值,,得到最終旋轉(zhuǎn)后視口圖像。實(shí)際上,,由于存在對(duì)稱性,,一幅圖像任意角度的旋轉(zhuǎn)可分解為一次90°或180°或270°的旋轉(zhuǎn),,再加上一次±45°以內(nèi)的旋轉(zhuǎn)。
??? 傳統(tǒng)的圖像旋轉(zhuǎn)一般通過(guò)矩陣乘法實(shí)現(xiàn):

???

其中,,α為旋轉(zhuǎn)角度,。
??? 本文選用的張克黛[1]等人提出的基于圖像線性存儲(chǔ)結(jié)構(gòu)的旋轉(zhuǎn)方法是一種理論上運(yùn)算效率較高的方法。下面具體介紹,。
??? 由于圖像是線性存儲(chǔ)的,,各個(gè)像素點(diǎn)之間的相對(duì)位置關(guān)系確定。如圖1(a)所示,,圖像旋轉(zhuǎn)前,,任意像素點(diǎn)P(x,y)和P1(x1,,y1)、P2(x2,,y2)及A(xA,,yA)在幾何上是矩形的四頂點(diǎn)關(guān)系。由于旋轉(zhuǎn)變換是線性變換,,如圖1(b)所示,,圖像旋轉(zhuǎn)后,各個(gè)像素點(diǎn)之間的相對(duì)位置關(guān)系不發(fā)生變化,,

???

?

???

?

??? 所以,,對(duì)圖像作旋轉(zhuǎn)變換,只需對(duì)第一行和第一列的像素用式(1)作矩陣乘法運(yùn)算,,對(duì)除第一行和第一列以外的像素,,用式(2)進(jìn)行簡(jiǎn)單的加減運(yùn)算即可。這樣避免了對(duì)整幅圖像的每個(gè)像素作矩陣乘法運(yùn)算,,可節(jié)省5~6倍的CPU周期,。
??? 另外,對(duì)于旋轉(zhuǎn)計(jì)算后非整數(shù)像素地址的插值,,本文采用雙線性插值法,,基本能夠滿足對(duì)圖像質(zhì)量的要求。
2 圖像旋轉(zhuǎn)的DSP結(jié)構(gòu)優(yōu)化
2.1 TMS320DM642結(jié)構(gòu)特點(diǎn)

??? 該芯片的結(jié)構(gòu)如圖2所示,,它基于C64x內(nèi)核,,采用TI的第二代高級(jí)超長(zhǎng)指令字結(jié)構(gòu),可在600MHz時(shí)鐘頻率下工作,,每個(gè)指令周期可并行8條32位指令,,可達(dá)到4 800MIPS的峰值計(jì)算速度。DM642具有64個(gè)增強(qiáng)DMA(EDMA)通道,,可進(jìn)行高效的一維及二維數(shù)據(jù)傳輸,,二維數(shù)據(jù)傳輸可用于一個(gè)矩形圖像數(shù)據(jù)塊的高速搬移,。

?


??? DM642的存儲(chǔ)空間由片內(nèi)和片外兩級(jí)存儲(chǔ)體系構(gòu)成,其中片內(nèi)存儲(chǔ)器" title="內(nèi)存儲(chǔ)器">內(nèi)存儲(chǔ)器又分為L(zhǎng)1和L2兩層,。第一層L1為CPU Cache,,其訪問(wèn)速度與CPU的速度相匹配,包括相互獨(dú)立的L1P(16KB)和L1D(16KB),;第二層L2(256KB)具有靈活的RAM/Cache分配,。片外存儲(chǔ)器具備32位的訪問(wèn)地址,通過(guò)EDMA控制器和EMIF外部存儲(chǔ)器接口進(jìn)行數(shù)據(jù)訪問(wèn),。其中,,片內(nèi)存儲(chǔ)器和片外存儲(chǔ)器在訪問(wèn)速度方面存在很大差異。
??? 此外,,作為多媒體處理專用芯片,,DM642具有用于視頻數(shù)據(jù)I/O的專用接口,易于實(shí)現(xiàn)視頻信號(hào)的顯示輸出,。
2.2 旋轉(zhuǎn)算法的結(jié)構(gòu)優(yōu)化
??? 針對(duì)DM642性能結(jié)構(gòu)特點(diǎn)的算法結(jié)構(gòu)優(yōu)化,,其目的是使上述大圖像旋轉(zhuǎn)快速算法的效率能夠在DSP平臺(tái)上得到充分發(fā)揮,其核心思想是合理優(yōu)化存儲(chǔ)空間分配和數(shù)據(jù)傳輸流,,使CPU能連續(xù)不斷地處理圖像數(shù)據(jù),,消除處理過(guò)程中的等待延遲。
??? 由DSP的結(jié)構(gòu)特點(diǎn)可知,,只有在數(shù)據(jù)和程序均位于片內(nèi)存儲(chǔ)器當(dāng)中的條件下,,DSP的效率才能得到最大化的發(fā)揮。在大圖像旋轉(zhuǎn)算法中,,由于涉及的圖像數(shù)據(jù)量遠(yuǎn)大于DSP的片內(nèi)存儲(chǔ)器容量,,源圖像和最終視口圖像等數(shù)據(jù)必須被存放在片外存儲(chǔ)器中。在這種情況下,,為了保證DSP CPU高速處理能力的發(fā)揮,,必須優(yōu)化數(shù)據(jù)流,將源圖像分塊,,依次搬移至片內(nèi)處理,,并設(shè)法保證CPU當(dāng)前要處理的圖像數(shù)據(jù)塊已經(jīng)事先在片內(nèi)存儲(chǔ)器中準(zhǔn)備好了。因此在算法整體優(yōu)化結(jié)構(gòu)上采用Ping-Pong雙緩沖" title="雙緩沖">雙緩沖技術(shù),,利用EDMA與CPU并行工作來(lái)隱藏圖像數(shù)據(jù)塊在片內(nèi)和片外之間的傳輸時(shí)間,,使CPU能連續(xù)不斷地處理數(shù)據(jù),中間不會(huì)出現(xiàn)空閑等待,。
??? Ping-Pong雙緩沖是一種同時(shí)利用兩個(gè)數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)傳輸技術(shù),,它將SRAM分成兩大塊,一塊用于存儲(chǔ)源圖像塊,,另一塊用于存儲(chǔ)旋轉(zhuǎn)后的圖像塊,;每一個(gè)存儲(chǔ)塊又分為兩個(gè)區(qū)(Ping區(qū)和Pong區(qū)),,輪流用于圖像塊傳輸和處理。其具體并行工作流程如圖3所示,。

?

?

圖3 Ping-Pong雙緩沖處理技術(shù)


??? 至于如何在Ping-Pong雙緩沖數(shù)據(jù)傳輸機(jī)制中設(shè)計(jì)和安排傳輸?shù)膱D像數(shù)據(jù)塊,,則必須考慮針對(duì)圖像旋轉(zhuǎn)本身的特點(diǎn),設(shè)計(jì)出具體的適用于旋轉(zhuǎn)算法的DSP數(shù)據(jù)調(diào)度策略,。
3 旋轉(zhuǎn)算法的DSP數(shù)據(jù)調(diào)度策略
??? 旋轉(zhuǎn)算法的數(shù)據(jù)調(diào)度目的是使算法能夠按照一定的規(guī)則,,將源圖像數(shù)據(jù)有規(guī)律地分塊,并按次序分別傳輸?shù)紻SP片內(nèi)存儲(chǔ)器中,,完成計(jì)算后,,形成視口圖像塊,再將視口圖像塊按同樣的順序進(jìn)行排列,,形成旋轉(zhuǎn)后的視口圖像,。整個(gè)過(guò)程要求調(diào)入和調(diào)出的圖像數(shù)據(jù)均是規(guī)則分塊的,并且調(diào)入的源圖像塊中應(yīng)該包含計(jì)算視口圖像塊的過(guò)程中所需要的全部像素?cái)?shù)據(jù),,尤其需要解決其中的大量非連續(xù)圖像像素地址訪問(wèn)問(wèn)題,,這樣才能正確地發(fā)揮DSP EDMA和Ping-Pong雙緩沖技術(shù)的性能。
3.1 非連續(xù)像素地址訪問(wèn)
??? Ping-Pong雙緩沖數(shù)據(jù)傳輸機(jī)制中圖像數(shù)據(jù)塊在片內(nèi),、片外存儲(chǔ)空間的傳輸,,主要依靠EDMA設(shè)置,,在后臺(tái)進(jìn)行二維數(shù)據(jù)傳輸,。Ping-Pong雙緩沖數(shù)據(jù)傳輸機(jī)制下的EDMA的數(shù)據(jù)傳輸要求待傳輸?shù)膱D像塊具有統(tǒng)一的規(guī)律,即每次旋轉(zhuǎn)的圖像數(shù)據(jù)的傳輸過(guò)程不應(yīng)該因旋轉(zhuǎn)角度的變化而改變,。
??? 但是,,旋轉(zhuǎn)后的視口圖像像素的地址排列與其在源圖像中的不同,不再具有連續(xù)的地址變化特征,,并且視口圖像的像素地址在源圖像中的排列關(guān)系隨旋轉(zhuǎn)角度的變化而變化,,沒有固定的規(guī)律,給Ping-Pong雙緩沖數(shù)據(jù)傳輸機(jī)制下的EDMA的數(shù)據(jù)傳輸操作帶來(lái)很大困難,,從而導(dǎo)致對(duì)源圖像塊的大量非連續(xù)像素地址訪問(wèn)的問(wèn)題,。該問(wèn)題是圖像旋轉(zhuǎn)本身所特有的,如果得不到很好解決,,Ping-Pong雙緩沖數(shù)據(jù)傳輸機(jī)制就無(wú)法發(fā)揮作用,,旋轉(zhuǎn)算法的實(shí)際DSP執(zhí)行效率也就得不到真正的提高。因此,,實(shí)現(xiàn)滿足調(diào)入/調(diào)出圖像塊關(guān)系的數(shù)據(jù)調(diào)度就成為實(shí)現(xiàn)高效圖像旋轉(zhuǎn)的關(guān)鍵,。
3.2 旋轉(zhuǎn)算法的DSP數(shù)據(jù)調(diào)度策略
??? 本文提出的基于視口圖像塊覆蓋的源圖像數(shù)據(jù)分塊及其調(diào)度策略的思想是實(shí)現(xiàn)源圖像及視口圖像按塊處理,源圖像塊的范圍覆蓋視口圖像塊,,且易于在源圖像塊內(nèi)進(jìn)行像素?cái)?shù)據(jù)訪問(wèn)尋址,,使源圖像塊內(nèi)像素地址變化具有連續(xù)的特征,,以充分發(fā)揮出DSP EDMA的效率,并滿足Ping-Pong數(shù)據(jù)流程的規(guī)律性,。旋轉(zhuǎn)算法DSP數(shù)據(jù)調(diào)度策略示意圖分別如圖4和圖5所示,,其要點(diǎn)如下(以視口順時(shí)針旋轉(zhuǎn)為例):
??? (1)視口輸出圖像分塊
??? 如圖4(a)所示,將視口圖像分成矩形塊,,作為每次旋轉(zhuǎn)運(yùn)算的基本單位,,圖像塊之間依次排列。
??? (2)源圖像塊的取法
??? 如圖4(b)所示,,每個(gè)源圖像塊對(duì)應(yīng)一個(gè)視口圖像塊,,源圖像塊的尺寸取為視口圖像塊尺寸的4倍(如視口塊尺寸為20×20像素,則源圖像塊就取為40×40像素),,且源圖像塊的上邊框中點(diǎn)與相應(yīng)的視口圖像塊旋轉(zhuǎn)后的左上角頂點(diǎn)對(duì)應(yīng),,這樣可保證順時(shí)針旋轉(zhuǎn)角度在0°~90°之間的任意情況下,源圖像塊始終覆蓋其對(duì)應(yīng)的旋轉(zhuǎn)后的視口圖像塊,。

?

?


??? (3)兩圖像塊頂點(diǎn)地址對(duì)應(yīng)關(guān)系
??? 設(shè)第N個(gè)源圖像塊為fN(x,,y),旋轉(zhuǎn)后的視口圖像塊為f′N(x,,y),,則源圖像塊的頂點(diǎn)局部坐標(biāo)地址值與旋轉(zhuǎn)后視口圖像塊的頂點(diǎn)局部坐標(biāo)地址值之間的對(duì)應(yīng)關(guān)系為:

???

其中width指源圖像塊的寬度。
??? 視口逆時(shí)針旋轉(zhuǎn)的情況與此類似(如圖5所示),。區(qū)別有以下兩點(diǎn):
??? ①源圖像塊的左邊框中點(diǎn)與相應(yīng)的視口圖像塊旋轉(zhuǎn)后的左上角頂點(diǎn)對(duì)應(yīng),;
??? ②源圖像塊的頂點(diǎn)局部坐標(biāo)地址值與視口圖像塊的頂點(diǎn)局部坐標(biāo)地址值之間的對(duì)應(yīng)關(guān)系式應(yīng)為:
???

其中height指源圖像塊的高度。

??? (4)圖像塊的調(diào)度
??? 由式(3)或式(4)計(jì)算出將要從源圖像中取出的對(duì)應(yīng)規(guī)則圖像塊的左上角頂點(diǎn)坐標(biāo)(即源圖像塊的起始地址),,然后用EDMA的二維數(shù)據(jù)傳輸將其調(diào)入片內(nèi)L2 SRAM中,。可以看出,,源圖像塊不再隨旋轉(zhuǎn)角度的變化而傾斜,,其內(nèi)部像素的排列存在固定規(guī)律,像素地址具有連續(xù)變化的特征,,故可使Ping-Pong雙緩沖數(shù)據(jù)傳輸機(jī)制下的EDMA二維數(shù)據(jù)傳輸順利進(jìn)行,。
??? 這種基于視口圖像塊覆蓋的旋轉(zhuǎn)算法DSP數(shù)據(jù)調(diào)度策略有效地解決了圖像旋轉(zhuǎn)中大量非連續(xù)像素地址訪問(wèn)的問(wèn)題,體現(xiàn)了空間換時(shí)間的思想,,通過(guò)充分利用EDMA的高效數(shù)據(jù)傳輸,,保證了整個(gè)旋轉(zhuǎn)處理的高速運(yùn)算節(jié)奏。
4 實(shí)驗(yàn)及其結(jié)果
??? 實(shí)驗(yàn)采用自行研制的高分辨率圖像處理平臺(tái),,以TMS320DM642芯片為主處理芯片,,時(shí)鐘為600MHz,片外為64MB SDRAM,。實(shí)驗(yàn)中源圖像通過(guò)調(diào)試JTAG口輸入,,旋轉(zhuǎn)后的視口圖像結(jié)果從VPORT口經(jīng)D/A轉(zhuǎn)換后,,以VGA信號(hào)輸出。實(shí)驗(yàn)分別實(shí)現(xiàn)兩種尺寸(400×400像素和1024×768像素)的視口圖像旋轉(zhuǎn),,相應(yīng)的源圖像數(shù)據(jù)分別為1024×768像素和1920×1920像素的BMP格式的數(shù)字地圖圖像,,采用0.005弧度旋轉(zhuǎn)角度遞增間隔,對(duì)分別采用式(1)的傳統(tǒng)像素逐點(diǎn)矩陣相乘方法,、基于圖像線性存儲(chǔ)結(jié)構(gòu)方法以及基于本文數(shù)據(jù)調(diào)度策略的結(jié)構(gòu)優(yōu)化的線性存儲(chǔ)結(jié)構(gòu)方法三種實(shí)現(xiàn)方式進(jìn)行對(duì)比,,分別統(tǒng)計(jì)其平均每幀運(yùn)行時(shí)間并轉(zhuǎn)換成幀率,其結(jié)果如表1所示,。

?


??? 從實(shí)驗(yàn)結(jié)果可以看出,,基于圖像線性存儲(chǔ)結(jié)構(gòu)的旋轉(zhuǎn)算法比傳統(tǒng)的逐點(diǎn)相乘法的確在運(yùn)算量上有了大幅度削減,因而有效地提高了旋轉(zhuǎn)速度,,但其仍然滿足不了實(shí)際大圖像旋轉(zhuǎn)的實(shí)時(shí)性要求,。通過(guò)采用本文提出的數(shù)據(jù)調(diào)度策略對(duì)算法結(jié)構(gòu)及數(shù)據(jù)調(diào)度進(jìn)行優(yōu)化后,算法的DSP執(zhí)行效率得到了顯著提高,,可以滿足對(duì)DSP大圖像旋轉(zhuǎn)的實(shí)時(shí)性要求,。
??? 本文結(jié)合TMS320DM642的性能結(jié)構(gòu)特點(diǎn),針對(duì)圖像旋轉(zhuǎn)算法在DSP平臺(tái)上具體實(shí)現(xiàn)過(guò)程中存在的嚴(yán)重影響DSP CPU效率發(fā)揮的大量非連續(xù)圖像像素地址訪問(wèn)的問(wèn)題,提出了切實(shí)有效的基于視口圖像塊覆蓋的DSP數(shù)據(jù)調(diào)度策略;對(duì)算法的結(jié)構(gòu)流程,、數(shù)據(jù)調(diào)度等進(jìn)行了優(yōu)化調(diào)整,,并在此基礎(chǔ)上,在TI TMS320DM642 DSP上實(shí)現(xiàn)了一種實(shí)時(shí)高質(zhì)量大圖像旋轉(zhuǎn)方案,。實(shí)驗(yàn)表明,,本文提出的適用于圖像旋轉(zhuǎn)算法的DSP數(shù)據(jù)調(diào)度策略,保證了DSP大圖像旋轉(zhuǎn)的實(shí)時(shí)性,,達(dá)到了實(shí)用性要求,。
參考文獻(xiàn)
[1] 張克黛,,李智.圖像旋轉(zhuǎn)的快速實(shí)現(xiàn)方法研究[J].指揮技術(shù)學(xué)院學(xué)報(bào),,1999,(10)2:29-32.
[2] 胡慧之,,紀(jì)太成.DSP視頻處理系統(tǒng)的數(shù)據(jù)傳輸優(yōu)化設(shè)計(jì)[J].泰州職業(yè)技術(shù)學(xué)院學(xué)報(bào),,2006,(6)3:28-30.
[3] DANIELSSON P E.High-Accuracy Rotation of Images[J].Graphical Models and Image Processing,,1992,,54(4):340-344.
[4] 曾慶如,畢篤彥,,王洪迅.TMS320C64x EDMA的圖像數(shù)據(jù)傳輸優(yōu)化[J].電視技術(shù),,2005,(278):66-72.
[5] 李方慧,王飛,,何佩琨.TMS320C6000系列DSPs原理與應(yīng)用(第2版)[M].北京:電子工業(yè)出版社,,2003.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]