<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > JPEG解碼器IP核的設計與實現(xiàn)

          JPEG解碼器IP核的設計與實現(xiàn)

          作者: 時間:2011-05-24 來源:網(wǎng)絡 收藏

          1.6 IDCT模塊
          2D-IDCT的選用行列分解法,所以主要功能模塊包括1D-IDCT模塊和行列轉置模塊。因為全流水線系統(tǒng)解碼硬件成本很高,所以中主要通過提高運算并行度和在功能模塊內部流水線運算來提高解碼速度。IDCT模塊中采用了兩個1D-IDCT處理單元,并通過流水線技術實現(xiàn)高運算速率。
          1.6.1 1D-IDCT模塊設計
          本設計采用了一種運算量少、數(shù)據(jù)流簡單且適于流水線實現(xiàn)的IDCT算法。通過對1D-IDCT數(shù)據(jù)流程的合理劃分,將其分4級,在每級中間插入寄存器,對每級流水線內部運算的時序進行合理安排,在每級流水線內共享算術單元,降低硬件成本。1D-IDCT快速算法的數(shù)據(jù)流程如圖6所示。
          f.jpg

          本文引用地址:http://www.ex-cimer.com/article/162053.htm

          i.jpg


          通過對1D-IDCT數(shù)據(jù)流程的合理安排和資源共享,本設計共需4個加法器,4個減法器和4個乘法器,所用硬件資源比較少。而且本設計的處理速度快,每個時鐘周期輸入兩個像素,完成1D-IDCT的延遲時間是6個時鐘周期。在流水運算時計算一個8點1D-IDCT只需要4個時鐘周期。
          1.6.2 行列轉置模塊設計
          行列轉置矩陣的實現(xiàn)大部分設計采用雙RAM進行乒乓操作完成,本設計采用一個8×8寄存器陣列和方向控制信號完成,可節(jié)省一半硬件資源,且控制簡單。當有信號輸入時,方向控制信號值初始設為0,這時寄存器陣列的輸入輸出方向是從左到右,64個時鐘周期后方向控制信號反向變?yōu)?,這時寄存器陣列的輸入輸出方向是從下到上。如此循環(huán),即可實現(xiàn)行列轉置,如圖7所示。

          g.jpg



          2 綜合、仿真與性能分析
          設計時先用Matlab進行算法級仿真與驗證,在RLT級設計時采用Verilog語言實現(xiàn),在Modelsim6.1中進行功能仿真,選擇VIRTEX2系列xc2v250器件進行FPGA驗證,從軟硬件方面都驗證了設計的正確性。
          使用Synopsys公司的Design Compiler工具在0.18μm的SMIC CMOS工藝條件下,對RTL代碼進行綜合優(yōu)化。通過設置不同的面積、時序及功耗約束條件,縮短關鍵路徑的延時,時鐘頻率可達100 MHz的最優(yōu)設計,綜合出面積為721 695μm2,不包括存儲單元需要34.6 kB標準門。本設計能每秒能夠解碼1 920×1 080圖形25幀以上,所以也能用于一些有低成本需求的監(jiān)控、錄像系統(tǒng)。

          3 結束語
          介紹了基于靜止圖像壓縮標準核的設計,描述了硬件設計過程,提出了一種高效、低成本的架構。設計通過VIRTEX2平臺進行了FPGA驗證,并使用Synopsys公司的DC工具在SMIC 0.18 μmCMOS工藝條件下,對設計進行面積和時間的優(yōu)化,在100 MHz時鐘頻率下工作時電路面積為721 695μm2,每秒能夠解碼1 920×1 080圖形25幀以上。本設計還支持多種圖像質量和圖像格式,有較寬的壓縮比范圍,設計具有獨立性和完整性,也適用于數(shù)碼相機、手機和掃描儀等各種應用。


          上一頁 1 2 3 4 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();