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

?

基于Blackfin561的JPEG2000壓縮算法編碼優(yōu)化

2012-06-01 02:54:58董智超
電子科技 2012年1期
關(guān)鍵詞:編譯器子塊鄰域

董智超

(西安電子科技大學電子工程學院,陜西西安 710071)

JPEG2000[1],即 ISO/ITU15444 是由國際標準化組織ISO和國際電信標準化聯(lián)盟ITU-T于2001年聯(lián)合頒布的新一代圖像壓縮國際標準,可應用于計算機和網(wǎng)絡環(huán)境,以及數(shù)碼相機、醫(yī)學圖像、傳真機等圖像設(shè)備的數(shù)字圖像壓縮編碼。

而DSP芯片的發(fā)展也越發(fā)成熟,各種高速度、低功耗、大容量的DSP不斷涌現(xiàn)?;谕ㄓ肈SP設(shè)計的算法平日除了成本低以外,還具有靈活性強、擴展性好、可升級和易維護的優(yōu)點,特別適用于新型產(chǎn)品的研究開發(fā)。因此,600 MHz主頻和4個8位視頻 ALU(Arithmetic Logic Unit)的Blackfin561 處理器[2]適合成為開發(fā)JPEG2000算法的平臺。

1 JPEG2000算法結(jié)構(gòu)簡介

圖1所示為JPEG2000靜止圖像壓縮算法的編解碼流程圖。首先對原始圖像數(shù)據(jù)進行離散小波變換,然后對變換后的小波系數(shù)進行量化和對量化后的數(shù)據(jù)熵編碼,最后形成輸出碼流。解碼器是編碼器的逆過程,首先對碼流進行熵解碼,然后解量化和小波反變換,最后生成重建圖像數(shù)據(jù)。各模塊的算法程參閱文獻[3~5]。

圖1 JPEG2000算法流程圖

2 編碼算法的優(yōu)化

2.1 算法改動

(1)在原程序中,上下文建模和編碼通道的選擇都依賴于8鄰域或3×6鄰域的重要性狀態(tài)(變量Fc[][]表示)。以8鄰域為例,判斷8鄰域的重要性狀態(tài)[5]需要依次讀取8個值分別進行判斷,不僅讀取數(shù)據(jù)花費的時間多,而且條件判斷也較多。

于是提出了一種新方法:重要性狀態(tài)標記。即當在編碼掃描中發(fā)現(xiàn)某一個系數(shù)變?yōu)椤爸匾摹敝?,將它?個鄰域的相應比特位標記為1。標記過程如圖2所示,neighbor_stat[][]為重要性標記變量,當前系數(shù)X[i][j]變?yōu)椤爸匾摹敝?,分別將 neighbor_sata[i-1][j-1]到 neighbor_stat[i+1][j+1]的0 ~7 比特位標記為1。

圖2 重要性傳播標記過程

反過來,對于一個重要性標記變量neighbor_stat[i][j],它的8個比特位也包含了8個鄰域的重要性狀態(tài)信息(Fc[i-1][j-1]~Fc[i+1][j+1]),具體等價關(guān)系如表1所示。這樣,原來需要讀取8個數(shù)(Fc[i-1][j-1]~Fc[i+1][j+1]),現(xiàn)在只需讀取一個數(shù) neighbor_stat[i][j],即可得到 8 鄰域的重要性狀態(tài)信息。

表1 neighbor_stat[][]各比特位與 Fc[][]等價關(guān)系

經(jīng)過以上改進后,重要性狀態(tài)相關(guān)的模塊性能明顯提升,較大縮短了編碼過程的執(zhí)行時間。

(2)漸進過程優(yōu)化截斷中,給出兩種截斷方式:子帶截斷和子塊截斷。子帶截斷即是在每個小波子帶編碼結(jié)束后,進行一次截止最低位平面的判斷;子塊截斷即是在每個編碼子塊編碼結(jié)束后,進行一次截止最低位平面的判斷。

通過實驗發(fā)現(xiàn),對于不同壓縮率的圖像壓縮,選擇不同的截斷方式的效果有所不同,低倍(8倍以下)壓縮時,子塊截斷的效果可能更好,而高倍壓縮(16倍以上)時子帶截斷的效果更好。

2.2 代碼級優(yōu)化

Visual DSP提供了跟蹤(Trace)、時間統(tǒng)計(Profile)等功能,允許在整個程序空間中進行評估。通過Profile功能可以發(fā)現(xiàn)DSP程序中的瓶頸現(xiàn)象和需要優(yōu)化的程序塊,并且在程序的執(zhí)行過程中能夠隨時查看寄存器/存儲器中數(shù)值的變化,以及源程序代碼的執(zhí)行過程。

2.2.1 編譯器優(yōu)化

通過使能編譯器中的優(yōu)化選項Project Option->Enable Optimization可以實現(xiàn)編譯器自動優(yōu)化,可以節(jié)約大量代碼移植和優(yōu)化的工作量。使能該選項后,Visual DSP++的編譯器能夠完成冗余代碼和數(shù)據(jù)去除、向量化、軟件流水、硬件循環(huán)和指令并行等優(yōu)化工作。

2.2.2 數(shù)據(jù)優(yōu)化

(1)使用了分配在固定段的二維數(shù)組來代替指針和動態(tài)內(nèi)存分配。利用數(shù)組,編譯器可以更加準確地理解兩個連續(xù)數(shù)據(jù),而這往往是編譯器進行積極優(yōu)化時難以克服的一個關(guān)卡。

