一种确定信号线性预测编码阶数的方法和装置的制作方法

文档序号:7921793阅读:156来源:国知局
专利名称:一种确定信号线性预测编码阶数的方法和装置的制作方法
技术领域
本发明涉及数字技术领域,特别是一种确定信号线性预测编码阶数的方法和装置。

背景技术
无损压缩能够节省信号传输和存储的带宽,可以无失真的重建信号,但由于信号间固有的信息熵,较难实现很大的编码效率,在实时传输的情况下,对复杂度的要求更高,从而也限制了编码效率。
目前大多数无损音频编解码都采用图1-1所示的方案。在编码端,通过LPC(Linear Predictive Coding,线性预测编码)来得到余量信号,对余量信号进行熵编码来实现音频压缩。在解码端,熵解码得到余量信号,余量信号经过预测器恢复无损重建信号。对于大多数音频信号,此方案能获得较高的压缩比。在编码过程中,可以采用不同的预测阶数,理论上预测阶数越高,越能去除数据间的相关性,降低数据的动态范围,压缩比通常也就越高。
使用上述方法,需要传输到解码端的参数有熵编码后的余量信号和量化后的LPC相关系数(如反射系数)。
一般来说,预测阶数越高,熵编码后的比特数Be越少,量化后的LPC预测系数占的比特数Bc越高。因此要取得最大的压缩效果,就是要令总比特数Btotal=Be+Bc最小。
但是要取得LPC阶数最优值,就要用不同的阶数(从0到N,N为最大的预测阶数)进行熵编码,然后比较不同阶数获得的压缩总比特数,从中选择最优的LPC阶数,复杂度会很高,无法实际应用。应此在实际应用中,需要一些低复杂度的计算方法,能够快速计算出较优的预测阶数,并取得较好的压缩效果。
发明人在实现本发明的过程中,发现现有技术中至少存在如下问题 现有的确定信号线性预测编码阶数的方法复杂度高,不适合于实时通信。


发明内容
有鉴于此,本发明一个或多个实施例的目的在于提供一种确定信号线性预测编码阶数的方法和装置,以实现降低选择LPC阶数的复杂度,使之更适合于实时通信。
为解决上述问题,本发明实施例提供了一种确定信号线性预测编码阶数的方法,包括 对于每个预测阶数,获取一帧信号量化后的LPC相关系数所需要的第一比特数; 根据所述LPC相关系数、帧长和信号信息调整因子,获取每个预测阶数对应的LPC相关系数能够压缩的第二比特数; 根据所述第一比特数和第二比特数,获取每个预测阶数下总共能压缩的第三比特数; 将所述第三比特数中数值最小的所对应的预测阶数,作为线性预测编码阶数。
还公开了一种确定信号线性预测编码阶数的装置,包括第一获取单元,用于对于每个预测阶数,获取一帧信号量化后的LPC相关系数所需要的第一比特数; 第二获取单元,用于根据所述LPC相关系数、帧长和信号信息调整因子,获取每个预测阶数对应的LPC相关系数能够压缩的第二比特数; 第三获取单元,用于根据所述第一比特数和第二比特数,获取每个预测阶数下总共能压缩的第三比特数; 确定单元,用于将所述第三比特数中数值最小的所对应的预测阶数,作为线性预测编码阶数。
与现有技术相比,本发明实施例具有以下优点 本发明的实施例通过对现有技术的阶数选择方法进行改进,通过精减计算过程,增加相关因子,提高了LPC阶数计算的准确度,提升了压缩率;而且在提升压缩率的情况下,增加的运算复杂度非常小,满足了实时通信的要求。



为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1所示,是现有技术中一种无损编码方案的框图; 图1-1所示,是本发明的实施例一的无损压缩解码器的框图; 图2所示,是本发明的实施例一的LPC阶数计算模块示意图; 图3所示,是本发明的实施例二的LPC阶数计算模块示意图; 图4所示,是本发明的实施例三的LPC阶数计算模块示意图; 图5所示,是本发明的实施例四的的无损压缩解码器的框图; 图6所示,是本发明的实施例四的LPC阶数计算模块示意图; 图7所示,是本发明的实施例五的方法流程图; 图8所示,是本发明的实施例六的结构框图。

