一種高效的分布式的離散余弦變換的硬件結構
1. 引言
DCT是視頻壓縮編解碼器中很重要的一部分,被廣泛應用于各種視頻格式的編碼算法中,例如JPEG,MPEGx和H.26x等,這主要是因為:一 它能把圖像的能量主要集中到數目很少的幾個數據上,并打破數據間的相關性;二 它的實現有快速算法。人們很早以前就開始研究DCT的快速算法和它的硬件實現電路,到目前為止,基于行列變換的DCT被應用的最廣泛。
分布式算法在二十多年就被提出來,并且現在已被廣泛應用于VLSI和DSP的結構中,在這些實現中,大多數算法的運算量主要集中在乘法器或加法器。分布式算法的優點是首先計算所有可能的中間結果,并把他們保存在ROM中,然后通過查表得到我們所需要的結果,這樣就可以把復雜的浮點乘法轉換為加法,從而加速算法的運算速度。
在本文中,我們介紹了一種基于分布式算法的2D DCT結構,該結構中,我們充分利用了三角函數的周期性與對偶性,并利用簡單ALU實現加減法的分時復用,從而比已有的分布式DCT結構節省了很多硬件資源;另一方面,在本文的硬件結構中,用RAM代替了ROM,從而加快了速度又節省了資源(因為隨輸入數據的數量和它們精度的增加ROM的容量呈指數級增加)。
2. 分布式算法的數學原理
首先,我們來考慮一下以下的求和結果: (2-1)
這里,A k 是常數,X k 是輸入的數據。上式用矩陣可表示為:
(2-2)
如果(2-2)中A1, ...AL均為N(包括符號位)比特的二進制有符號小數,則(2-2)可轉化為:
(2-3)
在(2-3)式中,我們令矩陣
把A稱作加法陣列矩陣, 且A中只含有‘0’和‘1’兩種元素。通過觀察,我們發現(2-3)式中Y0,Y1,...,YN-1的值都是X0,X1,...,XL中某幾個數之和,這樣Y的計算只要加法和移位兩種運算就可以實現。這樣我們就實現了把乘法轉化成了加法。
3.(8
評論