新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于SoC的MPEG-4視頻解碼加速器

        基于SoC的MPEG-4視頻解碼加速器

        作者: 時間:2012-12-13 來源:網絡 收藏

        引言

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

        隨著應用的普及, 符合標準的在手持設備上的應用越來越廣泛, 技術可以在完成其它功能的同時, 在手持設備上低成本低功耗的實現。而方案可以有多種, 例如采用CPU 內核軟件,也可引入DSP核, 或者設計專用的硬件加速電路。但是, 軟件解碼在系統繁忙時難以滿足實時性要求,引入DSP核會使的芯片成本大為增加, 所以本文將MPEG-4的解碼電路作為SoC芯片中的一個硬件加速模塊來實現。

        在手持設備應用中, MPEG-4 簡單層(Simple Profile) 最為常用, 而其中計算量最大的部分是反離散余弦變換( Inverse Discrete CosineTransform ) , 所以反離散余弦變換的實現是加速MPEG-4 解碼的關鍵。有很多優秀的設計專門以處理IDCT為目標.本文描述的MPEG-4解碼AMBA 總線, 作為高速總線(AHB) 上的一個主設備, 對四個亮度塊(block) 和兩個色差塊組成的宏塊(macrob lock) 一起做IDCT 運算, 并根據配置完成IDCT前的反量化和IDCT后運動補償的圖像疊加, 最終將結果寫回顯存。整個過程高度并行處理。

        本文第1部分主要介紹IDCT快速算法的選擇和優化, 第2部分討論硬件結構和設計技巧, 第3部分介紹仿真驗證和綜合結果。

        1 二維DCT?IDCT 算法描述及快速算法的選擇和優化

        1.1 算法描述

        對于輸入矩陣f (x , y ) {0≤i, j N }, 它的離散余弦變換式如下:

        反變換式如下:

        直接計算IDCT , 每個象素點f ( i, j ) 都需要計算N2次乘法, 一個塊有N2 個象素點, 總共需要N4 次乘法計算, 因此計算量相當大。

        1.2 快速算法的選擇

        二維IDCT 可以寫成:

        上式括號內是對F (u, v ) 的一行作一維IDCT 變換, 括號外是對行IDCT 的結果做一維列IDCT變換。如不考慮系數2/N , 二維的IDCT 就分解為對矩陣F (u, v ) 先做行IDCT 再做列IDCT 的2N 次一維IDCT 變換。(本文中取N = 8)。

        對于一維IDCT 有許多優秀的快速算法。其中一種是將IDCT 原始的變換矩陣分解成幾個利于計算的變換矩陣, 然后逐步計算。還有一種是利用了IDCT的奇偶對稱性以及余弦函數的和差化積性質最大程度的共用乘法器。雖然后一種的乘法次數為12次, 少于前一種的16次,但由于前一種的乘法集中在輸入附近, 也就是說絕大部分乘法的其中一個乘數是輸入F(k ) , 因而可以通過提前判斷輸入F(k ) 中是否有較多的0 元素從而直接跳過一部分的乘加運算, 達到加速的目的。MPEG-4 解碼的IDCT 輸入中, 有大量的0, 所以前一種的算法更有利于MPEG-4 解碼。其算法流程如圖1。

        圖1 chen 算法流程Ci= cos( iπ/16)


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 鲁山县| 论坛| 镶黄旗| 大方县| 两当县| 南开区| 镇雄县| 调兵山市| 九龙坡区| 登封市| 平舆县| 滦南县| 霍林郭勒市| 油尖旺区| 涿鹿县| 辽宁省| 伊宁市| 千阳县| 麟游县| 都江堰市| 手游| 四会市| 泰宁县| 保定市| 张家口市| 江油市| 三门峡市| 城市| 德昌县| 山阴县| 开平市| 武安市| 洞头县| 麦盖提县| 望江县| 荔浦县| 和静县| 巴彦淖尔市| 龙山县| 济阳县| 荣昌县|