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