朱學(xué)俊,凌 強(qiáng),李博倫,徐 駿,陳仁愛(ài),王傳根,邱換春,王庚中,張乾坤(.中國(guó)科學(xué)技術(shù)大學(xué) 自動(dòng)化系,安徽 合肥 3007;.安徽超遠(yuǎn)信息技術(shù)有限公司,安徽 合肥 300)
基于DSP的實(shí)時(shí)去霧優(yōu)化與實(shí)現(xiàn)*
朱學(xué)俊1,凌 強(qiáng)1,李博倫1,徐 駿1,陳仁愛(ài)1,王傳根2,邱換春2,王庚中2,張乾坤2
(1.中國(guó)科學(xué)技術(shù)大學(xué) 自動(dòng)化系,安徽 合肥 230027;2.安徽超遠(yuǎn)信息技術(shù)有限公司,安徽 合肥 230021)
提出一種針對(duì)基于暗原色先驗(yàn)去霧算法的優(yōu)化方法,分為算法級(jí)優(yōu)化和基于DSP的優(yōu)化。算法優(yōu)化中主要采用降采樣處理,以及針對(duì)YUV格式轉(zhuǎn)化的優(yōu)化;基于DSP優(yōu)化中采用針對(duì)TI C674x系列的優(yōu)化方法,如編譯器優(yōu)化、浮點(diǎn)轉(zhuǎn)定點(diǎn)、查表法、DMA(直接內(nèi)存存?。┑氖褂靡约熬€性匯編等。最終針對(duì)1080P的YUV格式的交通視頻可以達(dá)到實(shí)時(shí)去霧處理,并且有較好的去霧效果。
實(shí)時(shí);去霧;DSP;優(yōu)化
隨著工業(yè)的快速發(fā)展,空氣污染越來(lái)越嚴(yán)重,尤其是霧霾對(duì)人類造成了嚴(yán)重的影響。霧霾天氣造成能見(jiàn)度低下,嚴(yán)重影響駕駛安全和交通監(jiān)控的性能,所以開(kāi)發(fā)一種基于嵌入式平臺(tái)能夠?qū)崟r(shí)去霧的設(shè)備很有必要。
本文針對(duì)基于暗原色先驗(yàn)的去霧算法進(jìn)行優(yōu)化,主要分為算法上的優(yōu)化和基于DSP的優(yōu)化,最終針對(duì)1080P YUV格式的交通視頻,能夠在C674x系列 DSP上達(dá)到實(shí)時(shí)去霧的效果,即處理速度在40 ms/幀以內(nèi)。
[1]中提出的基于暗原色先驗(yàn)的單幅圖像去霧方法開(kāi)辟了圖像去霧的一個(gè)新的領(lǐng)域。其中使用軟摳圖的方法對(duì)透射率進(jìn)行精細(xì)化,有非常好的視覺(jué)效果。但是軟摳圖復(fù)雜度非常高,要想針對(duì)高清視頻實(shí)現(xiàn)實(shí)時(shí)處理很難實(shí)現(xiàn)。后來(lái)作者又在參考文獻(xiàn)[2]中提出導(dǎo)向?yàn)V波代替[1]的軟摳圖,處理效果相當(dāng),速度提高 100倍左右。即使速度提高了很多,針對(duì)1080P的視頻要在C674x系列DSP上達(dá)到實(shí)時(shí)處理還有很大的差距。本文主要就是針對(duì)上述去霧方法在算法上進(jìn)行一些優(yōu)化。
1.1 降采樣處理
本文研究的去霧方法是針對(duì)1080P(1920×1080)的高清視頻,想達(dá)到實(shí)時(shí)處理,每幀的處理時(shí)間需要小于等于40 ms。使用基于暗原色先驗(yàn)的去霧方法處理1920×1080大小的圖像,算法復(fù)雜度較高,在DSP上達(dá)到實(shí)時(shí)處理非常困難。本文使用12倍降采樣,每12×12的窗口取一個(gè)像素點(diǎn),轉(zhuǎn)換成160×90大小的圖像。算法的處理都是針對(duì)降采樣之后的圖像進(jìn)行的,求得160×90大小的透射率圖,最后直接重構(gòu)成1920×1080大小的無(wú)霧圖像。
1.2 圖像格式轉(zhuǎn)換優(yōu)化
參考文獻(xiàn)[1]中是針對(duì)RGB格式圖像進(jìn)行去霧處理的,本文針對(duì)的是YUV格式的圖像,所以必須進(jìn)行格式轉(zhuǎn)換。針對(duì)YUV數(shù)據(jù)進(jìn)行無(wú)霧重構(gòu)處理需要分為以下3個(gè)步驟:
(1)YUV格式有霧圖像轉(zhuǎn)換成RGB格式有霧圖像:
(2)RGB格式的有霧圖像重構(gòu)成 RGB格式的無(wú)霧圖像R′G′B′:
其中,Ab、Ag、Ar表示該幀圖像 3個(gè)通道的大氣光值。
(3)RGB格式的無(wú)霧圖像 R′G′B′轉(zhuǎn)換成無(wú)霧的YUV格式無(wú)霧圖像Y′U′V′:
本文提出一種針對(duì)YUV格式去霧處理的優(yōu)化計(jì)算方法,省略中間轉(zhuǎn)換過(guò)程,直接對(duì)YUV格式有霧圖像重構(gòu)成YUV的無(wú)霧圖像。先計(jì)算出:
由于一幀圖像中的 Ab、Ag、Ar是相同的,上面的計(jì)算每幀只需要計(jì)算一次,大大簡(jiǎn)化了計(jì)算過(guò)程。然后重構(gòu)無(wú)霧的YUV圖像:
本文提出的針對(duì)YUV直接重構(gòu)的方法在時(shí)間上和空間上都有較大的優(yōu)化效果,時(shí)間較之前節(jié)省了一半,內(nèi)存較之前節(jié)省了12 MB左右。
第1節(jié)中是在算法級(jí)上進(jìn)行的優(yōu)化,想要在DSP上表現(xiàn)出更好的性能,必須針對(duì)DSP做進(jìn)一步優(yōu)化。本文中的程序級(jí)優(yōu)化是針對(duì) TI C674x系列DSP,參考TI提供的技術(shù)文檔[3-6]進(jìn)行循序漸進(jìn)的優(yōu)化。本章選取其中最關(guān)鍵的幾種優(yōu)化方法,主要分為編譯器優(yōu)化、浮點(diǎn)改定點(diǎn)、查表法、使用DMA、線性匯編等。
2.1 編譯器優(yōu)化
選擇-O優(yōu)化選項(xiàng)。-O優(yōu)化選項(xiàng)分為3個(gè)等級(jí),等級(jí)越高優(yōu)化效果越好。本文中為了盡可能地加快處理速度,選擇-O3優(yōu)化選項(xiàng)。
打開(kāi)-mt編譯器優(yōu)化選項(xiàng)。通過(guò)這個(gè)開(kāi)關(guān),編譯器就可以更加合理、大膽地使用軟件流水線,從而可以極大地提高代碼效率。
去掉-g調(diào)試選項(xiàng)。-g選項(xiàng)在調(diào)試程序時(shí)必須選擇,但是-g選項(xiàng)在一定程度上影響程序的執(zhí)行速度,最后生成可執(zhí)行文件時(shí)關(guān)閉-g選項(xiàng)。
2.2 浮點(diǎn)運(yùn)算修改
DSP針對(duì)浮點(diǎn)運(yùn)算速度非常慢,所以在精度要求不是很高的前提下,浮點(diǎn)運(yùn)算很有必要改成定點(diǎn)運(yùn)算。定點(diǎn)運(yùn)算又可以轉(zhuǎn)換成DSP擅長(zhǎng)的整型和移位運(yùn)算,在DSP中兩個(gè)short型相乘在一個(gè)指令周期內(nèi)可以完成。
2.3 用查表法代替除法
DSP中沒(méi)有除法指令,如果計(jì)算中有除法的存在,會(huì)阻礙DSP的軟件流水,無(wú)法實(shí)現(xiàn)指令的并行處理。所以在DSP中應(yīng)盡量避免除法運(yùn)算的使用,使用其他運(yùn)算進(jìn)行替代。查表法是一種以空間換取時(shí)間的方法,開(kāi)辟一定的內(nèi)存存儲(chǔ)建表,把所有的可能取值都放在表內(nèi)。
2.4 DMA的使用
本文針對(duì)的是1080P高清視頻,每一幀的數(shù)據(jù)量達(dá)到幾MB,無(wú)法直接存儲(chǔ)在DSP片上存儲(chǔ)器L2 RAM(最大256 KB)中,必須放在DDR中。存儲(chǔ)在DDR中的數(shù)據(jù)就會(huì)出現(xiàn)一個(gè)問(wèn)題,讀取和寫入光靠CPU自己搬移會(huì)非常慢,并且搬移數(shù)據(jù)時(shí)阻礙了CPU的計(jì)算功能,這樣就很有必要使用DMA控制器。
首先DMA控制器從DDR中搬移需要處理的數(shù)據(jù)至L2 RAM上;CPU直接從L2 RAM中讀取需要處理的數(shù)據(jù);處理結(jié)果保存在L2 RAM中;DMA控制器再把處理結(jié)果搬移到DDR上對(duì)應(yīng)的存儲(chǔ)位置。具體的DMA數(shù)據(jù)搬移路徑如圖1所示。
圖1 DMA數(shù)據(jù)搬移路徑圖
2.5 C語(yǔ)言改成線性匯編
通過(guò)前面的優(yōu)化,能得到一個(gè)較好的優(yōu)化效果,但是距離1080P的實(shí)時(shí)要求還是有一定的差距,所以需要做最后的優(yōu)化,即線性匯編。
線性匯編的一個(gè)優(yōu)點(diǎn)就是可以不需要自己手動(dòng)進(jìn)行資源的配置,并且可以定義變量名,直接對(duì)變量名進(jìn)行操作,而編譯器在編譯時(shí)自動(dòng)將上面的變量或者參數(shù)定義為相對(duì)應(yīng)的寄存器。而且在線性匯編中,程序員不需要寫出延遲(NOP)的配置,這些工作編譯器都是在編譯時(shí)自己安排的。
3.1 處理結(jié)果
經(jīng)過(guò)上面優(yōu)化,在DSP硬件平臺(tái)上針對(duì)交通視頻進(jìn)行實(shí)際測(cè)試,處理結(jié)果如圖2所示。
圖2 實(shí)驗(yàn)結(jié)果
從圖2不難發(fā)現(xiàn),經(jīng)過(guò)上述優(yōu)化之后,針對(duì)交通視頻仍然有較好的去霧效果。
3.2 優(yōu)化結(jié)果
優(yōu)化之前移植到DSP上直接測(cè)試,針對(duì)1080P的YUV格式視頻,每幀需要耗時(shí) 10 s以上。經(jīng)過(guò)上述算法級(jí)優(yōu)化和DSP程序級(jí)優(yōu)化之后,針對(duì)1080P的YUV格式視頻,在DSP上運(yùn)行可以達(dá)到40ms/幀的速度,實(shí)現(xiàn)了實(shí)時(shí)處理的要求。
本文針對(duì)基于暗原色先驗(yàn)的去霧算法進(jìn)行優(yōu)化,分為算法級(jí)優(yōu)化和DSP程序級(jí)優(yōu)化。最終通過(guò)在實(shí)際硬件平臺(tái)上的測(cè)試,針對(duì)1080 PYUV格式的交通視頻能達(dá)到實(shí)時(shí)去霧的效果,并且有較好的去霧效果。本文的優(yōu)化方法不單單局限在本算法中,可以應(yīng)用到其他圖像算法需要移植到DSP上的場(chǎng)合。本文中的優(yōu)化方法雖然使得處理速度達(dá)到40 ms/幀,但是在今后的工作中需要進(jìn)一步優(yōu)化,縮短處理時(shí)間,為其他的算法節(jié)約出時(shí)間。
參考文獻(xiàn)
[1]He Kaiming,Sun Jian,Tang Xiaoou.Single image haze removal using dark channel prior[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2011,33(12):2341-2353.
[2]He Kaiming,Sun Jian,Tang Xiaoou.Guided image filtering[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2013,35(6):1397-1409.
[3]Texas Instruments.TMS320C674x DSP CPU and instruction Set[EB/OL].(2012-03-14)[2015-05-20].http://www.ti.com/litv/pdtysprufe8b.
[4]Texas Instruments.TMS320C6000 DSP enhanced direct memory access(EDMA)controller reference guide[EB/OL].(2003-xx-xx)[2015-05-20].http://www.ti.com/litv/pdf/spru234c.
[5]Texas Instruments.TMS320C6000 optimizing compiler user′s guide[EB/OL].(2000-xx-xx)[2015-05-20].http://www.ti.com/litv/pdf/spru187u.
[6]Texas Instruments.TMS320C6000 programmer′s guide[EB/OL].(2003-xx-xx)[2015-05-20].http://www.ti.com/litv/pdf/spru198k.
Optim ization and im plementation ofreal-time dehazing based on DSP
Zhu Xuejun1,Ling Qiang1,Li Bolun1,Xu Jun1,Chen Renai1,Wang Chuangen2,Qiu Huanchun2,Wang Gengzhong2,Zhang Qiankun2
(1.Depatment of Automation,University of Science and Technology of China,Hefei 230027,China;2.Anhui Chaoyuan Information Technology Inc.,Hefei 230021,China)
This paper presents a method to optimizethe performance of a dehazing algorithm based on dark channel prior intensity.There are two levels of optimizations,including the algorithm-level and the DSP-level one.The algorithm-level optimization is mainly accomplished by down-sampling and some efficient format conversion techniques of YUV.The DSP-based optimization targets for the optimization on TI C674x,such as the compiler optimization,conversion from floating-point to fixed-point multiplication,realizing division by a look-up table,Direct Memory Access(DMA)and linear assembly programming.Finally traffic videos of 1080P YUV formats can be real-time processed and yield good dehazing performance.
real-time;dehazing;DSP;optimization
TP368
A
1674-7720(2015)22-0096-03
朱學(xué)俊,凌強(qiáng),李博倫,等.基于DSP的實(shí)時(shí)去霧優(yōu)化與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2015,34(22):96-98.
2015-07-29)
朱學(xué)俊(1991-),男,碩士研究生,主要研究方向:嵌入式系統(tǒng)。
凌強(qiáng)(1975-),通信作者,男,博士,副教授,博士生導(dǎo)師,主要研究方向:網(wǎng)絡(luò)化控制、嵌入式系統(tǒng)。E-mail:qling@ustc.edu.cn。
李博倫(1992-),男,碩士研究生,主要研究方向:嵌入式系統(tǒng),圖像處理。
國(guó)家自然科學(xué)基金(61273112)