亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種近似離散余弦變換方法與流程

文檔序號:11778957閱讀:333來源:國知局
一種近似離散余弦變換方法與流程

本發(fā)明涉及離散余弦變換技術(shù),特別涉及一種近似離散余弦變換方法。



背景技術(shù):

隨著時代的進步,以視頻為主的多媒體設(shè)備如高清電視、手機已成為當今必不可少的消費品。其中,數(shù)字視頻信號是一種直觀、生動、高效的視頻信號,它具有強的抗干擾能力,并有利于傳輸,交換以及存儲,但它的缺點是數(shù)據(jù)量大。人類僅通過擴大存儲容量以及增加通信線路的傳輸速率是達不到對海量數(shù)字視頻信號的要求,因此提出了數(shù)字壓縮技術(shù),該技術(shù)可以有效的減少數(shù)字視頻信號數(shù)據(jù)量,其中離散余弦變換是一種高效的數(shù)字壓縮技術(shù)。

圖像數(shù)據(jù)壓縮指的是對圖像數(shù)據(jù)做變換,去除圖像內(nèi)部數(shù)據(jù)的冗余度,減少壓縮數(shù)據(jù)編碼的位數(shù)。其中最佳變換是karhunen-loeve正交變換,但它實現(xiàn)起來較為困難。而離散余弦變換是僅次于karhunen-loeve正交變換的次最佳變換,離散余弦變換的特點是:

(1)離散余弦變換是一種正交變換,可以有效去除高度相關(guān)圖像數(shù)據(jù)的冗余性;

(2)離散余弦變換具有非常好的能量聚焦性,經(jīng)過變換,信號能量的絕大部分被集中到變換域的少數(shù)系數(shù)上;

(3)對于具有一階平穩(wěn)馬爾可夫過程性質(zhì)的信號(大多數(shù)自然圖像信號屬于這種類型),離散余弦變換非常接近統(tǒng)計最佳karhunen-loeve正交變換;

(4)離散余弦變換具有可實現(xiàn)的快速算法。

離散余弦變換應用于數(shù)字視頻壓縮技術(shù)中,降低離散余弦變換器的功耗可有效降低數(shù)字視頻壓縮需要的功耗。降低功耗的方法有很多,比如降電壓、選擇低功耗器件、分區(qū)/分時供電、降低處理器的時鐘頻率等。這些方法都可以有效降低系統(tǒng)的功耗,但它們也大幅度降低了系統(tǒng)的運行速度。

人眼對圖像、視頻數(shù)據(jù)不敏感,即輕微降低圖像、視頻數(shù)據(jù)的質(zhì)量,人眼無法分別出其中的差距。基于這個特點,通過選取合適的算法和架構(gòu),使系統(tǒng)精度與系統(tǒng)能耗進行一個折中,這樣既可以有效降低系統(tǒng)的功耗,又不影響信息的識別,也不會降低系統(tǒng)的運行速度。近似計算就是通過尋求合適的算法和架構(gòu)來達到系統(tǒng)精度與系統(tǒng)能耗的折中。



技術(shù)實現(xiàn)要素:

本發(fā)明提出一種近似離散余弦變換方法,將近似計算和傳統(tǒng)離散余弦變換方法相結(jié)合,適用于8×8像素值矩陣的數(shù)據(jù)處理。

本發(fā)明的技術(shù)方案如下:

一種近似離散余弦變換方法,包括以下步驟:

步驟一:將8×8像素值矩陣進行一維行dct變換得到一維行dct變換結(jié)果,所述行dct變換方法為:

n0=[(m0+m7)+(m1+m6)+(m2+m5)+(m3+m4)]×d,

n1=(m3-m4)×g+(m0-m7)×a+[(m1-m6)×1.5+(m2-m5)]×e,

n2={[(m0+m7)-(m3+m4)]×2.5+(m1+m6)-(m2+m5)}×f,

n3=(m0-m7)×1.5×e-(m1-m6)×g-(m2-m5)×a,

n4=[(m0+m7)+(m4+m3)-(m6+m1)-(m2+m5)]×d,