具体实施例方式 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一 如图1-1所示,是本发明的实施例一对于一种无损压缩编码器的结构框图,图1-1所示的LPC阶数计算方框所对应的内部结构可以参考图2所示,是本实施例中LPC阶数计算模块的示意图,实施例一包括 (1)选择最大预测阶数N,利用从1到N的各个预测除数,对线性空间的一帧的样点,进行LPC分析,分别得到对应的反射系数PARCOR coefficientsipar
,......ipar[N-1]; 最大预测阶数N是根据应用中的算法复杂度要求而设定的LPC预测阶数上限。如果要求低复杂度,就取小值,如N=8或N=12;如果允许高复杂度,就可以取大值,如N=16或N=20,N在实际运用中可以根据经验值确定。
(2)计算不同预测阶数下,量化后的反射系数的比特数costc[1],......costc[N]; (3)根据反射系数、帧长input_size(即一帧的样点数)和信号信息调整因子来计算每个预测阶数对应的反射系数能够压缩的比特数e
,......,e[N-1]; e[i]=log2(1-(ipar[i]+f2)2)·input_size·f1 其中input_size是帧长,i=0,......N-1,f2和f1都是信号信息调整因子,在本方案中,f2和f1与帧长input_size相关。当帧长input_size取不同数值时,f2和f1也取不同数值。
信号信息调整因子即根据信号信息(如信号的帧长信息、能量信息等各种信息)对计算过程进行调整的因子。
如下表1所示,是本实施例所使用的一组取值。
表1 针对不同的应用,f2和f1的取值会不同,需要根据应用来进行调整。另外在本方案中,f2和f1是与帧长input_size相关联的。在应用中,还可以考虑将f2和f1与其他信号信息相关联,例如信号类型、过零率、能量等中的一种或多种。f2和f1是经验数据,获取方法可以通过选取大量的实验数据,用不同的数值的f2和f1代入程序进行测试,选取令压缩率最高的f2和f1的取值作为最终使用的数值。
(4)计算每个预测阶数下总共能压缩的比特数cost[1],......cost[N]; 总共能压缩的比特数即压缩后的总比特数减去压缩前的总比特数。
(5)选择使得cost[i]最小的i作为最终使用的LPC阶数,即最终获取的最优LPC阶数。LPC可以使用于语音频编解码(有损编解码、无损编解码)、语音增强等方面。
本发明的实施例一通过对现有技术进行改进,增加了两个与帧长相关的因子,提高了LPC阶数计算的准确度,提升了压缩率;而且在提升压缩率的情况下,增加的运算复杂度非常小,满足了实时通信的要求。
实施例二 在实际运用中,可以去除实施例一的f2参数,本实施例中所使用的参数的含义,如无特别说明,与实施例一相同。如图3所示,是本实施例二中LPC阶数计算模块的示意图,则处理步骤包括 (1)对线性空间的一帧的样点,用最大预测阶数进行LPC分析,得到反射系数(PARCOR coefficients)ipar
,...,ipar[N-1],N为最大预测阶数; (2)计算不同阶数下,量化后的反射系数的比特数costc[1],...,costc[N]; (3)根据反射系数和帧长input_size来计算每个预测阶数对应的LPC相关系数能够压缩的比特数e
,...,e[N-1] e[i]=log2(1-ipar[i]2)·f1 其中f1是一个与帧长input_size相关的信号信息调整因子,当input_size取不同数值时,f1取不同的数值,如下表2所示,是f1的取值。
表2 针对不同的应用,f1的取值会不同,需要根据应用来进行调整。另外在本方案中,f1是与帧长input_size相关联的。在应用中,还可以考虑将f1与其他信号信息相关联,例如信号类型、过零率、能量、编码模式等中的一种或多种。f1是经验数据,获取方法可以通过选取大量的实验数据,用不同的数值的f1代入程序进行测试,选取令压缩率最高的f1的取值作为最终使用的数值。
(4)计算不同阶数下总共能压缩的比特数cost[1],......cost[N]; (5)选择令cost[i]最小的i作为最终使用的LPC阶数。
本发明的实施例二通过对现有技术的阶数选择方法进行改进,增加了一个与帧长相关的因子,提高了LPC阶数计算的准确度,提升了压缩率;而且在提升压缩率的情况下,增加的运算复杂度非常小,满足了实时通信的要求。
实施例三 在实际应用中,还可以改变上述实施例中的信号信息调整因子的关联信息,将其由帧长改为能量,本实施例中所使用的参数的含义,如无特别说明,与实施例一相同。如图4所示,是本实施例三中LPC阶数计算模块的示意图,则处理步骤包括 (1)对线性空间的一帧的样点,用最大预测阶数进行LPC分析,得到反射系数(PARCOR coefficients)ipar
,...,ipar[N-1],N为最大预测阶数; (2)计算不同预测阶数下,量化后的反射系数的比特数costc[1],...,costc[N]; (3)根据反射系数、帧长input_size、能量和信号信息调整因子来计算每个预测阶数对应的LPC相关系数能够压缩的比特数e
,...,e[N-1] e[i]=log2(1-(ipar[i]+f2)2)·input_size·f1 其中input_size是帧长;f2和f1都是信号信息调整因子,在本方案中,f2和f1与帧长能量相关。当能量取不同数值时,f2和f1也取不同数值。该能量可以是一帧信号的总能量,也可以是平均能量。以平均能量

