新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > JPEG2000小波提升在DSP上的緩存管理

JPEG2000小波提升在DSP上的緩存管理

——
作者: 時間:2007-02-06 來源:電子技術應用 收藏

JPEG2000在DSP上的緩存管理
武漢大學電子信息學院(430079) 辛慶勛 金偉正 顧益芳
 
  摘 要:提出一種采用高效的實現的基于塊的方案。該方法通過減少增強緩存性能。實驗結果表明該方法比現有的快速方法要快兩倍多
  關鍵詞:

  JPEG2000壓縮標準與JPEG相比有更高的壓縮效率,盡管如此,它在執(zhí)行時間上還存在一些問題。為縮短執(zhí)行時間,必須對小波變換編碼進行優(yōu)化。小波提升方案與傳統(tǒng)的卷積濾波相比需要更小的內存和計算量??墒?提升方案在執(zhí)行垂直小波濾波時仍存在嚴重的問題。
  Meerwald 曾經提出過行擴展和聚合的方法,Chatterjee 和 Brooks也提出了條采集和遞歸數據設計來改善提升方案的緩存處理。盡管這些方法可以降低緩存失敗率,卻不能完全消除緩存失敗問題。緩存失敗問題在一個內存有限的嵌入式系統(tǒng)中變得較為突出,尤其是在DSP中更為嚴重。為解決這一問題,筆者提出了一種新的方法與DSP相匹配。
1 主要方法
  圖1是該方法的內存結構圖。它由一個有兩個64字節(jié)塊聯(lián)合的16KB數據緩沖存儲器L1、直接映射到SRAM上的數據存儲器L2、直接映射到DRAM上的外部存儲器和一個DMA控制器組成。

圖1 提升算法的輸入圖像內存處理圖

  通常,為執(zhí)行提升方案,圖像的行先在水平方向濾波,然后經水平濾波的圖像再進行垂直濾波。提出的新方法采用一個改進的按塊執(zhí)行的提升方案,塊大小與L1緩存中的塊大小相同。圖1描述了該方法。在小波提升變換開始前,在輸入圖像內存中塊1的數據已通過DMA傳輸到L2,然后L2中塊1的第一行被取到L1緩存中在水平方向提升。以相同方式對塊1下面的行進行處理。注意在塊1的最后一行濾波后,L1緩存中包含輸入圖像內存中塊1的數據;其次,塊1的垂直方向的濾波在L1緩存中完成。這樣,垂直提升就不需要取數據,因為L1緩存包含塊1的數據。因此,塊1在水平和垂直方向的濾波只在CPU需要下一水平行時才可能有緩存失敗。這就是筆者提出的方法有顯著性能的原因所在。
  塊1完全濾波后,塊2被取到L1緩存的1路中;然后,塊2的濾波完成后,塊3被從L2取到L1的0路中。同時,0路中濾波過的塊1 一行一行移到L2。圖2描述了濾波過的塊1的移動,每個子帶分別稱為LL、 LH、HL和HH,已經由小波提升算法形成。每個子帶中的數據從L2通過DMA傳送到輸出圖像內存中的恰當位置。
  L2與外部存儲器之間的數據傳遞是獨立于L1與L2間的數據傳遞進行的。這意味著通過DMA的塊復制不影響CPU的運轉。因此,通過小波提升序列的重新排序和控制DMA,在沒有額外CPU負載的情況下增大了緩存成功率。
  該方法完全去除了緩存失敗的問題, 但還存在一個問題,因為小波濾波在邊界需要一些鄰近塊的系數才能獲得正確的濾波結果。而這一方法中,垂直提升處理與這一問題不相關,因為垂直的兩個鄰近塊總是同時裝載于L1緩存中。但對于水平提升處理,筆者用下面的方法來解決:區(qū)1和區(qū)3都取到濾波器區(qū)域1,如圖3所示。對于濾波器區(qū)2,區(qū)2和區(qū)3都是必需的。然而,當達到改進性能時,重疊處理的開銷是可忽略的。

圖2 提升算法的輸出圖像內存處理圖

圖3 重疊塊結構

2 仿真結果
  為檢驗所提出方法的效率,在TMS320C6416 DSP上用Jasper1.700.2版進行了仿真。所有數據都對灰度圖像的第一級分解并且所有圖像的寬度2倍放大。
  表1顯示了用本文方法產生的緩存失敗數目。其中,在水平濾波上產生的緩存失敗是由塊重疊引起的。然而,在垂直濾波中,算法完全去除了緩存失敗,因此,算法減少了98%的緩存失敗率。

表1 緩存失敗數目比較

  • <tbody id="fn4vj"><button id="fn4vj"></button></tbody>
    圖像尺寸 提升方向 緩存失敗數
        本文方法 其它方法
    256

    評論


    相關推薦

    技術專區(qū)

    <rt id="fn4vj"></rt>

    1. <object id="fn4vj"><strike id="fn4vj"><dfn id="fn4vj"></dfn></strike></object>
      <input id="fn4vj"><rp id="fn4vj"></rp></input>