a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 電源與新能源 > 改進的一維DCT方案設計與實現

改進的一維DCT方案設計與實現

——
作者:碩士研究生 陳艷玲 時間:2006-07-19 來源:北京大學 收藏

1.引言

    Ahmed,Natarajan 和Rao在1974年首先提出了DCT算法[1]。從那時開始,它成為了圖像和視頻編碼最流行的算法,并被廣泛應用,這主要有兩個原因:首先,它把圖像數據轉變成容易壓縮的形式;第二,它能有效地用軟件和硬件實現[2]。至今,基于行列變換的DCT被應用最廣泛,因些,有必要對一維DCT的硬件設計的改進并使其硬件資源達到最簡。

    分布式算法自提出20年來一直被廣泛應用于VLSI與DSP中[3-8]。在它的運用過程中,大多數的運算量集成在加法器或乘法。因此,減少加法器或乘法器成了一大批學者們研究對象。

    經研究發現,目前所用的分布式算法大都是基于組合電路設計的,即三級加法在同一個時鐘周期完成,由于電路的最小時鐘周期取決于電路中所需處理時間最多的模塊,因此,基于組合電路的時鐘處理頻率必大大受影響,故,我們考慮用時序電路來完成基于分布式算法的一維DCT,并且,為了加快處理速度,我們對一維DCT的變換數據進行了分析,發現如果改變對DCT各數據的處理順序,更是可大大加快一維DCT的處理速度。

    下面是我們對基于分布式算法的一維DCT的研究:

2.分布式算法的相關知識 [3]

首先,考慮下式


                (2-1)

這里, 是常數, 是輸入的數據,寫成矩陣形式為:

   

                       (2-2)

如果 是一個N比特的二進制數,則 可表示為:

           

                       (2-3)

其中  or  1而 i = 0 ,1 , … , N-1; 表示 的最高比特位(符號位), 表示它的最低比特位。于是:

               

      (2-4)

這里INV(.)表示求補。
    于是,在一維DCT變換公式式

                            (2-5)

中我們令

                                     (2-6)

則:

            (2-8)

當u=1時

      

如果運算精度取為13比特,則用二進制表示為:

                  (2-9)

                (2-10)

從上述分析很容易發現一維DCT可以完全用加法器來實現。

3.一維DCT的算式分析

首先,讓我們看看一維DCT各項算術式子:

第一個一維DCT變換系數的各項:

第二個一維DCT變換系數的各項:

第四個一維DCT變換系數的各項:

第三個一維DCT變換系數的各項:

第五個一維DCT變換系數的各項:

第六個一維DCT變換系數的各項:

第七個一維DCT變換系數的各項:

現在,我們來分析一下,這些項中的共用項。首先,我們按如下式子所示,把上面的式子所用到的項提取出來:

現在,我們來分析一下各二級加法器的結果都被哪些DCT變換系數所用:

接下來,我們再分析一下第三級加法器都做了什么運算及各對應的DCT變換系數。

  如此,我們就很容易發現,其實,我們并不需要每計算一個一維DCT變換系數都要用組合電路把所有的各項都重復的計算出來,我們只要在計算的過程中加入一些寄存器,把我們已經計算出來的項存起來,等到用到的時候從里面取出來就直接可以用了,這樣,只要我們通過合理的布局布線,我們的一維DCT變換系數就可以很快的計算出來,這樣,功耗肯定也是會降低的。下面,我們設計了兩種基于時序電路的一維DCT。事實證明,我們這樣做,還可以大大減少加法器的數量。

4.DCT_13的設計

    僅用13個加法器的一維DCT(為方便起見,我們暫且稱之為DCT_13)設計:
在這個設計中,我們只用了13個加法器,就完成了一維DCT。我們的基本思路是這樣的:首先,A0,A1,A2,A3,A4,A5,A6,A7依次順序輸入,經過一個8數據的串并轉換模塊,這8個數據同時輸入到第一級加法器,我們的第一級加法器共有4個加減可控制的簡單ALU,首先,我們當然是讓這4個ALU做加法運算,因為,我們發現F0,F2并沒有用到這一級加法器所計算出來的D_07,D_16,D_25,D_34,而它們的輸出當然也是需要一個時鐘周期的,于是,我們完全可以先讓這4個ALU做加法運算,再在下一個周期讓它們做減法運算,當然,每次計算完的結果要保存在寄存器,于是,第一級的加法運算是不會引起任何延時的。

    讓我們再來看第二級的加法器設計。通過對表2的研究,你發現什么了?是的,如同第一級加法器的設計一樣,我們同樣可以改變輸出的順序,來計算第二級加法器所需的各項。結合第一級加法器的設計,我們讓DCT變換系數的輸出變為這個順序吧:F0,F2,F6,F4,F5,F7,F1,F3。于是,我們可以先用兩個加減可控制的簡單的ALU計算出F0所需要的D0716,D2534,同時,我們在設計中也讓D07_34,D_2534也各用了一個加法器計算出來了D07_16,D25_34,當然也在接在來的一個時鐘周期被前面所提到的ALU計算出來,接下來,我們再設計兩個加法可控制的簡單ALU來分別計算D_1625 ,D_1634 和D_0716 ,D_0725 ,D_0734,發現我們為什么這么做了嗎?這是因為如此我們就

    可以讓ALU的一個輸入固定下來,而不用再設計緩存器來緩存輸入。當然,你也可以試試不把一個輸入端固定下來會是什么樣子。

    第三級加法器的設計。首先,我們要輸出的是F0,所以,我們用一個加減可控制的簡單ALU計算出了D0716 +D2534,再在下一個時鐘周期計算出 D0716 -D2534,同時,另一個加法器將D_0716+D_34,D_0716+D_25,D_16+D_2345依次計算出來,我們的輸出順序為:F0,F2,F6,F4,F5,F7,F1,F3。我們這種輸出順序是方便讀者理解整個流程,其實,我們很容易發現第三個數據輸出后,所有的項其實都已經被計算出來了,所以,我們后面的順序是什么樣的都是不重要的 (如果我們能曾加兩個時鐘的延時,也可以按順序輸出數據,即:F0,F1,F2,F3,F4,F5,F6,F7) 。

    圖1是我們的DCT_13的結構圖。其中,series_to_parallel完成八數據串并轉換,Addmat1完成第一級加法,Addmat2完成一維DCT變換的其余工作。

