国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      數(shù)字信號處理器中執(zhí)行多個向量稀疏卷積方法與系統(tǒng)的制作方法

      文檔序號:6559518閱讀:325來源:國知局
      專利名稱:數(shù)字信號處理器中執(zhí)行多個向量稀疏卷積方法與系統(tǒng)的制作方法
      技術領域
      本發(fā)明涉及多個向量的卷積(convolution)運算,特別是涉及數(shù)字信號處理器中多個向量的稀疏卷積運算的方法與系統(tǒng)。
      背景技術
      數(shù)字信號處理(Digital Signal Processing;簡稱DSP)是一種關于電子信號的數(shù)字表示的檢查與操作。使用數(shù)字信號處理來進行處理的數(shù)字信號通常是來自于真實世界的聲頻和/或視頻的數(shù)字表示。
      數(shù)字信號處理器為針對數(shù)字信號的處理最佳化而專用的微處理器。數(shù)字信號處理器一般設計成實時處理數(shù)字信號,例如,藉由使用一種實時操作系統(tǒng)(Real-Time Operating System;以下簡稱RTOS)。RTOS為一種當接收多項任務時可同時處理多項任務的操作系統(tǒng),RTOS一般會賦予任務各種優(yōu)先權等級,并允許高優(yōu)先權的任務中斷低優(yōu)先權的任務。RTOS一般會按照以下方式來管理存儲器使一存儲器單元被一特定任務鎖定的時間長度最小化并使被鎖定的該存儲器單元的尺寸最小化,以便可異步地執(zhí)行任務,同時使多項任務嘗試同時存取相同存儲器區(qū)塊的機會最小化。
      數(shù)字信號處理器常用于嵌入式系統(tǒng)(embedded systems)中。嵌入式系統(tǒng)為一種整合至較大裝置中的專用計算機。嵌入式系統(tǒng)一般是使用于針對特定目的而加以定制的小型RTOS。數(shù)字信號處理通常使用包含一數(shù)字信號處理器與一RTOS的嵌入式系統(tǒng)來實施。
      數(shù)字信號處理器一般而言是一種復雜的裝置,其可能包括一個或多個微處理器、存儲器組以及其它電子組件。連同數(shù)字信號處理器,嵌入式系統(tǒng)可包含諸如子系統(tǒng)處理器/加速器、固件和/或其它微處理器與集成電路的類的額外組件。
      在處理數(shù)字信號(例如數(shù)字聲頻信號數(shù)據(jù))時,數(shù)字信號處理器會頻繁地對一種稱為數(shù)據(jù)向量的數(shù)字信號數(shù)據(jù)區(qū)塊執(zhí)行函數(shù)。向量為數(shù)據(jù)值的陣列。
      向量可為預定長度的線性陣列。例如,向量可為32位長的線性陣列,例如

      或者,向量可為預定長度與寬度的多維陣列。例如,向量可為32位長與4位寬的矩陣

      舉例而言,可使用多維數(shù)據(jù)向量來表示多信道數(shù)字聲頻信號。
      使用向量可同時對若干大的數(shù)據(jù)區(qū)塊進行處理。當對相同的數(shù)據(jù)向量執(zhí)行多種函數(shù)和/或對多個數(shù)據(jù)向量執(zhí)行相同的函數(shù)時(其系數(shù)字信號處理中常見的情形),此種數(shù)字表示法特別有用。
      系數(shù)向量為一種可用于處理數(shù)據(jù)向量的向量。例如,一個或多個系數(shù)向量可與一個或多個數(shù)據(jù)向量進行卷積的運算。卷積為一種數(shù)學運算,其中可將多個向量合并成為一向量,其為所述多個向量的重迭。卷積的定義見下式f(t)=h(t)g(t)=∫h(τ)g(t-τ)dτ其中將f(t)定義為卷積的向量,h(t)與g(t)為欲卷積的多個向量。對于離散的向量,例如數(shù)字信號處理器所處理的向量,卷積可以下式來表示f(t)=h(t)&CircleTimes;g(t)=&Sum;nh(n)g(t-n)]]>對于一預定長度N的線性向量h與g,卷積可簡單地由下式來表示f=h&CircleTimes;g=&Sum;i=0i&lt;Nh(i)g(i)]]>在數(shù)字信號處理中,通??梢詫蝹€數(shù)據(jù)向量與多個系數(shù)向量進行卷積。如果g(j)(i)表示多個系數(shù)向量,即g1(i),g2(i),g3(i),...,gK(i),則卷積運算可藉由下式來表示f=h&CircleTimes;g=&Sum;j=0j&lt;K&Sum;i=0i&lt;Nh(i)g(j)(i)]]>用于計算預定長度N的數(shù)據(jù)向量h與K個系數(shù)向量g的卷積的程序代碼可為for(k=0;k<K;k++){sum=0;
      for(i=0;i<N;i++)sum=sum+VecH[i]*VecG[k][i];}當在數(shù)字信號處理器(例如one-mac DSP)上執(zhí)行上述程序代碼時,可能需要大約K*N個處理周期來計算該卷積??赡苄枰~外的周期和/或指令來作為設定地址、指針與循環(huán)緩存器的開銷。
      在典型的DSP中,卷積計算(例如使用上述程序代碼之類的程序代碼)的每一處理周期可能需要執(zhí)行一個或多個步驟。例如,在每一處理周期期間可采取若干步驟來計算一數(shù)據(jù)向量(VecH)與多個系數(shù)向量(VecG)的卷積。在此范例中,將VecH儲存于一存儲器X中,其中由指標x_ptr來指向VecH的每一元素(其具有x_oper值)。將VecG儲存于一存儲器Y中,其中由指標y_ptr來指向VecG的每一元素(其具有y_oper值)。首先,可使用適當?shù)拇鎯ζ髦羔槪鐇_ptr,針對目前的i值從存儲器X中擷取VecH元素x_oper。且可使用適當?shù)拇鎯ζ髦羔?,例如y_ptr,針對目前的i值從存儲器Y擷取VecG元素y_oper。接著可使指針x_ptr前進一個緩存器步進,例如x_ptr=x_ptr+x_step,其中x_step為單獨的一個緩存器。藉由使指針x_ptr前進一個緩存器步進的方式,即可在卷積中使用每一緩存器步進。還可使指針y_ptr前進一個緩存器步進,例如y_ptr=y(tǒng)_ptr+y_step,其中y_step為單獨的一個緩存器??捎嬎鉿_oper與y_oper的乘積,例如prod=x_oper*y_oper。可將先前累積的結果加上x_oper與y_oper的乘積,例如acr=acr+prod,其中acr為累積器的結果緩存器。
      從上述步驟可看出,計算多個向量的卷積可能是一項運算量大而要求嚴格的工作。若有大量的系數(shù)向量皆是與相同的數(shù)據(jù)向量進行卷積運算的狀況下,則尤其如此。
      因此,需要使用一種更有效的方法和/或系統(tǒng)來對多個向量進行卷積,舉例而言,在數(shù)字信號處理器中,可藉由使用更有效的方法和/或系統(tǒng),增強該數(shù)字信號處理器的性能。

      發(fā)明內容
      本發(fā)明提供一種于數(shù)字信號處理器中執(zhí)行多個向量的稀疏卷積的方法,其中一第一向量具有多個向量元素,而利用至少一個第二向量對至少一個第一向量執(zhí)行卷積。該方法包括識別所述第一向量中不具有零值的向量元素,并針對所述第一向量中不具有零值的向量元素以所述第二向量進行卷積的運算。
      本發(fā)明還提供一種于數(shù)字信號處理器中執(zhí)行多個向量的稀疏卷積的系統(tǒng),其中一第一向量具有多個向量元素,而利用至少一個第二向量對至少一個第一向量執(zhí)行卷積。該系統(tǒng)包括一識別單元,其用于識別所述第一向量中不具有零值的向量元素;以及一卷積單元,其用于針對所述第一向量中不具有零值的向量元素以所述第二向量進行卷積的運算。
      本發(fā)明還提供一種計算機系統(tǒng)包括一處理器以及一可由該處理器讀取的程序儲存裝置,該程序儲存裝置包含可由該處理器執(zhí)行的一指令程序執(zhí)行對包括多個向量元素的至少一第一向量使用至少一個第二向量以執(zhí)行卷積的方法步驟。該方法包括識別所述第一向量中不具有零值的向量元素,并針對所述第一向量中不具有零值的向量元素以所述第二向量進行卷積的運算。


      對于本發(fā)明更為完整的了解及其許多附帶的好處將可在結合附圖以及以上的詳細說明之后而更好地了解,其中圖1為說明根據(jù)本發(fā)明的一具體實施例的稀疏卷積的方法流程圖;圖2A為說明根據(jù)本發(fā)明的一具體實施例而用于執(zhí)行卷積的系統(tǒng)方塊圖;圖2B為說明根據(jù)本發(fā)明的另一具體實施例而用于執(zhí)行卷積的系統(tǒng)方塊圖;圖2C為說明根據(jù)本發(fā)明的另一具體實施例而用于執(zhí)行卷積的系統(tǒng)方塊圖;圖2D為說明根據(jù)本發(fā)明的另一具體實施例而用于執(zhí)行卷積的系統(tǒng)方塊圖;圖2E為說明根據(jù)本發(fā)明的另一具體實施例而用于執(zhí)行卷積的系統(tǒng)方塊圖;以及圖3為說明可實施本發(fā)明的方法與系統(tǒng)的一計算機系統(tǒng)的范例方塊圖。
      附圖符號說明
      201 識別單元202 第二向量203 第一向量204 卷積單元205 產生單元206 乘法單元207 加法單元208 第一擷取單元209 第二擷取單元210 第一前進單元211 第二前進單元212 計算單元213 加法單元214 標準卷積單元1000 系統(tǒng)1001 中央處理單元1002 內部總線1003 網(wǎng)絡控制器1004 隨機存取存儲器1005 局域網(wǎng)絡(LAN)數(shù)據(jù)傳輸控制器1006 LAN界面1007 鏈接1008 硬盤1009 輸入裝置1010 打印機接口1011 顯示單元具體實施方式
      在說明附圖中所解說的本發(fā)明的較佳具體實施例時,為清晰起見,使用特定的術語。然而,本發(fā)明不希望受限于如此選定的特定術語,并且應了解,每一特定組件包括所有以類似方式運作的技術等效物。
      向量包含零叢集的狀況,可說是在真實世界中對于表示視頻和/或聲頻信號的數(shù)據(jù)向量的真實情況。在計算卷積時,向量內的零叢集可能導致在多個處理周期中執(zhí)行多個處理步驟,但這些執(zhí)行過程的結果其實對卷積的累積沒有任何貢獻。因此,本發(fā)明的具體實施例是尋求避免多個處理步驟在多個處理周期中僅處理被識別為具有零值的多個向量元素。
      根據(jù)本發(fā)明的一具體實施例,可針對至少一個系數(shù)向量與至少一個數(shù)據(jù)向量來計算卷積,同時可省略多個具有零值的向量元素在計算一乘積上的處理周期和/或步驟。省略這些周期和/或步驟的卷積可稱為稀疏卷積(sparseconvolution)。
      稀疏卷積可減少計算卷積所需的周期和/或步驟(計算)數(shù)量。結果,可使每秒執(zhí)行數(shù)百萬條指令(millions of instructions per second;mips)的數(shù)字信號處理器可有效增加計算能力,因為僅需較少的指令即可處理卷積。而且,稀疏卷積可使數(shù)字信號處理器制造商使用較不昂貴的數(shù)字信號處理器來實現(xiàn)相同的結果,同時可可減少電源的使用。
      根據(jù)本發(fā)明的一具體實施例,計算一預定長度N的一數(shù)據(jù)向量h與K個系數(shù)向量g(其中M等于預定長度N減去數(shù)據(jù)向量h中所出現(xiàn)的零的數(shù)目)的卷積的程序代碼范例可為for(k=0;k<K;k++){sum=j=0;for(i=0;i<M;i++){j=j+StepVec[i]sum=sum+VecH[j]*VecG[k][j];}}圖1為根據(jù)本發(fā)明的一具體實施例的稀疏卷積的方法流程圖。在此范例中,將一數(shù)據(jù)向量(VecH)與多個系數(shù)向量(VecG)進行卷積運算。將VecH儲存于一存儲器X中,其中由指標x_ptr來指向VecH的每一元素(其具有值x_oper)。將多個向量VecG儲存于一存儲器Y中,其中由指標y_ptr來指向每個向量的每一元素(其具有值y_oper)。
      首先,可使用適當?shù)牡谝幌蛄看鎯ζ髦羔?,例如x_ptr,從存儲器X擷

      之后,便可以在各個由不同線路號標識的測試信道(即線路)中利用其對應的正交擴頻碼進行串擾測量;步驟43在圖5所示的測試信道中某個tone內按每個symbol(符號)裝載正交擴頻碼的一個比特,裝載過程如圖6所示,連續(xù)裝載L個symbol,所述的L為正交擴頻碼字的長度;或者,也可以在每個symbol裝載正交擴頻碼的k個比特,連續(xù)裝載L/k個symbol,為保證該方法的實現(xiàn)需要盡量保證L/k是一個整數(shù);例如,當需要對圖5中的1號線路進行串擾測試時,則在該1號線路中實現(xiàn)該步驟,進行正交擴頻碼的裝載處理;在1號線路中裝載的正交擴頻碼為表1中1號線路對應的正交碼b1;另外,如圖7所示,在該步驟中也可以是將擴頻碼字按bit加載到一個symbol(符號)的各個tone中,之后,在接收端同樣在一個symbol中作解擴運算,這樣得到的運算結果可以反映出線路是否出現(xiàn)串擾及整個線路串擾程度,但是不能具體地反應出每個tone中的串擾及串擾程度。這一實現(xiàn)方式具有實施比較簡單,且耗時較短的特點,因此,其在定性分析的時候能發(fā)揮比較大的作用。
      步驟44在被測信道的CPE端經FFT(快速傅氏變換算法)后得到包含串擾信息的接收信號矢量,并進一步確定相應的串擾矢量;由于各個線路對被測信道產生串擾以及噪聲的影響,使被測信道自身的發(fā)送矢量Y發(fā)生了拉伸和旋轉而成為X,所述的被測信道可以為如圖3中所示的2、3...i、j號線路中的任一線路;如圖8所示,串擾矢量Δ(a+jb)是所述的信號矢量X與Y的差值,其中,包用VecH[j=6]=1100。接著,將j遞增StepVec[i=3]=1的值,以使j的新值為7。最后可使用VecH[j=7]=0001。因此,在此范例中,使用VecH的五個元素,而非全部八個元素。
      舉例而言,本發(fā)明的StepVec步進向量可藉由數(shù)字信號處理器在實施一卷積循環(huán)之前來產生,例如,可藉由檢查該數(shù)據(jù)向量的元素以識別需要多少步進增量來跳過該數(shù)據(jù)向量中具有零值的一個或多個元素,而產生StepVec步進向量。StepVec步進向量的產生過程可視為用于實施本發(fā)明所需的額外實施部分。
      其中,該StepVec步進向量可為一4位陣列,以使StepVec向量的每一元素為一4位字符,其可指示欲遞增的緩存器的正確數(shù)目,藉由指示有多少緩存器元素而將不具有零值的每一向量緩存器元素分開。如果StepVec步進向量的每一元素為一4位字符,則每一元素可具有介于1與16之間的值。因而,可跳過的零值元素的最大數(shù)目為15?;蛘撸琒tepVec步進向量可為較大字符的陣列,以允許跳過較大的元素區(qū)塊。
      其中,產生StepVec的數(shù)字信號處理器可為地址產生器(AddressGenerator;簡稱AG)的一部分。另外,可使用AG來產生該數(shù)字信號處理器所使用的地址。亦可將AG實施為一緩存器組(register bank)。
      由于本發(fā)明的具體實施例可藉由額外實施,例如,產生StepVec步進向量以及M(數(shù)據(jù)向量內的非零值元素的數(shù)目),故當使用更多的系數(shù)向量來對相同的數(shù)據(jù)向量進行卷積時,還可彰顯本發(fā)明的優(yōu)點。因此,本發(fā)明的某些具體實施例在具有相對較少數(shù)目的系數(shù)向量時可使用標準的卷積,而當具有相對較大數(shù)目的系數(shù)向量時可使用稀疏卷積。例如,當僅有單獨一個系數(shù)向量時,可使用標準的卷積進行運算;而當具有多個系數(shù)向量時,可使用稀疏卷積進行運算。
      根據(jù)本發(fā)明的另一具體實施例,可使用至少一個具有多個向量元素的系數(shù)向量并使用至少一個數(shù)據(jù)向量來執(zhí)行卷積。這些具體實施例包含識別所述系數(shù)向量中不具有零值的所述向量元素,且可針對上述識別出的系數(shù)向量以至少一個數(shù)據(jù)向量進行卷積的運算。
      在該具體實施例中,可按照類似于前述的具體實施例,針對數(shù)據(jù)向量來識別其內含零值的方式對系數(shù)向量亦進行解析以識別該系數(shù)向量內含的零值。
      圖2A為根據(jù)本發(fā)明的一具體實施例而用于執(zhí)行卷積的系統(tǒng)方塊圖。在本發(fā)明的具體實施例中,可使用至少一個第二向量(202)對至少一個具有多個向量元素的第一向量(203)執(zhí)行卷積(圖2A至2E舉例說明具有多個第二向量以及具有單個第一向量的具體實施例)??商峁┮蛔R別單元(201)來識別所述第一向量(203)中不具有零值的向量元素??商峁┮痪矸e單元(204)來針對所識別出的所述第一向量(203)中不具有零值的向量元素與所述第二向量(202)進行卷積運算。
      圖2B為說明根據(jù)本發(fā)明的另一具體實施例而用于執(zhí)行卷積的系統(tǒng)方塊圖。在此具體實施例中,該識別單元(201)可包括一產生單元(205),其用于產生一步進向量,該步進向量可指示有多少元素間隔出所述第一向量(203)不具有零值的向量元素。
      圖2C為根據(jù)本發(fā)明的另一具體實施例而用于執(zhí)行卷積的系統(tǒng)方塊圖。在此具體實施例中,該卷積單元(204)可包括一乘法單元(206),其用于將所述第一向量(203)中每一不具有零值的向量元素與所述第二向量(202)相乘,以形成多個乘積。該卷積單元(204)可額外地包括一加法單元(207),其用于將所述乘積加到一累積器(未示出)上。
      圖2D為根據(jù)本發(fā)明的另一具體實施例而用于執(zhí)行卷積的系統(tǒng)方塊圖。在此具體實施例中,該卷積單元(204)可包括一第一擷取單元(208),其利用第一向量指標處擷取一第一向量元素。該卷積單元(204)亦可包括一第二擷取單元(209),其利用第二向量指標處擷取一第二向量元素。該卷積單元(204)亦可包括一第一前進單元(210),其使用一步進向量來使該第一向量指標前進。該卷積單元(204)亦可包括一第二前進單元(211),其使用該步進向量來使該第二向量指標前進。該卷積單元(204)亦可包括一計算單元(212),其用于計算該第一向量元素與該第二向量元素的乘積。該卷積單元(204)亦可包括一加法單元(213),其用于將該乘積加到一累積的結果上。該步進向量可指示有多少元素間隔出所述第一向量不具有零值的向量元素。
      圖2E為根據(jù)本發(fā)明的另一具體實施例而用于執(zhí)行卷積的系統(tǒng)方塊圖。在此具體實施例中,當具有相對較大數(shù)目的第二向量(202)時,該識別單元(201)與該卷積單元(204)亦可為被使用。當具有相對較少數(shù)目的第二向量時,可另外包括一標準卷積單元(214),用于針對所述第一向量中所有向量元素以所述第二向量(202)進行卷積運算。
      圖3為說明可實施本發(fā)明的方法與系統(tǒng)的計算機系統(tǒng)的范例方塊圖。可以運行于一計算機系統(tǒng)(例如一主機、個人計算機(PC)、手持計算機、服務器等)上的軟件應用程序的形式來實施本發(fā)明的系統(tǒng)與方法??蓪⒃撥浖贸绦騼Υ嬗诳捎稍撚嬎銠C系統(tǒng)進行本地存取以及可經由與網(wǎng)絡(例如局域網(wǎng)絡或因特網(wǎng))的硬線或無線連接進行存取的記錄媒體上。
      該計算機系統(tǒng)(一般稱為系統(tǒng)1000)可包括,例如,一中央處理單元(CPU)1001、隨機存取存儲器(RAM)1004、一打印機接口1010、一顯示單元1011、一局域網(wǎng)絡(LAN)數(shù)據(jù)傳輸控制器1005、一LAN接口1006、一網(wǎng)絡控制器1003、一內部總線1002以及一個或多個輸入裝置1009,例如,一鍵盤、鼠標等。如圖所示,可經由一鏈接1007將該系統(tǒng)1000連接至一數(shù)據(jù)儲存裝置,例如一硬盤1008。
      上述特定具體實施例是說明性的,并且可對這些具體實施例進行許多變化,而不致脫離本發(fā)明的精神或權利要求的范疇。例如,可在本發(fā)明與權利要求的范疇內將不同說明性具體實施例的組件和/或特征彼此組合和/或彼此替代。
      權利要求
      1.一種數(shù)字信號處理器中執(zhí)行多個向量的稀疏卷積的方法,包含識別出至少一個第一向量中至少一個不具有零值的向量元素;以及針對識別出的所述第一向量中的所述不具有零值的向量元素以至少一個第二向量進行卷積運算。
      2.如權利要求1所述的方法,其中所述第一向量為數(shù)據(jù)向量,所述第二向量為系數(shù)向量。
      3.如權利要求1所述的方法,其中所述第一向量為系數(shù)向量,并且所述第二向量為數(shù)據(jù)向量。
      4.如權利要求1所述的方法,還包括產生一步進向量,該步進向量是指示有多少元素間隔出所述第一向量不具有零值的向量元素。
      5.如權利要求1所述的方法,還包括相乘所述第一向量中的每一不具有零值的向量元素與所述第二向量,以形成多個乘積;以及累加所述乘積。
      6.如權利要求1所述的方法,還包括在一第一向量指標處擷取一第一向量元素;在一第二向量指標處擷取一第二向量元素;使用一步進向量來使該第一向量指標前進;使用該步進向量來使該第二向量指標前進;計算該第一向量元素與該第二向量元素的一乘積;以及將該乘積加到一累積結果上,其中該步進向量是指示有多少元素間隔出所述第一向量不具有零值的向量元素。
      7.如權利要求6所述的方法,其中重復針對所述第一向量的所述不具有零值的向量元素以所述第二向量進行卷積的步驟,直至針對所述第一向量中每一不具有零值的向量元素與每一第二向量皆將相乘的該乘積添加至該累積結果為止。
      8.如權利要求1所述的方法,是在具有相對較大數(shù)目的第二向量時執(zhí)行,而在具有相對較小數(shù)目的第二向量時執(zhí)行時,則針對所述第一向量的所有向量元素以所述第二向量進行卷積運算。
      9.如權利要求8所述的方法,其中該具有相對較小數(shù)目的第二向量僅包含單獨一個第二向量,而該具有相對較大數(shù)目的第二向量則包含多于單個的第二向量。
      全文摘要
      本發(fā)明提供一種于數(shù)字信號處理器中執(zhí)行多個向量的稀疏卷積的方法,其中一第一向量具有多個向量元素,而利用至少一個第二向量對至少一個第一向量執(zhí)行卷積。該方法包括識別所述第一向量中不具有零值的向量元素,并針對所述第一向量中不具有零值的向量元素以所述第二向量進行卷積的運算。
      文檔編號G06F17/15GK1862524SQ20061009160
      公開日2006年11月15日 申請日期2006年6月6日 優(yōu)先權日2005年6月6日
      發(fā)明者斯蒂格·斯頓斯 申請人:威盛電子股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1