n5=(m0-m7)×e-(m1-m6)×a+(m2-m5)×g,

n6={(m0+m7)-(m3+m4)-[(m1+m6)-(m2-m5)]×2.5}×f,

n7=(m0-m7)×g-[(m1-m6)-(m2-m5)×1.5]×e,

其中系數(shù)a的二進制表示為0.100_0000,系數(shù)d的二進制表示為0.010_1101,系數(shù)e的二進制表示為0.010_0100,系數(shù)f的二進制表示為0.001_1000,系數(shù)g的二進制表示為0.000_1100;m0-m7表示所述8×8像素值矩陣中的第一至第八行數(shù)據(jù),n0-n7表示所述一維行dct變換結(jié)果的第一至第八行數(shù)據(jù);

步驟二:將所述一維行dct變換結(jié)果進行一維列dct變換得到近似離散余弦變換結(jié)果,所述列dct變換方法為:

y0=[(k0+k7)+(k1+k6)+(k2+k5)+(k3+k4)]×d,

y1=(k3-k4)×g+(k0-k7)×a+[(k1-k6)×1.5+(k2-k5)]×e,

y2={[(k0+k7)-(k3+k4)]×2.5+(k1+k6)-(k2+k5)}×f,

y3=[(k0-k7)×1.5-(k3-k4)]×e-(k1-k6)×g-(k2-k5)×a,

y4=[(k0+k7)+(k4+k3)-(k6+k1)-(k2+k5)]×d,

y5=[(k0-k7)+(k3-k4)×1.5]×e-(k1-k6)×a+(k2-k5)×g,

y6={(k0+k7)-(k3+k4)-[(k1+k6)-(k2-k5)]×2.5}×f,

y7=-(k3-k4)×a+(k0-k7)×g-[(k1-k6)-(k2-k5)×1.5]×e,

其中k0-k7表示所述一維行dct變換結(jié)果的第一至第八列數(shù)據(jù),y0-y7表示所述近似離散余弦變換結(jié)果的第一至第八列數(shù)據(jù)。

具體的,所述8×8像素值矩陣由外部輸入數(shù)據(jù)進行符號位擴展之后得到。

具體的,所述外部輸入數(shù)據(jù)為標準灰度圖像數(shù)據(jù)。

具體的,步驟一通過一個外部控制信號start控制一維行dct變換,當外部控制信號start=1時進行一維行dct變換,當外部控制信號start=0時不進行一維行dct變換。

具體的,步驟一得到的一維行dct變換結(jié)果的第一至第八行數(shù)據(jù)n0-n7先存入寄存器陣列模塊,再由寄存器陣列模塊轉(zhuǎn)換為一維行dct變換結(jié)果的第一至第八列數(shù)據(jù)k0-k7并輸出進行步驟二所述的一維列dct變換。

具體的,通過第一控制信號num1控制一維行dct變換結(jié)果的第一至第八行數(shù)據(jù)n0-n7依次存入寄存器陣列模塊,具體做法為:

第一控制信號num1=0時,一維行dct運算結(jié)果的第一行數(shù)據(jù)n0存入寄存器陣列模塊的第一行;

第一控制信號num1=1時,一維行dct運算結(jié)果的第二行數(shù)據(jù)n1存入寄存器陣列模塊的第二行;

以此類推,直到第一控制信號num1=7時,一維行dct運算結(jié)果的第八行數(shù)據(jù)n7存入寄存器陣列模塊的第八行。

具體的,通過第二控制信號num2控制寄存器陣列模塊將一維行dct變換結(jié)果的第一至第八列數(shù)據(jù)k0-k7依次輸出進行一維列dct運算,具體做法為:

第二控制信號num2=0時,寄存器陣列模塊將一維行dct變換結(jié)果的第一列數(shù)據(jù)k0輸出進行一維列dct運算;

第二控制信號num2=1時,寄存器陣列模塊將一維行dct變換結(jié)果的第二列數(shù)據(jù)k1輸出進行一維列dct運算;

以此類推,直到第二控制信號num2=7時,寄存器陣列模塊將一維行dct變換結(jié)果的第八列數(shù)據(jù)k7輸出進行一維列dct運算。

