具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一:
如图1-1所示,是本发明的实施例一对于一种无损压缩编码器的结构框图,图1-1所示的LPC阶数计算方框所对应的内部结构可以参考图2所示,是本实施例中LPC阶数计算模块的示意图,实施例一包括:
(1)选择最大预测阶数N,利用从1到N的各个预测除数,对线性空间的一帧的样点,进行LPC分析,分别得到对应的反射系数PARCOR coefficientsipar[0],……ipar[N-1];
最大预测阶数N是根据应用中的算法复杂度要求而设定的LPC预测阶数上限。如果要求低复杂度,就取小值,如N=8或N=12;如果允许高复杂度,就可以取大值,如N=16或N=20,N在实际运用中可以根据经验值确定。
(2)计算不同预测阶数下,量化后的反射系数的比特数costc[1],……costc[N];
(3)根据反射系数、帧长input_size(即一帧的样点数)和信号信息调整因子来计算每个预测阶数对应的反射系数能够压缩的比特数e[0],……,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
input_size | f1 | f2 |
40 | 0.45703125 | 0.001068115234375 |
80 | 0.4296875 | 0.008880615234375 |
160 | 0.3134765625 | 0.00933837890625 |
240 | 0.2373199462890625 | 0.016204833984375 |
320 | 0.2105560302734375 | 0.0159912109375 |
针对不同的应用,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[0],…,ipar[N-1],N为最大预测阶数;
(2)计算不同阶数下,量化后的反射系数的比特数costc[1],…,costc[N];
(3)根据反射系数和帧长input_size来计算每个预测阶数对应的LPC相关系数能够压缩的比特数e[0],…,e[N-1]
e[i]=log2(1-ipar[i]2)·f1
其中f1是一个与帧长input_size相关的信号信息调整因子,当input_size取不同数值时,f1取不同的数值,如下表2所示,是f1的取值。
表2
input_size | f1 |
40 | 18.281 |
80 | 34.375 |
160 | 50.156 |
240 | 56.957 |
320 | 67.378 |
针对不同的应用,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[0],…,ipar[N-1],N为最大预测阶数;
(2)计算不同预测阶数下,量化后的反射系数的比特数costc[1],…,costc[N];
(3)根据反射系数、帧长input_size、能量和信号信息调整因子来计算每个预测阶数对应的LPC相关系数能够压缩的比特数e[0],…,e[N-1]
e[i]=log2(1-(ipar[i]+f2)2)·input_size·f1
其中input_size是帧长;f2和f1都是信号信息调整因子,在本方案中,f2和f1与帧长能量相关。当能量取不同数值时,f2和f1也取不同数值。该能量可以是一帧信号的总能量,也可以是平均能量。以平均能量 为例,表3是一组可能的取值。
表3
Eavg | f1 | f2 |
0≤Eavg≤262144 | 0.51 | 0.002 |
262144≤Eavg≤1048576 | 0.43 | 0.007 |
1048576≤Eavg≤4194304 | 0.32 | 0.009 |
4194304≤Eavg≤16777216 | 0.25 | 0.015 |
16777216≤Eavg | 0.18 | 0.017 |
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[0],…,isf[N-1],N为最大预测阶数;
(2)计算不同阶数下,量化后的ISF系数的比特数costc[1],…,costc[N];
(3)根据ISF系数、帧长input_size和信号信息调整因子来计算每个预测阶数对应的LPC相关系数能够压缩的比特数e[0],…,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
input_size | f1 | f2 |
40 | 0.56 | 0.001 |
80 | 0.48 | 0.006 |
160 | 0.36 | 0.008 |
240 | 0.24 | 0.015 |
320 | 0.18 | 0.018 |
针对不同的应用,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是信号信息调整因子;
所述第三获取单元包括:第四获取模块,用于根据所述第一比特数和第二比特数,获取每个预测阶数下总共能压缩的第三比特数包括:
本发明的装置实施例具有与方法实施例相适应的技术效果,不再重复。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。