新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > DM642上5/3提升小波的優化

        DM642上5/3提升小波的優化

        作者: 時間:2011-08-11 來源:網絡 收藏

        在新的圖像壓縮標準JPEG2000中,采用9/7、變換作為編碼算法,其中變換是一種可逆的整數變換,可以實現無損或有損的圖像壓縮。在通用的DSP芯片上實現該算法具有很好的可擴展性、可升級性與易維護性。用這種方式靈活性強,完全能滿足各種處理需求。
        1 算法
        算法[1]是由Sweldens等在Mallat算法的基礎上提出的,也稱為第二代變換。與Mallat算法相比,提升算法不依賴傅立葉變換,降低了計算量和復雜度,運行效率相應提高。由于具有整數變換及耗費存儲單元少的特點,提升算法很適合于在定點DSP上實現。
        小波提升算法的基本思想是通過基本小波逐步構建出一個具有更加良好性質的新小波。其實現步驟為分解(split)、預測(predict)和更新(update)。
        首先按照對原信號進行對稱延拓得到新的x(n)。
        分解是將數據分為偶數序列x(2n)和奇數序列x(2n+1)二個部分;
        預測是用分解的偶數序列預測奇數序列,得到的預測誤差為變換的高頻分量:H(n)=x(2n+1)-{[x(2n)+x(2n+2)]>>1}
        更新是由預測誤差更新偶數序列,得到變換的低頻分量: L(n)=x(2n)+{[H(n)+H(n-1)+2]>>2}
        計算過程如圖1所示。

        本文引用地址:http://www.104case.com/article/150361.htm


        在這種方法中,SDRAM中的一個數據塊首先傳輸到L2中,然后取到L1D中進行水平方向的提升,再對該塊進行垂直方向的提升。這樣,由于垂直提升所需的數據都在L1D中,避免了此處數據緩存缺失的產生,使總的缺失數大大降低。
        2.3 數據傳輸
        (1)SDRAM與L2間的數據傳輸
        由于EDMA[6][7]數據傳輸與CPU運行相互獨立,因此在L2中開辟兩塊緩存:EDMA在CPU處理InBuffA的同時將下一塊數據傳輸到InBuffB,解決了CPU讀取低速設備SDRAM引起的時延,如圖3所示。


        邊界延拓主要是用于計算高頻系數。分析發現,水平提升時,當前數據塊每一行的最后一個高頻系數與下一個塊在該行的第一個高頻系數相同。所以只要把當前塊的這些系數保存起來,在對下一塊進行水平提升時第一個高頻系數就不需要再進行計算,因此也就不需要再對其左邊界進行延拓了。垂直方向的提升也是同樣的道理。在程序中添加兩個數組,分別用于存放當前塊的每一行與每一列的最后一個高頻系數。采用這種方法就可以降低程序的復雜度,提高執行效率,減少缺失的發生。
        像素擴展函數pix_pand[9]是采用TI的IMGLIB算法庫。水平提升與垂直提升函數均由作者用線性匯編語言編寫,充分利用64x系列DSP的半字處理指令,采用半字打包技術,最大限度地提高程序的執行效率。
        水平提升時,將每行的數據重新排序,變成如圖5所示的結構。


        表2列出了幾種方法的計算性能。由于本文采用了多種
        技術,運算速度提高了4~10倍。試驗證明這些方法十分有效。



        關鍵詞: 優化 小波 提升 5/3 DM642

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 潮安县| 五寨县| 奉贤区| 江川县| 兴隆县| 阿图什市| 锡林浩特市| 河池市| 厦门市| 湖口县| 常德市| 霍山县| 介休市| 眉山市| 鲁山县| 邢台县| 沙坪坝区| 泰和县| 广宁县| 敦化市| 泌阳县| 府谷县| 陵川县| 新民市| 资阳市| 云阳县| 德钦县| 江口县| 昌都县| 乃东县| 苍溪县| 清镇市| 即墨市| 扬中市| 磴口县| 白银市| 吉首市| 龙游县| 榆树市| 中方县| 朝阳县|