欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種濾波器及濾波方法

文檔序號:6650091閱讀:240來源:國知局
專利名稱:一種濾波器及濾波方法
技術(shù)領(lǐng)域
本發(fā)明涉及濾波技術(shù),特別是涉及一種實現(xiàn)對稱濾波的濾波器及濾波方法。
背景技術(shù)
在諸如數(shù)字電視、視頻會議等視頻通信領(lǐng)域中,視頻數(shù)據(jù)流經(jīng)過信道從發(fā)送端被傳遞到接收端。原始的、未經(jīng)過壓縮的視頻數(shù)據(jù)的數(shù)據(jù)量非常大,不適合于傳輸和存儲,所以,一般需要在發(fā)送端對視頻數(shù)據(jù)進行壓縮,接收端對接收到的壓縮的視頻數(shù)據(jù)進行解壓縮。然而,在某些情況下,通過壓縮來減少視頻數(shù)據(jù)仍然不能滿足傳輸要求,需要進一步減少視頻數(shù)據(jù)的數(shù)據(jù)量,通常發(fā)送端在進行壓縮之前,先對視頻數(shù)據(jù)進行下采樣,接收端在解壓縮之后,再對視頻數(shù)據(jù)進行上采樣。
上述視頻通信的一般過程顯示在圖1中。如圖1所示,在發(fā)送端對原始視頻數(shù)據(jù)進行下采樣,然后對下采樣數(shù)據(jù)壓縮編碼,將壓縮數(shù)據(jù)通過網(wǎng)絡(luò)傳輸至接收端;在接收端對網(wǎng)絡(luò)傳來的壓縮數(shù)據(jù)進行解碼處理,然后對解碼后的數(shù)據(jù)進行上采樣并顯示上采樣后的視頻數(shù)據(jù)。圖1所示的下采樣、上采樣、壓縮編碼和解碼的過程均需要濾波處理。因此可知,在視頻通信的過程中,濾波處理是非常重要的處理步驟。
濾波系數(shù)的個數(shù)決定濾波的階數(shù),也就是說,采用N個濾波系數(shù)的濾波為N階濾波,其濾波計算公式可表示為Ok=C1Pk1+C2Pk2+C3Pk3+…+CNPkN,其中Pk1到PkN為N個原始數(shù)據(jù),C1到CN為濾波系數(shù),Ok為濾波數(shù)據(jù),從濾波公式可以看出,N個原始數(shù)據(jù)分別與N個濾波系數(shù)相乘,再將相乘的結(jié)果相加,得到一個濾波數(shù)據(jù)。
從上述公式可以看出,對于N階濾波,每得到一個濾波數(shù)據(jù),需要進行N次乘法運算和N-1次加法運算,其中乘法運算非常耗時,所以當(dāng)濾波階數(shù)增大時,濾波計算所耗費的計算時間也大大增加。
為了加速計算過程,現(xiàn)有技術(shù)通常采用單指令多數(shù)據(jù)(SIMD)處理器實現(xiàn)濾波運算,SIMD處理器又稱為并行處理器。圖2是現(xiàn)有技術(shù)利用SIMD處理器的濾波器的結(jié)構(gòu)示意圖。如圖2所示,該濾波器包括存儲原始數(shù)據(jù)的內(nèi)存A201、存儲濾波數(shù)據(jù)的內(nèi)存B202和執(zhí)行濾波運算的SIMD處理器210。
圖2所示的SIMD處理器210包含存儲N個待濾波數(shù)據(jù)的原始數(shù)據(jù)寄存器213、存儲N個濾波系數(shù)的濾波系數(shù)寄存器214、并行乘法器212和地址訪問控制單元211。地址訪問控制單元211生成待濾波數(shù)據(jù)在內(nèi)存A201中的相對地址,并將內(nèi)存A201中N個待濾波數(shù)據(jù)復(fù)制到原始數(shù)據(jù)寄存器213。并行乘法器212將原始數(shù)據(jù)寄存器213中的N個待濾波數(shù)據(jù)與濾波系數(shù)寄存器214中的N個濾波系數(shù)并行相乘,將并行相乘的結(jié)果求和后存儲在原始數(shù)據(jù)寄存器213中。然后,原始數(shù)據(jù)寄存器213將求和的結(jié)果作為一個濾波數(shù)據(jù)發(fā)送至內(nèi)存B202。需要說明,以上處理過程對每一個輸出的濾波數(shù)據(jù)都要進行一遍。
以8階濾波為例,每輸出一個濾波數(shù)據(jù),需要逐次進行8次乘法運算和7次加法運算。由于SIMD處理器可執(zhí)行并行乘法,通過一個可以在寄存器中同時存儲8個數(shù)據(jù)的SIMD處理器,將8次乘法運算并行執(zhí)行,這樣,用1次乘法運算的時間可執(zhí)行8次乘法運算,從而加快了濾波運算的所耗費的時間。
但是,這種傳統(tǒng)的濾波器存在以下兩個缺點第一,當(dāng)濾波的階次超過濾波器中并行乘法器的并行處理能力時,例如,可并行處理8個乘法運算的并行乘法器在執(zhí)行16階濾波運算時,由于濾波運算所需的乘法運算量增加,所以,如果采用原有的并行乘法器,則需要并行乘法器分別執(zhí)行兩次上述的并行乘法運算,即需要用2次乘法運算的時間執(zhí)行16次乘法運算,這將增加濾波時間;如果不希望增加乘法運算的時間,則需要采用功能加倍的并行乘法器,使16個乘法運算同時執(zhí)行,這將帶來非常大的硬件開銷。由此可見,除非大幅增加硬件開銷,否則隨著乘法運算量的增加,乘法運算的時間也以相同比例增加,由于乘法運算的時間在濾波運算中最為耗時,因此濾波運算的時間也基本以同比例增加。
第二,SIMD處理器每執(zhí)行完一次并行處理,需要在內(nèi)存訪問控制單元的控制下從內(nèi)存重新讀入8個待濾波數(shù)據(jù),上次讀入的數(shù)據(jù)中的一部分雖然對本次以及后續(xù)的濾波計算仍然有用,但是傳統(tǒng)的濾波器沒有任何保存機制來利用這些已經(jīng)讀取到寄存器中的數(shù)據(jù),這種內(nèi)存和寄存器之間頻繁的數(shù)據(jù)交換增加了濾波時間,而且成為傳統(tǒng)濾波器的主要性能瓶頸。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種濾波器和濾波方法,利用對稱濾波的特性減少濾波運算所需的乘法運算量,在采用基本相同的硬件開銷的前提下減少濾波運算中乘法運算的時間,從而減少濾波所需的時間。
本發(fā)明的另一目的在于提供一種濾波器和濾波方法,通過在寄存器中設(shè)置隱藏數(shù)據(jù)單元,減少從內(nèi)存頻繁調(diào)取數(shù)據(jù)至寄存器所耗費的時間,從而進一步減少濾波所需的時間。
本發(fā)明的目的是通過如下技術(shù)方案實現(xiàn)的本發(fā)明的濾波器包括存儲原始數(shù)據(jù)的第一內(nèi)存、存儲濾波數(shù)據(jù)的第二內(nèi)存和單指令多數(shù)據(jù)SIMD處理器,該SIMD處理器從第一內(nèi)存中獲取與濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù);將當(dāng)前待濾波數(shù)據(jù)中與對稱相等的濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù)分別相加、保持與無對稱相等的濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù)不變;將所得數(shù)據(jù)分別與預(yù)先保存的當(dāng)前濾波系數(shù)并行相乘,對并行相乘結(jié)果求和獲得濾波數(shù)據(jù)并輸出至第二內(nèi)存。
在本發(fā)明的第一實施例中,所述的SIMD處理器包括并行數(shù)據(jù)處理單元,包括具有相反存儲順序的第一寄存器和第二寄存器、并行加法器和并行乘法器;
濾波系數(shù)寄存器,至少存儲N個當(dāng)前濾波系數(shù),該N個當(dāng)前濾波系數(shù)由2N個濾波系數(shù)中對稱相等的濾波系數(shù)中的一個組成;第一地址訪問控制單元,為2N個當(dāng)前待濾波數(shù)據(jù)生成在第一內(nèi)存中的相對地址,以控制從第一內(nèi)存分別復(fù)制第一至第N個當(dāng)前待濾波數(shù)據(jù)和第N+1至第2N個當(dāng)前待濾波數(shù)據(jù)到第一和第二寄存器;其中,N為自然數(shù),并行加法器對第一和第二寄存器中的當(dāng)前待濾波數(shù)據(jù)并行相加,并行乘法器將并行相加結(jié)果和濾波系數(shù)寄存器中的當(dāng)前濾波系數(shù)并行相乘,對并行相乘結(jié)果求和獲得濾波數(shù)據(jù)并輸出至第二內(nèi)存。
在本發(fā)明的第二實施例中,所述的SIMD處理器包括并行數(shù)據(jù)處理單元,包括具有相反存儲順序的第一寄存器和第二寄存器、并行加法器和并行乘法器;濾波系數(shù)寄存器,至少存儲N個當(dāng)前濾波系數(shù),該N個當(dāng)前濾波系數(shù)由2N-1個濾波系數(shù)中無對稱相等的濾波系數(shù)和對稱相等的濾波系數(shù)中的一個組成;第一地址訪問控制單元,為2N-1個當(dāng)前待濾波數(shù)據(jù)生成在第一內(nèi)存中的相對地址,以控制從第一內(nèi)存分別復(fù)制第一至第N個當(dāng)前待濾波數(shù)據(jù)和第N至第2N-1個當(dāng)前待濾波數(shù)據(jù)到第一和第二寄存器;第一控制寄存器,控制所述第一和第二寄存器中與無對稱相等的濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù)位于最低有效數(shù)據(jù)單位的寄存器在其存儲的數(shù)據(jù)發(fā)生改變后對其最低有效數(shù)據(jù)單位執(zhí)行清零;其中,N為自然數(shù),并行加法器對第一和第二寄存器中的當(dāng)前待濾波數(shù)據(jù)并行相加,并行乘法器將并行相加結(jié)果和濾波系數(shù)寄存器中的當(dāng)前濾波系數(shù)并行相乘,對并行相乘結(jié)果求和獲得濾波數(shù)據(jù)并輸出至第二內(nèi)存。
在本發(fā)明的第三實施例中,所述的第一和第二寄存器包括有效數(shù)據(jù)單元和隱藏數(shù)據(jù)單元,有效數(shù)據(jù)單元用于存儲當(dāng)前待濾波數(shù)據(jù),隱藏數(shù)據(jù)單元用于存儲后續(xù)待濾波數(shù)據(jù);所述的SIMD處理器進一步包括第二控制寄存器和第三控制寄存器,控制第一和第二寄存器在對當(dāng)前待濾波數(shù)據(jù)的濾波運算結(jié)束之后進行移位操作,使隱藏數(shù)據(jù)單元中的后續(xù)待濾波數(shù)據(jù)通過移位進入有效數(shù)據(jù)單元。
在本發(fā)明的第四實施例中,所述的濾波器進一步包括用于存儲一組以上濾波系數(shù)的第三內(nèi)存;所述的SIMD處理器進一步包括第四控制寄存器,控制從第三內(nèi)存中的一組以上濾波系數(shù)中選取一組濾波系數(shù);第二地址訪問控制單元,在第四控制寄存器的控制下,為所選取的一組濾波系數(shù)生成在第三內(nèi)存中的相對地址,以控制從第三內(nèi)存復(fù)制所選取的一組濾波系數(shù)至濾波系數(shù)寄存器。
在本發(fā)明的第五實施例中,所述的SIMD處理器進一步包括移位寄存器,存儲并行乘法器輸出的求和結(jié)果,通過移位將該求和結(jié)果除以濾波系數(shù)之和,輸出濾波數(shù)據(jù)至第二內(nèi)存;第五控制寄存器,控制移位寄存器移位的位數(shù)。
在本發(fā)明的第六實施例,即優(yōu)選實施例中,包含第一至第五實施例中所有的結(jié)構(gòu)。
在本發(fā)明的第七實施例中,所述的并行數(shù)據(jù)處理單元為一個以上,所述SIMD處理器進一步包括一個以上的累加寄存器,分別存儲一個以上的并行數(shù)據(jù)處理單元輸出的數(shù)據(jù);第六控制寄存器,控制濾波器工作在單獨模式或組合模式;當(dāng)濾波器工作在單獨模式時,所述的一個以上的并行數(shù)據(jù)處理單元中,每個并行處理單元分別處理當(dāng)前待濾波數(shù)據(jù),且每個累加寄存器中的數(shù)據(jù)分別直接輸出至第二內(nèi)存;當(dāng)濾波器工作在組合模式時,所述的一個以上的并行數(shù)據(jù)處理單元組合在一起處理當(dāng)前待濾波數(shù)據(jù),并將每個累加寄存器中的數(shù)據(jù)經(jīng)求和處理后輸出至第二內(nèi)存。
本發(fā)明的濾波方法包括以下步驟
從原始數(shù)據(jù)中獲取與濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù);將與對稱相等的濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù)分別相加,保持與無對稱相等的濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù)不變;將所得數(shù)據(jù)與預(yù)先存儲的當(dāng)前濾波系數(shù)并行相乘,對并行相乘的結(jié)果求和獲得一個濾波數(shù)據(jù)并存儲。
在所述濾波系數(shù)的個數(shù)為偶數(shù)的情況下,所述的當(dāng)前濾波系數(shù)由濾波系數(shù)中對稱相等的濾波系數(shù)中的一個組成。
在所述濾波系數(shù)的個數(shù)為奇數(shù)的情況下,所述的當(dāng)前濾波系數(shù)由濾波系數(shù)中無對稱相等的濾波系數(shù)和對稱相等的濾波系數(shù)中的一個組成。
從上述技術(shù)方案可以看出,本發(fā)明利用對稱濾波的濾波系數(shù)對稱相等的特點,首先將當(dāng)前待濾波數(shù)據(jù)中相對稱的數(shù)據(jù)并行相加,然后再將并行相加的結(jié)果與濾波系數(shù)并行相乘,這樣,可以使濾波計算所需的乘法運算量減半,因此在采用基本相同的硬件開銷的前提下有效減少了濾波運算中乘法運算的時間,從而減少了濾波所需的時間。
進一步,本發(fā)明在存儲待濾波數(shù)據(jù)的寄存器設(shè)置了存儲后續(xù)待濾波數(shù)據(jù)的隱藏數(shù)據(jù)單元,讀入當(dāng)前待濾波數(shù)據(jù)的同時讀入后續(xù)待濾波數(shù)據(jù),在執(zhí)行完一次濾波計算后,通過寄存器的移位,使存儲在隱藏數(shù)據(jù)單元的后續(xù)待濾波數(shù)據(jù)進入有效數(shù)據(jù)單元,以執(zhí)行下一次濾波運算,而不用每執(zhí)行完一次濾波運算就從內(nèi)存重新調(diào)入當(dāng)前待濾波數(shù)據(jù),減少了從內(nèi)存讀取數(shù)據(jù)的時間,從而進一步減少了濾波所需的時間。同時,隱藏數(shù)據(jù)單元的設(shè)置也可以實現(xiàn)上采樣和下采樣,從而提高了濾波操作的靈活性。
進一步,本發(fā)明通過設(shè)置存儲多組濾波系數(shù)的內(nèi)存、從多組濾波系數(shù)中選擇一組的控制寄存器以及為所選擇的濾波系數(shù)產(chǎn)生在內(nèi)存中相對地址的地址訪問控制單元,可以對原始數(shù)據(jù)的不同部分采用不同的濾波系數(shù),從而也提高了濾波操作的靈活性和適應(yīng)性。
進一步,本發(fā)明利用多個并行數(shù)據(jù)處理單元進行濾波,可以實現(xiàn)更快速的濾波運算,或執(zhí)行更高階次的濾波。