具體的,所述第一控制信號num1和第二控制信號num2由外部控制信號start控制產(chǎn)生,當外部控制信號start=1時產(chǎn)生第一控制信號num1和第二控制信號num2,當外部控制信號start=0時不產(chǎn)生第一控制信號num1和第二控制信號num2。

本發(fā)明的有益效果為:將近似計算和傳統(tǒng)離散余弦變換方法相結(jié)合,在一維行dct變換方法和一維列dct變換方法中加入近似計算,與傳統(tǒng)離散余弦變換方法相比,能夠在保證圖像處理質(zhì)量的情況下將功耗降低30%左右;相比與傳統(tǒng)的一維行/列dct變換,本發(fā)明提出的一維行dct變換方法能節(jié)約17個加法器,2個減法器,一維列dct變換方法能節(jié)約15個加法器。

附圖說明

圖1為一種能夠?qū)崿F(xiàn)本發(fā)明提出的近似離散余弦變換方法的實施例的電路結(jié)構(gòu)示意圖。

圖2為圖1中數(shù)據(jù)輸入模塊的電路原理圖。

圖3為傳統(tǒng)離散余弦變換方法的計算過程示意圖。

圖4為圖1中的控制電路模塊的算法狀態(tài)機。

圖5為傳統(tǒng)離散余弦變換器的一維行/列dct運算模塊。

圖6為本發(fā)明所提出的一種近似離散余弦變換方法中進行一維行dct運算的模塊結(jié)構(gòu)圖。

圖7為本發(fā)明所提出的一種近似離散余弦變換方法中進行一維列dct運算的模塊結(jié)構(gòu)圖。

具體實施方式

下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細的描述。

圖1為一種能夠?qū)崿F(xiàn)本發(fā)明提出的近似離散余弦變換方法的整體電路原理圖,包括數(shù)據(jù)輸入模塊、一維行dct運算模塊、寄存器陣列模塊、一維列dct運算模塊以及控制電路模塊,數(shù)據(jù)輸入模塊的輸入端接外部輸入數(shù)據(jù),其輸出端口接一維行dct運算模塊的輸入端口;一維行dct運算模塊的控制端口接外部控制信號start,其輸出端口接寄存器陣列模塊的輸入端口;控制電路模塊由外部控制信號start控制產(chǎn)生第一控制信號num1連接寄存器陣列模塊的控制端口和第二控制信號num2連接一維列dct運算模塊的控制端口;一維列dct運算模塊的輸入端口連接寄存器陣列模塊的輸出端口,其輸出端口輸出外部輸入數(shù)據(jù)進行近似離散余弦變換之后的最終數(shù)據(jù)。

控制電路模塊還接入異步清零信號rst,當異步清零信號rst=0時,整個電路中的d觸發(fā)器異步清零;其時鐘端口接外部時鐘信號clk約束整個電路的時序,使電路可以按時鐘節(jié)拍來運行。

本實施例對標準灰度圖像數(shù)據(jù)進行近似離散余弦變換,標準灰度圖像數(shù)據(jù)由512×512個像素構(gòu)成,每個像素是256級灰度,可以表示成8位無符號二進制數(shù)據(jù)。如圖2所示為圖1中數(shù)據(jù)輸入模塊的電路原理圖,其中該模塊的輸入數(shù)據(jù)是標準灰度圖像數(shù)據(jù),通過數(shù)據(jù)輸入模塊進行符號位擴展,輸出9位有符號的二進制數(shù)據(jù)。將標準灰度圖像數(shù)據(jù)分成4096個8×8矩陣,數(shù)據(jù)輸入模塊的輸入端口tu0[7:0]、tu1[7:0]、tu2[7:0]、tu3[7:0]、tu4[7:0]、tu5[7:0]、tu6[7:0]、tu7[7:0]用于接收這些圖像矩陣,8個周期可接收完一個矩陣。數(shù)據(jù)輸入模塊的輸出端口x0[8:0]、x1[8:0]、x2[8:0]、x3[8:0]、x4[8:0]、x5[8:0]、x6[8:0]、x7[8:0]接一維行dct運算模塊的輸入端口。

