專利名稱:基于simd的無限脈沖響應(yīng)濾波方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體地,涉及基于SIMD的無限脈沖響應(yīng) 濾波方法和裝置。
背景技術(shù):
無限脈沖響應(yīng)(Infinite Impulse Response, IIR)濾波是一種循環(huán)濾 波,其經(jīng)常應(yīng)用在數(shù)字信號處理中。下面的差分方程(1)定義了在無限脈 沖響應(yīng)濾波中輸入信號與輸出信號之間的關(guān)系
<formula>formula see original document page 7</formula> (1)
其中,p是前饋濾波階數(shù);6[/](/ = o,i,......,尸)是前饋濾波系數(shù);eM饋濾
波階數(shù);巾](/ = i,2,......,g)是反饋濾波系數(shù);z["-,']是輸入信號;n"]是輸
出信號。
根據(jù)上面的差分方程(1)可以看出,在無限脈沖響應(yīng)濾波中,對于輸
入信號序列x,、 z2........ x ......中當(dāng)前輸入信號x"進行濾波以得到其濾
波輸出K的處理,不僅依賴于該當(dāng)前的輸入信號A,而且還依賴于在該當(dāng) 前的輸入信號A之前的輸入信號A—P........ z —2、義 —,以及之前的濾波輸
為了簡單,設(shè)定反饋濾波階數(shù)2 = 1,則上面的差分方程(1)將變?yōu)?br>
<formula>formula see original document page 7</formula> ( 2)
也就是說,在反饋濾波階數(shù)2=1的情況下,無限脈沖響應(yīng)濾波中對于當(dāng)前 輸入信號A的濾波處理,將依賴于該當(dāng)前的輸入信號A、在該當(dāng)前的輸入
信號^之前的輸入信號z?!猵........ x _2、 ,以及前一濾波輸出];—,。這樣的無限脈沖響應(yīng)濾波,可以用專用的硬件、也可以通過在數(shù)字信
號處理器(DSP)上執(zhí)行相應(yīng)的軟件實現(xiàn)為無限脈沖響應(yīng)濾波器。軟件實 現(xiàn)的方案由于在實現(xiàn)的速度以及靈活性上具有硬件實現(xiàn)的方案所不能及的 優(yōu)勢,所以很多設(shè)計人員都傾向于利用軟件方案來實現(xiàn)專業(yè)的無限脈沖響 應(yīng)濾波器。
但是,根據(jù)上面的差分方程(1)和(2)可以看出,無限脈沖響應(yīng)濾 波的計算量是非常龐大的。如果利用軟件方案來實現(xiàn),則設(shè)計人員所面臨 的問題就是,就當(dāng)前的大部分CPU而言,其速度一般都很難充分滿足實現(xiàn) 這樣高數(shù)據(jù)速率、大型的濾波器的要求。
另一方面,在提升通用處理器的數(shù)據(jù)處理能力方面, 一直以來人們作 出了許多努力。單指令多數(shù)據(jù)(Single誦InstructionMultiple國Data, SIMD) 體系結(jié)構(gòu)便是這種努力下的 一個產(chǎn)物。與通常的單指令單數(shù)據(jù)體系結(jié)構(gòu)中 用單個指令只對單個數(shù)據(jù)元素進行操作(例如加載、存儲、整數(shù)相加等) 的情況不同,在SIMD體系結(jié)構(gòu)中,在單個指令下,用一個控制器來控制 多個重復(fù)設(shè)置的處理單元,利用這多個處理單元對一組數(shù)據(jù)(共128位, 在32位單精度類型以及整數(shù)類型的情況下,是4個數(shù)據(jù);在64位雙精度 類型的情況下,是2個數(shù)據(jù);......)中的各個數(shù)據(jù)同時執(zhí)行相同的操作,
以實現(xiàn)空間上的數(shù)據(jù)并行性。
也就是說,在SIMD體系結(jié)構(gòu)中,通過利用一條指令對并行的不同數(shù) 據(jù)元素同時執(zhí)行相同類型的計算,來提高處理器的數(shù)據(jù)處理性能。現(xiàn)有的 包括多個處理單元的大多數(shù)高性能處理器都支持SIMD體系結(jié)構(gòu)。
如果能夠基于SIMD體系結(jié)構(gòu)來實現(xiàn)無限脈沖響應(yīng)濾波器,則將能夠 實現(xiàn)無限脈沖響應(yīng)濾波的并行性,彌補軟件實現(xiàn)方案中通用處理器所存在 的速度缺陷,提升所實現(xiàn)的無限脈沖響應(yīng)濾波器的濾波性能。
但是,前面已經(jīng)提到過,在無限脈沖響應(yīng)濾波中,數(shù)據(jù)之間是存在依 賴性的,在當(dāng)前循環(huán)的計算中,需要之前所得到的一部分濾波結(jié)果作為必 不可少的計算元素。并且,要進行無限脈沖響應(yīng)濾波的輸入信號也并不能 保證總是128位對齊的(因為SIMD體系結(jié)構(gòu)始終要求操作數(shù)是128位的)。因此,可以理解,基于SIMD體系結(jié)構(gòu)來實現(xiàn)無限脈沖響應(yīng)濾波中多 個輸入信號的并行濾波,是非常困難的。
發(fā)明內(nèi)容
為了解決上迷問題,本發(fā)明提供了一種基于SIMD的無限脈沖響應(yīng)濾 波方法和裝置,以便通過利用SIMD指令對輸入信號序列與濾波系數(shù)序列 進行不同移位的多次點積累計計算,并且利用在前的點積累計計算的結(jié)果 對在后的點積累計計算的結(jié)果進行修正,來實現(xiàn)基于SIMD的并行性能力 的無限脈沖響應(yīng)濾波的并行性,以減少濾波時間、提升濾波性能。
根據(jù)本發(fā)明的一個方面,提供了一種基于SIMD的無限脈沖響應(yīng)濾波 方法,包括利用預(yù)先設(shè)定的濾波系數(shù)序列對輸入信號序列進行無限脈沖 響應(yīng)濾波的循環(huán)計算;其中,在每一次循環(huán)計算中包括利用SIMD指令, 對上述濾波系數(shù)序列和上述輸入信號序列中與該濾波系數(shù)序列對應(yīng)的位置 的元素依次進行n次點積累計計算,其中上述濾波系數(shù)序列包括多個有效 濾波系數(shù)、用于使該濾波系數(shù)序列位數(shù)對齊的0值以及為移位而擴展的0 值,并且在上述n次點積累計計算中,上述多個有效濾波系數(shù)在該濾波系
數(shù)序列中的位置分別向右移位O、 1、 2........ n-l個元素;在上述n次點
積累計計算的結(jié)果中,依次利用在前的點積累計計算的結(jié)果對在后的點積
累計計算的結(jié)果進行修正;以及將修正后的上述n次點積累計計算的結(jié)果 添加到上述輸入信號序列的開始位置,作為該輸入信號序列的最開始的n 個新元素;其中n是這樣的值上述濾波系數(shù)序列和上述輸入信號序列中 一個元素所占位數(shù)的n倍等于128。
根據(jù)本發(fā)明的另一個方面,提供了一種基于SIMD的無限脈沖響應(yīng)濾 波裝置,該裝置利用預(yù)先設(shè)定的濾波系數(shù)序列對輸入信號序列進行無限脈 沖響應(yīng)濾波的循環(huán)計算,其包括濾波系數(shù)序列保存單元,其用于保存上 述預(yù)先設(shè)定的濾波系數(shù)序列,其中該濾波系數(shù)序列包括多個有效濾波系數(shù)、 用于使該濾波系IU^列位數(shù)對齊的O值以及為移位而擴展的0值;點積累 計計算單元,其在每一次循環(huán)計算中,利用SIMD指令,對上述濾波系數(shù)序列和上述輸入信號序列中與該濾波系數(shù)序列對應(yīng)的位置的元素依次進行
n次點積累計計算,其中在該ii次點積累計計算中,上述多個有效濾波系
數(shù)在該濾波系數(shù)序列中的位置分別向右移位O、 1、 2........ n-l個元素;
修正單元,其在每一次循環(huán)計算中,在上述點積累計計算單元所得到的n 次點積累計計算的結(jié)果中,依次利用在前的點積累計計算的結(jié)果對在后的 點積累計計算的結(jié)果進行修正;以及輸入信號序列調(diào)整單元,其在每一次 循環(huán)計算中,將上述修正單元修正后的上迷n次點積累計計算的結(jié)果添加 到上述輸入信號序列的開始位置,作為該輸入信號序列的最開始的ii個新 元素;其中n是這樣的值上述濾波系數(shù)序列和上述輸入信號序列中一個 元素所占位數(shù)的n倍等于128。
相信通過以下結(jié)合附圖對本發(fā)明具體實施方式
的說明,能夠使人們更 好地了解本發(fā)明上述的特點、優(yōu)點和目的。
圖1是才艮據(jù)本發(fā)明實施例的基于SIMD的無限脈沖響應(yīng)濾波方法的流
程圖2是圖1的過程的圖示說明;
圖3示出了一個示例性的濾波系數(shù)序列;
圖4是n二4的情況下圖2的方法的詳細(xì)流程圖5是圖4的過程的圖示說明;以及
圖6是根據(jù)本發(fā)明實施例的基于SIMD的無限脈沖響應(yīng)濾波裝置的方 框圖。
具體實施例方式
本發(fā)明的主要構(gòu)思是,基于SIMD體系結(jié)構(gòu)來實現(xiàn)無限脈沖響應(yīng)濾波。 下面就結(jié)合附圖對本發(fā)明的各個優(yōu)選實施例進行詳細(xì)說明。 圖1是根據(jù)本發(fā)明實施例的基于SIMD的無限脈沖響應(yīng)濾波方法的流 程圖,圖2是其圖示說明。如圖l所示,首先在步驟105,獲取預(yù)先設(shè)定的、用于對輸入信號序 列進行無限脈沖響應(yīng)濾波的濾波系數(shù)序列S,并將其存儲在存儲器中。
如前面結(jié)合差分方程(1)和(2)已經(jīng)描述過的,無限脈沖響應(yīng)濾波 系數(shù)包括前饋濾波系數(shù)剛(/ = 0,1,......,尸)和反饋濾波系數(shù)4j] ( / = 1,2,......,2 )。
在本實施例中,在該預(yù)先設(shè)定的濾波系數(shù)序列S中,將反饋濾波系數(shù)。[./] (/ = 1,2,......,2 )排列在前饋濾波系數(shù)6[/] (, = 0,1,......,p )之前,并且該反饋濾
波系數(shù)"[./] ( j = i,2,,e )和前饋濾波系數(shù)&[。 ( !' = 0,1,......,p ) —起作為該濾
波系數(shù)序列中的多個有效濾波系數(shù)??梢岳斫?,該反饋濾波系數(shù)a[乂] (/ = 1,2,......,0 )和前饋濾波系數(shù)6[/] ( ,' = 0,1,......,p )的具體值是根據(jù)無限脈沖
響應(yīng)濾波的具體實現(xiàn)要求而設(shè)定的。
此外,在本實施例中,在上述濾波系數(shù)序列S中,除了包括上述多個
有效濾波系數(shù)之外,還包括用于使該濾波系數(shù)序列s位數(shù)對齊的0值。也
就是說,如前所述,SIMD指令要求操作對象是128位的,即一條SIMD 指令在執(zhí)行時,對于各操作對象都將一次從存儲器獲取由多個數(shù)據(jù)組成的 128位,并且對這多個數(shù)據(jù)并行地執(zhí)行相同的操作。所以,在本實施例中, 為了確保能夠利用SIMD指令對該濾波系數(shù)序列S中所有有效濾波系數(shù)都 執(zhí)行所需的操作,預(yù)先在該濾波系數(shù)序列S中增加了 O值,以使該濾波系 數(shù)序列的位數(shù)達到128的整數(shù)倍,從而使其尾端的有效濾波系數(shù)能夠與所 增加的0值一起構(gòu)成滿128位的數(shù)據(jù),滿足SIMD指令對于操作對象的128 位對齊要求。
此外,考慮到在后面的點積累計計算中,濾波系數(shù)序列S中的有效濾 波系數(shù)的位置要向右移位,所以,在本實施例中,在上述濾波系數(shù)序列S
0值之外,還包括為移位而擴展的0值。也就是說,在本實施例中,在預(yù) 先設(shè)定的濾波系數(shù)序列S中,還增加了額外的128位并將其置為0值,以 作為在有效濾波系數(shù)移位時接納移位過來的有效濾波系數(shù)的位置,以確保 所有的有效濾波系數(shù)都不被從該濾波系數(shù)序列S中移出,并確保即使有效 濾波系數(shù)進行移位,該濾波系數(shù)序列的長度也不變,仍能滿足SIMD指令對于操作對象的128位對齊要求。
此外,由于SIMD指令每次都是從存儲器的、128的整數(shù)倍的起始地 址處開始獲取128位的操作對象,所以,在本實施例中,使該濾波系數(shù)序 列S地址對齊,即使該濾波系數(shù)序列S在存儲器中的起始存儲地址是128
的整數(shù)倍。
下面給出濾波系數(shù)序列S的一個具體示例。
例如,在無限脈沖響應(yīng)濾波的前饋濾波階數(shù)P = 3 、反饋濾波階數(shù)2 = 1的
情況下,上面的差分方程(1)將變?yōu)?br>
i; = 60i +仏—,+ 62i —2 +化3 +《—, (3 )
在此情況下,設(shè)定如圖3所示的濾波系數(shù)序列S。其中的每一個小格 都代表該濾波系數(shù)序列S中的一個32位單精度類型或整數(shù)類型的元素。
具體地,在該濾波系ltf列S中,元素 A 、厶3 、 ~ 、 & 、 60 是有效濾波系 數(shù)。并且,從圖3可以看出,反饋濾波系數(shù)",被設(shè)置在前饋濾波系數(shù)V 62、
V 6。之前。
此外,如圖3所示,在該濾波系數(shù)序列S中,除了有效濾波系數(shù)^、 63、
V V 6。之外,還包括為了使該濾波系數(shù)序列S的位數(shù)達到128的整數(shù)倍 而添加的0值部分c。由于如上所述,該濾波系數(shù)序列S中的一個元素占 32位,所以0值部分c中包含了 3個元素的量的0值,以便使剩余的最后 一個有效濾波系數(shù)6。能夠與這3個元素的量的0值一起構(gòu)成128位。
再者,如圖3所示,在該濾波系數(shù)序列S中,還包括考慮到后面步驟 中有效濾波系數(shù)的移位而擴展的128位的0值部分d。由于一個元素占32 位,所以圖3中示出的128位的0值部分d包含4個元素,作為在有效濾 波系數(shù)",、63、 62、 V 6。分別向右移位1、 2、 3個元素的量時接納所移位過 來的有效濾波系數(shù)的位置,以確保在有效濾波系數(shù)的移位后該濾波系數(shù)序 列S的長度不變,仍是128的整數(shù)倍。
此外,為了滿足SIMD地址對齊要求,該濾波系數(shù)序列S的起始存儲 地址應(yīng)該是128的整數(shù)倍。
在步驟110,獲得要進行無限脈沖響應(yīng)濾波的輸入信號序列T,并將其存儲在存儲器中。
如上所述,由于SIMD指令每次都是從存儲器的、128的整數(shù)倍的起 始地址處開始獲取128位的操作對象,所以,在本實施例中,也使所獲得 的輸入信號序列T在存儲器中的地址對齊,即使該輸入信號序列的起始存 儲地址也是128的整數(shù)倍。
接著,對于所獲得的輸入信號序列T,循環(huán)執(zhí)行規(guī)定次數(shù)的下面的步 驟115 125,以進行無限脈沖響應(yīng)濾波。本領(lǐng)域技術(shù)人員可以理解,該規(guī) 定次數(shù)是根據(jù)無限脈沖響應(yīng)濾波的具體實現(xiàn)要求、濾波系數(shù)序列S的長度、 輸入信號序列T的長度以及濾波時間等條件而確定的。
具體地,在步驟115,利用SIMD指令對濾波系數(shù)序列S和輸入信號 序列T中對應(yīng)的元素依次進行n次點積累計計算,以在各次點積累計計算 中求取濾波系數(shù)序列S和輸入信號序列T中每對應(yīng)的n個元素的點積的累 計。其中,如圖2所示,在該n次點積累計計算中,濾波系數(shù)序列S中的 多個有效濾波系數(shù)(Fo,......)在該濾波系數(shù)序列S中的位置分別向右移位
0、 1、 2........ n-l個元素。
從而,經(jīng)過這n次點積累計計算,將得到n個點積累計計算的結(jié)果V0、 VI、 V2、 V3.......、 Vn畫l (圖2中的步驟l)。
其中,上述n是這樣的值濾波系數(shù)序列S和輸入信號序列T中一個 元素所占位數(shù)的n倍等于128。也就是說,該n的值是根據(jù)濾波系數(shù)序列 S和輸入信號序列T中的元素的類型而確定的。
具體地,在濾波系數(shù)序列S和輸入信號序列T中的元素是64位雙精 度類型的情況下,將n設(shè)定為2,利用SIMD指令對濾波系數(shù)序列S和輸 入信號序列T中的相應(yīng)元素依次進行2次點積累計計算。并且,在這2次 點積計算中,分別使濾波系數(shù)序列S中的有效濾波系數(shù)的位置向右移位O、 l個元素的量。
依此類推,在濾波系數(shù)序列S和輸入信號序列T中的元素是32位單 精度類型或整數(shù)類型的情況下,將n設(shè)定為4,進行4次點積累計計算。 并且,在這4次點積累計計算中,分別使濾波系數(shù)序列S中的有效濾波系數(shù)的位置向右移位0、 1、 2、 3個元素的量。
在濾波系數(shù)序列S和輸入信號序列T中的元素是16位短整型的情況 下,將n設(shè)定為8,進行8次點積累計計算。并且,在這8次點積累計計 算中,分別使濾波系M列S中的有效濾波系數(shù)的位置向右移位O、 1、 2、 3........ 7個元素的量。
在濾波系數(shù)序列S和輸入信號序列T中的元素是8位字符串類型的情 況下,將n設(shè)定為16,進行16次點積累計計算。并且,在這16次點積累 計計算中,分別使濾波系數(shù)序列S中的有效濾波系數(shù)的位置向右移位O、 1、 2、 3........ 15個元素的量。
此外,在本實施例中,如圖2所示,對于輸入信號序列T設(shè)置頭指針
(或頭索引),使其在每次循環(huán)計算中指向輸入信號序列T中參與此次循 環(huán)計算的元素中的最開始元素。
從而,在本步驟中,在上述n次點積累計計算中,以濾波系數(shù)序列S 為基準(zhǔn),從輸入信號序列T中頭指針?biāo)赶虻脑亻_始,獲取與濾波系數(shù) 序列S中的元素(包括有效濾波系數(shù)和所添加的0值部分)相應(yīng)數(shù)量的元 素,作為輸入信號序列T中與該濾波系數(shù)序列S對應(yīng)的位置的元素參與這 n次點積累計計算。
在步驟120,對上述點積累計計算的結(jié)果V0、 VI、 V2、 V3........
Vn-l進行修正(圖2中的步驟2 )。
具體地,在該步驟中,根據(jù)下面的公式(1) ~ (n-l),在點積累計計
算的結(jié)果V0、 VI、 V2、 V3........ Vn-l中,依次利用在前的點積累計計
算的結(jié)果以及濾波系^列S中相應(yīng)的有效濾波系數(shù),對在后的點積累計 計算的結(jié)果進行^^正
V1=V0*F0+V1 (1)
V2=V0*F1+V1*F0+V2 ( 2 )
V3=V0*F2+V1*F1+V2*F0+V3 ( 3 )
Vn-l=V0*Fn-2+Vl*Fn-3+V2*Fn-4+......+Vn-2*F0+Vn-1 ( n畫l)其中,F(xiàn)0、 Fl、 F2........ Fn-2是濾波系數(shù)序列S中的多個有效濾
波系數(shù)中從最左端開始的n-l個有效濾波系數(shù)。
在步驟125,將修正后的點積累計計算的結(jié)果VO、 VI、 V2、 V3........
Vn-l添加到輸入^f言號序列T的開始位置(圖2中的步驟3 ),作為該輸入 信號序列T的最開始的n個新元素。
具體地,在本實施例中,可以在步驟110獲取輸入信號序列T并進行 存儲時,在該輸入信號序列T的存儲空間之前為點積累計計算的結(jié)果預(yù)留 出足夠的存儲空間。并且,在本步驟中,依次將修正后的點積累計計算的
結(jié)果V0、 VI、 V2、 V3、 ......、 Vn-l放置到輸入信號序列T之前的該預(yù)
留出的存儲空間內(nèi)。
并且,如圖2所示,在該步驟中,在將修正后的點積累計計算的結(jié)果
V0、 VI、 V2、 V3、 ....... Vn-l添加到輸入信號序列T的開頭之后,還移
動了原本指向輸入信號序列T中的第一個元素X0的頭指針,使其指向該 新添加的n個點積累計計算的結(jié)果中的第一個結(jié)果V0的位置。這樣,該n
個點積累計計算的結(jié)果V0、 VI、 V2、 V3........ Vn-l便成為了該輸入信
號序列T的新的前n個元素。
此外,從該步驟可以看出,在本實施例中,之所以在步驟115對濾波 系數(shù)序列S和輸入信號序列T中的相應(yīng)元素依次進行n次點積累計計算, 是為了得到n個、共128位的點積累計計算的結(jié)果。因為可以理解,每個 點積累計計算的結(jié)果所占位數(shù)與濾波系數(shù)序列S和輸入信號序列T中一個 元素所占的位數(shù)是相同的,并且,如上所述,其n倍等于128,所以,在 輸入信號序列T的開頭一次添加n個、共128位的點積累計計算的結(jié)果, 能夠使調(diào)整后的輸入信號序列T仍滿足SIMD的地址對齊要求。也就是說, 如上所述,輸入信號序列T的起始存儲地址最初是128的整數(shù)倍,所以如 果一次增加n個、共128位的點積累計計算的結(jié)果,則該輸入信號序列包 括該128位的結(jié)果后的新起始存儲地址仍然可以是128的整數(shù)倍。
然后,在步驟130,判斷循環(huán)計算的次數(shù)是否已經(jīng)達到規(guī)定次數(shù)。如 果達到,則該過程結(jié)束,否則,返回到步驟115進行下一循環(huán)的計算。以上就是本實施例的基于SIMD的無限脈沖響應(yīng)濾波方法的總體過程。
下面以濾波系數(shù)序列S和輸入信號序列T中的元素是32位單精度類 型或整數(shù)類型的情況為例,說明上面圖l的詳細(xì)過程。圖4是該詳細(xì)過程 的流程圖。圖5是該詳細(xì)過程的圖示說明。
首先在步驟405,獲取預(yù)先設(shè)定的、用于對輸入信號序列進行無限脈 沖響應(yīng)濾波的32位單精度類型或整數(shù)類型的濾波系數(shù)序列S,并將其存儲 在存儲器中。關(guān)于該步驟,可參照前面關(guān)于圖1中的步驟105的說明。
在步驟410,獲得要進行無限脈沖響應(yīng)濾波的32位單精度類型或整數(shù) 類型的輸入信號序列T,并將其存儲在存儲器中。關(guān)于該步驟,可參照前 面關(guān)于圖1中的步驟110的說明。
下面的步驟415-435的過程是利用SIMD指令對濾波系數(shù)序列S和輸 入信號序列T中對應(yīng)的元素依次進行n次點積累計計算(圖5中的步驟l) 的過程。
由于圖4的過程是針對于濾波系數(shù)序列S和輸入信號序列T中的元素 是32位單精度類型或整數(shù)類型的情況的,所以,如上所述,n=4。也就是 說,在該過程中,利用SIMD指令對濾波系數(shù)序列S和輸入信號序列T中 的相應(yīng)元素依次進行4次點積累計計算,以得到各次點積累計計算的結(jié)果 VO、 VI、 V2、 V3。并且,如圖5所示,在這4次點積累計計算中,濾波 系數(shù)序列S中的多個有效濾波系數(shù)(F0,......)在該濾波系數(shù)序列S中的位
置分別向右移位O、 1、 2、 3個元素的量。
具體地,在步驟415,利用SIMD乘指令對濾波系數(shù)序列S和輸入信 號序列T中的相應(yīng)元素進行點積計算。
在32位單精度類型或整數(shù)類型的情況下,128位的操作對象中包括4 個數(shù)據(jù)。這樣, 一條SIMD乘指令將從濾波系數(shù)序列S和輸入信號序列T 中分別獲取4個元素,形成4對操作數(shù),并同時對這4對操作數(shù)進行各自 的點積計算。這樣,在該SIMD乘指令所得到的結(jié)果中,將同時包含這4 對操作數(shù)的各自的點積結(jié)果。從而,在如圖3所示的濾波系數(shù)序列S那樣元素數(shù)超過4個的濾波系 數(shù)序列S的情況下,要完成該濾波系數(shù)序列S與輸入信號序列T中相應(yīng)元 素數(shù)量的點積計算,就需要進行多次SIMD乘操作。這樣,每進行一次SIMD 乘操作,便會獲得一組由4對元素的各自的點積結(jié)果組成的SIMD乘結(jié)果。
下面舉例來進行說明。
給出:濾波系數(shù)序列S (1,2,3,4,5,6,7,8, 0, 0, 0, 0 )
輸入4言號序歹'J T (1,2,3,4,5,6,7,8,9,10,11,12)。
為了完成上面給出的濾波系數(shù)序列S和輸入信號序列T中所有元素的 點積計算,需要進行3次SIMD乘操作,即S中的元素(1,2,3,4 )與T中 的元素(1,2,3,4)的SIMD乘操作、S中的元素(5,6,7,8)與T中的元素 (5,6,7,8 )的SIMD乘操作、S中的元素(0, 0, 0, 0 )與T中的元素(9,10,11,12 ) 的SIMD乘操作。從而,這3次SIMD乘操作將得到以下SIMD乘結(jié)果 (1,4,9,16) 、 (25,36,49,64)以及(O,O,O,O )。
在步驟420,利用SIMD加指令將多次SIMD乘操作所得到的多個結(jié) 果累加在一起。如果存在兩個以上的SIMD乘結(jié)果,則在該步驟中需要執(zhí) 行多次SIMD加操作來將這些結(jié)果——累加在一起。
并且,可以理解,由于SIMD加指令也是同時對128位的一組數(shù)據(jù)進 行加運算,所以其所得到的結(jié)果中也將包含多個相應(yīng)的數(shù)據(jù)和。
在圖4的過程的情況下,由于上面所得到的多個SIMD乘結(jié)果各自包 含4個點積結(jié)果,所以在利用SIMD加指令對這多個SIMD乘結(jié)果進行累 加所得到的累加結(jié)果中,也將包含相應(yīng)的4個累加和。
繼續(xù)上面步驟415中的例子來進行說明。
在該例子中,由于前面的3次SIMD乘操作得到了 3個SIMD乘結(jié)果 (1,4,9,16) 、 (25,36,49,64)以及(O,O,O,O),所以需要執(zhí)行2次SIMD 加操作將這些結(jié)果累加在一起。例如,可以對于前兩個SIMD乘結(jié)果執(zhí)行 第一次SIMD加操作,將這兩個SIMD乘結(jié)果中所包含的4個點積結(jié)果分 別累加在一起,得到累加結(jié)果(26,40,58,80 )。進而,對于該累加結(jié)果 (26,40,58,80 )和第三個SIMD乘結(jié)果(O,O,O,O )執(zhí)行第二次SIMD加操作,得到最終的累加結(jié)果(26,40,58,80 )。
當(dāng)然,本發(fā)明對于SIMD乘結(jié)果的累加順序并沒有特別的限制。 在步驟425,進一步求取上述累加結(jié)果中所包含的累加和的總和,作
為本次點積累計計算的結(jié)果。
繼續(xù)上面步驟420中的例子來進行說明。
在該例子中,由于所得到的累加結(jié)果是(26,40,58,80),所以對該累 加結(jié)果中所包含的4個累加和進一步求和,將得到最終的點積累計計算的 結(jié)果(204)。
在步驟430,判斷濾波系數(shù)序列S中的多個有效濾波系數(shù)的位置是否 已經(jīng)向右移位了 3 (即n-l)次。如果是,則該過程轉(zhuǎn)到步驟440,否則前 進到步驟435。
在步驟435,使濾波系IUf列S中的多個有效濾波系數(shù)的位置向右移 位l個元素的量。并且,將因該多個有效濾波系數(shù)的向右移位而空出的左 側(cè)的元素位置設(shè)置為0。
需要說明的是,在本步驟中,僅使濾波系數(shù)序列s中的多個有效濾波 系數(shù)的位置向右移位,而濾波系數(shù)序列s的長度本身以及在存儲器中的存 儲位置并不發(fā)生變化。也就是說,在本步驟中,實質(zhì)上是使該濾波系lgt^
列s中的多個有效濾波系數(shù)各自復(fù)寫到其右側(cè)的位置上,然后將原來的最 左端的有效濾波系數(shù)置為0,來達到移位效果。
接著,該過程返回到步驟415,繼續(xù)進行移位后的濾波系數(shù)序列S與 輸入信號序列T中相應(yīng)元素的點積累計計算。
這樣,由于是32位單精度類型或整數(shù)類型、即11=4的情況,所以上 面的步驟415-435的過程將循環(huán)執(zhí)行4次,即濾波系數(shù)序列S和輸入信號 序列T中對應(yīng)的元素之間將在濾波系數(shù)序列S中的多個有效濾波系數(shù)具有 不同的移位的前提下進行4次點積累計計算。從而,在步驟415-435的4 次循環(huán)結(jié)束后,將得到各次點積累計計算的結(jié)果VO、 VI、 V2、 V3。
在步驟440,對上述點積累計計算的結(jié)果VO、 VI、 V2、 V3進行j務(wù)正 (圖5中的步驟2)。具體地,在該步驟中,根據(jù)下面的公式(1)~(3),在點積累計計算 的結(jié)果V0、 VI、 V2、 V3中,依次利用在前的點積累計計算的結(jié)果以及濾 波系數(shù)序列S中相應(yīng)的有效濾波系數(shù)對在后的點積累計計算的結(jié)果進行修 正
V1=V0*F0+V1 (1)
V2=V0*F1+V1*F0+V2 (2 )
V3=V0*F2+V1*F1+V2*F0+V3 (3 )
其中,F(xiàn)0、 Fl、 F2是濾波系數(shù)序列S中的多個有效濾波系數(shù)中從最
左端開始的3個有效濾波系數(shù)。
在步驟445,將^f務(wù)正后的點積累計計算的結(jié)果V0、 VI、 V2、 V3添加
到輸入信號序列T的開始位置(圖5中的步驟3),作為該輸入信號序列
T的最開始的4個新元素。
并且,如圖5所示,在該步驟中,還將輸入信號序列T的頭指針向左
移動4個元素的量,使其指向點積累計計算的結(jié)果V0的位置。
然后,在步驟450,判斷循環(huán)計算的次數(shù)是否已經(jīng)達到規(guī)定次數(shù)。如
果達到,則該過程結(jié)束,否則,返回到步驟415進行下一循環(huán)的計算。其
中,圖5中調(diào)整后的輸入信號序列T中從頭指針?biāo)冈亻_始向右的多個
元素將參與下一循環(huán)計算,其中包括了新添加的點積累計計算的結(jié)果VO、
VI、 V2、 V3。
以上就是本實施例的基于SIMD的無限脈沖響應(yīng)濾波方法在濾波系數(shù) 序列S和輸入信號序列T中的元素是32位單精度類型或整數(shù)類型的情況 下的具體過程。
需要說明的是,在圖4的過程中,雖然通過使濾波系數(shù)序列S中的有 效濾波系數(shù)的位置移位來實現(xiàn)4次不同的點積累計計算,但是,也可以不 在每次點積累計計算時4吏有效濾波系數(shù)移位,而是預(yù)先將有效濾波系數(shù)的 位置移位0、 1、 2、 3個元素時的不同的濾波系數(shù)序列S分別保存在存儲器 中,并在各次點積累計計算中從存儲器直接獲取相應(yīng)的濾波系數(shù)序列S。 這樣,能夠節(jié)省因有效濾波系數(shù)的移位而產(chǎn)生的時間和操作成本,節(jié)省濾波時間、提升濾波性能。
此外,還需要說明的是,雖然上面圖4的過程是針對于濾波系數(shù)序列 S和輸入信號序列T中的元素是32位單精度類型或整數(shù)類型的情況而描述 的,但是,對于本領(lǐng)域技術(shù)人員來說,可以容易地根據(jù)該過程推導(dǎo)出64 位雙精度類型、16位短整型、8位字符串類型等情況下的基于SIMD的無 限脈沖響應(yīng)濾波過程。
以上就是對本實施例的基于SIMD的無限脈沖響應(yīng)濾波方法的詳細(xì)描 述。在本實施例中,通過利用SIMD指令對輸入信號序列與濾波系數(shù)序列 進行不同移位下的多次點積累計計算,并且利用在前的點積累計計算的結(jié) 果對在后的點積累計計算的結(jié)果進行修正,能夠基于SIMD的并行性能力 來實現(xiàn)無限脈沖響應(yīng)濾波的并行性,從而能夠減少濾波時間、提升濾波性H匕。
在同一發(fā)明構(gòu)思下,本發(fā)明提供一種基于SIMD的無限脈沖響應(yīng)濾波 裝置。下面結(jié)合附圖對其進行描述。
圖6是根據(jù)本發(fā)明實施例的基于SIMD的無限脈沖響應(yīng)濾波裝置的方 框圖。本實施例的基于SIMD的無限脈沖響應(yīng)濾波裝置利用預(yù)先設(shè)定的濾 波系數(shù)序列對輸入信號序列進行無限脈沖響應(yīng)濾波的循環(huán)計算。
如圖6所示,本實施例的基于SIMD的無限脈沖響應(yīng)濾波裝置60包 括濾波系lt^列保存單元601、輸入信號序列獲取單元602、點積累計計 算單元603、修正單元604以及輸入信號序列調(diào)整單元605。
其中,濾波系數(shù)序列保存單元601用于保存預(yù)先"^殳定的濾波系數(shù)序列 S,其中該濾波系數(shù)序列S包括多個有效濾波系數(shù)。此外,該濾波系IUf 列S還包括用于使該濾波系數(shù)序列位數(shù)對齊、即使該濾波系數(shù)序列的位數(shù) 成為128的整數(shù)倍的0值。此外,該濾波系數(shù)序列S還包括為移位而擴展 的、占128位的0值。并且,濾波系數(shù)序列保存單元601將該濾波系數(shù)序 列S存儲在起始存儲地址是128的整數(shù)倍的位置處。
輸入信號序列獲取單元602用于獲得要進行無限脈沖響應(yīng)濾波的輸入 信號序列T,并將其存儲在起始存儲地址是128的整數(shù)倍的位置處。點積累計計算單元602在每一次循環(huán)計算中,利用SIMD指令,對濾 波系數(shù)序列S和輸入信號序列T中與該濾波系數(shù)序列S對應(yīng)的位置的元素 依次進行n次點積累計計算。其中在該n次點積累計計算中,該濾波系數(shù)
序列S中的多個有效濾波系數(shù)的位置分別向右移位O、 1、 2........ n-l個元素。
其中,n是這樣的值濾波系數(shù)序列S和輸入信號序列T中一個元素 所占位數(shù)的n倍等于128。也就是說,該n的值是根據(jù)濾波系數(shù)序列S和 輸入信號序列T中的元素的類型而確定的在元素的類型是64位雙精度 類型的情況下,n等于2;在32位單精度類型或整數(shù)類型的情況下,n等 于4;在16位短整型的情況下,n等于8;在8位字符串類型的情況下,n 等于16。
此外,在本實施例中,對于輸入信號序列T設(shè)置頭指針(或頭索引), 使其在每次循環(huán)計算中指向輸入信號序列T中參與此次循環(huán)計算的元素中 的最開始元素。
從而,在n次點積累計計算中,點積累計計算單元602可以以濾波系 數(shù)序列S為基準(zhǔn),從輸入信號序列T中頭指針?biāo)赶虻脑亻_始,獲取與 濾波系數(shù)序列S中的元素相應(yīng)數(shù)量的元素,作為輸入信號序列T中與濾波 系數(shù)序列S相應(yīng)的元素來進行n次點積累計計算。
如圖6所示,點積累計計算單元603可以進一步包括SIMD乘單元 6031、 SIMD累加單元6032以及累計值求取單元6033。
其中,SIMD乘單元6031在上述n次點積累計計算的每一次中,利用 SIMD乘指令,對濾波系數(shù)序列S和輸入信號序列T中對應(yīng)的元素,每對 應(yīng)的n個元素地進行點積計算。
SIMD累加單元6032在上述n次點積累計計算的每一次中,利用SIMD 加指令,將SIMD乘單元6031所獲得的多個點積計算的結(jié)果累加在一起。
累計值求取單元6033在上述n次點積累計計算的每一次中,對SIMD 累加單元6032所得到的累加結(jié)果中所包含的n個累加和進行求和,作為本 次點積累計計算的結(jié)果。修正單元604在每一次循環(huán)計算中,在點積累計計算單元603所得到
的n次點積累計計算的結(jié)果VO、 VI、 V2........ Vn-1中,根據(jù)下式(l)
(n-l),依次利用在前的點積累計計算的結(jié)果對在后的點積累計計算的 結(jié)果進行修正
V1=V0*F0+V1 (1)
V2=V0*F1+V1*F0+V2 ( 2 )
V3=V0*F2+V1*F1+V2*F0+V3 (3 )
Vn-l=V0*Fn-2+Vl*Fn-3+V2*Fn-4+......+Vn-2*F0+Vn-1 ( n-1)
其中,F(xiàn)0、 Fl、 F2、 ....... Fn-2是濾波系數(shù)序列S中的多個有效濾
波系數(shù)中從最左端開始的n-1個濾波系數(shù)。
輸入信號序列調(diào)整單元605在每一次循環(huán)計算中,將修正單元604修
正后的n次點積累計計算的結(jié)果V0、 VI、 V2........ Vn-l添加到輸入信
號序列T的開始位置,作為該輸入信號序列T的最開始的n個新元素。并 且,輸入信號序列調(diào)整單元605還移動輸入信號序列T的頭指針,使其指 向該n次點積累計計算的結(jié)果中第一個結(jié)果VO的位置。
以上就是對本實施例的基于SIMD的無限脈沖響應(yīng)濾波裝置的詳細(xì)描 述。其中,該裝置60及其各個組成部分,可以由專用的電路或芯片構(gòu)成, 也可以通過計算機(處理器)執(zhí)行相應(yīng)的程序來實現(xiàn)。
以上雖然通過一些示例性的實施例對本發(fā)明的基于SIMD的無限脈沖 響應(yīng)濾波方法和裝置進行了詳細(xì)的描述,但是以上這些實施例并不是窮舉 的,本領(lǐng)域技術(shù)人員可以在本發(fā)明的精神和范圍內(nèi)實現(xiàn)各種變化和修改。 因此,本發(fā)明并不限于這些實施例,本發(fā)明的范圍僅以所附權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種基于SIMD的無限脈沖響應(yīng)濾波方法,包括利用預(yù)先設(shè)定的濾波系數(shù)序列對輸入信號序列進行無限脈沖響應(yīng)濾波的循環(huán)計算;其中,在每一次循環(huán)計算中包括利用SIMD指令,對上述濾波系數(shù)序列和上述輸入信號序列中與該濾波系數(shù)序列對應(yīng)的位置的元素依次進行n次點積累計計算,其中上述濾波系數(shù)序列包括多個有效濾波系數(shù)、用于使該濾波系數(shù)序列位數(shù)對齊的0值以及為移位而擴展的0值,并且在上述n次點積累計計算中,上述多個有效濾波系數(shù)在該濾波系數(shù)序列中的位置分別向右移位0、1、2、......、n-1個元素;在上述n次點積累計計算的結(jié)果中,依次利用在前的點積累計計算的結(jié)果對在后的點積累計計算的結(jié)果進行修正;以及將修正后的上述n次點積累計計算的結(jié)果添加到上述輸入信號序列的開始位置,作為該輸入信號序列的最開始的n個新元素;其中n是這樣的值上述濾波系數(shù)序列和上述輸入信號序列中一個元素所占位數(shù)的n倍等于128。
2. 根據(jù)權(quán)利要求l所述的方法,其中上述n的值是根據(jù)上述濾波系數(shù) 序列和上述輸入信號序列中的元素的類型而確定的在元素的類型是64 位雙精度類型的情況下,上述n等于2;在32位單精度類型或整數(shù)類型的 情況下,上述n等于4;在16位短整型的情況下,上述n等于8;在8位 字符串類型的情況下,上述n等于16。
3. 根據(jù)權(quán)利要求l所述的方法,其中在上述ii次點積累計計算的每一 次中進一步包括利用SIMD乘指令,對上述濾波系數(shù)序列和上述輸入信號序列中與該 濾波系數(shù)序列對應(yīng)的位置的元素,每對應(yīng)的n個元素地進行點積計算; 利用SIMD加指令,將利用上述SIMD乘指令所得到的多個點積計算結(jié)果累加在一起;以及進一步對上述SIMD加指令所得到的累加結(jié)果中所包含的n個累加和 進行求和,作為本次點積累計計算的結(jié)果。
4. 根據(jù)權(quán)利要求l所述的方法,其中上述多個有效濾波系數(shù)在上述濾 波系數(shù)序列中的位置分別向右移位O、 1、 2.......、 n-l個元素進一步包括上述濾波系數(shù)序列中因上述多個有效濾波系數(shù)向右移位而空出的位被 置為0。
5. 根據(jù)權(quán)利要求l所述的方法,其中依次利用在前的點積累計計算的 結(jié)果對在后的點積累計計算的結(jié)果進行修正的步驟是根據(jù)下式(1)~( n-l) 進行的V1=V0*F0+V1 (1)V2=V0*F1+V1*F0+V2 ( 2 )V3=V0*F2+V1*F1+V2*F0+V3 ( 3 )Vn-l=V0*Fn-2+Vl*Fn-3+V2*Fn-4+......+Vn-2*F0+Vn-1 ( n畫l)其中,V0、 VI、 V2、 V3、 ....... Vn-l分別是上述n次點積累計計算的結(jié)果;F0、 Fl、 F2、 ......、 Fn-2是上述濾波系數(shù)序列中的多個有效濾波系數(shù)中從最左端開始的n-1個濾波系數(shù)。
6. 根據(jù)權(quán)利要求l所述的方法,其中對于上述輸入信號序列設(shè)置頭指 針,使其在各次循環(huán)計算中指向上述輸入信號序列中參與此次循環(huán)計算的 元素中的最開始元素。
7. 根據(jù)權(quán)利要求l所述的方法,其中在將修正后的上述n次點積累計 計算的結(jié)果添加到上述輸入信號序列的開始位置的步驟之后包括移動上述頭指針,使其指向所添加的上述n次點積累計計算的結(jié)果中 第一個結(jié)果的位置。
8. 根據(jù)權(quán)利要求l所迷的方法,其中上述濾波系數(shù)序列的位數(shù)是128 的整數(shù)倍,起始存儲地址是128的整數(shù)倍;并且該濾波系數(shù)序列中為移位 而擴展的O值包含128位。
9. 根據(jù)權(quán)利要求l所述的方法,其中上述濾波系數(shù)序列中的上述多個 有效濾波系數(shù)包括前饋濾波系數(shù)和反饋濾波系數(shù),并且反饋濾波系數(shù)設(shè)置 在前饋濾波系數(shù)之前。
10. —種基于SIMD的無限脈沖響應(yīng)濾波裝置,該裝置利用預(yù)先設(shè)定 的濾波系數(shù)序列對輸入信號序列進行無限脈沖響應(yīng)濾波的循環(huán)計算,其包 括濾波系數(shù)序列保存單元,其用于保存上述預(yù)先設(shè)定的濾波系數(shù)序列, 其中該濾波系數(shù)序列包括多個有效濾波系數(shù)、用于使該濾波系數(shù)序列位數(shù) 對齊的O值以及為移位而擴展的0值;點積累計計算單元,其在每一次循環(huán)計算中,利用SIMD指令,對上 述濾波系數(shù)序列和上述輸入信號序列中與該濾波系數(shù)序列對應(yīng)的位置的元 素依次進行n次點積累計計算,其中在該n次點積累計計算中,上述多個有效濾波系數(shù)在該濾波系數(shù)序列中的位置分別向右移位0、 1、 2........n-l個元素;修正單元,其在每一次循環(huán)計算中,在上述點積累計計算單元所得到 的ii次點積累計計算的結(jié)果中,依次利用在前的點積累計計算的結(jié)果對在 后的點積累計計算的結(jié)果進行修正;以及輸入信號序列調(diào)整單元,其在每一次循環(huán)計算中,將上述修正單元修 正后的上述n次點積累計計算的結(jié)果添加到上述輸入信號序列的開始位 置,作為該輸入信號序列的最開始的n個新元素;其中n是這樣的值上述濾波系,列和上述輸入信號序列中一個元 素所占位數(shù)的n倍等于128。
11. 根據(jù)權(quán)利要求10所述的裝置,其中上述n的值是根據(jù)上述濾波系 數(shù)序列和上述輸入信號序列中的元素的類型而確定的在元素的類型是64 位雙精度類型的情況下,上述n等于2;在32位單精度類型或整數(shù)類型的 情況下,上述n等于4;在16位短整型的情況下,上述n等于8;在8位 字符串類型的情況下,上述n等于16。
12. 根據(jù)權(quán)利要求10所述的裝置,其中上述點積累計計算單元進一步包括SIMD乘單元,其在上述n次點積累計計算的每一次中,利用SIMD 乘指令,對上述濾波系數(shù)序列和上述輸入信號序列中與該濾波系數(shù)序列對 應(yīng)的位置的元素,每對應(yīng)的n個元素地進行點積計算;SIMD累加單元,其在上述n次點積累計計算的每一次中,利用SIMD 加指令,將上述SIMD乘單元所獲得的多個點積計算的結(jié)果累加在一起; 以及累計值求取單元,其在上述n次點積累計計算的每一次中,對上述 SIMD累加單元所得到的累加結(jié)果中所包含的n個累加和進行求和,作為 本次點積累計計算的結(jié)果。
13.根據(jù)權(quán)利要求10所述的裝置,其中上述修正單元在每一次循環(huán)計 算中,在上述點積累計計算單元所得到的n次點積累計計算的結(jié)果中,根 據(jù)下式(l)-(n-l),依次利用在前的點積累計計算的結(jié)果對在后的點積 累計計算的結(jié)果進行i務(wù)正V1=V0*F0+V1 (1)V2=V0*F1+V1*F0+V2 ( 2 )V3=V0*F2+V1*F1+V2*F0+V3 (3 )Vn-l=V0*Fn-2+Vl*Fn-3+V2*Fn-4+......+Vn-2*F0+Vn-1 ( n誦l)其中,V0、 VI、 V2........ Vn-l分別是上述n次點積累計計算的結(jié)果;F0、 Fl、 F2........ Fn-2是上述濾波系數(shù)序列中的多個有效濾波系數(shù)中從最左端開始的n-1個濾波系數(shù)。
14. 根據(jù)權(quán)利要求10所迷的裝置,其中對于上述輸入信號序列設(shè)置有 頭指針,其在各次循環(huán)計算中指向上述輸入信號序列中參與此次循環(huán)計算 的元素中的最開始元素。
15. 根據(jù)權(quán)利要求14所述的裝置,其中上述輸入信號序列調(diào)整單元在 將修正后的上述n次點積累計計算的結(jié)果添加到上述輸入信號序列的開始 位置之后,移動上述頭指針,使其指向所添加的該n次點積累計計算的結(jié)果中第一個結(jié)果的位置。
16.根據(jù)權(quán)利要求10所述的裝置,其中上述濾波系數(shù)序列的位數(shù)是 128的整數(shù)倍,起始存儲地址是128的整數(shù)倍;并且該濾波系數(shù)序列中為 移位而擴展的0值包含128位。
全文摘要
本發(fā)明提供了一種基于SIMD的無限脈沖響應(yīng)濾波方法和裝置。該方法包括利用預(yù)先設(shè)定的濾波系數(shù)序列對輸入信號序列進行無限脈沖響應(yīng)濾波的循環(huán)計算;在每一次循環(huán)計算中利用SIMD指令,對濾波系數(shù)序列和輸入信號序列中對應(yīng)的元素進行n次點積累計計算,其中濾波系數(shù)序列包括多個有效濾波系數(shù)、用于使該濾波系數(shù)序列位數(shù)對齊的0值以及為移位而擴展的0值,并且在n次點積累計計算中,該多個有效濾波系數(shù)在濾波系數(shù)序列中的位置分別向右移位0、1、2、……、n-1個元素;在n次點積累計計算的結(jié)果中,利用在前的結(jié)果對在后的結(jié)果進行修正;將修正后的n次點積累計計算的結(jié)果添加到輸入信號序列的開始位置;其中n是這樣的值上述濾波系數(shù)序列和上述輸入信號序列中一個元素所占位數(shù)的n倍等于128。
文檔編號H03H17/04GK101615897SQ200810124979
公開日2009年12月30日 申請日期2008年6月25日 優(yōu)先權(quán)日2008年6月25日
發(fā)明者江 余, 義 曾, 朱振博, 潘寧河, 王艷琦 申請人:國際商業(yè)機器公司