一種基于粗粒度可重構(gòu)系統(tǒng)的二維離散小波變換實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于粗粒度可重構(gòu)系統(tǒng)技術(shù)領(lǐng)域,具體涉及一種可應(yīng)用于圖像壓縮、信號(hào) 處理等場(chǎng)合的基于粗粒度可重構(gòu)系統(tǒng)及其處理方法。
【背景技術(shù)】
[0002] 在主流計(jì)算模式中,處理器和專(zhuān)用集成電路(ASIC) -直是兩大主流。伴隨著應(yīng)用 領(lǐng)域特別是嵌入式環(huán)境對(duì)系統(tǒng)的性能、能耗、上市時(shí)間等指標(biāo)需求的不斷提高,傳統(tǒng)的計(jì)算 模式暴露出了種種弊端。
[0003] 處理器方式能夠靈活地實(shí)現(xiàn)各種應(yīng)用,但卻在性能上有缺陷;而硬件邏輯實(shí)現(xiàn)性 能雖然高,但靈活性卻很差。為了在計(jì)算性能和實(shí)現(xiàn)靈活性上做一個(gè)很好的權(quán)衡,可重構(gòu)計(jì) 算(Reconfigurable Computing)技術(shù)浮出了水面??芍貥?gòu)計(jì)算技術(shù)集中了處理器和專(zhuān)用集 成電路的優(yōu)勢(shì),能夠提供高效靈活的計(jì)算能力,同時(shí)也是探索一條解決納米級(jí)芯片高昂設(shè) 計(jì)和投片成本的新路。當(dāng)芯片特征尺寸降至45nm之后,芯片一次性工程(Non-Recurring Engineering,NRE)費(fèi)用暴漲,可重構(gòu)技術(shù)是降低芯片攤銷(xiāo)成本,實(shí)現(xiàn)一款芯片多個(gè)應(yīng)用的 新路。在嵌入式領(lǐng)域中的一些主流的計(jì)算密集型應(yīng)用都非常適合利用可重構(gòu)計(jì)算技術(shù)去實(shí) 現(xiàn),如面向交互式圖形、圖像和視頻實(shí)時(shí)處理等高密度媒體信號(hào)計(jì)算?,F(xiàn)階段,可重構(gòu)架構(gòu) 片上系統(tǒng)(system on chip,SoC)芯片可以實(shí)現(xiàn)面向移動(dòng)通信終端和高性能媒體處理等多 種應(yīng)用,為我國(guó)參與新一代媒體處理和高性能移動(dòng)計(jì)算國(guó)際競(jìng)爭(zhēng)提供戰(zhàn)略技術(shù)儲(chǔ)備。
[0004] 離散小波變換是現(xiàn)代頻譜分析工具,廣泛運(yùn)用于圖像壓縮和信號(hào)處理算法中,因 而在可重構(gòu)架構(gòu)上高效的實(shí)現(xiàn)離散小波變換具有很高的實(shí)用價(jià)值。離散小波變換的目的是 經(jīng)過(guò)變換,對(duì)于圖像的局部時(shí)域過(guò)程中的頻域特性和局部的頻域過(guò)程中的時(shí)域特性都進(jìn)行 考察。與離散余弦變換算法相比,離散小波變換算法消除了離散余弦算法壓縮時(shí)普遍具有 的方塊效應(yīng),使得數(shù)據(jù)經(jīng)過(guò)還原之后會(huì)有更好的細(xì)節(jié)特征。離散小波變換算法主要有卷積 算法和提升算法兩大類(lèi),卷積算法的算法描述如式子(1)所示:
[0007] x2n+k為數(shù)據(jù)值,hk和gk為采樣系數(shù),LPjPBPr^ v別表示高頻分量和低頻分量,即采樣 同一行的連續(xù)幾個(gè)點(diǎn)的值,分別與特定系數(shù)求積之后再求和,分別求出高頻和低頻分量的 值。
[0016] 其中X1表示一行中第i個(gè)數(shù)據(jù),S1P表示第0次提升的一行數(shù)據(jù)中第i個(gè)奇數(shù)點(diǎn)值,
4、Sf的含義類(lèi)似,而表示第0次提升的一行數(shù)據(jù)點(diǎn)數(shù)據(jù)中的第i個(gè)偶數(shù)點(diǎn)的值,封、df 的含義類(lèi)似,而α,β,γ,y,k則表示固定系數(shù)。提升算法即取一個(gè)數(shù)據(jù)的左右兩個(gè)數(shù)據(jù)的值 的和與一個(gè)系數(shù)相乘再與該數(shù)據(jù)點(diǎn)自身的值求和之后即為該點(diǎn)的新值。81表示第i個(gè)奇數(shù) 點(diǎn)的最終運(yùn)算結(jié)果,Cl 1表示第i個(gè)偶數(shù)點(diǎn)的最終運(yùn)算結(jié)果。
[0017] 二維離散小波變換指的是對(duì)于同一二維數(shù)據(jù)先進(jìn)行行變換,再進(jìn)行列變換,變換 的算法相同?,F(xiàn)有的二維離散小波變換算法存在數(shù)據(jù)計(jì)算量大,算法靈活程度高等特點(diǎn), ASIC實(shí)現(xiàn)很難滿(mǎn)足多種長(zhǎng)度,多種小波基的二維離散小波變換算法的需求,而通用計(jì)算又 很難滿(mǎn)足二維離散小波變換大量數(shù)據(jù)計(jì)算的性能需求。
【發(fā)明內(nèi)容】
[0018] 發(fā)明目的:針對(duì)上述現(xiàn)有技術(shù)存在的問(wèn)題和不足,本發(fā)明的目的是提供一種大規(guī) 模粗粒度嵌入式可重構(gòu)系統(tǒng)及其處理方法,針對(duì)離散小波變換的特點(diǎn):數(shù)據(jù)計(jì)算量大,運(yùn)算 規(guī)整等,考慮到粗粒度可重構(gòu)系統(tǒng)的計(jì)算并發(fā)性,中間結(jié)果可循環(huán)利用,運(yùn)算模塊獨(dú)立且可 配置以及資源結(jié)構(gòu)分布式可調(diào)度等優(yōu)點(diǎn),采用可重構(gòu)系統(tǒng)技術(shù)來(lái)實(shí)現(xiàn)二維離散小波變換算 法,以達(dá)到高效性和靈活性?xún)烧叩钠胶猓粌H能達(dá)到二維離散小波變換的數(shù)據(jù)計(jì)算的性能 要求,還能根據(jù)需要調(diào)整小波基和長(zhǎng)度,有利于算法的進(jìn)一步開(kāi)發(fā)和升級(jí)。通過(guò)采用可重構(gòu) 技術(shù)來(lái)實(shí)現(xiàn)的離散小波變換算法,兼具靈活性和高性能優(yōu)勢(shì)。
[0019] 為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明采用的技術(shù)方案為:一種基于粗粒度可重構(gòu)系統(tǒng)的 二維離散小波變換實(shí)現(xiàn)方法,包括:將二維離散小波變換算法分成行變換算法和列變換算 法,然后將行變化算法和列變換算法轉(zhuǎn)化為并行化的數(shù)據(jù)控制流圖,確定數(shù)據(jù)輸入輸出方 式和數(shù)據(jù)組織結(jié)構(gòu),并將并行化的數(shù)據(jù)控制流圖生成配置信息映射到可重構(gòu)架構(gòu)上,行變 換和列變換間的中間結(jié)果數(shù)據(jù)通過(guò)共享存儲(chǔ)器進(jìn)行緩存,以實(shí)現(xiàn)二維離散小波變換算法。
[0020] 進(jìn)一步的,所述將行變換算法和列變換算法轉(zhuǎn)化為并行化的數(shù)據(jù)控制流圖指的是 對(duì)行變換算法和列變換算法進(jìn)行分析,提取行變換算法和列變換算法中的并行性,并轉(zhuǎn)換 為并行化的數(shù)據(jù)控制流圖;
[0021] 進(jìn)一步的,所述提取行變換算法和列變換算法中的并行性指的是提取行變換算法 和列變換算法中的數(shù)據(jù)級(jí)并行性和任務(wù)級(jí)并行性,其中數(shù)據(jù)級(jí)并行性指的是算法中相互無(wú) 依賴(lài)關(guān)系的數(shù)據(jù)能夠同時(shí)計(jì)算而不影響最終結(jié)果,任務(wù)級(jí)并行性指的是算法中的沒(méi)有依賴(lài) 關(guān)系的子算法能夠同時(shí)進(jìn)行計(jì)算而不影響最終結(jié)果。
[0022] 進(jìn)一步的,
[0023] 所述將并行化的數(shù)據(jù)控制流圖生成配置信息映射到可重構(gòu)架構(gòu)上指的是結(jié)合可 重構(gòu)架構(gòu)的運(yùn)算陣列的形狀以及所述運(yùn)算陣列中的運(yùn)算單元的特性,將并行化的數(shù)據(jù)控制 流圖中的并行化的任務(wù)進(jìn)行劃分,然后將每個(gè)任務(wù)都用一組運(yùn)算陣列中的運(yùn)算單元的組合 來(lái)完成,最終獲得的所有的運(yùn)算陣列中的運(yùn)算單元的控制信息即為配置信息。
[0024] 進(jìn)一步的,所述可重構(gòu)架構(gòu)包括4個(gè)運(yùn)算陣列,每個(gè)運(yùn)算陣列包括8x8個(gè)運(yùn)算單元, 每個(gè)運(yùn)算單元均以算術(shù)邏輯單元為基本單元,能獨(dú)立完成加,減,乘,除等算術(shù)運(yùn)算和與, 或,非等邏輯運(yùn)算以及其他如絕對(duì)值運(yùn)算,三目選擇運(yùn)算等復(fù)雜運(yùn)算;所述可重構(gòu)架構(gòu)還包 括存儲(chǔ)器和存儲(chǔ)訪問(wèn)控制器,所述存儲(chǔ)器和存儲(chǔ)訪問(wèn)控制器均和總線相連,能自動(dòng)完成多 次循環(huán)操作;
[0025] 將并行化的數(shù)據(jù)控制流圖中的并行化的任務(wù)進(jìn)行劃分包括:對(duì)于并行化的數(shù)據(jù)控 制流圖,在采用卷積算法的時(shí)候,對(duì)于行變換算法,將高頻值計(jì)算和低頻值計(jì)算的任務(wù)分 開(kāi),將計(jì)算不同行的任務(wù)分開(kāi),并行的放到運(yùn)算陣列上執(zhí)行,而對(duì)于列變換算法,每列的變 換算法計(jì)算都是無(wú)依賴(lài)關(guān)系的,能夠并行計(jì)算,變換算法的計(jì)算任務(wù)按列來(lái)劃分;在采用提 升算法的時(shí)候,對(duì)于行變換算法,輸入的兩個(gè)數(shù)據(jù)之間無(wú)依賴(lài)關(guān)系,同時(shí)兩行數(shù)據(jù)的行變換 之間也沒(méi)有依賴(lài)關(guān)系,將變換算法任務(wù)按照行來(lái)劃分,同一行的變換算法按照兩個(gè)數(shù)據(jù)一 組來(lái)劃分;對(duì)于列變換算法,劃分為奇數(shù)行輸入和偶數(shù)行輸入兩個(gè)子任務(wù),計(jì)算得到的中間 結(jié)果保留供給下次變換算法使用。
[0026] 進(jìn)一步的,所述確定數(shù)據(jù)輸入輸出方式和數(shù)據(jù)組織結(jié)構(gòu)包括數(shù)據(jù)規(guī)整和邊界對(duì)稱(chēng) 擴(kuò)展;其中數(shù)據(jù)規(guī)整指的是根據(jù)并行化之后的數(shù)據(jù)控制流圖對(duì)于數(shù)據(jù)格式的需求,將預(yù)處 理后的源圖像的二維數(shù)據(jù)進(jìn)行重排,使得并行化的數(shù)據(jù)控制流圖在可重構(gòu)架構(gòu)上實(shí)現(xiàn)的時(shí) 候能夠不用等待數(shù)據(jù)的輸入輸出,提高數(shù)據(jù)的輸入輸出效率;根據(jù)一維離散小波變換算法, 每個(gè)點(diǎn)在計(jì)算小波變換的時(shí)候都需要左右兩邊的若干個(gè)點(diǎn),因而在圖像靠近兩邊邊界的地 方,需要對(duì)數(shù)據(jù)進(jìn)行對(duì)稱(chēng)的擴(kuò)展以保證計(jì)算的時(shí)候的正確性;邊界對(duì)稱(chēng)擴(kuò)展指的是:在圖像 邊界上,以邊界為軸,將數(shù)據(jù)按照軸對(duì)稱(chēng)的方式在邊界外進(jìn)行擴(kuò)展,使得在處理邊界數(shù)據(jù)點(diǎn) 的時(shí)候保證正確性。
[0027]有益效果:本發(fā)明通過(guò)提供一種粗粒度可重構(gòu)系統(tǒng)及其處理方法,采用可重構(gòu)技 術(shù)來(lái)解決算法性能和算法靈活性的矛盾,在保持算法靈活性的前提下,用可重構(gòu)的并行計(jì) 算能力來(lái)對(duì)算法進(jìn)行加速,兼具靈活性和高性能優(yōu)勢(shì)。
【附圖說(shuō)明】
[0028] 圖1是本發(fā)明中的粗粒度可重構(gòu)系統(tǒng);
[0029] 圖2是本發(fā)明中的二維離散小波變換算法在可重構(gòu)平臺(tái)上實(shí)現(xiàn)的流程圖;
[0030]圖3是以圖像壓縮算法中采用的5/3提升算法為例,給出本發(fā)明進(jìn)行行變換算法和 列變換算法的并行化數(shù)據(jù)控制流圖的子任務(wù)劃分示意圖,分別如圖3(a)和圖3(b)所示;
[0031] 圖4是以