一維行dct運算模塊的輸入端口m0[8:0]、m1[8:0]、m2[8:0]、m3[8:0]、m4[8:0]、m5[8:0]、m6[8:0]、m7[8:0]接數(shù)據(jù)輸入模塊的輸出端口x0[8:0]、x1[8:0]、x2[8:0]、x3[8:0]、x4[8:0]、x5[8:0]、x6[8:0]、x7[8:0],當外部控制信號start=1時,開始進行一維行dct運算,運算結(jié)果在控制模塊輸出信號num1的控制下通過一維行dct的輸出端口n0[10:0]、n1[10:0]、n2[10:0]、n3[10:0]、n4[10:0]、n5[10:0]、n6[10:0]、n7[10:0]輸入到寄存器陣列中。

寄存器陣列模塊用于存儲一維行dct運算模塊的輸出信號,第一控制信號num1=0時,一維行dct運算模塊的輸出信號中的第一行數(shù)據(jù)輸入到寄存器陣列m00[10:0]、m01[10:0]、m02[10:0]、m03[10:0]、m04[10:0]、m05[10:0]、m06[10:0]、m07[10:0];下個周期,當num1=1時,一維行dct運算模塊的輸出信號輸入到寄存器陣列m10[10:0]、m11[10:0]、m12[10:0]、m13[10:0]、m14[10:0]、m15[10:0]、m16[10:0]、m17[10:0];以此類推,當num1=7時,一維行dct運算模塊的輸出信號輸入到寄存器陣列m70[10:0]、m71[10:0]、m72[10:0]、m73[10:0]、m74[10:0]、m75[10:0]、m76[10:0]、m77[10:0];經(jīng)過8個周期,64個11位寄存器陣列已經(jīng)存滿數(shù)據(jù),在第二控制信號num2的作用下,將寄存器陣列的列數(shù)據(jù)輸出到一維列dct運算模塊的輸入端口。

一維列dct運算模塊運算過程類似于一維行dct運算那模塊的運算過程,一維列dct運算模塊的輸入信號是寄存器陣列模塊的輸出列數(shù)據(jù),即在一維列dct運算的第一個周期,第二控制信號num2=0時,一維列dct運算模塊的輸入端口k0[10:0]、k1[10:0]、k2[10:0]、k3[10:0]、k4[10:0]、k5[10:0]、k6[10:0]、k7[10:0]接收寄存器陣列的第一組列數(shù)據(jù)m00[10:0]、m10[10:0]、m20[10:0]、m30[10:0]、m40[10:0]、m50[10:0]、m60[10:0]、m70[10:0],經(jīng)過一維列dct運算后,結(jié)果通過輸出端口y0[11:0]、y1[11:0]、y2[11:0]、y3[11:0]、y4[11:0]、y5[11:0]、y6[11:0]、y7[11:0]輸出;下個周期,第二控制信號num2=1時,一維列dct運算模塊的輸入端口接收寄存器陣列的第二組列數(shù)據(jù)m01[10:0]、m11[10:0]、m21[10:0]、m31[10:0]、m41[10:0]、m51[10:0]、m61[10:0]、m71[10:0],經(jīng)過一維列dct運算后,結(jié)果通過輸出端口輸出;以此類推,在第八個周期,當?shù)诙刂菩盘杗um2=7時,一維列dct運算模塊的輸入端口接收寄存器陣列的第七組列數(shù)據(jù)m07[10:0]、m17[10:0]、m27[10:0]、m37[10:0]、m47[10:0]、m57[10:0]、m67[10:0]、m77[10:0],經(jīng)過一維列dct運算后,結(jié)果通過輸出端口輸出。

