加权矩阵系数的自适应量化的制作方法
本申请为2018年8月15号递交中国专利局,申请号为201680081847.4,申请名称为“加权矩阵系数的自适应量化”的中国专利申请的分案,本申请全部内容包含在母案中。
本发明大体涉及音频和/或视频编码领域。本发明具体涉及一种用于将包括音频和/或视频帧的输入信号编码为量化比特的编码器,用于将量化比特解码为包括音频和/或视频帧的输出信号的解码器以及相应的编码和解码方法。最后,本发明涉及一种具有用于执行这种方法的程序代码的计算机程序。
背景技术:
在音频和/或视频应用中,常见的问题是对大输入数据进行有效地编码。例如,已知的音频应用可以基于涉及6个以上通道(5.1)的编码方案,而未来的编码方案预计将采用任意数量的输入通道,以使甚至更多的通道和更多的输入数据不得不被处理和编码。此外,针对22.2个通道,已知使用通道/目标编码方案,参见2014年12月herre,j.,hilpert,j.,kuntz,a.和plogsties,j.发表在音频工程学会杂志的第62卷,第12期,第821–830页的“mpeg-h音频-通用空间/3d音频编码的新标准”以及支持多达32个通道的球形麦克风。
从这方面来说,要解决的关键问题之一是找到一种方法来有效地编码大量的矩阵系数或元素。这些矩阵系数通常衍生于特定类型的矩阵,如协方差矩阵。例如,在基于karhunen-loeve变换(karhunen-loevetransform,简称klt)的音频编码方案中清楚地示出了证明,参见2001年7月yang,d.,ai,h.,kyriakakis,c.和kuo,c.-c.j.发表在spie会议录的数据/图像编码,压缩及加密iv的数学和应用的第4475卷,第43–54页的“增强多通道音频编码的自适应karhunen-loeve变换”。该方案要求传输至少一个大小为m×m的协方差矩阵,其中m表示输入通道的数量。如果在频域中进行编码,矩阵的数量甚至更重要。而且,如果处理必须以帧为单位进行更新,例如,每20毫秒,则矩阵的数量进一步增加。
在图像或视频编码领域,编码问题更为明显。在这种情况下,要被编码的矩阵可以不是方矩阵,而是非对称矩形矩阵。要量化的矩阵基本上由从图像输入信号获得的图像元素组成。图像编码中的应用的更多描述的概述被呈现在例如1996年2月cosman,p.c.,gray,r.m.和vetterli,m.发表在ieee图像处理汇刊的第5卷,第2号的“概述:图像子带的矢量量化”。量化大量矩阵系数的已知方法包括简单地进行标量量化或一维矢量量化(one-dimensionalvectorquantization,简称1-dvq)。然而,众所周知,相应的编码效率是有限的,并不可观。编码大量矩阵系数的其它已知方法使用若干现有技术的矢量量化(vectorquantization,简称vq)方案,例如直接vq、分裂vq或增益-形状vq。然而,现有技术的主要问题之一是难以选择适合一组通用输入信号的特定方案。其他已知的编码器在应用vq方案之前尝试对矩阵本身进行预处理。这种预处理的示例包括通过变换过程对矩阵的对角元素进行归零。
技术实现要素:
意识到上述提到的缺点和问题,本发明旨在改善现有技术。特别地,本发明的目的是提供用于对包括例如信号帧的输入信号的编码/解码进行改善的编码器,编码方法,解码器和解码方法。
本发明特别旨在改善大输入数据的编码/解码。本发明还旨在改善对输入信号和例如对一组通用输入信号的矢量量化方案的选择。
本发明上述提及的目的通过所附独立权利要求提供的方案实现。本发明有利的实现方案在各自的从属权利要求中进一步定义。
本发明的第一方面提供一种用于将包括信号帧的输入信号编码为量化比特的编码器。所述编码器包括至少一个矩阵生成模块,用于针对所述输入信号的每个帧生成包括从所述帧获得的矩阵系数的信号矩阵。所述编码器包括至少一个量化器模块,包括用于将每个信号矩阵的矩阵系数分组成多个分区矢量的分区模块和矢量量化模块。所述矢量量化模块包括多个矢量量化方案,并用于为每个分区矢量选择所述矢量量化方案中的一个矢量量化方案,并根据所选择的矢量量化方案量化所述分区矢量以获得量化比特。在自适应模式下,所述分区模块能够将从不同帧获得的矩阵系数进行不同的分组,和/或所述矢量量化模块能够为从不同帧获得的分区矢量选择不同的矢量量化方案。因此,可以逐帧地优化分区,并且可以逐帧地优化矢量量化。
在根据第一方面所述的编码器的第一种实现方式中,至少一个矢量量化方案包括分割单元,用于将所述多个分区矢量中的至少一个分区矢量或衍生于所述多个分区矢量中的至少一个分区矢量的矢量分割成若干子矢量。所述至少一个矢量量化方案包括量化单元,用于通过从产生量化分区子矢量的码本条目的各自的码本中选择码本条目来量化每个子矢量。所述量化单元还用于为每个子矢量输出在量化期间选择的各自的码本的所选择的码本条目的索引。通过对所述码本条目的每个元素应用权重来完成所述码本条目的选择。因此,可以基于加权误差测量来选择优化的矢量量化方案。
在根据第一方面的第一种实现方式所述的编码器的第二种实现方式中,所述多个矢量量化方案中的至少一个矢量量化方案基于公共-增益-分裂-形状矢量量化方案,并且包括:
增益单元,用于从所述多个分区矢量中的至少一个分区矢量获得增益;
量化单元,用于量化所述增益以获得量化增益;
归一化单元,用于根据所述量化增益归一化所述多个分区矢量中的至少一个分区矢量以获得归一化分区矢量;
分割单元,用于将所述归一化分区矢量分割成若干子矢量;
量化单元,用于根据码矢量的码本量化每个子矢量,以及输出所述增益的索引和为每个子矢量在量化期间选择的码本的码矢量的索引。因此,这种矢量量化方案的优点在于,只有一个增益索引必须被量化并被添加加到量化比特中。然后比特可以保存在编码信号中。特别地,由增益单元获得的增益可以是分区矢量的最大值。或者,所获得的增益可以是分区矢量的平均值。
在根据第一方面或第一方面的前述的实现方式的任意一种所述的编码器的第三种实现方式中,所述矢量量化方案中的至少一个矢量量化方案基于以下方案之一:
公共-增益-分裂-形状矢量量化方案;
直接矢量量化方案,包括:
根据码矢量的码本量化分区矢量;
输出在量化期间选择的码本的码矢量的索引;
分裂矢量量化方案,包括:
将分区矢量分割成若干子矢量;
根据码矢量的码本量化每个子矢量;
为每个子矢量输出在量化期间选择的码本的码矢量的索引;
增益-形状矢量量化方案,包括:
量化从分区矢量获得的增益;
根据量化增益归一化分区矢量;
输出所述量化增益的索引;
根据码矢量的码本量化归一化分区矢量;
输出在量化期间选择的码本的码矢量的索引;
增益-形状-分裂矢量量化方案,包括:
将分区矢量分割成若干子矢量;
量化分别从所述子矢量获得的增益;
根据各自的量化增益归一化所述子矢量;
为每个子矢量输出所述各自的量化增益的索引;
根据码矢量的码本量化每个归一化子矢量;
为每个子矢量输出在量化期间选择的码本的码矢量的索引。
因此,可以通过从多个不同方案中选择矢量量化方案来优化编码。
在根据第一方面或第一方面的前述的实现方式的任意一种所述的编码器的第四种实现方式中,所述分区模块用于根据所述矩阵系数的值将每个信号矩阵的矩阵系数分组成所述多个分区矢量。因此,分区即分组可为每个信号矩阵即为每个帧进行优化。
特别地,所述矩阵系数的值可以是时域或频域中的值。由于根据所述矩阵系数的值进行分组,这也意味着每个帧的分组可能不同。将第一信号矩阵分组成分区矢量独立于将第二信号矩阵分组成分区矢量。
在根据第一方面或第一方面的前述的实现方式的任意一种所述的编码器的第五种实现方式中,所述分区模块用于根据所述矩阵系数的值将每个信号矩阵的矩阵系数分组成所述多个分区矢量,其中每个分区矢量包括属于给定值范围的矩阵系数。因此,分区可以特别通过以帧为单位对相似值进行分组而优化。
在根据第一方面或第一方面的前述的实现方式的任意一种所述的编码器的第六种实现方式中,所述分区模块用于基于从选择的矢量量化方案中提取出的至少一个参数将所述矩阵系数分组成所述多个分区矢量。因此,可以进一步优化分区。参数可以是在输入信号的时域中的输入信号的幅度。或者,在输入信号在频域中例如通过傅立叶变换进行变换的情况下,参数可以是频率点或频带。这意味着该参数是例如频带的范围。另外,通常,该参数可以衍生于系数的能量集中/分布。
在根据第一方面或第一方面的前述的实现方式的任意一种所述的编码器的第七种实现方式中,所述分区模块用于基于感知模型将所述矩阵系数分组成所述多个分区矢量。
所述感知模型可以用于获得从所选择的矢量量化方案中提取的至少一个参数。所述感知模型可以包括在专用模块中,即在基于模型的比特预算分配器中,并且可以取决于所述基于模型的比特预算分配器接收的输入信号。因此,在考虑输入信号的时域的情况下,所述基于模型的比特预算分配器可以向分区模块传输对应于每个矩阵系数的幅度。或者,对于频域,所述基于模型的比特预算分配器向分区模块传输对应于每个矩阵系数的频率点或频带。因此,基于感知模型将矩阵系数分组成多个分区矢量可以改善分区/分组。
在根据第一方面或第一方面的前述的实现方式的任意一种所述的编码器的第八种实现方式中,所述矢量量化模块用于基于矢量量化方案的误差函数为给定的分区矢量选择所述矢量量化方案中的一个矢量量化方案。因此,可以优化编码。
特别是,每个vq方案都具有误差函数,特别是具有客观误差函数。这样的误差函数可以是分区矢量的非量化版本和量化版本之间的平方误差。或者,误差函数也可以是加权误差函数。vq方案的选择然后可以基于误差函数,并且特别基于误差函数的特定值,如最小平方误差(minimumsquarederror,简称mse),加权最小平方误差或最小均方误差(minimummeansquarederror,简称mmse)。
在根据第一方面或第一方面的前述的实现方式的任意一种所述的编码器的第九种实现方式中,所述编码器包括加权模块,用于基于感知模型为每个矢量量化方案分别生成加权矢量。所述矢量量化模块用于为给定的分区矢量通过以下方式选择所述矢量量化方案中的一个矢量量化方案:
对于每个矢量量化方案:
基于所述矢量量化方案量化所述给定的分区矢量以获得量化分区矢量;
基于所述给定的分区矢量与所述量化分区矢量的差值计算误差值;
通过将所述误差值乘以所述矢量量化方案的加权矢量来计算加权误差值;
基于计算出的加权误差值为所述给定的分区矢量选择矢量量化方案。因此,可以进一步优化方案选择。优选地,对于所述给定的分区矢量,所选择的矢量量化方案是计算最低加权误差值的方案。
在根据第一方面的第八或第九种实现方式的所述编码器的第十种实现方式中,所述矢量量化模块用于基于感知模型选择所述矢量量化方案中的一个矢量量化方案。因此,可以以帧为单位进一步优化方案选择。优选地,所述感知模型用于获得加权矢量。所述感知模型可以与分区模块用于将矩阵系数分组成多个分区矢量的感知模型相同。
例如,矢量量化方案的选择基于感知模型,其在频域中对应于频带的一组感知权重。例如,通过使用对应于特定频带的增益,在频域或频带中衍生出加权矢量。
在根据第一方面或第一方面的前述的实现方式的任意一种所述的编码器的第十一种实现方式中,所述编码器包括分配模块,用于向每个量化器模块的矢量量化模块分配所述矢量量化模块可使用的一些比特,以获得量化比特。所述矢量量化模块用于根据所述分配模块分配给其的比特数来选择所述多个矢量量化方案中的一个矢量量化方案。因此,可以控制量化比特的总比特数。
在根据第一方面的第十一种实现方式的所述的编码器的第十二种实现方式中,在可变比特率模式下,每帧的量化比特总数有最大值;在固定比特率模式下,每帧的量化比特总数是恒定的。因此,在可变比特率模式下,量化比特的比特数可以被限制。在固定比特率模式下,过程可以简化处理,因为量化比特数保持不变。
在根据第一方面的第十一种或第十二种实现方式所述的编码器的第十三种实现方式中,所述矢量量化模块用于向所述分配模块传输与所述矢量量化模块可用的比特数有关的反馈信息,以获得量化比特。比特预算分配器模块用于根据从矢量量化模块接收的反馈信息来修改分配给每个矢量量化模块的最大比特数。因此,可以根据矢量量化模块的需要优化编码。
在根据第一方面或第一方面的前述的实现方式的任意一种所述的编码器的第十四种实现方式中,在自适应模式下,所述矢量量化模块用于以帧为单位为每个分区矢量选择所述矢量量化方案中的一个矢量量化方案。因此,矢量量化方案的选择可以针对若干帧进行优化。
本发明的第二方面提供一种用于将包括信号帧的输入信号编码为量化比特的方法。所述方法包括:针对所述输入信号的每个帧生成包括从所述帧获得的矩阵系数的信号矩阵。所述方法包括:将每个信号矩阵的矩阵系数分组成多个分区矢量。所述方法包括:为每个分区矢量选择多个矢量量化方案中的一个矢量量化方案,并根据所选择的矢量量化方案量化所述分区矢量以获得量化比特。在自适应模式下,所述方法包括:对从不同帧获得的矩阵系数进行不同的分组,和/或为从不同帧获得的分区矢量选择不同的矢量量化方案。
根据本发明的第二方面所述的方法的其他特征或实现方式可以执行根据本发明的第一方面及其不同的实现形式所述的编码器的功能,例如如上所述,并且随后在文中通过其他实施例更详细地描述。
根据第二方面或其任何实现方式所述的方法可以由处理器或计算机执行。
本发明的第三方面提供一种将量化比特解码为包括信号帧的输出信号的解码器。所述解码器包括比特流解析器,用于解析所述量化比特,以获得与分区矢量相关联的方案信息和矢量量化索引。所述编码器包括至少一个包括矢量反量化模块和分区模块的解量化器模块。所述矢量反量化模块包括多个矢量量化方案,并用于在自适应模式下根据与分区矢量相关联的方案信息为每个分区矢量选择所述矢量量化方案中的一个矢量量化方案,以及通过所选择的矢量量化方案根据与所述分区矢量相关联的至少一个矢量量化索引获得分区矢量。所述分区模块用于为每个帧从与所述帧相关联的多个分区矢量中获得信号矩阵。所述解码器包括合成模块,用于从获得的信号矩阵获得输出信号。因此,可以逐帧优化矢量量化。特别地,与分区矢量相关联的至少一个矢量量化索引可以是矢量的码本索引和增益的码本索引。
在根据第三方面所述的解码器的第一种实现方式中,所述比特流解析器用于解析所述量化比特以获得定义如何从多个分区矢量获得信号矩阵的分区信息。所述分区模块用于根据获得的分区信息为每个帧从与所述帧相关联的多个分区矢量中获得信号矩阵。因此,可以逐帧优化分区。
在根据第三方面或第三方面的前述的实现方式的任意一种所述的解码器的第二种实现方式中,所述比特流解析器用于解析所述量化比特以获得定义自适应模式或固定模式的模式信息。在所述固定模式下,所述矢量反量化模块用于为不同帧的分区矢量选择相同的矢量量化方案。因此,可以减少量化比特中的边信息量,并且特别地减少方案信息量,因为可以为不同帧的分区矢量选择相同的矢量量化方案。特别地,所述模式信息可以包括一个或若干比特。
本发明的第四方面提供一种将量化比特解码为包括信号帧的输出信号的方法。所述方法包括:解析所述量化比特,以获得与每个分区矢量相关联的边信息和矢量量化索引。所述方法包括:在自适应模式下根据与分区矢量相关联的边信息为每个分区矢量从多个矢量量化方案中选择矢量量化方案,以及通过所选择的矢量量化方案根据与所述分区矢量相关联的至少一个矢量量化索引获得分区矢量。所述方法包括:为每个帧从与所述帧相关联的多个分区矢量中获得信号矩阵。所述方法包括:从获得的信号矩阵获得输出信号。
根据本发明的第四方面所述的方法的其他特征或实现方式可以执行根据本发明的第三方面或其任何不同的实现形式所述的解码器的功能,例如如上所述,并且随后在文中通过其他实施例更详细地描述。
根据第四方面或其任何实现方式所述的方法可以由处理器或计算机执行。
本发明的第五方面提供一种包括程序代码的计算机程序,用于当所述计算机程序在计算设备中运行时,执行根据本发明的第二或第四方面或其任意实现方式所述的方法。
根据第一方面所述的编码器的功能和根据第三方面所述的解码器的功能以及其任何实现方式的任何功能可以由处理器或计算机执行,并且其任何装置或模块可以实现为这种处理器或计算机中的软件和/或硬件。
本发明的另一方面提供一种包括程序代码的计算机程序,用于当所述计算机程序在计算设备中运行时,执行编码和/或解码方法。
需要注意的是,本申请所描述的所有设备、元件、单元、模块和方法均可实现在或为软件或硬件元件或其任意组合。本申请中描述的各种实体所执行的步骤以及所描述的各种实体要执行的功能均意在指各个实体用于执行各个步骤和功能。即使在具体实施例的下述描述中,由外部实体执行的具体功能或步骤未在执行该具体步骤或功能的该实体的具体细节元件的描述中反映,技术人员应清楚可以在各个软件或硬件元件或者任意组合中实现这些方法和功能。
附图说明
结合所附附图,下面具体实施例的描述将阐述上述本发明的各方面及其实现形式,其中:
图1示出了本发明实施例的编码器;
图2示出了本发明实施例的编码器的详细视图;
图3示出了本发明的直接矢量量化方案;
图4示出了本发明的分裂矢量量化方案;
图5示出了本发明的增益-形状矢量量化方案;
图6示出了本发明的增益-形状-分裂矢量量化方案;
图7示出了本发明实施例的公共-增益-分裂-形状矢量量化方案;
图8示出了本发明实施例的比特流设置;
图9示出了本发明实施例的解码器。
具体实施方式
下面结合图1和图2来描述本发明实施例。图1示出了本发明实施例的用于将包括信号帧的输入信号101编码成量化比特108的编码器100。图2示出了本发明实施例的用于将包括信号帧的输入信号编码为量化比特208的编码器200的详细视图。特别地,所述信号帧是音频和/或视频帧。特别地,图2的编码器200是图1的更简略的编码器100的可能实施例。图2中所示的标记203、205、206、207、208和211对应于图1中的标记103、105、106、107、108和111,并定义相同的特征或功能相同的特征。下面的描述结合图1和图2定义了本发明的编码器。然而,应该理解的是,所述编码器200的结构比图1所示的结构更详细,并且是所述编码器100的特定实施例。
所述编码器100包括至少一个矩阵生成模块110,用于针对所述输入信号101的每个帧生成包括从所述帧获得的矩阵系数的信号矩阵103、203、covm#1,...,covm#n。
所述编码器包括至少一个包括分区模块和矢量量化模块的量化器模块104。
分区模块105、205、m2v#1,...,m2v#n用于将每个信号矩阵的矩阵系数分组成多个分区矢量106、206、
在自适应模式下,所述分区模块能够将从不同帧获得的矩阵系数进行不同的分组,和/或所述矢量量化模块能够为从不同帧获得的分区矢量选择不同的矢量量化方案。换句话说,所述分区模块可以以帧为单位对矩阵系数进行分组,即独立地逐帧进行分组。而且,所述矢量量化模块可以以帧为单位选择矢量量化方案,即独立地逐帧选择矢量量化方案。
因此,本发明提出了一种通过以自适应的方式以帧为单位划分矩阵系数和选择矢量量化方案来编码大量矩阵系数的有效策略,即,根据信号矩阵的内容,即根据每个信号矩阵的矩阵系数。
首先,本发明聚焦于以帧为单位分组矩阵系数和基于涉及输入矩阵结构类型的知识的观察来尝试排列矩阵系数的若干分区,例如,是对称矩阵还是对角矩阵,对角线是否重要,系数之间的分布和/或相关性。目的是能够将例如动态变化的输入系数的大小分解成一组较小的即时固定分区。其次,一旦分区被优化,重点就是选择分配给每个分区的最佳量化器方案。量化器方案的选择是基于例如加权误差测量的,例如,参见1993年1月paliwal.k.k.和atal,b.s.发表在ieee语音和音频处理汇刊的第1卷,第1号,第3–14页的“lpc参数在24比特/帧下的有效矢量量化”。从这方面来说,标量量化器也可以使用。
尽管本发明特别涉及音频和视频编码,图1和图2的实施例涉及音频编码器。相应地,所述输入信号101可以特别是音频信号,信号矩阵可以包括音频信号的帧的幅度,或者可以基于音频信号的帧的幅度来计算。这意味着信号矩阵的每个矩阵系数是帧的不同频率的幅度。特别地,帧可以是从每个通道取得的具有相同时间戳的一组样本。
特别地,所述矩阵生成模块110可以包括用于生成作为音频信号的协方差矩阵covm#1,...,covm#n的协方差计算模块102covcalc#1,...,covcalc#n。这样的协方差矩阵是例如一种已知类型的方形和对称矩阵。
在视频编码的情况下,输入信号可以是输入图像的视频信号,并且信号矩阵可以包括所述输入图像的子图像的强度。这意味着信号矩阵的每个矩阵系数是输入图像的图像元素的强度,例如,像素。
特别地,所述编码器可以包括多个并行矩阵生成模块。每个模块用于生成描述输入图像的不同子图像的信号矩阵,其中所述输入图像可以从不同子图像的组合中获得。
对于音频输入信号,帧可以是从每个通道取得的具有相同时间戳的一组样本。例如,如果输入信号是立体声,则一个帧包括若干左右声道样本。对于视频输入信号,帧可以在视频信号的图像中。
优选地,所述编码器包括若干矩阵生成模块110和若干量化器模块104。每个生成模块110与量化器模块104相关联。所述输入信号101的不同部分可以被传输到不同的矩阵生成模块110。这些不同的部分在图1中通过各自的从所述输入信号101到生成模块110的普通箭头来描述。对于音频编码器,不同的音频通道可以分别由不同的矩阵生成模块110和量化器模块104并行处理。对于视频编码器,图像帧的不同部分可以分别由不同的矩阵生成模块110和量化器模块104并行处理。
在音频中,由于旨在不限制输入通道配置,例如,多通道音频应用中的输入通道数量和麦克风位置,对给定的输入信号进行编码的整个编码方案,本发明的编码器可以有效地编码大量矩阵系数。所述整个编码方案可以主要用作需要对一组矩阵系数进行编码的karhunen-loeve变换(karhunen-loevetransform,简称klt)音频编码方案的一部分。在这种情况下,矩阵的类型是例如一个方形和对称的矩阵。
在所述编码器中,基于模型的比特预算分配器模块114使用所述输入信号101或与所使用的模型高度相关的输入信号的一组提取参数作为比特分配方案和加权方案的指导。图1通过从所述输入信号101到所述基于模型的比特预算分配器模块114的虚线箭头相应地示出了所述输入信号101用作所述基于模型的比特预算分配器模块114的输入,而这组提取参数可以由所述基于模型的比特预算分配器模块114提取。例如,感知听觉模型及其参数可以用于多通道输入音频信号,输入信号可以是m通道音频信号。所述比特分配方案分配和调整每个量化器模块104要使用的一定量的比特,如图1中的所述比特预算分配模块114和量化器模块104之间的虚线箭头113所示。另一方面,所述加权方案为每个量化器模块104和每个矢量量化模块107分配一组加权矢量111、211,即,w1、w2等。该分配由图1中的虚线箭头112指示。例如,发送到矩阵生成模块110的所述输入信号101的不同部分可以分别具有不同的重要性/优先级:如果所述输入信号101的第一部分具有比所述输入信号101的第二部分更高的重要性/优先级,则相比用于处理从所述第二部分获得的信号矩阵103的量化器模块104,用于处理从所述第一部分获得的信号矩阵103的量化器模块104可以被分配更多数量的比特。关于加权方案,所述基于模型的比特预算分配器模块114可以包括加权模块,用于基于感知模型为每个矢量量化方案
关于比特分配方案,所述基于模型的比特预算分配器模块114可以包括分配模块,用于向每个量化器模块104的矢量量化模块107、207分配所述矢量量化模块107、207可使用的一些比特,以获得量化比特108、208。然后,所述矢量量化模块107、207可根据所述分配模块分配给其的比特数来选择多个矢量量化方案
量化器模块104由分区模块105和分组至矢量量化模块107的一组预定义的vq方案组成。例如,在音频中,所述量化器模块104使用计算协方差矩阵covm#1,...,covm#n输出一组量化比特108。来自所有量化器模块104的量化比特108的组合在图1中被称为量化比特109。如图1所示,在协方差计算模块102covcalc#1,...,covcalc#n中计算协方差矩阵。所述分区模块105以帧为单位提供优化的矢量分区,例如,基于每个输入协方差矩阵的结构和统计分析,并且优选地基于所述比特分配方案。例如,如果统计观察到大多数输入矩阵在其对角线处具有较大的值,则建议将这些对角线系数分组成一个分区矢量。如果分配的比特是有限的,则非对角线系数可以被分组成另一个分区矢量;或者在知道所述非对角线系数的相关性分析的情况下,所述非对角线系数也可以被进一步分组成若干分区矢量。
鉴于矢量分区集合,在给定每个分区的一组预定义vq方案的情况下,vq模块107搜索合适的量化方案。另外,所述vq模块107可以基于加权误差测量执行协方差量化,例如,参见1993年1月paliwal,k.k.和atal,b.s.发表在ieee语音和音频处理汇刊的第1卷,第1号,第3–14页的“lpc参数在24比特/帧下的有效矢量量化”。该操作考虑了分配的比特和加权矢量。
注意,量化可以是矢量量化(vectorquantization,简称vq)或标量量化。相应地,所给出的实施例的任何矢量量化模块和矢量量化器也可以是标量模块和标量量化器。
在涉及矢量量化模块107、207的本发明的另一方面,所述矢量量化模块用于向所述分配模块传输113与所述矢量量化模块107、207可用的比特数有关的反馈信息,以获得量化比特108、208。所述分配模块用于根据从矢量量化模块107接收的反馈信息来修改分配给每个矢量量化模块107的最大比特数。
基于模型的比特预算分配模块114的这种反馈机制可以提供跨所有协方差矩阵和矢量的量化/编码过程的最优平衡。所述基于模型的比特预算分配模块114的反馈机制可以被用来在必要时在所有并行信号矩阵间重新分配比特。
关于图2,矢量量化模块207的至少一个矢量量化方案
所述分割单元用于将多个分区矢量206、
所述量化单元用于通过从产生量化分区子矢量的码本条目的各自的码本221、222、223中选择码本条目来量化每个子矢量
特别地,关于量化信号和原始信号之间的误差测量,选择的码本条目可以是最佳的码本条目。码本条目可以是码矢量或标量,其中标量是大小为1的码矢量。
图2示出了vq模块207内部的详细过程。假设协方差矩阵由m通道输入音频信号计算,并且分区模块105输出一组l个矢量分区。此外,假设第一分区矢量
在下文中,将呈现矢量量化模块107、207的可能的矢量量化方案
通常,矢量量化(vectorquantization,简称vq)被用于有损信号压缩。在vq的直接实现中,搜索保存码矢量的码本并且传输最能表示输入矢量的码矢量的索引。
图3示出了本发明的直接矢量量化方案,例如,参见1992年gersho,a.和gray,r.m.在springer出版社出版的“矢量量化和信号压缩”。图3示出了用16比特量化的10个元素的分区矢量301的直接vq的示例。直接vq方案300可以用作图1的vq模块107的方案,或者用作图2的vq模块207的方案
所述直接vq方案300包括根据码矢量的码本302来量化所述分区矢量301,并且输出在量化期间选择的码本302的码矢量的索引303。所述索引具有例如16比特。
在所述直接vq方案300中,码本的大小可能非常大,并且搜索码本的复杂度可能相对较高。当分区矢量的维度大并且比特数增加时,可以通过在若干量化元素之间分发比特来实现有效的vq,这也被称为乘积-vq或pvq。
图4示出了一种针对这种pvq的方法,即,分裂矢量量化方案400,例如,参见1993年1月paliwal,k.k.和atal,b.s.发表在ieee语音和音频处理汇刊的第1卷,第1号,第3–14页的“lpc参数在24比特/帧下的有效矢量量化”。
所述分裂vq方案400可以用作图1的vq模块107的方案,或者用作图2的vq模块207的方案
在所述分裂矢量量化方案400中,所述分区矢量401的部分或子矢量402、403被分别量化。例如,图4示出了量化为具有16比特的两个子矢量的10个元素的分区矢量的split-vq。
所述分裂矢量量化方案400包括将所述分区矢量401分割成若干子矢量402、403,根据码矢量的码本404、405量化每个子矢量402、403,并且为每个子矢量402、403输出在量化期间选择的码本404、405的码矢量的索引406、407。
图5示出了另一种常见的pvq结构,即增益-形状矢量量化方案,例如,参见1992年gersho,a.和gray,r.m.在springer出版社出版的“矢量量化和信号压缩”。在增益-形状vq中,增益因子首先被计算,量化并用于归一化分区矢量。图5涉及用16比特量化的10个元素的分区矢量的增益-形状vq的示例。
增益-形状vq方案500可以用作图1的vq模块107的方案,或者用作图2的vq模块207的方案
所述增益-形状矢量量化方案500包括量化从所述分区矢量501获得的增益502。所述增益502可以是所述分区矢量501的最大值,或者可以计算作为所述分区矢量501的系数的平均值。然后根据量化增益504归一化505所述分区矢量501,以获得归一化分区矢量506。根据码矢量的码本507量化所述归一化分区矢量506。该方案输出所述量化增益504的索引504a和在量化期间选择的码本的码矢量的索引508。
当使用增益-形状vq方案时,用于分裂vq和增益-形状vq的码本可以更小,因此与例如直接vq方案300相比,在pvq下,存储需求和搜索复杂度减小。
可以将分裂vq与增益-形状vq结合起来,以进一步减少复杂性和存储需求,例如,参见1996年2月cosman,p.c.,gray,r.m.和vetterli,m.发表在ieee图像处理汇刊的第5卷,第2号的“概述:图像子带的矢量量化”。图6示出了增益-形状-分裂矢量量化方案600,并且特别示出了量化为具有16比特的两个子矢量的10个元素的分区矢量的增益-形状-分裂vq的示例。
所述增益-形状-分裂vq方案600可以用作图1的vq模块107的方案,或者用作图2的vq模块207的方案
所述增益-形状-分裂矢量量化方案600包括将所述分区矢量601分割成若干子矢量602、603,量化分别从子矢量602、603获得的增益606、607,并且根据各自的量化增益618、619归一化所述子矢量602、603。然后根据码矢量的码本614、615量化每个归一化子矢量612、613。该方案为每个子矢量602、603输出各自的量化增益618、619的索引618a、619a以及在量化期间选择的码本614、615的码矢量的索引616、617。
图7示出了本发明实施例的公共-增益-分裂-形状矢量量化方案。
增益-形状vq与根据例如图6的分裂vq的组合进一步减少了存储和复杂度。但是如果子矢量602、603具有相似的增益606、607,则为每个子矢量602、603传输量化增益618、619的索引618a、619a将导致比特的浪费,因为索引618a、619a可能相同或非常相似。
图7特别示出了量化为具有16比特的两个子矢量的10个元素的分区矢量的公共-增益-分裂-形状vq(common-gain-split-shape,简称cgss-vq)。
cgss-vq方案700可以用作图1的vq模块107的方案,或者用作图2的vq模块207的方案
通常,本发明的cgss-vq700包括增益单元702a,用于从所述分区矢量701获得增益702。特别地,由所述增益单元获得的增益702可以是所述分区矢量的系数的最大值。或者,获得的增益可以是所述分区矢量的系数的平均值。
量化单元703用于量化所获得的增益702以获得量化增益704。归一化单元705用于根据所述量化增益704归一化所述分区矢量701以获得归一化分区矢量712。分割单元用于将所述归一化分区矢量712分割成若干子矢量706、707。量化单元用于根据码矢量的码本708、709量化每个子矢量706、707。
然后,所述cgss-vq方案700输出所述量化增益704的索引704a,并且为每个子矢量706、707输出在量化期间选择的码本708、709的码矢量的索引710、711。
图9示出了本发明实施例的解码器900,特别是用于将量化比特901解码为包括信号帧的输出信号910的解码器900。信号帧可以是音频和/或视频帧。
所述解码器900包括比特流解析器902,用于解析所述量化比特901,以获得与分区矢量
所述解码器900包括至少一个包括矢量反量化模块905和分区模块907的解量化器模块904。所述矢量反量化模块905包括多个矢量量化方案
所述解码器的量化方案
所述分区模块907用于为每个帧从与所述帧相关联的多个分区矢量906、
合成模块909用于从获得的信号矩阵获得输出信号910。
优选地,所述比特流解析器902用于解析所述量化比特901,以获得定义如何从多个分区矢量获得信号矩阵的分区信息。所述分区模块907用于根据获得的分区信息为每个帧从与所述帧相关联的多个分区矢量906、
特别地,所述比特流解析器902用于解析所述量化比特901,以获得定义自适应模式或固定模式的模式信息f/a(固定/自适应)。在所述固定模式下,所述矢量反量化模块905用于为不同帧的分区矢量
从这方面来说,本发明的编码器100用于在量化比特109中添加包括分区信息、方案信息和矢量量化索引的边信息比特。
所述分区信息优选地与信号矩阵相关联,即与信号矩阵相对应的分区矢量相关联,并且所述分区信息标识分区模块105、205如何将信号矩阵的矩阵系数分组成多个分区矢量
所述矢量量化索引优选地与分区矢量
模式信息优选地与信号矩阵或分区矢量相关联,并标识自适应模式或固定模式。
图8示出了本发明实施例的比特流设置。
第一比特流设置801对应于自适应模式,第二比特流设置802对应于固定模式。
由于量化过程通常以帧为单位完成,本发明提出固定或自适应比特流设置模式,其称为固定模式和自适应模式。在使用自适应模式的情况下,一组边信息包括一些信令比特,其中所述信令比特可对应于分区信息和/或方案信息和/或矢量量化索引和/或增益量化索引。例如,如果边信息包括方案信息,则使用的vq在比特流中,即在量化比特中,指示。例如,如果边信息包括增益量化索引,则该增益量化索引可对应于增益-形状矢量量化方案500中的量化增益504的索引504a,增益-形状-分裂矢量量化方案600中的量化增益618、619的索引618a、619a,或公共-增益-分裂-形状矢量量化方案700中的量化增益704的索引704a。
例如,假设协方差矩阵在固定模式下被分组为两个分区矢量:对应于对角线元素的一个分区矢量和对应于非对角线元素的另一个分区矢量。对角线元素的分区可以总是由一个固定的vq方案量化,而另一个分区则由另一个固定的vq方案量化。在这种情况下,不需要发送一组边信息比特,特别是不需要发送方案信息,因为编码器和解码器都明确知道如何编码/解码。在固定模式下,优选地,已经为每个分区矢量预先选择方案。因为vq方案在编码器和解码器被预先选择,这具有优点,即解码器已经知道哪个vq方案对应于哪个分区矢量,从而在比特流中需要较少的边信息。
另一方面,如果vq方案是根据自适应模式以帧为单位调整的,则在量化比特中加入如分区信息和/或方案信息的边信息。尽管添加边信息似乎需要更多的比特,但实际上有助于提高总体比特分配的灵活性以及优化不同量化方案之间的选择。
比特流设置801、802都可以包括指示是否使用固定或自适应方案的模式信息。换句话说,所述模式信息定义设置是根据自适应模式还是固定模式。例如,如图8所示,该模式信息可以包括专用的f/a比特:值1可以定义固定模式,值0可以定义自适应模式。或者,模式信息可以由若干比特来定义。
边信息比特可以包括例如矩阵的划分,使用的vq方案,每个vq以及优选地每个vq中的每个元素的比特分配的信息。所述边信息比特也可以简单地是配置码,例如,两个比特表示若干预定义vq方案之间的选择。
已经结合作为实例的不同实施例以及实施方案描述了本发明。但本领域技术人员通过实践所请发明,研究附图、本公开以及独立权项,能够理解并获得其它变体。在权利要求以及描述中,术语“包括”不排除其他元件或步骤,且“一个”并不排除复数可能。单个元件或其它单元可满足权利要求书中所叙述的若干实体或项目的功能。在仅凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的组合不能在有利的实现方式中使用。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除