用于减少回波消除器需要的存储器的方法、设备和系统的制作方法

文档序号:7857244阅读:188来源:国知局
专利名称:用于减少回波消除器需要的存储器的方法、设备和系统的制作方法
技术领域
本发明的实施例涉及信号处理和通信领域,更具体地说,涉及用于减少回波消除器需要的存储器并且提高收敛性能的方法、设备和系统。
背景技术
近年来,随着通信网络和协议,尤其是分组交换网络如因特网,的各种技术进步和提高,通信系统和服务不断迅速提高。相当大的兴趣已经集中在了分组语音(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·乌巴尔 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1