如圖3所示為控制電路模塊的的算法狀態(tài)機,該控制電路模塊包括3個狀態(tài),初始狀態(tài)、一維行dct運算狀態(tài)、一維列dct運算狀態(tài)??刂齐娐纺K剛上電時,進入初始狀態(tài),當異步清零信號rst=0時,回歸初始狀態(tài);當rst=1時,若外部控制信號start=1,進入一維行dct運算狀態(tài),若外部控制信號start=0返回初始狀態(tài)。一維行dct運算狀態(tài)的第一個周期,第一控制信號num1=0,一維行dct輸入數(shù)據(jù)的第一組數(shù)據(jù)進行一維行dct運算,運算結(jié)果存入寄存器陣列的第一行;第二個周期,第一控制信號num1=2,一維行dct輸入數(shù)據(jù)的第二組數(shù)據(jù)進行一維行dct運算,運算結(jié)果存入寄存器陣列的第二行;當?shù)竭_第八個周期,第一控制信號num1=7,一維行dct輸入數(shù)據(jù)的第八組數(shù)據(jù)進行一維行dct運算,運算結(jié)果存入寄存器陣列的第八行,然后進入一維列dct運算狀態(tài)。一維列dct運算狀態(tài)的第一個周期,第二控制信號num2=0,寄存器陣列的第一列數(shù)據(jù)進行一維列dct運算,輸出進行近似離散余弦變換之后的輸出數(shù)據(jù);第二個周期,第二控制信號num2=1,寄存器陣列的第二列數(shù)據(jù)進行一維列dct運算,輸出進行近似離散余弦變換之后的輸出數(shù)據(jù),當?shù)竭_第八個周期,第二控制信號num2=7,寄存器陣列的第八列數(shù)據(jù)進行一維列dct運算,輸出進行近似離散余弦變換之后的輸出數(shù)據(jù),此時回到初始狀態(tài),進行下一個8×8圖像數(shù)據(jù)的運算。

傳統(tǒng)的離散余弦變換器的計算過程示意圖如圖3所示。把圖片數(shù)據(jù)分成多個8×8矩陣,如矩陣1所示,第一個周期,把矩陣1的第一行數(shù)據(jù)進行一維行dct運算,結(jié)果存入矩陣2的第一行;第二個周期,把矩陣1的第二行數(shù)據(jù)進行一維行dct運算,結(jié)果存入矩陣2的第二行;以此類推,通過八個周期把8×8矩陣圖像數(shù)據(jù)進行一維行dct運算后存入矩陣2。矩陣3是矩陣2的轉(zhuǎn)置矩陣,即矩陣3的第n行數(shù)據(jù)是矩陣2的第n列數(shù)據(jù)。再通過8個時鐘,將矩陣3的每一行數(shù)據(jù)進行一維列dct運算,計算結(jié)果存入矩陣4,得到dct變換數(shù)據(jù)。

本發(fā)明的整體計算過程與傳統(tǒng)離散余弦變換器的計算過程保持一致,其中本發(fā)明的創(chuàng)新部分,主要集中在一維行dct運算方法和一維列dct運算方法。傳統(tǒng)的離散余弦變換器的一維行/列dct運算模塊的設(shè)計如圖5所示。它的計算公式如下:

y0=(x0+x1+x2+x3+x4+x5+x6+x7)×d,

y1=(x3-x4)×g+(x0-x7)×a+(x1-x6)×c+(x2-x5)×e,

y2=(x0+x7-x3-x4)×b+(x1+x6-x2-x5)×f,

y3=-(x3-x4)×e+(x0-x7)×c-(x1-x6)×g-(x2-x5)×a,

y4=[(x0+x1+x6+x7)-(x2+x3+x4+x5)]×d,

y5=(x3-x4)×c+(x0-x7)×e-(x1-x6)×a+(x2-x5)×g,

y6=(x0+x7-x3-x4)×f-(x1+x6-x2-x5)×b,

y7=-(x3-x4)×a+(x0-x7)×g-(x1-x6)×e+(x2-x5)×c,

根據(jù)上述公式繪制運算示意圖5,傳統(tǒng)的離散余弦變換器的一維行/列dct運算模塊分成三級運算。

第一級通過4個加法器和4個減法器,可以得到x0+x7、x1+x6、x2+x5、x3+x4、x0-x7、x1-x6、x2-x5、x3-x4的值。

