CN101609674B - 编解码方法、装置和系统 - Google Patents
编解码方法、装置和系统 Download PDFInfo
- Publication number
- CN101609674B CN101609674B CN2008101153545A CN200810115354A CN101609674B CN 101609674 B CN101609674 B CN 101609674B CN 2008101153545 A CN2008101153545 A CN 2008101153545A CN 200810115354 A CN200810115354 A CN 200810115354A CN 101609674 B CN101609674 B CN 101609674B
- Authority
- CN
- China
- Prior art keywords
- wave band
- code book
- average energy
- correspondence
- bit number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Abstract
本发明实施例公开了一种编解码方法、装置和系统。该方法主要包括:根据输入信号的波段的能量和各个码本的平均能量,给所述输入信号确定缩放因子,用该缩放因子对所述波段进行缩放,根据缩放后的波段的能量和各个码本的平均能量确定所述波段对应的码本;将所述波段的能量调整到所述波段对应的码本的平均能量,利用所述波段对应的码本对进行了能量调整后的所述波段进行量化。利用本发明,避免了因码本完全嵌套而造成编码效率较低的问题。
Description
技术领域
本发明涉及网络通信领域,尤其涉及一种编解码方法、装置和系统。
背景技术
现有的数字语音和音频信号的编码技术采用的是变换编码,变换编码的处理过程主要包括:将待编码的信号的一帧分成多个采样块,并用诸如离散傅立叶变换、离散余弦变换等线性正交变换对每帧求取变换系数,之后对一帧中的每个采样块进行量化。
在对采样块的量化过程中,将该采样块的多个采样系数组在一起形成一个源矢量(即需要进行量化的矢量),且以一个码本项对该源矢量进行量化。该码本项通常是根据距离准则得出的码本中最近的邻点。在码本项中增加更多的码矢会增加量化的比特率和复杂性,但会降低量化的平均失真。
在变换编码中,通常通过对信号进行变换并获取所有的变换系数或其子集来获得源矢量。为适应源矢量的不断变化特征,通过自适应比特分配原则,使用不同的码本尺寸来量化源矢量。
在现有技术中,对源矢量的量化过程采用球型矢量量化的方法,球型矢量量化是一种代数型的矢量量化,它的特点是在多维信号空间中,构造一种有规律的网络,把信号空间划分为胞腔,网络中的点称为格点,并以格点作为矢量量化的值。由于网络是有规律的,故格点和胞腔也是有规律的。
现有技术中的球型矢量量化方法的量化算法包括如下计算步骤:
1、波段划分。
将0-7kHz的一个帧的MDCT(Modified Discrete Cosine Transform,改进的离散余弦变换)信号频谱(280个样点)划分为18个波段,其中前17个波段为16维,最后一个波段为8维,分别对每个波段进行球型矢量量化。
2、频谱包络计算。
计算每个波段的频谱包络,频谱包络表征频谱中某波段的总体平均能量,可以看作是波段的能量信息的一种表示形式,并采用差分哈夫曼或直接二进制两种方式编码频谱包络,选择编码比特数最小的方式编码并写入码流。
3、波段比特数划分。
采用感知重要性作为波段比特数划分的依据,将各波段的感知重要性进行排序,并以此为依据给各波段分配比特数。
对于8维矢量量化和16维矢量量化,各存在若干码本,每个码本的编码比特数由下述表1所示:
表1:各维码本的编码比特数
维数 | 各码本编码比特数 |
8 | R8={0,7,10,12,13,14,15,16} |
16 | R16={0,9,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32} |
在给各波段分配比特数时,引入“水平值”λopt来进行分配,分配公式如下:
上述公式中的nbit(j)为第j个波段分配的比特数,Rnb_coef(j)如表(1)所示,其中nb_coef(j)=8或16nbits_VQ为最大的可用比特数。
分配时,首先初始化“水平值”λopt的上下限:
然后,λopt使用二分法在上下限中迭代查找10次,每次迭代查找后计算各波段所用比特数的公式如下:
计算总的编码比特数,根据总的编码比特数与nbits_VQ的比较结果,修改上下限,继续下一步迭代查找,直到迭代结束或是比特数分配完为止。
4、球型矢量量化。
球型矢量量化的过程中采用的码本是嵌套的,该嵌套的码本的如下:
上述Q为码本,其上标代表维数,下标代表对应的比特数。
在进行球型矢量量化时,首先确定每一个波段的码本,在每一个码本中,都存在若干码矢,码本中存储码矢的为绝对引导项,绝对引导项是一种降序排列的非负矢量,其通过各分量排列组合、改变符号可以表征一系列码矢。
然后,在选定的码本中搜索最适宜的码矢进行匹配,在码矢搜索时,首先将待量化矢量取绝对值,并保留符号信息,随后将其按降序排列,并与码本中的各码矢计算“点积”,选取“点积”最大对应的码矢为最佳码矢。
发明人在研究中发现,球型矢量量化的方法采用嵌套的码本,限制了码本空间的大小。该方法用“二分法”计算各波段所用比特数时,容易造成比特分配不准确,进而有可能造成选择错误的码本,从而降低量化性能。
发明内容
本发明实施例的目的是提供一种编解码方法、装置和系统,从而可以解决现有技术方案中限制了码本空间的大小、容易选择错误的码本的问题。
本发明实施例的目的是通过以下技术方案实现的:
一种编码方法,包括:
根据输入信号的波段的平均能量和各个码本的平均能量确定所述输入信号的缩放因子以对所述波段进行缩放;
根据缩放后的波段的平均能量和所述各个码本的平均能量确定所述波段对应的码本;
将所述缩放后的波段的平均能量调整到所述波段对应的码本的平均能量,利用所述波段对应的码本对调整后的所述波段进行量化编码。
一种解码方法,包括:
根据接收到的各个波段的频谱包络参数和频谱包络量化索引确定各个波段的平均能量,根据各个波段的平均能量和各个码本的平均能量确定各个波段对应的码本和比特数;
根据各个波段对应的比特数读取各个波段的比特流;
根据各个波段对应的码本和接收到的各个波段的码矢索引信息,利用所述各个波段的比特流恢复出各个波段的编码前的信号。
一种编码装置,包括:
码本分配模块,用于根据输入信号的波段的平均能量和各个码本的平均能量,给所述输入信号确定缩放因子,用该缩放因子对所述波段进行缩放,根据缩放后的波段的平均能量和各个码本的平均能量确定所述波段对应的码本;
量化处理模块,用于将所述波段的平均能量调整到所述波段对应的码本的平均能量,利用所述波段对应的码本对调整后的所述波段进行量化编码。
一种解码装置,包括:
码本分配模块,用于根据接收到的频谱包络参数和频谱包络量化索引计算出各个波段的平均能量,根据各个波段的平均能量和各个码本的平均能量确定各个波段对应的码本和比特数;
信号恢复模块,用于根据所述码本分配模块确定的各个波段对应的比特数依次读取各个波段的信号,利用所述码本分配模块确定的各个波段对应的码本和接收到的各个波段的码矢索引信息恢复出各个波段的编码前的信号。
一种编解码系统,包括:
编码端,用于根据输入信号的各个波段的平均能量和各个码本的平均能量,确定各个波段对应的码本,利用所述波段对应的码本对所述波段进行量化编码,将各个波段对应的频谱包络参数和频谱包络量化索引、码矢索引信息发送给解码端;
解码端,用于根据接收到的频谱包络参数和频谱包络量化索引计算出各波段对应的包络以确定各个波段的平均能量,根据各个波段的平均能量和各个码本的平均能量确定各个波段对应的码本和比特数,利用接收到的各个波段的码矢索引信息恢复出各个波段的编码前的信号。
由上述本发明实施例提供的技术方案可以看出,本发明实施例根据信号的能量和码本的平均能量计算缩放因子,利用缩放因子对信号进行缩放,再根据缩放后的信号的能量和码本的平均能量的关系,给输入信号的波段确定码本,从而避免了因码本完全嵌套而造成编码效率较低的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所述编码方法的处理流程图;
图2为本发明实施例图1中的步骤1-4的具体处理流程图;
图3为本发明实施例图1中的步骤1-5的具体处理流程图;
图4为本发明实施例图1中的步骤1-6的具体处理流程图;
图5为本发明实施例图1中的步骤1-7的具体处理流程图;
图6为本发明实施例所述编码装置的结构示意图;
图7为本发明实施例所述解码装置的结构示意图;
图8为本发明实施例所述编解码系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中,将输入信号的各个波段按照平均能量的大小从大到小排序,设定平均能量最大和最小的波段对应的码本,将平均能量最大的波段的能量除以该波段对应的码本的平均能量得到最大缩放因子,将平均能量最小的波段的能量除以该波段对应的码本的平均能量得到最小缩放因子;
将所述最大缩放因子作为初始缩放因子对输入信号的各个波段进行缩放,确定平均能量最接近所述缩放后的各个波段的平均能量的码本为各个波段对应的码本,将各个波段对应的码本的比特数进行相加所获得的总比特数和最大可用比特数进行比较;
如果比较结果为相等,则保存所述已确定的各个波段对应的码本和比特数信息;否则,根据所述最大缩放因子和最小缩放因子对所述初始缩放因子进行更新,利用更新后的缩放因子对输入信号的各个波段进行缩放,通过迭代运算重新确定各个波段对应的码本和比特数信息。
下面结合附图来详细描述本发明实施例,本发明实施例所述编码方法的处理流程如图1所示,包括如下步骤:
步骤1-1、获得全频带待量化的增强层MDCT域信号S。
在编码端,使用宽带语音编码器作为核心编码器,该核心编码器使用带宽扩展技术对7kHz以下的高频段信号进行编码。核心编码器对编码端接收到的待量化的原始信号进行编码处理得到合成信号,计算该合成信号与该原始信号的误差信号,将该误差信号变换到MDCT域作为原始信号的7kHz以下宽带核心层部分的待量化增强信号S1。同时,将上述原始信号的超高频部分(7-14kHz)变换到MDCT域作为原始信号的增强层超宽频部分待量化信号S2。
然后,将上述信号S1和信号S2合并成原始信号的全频带待量化的增强层MDCT域信号S,这可以保证全频带信息可以在解码端重建。
步骤1-2、将待量化的MDCT域信号S划分为若干波段,计算每个波段的频谱包络,并对包络进行编码以得到量化的频谱包络参数和频谱包络量化索引。
将上述全频带的待量化的MDCT域信号S的每一帧信号划分为若干频率波段,具体划分方法为:对输入的每一个帧的频谱信号(频谱样点总数目数通常为8的倍数),以16维数据或8维数据为一组划分为一个波段,计算每一波段的频谱包络,计算公式如下:
上述公式中的env(i)表示第i个频率波段的频谱包络,dim(i)表示该波段矢量维数,sb_boumd(i)表示第i个波段频谱样点在整帧样点中的起始位置。SMDCT(k)为频域信号,εenv为一个小值偏移,以保证log函数的操作数大于0。
在高频信号中,人耳对信号频谱能量的感知比对频谱精细结构的感知更为敏感。因而,需要对频谱包络进行编码,以保证量化编码后主观听力失真小。本实施例采用高精度的差分哈夫曼编码与低精度的二进制编码相结合的方法,对每个波段的频谱包络进行编码。可以使用一个比特位来表征采用的编码模式,比如,用0代表差分哈夫曼编码,用1代表直接二进制编码。在本发明的其它实施例中,差分哈夫曼编码与二进制编码也可以用其它方式来表征。
步骤1-3、分别设定各个码本对应的平均能量。
在对每个波段的包络进行编码的过程中,根据各波段的感知重要性的不同,为各波段分配不同的编码比特数,上述感知重要性由各波段的平均能量表征。
在本发明实施例中,选取基于Zn格的码本。进行球型量化的球矢量的维数可以为16维或8维,8维或16维的球矢量都对应若干个码本,每一个码本包含若干码矢。
通过训练的方法分别设定各个码本对应的平均能量。首先,确定在某一能量范围内Zn格的所有格点集合,作为初始码本,该能量范围即为初始码本对应的平均能量。然后提取大量的训练矢量对初始码本进行训练,将每个训练矢量归类到最合适的初始码本中,保存统计信息。最后,分析统计信息,删除匹配训练矢量较少的初始码本,对于有较多训练矢量匹配的码本,根据设定的码本量化比特数,保留其中训练矢量匹配较多的码矢,删除训练矢量匹配较少的矢量,组成最终码本,最终码本对应的能量即为码本的平均能量。
每个码本对应一个平均能量ener_cb和一个编码比特数bits_cb,各码本对应的平均能量ener_cb随码本号增加而递增,对应的bits_cb也随之递增。下述表2和表3分别给出了8维和16维的球矢量对应的码本号、平均能量和比特数之间的关系:
表2:8维的球矢量对应的码本号、平均能量和比特数
码本号 | 平均能量 | 比特数 |
0 | 0.125 | 4 |
1 | 0.25 | 7 |
2 | 0.375 | 9 |
4 | 0.625 | 11 |
5 | 0.75 | 12 |
6 | 0.875 | 13 |
9 | 1.25 | 14 |
11 | 1.5 | 15 |
14 | 1.875 | 16 |
18 | 2.375 | 17 |
25 | 3.25 | 18 |
30 | 3.875 | 19 |
38 | 4.875 | 20 |
表3:16维的球矢量对应的码本号、平均能量和比特数
码本号 | 平均能量 | 比特数 |
0 | 0.0625 | 5 |
1 | 0.125 | 9 |
2 | 0.1875 | 13 |
3 | 0.25 | 15 |
4 | 0.3125 | 18 |
5 | 0.375 | 19 |
6 | 0.4375 | 21 |
7 | 0.5 | 22 |
8 | 0.5625 | 23 |
9 | 0.625 | 24 |
10 | 0.6875 | 26 |
11 | 0.8125 | 27 |
12 | 0.875 | 28 |
13 | 1 | 29 |
14 | 1.0625 | 30 |
15 | 1.1875 | 31 |
16 | 1.3125 | 32 |
17 | 1.4375 | 33 |
18 | 1.625 | 34 |
19 | 1.8125 | 35 |
20 | 2 | 36 |
步骤1-4、根据频谱包络参数和频谱包络量化索引计算包络,根据包络计算各波段的平均能量,根据各波段的平均能量和码本的平均能量,采用迭代搜索、逐步优化的计算方法确定输入信号的缩放因子。
在本实施例中,输入信号的缩放因子包括最大缩放因子,最小缩放因子和初始缩放因子,并用缩放因子对各个波段进行缩放,根据缩放后的各个波段的平均能量和各个码本的平均能量确定各个波段对应的码本和比特数。
步骤1-5、利用确定的各波段对应的码本对各波段信号进行缩放,得到缩放后的信号,搜索缩放后的信号的最佳码矢并对码矢索引,对各波段信号进行量化编码。
步骤1-6、编码端将携带各波段信号对应的频谱包络参数和频谱包络量化索引、码矢索引等信息的编码码流采用码流截断的方法发送给解码端。
步骤1-7、解码端根据接收到的频谱包络参数和频谱包络量化索引、码矢索引等信息,以上述编码码流进行解码,恢复出编码前的输入信号。
图2为图1中步骤1-4的具体处理流程图,包括如下步骤:
步骤21,根据频谱包络参数和频谱包络量化索引计算包络,根据包络计算各波段的平均能量。
根据对包络进行编码后得到的频谱包络参数和频谱包络量化索引计算出相应的包络,再计算出该包络对应的波段的平均能量mean_ener,该平均能量将作为给波段分配比特数的依据。
步骤22,将各波段的平均能量按能量由大到小排序。
在给波段分配比特数之前,首先对波段的平均能量按从大到小排序。原则上平均能量大的信号对应较大的ener_cb,需要分配较多的编码比特数,各波段的比特分配采用迭代搜索,逐步优化的分配方案,最终达到最佳的比特分配。
步骤23、确定最大缩放因子、最小缩放因子和初始缩放因子。
初始选择所有码本中能量从小至大的前1/3位置的码本对应的码本能量ener_cb作为平均能量最大波段的缩放目标,计算出缩放因子,该缩放因子作为当前帧的最大缩放因子max_s_fac,具体计算公式为:
max_s_fac=max_ener/ener_cb;
ener_cb为码本平均能量从小至大的前1/3位置的码本的平均能量值,max_ener为平均能量最大的输入信号的波段的平均能量。
同时,选择所有码本中,最大的码本能量ener_max作为平均能量最小的输入信号波段的缩放目标,计算缩放因子,该缩放因子作为当前帧的最小缩放因子mm_s_fac,具体计算公式为:
min_s_fac=min_ener/ener_max;
min_ener平均能量最小的输入信号的波段的平均能量。
将上述最大缩放因子作为初始缩放因子,即初始缩放因子s_fac=max_s_fac。
步骤24、用初始缩放因子对各个波段进行缩放,根据缩放后的各个波段的平均能量和各个码本的平均能量确定各个波段对应的码本和比特数。
对当前帧所有的波段使用s_fac进行缩放。然后,计算出缩放后的波段的平均能量值,根据该平均能量值选取一个最接近的ener_cb,并确定对应的码本号和bits_cb。最后,将各波段对应的bits_cb求和,得到总的编码比特数total_bits。
设定一个最大的可用比特数max_bits,该max_bits是一个常数,只与设定的编码码率相关。
步骤25、将各个波段对应的码本的比特数进行相加所获得的总比特数和最大可用比特数进行比较。
将上述total_bits和max_bits进行比较,如果比较结果为相等,则执行步骤27;如果比较结果为不相等,则执行步骤26。
步骤26、根据最大缩放因子和最小缩放因子对初始缩放因子进行更新,利用更新后的缩放因子对各个波段进行缩放,通过跌代计算重新确定各个波段对应的码本和比特数。具体为:
1、若total_bits小于max_bits,则保存各波段的编码比特数分配方案,同时更新缩放因子如下:
max_s_fac=s_fac-1
若发现max_s_fac<min_s_fac,则执行步骤27;否则,利用更新后的s_fac,继续进行上述各个波段缩放,进行下一次迭代计算,重新确定各个波段的码本号和bits_cb的处理过程。然后,执行步骤25。
2、若total_bits大于max_bits,则更新缩放因子如下:
min_s_fac=s_fac+1
若发现max_s_fac<min_s_fac,则执行步骤27,否则,利用更新后的s_fac,继续进行上述各个波段缩放,进行下一次迭代计算,重新确定各个波段的码本号和bits_cb。然后,执行步骤25。在步骤25中,若迭代了规定的次数(比如10次)之后,当前保存的编码比特数分配方案中,total_bits仍然小于max_bits。则从平均能量最大的波段开始,每个波段提升一级对应的ener_cb,执行步骤27。
步骤27、保存各个波段对应的码本和比特数信息,分配剩余比特数。
保存当前的编码比特数分配方案中的各波段对应的码本和比特数信息。
若超过迭代设定的次数后,还存在剩余的可用比特数,则将剩余的可用比特数分配到各个波段中,并且平均能量大的波段优先分配,每个波段分配的比特数不超过最大码本的比特数。
图3为图1中步骤1-5的具体处理流程图,包括如下步骤:
步骤31,对各波段信号的平均能量进行缩放,得到缩放信号。
确定了各波段对应的码本后,将各波段的平均能量缩放到相应码本对应的ener_cb,得到缩放信号Sscale。
步骤32、利用确定的各波段对应的码本来量化各波段的缩放信号,搜索缩放信号的最佳码矢并对码矢索引,对各波段信号进行量化编码。
本实施例中,采用Zn格作为球型矢量量化的格点,各波段矢量维数可能为16或8。
然后,利用选定的波段对应的码本来量化该波段的缩放信号Sscale,量化分为两个步骤进行,搜索最佳码矢和对码矢索引,其中,搜索最佳码矢的具体处理过程如下:
在球型矢量量化码本中存储了绝对引导项,绝对引导项是一种其各分量的值非负、并且由大到小排列的球矢量。在码本中,每个绝对引导项可以生成一系列的码矢量。搜索最佳码矢的过程就是搜索最佳绝对引导项的过程。
首先对待量化的缩放信号Sscale取绝对值,并进行重排序,得到有序绝对值矢量即目标矢量Ssort(j),同时,保存原始的排序顺序和符号信息。
在搜索最佳码矢的过程中,采用相关性corr作为码矢匹配度的量度,相关性corr的计算公式如下:
在整个码本中找出相关度最大的值对应的绝对引导项leader,该绝对引导项即为有序绝对值球矢量Ssort,i(j)对应的最佳绝对引导项。
然后,计算待量化的球矢量y的码矢索引,码矢索引包括上述的最佳绝对引导项信息,以及排列顺序和符号信息。
在编码中,码矢索引采用如下复合形式:
index(y)=offset(leader)+rank(y|leader)×2nb_sign(x)+sign_bits(y)
其中,offset(leader)表示码本中绝对引导项对应的偏移量,rank(y|leader)表示从leader变换到y的排列方式,nb_sign(y)表示绝对引导项中非零值的数目,即表示符号信息所使用的比特数,sign_bits(y)表示符号信息。
图4为图1中步骤1-6中的具体处理流程图,包括如下步骤:
步骤41、编码端根据各波段信号对应的频谱包络参数和频谱包络量化索引、码矢索引等信息组成编码码流。
编码端将各波段信号对应的频谱包络参数和频谱包络量化索引、码矢索引信息,以及上述对各波段的缩放信号进行重排序产生的有序绝对值矢量的原始排序顺序和符号信息,设置在编码码流中,组成编码码流。
步骤42、编码端采用码流截断的方法将上述编码码流发送给解码端。
编码端在组成了上述编码码流后,采用码流截断的方法将上述编码码流发送给解码端。该码流截断的具体处理过程如下:
将各波段信号按能量从大到小排列,发送开始时,初始化已用比特数为0。在需要发送下一个波段信号的编码码流前,判断当前可用总比特数是否大于上述下一个波段信号的编码码流的比特数,如果是,则增加上述下一个波段信号的编码码流的比特数并发送给解码端,同时将已用比特数增加上述下一个波段信号的编码码流的比特数;否则,用剩余比特数填充当前可用总比特数。
继续进行上述判断当前可用总比特数是否大于上述下一个波段信号的编码码流的比特数等操作,重复进行上述操作,直到将所有波段信号的编码码流发送给解码端。
图5为图1中步骤1-7中的具体处理流程图,包括如下步骤:
步骤51、解码端计算出各个波段对应的码本和比特数。
解码端接收到上述编码端发送的编码码流后,获取其中携带的各波段信号对应的频谱包络参数和频谱包络量化索引、码矢索引信息,以及上述有序绝对值矢量的原始排序顺序和符号信息。
解码端首先根据上述频谱包络参数和频谱包络量化索引计算出各波段对应的包络,按照上述图2所示的编码端进行的处理步骤,计算出各个波段对应的码本和比特数,以及各个波段的最终的缩放因子。
步骤52、解码端读取各个波段的比特数。
解码端判断当前可用比特是否大于下一波段的比特数,如果是,则读入下一个波段的比特流,并修改可用比特。
如果当前可用比特不是大于下一波段的比特数,则丢弃当前剩余比特。继续判断下一个当前可用比特是否大于下一波段的比特数,直到当前可用比特大于下一波段的比特数,并读入下一个波段的比特流。
解码端按照上述处理过程,依次读取各个波段的比特数。
步骤53、解码端恢复出各波段对应的信号,得到编码前的输入信号。
解码端读取了一个波段的比特数后,根据计算出的该波段对应的码本,以及接收到的该波段信号对应的码矢索引信息,得到该波段信号的绝对引导项。根据该绝对引导项,以及接收到的上述有序绝对值矢量的原始排序顺序和符号信息,恢复该波段信号对应的量化编码后的缩放信号。
解码端根据计算出的该波段的最终的缩放因子,对上述缩放信号进行逆缩放,得到重建的该波段对应的信号。
解码端按照上述处理过程,依次重建各个波段对应的信号,得到编码前的输入信号。
本发明实施例所述编码装置的结构示意图如图6所示,包括码本能量设定模块61、码本分配模块62、量化处理模块63和剩余比特分配模块64。
在本实施例中,码本能量设定模块61用于分别设定各个码本对应的平均能量。
码本分配模块62用于根据输入信号的波段的平均能量和各个码本的平均能量,给所述输入信号确定缩放因子,用该缩放因子对所述波段进行缩放,根据缩放后的波段的平均能量和各个码本的平均能量确定所述波段对应的码本。码本分配模块62包括初始缩放因子确定模块621和计算处理模块622。
量化处理模块63用于将所述波段的平均能量调整到所述波段对应的码本的平均能量,利用所述波段对应的码本对调整后的所述波段进行量化。
上述码本分配模块62中的初始缩放因子确定模块621用于将输入信号的各个波段按照平均能量的大小从大到小排序,设定平均能量最大和最小的波段对应的码本,将平均能量最大的波段的能量除以该波段对应的码本的平均能量再开方得到最大缩放因子,将平均能量最小的波段的平均能量除以该波段对应的码本的平均能量再开方得到最小缩放因子;
上述码本分配模块62中的计算处理模块622用于将将所述最大缩放因子作为初始缩放因子对输入信号的各个波段进行缩放,确定平均能量最接近所述缩放后的各个波段的平均能量的码本为各个波段对应的码本,将各个波段对应的码本的比特数进行相加所获得的总比特数和最大可用比特数进行比较;
如果比较结果为相等,则保存所述已确定的各个波段对应的码本和比特数信息;否则,根据所述最大缩放因子和最小缩放因子对所述初始缩放因子进行更新,利用更新后的缩放因子对输入信号的各个波段进行缩放,重新确定各个波段对应的码本和比特数信息。计算处理模块622包括缩放因子更新模块6221和迭代计算模块6222。
上述计算处理模块622中的缩放因子更新模块6221用于当所述总比特数小于所述最大可用比特数时,则更新后的最大缩放因子=最大缩放因子-1,如果更新后的最大缩放因子小于最小缩放因子,则保存所述已确定的各个波段对应的码本和比特数信息;否则,
上述计算处理模块622中的迭代计算模块6222用于利用更新后的缩放因子对输入信号的各个波段进行缩放,重新确定各个波段对应的码本和比特数信息,将重新获取的总比特数和最大可用比特数进行比较,如果比较结果为相等,则保存重新确定的各个波段对应的码本和比特数信息;否则,继续迭代计算各个波段对应的码本和比特数信息,直到达到设定的迭代次数,保存最后确定的各个波段对应的码本和比特数信息。
剩余比特分配模块64用于当迭代计算模块6222超过设定的迭代次数时,将剩余的可用比特数分配到各个波段中,并且能量大的波段优先分配,每个波段分配的比特数不超过最大码本的比特数。
本发明实施例所述解码装置的结构示意图如图7所示,包括码本分配模块71及信号恢复模块72。
在本实施例中,码本分配模块71用于根据接收到的频谱包络参数和频谱包络量化索引计算出各个波段的平均能量,根据各个波段的平均能量和各个码本的平均能量确定各个波段对应的码本和比特数。码本分配模块71包括缩放因子确定模块711和码本确定模块712。
信号恢复模块72用于根据所述码本分配模块计算出的各个波段对应的比特数依次读取各个波段的信号,利用所述码本分配模块计算出的各个波段对应的码本和接收到的各个波段的码矢索引信息恢复出各个波段的编码前的信号。信号恢复模块72包括比特数读取模块721和信号重建模块722。
所述码本分配模块71中的缩放因子确定模块711,用于根据接收到的各个波段的频谱包络参数和频谱包络量化索引计算出各个波段的包络,进而计算出各个波段的平均能量;根据各个波段的平均能量和各个码本的平均能量确定各个波段的缩放因子;
所述码本分配模块71中的码本确定模块712用于利用所述缩放因子确定模块确定的各个波段的缩放因子对各个波段进行缩放,根据缩放后的各个波段的平均能量和所述各个码本的平均能量确定各个波段对应的码本和比特数。
所述信号恢复模块72中的比特数读取模块721用于根据各个波段对应的比特数依次读取各个波段的比特流;
所述信号恢复模块72中的信号重建模块722用于读取各个波段的比特数后,根据计算出的各个波段对应的码本,以及接收到的各个波段对应的码矢索引信息,恢复出各个波段的量化编码后的缩放信号,根据各个波段的缩放因子,对所述各个波段的量化编码后的缩放信号进行逆缩放,重建出各个波段的编码前的信号。
本发明实施例所述编解码系统的结构示意图如图8所示,包括编码端81及解码端82。
在本实施例中,编码端81用于根据输入信号的各个波段的平均能量和各个码本的平均能量,确定各个波段对应的码本和比特数,利用所述波段对应的码本对所述波段进行量化编码,将各个波段对应的频谱包络参数和频谱包络量化索引、码矢索引信息发送给解码端82。编码端81包括码本分配模块811、量化处理模块812和码本能量设定模块813。
解码端82用于根据接收到的频谱包络参数和频谱包络量化索引计算出各波段对应的包络以确定各个波段的平均能量,根据各个波段的平均能量和各个码本的平均能量确定各个波段对应的码本和比特数,利用接收到的各个波段的码矢索引信息恢复出各个波段的编码前的信号。解码端82包括码本分配模块821和信号恢复模块822。
所述编码端81中的码本分配模块811用于根据输入信号的波段的平均能量和各个码本的平均能量,给所述输入信号确定缩放因子,用该缩放因子对所述波段进行缩放,根据缩放后的波段的平均能量和各个码本的平均能量确定所述波段对应的码本和比特数;
所述编码端81中的量化处理模块812用于将所述波段的平均能量调整到所述波段对应的码本的平均能量,利用所述波段对应的码本对进行了能量调整后的所述波段进行量化编码,获取各个波段的码矢索引信息。
所述编码端81中的码本能量设定模块813用于分别设定各个码本对应的平均能量。
所述解码端82中的码本分配模块821用于根据接收到的频谱包络参数和频谱包络量化索引计算出各波段对应的包络以确定各个波段的平均能量,根据各个波段的平均能量和各个码本的平均能量确定各个波段对应的码本和比特数。
所述解码端82中的信号恢复模块822用于根据所述码本分配模块821计算出的各个波段对应的比特数依次读取各个波段的信号,利用所述码本分配模块821计算出的各个波段对应的码本和接收到的各个波段的码矢索引信息恢复出各个波段的编码前的信号。
上述本发明实施例所述方法、装置和系统能够应用于各种变速率编码系统和可分级编码系统,比如,可以应用于超宽带语音频信号编解码处理过程中对输入信号的频谱进行量化。
综上所述,本发明实施例根据信号的能量和码本的平均能量计算缩放因子,利用缩放因子对信号进行缩放,再根据缩放后的信号的能量和码本的平均能量的关系,给输入信号的波段确定码本。从而避免了因码本完全嵌套而造成编码效率较低的问题。
本发明实施例考虑到人耳对高频能量信息更为敏感的特性,使用较多比特编码高能量的包络,从而可以保证量化编码后主观听力失真小。
本发明实施例以波段的能量为基准分配比特数,降低感知重要波段量化失真。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (16)
1.一种编码方法,其特征在于,包括:
将输入语音信号的各个波段按照平均能量的大小从大到小排序,设定平均能量最大和最小的波段对应的码本,将平均能量最大的波段的平均能量除以所述平均能量最大的波段对应的码本的平均能量得到最大缩放因子,将平均能量最小的波段的平均能量除以所述平均能量最小的波段对应的码本的平均能量得到最小缩放因子,利用所述最大缩放因子和最小缩放因子对所述各个波段进行缩放;
根据缩放后的所述各个波段的平均能量和各个码本的平均能量确定所述各个波段对应的码本;
将所述各个波段的平均能量调整到所述各个波段对应的码本的平均能量,利用所述各个波段对应的码本对调整后的所述各个波段进行量化编码。
2.根据权利要求1所述的方法,其特征在于,所述的方法之前还包括:
通过训练的方法分别设定各个码本对应的平均能量。
3.根据权利要求1所述的方法,其特征在于,所述的设定平均能量最大和最小的波段对应的码本的步骤包括:
设定所有码本中平均能量从小至大的前1/3位置的码本作为平均能量最大的波段对应的码本,设定所有码本中平均能量最大的码本作为平均能量最小的波段对应的码本。
4.根据权利要求1所述的方法,其特征在于,所述的根据缩放后的波段的能量和各个码本的平均能量确定所述波段对应的码本的步骤包括:
将所述最大缩放因子作为初始缩放因子对输入信号的各个波段进行缩放,确定平均能量最接近所述缩放后的各个波段的平均能量的码本为各个波段对应的码本;
将各个波段对应的码本的比特数进行相加所获得的总比特数和最大可用 比特数进行比较;
如果比较结果为相等,则保存所述已确定的各个波段对应的码本和比特数;否则,根据所述最大缩放因子和最小缩放因子对所述初始缩放因子进行更新,利用更新后的缩放因子对输入信号的各个波段进行缩放,重新确定各个波段对应的码本和比特数。
5.根据权利要求4所述的方法,其特征在于,所述的根据所述最大缩放因子和最小缩放因子对所述初始缩放因子进行更新,利用更新后的缩放因子对输入信号的各个波段进行缩放,重新确定各个波段对应的码本和比特数的步骤包括:
利用更新后的缩放因子对输入信号的各个波段进行缩放,重新确定各个波段对应的码本和比特数,将重新获取的总比特数和最大可用比特数进行比较,如果比较结果为相等,则保存重新确定的各个波段对应的码本和比特数;否则,继续迭代计算各个波段对应的码本和比特数信息,直到达到设定的迭代次数,保存最后确定的各个波段对应的码本和比特数。
6.根据权利要求5所述的方法,其特征在于,所述的根据缩放后的波段的平均能量和各个码本的平均能量确定所述波段对应的码本和比特数的步骤还包括:
当超过设定的迭代次数时,将剩余的可用比特数分配到各个波段中,并且平均能量大的波段优先分配,每个波段分配的比特数不超过最大码本的比特数。
7.根据权利要求1所述的方法,其特征在于,所述的码本为基于Zn格的码本。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述的将所述缩放后的波段的平均能量调整到所述波段对应的码本的平均能量,利用所述波段对应的码本对所述调整后的所述波段进行量化编码,具体包括:
将所述输入语音信号的各个波段的平均能量调整到各个波段对应的码本的平均能量,得到缩放后的各个波段,利用相关性匹配的方法在各个波段对应的码本中搜索缩放后的各个波段的最佳码矢,并对该最佳码矢进行索引。
9.一种解码方法,其特征在于,包括:
根据接收到的语音信号的各个波段的频谱包络参数和频谱包络量化索引计算出各个波段的包络,进而计算出所述各个波段的平均能量,根据所述各个波段的平均能量和各个码本的平均能量确定各个波段的缩放因子以对所述各个波段进行缩放,根据缩放后的各个波段的平均能量和所述各个码本的平均能量确定各个波段对应的码本和比特数;
根据所述各个波段对应的比特数读取各个波段的比特流;
读取所述各个波段的比特数后,根据所述各个波段对应的码本,以及所述接收到的各个波段的码矢索引信息,恢复出各个波段的量化编码后的缩放信号,根据计算出的各个波段的缩放因子,对所述各个波段的量化编码后的缩放信号进行逆缩放,得到重建的各个波段的编码前的信号。
10.一种编码装置,其特征在于,包括:
码本分配模块,用于根据输入语音信号的各个波段的平均能量和各个码本的平均能量,给所述输入语音信号确定缩放因子,用该缩放因子对所述各个波段进行缩放,根据缩放后的各个波段的平均能量和各个码本的平均能量确定所述各个波段对应的码本;
量化处理模块,用于将所述各个波段的平均能量调整到所述各个波段对应的码本的平均能量,利用所述各个波段对应的码本对调整后的所述各个波段进行量化编码;
所述码本分配模块包括:
初始缩放因子确定模块,用于将输入语音信号的各个波段按照平均能量的大小从大到小排序,设定平均能量最大和最小的波段对应的码本,将平均能量最大的波段的平均能量除以该波段对应的码本的平均能量再开方得到最大缩放因子,将平均能量最小的波段的平均能量除以该波段对应的码本的平均能量再开方得到最小缩放因子;
计算处理模块,用于将所述最大缩放因子作为初始缩放因子对输入语音信号的各个波段进行缩放,确定平均能量最接近所述缩放后的各个波段的平均能量的码本为各个波段对应的码本,将各个波段对应的码本的比特数进行相加所获得的总比特数和最大可用比特数进行比较,如果比较结果为相等,则保存所述已确定的各个波段对应的码本和比特数信息;否则,通过迭代计算重新确定各个波段对应的码本和比特数信息。
11.根据权利要求10所述的编码装置,其特征在于,所述装置还包括:
码本能量设定模块,用于分别设定各个码本对应的平均能量。
12.根据权利要求11所述的编码装置,其特征在于,所述计算处理模块包括:
缩放因子更新模块,用于当所述总比特数小于所述最大可用比特数时,则更新后的最大缩放因子=最大缩放因子-1,如果更新后的最大缩放因子小于最小缩放因子,则保存所述已确定的各个波段对应的码本和比特数信息;否则,
迭代计算模块,用于利用更新后的缩放因子对输入语音信号的各个波段进行缩放,重新确定各个波段对应的码本和比特数信息,将重新获取的总比特数和最大可用比特数进行比较,如果比较结果为相等,则保存重新确定的各个波段对应的码本和比特数信息;否则,继续迭代计算各个波段对应的码本和比特数信息,直到达到设定的迭代次数,保存最后确定的各个波段对应的码本和比特数信息。
13.根据权利要求12所述的编码装置,其特征在于,所述装置还包括:
剩余比特分配模块,用于当所述迭代计算模块的迭代计算次数超过设定的迭代次数时,将剩余的可用比特数分配到各个波段中,并且平均能量大的波段优先分配,每个波段分配的比特数不超过最大码本的比特数。
14.一种解码装置,其特征在于,包括:
码本分配模块,用于根据接收到的频谱包络参数和频谱包络量化索引计算出输入语音信号的各个波段的平均能量,根据所述各个波段的平均能量和各个码本的平均能量确定所述各个波段对应的码本和比特数;
信号恢复模块,用于根据所述码本分配模块确定的各个波段对应的比特数依次读取所述各个波段的信号,利用所述码本分配模块确定的各个波段对应的码本和接收到的所述各个波段的码矢索引信息恢复出所述各个波段的编码前的语音信号;
所述码本分配模块包括:
缩放因子确定模块,用于根据接收到的所述各个波段的频谱包络参数和频谱包络量化索引计算出所述各个波段的包络,进而计算出所述各个波段的平均能量;根据所述各个波段的平均能量和所述各个码本的平均能量确定所述各个波段的缩放因子;
码本确定模块,用于利用所述缩放因子确定模块确定的所述各个波段的缩放因子对各个波段进行缩放,根据缩放后的所述各个波段的平均能量和所述各个码本的平均能量确定所述各个波段对应的码本和比特数;
所述信号恢复模块包括:
比特数读取模块,用于根据所述各个波段对应的比特数依次读取所述各个波段的比特流;
信号重建模块,用于读取所述各个波段的比特数后,根据所述各个波段对应的码本,以及所述接收到的各个波段对应的码矢索引信息,恢复出所述各个波段的量化编码后的缩放信号,根据所述各个波段的缩放因子,对所述各个波段的量化编码后的缩放信号进行逆缩放,重建出所述各个波段的编码 前的语音信号。
15.一种编解码系统,其特征在于,包括:
编码端,用于根据输入语言信号的各个波段的平均能量和各个码本的平均能量,确定所述各个波段对应的码本,利用所述各个波段对应的码本对所述各个波段进行量化编码,将所述各个波段对应的频谱包络参数和频谱包络量化索引、码矢索引信息发送给解码端;
解码端,用于根据接收到的频谱包络参数和频谱包络量化索引计算出所述各波段对应的包络以确定所述各个波段的平均能量,根据所述各个波段的平均能量和各个码本的平均能量确定所述各个波段对应的码本和比特数,利用接收到的所述各个波段的码矢索引信息恢复出各个波段的编码前的语音信号;
所述编码端具体包括:
码本分配模块,用于根据输入语音信号的所述波段的平均能量和各个码本的平均能量,给所述输入语音信号确定缩放因子,用该缩放因子对所述波段进行缩放,根据缩放后的所述各个波段的平均能量和各个码本的平均能量确定所述各个波段对应的码本和比特数;
量化处理模块,用于将所述各个波段的平均能量调整到所述各个波段对应的码本的平均能量,利用所述各个波段对应的码本对调整后的所述各个波段进行量化编码,获取所述各个波段的码矢索引信息;
所述解码端具体包括:
码本分配模块,用于根据接收到的频谱包络参数和频谱包络量化索引计算出所述各个波段对应的包络以确定所述各个波段的平均能量,根据所述各个波段的平均能量和各个码本的平均能量确定所述各个波段对应的码本和比特数;
信号恢复模块,用于根据所述码本分配模块确定的所述各个波段对应的比特数依次读取所述各个波段的语音信号,利用所述码本分配模块确定的所 述各个波段对应的码本和接收到的所述各个波段的码矢索引信息恢复出所述各个波段的编码前的语音信号。
16.根据权利要求15所述的编解码系统,其特征在于,所述编码端还包括:
码本能量设定模块,用于分别设定各个码本对应的平均能量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101153545A CN101609674B (zh) | 2008-06-20 | 2008-06-20 | 编解码方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101153545A CN101609674B (zh) | 2008-06-20 | 2008-06-20 | 编解码方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101609674A CN101609674A (zh) | 2009-12-23 |
CN101609674B true CN101609674B (zh) | 2011-12-28 |
Family
ID=41483399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101153545A Expired - Fee Related CN101609674B (zh) | 2008-06-20 | 2008-06-20 | 编解码方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101609674B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800050B (zh) * | 2010-02-03 | 2012-10-10 | 武汉大学 | 基于感知自适应比特分配的音频精细分级编码方法及系统 |
RU2553084C2 (ru) * | 2010-10-07 | 2015-06-10 | Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. | Устройство и способ для оценки уровня кодированных аудио кадров в области битового потока |
CN103269429B (zh) * | 2012-11-01 | 2016-05-25 | 重庆邮电大学 | 一种超光谱信号快速矢量量化编码方法 |
US10410645B2 (en) | 2014-03-03 | 2019-09-10 | Samsung Electronics Co., Ltd. | Method and apparatus for high frequency decoding for bandwidth extension |
KR102400016B1 (ko) | 2014-03-24 | 2022-05-19 | 삼성전자주식회사 | 고대역 부호화방법 및 장치와 고대역 복호화 방법 및 장치 |
CN106023999B (zh) * | 2016-07-11 | 2019-06-11 | 武汉大学 | 用于提高三维音频空间参数压缩率的编解码方法及系统 |
CN110739000B (zh) * | 2019-10-14 | 2022-02-01 | 武汉大学 | 一种适应于个性化交互系统的音频对象编码方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1292914A (zh) * | 1998-03-09 | 2001-04-25 | 诺基亚移动电话有限公司 | 语音编码 |
CN1470051A (zh) * | 2000-10-17 | 2004-01-21 | �����ɷ� | 非话音语音的高性能低比特率编码方法和设备 |
EP1232494B1 (en) * | 1999-11-18 | 2006-08-09 | Voiceage Corporation | Gain-smoothing in wideband speech and audio signal decoder |
CN101192410A (zh) * | 2006-12-01 | 2008-06-04 | 华为技术有限公司 | 一种在编解码中调整量化质量的方法和装置 |
-
2008
- 2008-06-20 CN CN2008101153545A patent/CN101609674B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1292914A (zh) * | 1998-03-09 | 2001-04-25 | 诺基亚移动电话有限公司 | 语音编码 |
EP1232494B1 (en) * | 1999-11-18 | 2006-08-09 | Voiceage Corporation | Gain-smoothing in wideband speech and audio signal decoder |
CN1470051A (zh) * | 2000-10-17 | 2004-01-21 | �����ɷ� | 非话音语音的高性能低比特率编码方法和设备 |
CN101192410A (zh) * | 2006-12-01 | 2008-06-04 | 华为技术有限公司 | 一种在编解码中调整量化质量的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101609674A (zh) | 2009-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101609674B (zh) | 编解码方法、装置和系统 | |
CN1906855B (zh) | 空间矢量和可变分辨率量化 | |
US6826526B1 (en) | Audio signal coding method, decoding method, audio signal coding apparatus, and decoding apparatus where first vector quantization is performed on a signal and second vector quantization is performed on an error component resulting from the first vector quantization | |
RU2506698C9 (ru) | Способ кодирования/декодирования звука и система векторного квантования решетчатого типа | |
US6349152B1 (en) | Table-based compression with embedded coding | |
CN1659785B (zh) | 信号多速率点阵矢量量化的方法和系统 | |
US6662154B2 (en) | Method and system for information signal coding using combinatorial and huffman codes | |
CN101430881B (zh) | 一种编码、解码、编解码方法、编解码系统以及相关装置 | |
EP2207167B1 (en) | Multistage quantizing method | |
US20070094035A1 (en) | Audio coding | |
CN101548316A (zh) | 编码装置、解码装置以及其方法 | |
US6567781B1 (en) | Method and apparatus for compressing audio data using a dynamical system having a multi-state dynamical rule set and associated transform basis function | |
CN108989817A (zh) | 一种基于参考帧错位预测的雷达数据压缩方法 | |
US8335260B2 (en) | Method and device for vector quantization | |
CN102025998B (zh) | 一种数字图像信号矢量量化码书设计方法 | |
CN101266795B (zh) | 一种格矢量量化编解码的实现方法及装置 | |
US8285544B2 (en) | Restrained vector quantisation | |
US8907821B1 (en) | Apparatus and method for decoding data | |
CN106331719A (zh) | 一种基于k‑l变换误差空间拆分的图像数据压缩方法 | |
CN102801427B (zh) | 源信号变速率格矢量量化的编解码方法和系统 | |
CN101630510B (zh) | Amr语音编码中lsp系数量化的快速码本搜索的方法 | |
Omara et al. | From a sparse vector to a sparse symmetric matrix for efficient lossy speech compression | |
JP2914546B2 (ja) | 特異値展開画像符号化装置 | |
Onno et al. | Data-rate constrained lattice vector quantization: a new quantizing algorithm in a rate-distortion sense | |
CN104244017A (zh) | 压缩编码高光谱遥感图像的多层次码书矢量量化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111228 Termination date: 20190620 |
|
CF01 | Termination of patent right due to non-payment of annual fee |