新聞中心

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

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

作者: 時間:2012-12-13 來源:網(wǎng)絡 收藏

引言

本文引用地址:http://2s4d.com/article/170661.htm

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

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

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

1 二維DCT?IDCT 算法描述及快速算法的選擇和優(yōu)化

1.1 算法描述

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

反變換式如下:

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

1.2 快速算法的選擇

二維IDCT 可以寫成:

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

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

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


上一頁 1 2 3 4 下一頁

評論


相關推薦

技術專區(qū)

關閉