第二級是把第一級的運算結(jié)果x0+x7、x1+x6、x2+x5、x3+x4、x0-x7、x1-x6、x2-x5、x3-x4與dct系數(shù)相乘,其中有公共dct系數(shù)的可以先提出來,如公式1中的y0,y2,y4,y6。其中dct系數(shù)a、b、c、d、e、f、g表示成8位二進制數(shù),如表1“傳統(tǒng)dct二進制系數(shù)”一欄。

表1傳統(tǒng)離散余弦變換器與本發(fā)明的一維dct系數(shù)的比較

其中,由于乘法器的運算量大以及硬件較復雜,一般會選用移位加的形式代替乘法器,加法器的個數(shù)主要是看其中8位二進制數(shù)dct系數(shù)的中1的個數(shù)。當有n個1時,需要n-1個加法器。如果連續(xù)的1個數(shù)太多,可以表示成負1的形式,如a=0.0111111=0.1000000-0.0000001,此時只需要1個減法器。

具體是:當一個數(shù)m與dct系數(shù)a相乘,即m×a=m×0.0111111=m×0.1000000-m×0.0000001,即只需要1個減法器就能完成這個乘法運算;同理,m×b=m×0.0111011=m×0.1000000-(m×0.0000001+m×0.0000100),一個數(shù)m與dct系數(shù)b相乘,需要1個加法器和1個減法器完成運算;m×c=m×0.0110101=m×0.0100000+m×0.0010000+m×0.0000100+m×0.0000001,一個數(shù)m與dct系數(shù)c相乘,需要3個加法器完成運算;一個數(shù)m與dct系數(shù)d相乘,m×d=m×0.0101101=m×0.0100000+m×0.0001000+m×0.0000100+m×0.0000001,需要3個加法器完成運算;一個數(shù)m與dct系數(shù)e相乘,m×e=m×0.010100=m×0.0100000+m×0.0000100,需要1個加法器完成運算;一個數(shù)m與dct系數(shù)f相乘,m×f=m×0.0011000=m×0.0010000+m×0.0001000,需要1個加法器完成運算;一個數(shù)m與dct系數(shù)g相乘,m×g=m×0.0001100=m×0.0001000+m×0.0000100,需要1個加法器完成運算。經(jīng)過第二級運算y0,y4已算出最終結(jié)果。第二級需要37個加法器,5個減法器。

第三級是把第二級算出的結(jié)果,進行相加減,得到最終的結(jié)果。共需要7個加法器,7個減法器。通過這三級運算,原一維dct模塊需要48個加法器,16個減法器。

離散余弦變換器對圖片數(shù)據(jù)進行壓縮,把圖片的能量集中在離散余弦變換后的少數(shù)系數(shù)上,如圖3所示,經(jīng)離散余弦變換以后,圖片的能量主要集中在矩陣4的左上角,右下角數(shù)據(jù)幾乎沒有能量集中。所以,在一維行/列dct運算模塊中,數(shù)據(jù)y0到y(tǒng)7的重要性依次減弱。

本發(fā)明對一維行/列dct運算模塊的創(chuàng)新體現(xiàn)在3個方面,由于一維行dct運算模塊和一維列dct運算模塊計算過程類似,下面先對一維行dct運算模塊進行詳細描述。

根據(jù)本發(fā)明提出的一維行dct運算公式繪制一維行dct運算模塊,如圖6所示,它與原一維dct模塊的相比,主要有三個改進之處,第一個是dct系數(shù)發(fā)生了變化,如表1“本發(fā)明dct二進制系數(shù)”一欄,較原dct系數(shù),本發(fā)明的dct系數(shù)較為簡單,其中1的個數(shù)較少;比原本一維dct模塊,本發(fā)明一維行dct模塊計算n1時,少3個加法器;計算n2,少1個減法器;計算n3,少5個加法器,計算n5,少5個加法器;計算n6,少1個減法器;計算n7,少4個加法器。所以,共節(jié)約17個加法器,2個減法器。根據(jù)離散余弦變換的性質(zhì),由于n0較重要,所以沒有改變系數(shù)d。

