專利名稱:用于減少回波消除器需要的存儲器的方法、設備和系統的制作方法
技術領域:
本發明的實施例涉及信號處理和通信領域,更具體地說,涉及用于減少回波消除器需要的存儲器并且提高收斂性能的方法、設備和系統。
背景技術:
近年來,隨著通信網絡和協議,尤其是分組交換網絡如因特網,的各種技術進步和提高,通信系統和服務不斷迅速提高。相當大的興趣已經集中在了分組語音(Voice-over-Packet,VoP)系統上。一般來說,分組語音(VoP)系統,又稱為IP語音(Voice-over-Internet-Protocol,VoIP)系統,包括若干處理部件,用于將語音信號轉換為通過分組交換網絡如因特網發送的信息包流并且將在目的地接收的信息包轉換回語音信號。VoP系統中的一個處理部件是稱為回波消除器的裝置,用于進行回波消除。可以將回波消除器實現為包括在數字信號處理(DSP)芯片或器件(這里也稱為數字信號處理器)中的一個部件。DSP器件包括一個或多個數字信號處理器核心,用于對語音和/或數據信號進行處理;以及一個總存儲器,被DSP器件的各個部件用來執行它們對應的功能。例如,DSP器件中的回波消除器可能需要大量的在總存儲器中的動態存儲器,以執行其回波消除功能。
一般情況下,回波消除器執行其對應的功能所需要的動態存儲器通過直接存儲器存取(DMA)機構被從用于每幀的總存儲器傳輸到DSP核心并且從DSP核心傳輸到總存儲器。幀可以被定義為一個時間間隔,經過這個時間間隔執行若干處理功能,從而生成一個根據對應的語音輸入信號的對應的語音信息包。典型的情況是,DSP器件可以被配置為執行用于多VoP信道的語音和信息包處理,并且每個VoP信道可以具有在總存儲器中的它自己的永久動態記憶儲存器。因此,在其它因素中,可以由DSP器件處理的VoP信道的數量取決于回波消除器功能塊對動態存儲器的需要。這樣,如果在不明顯降低語音信號質量的情況下,能夠減少回波消除器需要的動態存儲器,則可以實現更高的信道密度。
一般而言,回波消除器需要的動態存儲器的相當大的部分被分配為用于存儲在回波消除處理中使用的濾波系數(這里也稱為系數)。減少系數所需的存儲器的一種方法是利用無損壓縮法如Huffman編碼、算術編碼等來壓縮系數。盡管利用無損壓縮法能夠保證在進行回波消除的過程中不會對語音信號質量產生影響,但無損壓縮法仍然有如下若干缺點-無損壓縮導致了每幀需要的存儲器的數量(例如位)可變。因此,雖然在統計平均值的基礎上能夠增加信道密度,但不確定。
-在最差的情況下,存儲系數需要的位數可以比不進行任何壓縮時需要的更多。可以通過僅當無損壓縮(無損編碼)有幫助的時候才使用它來避免這種情況。但是,需要將判斷無損編碼是否有作用的信息存儲為補充信息,由此使需要的存儲器略有增加。
-使用一維符號的回波消除器系數的熵(每個系數需要的位的理論低限)結果變為10并且位的幾十分之一。因此,使用一維無損編碼在節省存儲器方面的最好情況也達不到50%。
-無損編碼和解碼的復雜度較高。
相反,有損壓縮法能夠克服無損壓縮法的缺點,但會對質量產生影響。因此,需要在對語音信號的質量沒有顯著影響的情況下減少回波消除器需要的存儲器。
通過參照以下用于說明本發明的實施例的描述和附圖,可以將本發明理解得最好。在附圖中圖1示出了系統的一個實施例的框圖,在該系統中實施了本發明的思路;圖2示出了VoP網關的一個實施例的框圖,在VoP網關中實施了本發明的思路;圖3示出了語音處理子系統的一個實施例的框圖,在這個語音處理子系統中實施了本發明;圖4示出了典型數字信號處理器的一個實施例的框圖,在這個數字信號處理器中實施了本發明的思路;圖5示出了包括一個回波消除器的典型的數字信號處理器核心的一個實施例的更詳細的框圖;圖6示出了按照本發明的一個實施例的系數陣列的典型表示;圖7示出了按照本發明的一個實施例的系數陣列的幅值子陣列的典型表示;圖8示出了按照本發明的一個實施例的,用于減少回波消除器需要的記憶存儲器的方法的流程圖;并且圖9為按照本發明的一個實施例的方法的流程圖。
具體實施例方式
在下面的詳細描述中,敘述了許多具體細節。但應該理解,可以在沒有這些具體細節的情況下實現本發明的實施例。
近年來,VoP技術已經被日益廣泛地用于將語音、傳真和數據交通從在電話和無線細胞網絡中使用的電路交換格式轉換為通過網際協議(IP)和/或異步傳輸模式(ATM)通信系統在分組交換網絡上發送的信息包。根據應用軟件,可以將VoP系統按照不同的方式實施。例如,可以通過與對應的VoP網關和分組交換網絡如因特網連接的公共交換電話網絡(PSTN)從一個傳統電話到另一個傳統電話進行語音呼叫。作為另一個例子,可以在傳統電話與配備有通過PSTN、VoP網關和因特網的語音應用軟件的個人計算機之間建立語音通信。
圖1示出了系統100的一個實施例的框圖,在系統100中實施了本發明的思路。如圖1所示,系統100包括通過PSTN 120與VoP網關系統130連接的語音通信設備110和數據通信設備112。在一個實施例中,VoP網關系統130包括與分組交換網絡(例如IP/ATM網絡)140連接的對應的信令網關子系統132和媒體網關子系統134。系統100還包括通過PSTN 160與VoP網關系統150連接的語音通信設備170和數據通信設備172。在一個實施例中,VoP網關系統150包括與分組交換網絡140連接的對應的信令網關子系統152和媒體網關子系統154。在一個實施例中,語音通信設備110和170可以是電話或配備有語音應用軟件的計算機,或者是能夠進行語音信號通信的其它類型的設備。語音通信設備112和172可以是傳真機、計算機或能夠進行數據信號通信的其它類型的設備。
如圖1所示,可以通過PSTN 120、VoP網關130、分組交換網絡140、VoP網關150和PSTN 160在語音設備110和170之間建立語音通信對話(例如,語音呼叫)。例如,語音呼叫可以從語音設備110開始,語音設備110將模擬語音信號轉換為線性脈碼調制(PCM)的數字流,并且將PCM數字流通過PSTN 120發送到VoP網關130。然后,VoP網關系統130將PCM數字流轉換為在分組交換網絡(例如因特網)140上發送的信息包。在接收側,VoP網關系統150將接收的語音信息包轉換為被發送到接收設備(例如,語音設備170)的PCM數字流。然后,語音設備170將PCM數字流轉換為模擬語音信號。
圖2示出了VoP網關系統200(例如在圖1中示出的VoP網關系統120或150)的一個實施例的框圖,在VoP網關系統200中實施了本發明的思路。如圖2所示,對于一個實施例,VoP網關系統200包括系統一個控制部件210(這里也稱為系統控制單元或系統控制卡)、一個或多個線路接口部件220(這里也稱為線路接口單元或線路卡)、一個或多個媒體處理部件230(這里也稱為媒體處理單元、媒體處理卡或媒體處理器)和一個網絡中繼線部件240(這里也稱為網絡中繼線單元或網絡中繼線卡)。如圖2所示,通過PCI/以太網總線250使各個部件210、22、230和240相互連接。通過時分多路復用(TDM)總線260(例如,H.110TDM底板總線)使線路卡220與媒體處理卡230連接。在一個實施例中,線路卡220通過開關270(例如5級開關)連接到PSTN。通過IP路由器/ATM轉換器280將網絡中繼線卡240連接到分組交換網絡(例如,IP或ATM網絡)。在一個實施例中,系統控制卡210負責對VoP網關系統200進行監控和管理,包括對子系統卡的初始化和配置、系統管理、性能監控、發出信號和呼叫控制等。在一個實施例中,媒體處理卡230對包括關于從線路卡230接收的語音頻帶交通的數字信號處理(DSP)功能、信息分包和信息包集合等的信息包處理功能進行TDM。在一個實施例中,媒體處理卡230進行語音壓縮/解壓縮(編碼/解碼)、回波消除、DTMF和音調處理、靜音抑制(VAD/CNG)、信息分包和集合、抖動緩沖器管理和信息包損失恢復等。
圖3示出了典型的媒體處理部件或子系統300(例如,在圖2中示出的媒體處理卡230)的一個實施例的框圖。在一個實施例中,媒體處理子系統300包括與TDM總線320和高速并行總線330耦合的一個或多個數字信號處理(DSP)單元(也稱為數字信號處理器)310。媒體處理子系統300還包括與存儲器350、高速并行總線330和系統底板360耦合的主機/信息包處理器340。在一個實施例中,DSP 310被設計為支持并行、多信道信號處理任務,并且包括與各種網絡設備和總線接口的部件。在一個實施例中,每個DSP 310包括一個多信道TDM接口(沒有示出),以利于在相應的DSP與TDM總線之間進行信息通信。每個DSP310還包括一個主機/信息包接口(沒有示出),以利于在相應的DSP與主機/信息包處理器340之間進行通信。在一個實施例中,DSP 310為對應的媒體處理卡執行各種信號處理任務,這些任務可以包括語音壓縮/解壓縮(編碼/解碼)、回波消除、DTMF和音調處理、靜音抑制(VAD/CNG)、信息分包和集合、抖動緩沖器管理和信息包損失恢復等。
圖4示出了典型數字信號處理器(例如DSP 310)的一個實施例的框圖,在這個數字信號處理器中實施了本發明的思路。如圖4所示,在一個實施例中,DSP 310可以包括用于處理語音和數據信號的多個DSP核心410。DSP 310還包括用于每個相應的DSP核心410的本地數據存儲器415和本地程序存儲器420。DSP 310還包括與主機總線435耦合的多信道TDM接口425和主機/信息包總線接口430。在一個實施例中,多信道TDM接口425包括與四個全雙工串行端口耦合的四個全雙工多信道TDM串行接口。在一個實施例中,主機總線接口430是一個32位的并行主機總線接口,被配置為用于傳輸語音信息包數據并且用于對DSP器件編程。如圖4所示,DSP 310還包括一個與數據高速緩存器445和指令高速緩存器450耦合的控制處理器核心440。在一個實施例中,控制處理器核心440負責為各個DSP核心410安排任務和管理數據流,并且負責管理與外部主機處理器(沒有示出)的通信。在一個實施例中,DSP 310包括用于存儲進行語音和數據處理所需要的程序和數據的總存儲器455。DSP 310還包括高速內部總線460和分布的DMA控制器(沒有示出),以便給DSP核心提供對總存儲器455中的數據的快速存取。
圖5示出了典型的數字信號處理器(DSP)核心500(例如在圖4中示出的DSP核心410)的一個實施例的更詳細的框圖。如圖5所示,DSP核心500包括一個DTMF檢測單元510、一個G.7xx編碼器515、一個G.7xx解碼器520、一個音調生成單元525、一個DTMF生成單元530和一個與主機/信息包接口單元590耦合的適宜噪音生成(CNG)單元535。DSP核心500還包括一個語音活動檢測(VAD)單元540、一個音調檢測單元545、一個網絡回波消除單元(這里也稱為回波消除器)550、μ-Law/A-Law解碼單元560和μ-Law/A-Law編碼單元570。
在一個實施例中,μ-Law/A-Law解碼單元560將經過編碼的語言解碼為線性的語言數據,而μ-Law/A-Law編碼單元570將線性的語言數據編碼為經過μ-Law/A-Law編碼的語言。在一個實施例中,從近端接收TDM信號并且將其轉換為經過脈碼調制(PCM)的線性數據樣本Sin。將這個PCM線性數據樣本Sin輸入到網絡回波消除單元550。在一個實施例中,網絡回波消除單元550進行操作,以從PCM線性數據樣本Sin中消除回波估算信號,從而生成PCM線性數據樣本Sout。將PCM線性數據樣本Sout提供給DTMF檢測單元510、VAD單元540和音調檢測單元545。
在一個實施例中,來自遠端的經過解碼的語言樣本是PCM線性數據樣本Rin,并且被提供給網絡回波消除單元550。為了進行回波消除處理,網絡回波消除單元550為回波消除處理復制Rin,并且將其輸出為PCM線性數據樣本Rout。PCM線性數據樣本Rout被提供給μ-Law/A-Law編碼單元570。
在一個實施例中,VAD單元540用于檢測語言片段中是否有靜音。當VAD 540檢測到靜音時,對背景噪音能量進行估算,并且其中的編碼器生成靜音插入描述(Silence-Insertion Description,SID)幀。對在相對端(例如遠端)接收SID幀做出響應,CNG單元535在一段時間內生成對應的適宜噪音或者模擬靜音。
如以上討論的,在DSP器件中的回波消除器,如在圖5中示出的回波消除器550,可能需要總存儲器中的大量動態存儲器,以執行它的回波消除功能。典型的情況是,對于每個幀,回波消除器執行其對應的功能所需要的動態存儲器通過直接存儲器存取(DMA)機構從總存儲器傳送到DSP核心,并且從DSP核心傳送到總存儲器。如上所述的DSP器件可以被配置成為多個VoP信道執行語音和信息包處理,而每個VoP信道可以具有它自己的在總存儲器中的固定動態記憶存儲器。在其它因素中,可以由DSP器件處理的VoP信道的數量取決于回波消除器功能塊(例如,回波消除器550)需要的動態存儲器。因此,如果在不明顯影響語音信號質量的情況下能夠減少回波消除器需要的動態存儲器,則可以實現更高的信道密度。
圖6示出了按照本發明的一個實施例的系數陣列600的典型表示。在一個實施例中,系數陣列600用于存儲在回波消除器(例如,圖5中的回波消除器550)進行回波消除處理的過程中使用的濾波器系數。如圖6所示,可以將系數陣列看作表示兩個陣列(或子陣列)610和620。陣列610為符號位陣列,陣列620為幅值陣列。在以下的討論中,出于說明和解釋的目的,假定存儲在系數陣列中的每個系數寬為16位,1位用于表示符號,15位用于表示每個系數的幅值。在一個實施例中,如果對應的系數為負(<0),則符號位陣列中的符號位為1,如果對應的系數為非負(>=0),則符號位為0。在一個實施例中,幅值陣列中的幅值部分是對應系數的絕對值。舉例來說,如果系數=228,則符號位=0,幅值=228。在這種情況下,符號位陣列610相應行,長為1位,值為0,而幅值位陣列620相應行,長為15位,值為000000011100100。另舉一例,假定系數=-2585,在這種情況下,符號位陣列行為1,而幅值位陣列行為000101000011001。應該注意系數=-32768時的特殊情況,在本例中,這是最大負數。在這種情況下,符號位陣列行為1,而幅值位陣列行為111111111111111。同樣,每個系數的符號位陣列有一位,每個系數的幅值位陣列有15位。本領域技術人員應該理解,本發明的思路不限于這里所討論的系數陣列結構的特定例子,而是可以應用于陣列中的系數的其它表示或者各種大小和格式的其它數據結構。
如以上所討論的,如果在不明顯影響語音信號質量的情況下能夠減少回波消除器需要的動態存儲器,則可以實現更高的信道密度。在一個實施例中,回波消除器需要的動態存儲器的相當大的部分(例如,接近一半)被分配給用于存儲在回波消除處理中使用的濾波系數。
繼續目前的討論,假定為了實現希望的信道密度,為每幀設置位限額。例如,對于512抽頭的回波消除器,存儲用于一個幀的回波消除器系數需要的存儲器為512*16或8192位(再次假定每個系數需要16位)。為了將系數陣列需要的存儲器減少50%,可以將位限額設置為每幀4096位或每個系數8位。假定按照現在的樣子對符號位陣列編碼(例如,每個系數一個符號位),則用512位存儲系數的符號。這樣,還剩下3584位用于存儲系數的幅值。換句話說,在本例中,為了將系數陣列需要的存儲器減少50%,符號位陣列需要512位的動態記憶存儲器,而幅值位陣列需要3584位的動態記憶存儲器。因此,為了將系數陣列需要的存儲器減少50%或者50%的壓縮比,需要將系數陣列從8192位壓縮到4096位,其中,經過壓縮的系數陣列的512位用于存儲系數的符號。
在一個實施例中,如圖7所示,可以將幅值陣列看作一個二維陣列,其中,行數表示抽頭或系數,列數表示位。在本例中,從頂到底,為系數0到511,從左到右,為位14到0(MSB到LSB)。同樣,可以將如圖7所示的幅值陣列(壓縮之前)看作一個512×15陣列。應該注意,在不引起任何損失的情況下,通過刪除或者舍棄這個陣列的左側的0位(值為零的位),可以實現對需要的存儲器的某種程度的節省。換句話說,在回波消除處理的過程中,在不影響質量的情況下,可以舍棄每個系數的零值的最高有效位。
在一個實施例中,按照下面的描述,在對質量影響最小的情況下,對系數陣列進行壓縮,以實現希望的減少或壓縮比(例如,位限額)。這里的想法是在語音信號中引入人耳最不易察覺的質量影響或失真。就此而言,在那些具有較低值并且因此作用較小的系數被編碼之前,應該先對具有較高值(更有效)的系數進行編碼。由于存儲器的限制(例如,位限額),應該將可用存儲器用于存儲具有較高值的系數。因此,在一個實施例中,在經過壓縮的系數陣列中,在具有較低值的系數被處理(例如,識別、編碼和存儲)之前,先對具有較高值的系數進行處理。在一個實施例中,如這里所描述的壓縮處理連續進行,直到不再有可用存儲器(已經達到位限額)或者直到已經處理了在原有系數陣列(也稱為未經壓縮的系數陣列)中的所有系數為止。
在一個實施例中,按照Z字形的方式(例如,向下到底,然后向上到頂并且向右,再向下),從陣列的左上角向陣列的右下角遍歷原有(未經壓縮的)的幅值陣列,直到遇到或碰到非零位(值為1的位,這里也稱為“1”位)。當發生這種情況時,遇到的非零位就是相應系數的最左邊的非零MSB。在一個實施例中,用m位對這個位的位置進行編碼,這里,m=[log2(位/系數)]+[log2(抽頭長度)],[x]為等于或大于x的最小整數。在這種情況下,被識別的系數是較高或較大系數中的一個。在一個實施例中,按照全精度對這個系數打包。由已經被用4個位(例如[log2(15)])編碼的對應的列位置給出需要的位數。一旦一個系數被編碼,則將其從幅值陣列中刪除,因此將不再對它進行處理。在一個實施例中,為了刪除已經被編碼的相應的系數,在幅值陣列中,它的位被置零(例如,用零位替換相應系數的位)。以相同的Z字形方式不斷遍歷幅值陣列,直到碰到下一個“1”位。當再次發生這種情況時,根據需要,按照全精度對相應的位進行編碼并且對相應的系數進行編碼。照這樣,選擇較高或較強的系數,并且按照正好足夠的精度對其進行編碼。這樣的過程不斷進行,直到不再有可用位(即,已經達到位限額)或者直到已經到達二維幅值陣列的右下角(即,已經處理了所有系數)為止。
參照在圖7中示出的二維幅值陣列的例子,可見,這是一個512×15的陣列。有512行(行0到行511,行0從陣列頂部開始)和15列(列0到列14,列14從左側開始)。通過每個位關于在行0和列14或(0,14)的左上角位置以及關于在行511和列0或(511,0)的右下角位置的相對位置,可以在這個陣列中查找這個位。如圖7所示,該處理以Z字形的方式從幅值陣列的左上角到幅值陣列的右下角遍歷幅值陣列。換句話說,該處理從位置(0,14)開始,沿列14向下遍歷直到列14在(511,14)的最后位置,然后向上到位置(0,13)并且沿列13向下遍歷直到位置(511,13),依此類推。如上所述,按照這樣的方式遍歷幅值陣列直到碰到“1”位。當出現這種情況時,按照全精度對相應的位置進行編碼并且對相應的系數進行編碼。然后,將已經處理的系數從幅值陣列中刪除(例如,置零),因此,在剩余的遍歷幅值陣列期間,將不再對它進行處理。這個壓縮處理持續進行,直到達到位限額(即,實現了希望的壓縮比)或者直到已經處理了位于幅值陣列右下角(位置(511,0))的系數為止。可見,由于在壓縮處理期間,給較強的系數以更高的優先權(即,在較低或較弱的系數之前處理較高或較強的系數),因此上面剛按照本發明的一個實施例描述的方法提供了一種新穎的在質量影響或失真最小的情況下減少回波消除器需要的存儲器(例如,存儲系數所需要的動態存儲器)的途徑。因此,如果設置了位限額因而動態存儲器不足以存儲所有系數,則將保留較強的系數,以使對語音信號的質量影響最小。
圖8示出了按照本發明的一個實施例的,用于減少回波消除器需要的記憶存儲器的處理800的流程圖。在本例中,再次假定將原有的幅值子陣列、未經壓縮的系數陣列看作二維陣列(例如,如圖7所示,具有512行和14列)。在框810,將n設置為0,k設置為15,其中,n代表行數,k代表列數。在判定框815,如果第n個系數的第k位為“1”,則處理進行到框840。否則,處理進行到框820,使n加1,從而前進到下一行。在判定框825,處理進行到框830,使k減1,從而前進到下一列。否則,處理返回到框815。在判定框835,如果k=-1(已經處理了所有系數),則處理在框891結束。否則,處理返回到框815。在框840,如上所述,對遇到“1”位的位置和相應的系數進行編碼。在一個實施例中,相對于前面遇到的系數的位置,對相應系數的位置進行差動編碼。在一個實施例中,用k個位對第n個系數編碼,用1位對第n個系數的符號編碼。然后,將剛剛處理過的第n個系數從幅值陣列中刪除(將第n個系數設置為=0),因此將不再對它進行處理。在框845,根據對第n個系數進行編碼所使用的位數,相應地調整位限額。在判定框850,如果位限額小于或等于0(即已經達到壓縮比并且不再有用于其它系數的存儲器了),則處理在框891結束。否則,處理進行到框820,從而前進到下一行(即,下一個系數)。
圖9為按照本發明的一個實施例的方法的流程圖。在框910,首先生成用于在分組語音(VoP)系統中進行回波消除的第一組系數。由包括表示相應系數的符號的第一部分和表示相應系數的幅值的第二部分的第一多個位代表每個系數。在框920,將第一組系數壓縮,以生成第二組系數,第二組系數需要的記憶存儲器比第一組系數少,其中,在對較低值的系數編碼之前,先對較高值的系數編碼,直到滿足了預定壓縮比(例如,位限額)或者直到已經對第一組中的所有系數進行了編碼為止。
本發明的另一個實施例可以用于根據需要的記憶存儲器、收斂速度以及計算速度來提高回波消除器的性能。在這個實施例中,用與第一個經過編碼的系數的位數相同的位數,對在最大系數(例如,第一個經過編碼的系數)中的一個的附近的系數進行編碼。在這個實施例中,減少了在后來的遍歷過程中用于對這些系數的位置進行編碼的系統開銷。此外,在網絡回波消除器的應用軟件中,這些系數代表對主要回波的脈沖響應并且保持這個脈沖響應的形狀確保了快速收斂和語音質量。
盡管這里為了進行解釋和說明,已經針對壓縮回波消除(ECAN)的系數對本發明的不同實施例進行了描述,但本領域技術人員應該理解,本發明的思路不限于壓縮ECAN的系數,而是可以用在各種應用軟件中。例如,可以將本發明的思路用于提高ECAN的收斂性能而不考慮節省存儲器。此外,可以將本發明的思路應用于壓縮音頻轉換系數。例如,可以用這里描述的新的壓縮方法代替目前的在MPEG3/MPEG-AAC/MPEG-4音頻編解碼器中對MDCT系數的失真率進行迭代量化和無損編碼的方法。可以將如這里所描述的新的方法用于在步驟一(無迭代)中對系數進行量化,并且由此可以明顯地減小復雜度。這可以用作消費者AAC編碼器的一部分,用于流音頻或CD-ripping應用軟件等。
盡管已經根據若干實施例對本發明進行了描述,但本領域技術人員應該理解,本發明不限于這里所描述的實施例。很明顯,根據前面的描述,本領域技術人員應該清楚許多替換、修改、變化和用途。
權利要求
1.一種方法,包括如下步驟生成第一組系數,用于在分組語音(VoP)系統中進行回波消除,由第一多個位表示每個系數,該第一多個位包括表示相應系數的符號的第一部分和表示相應系數的幅值的第二部分;并且將所述第一組系數壓縮,以生成第二組系數,第二組系數需要的記憶存儲器比第一組系數少,其中,在對較低值的系數編碼之前,先對較高值的系數編碼,直到滿足了預定壓縮比或者直到已經對第一組中的所有系數進行了編碼為止。
2.如權利要求1所述的方法,還包括確定所述第一組系數需要的存儲器;并且根據第一組需要的存儲器和預定壓縮比,設置所述第二組系數需要的存儲器。
3.如權利要求1所述的方法,其中,壓縮所述第一組的步驟包括循環地執行一組操作,直到滿足了預定壓縮比或者直到已經對第一組中的所有系數進行了處理為止,該組操作包括識別在所述第一組中的,相對于所述第一組中的其它系數具有較高值的那些系數;對識別出的系數進行編碼;并且給在所述第一組中的已經被編碼的系數加上標志,因此不在后面的循環中不再對它們進行處理。
4.如權利要求3所述的方法,其中,識別的步驟包括遍歷所述第一組系數,直到檢測到在所述第一組中的其最高有效位具有非零值的系數;并且對相應系數的相對位置進行編碼。
5.如權利要求4所述的方法,其中,對識別出的系數進行編碼的步驟包括用全精度對在第二系數組中的相應系數進行編碼,第二系數組包括相應系數的相對位置。
6.如權利要求5所述的方法,其中,加標志的步驟包括從所述第一組中刪除相應的系數。
7.如權利要求6所述的方法,其中,加標志的步驟包括用零值替換在所述第一組中的相應系數。
8.一種方法,包括如下步驟接收回波消除系數第一陣列,每個回波消除系數由第一多個位表示,該第一多個位包括表示相應系數的符號的第一部分和表示相應系數的幅值的第二部分;并且對所述第一系數陣列進行壓縮操作,從而得到第二系數陣列,第二系數陣列需要的記憶存儲器比第一組系數少,其中,給第一陣列中的,值相對于第一陣列中的其它系數較高的系數以較高的優先權,用于在第二陣列中進行編碼。
9.如權利要求8所述的方法,還包括根據所述第一陣列的大小和預定壓縮比,確定存儲第二陣列需要的存儲器的大小。
10.如權利要求9所述的方法,其中,所述第一陣列包括一個第一子陣列,用于容納相應系數的符號數據;以及一個第二子陣列,用于容納相應系數的幅值數據。
11.如權利要求10所述的方法,其中,對所述第一陣列進行壓縮操作的步驟包括循環地對所述第二子陣列進行一組操作,從所述第二子陣列中的第一預定條目的最高有效位(MSB)開始,直到滿足第一條件為止,該組操作包括檢測在所述第二子陣列中的當前條目的當前位是否具有非零值;如果當前位具有非零值,則對在所述第二陣列中的對應的系數進行編碼;并且給在所述第二子陣列中的對應條目加上標志,因此不再對它進行處理。
12.如權利要求11所述的方法,其中,所述第一預定條目對應于在所述第二子陣列中被加上最低索引的條目。
13.如權利要求11所述的方法,其中,所述第一預定條目對應于在所述第二子陣列中被加上最高索引的條目。
14.如權利要求11所述的方法,其中,當已經達到存儲所述第二陣列所需要的存儲器大小時,滿足所述第一條件。
15.如權利要求11所述的方法,其中,當已經處理了在所述第一陣列中的所有系數時,滿足所述第一條件。
16.一種設備,包括生成第一組系數,用于在分組語音(VoP)系統中進行回波消除的邏輯,由第一多個位表示每個系數,該第一多個位包括表示相應系數的符號的第一部分和表示相應系數的幅值的第二部分;并且將所述第一組系數壓縮,以生成第二組系數的邏輯,第二組系數需要的記憶存儲器比第一組系數少,其中,在對較低值的系數編碼之前,先對較高值的系數編碼,直到滿足預定壓縮比或者直到已經對第一組中的所有系數進行了編碼為止。
17.如權利要求16所述的設備,還包括確定所述第一組系數需要的存儲器的邏輯;并且根據所述第一組需要的存儲器和預定壓縮比,設置所述第二組系數需要的存儲器的邏輯。
18.如權利要求16所述的設備,其中,用于壓縮所述第一組的邏輯包括循環地執行一組操作,直到滿足預定壓縮比或者直到已經對第一組中的所有系數進行了處理為止的邏輯,該組操作包括識別在所述第一組中的,那些相對于所述第一組中的其它系數值較高的系數的邏輯;對識別出的系數進行編碼的邏輯;并且給在所述第一組中的已經被編碼的系數加上標志,因此在后面的循環中不再對它們進行處理的邏輯。
19.如權利要求18所述的設備,其中,對識別出的系數進行編碼的邏輯用全精度對在所述第二系數組中的相應系數進行編碼的邏輯,所述第二系數組包括相應系數的相對位置。
20.一種回波消除器,包括接收第一回波消除系數陣列的邏輯,每個回波消除系數由第一多個位表示,該第一多個位包括表示相應系數的符號的第一部分和表示相應系數的幅值的第二部分;和對所述第一系數陣列進行壓縮操作,從而得到第二系數陣列的邏輯,該第二系數陣列需要的記憶存儲器比所述第一組系數少,其中,給所述第一陣列中的值相對于第一陣列中的其它系數較高的系數以較高的優先權,用于在第二陣列中進行編碼。
21.如權利要求20所述的回波消除器,其中,進行壓縮的邏輯包括根據所述第一陣列的大小和預定壓縮比,確定存儲第二陣列需要的存儲器的大小的邏輯。
22.如權利要求21所述的回波消除器,其中,所述所述第一陣列包括一個第一子陣列,用于容納相應系數的符號數據;以及一個第二子陣列,用于容納相應系數的幅值數據。
23.如權利要求22所述的回波消除器,其中,用于對所述第一陣列執行壓縮操作的邏輯包括循環地對所述第二子陣列進行一組操作,從所述第二子陣列中的第一預定條目的最高有效位(MSB)開始,直到滿足第一條件為止的邏輯,該組操作包括檢測在所述第二子陣列中的當前條目的當前位是否具有非零值的邏輯;如果當前位具有非零值,則對在所述第二陣列中的對應的系數進行編碼的邏輯;并且給在所述第二子陣列中的對應條目加上標志,因而不對再它進行處理的邏輯。
24.一種系統,包括一個回波消除器,被耦合為根據從一個或多個信道輸入的信號進行回波消除;一個總存儲器,包括多個動態存儲器塊,被所述回波消除器用于執行其對應的功能;以及一個存儲器控制器,與所述回波消除器和所述總存儲器耦合,該存儲器控制器在所述回波消除器與所述總存儲器之間進行數據傳輸,其中,所述回波消除器包括對所述第一系數陣列進行壓縮操作,從而得到第二系數陣列的邏輯,在所述總存儲器中,所述第二系數陣列需要的記憶存儲器比第一組系數少,其中,給第一陣列中的,值相對于第一陣列中的其它系數較高的系數以較高的優先權,用于在第二陣列中進行編碼。
25.如權利要求24所述的系統,其中,所述第一陣列包括一個第一子陣列,用于容納相應系數的符號數據;以及一個第二子陣列,用于容納相應系數的幅值數據。
26.如權利要求24所述的系統,其中,進行壓縮的邏輯包括根據所述第一陣列的大小和預定壓縮比,確定在所述總存儲器中存儲所述第二陣列需要的存儲器的大小的邏輯。
27.如權利要求25所述的系統,其中,對所述第一陣列進行壓縮操作的邏輯包括循環地對所述第二子陣列進行一組操作,從所述第二子陣列中的第一預定條目的最高有效位(MSB)開始,直到滿足第一條件為止的邏輯,該組操作包括檢測在所述第二子陣列中的當前條目的當前位是否具有非零值的邏輯;如果當前位具有非零值,則對在所述第二陣列中的對應的系數進行編碼;并且給在所述第二子陣列中的對應條目加上標志,因此不對它再次進行處理的邏輯。
28.一種機器可讀介質,包括這樣的指令,當機器執行這些指令時,使機器執行如下操作,包括生成第一組系數,用于在分組語音(VoP)系統中進行回波消除,由第一多個位表示每個系數,該第一多個位包括表示相應系數的符號的第一部分和表示相應系數的幅值的第二部分;并且將所述第一組系數壓縮,以生成第二組系數,該第二組系數需要的記憶存儲器比所述第一組系數少,其中,在對較低值的系數編碼之前,先對較高值的系數編碼,直到滿足了預定壓縮比或者直到已經對第一組中的所有系數進行了編碼為止。
29.如權利要求28所述的機器可讀介質,還包括確定所述第一組系數需要的存儲器;并且根據所述第一組需要的存儲器和預定壓縮比,設置所述第二組系數需要的存儲器。
30.如權利要求28所述的機器可讀介質,其中,壓縮所述第一組的步驟包括循環地執行一組操作,直到滿足預定了壓縮比或者直到已經對第一組中的所有系數進行了處理為止,該組操作包括識別在所述第一組中的,那些相對于所述第一組中的其它系數值較高的系數;對識別出的系數進行編碼;并且給在所述第一組中的已經被編碼的系數加上標志,因此在后面的循環中不再對它們進行處理。
全文摘要
按照本發明的一個實施例,提供了一種方法,其中,為了在分組語音(VoP)系統中進行回波消除,生成了第一組系數。由第一多個位表示每個系數,該第一多個位包括表示相應系數的符號的第一部分和表示相應系數的幅值的第二部分。將第一組系數壓縮,以生成第二組系數,第二組系數需要的記憶存儲器比第一組系數少,其中,在對較低值的系數進行編碼之前,先對較高值的系數進行編碼,直到滿足了預定壓縮比或者直到已經對第一組中的所有系數進行了編碼為止。
文檔編號H04B3/23GK1663141SQ03813900
公開日2005年8月31日 申請日期2003年6月12日 優先權日2002年6月14日
發明者A·烏巴爾 申請人:英特爾公司