为例, 表3是一组可能的取值。
表3 f2和f1是经验数据,获取方法可以通过选取大量的实验数据,用不同的数值的f2和f1代入程序进行测试,选取令压缩率最高的f2和f1的取值作为最终使用的数值。
(4)计算不同阶数下总共能压缩的比特数cost[1],......cost[N]; (5)选择令cost[i]最小的i作为最终使用的LPC阶数。
本发明的实施例三通过对现有技术的阶数选择方法进行改进,改变上述实施例中的信号信息调整因子的关联信息,将其由帧长改为能量,同样能够提高LPC阶数计算的准确度和压缩率;而且在提升压缩率的情况下,增加的运算复杂度非常小,满足了实时通信的要求。
实施例四 在实际运用中,还可以将上述实施例中的反射系数替换为ISF(Immittance Spectral Frequency,导谱频率)系数、LPC预测系数或LSF(Linear Spectral Frequency,线谱频率)系数等其他LPC相关系数。以ISF系数为例,如图5所示,是本实施例的一种无损压缩编码器的结构框图,如图6所示,是本实施例四中LPC阶数计算模块的示意图,本实施例中所使用的参数的含义,如无特别说明,与实施例一相同。则处理过程包括 (1)对线性空间的一帧的样点,用最大预测阶数进行LPC分析,得到ISF系数isf
,...,isf[N-1],N为最大预测阶数; (2)计算不同阶数下,量化后的ISF系数的比特数costc[1],...,costc[N]; (3)根据ISF系数、帧长input_size和信号信息调整因子来计算每个预测阶数对应的LPC相关系数能够压缩的比特数e
,...,e[N-1] e[i]=log2(1-(isf[i]+f2)2)·input_size·f1 其中input_size是帧长;f2和f1都是信号信息调整因子,在本方案中,f2和f1与帧长input_size相关。当input_size取不同数值时,f2和f1也取不同数值,如表4所示,是一组可能的取值。
表4 针对不同的应用,f2和f1的取值会不同,需要根据应用来进行调整。另外在本方案中,f2和f1是与帧长input_size相关联的。在应用中,还可以考虑将f2和f1与其他信号信息相关联,例如信号类型、过零率、能量、编码模式等中的一种或多种。f2和f1是经验数据,获取方法可以通过选取大量的实验数据,用不同的数值的f2和f1代入程序进行测试,选取令压缩率最高的f2和f1的取值作为最终使用的数值。
(4)计算不同阶数下总共能压缩的比特数cost[1],......cost[N]; (5)选择令cost[i]最小的i作为最终使用的LPC阶数。
本发明的实施例四通过对现有技术的阶数选择方法进行改进,使用ISF系数来获得最终使用的LPC阶数,能够提高LPC阶数计算的准确度和压缩率;而且在提升压缩率的情况下,增加的运算复杂度非常小,满足了实时通信的要求。
实施例五 在上述实施例的基础,如图7所示,本发明的实施例五的选择LPC阶数的方法,包括 701、对于每个预测阶数,获取一帧信号量化后的LPC相关系数所需要的第一比特数;本步骤中处理对象是语音信号帧,分帧是语音音频编解码器常用的步骤,首先将语音信号的样点分为一定长度的帧,帧长即一帧包含的信号样点个数,如40,80,160,240,320等; 其中,所述LPC相关系数包括 反射系数、LPC预测系数、ISF系数或LSF系数。
702、根据所述LPC相关系数、帧长和信号信息调整因子,获取每个预测阶数对应的LPC相关系数能够压缩的第二比特数; 其中,所述信号信息调整因子包括 一个或多个与信号信息相关的调整因子,所述信号信息调整因子的数值随所述信号信息的数值变化而变化。因为不同的信号,其信号特性不同,分析时,需要有针对性的根据不同的信号信息,采用不同的调整因子,这样有助于获得更好的计算结果。
其中,所述信号信息包括 帧长、信号类型、过零率、能量或编码模式之一及其任意组合。
703、根据所述第一比特数和第二比特数,获取每个预测阶数下总共能压缩的第三比特数; 704、将所述第三比特数中数值最小的所对应的预测阶数,作为线性预测编码阶数。
利用本发明的实施例五,提高了LPC阶数计算的准确度和压缩率,能够在提升压缩率的情况下,增加的运算复杂度非常小,满足了实时通信的要求。
其中,所述LPC相关系数为反射系数,则所述第一比特数包括 costc[1],......costc[N]; 则根据所述反射系数、帧长和信号信息调整因子,获取每个预测阶数对应的反射系数能够压缩的第二比特数包括 e[i]=log2(1-(ipar[i]+f2)2)·input_size·f1; 其中,input_size是帧长,i=0,......N-1,N为预测阶数,f2和f1是信号信息调整因子; 根据所述第一比特数和第二比特数,获取每个预测阶数下总共能压缩的第三比特数包括 其中,所述LPC相关系数为ISF系数,则所述第一比特数包括 costc[1],......costc[N]; 则根据所述ISF系数、帧长和信号信息调整因子,获取每个预测阶数对应的ISF系数能够压缩的第二比特数包括 e[i]=log2(1-(isf[i]+f2)2)·input_size·f1; 其中,input_size是帧长,i=0,......N-1,N为预测阶数,f2和f1是信号信息调整因子; 根据所述第一比特数和第二比特数,获取每个预测阶数下总共能压缩的第三比特数包括 实施例六 如图8所示,是本发明的实施例六的选择LPC阶数的装置,包括 第一获取单元801,用于对于每个预测阶数,获取一帧信号量化后的LPC相关系数所需要的第一比特数; 其中,所述LPC相关系数包括 反射系数、LPC预测系数、ISF系数或LSF系数。
第二获取单元802,用于根据所述LPC相关系数、帧长和信号信息调整因子,获取每个预测阶数对应的LPC相关系数能够压缩的第二比特数; 其中,所述信号信息调整因子包括 一个或多个与信号信息相关的调整因子,所述信号信息调整因子的数值随所述信号信息的数值变化而变化。
其中,所述信号信息包括 帧长、信号类型、过零率、能量或编码模式之一及其任意组合。
第三获取单元803,用于根据所述第一比特数和第二比特数,获取每个预测阶数下总共能压缩的第三比特数; 确定单元804,用于将所述第三比特数中数值最小的所对应的预测阶数,作为线性预测编码阶数。
其中,所述LPC相关系数为反射系数,则所述第一比特数包括 costc[1],......costc[N]; 所述第二获取单元包括第一获取模块,用于根据所述反射系数、帧长和信号信息调整因子,获取每个预测阶数对应的反射系数能够压缩的第二比特数 e[i]=log2(1-(ipar[i]+f2)2)·input_size·f1; 其中,input_size是帧长,i=0,......N-1,N为预测阶数,f2和f1是信号信息调整因子; 所述第三获取单元包括第二获取模块,用于根据所述第一比特数和第二比特数,获取每个预测阶数下总共能压缩的第三比特数 其中,所述LPC相关系数为ISF系数,则所述第一比特数包括 costc[1],......costc[N]; 所述第二获取单元包括第三获取模块,用于根据所述ISF系数、帧长和信号信息调整因子,获取每个预测阶数对应的ISF系数能够压缩的第二比特数 e[i]=log2(1-(isf[i]+f2)2)·input_size·f1; 其中,input_size是帧长,i=0,......N-1,N为预测阶数,f2和f1是信号信息调整因子; 所述第三获取单元包括第四获取模块,用于根据所述第一比特数和第二比特数,获取每个预测阶数下总共能压缩的第三比特数包括 本发明的装置实施例具有与方法实施例相适应的技术效果,不再重复。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种确定信号线性预测编码阶数的方法,其特征在于,包括
对于每个预测阶数,获取一帧信号量化后的LPC相关系数所需要的第一比特数;
根据所述LPC相关系数、帧长和信号信息调整因子,获取每个预测阶数对应的LPC相关系数能够压缩的第二比特数;
根据所述第一比特数和第二比特数,获取每个预测阶数下总共能压缩的第三比特数;
将所述第三比特数中数值最小的所对应的预测阶数,作为线性预测编码阶数。
2.如权利要求1所述的方法,其特征在于,所述LPC相关系数包括
反射系数、LPC预测系数、ISF系数或LSF系数。
3.如权利要求1所述的方法,其特征在于,所述信号信息调整因子包括
一个或多个与信号信息相关的调整因子,所述信号信息调整因子的数值随所述信号信息的数值变化而变化。
4.如权利要求3所述的方法,其特征在于,所述信号信息包括
帧长、信号类型、过零率、能量或编码模式之一及其任意组合。
5.如权利要求1所述的方法,其特征在于,所述LPC相关系数为反射系数,则所述第一比特数包括
costc[1],……costc[N];
则根据所述反射系数、帧长和信号信息调整因子,获取每个预测阶数对应的反射系数能够压缩的第二比特数包括
e[i]=log2(1-(ipar[i]+f2)2)·input_size·f1;
其中,input_size是帧长,i=0,……N-1,N为预测阶数,f2和f1是信号信息调整因子;
根据所述第一比特数和第二比特数,获取每个预测阶数下总共能压缩的第三比特数包括
6.如权利要求1所述的方法,其特征在于,所述LPC相关系数为ISF系数,则所述第一比特数包括
costc[1],……costc[N];
则根据所述ISF系数、帧长和信号信息调整因子,获取每个预测阶数对应的ISF系数能够压缩的第二比特数包括
e[i]=log2(1-(isf[i]+f2)2)·input_size·f1;
其中,input_size是帧长,i=0,……N-1,N为预测阶数,f2和f1是信号信息调整因子;
根据所述第一比特数和第二比特数,获取每个预测阶数下总共能压缩的第三比特数包括
7.一种确定信号线性预测编码阶数的装置,其特征在于,包括
第一获取单元,用于对于每个预测阶数,获取一帧信号量化后的LPC相关系数所需要的第一比特数;
第二获取单元,用于根据所述LPC相关系数、帧长和信号信息调整因子,获取每个预测阶数对应的LPC相关系数能够压缩的第二比特数;
第三获取单元,用于根据所述第一比特数和第二比特数,获取每个预测阶数下总共能压缩的第三比特数;
确定单元,用于将所述第三比特数中数值最小的所对应的预测阶数,作为线性预测编码阶数。
8.如权利要求7所述的装置,其特征在于,所述LPC相关系数包括
反射系数、LPC预测系数、ISF系数或LSF系数。
9.如权利要求7所述的装置,其特征在于,所述信号信息调整因子包括
一个或多个与信号信息相关的调整因子,所述信号信息调整因子的数值随所述信号信息的数值变化而变化。
10.如权利要求9所述的装置,其特征在于,所述信号信息包括
帧长、信号类型、过零率、能量或编码模式之一及其任意组合。
11.如权利要求8所述的装置,其特征在于,所述LPC相关系数为反射系数,则所述第一比特数包括
costc[1],……costc[N];
所述第二获取单元包括第一获取模块,用于根据所述反射系数、帧长和信号信息调整因子,获取每个预测阶数对应的反射系数能够压缩的第二比特数
e[i]=log2(1-(ipar[i]+f2)2)·input_size·f1;
其中,input_size是帧长,i=0,……N-1,N为预测阶数,f2和f1是信号信息调整因子;
所述第三获取单元包括第二获取模块,用于根据所述第一比特数和第二比特数,获取每个预测阶数下总共能压缩的第三比特数
12.如权利要求8所述的装置,其特征在于,所述LPC相关系数为ISF系数,则所述第一比特数包括
costc[1],……costc[N];
所述第二获取单元包括第三获取模块,用于根据所述ISF系数、帧长和信号信息调整因子,获取每个预测阶数对应的ISF系数能够压缩的第二比特数
e[i]=log2(1-(isf[i]+f2)2)·input_size·f1;
其中,input_size是帧长,i=0,……N-1,N为预测阶数,f2和f1是信号信息调整因子;
所述第三获取单元包括第四获取模块,用于根据所述第一比特数和第二比特数,获取每个预测阶数下总共能压缩的第三比特数包括
全文摘要
本发明实施例公开了一种确定信号线性预测编码阶数的方法,包括对于每个预测阶数,获取一帧信号量化后的LPC相关系数所需要的第一比特数;根据所述LPC相关系数、帧长和信号信息调整因子,获取每个预测阶数对应的LPC相关系数能够压缩的第二比特数;根据所述第一比特数和第二比特数,获取每个预测阶数下总共能压缩的第三比特数;将所述第三比特数中数值最小的所对应的预测阶数,作为线性预测编码阶数。还公开了一种确定信号线性预测编码阶数的装置,本发明实施例降低了选择LPC阶数的复杂度,使之更适合于实时通信。
文档编号H04L1/00GK101741504SQ20081017840
公开日2010年6月16日 申请日期2008年11月24日 优先权日2008年11月24日
发明者许剑峰, 苗磊, 齐峰岩, 张清, 李立雄, 马付伟, 张德军 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1