第二,由于圖片數(shù)據(jù)具有空間冗余性,即圖片相鄰部位的灰度數(shù)據(jù)差值較小,可以將一維行dct運算模塊的m3-m4設(shè)為0。由于n1較為重要,只把n3,n5,n7中的m3-m4設(shè)為0。一維列dct運算模塊的輸入數(shù)據(jù)不是圖片數(shù)據(jù),不能做這種優(yōu)化。

具體是:dct系數(shù)a,b,c發(fā)生了改變。當一個數(shù)m與dct系數(shù)a相乘,即m×a=m×0.0100000,此時只需要對m進位擴展,并不需要加減運算;b和c,分別用2.5f和1.5e表示,可以把f與e分解出來,那么n2,n3,n5,n6,n7如一維行dct運算公式所示。當一個數(shù)m與1.5相乘,即m×1.5=m+m>>1,需要一個加法器;當一個數(shù)m與2.5相乘,即m×2.5=m<<1+m>>1,需要一個加法器。

第三、將改進后的一維行/列運算模塊中的部分加法器變成近似加法器,具體內(nèi)容如下。

如圖6,n0=(m0+m1+m2+m3+m4+m5+m6+m7)×d=k0×d,其中m0、m1、m2、m3、m4、m5、m6、m7是9位有符號數(shù),它們的和k0是12位有符號數(shù)。d是二進制小數(shù),通常的算法是將d左移7位,再計算k1=k0×(d<<7),k1是18位有符號數(shù),而最終結(jié)果n0=k1[17:7]。在這個過程中,由于n0=k1[17:7],k1[6:0]對n0的準確度貢獻較小,但功耗消耗比較大,可以加入近似加法器代替準確加法器。

k1=k0×(d<<7)=k0×0010_1101=((k0+(k0<<2))<<3)+(k0+(k0<<2))=i1+i2,其中i1是18位有符號數(shù),i2是14位有符號數(shù),它們相加得到k1,此處用近似加法器代替準確加法器,即k1=i1[17:6]+i2[13:6]+i1[5]&i2[5]。

設(shè)pro[i]=i1[i]^i2[i],gen[i]=i1[i]&i2[i],k1發(fā)生錯誤的概率是:

其中i1[2]、i1[1]、i1[0]都為0,所以gen[2]、gen[1]、gen[0]均為0。

其次,當發(fā)生錯誤時,近似值比準確值小1,所以平均錯誤值是:

綜上所述,將上述電路中的部分加法器換成近似加法器后,發(fā)生錯誤的概率是平均錯誤大小0.1875,但是減少5位二進制加法運算,這樣有效降低了計算n0的功耗。利用同樣的方法,將一維行/列dct模塊的部分加法器用近似加法器代替,在計算精度犧牲較小的條件下,很大程度上降低計算的功耗。

在傳統(tǒng)的離散余弦變換器的基礎(chǔ)上,本發(fā)明通過選取合適的近似計算,犧牲較小的計算質(zhì)量,達到了降低功耗的目的。經(jīng)過實驗仿真得出本發(fā)明處理的圖片與原圖片相比psnr值大于41db,但功耗比傳統(tǒng)離散余弦變換器的功耗降30%左右。

根據(jù)本發(fā)明提出的一維列dct運算公式繪制一維列dct運算模塊,如圖7所示,它與原一維dct模塊的相比,主要是dct系數(shù)發(fā)生了變化,dct系數(shù)和本發(fā)明的一維行dct模塊的dct系數(shù)相同。

與本發(fā)明的一維行dct模塊相比,本發(fā)明一維列dct模塊計算y3時,多1個減法器;計算y5,多2個加法器;計算y7,多1個減法器。所以,共需要33個加法器,16個減法器,共節(jié)約15個加法器。

改進后的兩個運算模塊,相比傳統(tǒng)的離散余弦變換器的兩個模塊,二進制加法器個數(shù)減少32個,二進制減法器的個數(shù)減少2個。

本領(lǐng)域的普通技術(shù)人員可以根據(jù)本發(fā)明公開的這些技術(shù)啟示做出各種不脫離本發(fā)明實質(zhì)的其它各種具體變形和組合,這些變形和組合仍然在本發(fā)明的保護范圍內(nèi)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1