(2)將除法轉(zhuǎn)換為乘法,將浮點運算轉(zhuǎn)化為定點運算[2]。Blackfin561是一款定點處理器,它本身并不支持float、double等浮點數(shù)據(jù)類型,只能通過仿真實現(xiàn),所以用BF561直接進行浮點運算是很費時的。因此要通過浮點轉(zhuǎn)換定點來對定點數(shù)進行操作,例如浮點的系數(shù)Coeff[0]=1.586 134 342,將其表示成2.14格式:Coeff[0]=1.586 134 342 ×214=0x6583。

(3)使用DMA實現(xiàn)外部存儲器數(shù)據(jù)到內(nèi)部存儲空間的搬移,并使用雙緩沖的形式實現(xiàn)對數(shù)據(jù)的乒乓操作。具體到算法中的塊,文中對小波變換和算術(shù)編碼的模塊使用。

2.2.3 循環(huán)優(yōu)化

雖然BF561有兩組零開銷循環(huán)寄存器,但只能支持兩重硬件循環(huán)。因此,只有嵌套最深的循環(huán)才會使用硬件循環(huán)。并且,只有循環(huán)體的執(zhí)行次數(shù)是確定值時,才會使用硬件循環(huán)。

如果循環(huán)體內(nèi)有條件判斷,可能會出現(xiàn)大量控制流延遲。所以,將部分條件執(zhí)行的if語句放在循環(huán)體外單獨執(zhí)行。

JPEG2000在編碼塊的每個位平面,是按每4個系數(shù)為一列進行掃描的。也就是說,循環(huán)次數(shù)不>4。在這種循環(huán)次數(shù)比較少的情況下,可以考慮把循環(huán)體展開。雖然展開循環(huán)后,代碼的緊湊性變差,但速度可以提高很多。

2.2.4 C程序匯編化和匯編優(yōu)化

ANSI-C畢竟不是一種專門的信號處理語言,它更適用于系統(tǒng)設(shè)計,而不是數(shù)學運算。而Visual DSP允許C與匯編混合編程,因此將一些關(guān)鍵的代碼區(qū)域按一定的規(guī)則[2]進行匯編化,然后在C中調(diào)用。

BF561提供了10級的軟件流水[2],并提供語句的并行執(zhí)行功能。因此對匯編代碼的優(yōu)化主要體現(xiàn)在并行語句的增加和減少阻塞、降低延遲上。

此處將算術(shù)編碼器的主程序以及小波變換主程序用匯編實現(xiàn)并優(yōu)化,以512×512,2×2分片,16倍壓縮的Lena灰度圖像的處理為例,算術(shù)編碼器匯編化完成之后,EBCOT部分總時鐘周期較匯編化之前減少了約10%,而小波的匯編化則節(jié)約了小波變換部分39.5%的時鐘周期。

3 優(yōu)化結(jié)果

測試條件:512×512 LENA圖,分為4個256×256的拼接塊(2×2分片),16倍壓縮,3級小波變換,編碼塊大小32×32,編譯器優(yōu)化選項開到最大速度。

表2 優(yōu)化前后對比

4 結(jié)束語

介紹了JPEG2000壓縮算法的基本框架,然后提出了在Blackfin561處理器上實現(xiàn)的優(yōu)化方案,包括算法級優(yōu)化和代碼級優(yōu)化,并給出優(yōu)化結(jié)果。最終的優(yōu)化結(jié)果表明,提出的優(yōu)化方案在不降低圖像峰值信噪比的情況下大大縮短了編碼的時間,提高了算法效率。

[1]RABBANI M,JOSHI R.An overview of the JPEG2000 still image compression standard [J].Signal Processing:Image Communication,2002(1):48.

[2]胡棟.靜止圖像編碼的基本方法與國際標準[M].北京:北京郵電大學出版社,2006.

[3]Analog Devices,Inc.Visual DSP++assembler and preprocessor manual[M].USA:Analog Devices Conpration,2006.

[4]DAVID S T,MICHAEL W M.JPEG2000 圖像壓縮基礎(chǔ)、標準和實踐[M].魏江力,柏正堯,譯.北京:電子工業(yè)出版社,2004.

[5]ISO.JPEG2000 Image Coding System[S].USA:ISO/ITU -T FCD 15444-1,2000.

猜你喜歡
編譯器子塊鄰域
基于八叉樹的地震數(shù)據(jù)多級緩存方法
基于八叉樹的地震數(shù)據(jù)分布式存儲方法研究
基于特征值算法的圖像Copy-Move篡改的被動取證方案
稀疏圖平方圖的染色數(shù)上界
基于相異編譯器的安全計算機平臺交叉編譯環(huán)境設(shè)計
基于波浪式矩陣置換的稀疏度均衡分塊壓縮感知算法
基于鄰域競賽的多目標優(yōu)化算法
自動化學報(2018年7期)2018-08-20 02:59:04
關(guān)于-型鄰域空間
通用NC代碼編譯器的設(shè)計與實現(xiàn)
基于時序擴展的鄰域保持嵌入算法及其在故障檢測中的應用
太白县| 洪泽县| 德惠市| 南投市| 日喀则市| 吴旗县| 新巴尔虎左旗| 高唐县| 沧州市| 蓝山县| 衡水市| 会同县| 新竹市| 望江县| 曲松县| 松桃| 太谷县| 阜南县| 郧西县| 光泽县| 新余市| 洛阳市| 云霄县| 嫩江县| 克东县| 斗六市| 潜江市| 会昌县| 肃北| 永修县| 夏河县| 福安市| 泾阳县| 天台县| 南投县| 桐城市| 崇阳县| 台南市| 化德县| 宁晋县| 河北区|