圖1是視頻通信的一般過程的示意圖。
圖2是現(xiàn)有技術(shù)利用SIMD處理器實現(xiàn)濾波運算的濾波器結(jié)構(gòu)示意圖。
圖3是本發(fā)明第一實施例的濾波器的結(jié)構(gòu)框圖。
圖4示出了本發(fā)明第一實施例的寄存器RA和RB的構(gòu)成。
圖5是本發(fā)明第一實施例的在執(zhí)行16階濾波的情況下寄存器RA和RB從內(nèi)存A調(diào)入數(shù)據(jù)的示例。
圖6是本發(fā)明第二實施例的濾波器的結(jié)構(gòu)框圖。
圖7A是本發(fā)明第二實施例的在執(zhí)行15階濾波的情況下寄存器RA和RB從內(nèi)存A調(diào)入數(shù)據(jù)的示例。
圖7B是對圖7A所示的寄存器RB進行清零操作的結(jié)果示例。
圖8是本發(fā)明第三實施例的濾波器的結(jié)構(gòu)框圖。
圖9示出了本發(fā)明第三實施例的寄存器RA和RB的構(gòu)成。
圖10是本發(fā)明第三實施例的16階濾波時寄存器RA和RB從內(nèi)存A調(diào)入數(shù)據(jù)的示例。
圖11是本發(fā)明第三實施例的控制寄存器的三個示例。
圖12是本發(fā)明第四實施例的濾波器的結(jié)構(gòu)框圖。
圖13是本發(fā)明第五實施例的濾波器的結(jié)構(gòu)框圖。
圖14是本發(fā)明第六實施例的濾波器的結(jié)構(gòu)框圖。
圖15是本發(fā)明第七實施例的濾波器的結(jié)構(gòu)框圖。
圖16A是本發(fā)明第七實施例工作在單獨模式下的多個并行數(shù)據(jù)處理單元中的寄存器RA和RB從內(nèi)存A調(diào)入數(shù)據(jù)的示例。
圖16B是本發(fā)明第七實施例工作在組合模式下的多個并行數(shù)據(jù)處理單元中的寄存器RA和RB從內(nèi)存A調(diào)入數(shù)據(jù)的示例。
具體實施例方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更清楚,下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步描述。
在視頻濾波處理過程中,經(jīng)常采用的濾波為對稱濾波,即濾波系數(shù)具有對稱性。如果是對稱濾波,在濾波計算公式Ok=C1Pk1+C2Pk2+C3Pk3+…+CNPkN中,C1至CN這N個濾波系數(shù)對稱相等,即C1=CN,C2=CN-1,…。由于濾波系數(shù)具有對稱性,所以Pk1到PkN這N個原始數(shù)據(jù)也具有對稱性,也就是說,與對稱相等的濾波系數(shù)相乘的數(shù)據(jù)互為對稱數(shù)據(jù),例如,Pk1與PkN互為對稱數(shù)據(jù),Pk2與Pk(N-1)互為對稱數(shù)據(jù)。需要說明,這里的對稱數(shù)據(jù)并非指對稱相等的數(shù)據(jù),而是指在濾波計算公式中與對稱相等的濾波系數(shù)相乘的數(shù)據(jù)。
如濾波計算公式所示出的,N個原始數(shù)據(jù)與N個濾波系數(shù)分別相乘,再對乘積求和,可得一個濾波數(shù)據(jù)。在下文中,將這N個原始數(shù)據(jù)稱為當(dāng)前待濾波數(shù)據(jù),將濾波系數(shù)中除去濾波系數(shù)中對稱相等部分所剩下的濾波系數(shù)作為當(dāng)前濾波系數(shù),即當(dāng)前濾波系數(shù)由所有對稱相等的濾波系數(shù)中的一個所組成。
本發(fā)明的基本思想是利用對稱濾波的濾波系數(shù)對稱相等、SIMD處理器并行處理的特點,在執(zhí)行對稱濾波運算時,將對稱的當(dāng)前待濾波數(shù)據(jù)分別相加,保持無對稱數(shù)據(jù)的當(dāng)前待濾波數(shù)據(jù)不變,將所得結(jié)果與當(dāng)前濾波系數(shù)并行相乘,對并行相乘結(jié)果求和,得到一個濾波數(shù)據(jù)。下面分別通過七個具體第一實施例圖3是本發(fā)明第一實施例的濾波器的結(jié)構(gòu)框圖。參見圖3,在第一實施例中,濾波器300包括內(nèi)存A301、內(nèi)存B302和SIMD處理器310。其中,內(nèi)存A301存儲原始數(shù)據(jù),由調(diào)用濾波器300的上層設(shè)備填充,以供SIMD處理器310讀?。粌?nèi)存B302存儲SIMD處理器310輸出的濾波數(shù)據(jù),由調(diào)用濾波器300的上層設(shè)備讀取。舉例來說,上層設(shè)備有編碼器、解碼器等。
SIMD處理器310包括地址訪問控制單元311、濾波系數(shù)寄存器314和并行數(shù)據(jù)處理單元320。其中并行數(shù)據(jù)處理單元320包括存儲當(dāng)前待濾波數(shù)據(jù)的寄存器RA321和寄存器RB322、并行加法器323和并行乘法器324。圖3中的粗實線表示數(shù)據(jù)流,細(xì)實線表示控制流。
圖4是在本實施例中寄存器RA和RB的構(gòu)成。參見圖4,寄存器RA321和RB322的長度為128位,對于數(shù)據(jù)精度為16位的當(dāng)前待濾波數(shù)據(jù)來說,寄存器RA321和RB322可同時存儲8個數(shù)據(jù)。
本發(fā)明所采用的寄存器RA321和RB322的類型不同,寄存器RA321和RB322的最低有效位(LSB)分別處于寄存器的不同地址端。如圖4所示,寄存器RA321的最低有效位(LSB)位于寄存器RA321的低地址端;而寄存器RB322的最低有效位(LSB)位于寄存器RB322的高地址端。向寄存器存入數(shù)據(jù)的順序通常是從最低有效位開始存儲,而對兩個寄存器中的數(shù)據(jù)并行相加時,通常是將位于相同地址端的數(shù)據(jù)兩兩相加,因此,采用兩個類型不同的寄存器便于并行加法器對兩個寄存器中互為對稱數(shù)據(jù)的當(dāng)前待濾波數(shù)據(jù)并行相加。
在本實施例中,濾波系數(shù)寄存器314是128位的寄存器,可同時存儲8個濾波系數(shù)。對于16階對稱濾波來說,實際的濾波系數(shù)為16個,但是由于濾波系數(shù)呈對稱相等的分布,可僅保存將濾波系數(shù)中對稱相等的部分去除的8個當(dāng)前濾波系數(shù)。
下面詳細(xì)說明本實施例的濾波器實現(xiàn)濾波的具體過程。
第一步,將原始數(shù)據(jù)中的一組當(dāng)前待濾波數(shù)據(jù)分為兩部分,并按照相反的存儲順序分別存儲這兩部分?jǐn)?shù)據(jù)地址訪問控制單元311分別為并行數(shù)據(jù)處理單元320的寄存器RA321和RB322生成第一部分當(dāng)前待濾波數(shù)據(jù)和第二部分當(dāng)前待濾波數(shù)據(jù)在內(nèi)存A301中的地址,以控制將兩部分當(dāng)前待濾波數(shù)據(jù)從內(nèi)存A301分別復(fù)制到寄存器RA321和寄存器RB322。
地址訪問控制單元311由調(diào)用濾波器300的上層設(shè)備設(shè)置,設(shè)置的信息包括原始數(shù)據(jù)在內(nèi)存A301中的起始地址、濾波階數(shù)和數(shù)據(jù)長度。
如果是初次調(diào)入數(shù)據(jù),則地址訪問控制單元311生成的第一部分當(dāng)前待濾波數(shù)據(jù)和第二部分當(dāng)前待濾波數(shù)據(jù)的第一和第二起始地址分別為第一起始地址=原始數(shù)據(jù)起始地址;第二起始地址=原始數(shù)據(jù)起始地址+INT(濾波階數(shù)/2),其中INT()表示取整操作。
如果不是初次調(diào)入數(shù)據(jù),則地址訪問控制單元311生成的第一部分當(dāng)前待濾波數(shù)據(jù)和第二部分當(dāng)前待濾波數(shù)據(jù)的第一和第二起始地址分別為第一起始地址=上次第一起始地址+1;第二起始地址=上次第二起始地址+1,然后,從第一起始地址開始,調(diào)入數(shù)據(jù)個數(shù)等于數(shù)據(jù)長度的數(shù)據(jù)至寄存器RA321;從第二起始地址開始,調(diào)入數(shù)據(jù)個數(shù)等于數(shù)據(jù)長度的數(shù)據(jù)至寄存器RB322。通常數(shù)據(jù)長度是根據(jù)寄存器的位數(shù)設(shè)置的。在本實施例中,所設(shè)置的數(shù)據(jù)長度為8,因此兩部分當(dāng)前待濾波數(shù)據(jù)各有8個數(shù)據(jù)。并且,由于寄存器RA321和RB322的類型不同,寄存器RA321中當(dāng)前待濾波數(shù)據(jù)的存儲順序和寄存器RB322中當(dāng)前待濾波數(shù)據(jù)的存儲順序相反。
圖5所示為一個16階濾波的具體示例。如圖5所示,從內(nèi)存A301復(fù)制到寄存器RA321的數(shù)據(jù)為16、26、37、41、47、49、128和141,其中16位于低地址端。從內(nèi)存A301復(fù)制到寄存器RB322的數(shù)據(jù)為127、194、124、97、99、124、164和168,其中127位于高地址端。寄存器321的8個數(shù)據(jù)和寄存器322的8對互為對稱數(shù)據(jù)的當(dāng)前待濾波數(shù)據(jù),即16和168、26和164、37和124、41和99、47和97、49和124、128和194、141和127分別將與對稱相等的濾波系數(shù)相乘。
第二步,將兩部分當(dāng)前待濾波數(shù)據(jù)并行相加并行加法器323將寄存器RA321和RB322中的當(dāng)前待濾波數(shù)據(jù)進行并行相加,然后將并行相加的結(jié)果送至并行乘法器324。在圖5所示的具體示例中,將寄存器RA321中的16、26、37、41、47、49、128和141與寄存器RB322中的168、164、124、99、97、124、194和127分別對應(yīng)相加,所得的并行相加結(jié)果為184、190、161、140、144、173、322和268。
第三步,將并行相加的結(jié)果與濾波系數(shù)并行相乘,并對并行相乘的結(jié)果求和并行乘法器324將并行加法器323計算出的并行相加的結(jié)果與濾波系數(shù)寄存器314中的當(dāng)前濾波系數(shù)并行相乘,然后并行乘法器324對并行相乘的結(jié)果求和,最后將求和的結(jié)果作為一個濾波數(shù)據(jù)輸出至內(nèi)存302。
這樣,就輸出了一個濾波數(shù)據(jù)。通過從原始數(shù)據(jù)中調(diào)入當(dāng)前待濾波數(shù)據(jù),對每一組當(dāng)前待濾波數(shù)據(jù)重復(fù)執(zhí)行第一步至第三步,可得到所有濾波數(shù)據(jù)。
從第一實施例的技術(shù)方案可以看出,在進行對稱濾波時,利用濾波系數(shù)對稱相等的特點,通過采用兩個類型不同的存儲原始數(shù)據(jù)的寄存器,對這兩個寄存器中的數(shù)據(jù)并行相加,再將并行相加的結(jié)果與濾波系數(shù)并行相乘,可以節(jié)省一半的乘法運算量。
第二實施例在實際的對稱濾波處理中,濾波系數(shù)的個數(shù)有奇偶之分。對于濾波系數(shù)的個數(shù)為偶數(shù)的情況,濾波系數(shù)表示為C0,C1,C2,C3,…,CN,…,C2N-1,其中C0=C2N-1,C1=C2N-2,…,CN-1=CN,N為自然數(shù),也就是說,濾波系數(shù)兩兩對稱相等。
對于濾波系數(shù)的個數(shù)為奇數(shù)的情況,濾波系數(shù)可表示為C0,C1,C2,C3,…,CN,…,C2N-1,C2N,其中C0=C2N,C1=C2N-1,…,CN-1=CN+1,N為自然數(shù),也就是說,除位于正中間的CN以外,濾波系數(shù)兩兩對稱相等。
對于濾波系數(shù)的個數(shù)為奇數(shù)的情況,當(dāng)前濾波系數(shù)為濾波系數(shù)中除去對稱相等部分的濾波系數(shù),即當(dāng)前濾波系數(shù)由所有對稱相等的濾波系數(shù)中的一個和無對稱相等的濾波系數(shù)所組成。
圖6是根據(jù)本發(fā)明第二實施例的濾波器的結(jié)構(gòu)框圖。為了對濾波系數(shù)的個數(shù)為奇數(shù)和偶數(shù)的情況進行不同的處理,本實施例在圖3所示實施例的基礎(chǔ)上,增加了控制寄存器601,當(dāng)濾波系數(shù)的個數(shù)為奇數(shù)時,使寄存器RB322在每次發(fā)生數(shù)據(jù)改變后對最低有效數(shù)據(jù)單位執(zhí)行一次清零操作。
參見圖6,在第二實施例中,濾波器600包括存儲原始數(shù)據(jù)的內(nèi)存A301、存儲濾波數(shù)據(jù)的內(nèi)存B302和SIMD處理器610。其中,SIMD處理器610包括地址訪問控制單元311、控制寄存器601、濾波系數(shù)寄存器314和并行數(shù)據(jù)處理單元320。圖6中的粗實線表示數(shù)據(jù)流,細(xì)實線表示控制流。
控制寄存器601的長度為1位,用于控制寄存器RB322從內(nèi)存A301復(fù)制數(shù)據(jù)后是否需要一次額外的清零操作,其值為0表示濾波系數(shù)為偶數(shù),寄存器RB322發(fā)生數(shù)據(jù)改變后無需清零操作;其值為1表示濾波系數(shù)為奇數(shù),寄存器RB322發(fā)生數(shù)據(jù)改變后需要一次額外的清零操作。
如果濾波系數(shù)的個數(shù)為偶數(shù),在本實施例中,控制寄存器601的值為0,濾波的具體實現(xiàn)方式與第一實施例的第一步到第三步相同,在此請恕不予贅述。
如果濾波系數(shù)的個數(shù)為奇數(shù),在本實施例中,控制寄存器601的值為1,濾波的具體實現(xiàn)方式與第一實施例的第一步到第三步大致相同,所不同之處僅在于,如上述第二起始地址的計算公式所給出的,地址訪問控制單元311在濾波系數(shù)的個數(shù)為奇數(shù)2N-1時所生成的第二起始地址比濾波系數(shù)的個數(shù)為偶數(shù)2N時所生成的第二起始地址小1,即在濾波系數(shù)的個數(shù)為奇數(shù)時,第一部分當(dāng)前待濾波數(shù)據(jù)的最后一個數(shù)據(jù)與第二部分當(dāng)前待濾波數(shù)據(jù)的第一個數(shù)據(jù)重合,因此,當(dāng)寄存器RB322從內(nèi)存A301復(fù)制數(shù)據(jù)之后,需要增加一個步驟對位于其最低有效數(shù)據(jù)單位的所述重合數(shù)據(jù)清零。
圖7A所示為一個15階濾波的具體示例。如圖7A所示,從內(nèi)存A301復(fù)制到寄存器RA321的數(shù)據(jù)為16、26、37、41、47、49、128和141,16位于低地址端。從內(nèi)存A301復(fù)制到寄存器RB322的數(shù)據(jù)為141、127、194、124、97、99、124和164,其中的141位于高地址端。從圖7A可見,寄存器RB322中當(dāng)前待濾波數(shù)據(jù)的141不應(yīng)參與并行加法計算,因此在執(zhí)行并行相加之前,將最低有效數(shù)據(jù)單位上的數(shù)據(jù)清零,即在本例中將141清零,執(zhí)行完清零操作的結(jié)果顯示在圖7B中。如圖7B所示,此時,寄存器RA321和寄存器RB322中互為對稱數(shù)據(jù)的當(dāng)前待濾波數(shù)據(jù),即16和164、26和124、37和199、41和97、47和124、49和194、128和124、141和0分別將與對稱相等的濾波系數(shù)相乘。
在本實施例中,寄存器RA321的最高有效數(shù)據(jù)單位和寄存器RB322的最低有效數(shù)據(jù)單位的數(shù)據(jù)重合,根據(jù)寄存器的設(shè)計特點,通常對位于最低有效數(shù)據(jù)單位的數(shù)據(jù)清零,所以此處對寄存器RB322的最低有效數(shù)據(jù)單位清零。反之,如果所述重合的數(shù)據(jù)位于寄存器RA321的最低有效數(shù)據(jù)單位和寄存器RB322的最高有效數(shù)據(jù)單位,則對寄存器RA321的最低有效數(shù)據(jù)單位清零。
從第二實施例的技術(shù)方案可以看出,通過設(shè)置控制兩個存儲原始數(shù)據(jù)的寄存器中的一個在改變數(shù)據(jù)時清零的控制寄存器,控制寄存器RA或RB在改變數(shù)據(jù)后執(zhí)行一次清零操作,可以實現(xiàn)濾波系數(shù)為奇數(shù)的對稱濾波。
第三實施例正如現(xiàn)有技術(shù)所述,SIMD處理器每執(zhí)行一次濾波計算,需要從內(nèi)存中讀入新的數(shù)據(jù)以進行下次濾波計算,這種內(nèi)存和寄存器之間的頻繁的數(shù)據(jù)交換使濾波時間增加。為了減少從內(nèi)存讀入當(dāng)前待濾波數(shù)據(jù)的時間,可以在存儲當(dāng)前待濾波數(shù)據(jù)的兩個寄存器RA和RB中增加存儲后續(xù)待濾波數(shù)據(jù)的隱藏數(shù)據(jù)單元,以及控制寄存器RA和RB移位的控制寄存器602和603??蓪D3和圖6所示的任一實施例增加上述結(jié)構(gòu),在此以對圖3所示實施例進行增加為例。
圖8是本發(fā)明第三實施例的濾波器的結(jié)構(gòu)框圖。參見圖8,在第三實施例中,濾波器800包括存儲原始數(shù)據(jù)的內(nèi)存A301、存儲濾波數(shù)據(jù)的內(nèi)存B302和SIMD處理器810。其中SIMD處理器810包括地址訪問控制單元311、控制寄存器602和603、濾波系數(shù)寄存器314和并行數(shù)據(jù)處理單元820。其中并行數(shù)據(jù)處理單元820包括存儲待濾波數(shù)據(jù)的寄存器RA821和寄存器RB822、并行加法器323和并行乘法器324。圖8中的粗實線表示數(shù)據(jù)流,細(xì)實線表示控制流。
控制寄存器602的長度為2位,用于控制控制寄存器603的有效數(shù)據(jù)位數(shù);控制寄存器603的長度為8位,用于控制寄存器RA821和RB822的移位操作??刂萍拇嫫?02和603的值由調(diào)用濾波器800的上層設(shè)備設(shè)置。
參見圖8,在本實施例中,寄存器RA821和RB822的長度為192位,對于數(shù)據(jù)精度為16位的待濾波數(shù)據(jù)來說,寄存器RA821和RB822可同時存儲12個數(shù)據(jù)。192位中的128位是用來存儲當(dāng)前待濾波數(shù)據(jù)的有效數(shù)據(jù)單元,因此可一次存儲8個當(dāng)前待濾波數(shù)據(jù),當(dāng)前待濾波數(shù)據(jù)是參與本次濾波運算的數(shù)據(jù);192位中的64位是存儲后續(xù)待濾波數(shù)據(jù)的隱藏數(shù)據(jù)單元,用于在本次濾波運算結(jié)束后,通過寄存器RA821和RB822的移位操作使后續(xù)待濾波數(shù)據(jù)進入有效數(shù)據(jù)單元,參與后續(xù)的濾波運算。
與寄存器RA321和RB322一樣,寄存器RA821和RB822也是不同類型的寄存器,其各自的最低有效位(LSB)分別位于寄存器的不同地址端。如圖9所示,寄存器RA821的最低有效位(LSB)位于寄存器RA821的低地址端;而寄存器RB822的最低有效位(LSB)位于寄存器RB822的高地址端。
下面詳細(xì)說明本實施例的濾波器實現(xiàn)濾波的具體過程。
第一步,將原始數(shù)據(jù)中的一組當(dāng)前待濾波數(shù)據(jù)分為兩部分,按照相反的存儲順序在寄存器中分別存儲兩部分?jǐn)?shù)據(jù),并將原始數(shù)據(jù)中緊跟每部分?jǐn)?shù)據(jù)的幾個數(shù)據(jù)作為后續(xù)待濾波數(shù)據(jù)也按相反的存儲順序分別存儲地址訪問控制單元311分別為并行數(shù)據(jù)處理單元820的寄存器RA821和寄存器RB822生成第一部分待濾波數(shù)據(jù)和第二部分待濾波數(shù)據(jù)在內(nèi)存A301中的地址。
地址訪問控制單元311由調(diào)用濾波器800的上層設(shè)備設(shè)置,設(shè)置的信息包括原始數(shù)據(jù)在內(nèi)存A301中存儲的起始地址、濾波階數(shù)、數(shù)據(jù)長度以及每次產(chǎn)生新地址時需要增加的數(shù)據(jù)步長。
如果是初次調(diào)入數(shù)據(jù),則地址訪問控制單元311生成的第一部分待濾波數(shù)據(jù)和第二部分待濾波數(shù)據(jù)的第一和第二起始地址與第一實施例中第一步的初次調(diào)入數(shù)據(jù)所生成的第一和第二起始地址相同。
如果不是初次調(diào)入數(shù)據(jù),則地址訪問控制單元311生成的第一和第二起始地址為第一起始地址=上次第一起始地址+數(shù)據(jù)步長+1;第二起始地址=上次第二起始地址+數(shù)據(jù)步長+1,其中,數(shù)據(jù)步長為上組濾波運算中寄存器RA821和RB822向各自最低有效位所移動的數(shù)據(jù)數(shù),寄存器移位操作的具體說明詳見第四步。
然后,分別從第一和第二起始地址開始,調(diào)入數(shù)據(jù)個數(shù)等于數(shù)據(jù)長度的數(shù)據(jù)至寄存器RA821和寄存器RB822。在本實施例中,所設(shè)置的數(shù)據(jù)長度為12,因此兩部分待濾波數(shù)據(jù)中各有12個數(shù)據(jù),其中前8個數(shù)據(jù)為存儲在有效數(shù)據(jù)單元中的當(dāng)前待濾波數(shù)據(jù),后4個數(shù)據(jù)為存儲在隱藏數(shù)據(jù)單元中的后續(xù)待濾波數(shù)據(jù)。與寄存器RA321和RB322一樣,寄存器RA821中待濾波數(shù)據(jù)的存儲順序和寄存器RB822中待濾波數(shù)據(jù)的存儲順序相反。
圖10所示為一個16階濾波的具體示例。如圖10所示,從內(nèi)存A301復(fù)制到寄存器RA821的數(shù)據(jù)為16、26、37、41、47、49、128、141、127、194、124和97,其中16至141這8個數(shù)據(jù)是位于有效數(shù)據(jù)單元的當(dāng)前待濾波數(shù)據(jù),16位于低地址端;127至97這4個數(shù)據(jù)是位于隱藏數(shù)據(jù)單元的后續(xù)待濾波數(shù)據(jù),97位于高地址端。從內(nèi)存A301復(fù)制到寄存器RB822的數(shù)據(jù)為127、194、124、97、99、124、164、168、169、1、169和170,其中的127至168這8個數(shù)據(jù)是位于有效數(shù)據(jù)單元的當(dāng)前待濾波數(shù)據(jù),127位于高地址端;169至170這4個數(shù)據(jù)是位于隱藏數(shù)據(jù)單元的后續(xù)待濾波數(shù)據(jù),170位于低地址端。寄存器RA821的有效數(shù)據(jù)單元和寄存器RB822的有效數(shù)據(jù)單元中互為對稱數(shù)據(jù)的當(dāng)前待濾波數(shù)據(jù),即16和168、26和164、37和124、41和99、47和97、49和124、128和194、141和127將與對稱相等的濾波系數(shù)相乘。
本實施例的第二步和第三步分別與第一實施例的第二步和第三步相同,在此請恕不予贅述。
第四步,利用后續(xù)待濾波數(shù)據(jù)進行后續(xù)濾波計算
在完成一次濾波計算后,寄存器RA821在控制寄存器602和603的控制下向最低有效位端(低地址端)進行移位操作;寄存器RB822也在控制寄存器602和603的控制下向最低有效位端(高地址端)進行移位操作。移位操作所偏移的數(shù)據(jù)位數(shù)由控制寄存器603的有效控制位控制,控制寄存器603的有效位由控制寄存器602確定??刂萍拇嫫?02和控制寄存器603的值由調(diào)用本濾波器的上層設(shè)備設(shè)置。當(dāng)控制寄存器602的值為00時,表示控制寄存器603的有效位為第7、8位;當(dāng)控制寄存器602的值為01時,表示控制寄存器603的有效位為第5位至第8位;當(dāng)控制寄存器602的值為10時,表示控制寄存器603的有效位為第3位至第8位;當(dāng)控制寄存器602的值為11時,表示控制寄存器603的有效位為第1位至第8位??刂萍拇嫫?03的有效數(shù)據(jù)位的值之和為數(shù)據(jù)步長,數(shù)據(jù)步長表示寄存器RA和RB在一組濾波運算中所移的數(shù)據(jù)單位數(shù),此處一組濾波運算指相鄰兩次從內(nèi)存A調(diào)取數(shù)據(jù)之間所執(zhí)行的濾波計算。下面通過參考圖11以及三個具體示例對移位操作的實施方式及其效果予以說明。
在圖11(a)所示的具體示例中,控制寄存器602的值為10,表示控制寄存器603的3至8位有效,這6位的值為010101??刂萍拇嫫?03的第7、8位為01,表示完成第一次濾波計算之后,寄存器RA821和寄存器RB822向各自的最低有效位移動一個數(shù)據(jù)單位,即16位;控制寄存器603的第5、6位為01,表示完成第二次濾波計算之后,寄存器RA821和寄存器RB822向各自的最低有效位移動一個數(shù)據(jù)單位;控制寄存器603的第3、4位為01,表示完成第三次濾波計算之后,寄存器RA821和寄存器RB822向各自的最低有效位移動一個數(shù)據(jù)單位。然后寄存器RA821和RB822將在地址訪問控制單元311的控制下重新從內(nèi)存A301調(diào)入12個數(shù)據(jù)。從本示例可見,在這一組濾波運算中,數(shù)據(jù)步長為3,并行數(shù)據(jù)處理單元每做一次濾波運算就輸出一個濾波數(shù)據(jù),并且進行移位一個數(shù)據(jù)單元的操作,因此在整個濾波完成后,輸出的濾波數(shù)據(jù)的個數(shù)等于原始數(shù)據(jù)的個數(shù)。
在圖11(b)所示的具體示例中,控制寄存器602的值為10,表示控制寄存器603的3至8位有效,這6位值為010001。控制寄存器603的第7、8位為01,表示完成第一次濾波計算之后,寄存器RA821和寄存器RB822向各自的最低有效位移動一個數(shù)據(jù)單位;控制寄存器603的第5、6位為00,表示完成第二次濾波計算之后,寄存器RA821和寄存器RB822不執(zhí)行向各自的最低有效位移位的操作,用寄存器中當(dāng)前存在的數(shù)據(jù)進行第三次濾波計算;控制寄存器603的第3、4位為01,表示完成第三次濾波計算之后,寄存器RA821和寄存器RB822向各自的最低有效位移動一個數(shù)據(jù)單位。然后寄存器RA821和RB822將在地址訪問控制單元311的控制下從內(nèi)存A301調(diào)入12個數(shù)據(jù)。從本示例可見,在這一組濾波運算中,數(shù)據(jù)步長為2,濾波器輸出了4個濾波數(shù)據(jù),而原始數(shù)據(jù)移動了3個數(shù)據(jù),因此在整個濾波完成后,輸出的濾波數(shù)據(jù)的個數(shù)大于原始數(shù)據(jù)的個數(shù),從而實現(xiàn)了上采樣。
在圖11(c)所示的具體示例中,控制寄存器602的值為10,表示控制寄存器603的3至8位有效,這6位的值為011001。控制寄存器603的第7、8位為01,表示完成第一次濾波計算之后,寄存器RA821和寄存器RB822向各自的最低有效位移動一個數(shù)據(jù)單位;控制寄存器603的第5、6位為10,表示完成第二次濾波計算之后,寄存器RA821和寄存器RB822向各自的最低有效位移動二個數(shù)據(jù)單位;控制寄存器603的第3、4位為01,表示完成第三次濾波計算之后,寄存器RA821和寄存器RB822向各自的最低有效位移動一個數(shù)據(jù)單位。然后寄存器RA821和RB822將在地址訪問控制單元311的控制下從內(nèi)存A301調(diào)入12個數(shù)據(jù)。從本示例可見,在這一組濾波運算中,數(shù)據(jù)步長為4,濾波器輸出了4個濾波數(shù)據(jù),而原始數(shù)據(jù)移動了5個數(shù)據(jù),因此在整個濾波完成后,輸出的濾波數(shù)據(jù)的個數(shù)小于原始數(shù)據(jù)的個數(shù),從而實現(xiàn)了下采樣。
每次寄存器RA821和RB822向各自的最低有效位移位后,需重復(fù)執(zhí)行第二步和第三步,直至寄存器RA821和RB822在控制寄存器602和603的控制下完成所有移位操作。然后,在地址訪問控制單元311的控制下,從內(nèi)存A301調(diào)入新的數(shù)據(jù)至寄存器RA821和RB822,然后重復(fù)執(zhí)行第一步至第四步,直至對全部原始數(shù)據(jù)的濾波完成。
需要特別指出的是,如果在圖6所示實施例中增加控制寄存器602和603,并在寄存器RA321和RB322上分別增加隱藏數(shù)據(jù)單元而使其成為寄存器RA821和RB822,那么,在濾波系數(shù)的個數(shù)為奇數(shù)時,控制寄存器601的值為1,每次寄存器RB822移位后,需要增加一個步驟對位于其最低有效數(shù)據(jù)單位的數(shù)據(jù)清零。如果濾波系數(shù)的個數(shù)為偶數(shù),控制寄存器601的值為0,每次寄存器RB822移位后,無需清零的操作。
從上述第三實施例的技術(shù)方案可以看出,通過在寄存器RA和RB中增加隱藏數(shù)據(jù)單元,以及控制寄存器RA和RB移位的控制寄存器602和603,在得到一個濾波數(shù)據(jù)后,可以通過寄存器RA和RB的移位,使隱藏數(shù)據(jù)單元中的數(shù)據(jù)進入有效數(shù)據(jù)單元成為當(dāng)前待濾波數(shù)據(jù),進行濾波運算,無需每得到一個濾波數(shù)據(jù)即從內(nèi)存A調(diào)入新的當(dāng)前待濾波數(shù)據(jù)。因此,可以進一步減少濾波所需的時間。而且,通過對將隱藏數(shù)據(jù)單元中的數(shù)據(jù)移位進入有效數(shù)據(jù)單元的操作進行控制,可以有效地實現(xiàn)上采樣和下采樣,從而提高了濾波運算的靈活性。
第四實施例某些濾波需要針對同一組原始數(shù)據(jù)應(yīng)用多組濾波系數(shù),為了實現(xiàn)這類濾波,可增加存儲多組濾波系數(shù)的內(nèi)存C、從多組濾波系數(shù)中選擇一組的控制寄存器和生成所選擇的濾波系數(shù)在內(nèi)存C中相對地址的地址訪問控制單元,可以通過對圖3、圖6或圖8所示任一實施例增加上述結(jié)構(gòu)來實現(xiàn),在此以在圖3所示實施例上增加為例。
圖12是本發(fā)明第四實施例的濾波器的結(jié)構(gòu)框圖。參見圖12,在第四實施例中,濾波器1200包括存儲原始數(shù)據(jù)的內(nèi)存A301、存儲濾波數(shù)據(jù)的內(nèi)存B302、存儲濾波系數(shù)的內(nèi)存C303和SIMD處理器1210。其中內(nèi)存C303中的濾波系數(shù)由調(diào)用濾波器1200的上層設(shè)備填充,內(nèi)存C303可保存多組濾波系數(shù)。SIMD處理器1210包括地址訪問控制單元311和312、控制寄存器604、濾波系數(shù)寄存器314和并行數(shù)據(jù)處理單元320。圖12中的粗實線表示數(shù)據(jù)流,細(xì)實線表示控制流。
地址訪問控制單元312生成所選擇的濾波系數(shù)在內(nèi)存C303中的相對地址、以控制從內(nèi)存C303復(fù)制一組濾波系數(shù)至濾波系數(shù)寄存器314。
控制寄存器604的長度為10位,用于控制地址訪問控制單元312生成所選擇的濾波系數(shù)在內(nèi)存C303中的相對地址,其值由調(diào)用濾波器1200的上層設(shè)備設(shè)置。
本實施例的第一步、第二步和第三步分別與第三實施例的第一步、第二步和第三步相同,在此請恕不予贅述。本實施例和第三實施例的區(qū)別僅在于,本實施例在第一步和第二步之間,增加了一個步驟從多組濾波系數(shù)中選擇一組濾波系數(shù)作為本次濾波運算所選擇的濾波系數(shù),下面詳細(xì)說明此步驟。
地址訪問控制單元312在控制寄存器604的控制下生成所選擇濾波系數(shù)在內(nèi)存C303中的相對地址,以控制將所選擇的濾波系數(shù)從內(nèi)存C303復(fù)制到濾波系數(shù)寄存器314。
在本實施例中,控制寄存器604為10位寄存器,其中的每2位對應(yīng)一組濾波系數(shù),在進行濾波運算時,可根據(jù)控制寄存器604的值輪換濾波系數(shù)。舉例說明,假設(shè)內(nèi)存C303包含4組濾波系數(shù)C1、C2、C3和C4,控制寄存器604的值為0110000111,其中第1、2位為01,對應(yīng)濾波系數(shù)C2;第3、4位為10,對應(yīng)的濾波系數(shù)為C3;第5、6位為00,對應(yīng)的濾波系數(shù)為C1;第7、8位為01,對應(yīng)的濾波系數(shù)為C2;第9、10位為11,對應(yīng)的濾波系數(shù)為C4。這樣,在進行濾波運算時,可按照C2、C3、C1、C2的順序輪換濾波系數(shù)??梢悦繄?zhí)行一次濾波計算換一組濾波系數(shù),也可以每執(zhí)行M次濾波計算換一組濾波系數(shù),其中M為預(yù)先設(shè)置的大于或等于2的自然數(shù)。
需要特別指出的是,如果在圖8所示實施例中增加內(nèi)存C303、地址訪問控制單元312和控制寄存器604,優(yōu)選地,控制寄存器604的有效數(shù)據(jù)位也由控制寄存器602確定,例如,當(dāng)控制寄存器602的值為00時,控制寄存器604的有效數(shù)據(jù)位為7至10位;當(dāng)控制寄存器602的值為01時,控制寄存器604的有效數(shù)據(jù)位為5至10位;當(dāng)控制寄存器602的值為10時,控制寄存器604的有效數(shù)據(jù)位為3至10位;當(dāng)控制寄存器602的值為11時,控制寄存器604的有效數(shù)據(jù)位為1至10位。
這樣,可以在一組濾波計算的多次濾波計算中根據(jù)控制寄存器604的值輪換濾波系數(shù),此處一組濾波計算為從內(nèi)存A301調(diào)入一次數(shù)據(jù)后至下一次調(diào)入數(shù)據(jù)之前所進行的所有濾波計算。控制寄存器604的第1和2位的值、第3和4位的值、第5和6位的值、第7和8位的值、第9和10位的值分別對應(yīng)一組濾波運算中第一次至第五次濾波運算所采用的濾波系數(shù)。
從上述第四實施例的技術(shù)方案可以看出,可以對同一組原始數(shù)據(jù)應(yīng)用多組濾波系數(shù)。
第五實施例除了前述的濾波公式,濾波的計算公式還可表示為Ok=C1Pk1+C2Pk2+C3Pk3+···+CNPkNC1+C2+···+CN]]>,從此公式可以看出,N個原始數(shù)據(jù)與N個濾波系數(shù)分別相乘再對乘積求和之后,還要將求和的值除以濾波系數(shù)之和,得到一個濾波數(shù)據(jù)。為了實現(xiàn)這個目的,可增加將并行數(shù)據(jù)處理單元輸出的結(jié)果除以濾波系數(shù)之和的移位寄存器以及控制移位寄存器所移位數(shù)的控制寄存器,可以通過對前述任一實施例進行增加來實現(xiàn),在此以在圖3所示實施例上增加為例。
圖13是本發(fā)明第五實施例的濾波器的結(jié)構(gòu)框圖。參見圖13,第五實施例的濾波器1300包括存儲原始數(shù)據(jù)的內(nèi)存A301、存儲濾波數(shù)據(jù)的內(nèi)存B302和SIMD處理器1310。其中SIMD處理器1310包括地址訪問控制單元311、控制寄存器605、濾波系數(shù)寄存器314、移位寄存器313和并行數(shù)據(jù)處理單元320。圖13中的粗實線表示數(shù)據(jù)流,細(xì)實線表示控制流。
控制寄存器605的長度為4位,用于控制移位寄存器313的移位操作,即控制移位寄存器313中的值除以濾波系數(shù)之和的操作??刂萍拇嫫?05的值由調(diào)用濾波器1300的上層設(shè)備設(shè)置。
本實施例的濾波器實現(xiàn)濾波的具體過程中的第一步至第三步與第一實施例中的第一步至第三步基本相同,在此請恕不予贅述。所不同之處僅在于,在實施例一的第三步中,并行乘法器324將處理的結(jié)果直接輸出至內(nèi)存B302,而本實施例的第三步中,并行乘法器324將處理的結(jié)果輸出至移位寄存器313。
第四步將第三步所得到的結(jié)果除以濾波系數(shù)之和,得到一個濾波數(shù)據(jù),其具體實現(xiàn)如下移位寄存器313在控制寄存器605的控制下向右移位,以實現(xiàn)將求和的結(jié)果除以濾波系數(shù)之和的操作。然后,移位寄存器313將該濾波數(shù)據(jù)輸出至內(nèi)存B302??刂萍拇嫫?05的值對應(yīng)于移位寄存器313需要向右移位的位數(shù),該值由調(diào)用濾波器1300的上層設(shè)備根據(jù)具體的濾波系數(shù)進行設(shè)置。
在移位寄存器313向右移位后,還可以對移位后的值進行飽和運算,飽和運算的作用是當(dāng)移位寄存器313移位后的值超過某個預(yù)先設(shè)定的位數(shù)時,例如超過16位時,將其中的數(shù)據(jù)轉(zhuǎn)換為具有16位精度的數(shù)據(jù)。
需要特別指出的是,如果在圖12所示實施例上增加移位寄存器313和控制寄存器605,雖然并非使用同一組濾波系數(shù)對原始數(shù)據(jù)進行濾波,但是對于同一組原始數(shù)據(jù),所使用的每組濾波系數(shù)之和是相等的,因此控制寄存器605中的值無需隨著所使用的濾波系數(shù)的變換而變換。
從第五實施例的技術(shù)方案可以看出,可以通過在并行數(shù)據(jù)處理單元和存儲濾波數(shù)據(jù)的內(nèi)存之間增加一個移位寄存器,實現(xiàn)對經(jīng)過并行相加和相乘,再對乘積求和之后的值除以濾波系數(shù)之和的操作。
第六實施例圖14是本發(fā)明第六實施例的濾波器的結(jié)構(gòu)框圖。參見圖14,本實施例中,濾波器1400包括存儲原始數(shù)據(jù)的內(nèi)存A301、存儲濾波數(shù)據(jù)的內(nèi)存B302和SIMD處理器1410。其中SIMD處理器1410包括地址訪問控制單元311和312、控制寄存器601至605、濾波系數(shù)寄存器314、移位寄存器313和并行數(shù)據(jù)處理單元820。圖14中的粗實線表示數(shù)據(jù)流,細(xì)實線表示控制流。
第六實施例是本發(fā)明的一個優(yōu)選實施例,可以實現(xiàn)濾波系數(shù)的個數(shù)為奇數(shù)的對稱濾波,可以通過寄存器RA和RB的移位操作進一步節(jié)省濾波時間并實現(xiàn)上下采樣,可以在對同一組原始數(shù)據(jù)進行濾波的過程中采用多組濾波系數(shù),可以實現(xiàn)對并行相乘之后求和的值除以濾波系數(shù)之和的操作。
第七實施例為了實現(xiàn)更快速的濾波運算,或?qū)崿F(xiàn)更高階次的濾波,濾波器可具有多個并行數(shù)據(jù)處理單元,以及分別對多個并行數(shù)據(jù)處理單元的輸出進行處理的多個累加寄存器??梢酝ㄟ^對前述任一實施例進行增加而實現(xiàn)上述目的,在此以在圖3所示實施例上增加為例。
圖15是本發(fā)明第七實施例的濾波器的結(jié)構(gòu)框圖。參見圖15,在第七實施例中,濾波器1500包括存儲原始數(shù)據(jù)的內(nèi)存A301、存儲濾波數(shù)據(jù)的內(nèi)存B302和SIMD處理器1510。其中SIMD處理器1510包括地址訪問控制單元311、控制寄存器606、濾波系數(shù)寄存器314、累加寄存器315、累加寄存器315’、第一并行數(shù)據(jù)處理單元320和第二并行數(shù)據(jù)處理單元320’。累加寄存器315接收第一并行數(shù)據(jù)處理單元320的輸出,累加寄存器315’接收第二并行數(shù)據(jù)處理單元320’的輸出。為了便于顯示,圖15未示出第一并行數(shù)據(jù)處理單元320和第二并行數(shù)據(jù)處理單元320’中的組成部件及其連接關(guān)系。圖15中的粗實線表示數(shù)據(jù)流,細(xì)實線表示控制流。
控制寄存器606的長度為1位,其具有兩方面的控制作用首先,通過控制地址訪問控制單元311生成的待濾波數(shù)據(jù)在內(nèi)存A301中的相對地址來控制第一并行數(shù)據(jù)處理單元320的寄存器RA321和RB322之間的數(shù)據(jù)距離和第二并行數(shù)據(jù)處理單元320’的寄存器RA321’和RB322’之間的數(shù)據(jù)距離;其次,控制累加寄存器315和累加寄存器315’輸出濾波數(shù)據(jù),在下文進行詳細(xì)說明。
對于每個并行處理單元,其實現(xiàn)濾波數(shù)據(jù)的基本流程與第一實施例的第一步至第三步類似,在此請恕不予贅述,下面僅對本實施例與第一實施例不同之處予以說明。
在本實施例中,配置兩個并行數(shù)據(jù)處理單元的目的有二其一是加快濾波運算的速度;其二是實現(xiàn)更高階次的濾波。不同的目的決定了兩個并行數(shù)據(jù)處理單元的工作模式不同。工作模式包括單獨模式和組合模式,在單獨模式下兩個并行數(shù)據(jù)處理單元獨立工作;在組合模式下兩個并行數(shù)據(jù)處理單元協(xié)同工作。
為了實現(xiàn)上述第一個目的,本實施例的兩個并行數(shù)據(jù)處理單元的工作模式為單獨模式,在這種模式下,控制寄存器606的值為0,兩個并行數(shù)據(jù)處理單元分別對兩組當(dāng)前待濾波數(shù)據(jù)進行濾波運算,得到兩個濾波數(shù)據(jù)。該模式下執(zhí)行濾波運算的大致流程如下首先,從內(nèi)存A301分別復(fù)制數(shù)據(jù)至第一并行數(shù)據(jù)處理單元320和第二并行數(shù)據(jù)處理單元320’時,在控制寄存器606的控制下,第一并行數(shù)據(jù)處理單元320的寄存器RA321和RB322中當(dāng)前待濾波數(shù)據(jù)之間的數(shù)據(jù)距離為0,第二并行數(shù)據(jù)處理單元320’的寄存器RA321’和RB322’中當(dāng)前待濾波數(shù)據(jù)之間的數(shù)據(jù)距離也為0。在16階濾波中,16個當(dāng)前待濾波數(shù)據(jù)為一組,每組當(dāng)前待濾波數(shù)據(jù)分為兩部分,每部分有8個數(shù)據(jù)。第一并行數(shù)據(jù)處理單元320的寄存器RA321和RB322中的當(dāng)前待濾波數(shù)據(jù)分別是第一組當(dāng)前待濾波數(shù)據(jù)的第一部分和第二部分的8個數(shù)據(jù),第二并行數(shù)據(jù)處理單元320’的寄存器RA321’和RB322’中的當(dāng)前待濾波數(shù)據(jù)分別是第二組當(dāng)前待濾波數(shù)據(jù)的第一部分和第二部分的8個數(shù)據(jù),圖16A所示為工作在單獨模式下從內(nèi)存A復(fù)制數(shù)據(jù)到寄存器RA和RB的示意圖。
然后,兩個并行數(shù)據(jù)處理單元分別執(zhí)行前述的濾波運算,第一并行數(shù)據(jù)處理單元320向累加寄存器315輸出一個結(jié)果,第二并行數(shù)據(jù)處理單元320’向累加寄存器315’輸出一個結(jié)果。然后,在控制寄存器606的控制下,累加寄存器315和315’分別輸出一個濾波數(shù)據(jù)至內(nèi)存B302。
這樣,兩個并行數(shù)據(jù)處理單元分別進行濾波運算,濾波階數(shù)和使用一個并行數(shù)據(jù)處理單元的濾波一樣,但濾波運算的速度加倍。
為了實現(xiàn)上述第二個目的,本實施例中的兩個并行數(shù)據(jù)處理單元的工作模式為組合模式,在這種模式下,控制寄存器606的值為1,兩個并行數(shù)據(jù)處理單元對一組當(dāng)前待濾波數(shù)據(jù)進行濾波運算,將兩個并行數(shù)據(jù)處理單元輸出的結(jié)果相加作為一個濾波數(shù)據(jù)。以32階濾波為例,該模式下執(zhí)行濾波運算的大致流程如下首先,從內(nèi)存A301分別復(fù)制數(shù)據(jù)至第一并行數(shù)據(jù)處理單元320和第二并行數(shù)據(jù)處理單元320’時,在控制寄存器606的控制下,第一并行數(shù)據(jù)處理單元320的寄存器RA321和RB322中當(dāng)前待濾波數(shù)據(jù)之間的數(shù)據(jù)距離為16,第二并行數(shù)據(jù)處理單元320’的寄存器RA321’和RB322’中當(dāng)前待濾波數(shù)據(jù)之間的數(shù)據(jù)距離為0。在32階濾波中,32個當(dāng)前待濾波數(shù)據(jù)為一組,每組當(dāng)前待濾波數(shù)據(jù)分為兩部分,每部分有16個當(dāng)前待濾波數(shù)據(jù)。第一并行數(shù)據(jù)處理單元320的寄存器RA321和RB322中的當(dāng)前待濾波數(shù)據(jù)分別是第一部分當(dāng)前待濾波數(shù)據(jù)的前8個數(shù)據(jù)和第二部分當(dāng)前待濾波數(shù)據(jù)的后8個數(shù)據(jù),第二并行數(shù)據(jù)處理單元320’的寄存器RA321’和RB322’中的當(dāng)前待濾波數(shù)據(jù)分別是第一部分當(dāng)前待濾波數(shù)據(jù)的后8個數(shù)據(jù)和第二部分當(dāng)前待濾波數(shù)據(jù)的前8個數(shù)據(jù),圖16B所示為工作在組合模式下從內(nèi)存A復(fù)制數(shù)據(jù)到寄存器RA和RB的示意圖。
然后,兩個并行數(shù)據(jù)處理單元分別執(zhí)行前述的濾波運算,第一并行數(shù)據(jù)處理單元320向累加寄存器315輸出一個結(jié)果,第二并行數(shù)據(jù)處理單元320’向累加寄存器315’輸出一個結(jié)果。
最后,在控制寄存器606的控制下,將累加寄存器315和累加寄存器315’中的值相加后存儲在累加寄存器315中,由累加寄存器315輸出一個濾波數(shù)據(jù)至內(nèi)存B302。
這樣,濾波器可以實現(xiàn)更高階次的濾波。需要說明,為了實現(xiàn)更高階次的對稱濾波,濾波系數(shù)寄存器314的位數(shù)也要相應(yīng)增加,或者,在本發(fā)明的其它實施例中,可以設(shè)置兩個濾波系數(shù)寄存器,分別向兩個并行數(shù)據(jù)處理單元提供濾波系數(shù)。
此外,累加寄存器315和315’也可以實現(xiàn)第五實施例中移位寄存器313的功能,即分別將第一并行數(shù)據(jù)處理單元320和第二并行數(shù)據(jù)處理單元320’的輸出除以濾波系數(shù)之和的操作,同時增加控制累加寄存器315和315’移位操作的控制寄存器607(未示出),控制寄存器607的功能和控制寄存器605的功能類似,所不同之處為控制寄存器605控制移位寄存器313的移位,而控制寄存器607控制累加寄存器315和/或315’的移位。在單獨模式下,累加寄存器315和315’分別接收第一和第二并行數(shù)據(jù)處理單元320的輸出,在控制寄存器607的控制下,分別向右移位后向內(nèi)存B302輸出兩個濾波數(shù)據(jù),也可以在分別對經(jīng)過向右移位的值進行飽和運算后向內(nèi)存B302輸出兩個濾波數(shù)據(jù);在組合模式下,在將累加寄存器315和315’中的值之和保存在累加寄存器315后,累加寄存器315在控制寄存器607的控制下,向右移位后向內(nèi)存B302輸出一個濾波數(shù)據(jù),也可以在對經(jīng)過向右移位的值進行飽和運算后向內(nèi)存B302輸出一個濾波數(shù)據(jù)。
在第七實施例的濾波器中,以兩個并行數(shù)據(jù)處理單元為例進行說明,在實際應(yīng)用中,也可以包含兩個以上并行數(shù)據(jù)處理單元,從而進一步提高濾波運算的速度,或?qū)崿F(xiàn)更復(fù)雜的濾波運算。
從第七實施例的技術(shù)方案可以看出,通過組合多個并行數(shù)據(jù)處理單元和累加寄存器來實現(xiàn)濾波運算的并行性,進一步減少濾波運算的時間,或者實現(xiàn)更加復(fù)雜的濾波運算。
需要說明,第一實施例至第七實施例中的控制寄存器601至607的位數(shù)僅為優(yōu)選值,在實際應(yīng)用中,控制寄存器601至607可以為任意合適的位數(shù)。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種濾波器,包括存儲原始數(shù)據(jù)的第一內(nèi)存;存儲濾波數(shù)據(jù)的第二內(nèi)存;和單指令多數(shù)據(jù)SIMD處理器,該SIMD處理器從第一內(nèi)存中獲取與濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù);將當(dāng)前待濾波數(shù)據(jù)中與對稱相等的濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù)分別相加、保持與無對稱相等的濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù)不變;將所得數(shù)據(jù)分別與預(yù)先保存的當(dāng)前濾波系數(shù)并行相乘,對并行相乘結(jié)果求和獲得濾波數(shù)據(jù)并輸出至第二內(nèi)存。
2.根據(jù)權(quán)利要求1所述的濾波器,其中所述SIMD處理器包括并行數(shù)據(jù)處理單元,包括具有相反存儲順序的第一寄存器和第二寄存器、并行加法器和并行乘法器;濾波系數(shù)寄存器,至少存儲N個當(dāng)前濾波系數(shù),該N個當(dāng)前濾波系數(shù)由2N個濾波系數(shù)中對稱相等的濾波系數(shù)中的一個組成;第一地址訪問控制單元,為2N個當(dāng)前待濾波數(shù)據(jù)生成在第一內(nèi)存中的相對地址,以控制從第一內(nèi)存分別復(fù)制第一至第N個當(dāng)前待濾波數(shù)據(jù)和第N+1至第2N個當(dāng)前待濾波數(shù)據(jù)到第一和第二寄存器;其中,N為自然數(shù),并行加法器對第一和第二寄存器中的當(dāng)前待濾波數(shù)據(jù)并行相加,并行乘法器將并行相加結(jié)果和濾波系數(shù)寄存器中的當(dāng)前濾波系數(shù)并行相乘,對并行相乘結(jié)果求和獲得濾波數(shù)據(jù)并輸出至第二內(nèi)存。
3.根據(jù)權(quán)利要求2所述的濾波器,其中所述第一和第二寄存器包括有效數(shù)據(jù)單元和隱藏數(shù)據(jù)單元,有效數(shù)據(jù)單元用于存儲當(dāng)前待濾波數(shù)據(jù),隱藏數(shù)據(jù)單元用于存儲后續(xù)待濾波數(shù)據(jù);所述SIMD處理器進一步包括第二控制寄存器和第三控制寄存器,控制第一和第二寄存器在對當(dāng)前待濾波數(shù)據(jù)的濾波運算結(jié)束之后進行移位操作,使隱藏數(shù)據(jù)單元中的后續(xù)待濾波數(shù)據(jù)通過移位進入有效數(shù)據(jù)單元。
4.根據(jù)權(quán)利要求3所述的濾波器,進一步包括用于存儲一組以上濾波系數(shù)的第三內(nèi)存;所述SIMD處理器進一步包括第四控制寄存器,控制從第三內(nèi)存中的一組以上濾波系數(shù)中選取一組濾波系數(shù);第二地址訪問控制單元,在第四控制寄存器的控制下,為所選取的一組濾波系數(shù)生成在第三內(nèi)存中的相對地址,以控制從第三內(nèi)存復(fù)制所選取的一組濾波系數(shù)至濾波系數(shù)寄存器。
5.根據(jù)權(quán)利要求4所述的濾波器,其中所述SIMD處理器進一步包括移位寄存器,存儲并行乘法器輸出的求和結(jié)果,通過移位將該求和結(jié)果除以濾波系數(shù)之和,輸出濾波數(shù)據(jù)至第二內(nèi)存;第五控制寄存器,控制移位寄存器移位的位數(shù)。
6.根據(jù)權(quán)利要求4所述的濾波器,其中所述的并行數(shù)據(jù)處理單元為一個以上,所述SIMD處理器進一步包括一個以上的累加寄存器,分別存儲一個以上的并行數(shù)據(jù)處理單元輸出的數(shù)據(jù);第六控制寄存器,控制濾波器工作在單獨模式或組合模式;當(dāng)濾波器工作在單獨模式時,所述的一個以上的并行數(shù)據(jù)處理單元中,每個并行處理單元分別處理當(dāng)前待濾波數(shù)據(jù),且每個累加寄存器中的數(shù)據(jù)分別直接輸出至第二內(nèi)存;當(dāng)濾波器工作在組合模式時,所述的一個以上的并行數(shù)據(jù)處理單元組合在一起處理當(dāng)前待濾波數(shù)據(jù),并將每個累加寄存器中的數(shù)據(jù)經(jīng)求和處理后輸出至第二內(nèi)存。
7.根據(jù)權(quán)利要求6所述的濾波器,其中所述的SIMD處理器進一步包括第七控制寄存器,控制累加寄存器移位的位數(shù);所述的累加寄存器在輸出數(shù)據(jù)至第二內(nèi)存之前,在第七控制寄存器的控制下,通過移位將該數(shù)據(jù)除以濾波系數(shù)之和。
8.根據(jù)權(quán)利要求1所述的濾波器,其中所述SIMD處理器包括并行數(shù)據(jù)處理單元,包括具有相反存儲順序的第一寄存器和第二寄存器、并行加法器和并行乘法器;濾波系數(shù)寄存器,至少存儲N個當(dāng)前濾波系數(shù),該N個當(dāng)前濾波系數(shù)由2N-1個濾波系數(shù)中無對稱相等的濾波系數(shù)和對稱相等的濾波系數(shù)中的一個組成;第一地址訪問控制單元,為2N-1個當(dāng)前待濾波數(shù)據(jù)生成在第一內(nèi)存中的相對地址,以控制從第一內(nèi)存分別復(fù)制第一至第N個當(dāng)前待濾波數(shù)據(jù)和第N至第2N-1個當(dāng)前待濾波數(shù)據(jù)到第一和第二寄存器;第一控制寄存器,控制所述第一和第二寄存器中與無對稱相等的濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù)位于最低有效數(shù)據(jù)單位的寄存器在其存儲的數(shù)據(jù)發(fā)生改變后對其最低有效數(shù)據(jù)單位執(zhí)行清零;其中,N為自然數(shù),并行加法器對第一和第二寄存器中的當(dāng)前待濾波數(shù)據(jù)并行相加,并行乘法器將并行相加結(jié)果和濾波系數(shù)寄存器中的當(dāng)前濾波系數(shù)并行相乘,對并行相乘結(jié)果求和獲得濾波數(shù)據(jù)并輸出至第二內(nèi)存。
9.根據(jù)權(quán)利要求8所述的濾波器,其中所述第一和第二寄存器包括有效數(shù)據(jù)單元和隱藏數(shù)據(jù)單元,有效數(shù)據(jù)單元用于存儲當(dāng)前待濾波數(shù)據(jù),隱藏數(shù)據(jù)單元用于存儲后續(xù)待濾波數(shù)據(jù);所述SIMD處理器進一步包括第二控制寄存器和第三控制寄存器,控制第一和第二寄存器在對當(dāng)前待濾波數(shù)據(jù)的濾波運算結(jié)束之后進行移位操作,使隱藏數(shù)據(jù)單元中的后續(xù)待濾波數(shù)據(jù)通過移位進入有效數(shù)據(jù)單元。
10.根據(jù)權(quán)利要求9所述的濾波器,進一步包括用于存儲一組以上濾波系數(shù)的第三內(nèi)存;所述SIMD處理器進一步包括第四控制寄存器,控制從第三內(nèi)存中的一組以上濾波系數(shù)中選取一組濾波系數(shù);第二地址訪問控制單元,在第四控制寄存器的控制下,為所選取的一組濾波系數(shù)生成在第三內(nèi)存中的相對地址,以控制從第三內(nèi)存復(fù)制所選取的一組濾波系數(shù)至濾波系數(shù)寄存器。
11.根據(jù)權(quán)利要求10所述的濾波器,其中所述SIMD處理器進一步包括移位寄存器,存儲并行乘法器輸出的求和結(jié)果,通過移位將該求和結(jié)果除以濾波系數(shù)之和,輸出濾波數(shù)據(jù)至第二內(nèi)存;第五控制寄存器,控制移位寄存器移位的位數(shù)。
12.根據(jù)權(quán)利要求10所述的濾波器,其中所述的并行數(shù)據(jù)處理單元為一個以上,所述SIMD處理器進一步包括一個以上的累加寄存器,分別存儲一個以上的并行數(shù)據(jù)處理單元輸出的數(shù)據(jù);第六控制寄存器,控制濾波器工作在單獨模式或組合模式;當(dāng)濾波器工作在單獨模式時,所述的一個以上的并行數(shù)據(jù)處理單元中,每個并行處理單元分別處理當(dāng)前待濾波數(shù)據(jù),且每個累加寄存器中的數(shù)據(jù)分別直接輸出至第二內(nèi)存;當(dāng)濾波器工作在組合模式時,所述的一個以上的并行數(shù)據(jù)處理單元組合在一起處理當(dāng)前待濾波數(shù)據(jù),并將每個累加寄存器中的數(shù)據(jù)經(jīng)求和處理后輸出至第二內(nèi)存。
13.根據(jù)權(quán)利要求12所述的濾波器,其中所述的SIMD處理器進一步包括第七控制寄存器,控制累加寄存器移位的位數(shù);所述的累加寄存器在輸出數(shù)據(jù)至第二內(nèi)存之前,在第七控制寄存器的控制下,通過移位將該數(shù)據(jù)除以濾波系數(shù)之和。
14.一種濾波方法,包括從原始數(shù)據(jù)中獲取與濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù);將與對稱相等的濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù)分別相加,保持與無對稱相等的濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù)不變;將所得數(shù)據(jù)與預(yù)先存儲的當(dāng)前濾波系數(shù)并行相乘,對并行相乘的結(jié)果求和獲得一個濾波數(shù)據(jù)并存儲。
15.根據(jù)權(quán)利要求14所述的濾波方法,其中所述濾波系數(shù)的個數(shù)為偶數(shù),所述當(dāng)前濾波系數(shù)由濾波系數(shù)中對稱相等的濾波系數(shù)中的一個組成。
16.根據(jù)權(quán)利要求14所述的濾波方法,其中所述濾波系數(shù)的個數(shù)為奇數(shù),所述當(dāng)前濾波系數(shù)由濾波系數(shù)中無對稱相等的濾波系數(shù)和對稱相等的濾波系數(shù)中的一個組成。
17.根據(jù)權(quán)利要求14至16中任一項所述的濾波方法,其中對并行相乘的結(jié)果求和之后進一步包括將求和結(jié)果除以濾波系數(shù)之和獲得一個濾波數(shù)據(jù)。
全文摘要
本發(fā)明提供了一種濾波器和濾波方法,利用對稱濾波的濾波系數(shù)對稱相等的特點,在執(zhí)行濾波運算時,從原始數(shù)據(jù)中獲取與濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù);將與對稱相等的濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù)分別相加,保持與無對稱相等的濾波系數(shù)相對應(yīng)的當(dāng)前待濾波數(shù)據(jù)不變;將所得數(shù)據(jù)與預(yù)先保存的當(dāng)前濾波系數(shù)并行相乘后求和獲得濾波數(shù)據(jù)。本發(fā)明通過減少濾波所需的乘法運算量減少濾波所需的乘法運算的時間。進一步,本發(fā)明在存儲待濾波數(shù)據(jù)的寄存器中設(shè)置隱藏數(shù)據(jù)單元,在每次調(diào)入當(dāng)前待濾波數(shù)據(jù)的同時調(diào)入后續(xù)待濾波數(shù)據(jù),避免每次執(zhí)行完濾波運算后從內(nèi)存中復(fù)制數(shù)據(jù),減少了從內(nèi)存中調(diào)取待濾波數(shù)據(jù)的時間,從而進一步減少了濾波時間。
文檔編號G06F15/80GK1964490SQ20051011581
公開日2007年5月16日 申請日期2005年11月9日 優(yōu)先權(quán)日2005年11月9日
發(fā)明者王文東, 黃寧 申請人:松下電器產(chǎn)業(yè)株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
陆丰市| 鹤峰县| 西林县| 邵阳县| 独山县| 马龙县| 封丘县| 井陉县| 滨州市| 广州市| 满城县| 吉林省| 繁昌县| 桑日县| 红安县| 博爱县| 五大连池市| 溧水县| 临夏县| 绥江县| 丹东市| 横山县| 汉寿县| 元氏县| 论坛| 永修县| 鄂伦春自治旗| 鹿泉市| 麻江县| 寻甸| 册亨县| 屏南县| 虎林市| 闻喜县| 武平县| 彭水| 陈巴尔虎旗| 特克斯县| 阜城县| 临汾市| 德州市|