Zedboard實(shí)現(xiàn)了算法的硬件化及脫機(jī)處理
摘 要:本文選擇了一種新穎的圖像縮放算法進(jìn)行FPGA硬件實(shí)現(xiàn)。該算法基于奇偶分解的思想,具有復(fù)雜度低、硬件需求小和縮放效果良好等突出優(yōu)點(diǎn)。首先利用MATLAB對(duì)該算法進(jìn)行了功能驗(yàn)證,然后用縮放耗時(shí)、PSNR、邊緣模糊等級(jí)和脈沖噪聲等指標(biāo)評(píng)估基于該算法圖像處理效果。與傳統(tǒng)時(shí)域算法作對(duì)比,對(duì)比結(jié)果表明該算法在處理效果和運(yùn)算速度上的優(yōu)異性。基于Zedboard開(kāi)發(fā)板,運(yùn)用Vivado HLS高級(jí)綜合工具將算法的C程序綜合成硬件IP,并搭建了包含ARM處理器和VGA等模塊的軟硬協(xié)同驗(yàn)證系統(tǒng)。實(shí)驗(yàn)驗(yàn)證了圖像縮放算法硬件設(shè)計(jì)的正確性和實(shí)用性。
1. 引言
數(shù)字圖像處理因其廣泛應(yīng)用于社會(huì)生活的各個(gè)領(lǐng)域,而成為了研究的熱點(diǎn)。圖像縮放是數(shù)字圖像處理中的一項(xiàng)基本而又關(guān)鍵的操作,多數(shù)圖像與視頻幀都是以壓縮的格式進(jìn)行存儲(chǔ)和傳送,以降低存儲(chǔ)資源的占用,提高數(shù)據(jù)傳輸?shù)男?。針?duì)不同的應(yīng)用,用戶通常需要不同分辨率的圖像。例如,在圖像數(shù)據(jù)傳輸過(guò)程中為節(jié)省帶寬,則通常需要發(fā)送低分辨率的圖像,而當(dāng)接收到圖像后,進(jìn)行顯示時(shí)又很希望看到高分辨率的圖像。盡管存在各種數(shù)據(jù)壓縮軟件,但數(shù)據(jù)的壓縮仍是有限的,而且數(shù)據(jù)的壓縮很可能已經(jīng)對(duì)圖片造成了一定的損壞,并不能確保圖片關(guān)鍵信息的保留。圖像縮放算法有很多,總體可分為基于時(shí)域和頻域兩大類算法,在時(shí)域圖像縮放方法中,主要有最近鄰域算法、雙線性插值算法和雙三次線性插值等。雖然它們?cè)诟纳茍D像縮放處理后的失真度上逐漸增強(qiáng),但其不斷下降的運(yùn)算速度也成為了不容忽視的問(wèn)題(特別在視頻幀放大中,圖片的切換頻率限制了縮放算法的可執(zhí)行時(shí)間)。
這些算法中,有的通過(guò)PC機(jī)上的MATLAB、C等高級(jí)語(yǔ)言實(shí)現(xiàn),有的基于ARM等嵌入式處理器實(shí)現(xiàn),而有的則是基于FPGA這類芯片進(jìn)行硬件的實(shí)現(xiàn)。由于PC機(jī)和ARM屬于多任務(wù)的操作系統(tǒng),通過(guò)軟件編程實(shí)現(xiàn)縮放算法是其常用的圖像縮放處理手段。系統(tǒng)代碼解析和串行執(zhí)行,以及多任務(wù)的切換等因素會(huì)嚴(yán)重降低圖像縮放效率和實(shí)時(shí)數(shù)據(jù)顯示,頻繁的圖像縮放會(huì)給系統(tǒng)的正常運(yùn)行造成相當(dāng)大的負(fù)擔(dān)。因此,本文重點(diǎn)研究第三種圖像縮放實(shí)現(xiàn)方法,充分利用FPGA的并行運(yùn)算、高集成度、可編程和低成本特性,編程實(shí)現(xiàn)縮放算法的硬件結(jié)構(gòu)和IP生成,為進(jìn)一步實(shí)現(xiàn)專用圖像縮放處理芯片的開(kāi)發(fā)和應(yīng)用提供幫助,以釋放處理器,提高圖像縮放質(zhì)量和效率。
在綜合考慮圖片處理效果、運(yùn)算速度和硬件資源需求后,本文選擇了由Hoon Yoo和Byong-Deok Choi共同提出的算法[1] ——基于奇偶分解的分段加權(quán)插值的圖像縮放算法(簡(jiǎn)稱WLI算法)進(jìn)行硬件實(shí)現(xiàn)。
WLI算法借助于奇偶分解的理論,基于16個(gè)相關(guān)點(diǎn)實(shí)現(xiàn)了圖像中新點(diǎn)值的確立。本課題基于Xilinx的全可編程器件Zedboard,利用vivado hls高級(jí)綜合工具編寫可綜合的c程序,實(shí)現(xiàn)了WLI縮放算法的硬件IP設(shè)計(jì),利用開(kāi)發(fā)板實(shí)際縮放操作驗(yàn)證了硬件縮放的高效率和低時(shí)間耗用特征,并通過(guò)圖像縮放的VGA對(duì)比顯示實(shí)驗(yàn)對(duì)設(shè)計(jì)進(jìn)行了驗(yàn)證。同時(shí),設(shè)計(jì)實(shí)現(xiàn)的IP也可以為圖像處理的SoC復(fù)用,降低SoC的開(kāi)發(fā)難度。
2. 圖像插值算法及MATLAB仿真 2.1. 傳統(tǒng)插值算法本文分別選取了最簡(jiǎn)單的、基于四個(gè)相關(guān)點(diǎn)的最近鄰插值算法;有二階線性運(yùn)算參與的雙線性插值算法;以及最復(fù)雜多浮點(diǎn)運(yùn)算的雙三次插值運(yùn)算作為對(duì)比算法,通過(guò)多種圖像質(zhì)量和效率評(píng)價(jià)方法,來(lái)評(píng)估WLI算法的優(yōu)劣性(具體算法實(shí)現(xiàn)參考 [2] 相關(guān)內(nèi)容)。
2.2. WLI算法WLI算法應(yīng)用奇偶分解的思想,將一維縮放中相關(guān)的四個(gè)點(diǎn)進(jìn)行奇偶分解(奇部和偶部的相關(guān)點(diǎn)值分解后的關(guān)系示例見(jiàn)圖1)。從定義上分析,奇部向量在頻域圖像數(shù)據(jù)處理中是一個(gè)高通濾波結(jié)構(gòu),相比于偶部向量,它具有更強(qiáng)的噪聲。而噪聲和高頻信號(hào)對(duì)該部分的影響往往會(huì)掩蓋該部分對(duì)正確縮放的像素點(diǎn)取值的貢獻(xiàn),所以為盡量避免奇部向量中攜帶的噪聲等參量對(duì)縮放質(zhì)量造成損害,對(duì)它進(jìn)行簡(jiǎn)單的線性化操作,得出公式(1)的處理方案。
因?yàn)榕疾肯蛄繉?duì)稱的特性,其對(duì)縮放點(diǎn)的最終取值具有很大的影響度。直接的線性擬合雖然具有運(yùn)算簡(jiǎn)單的特點(diǎn),但正如圖2所示,這會(huì)使得圖片點(diǎn)值的變化太快,影響視覺(jué)效果。為使該部分的取值具有緩慢變化的特征,基于平滑曲線的原型方程是一個(gè)很好的選擇,但曲線的復(fù)雜運(yùn)算帶來(lái)的資源耗用往往使算法縮放得不償失。因此,引文對(duì)此部分的曲線公式進(jìn)行分析討論,巧妙的引入w參數(shù)完成了運(yùn)算方法的降次和近似,如圖2所示,最終得出同樣是一次方程的擬合曲線圖像插值計(jì)算公式(2)。