圖1 DCT_13的結構圖

  圖2是我們的一維DCT(13個加法器)的仿真時序圖。可以發現,我們的8個數據輸入完成同時就可以有一維DCT變換系數持續輸出。可以看到我們的第一組輸入數據A0—A7依次為:170,153,153,153,170,153,153,153,輸出的一維DCT變換系數F0—F7為:440,6,0,11,11,-4,0,9與理論值:444,6,0,11,12,-2,0,9基本相符,出現的差異是由于加法器的位數的有限性造成的,但它是可以滿足實際要求的。


圖2 DCT_13的仿真時序圖

   圖3是我們用Synplify綜合工具綜合后得到的一些數據,所選用的器件為APEX20KE160etc144-2x,可以看到在這個DCT_13中,我們僅用了1257個LUT。


圖3 DCT_13的一些綜合相關數據

5.DCT_11的設計

    僅用11個加法器的一維DCT(為方便起見,我們暫且稱之為DCT_11)設計。

    在這個設計中,我們改變了前面提到的13個加法器的一維DCT設計的串并轉換和第一級加法器。而第二級和第三級加法器與前面提到的是一樣的。

    在這里,我們讓輸入的順序改變一下,為A0,A7,A1,A6,A2,A5,A3,A4。發現什么沒有?是的,如此,我們可以讓串并轉換變為二數據的串并轉換,這樣對資源的節約是巨大的,讓兩個并行出來的數據輸入到第一級加法器。在這里,我們的第一級加法器就可以只用兩個加減可控制的簡單ALU。其中一個計算出D07,D_07 ,D25,D_25,另一個則計算出D16,D_16,D34,D_34并且,我們當它們都被計算出來的時候,我們讓它們同時保存到另一組寄存器,再做接下來的運算。

    圖4是我們的DCT_11的結構圖。其中,SeriToPara完成二數據串并轉換,Addmat1完成第一級加法,Addmat2完成一維DCT變換的其余工作。

圖4        DCT_11的結構圖

圖5是我們用Synplify綜合工具綜合后得到的一些數據,所選用的器件為APEX20KE160etc144-2x,可以看到在這個DCT_13中,我們僅用了1151個LUT。

圖5    DCT_11的一些綜合相關數據

6.方案設計比較

  下面,我們將我們的設計與目前已有的一維DCT設計進行了比較。通過比較可以看到我們的設計大大減少了一維DCT設計中所需要的加法器數。

7. 結語

  我們舉了兩個例子,來說明基于時序電路的一維DCT。也許我們的設計還不是最簡,我們也只希望能起到一個拋磚引玉的作用,讓研究人員能夠設計出更節約硬件資源的一維DCT。


參考文獻

[1]N.Ahmed, T.Natrajan and K.R.Rao, “Discrete cosine transform”,IEEE trans. Computers, January 1974.
[2]歐陽合,韓軍,“視頻編解碼器設計_開發圖像與視頻壓縮系統”,國防科技大學出版社,2005.
[3] high performance distributed DCT architecture, " in Proceedings of the IEEE Computer Society Annual Symposium on VLSI (ISVLSI), Pittsburgh, Pennsylvania, April 2002. 
[4] A.Peled, B.Liu, "A new hardware realization of digital filters," IEEE Trans. ASSP, vol.ASSP-22,no.6, pp.456-462, Dec.1974. 
[5] D.F.Elliott (ed.), Handbook of Digital Signal Processing, Academic Press, pp.964-972, 1987. 
[6] S.A.White, "Applications of distributed arithmetic to digital signal processing: A tutorial review," IEEE ASSP Magazine, pp.4-19, July 1989. 
[7] G-K.Ma and F.J.Taylor, "Multiplier policies for digital signal processing," IEEE ASSP Magazine, pp.6-19, Jan.1990. 
[8] Iain E. G. Richardson, "Video Codec Design _ Developing Image and Video Compression Systems " The Robert Gordon University Aberdeen. UK 



評論


相關推薦

技術專區

關閉