多个结构化码本的有效存储的制作方法

文档序号:19734963发布日期:2020-01-18 04:21阅读:186来源:国知局
多个结构化码本的有效存储的制作方法

本发明的实施例涉及编码,尤其涉及语音和音频编码。



背景技术:

用于语音和音频编码的低复杂度算法构成了非常相关的资产,例如以用于基于移动终端的通信。由于低存储量和低复杂度且同时保留了编码效率,因此,结构化码本在若干已有的语音和音频编解码器中可能更可取,例如,如将在第三代合作伙伴计划(3gpp)内标准化的增强语音服务(evs)编解码器。

在这些语音和音频编解码器内使用的码本例如可以基于晶格结构,如a.vasilache,b.dumitrescu和i.tabus在爱思唯尔(elsevier)的信号处理,第82卷第563-586页的参考文献“多尺度领导晶格vq及其在lsf量化中的应用(multiple-scaleleader-latticevqwithapplicationtolsfquantization)”中所描述的,该参考文献通过引用全部并入本文中。

可以将晶格码本定义为领导类并集,每个领导类的特征在于领导向量。领导向量是n维向量(n表示整数),其(例如,正)分量是有序的(例如,递减地)。进而,与领导向量对应的领导类包括领导向量和通过领导向量的全部有符号排列而获得的所有向量(具有一些可能的限制)。也可以将一个、一些或所有领导类分别与一个或多个尺度相关联,然后将晶格码本构成为缩放和/或未缩放的领导类的并集。

可以例如通过在码本中查找最接近的相邻码向量即相对于输入向量具有最小距离的码向量来对输入向量进行编码(例如,量化)。进而,该码向量的标识符(例如,被分配给该码向量的索引)可以用作输入向量的编码表示。



技术实现要素:

虽然结构化码本的使用已经减少了用于对输入向量进行编码所需的存储器量和计算复杂度,但是始终希望进一步降低存储器需求,尤其是针对通常存储结构化码本的基于rom的存储器。

根据本申请,提供了一种装置,其包括:

包括多个子向量的表,其中,所述表的每个条目是子向量,并且每个子向量具有与一个或多个基本码向量的向量分量相同的向量分量;以及另一个表,其中,所述另一个表的条目包括指向所述表中的子向量的第一指针和指向所述表中的子向量的第二指针,其中,第一指针和第二指针被布置在所述另一个表中,以使得当第一指针所指向的子向量的向量分量与第二指针所指向的子向量的向量分量组合时,构成基本码向量。

向量分量可以是一组连续的向量分量。

指向所述表中的子向量的第一指针的值和指向所述表中的子向量的第二指针的值可以是模n的整数,n可以与被分配用于存储第一指针的值和第二指针的值的数据类型的最大值有关。

当第一指针的值大于或等于第二指针的值时,第一指针可以指向所述表中在由第一指针的值所给定的位置处的子向量,当第一指针的值小于第二指针的值时,第一指针可以指向所述表中在由第一指针的值加上n而给出的位置处的子向量。

所述表和所述另一个表可以构成音频/语音编解码器的一部分,音频/语音编解码器可以工作在多个操作模式或操作编码速率下。

针对第一指针的值和第二指针的值使用模n的整数可以取决于音频/语音编解码器的特定操作模式或操作编码速率。

数据类型可以是无符号字符数据类型,并且其中,n是256。

基本码向量可以是领导类,并且每个领导类包括领导向量和领导向量的置换。

一个或多个基本码向量可以是定义结构化码本的基本码向量集,并且基本向量集是领导类,每个领导类包括不同的领导向量和所述领导向量的置换。

所述表可以构成第三代合作伙伴计划长期演进语音增强语音服务编解码器的一部分。

根据另一个方面,提供了一种方法,其包括:通过将第一指针所指向的子向量的向量分量与第二指针所指向的子向量的向量分量组合来构成基本码向量,其中,第一指针所指向的子向量和第二指针所指向的子向量被包含在包括多个子向量的表中,其中,所述表的每个条目是子向量,并且每个子向量具有与一个或多个基本码向量的向量分量相同的向量分量,其中,第一指针和第二指针被包含在另一个表中,其中,所述另一个表的条目包括第一指针和第二指针。

向量分量可以是一组连续的向量分量。

指向所述表中的子向量的第一指针的值和指向所述表中的子向量的第二指针的值可以是模n的整数,n可以与被分配用于存储第一指针的值和第二指针的值的数据类型的最大值有关。

当第一指针的值大于或等于第二指针的值时,第一指针可以指向所述表中在由第一指针的值所给定的位置处的子向量,当第一指针的值小于第二指针的值时,第一指针可以指向所述表中在由第一指针的值加上n而给出的位置处的子向量。

所述表和所述另一个表可以构成音频/语音编解码器的一部分,音频/语音编解码器可以工作在多个操作模式或操作编码速率下。

针对第一指针的值和第二指针的值使用模n的整数可以取决于音频/语音编解码器的特定操作模式或操作编码速率。

数据类型可以是无符号字符数据类型,并且其中,n是256。

基本码向量可以是领导类,并且每个领导类包括领导向量和领导向量的置换。

一个或多个基本码向量可以是定义结构化码本的基本码向量集,并且基本向量集是领导类,每个领导类包括不同的领导向量和所述领导向量的置换。

根据另一个方面,提供了一种装置,其包括至少一个处理器和包括计算机程序代码的至少一个存储器,至少一个存储器和计算机程序代码被配置为与至少一个处理器一起使得所述装置:通过将第一指针所指向的子向量的向量分量与第二指针所指向的子向量的向量分量组合来构成基本码向量,其中,第一指针所指向的子向量和第二指针所指向的子向量被包含在包括多个子向量的表中,其中,所述表的每个条目是子向量,并且每个子向量具有与一个或多个基本码向量的向量分量相同的向量分量,其中,第一指针和第二指针被包含在另一个表中,其中,所述另一个表的条目包括第一指针和第二指针。

向量分量可以是一组连续的向量分量。

指向所述表中的子向量的第一指针的值和指向所述表中的子向量的第二指针的值可以是模n的整数,n可以与被分配用于存储第一指针的值和第二指针的值的数据类型的最大值有关。

当第一指针的值大于或等于第二指针的值时,第一指针可以指向所述表中在由第一指针的值所给定的位置处的子向量,当第一指针的值小于第二指针的值时,第一指针可以指向所述表中在由第一指针的值加上n而给出的位置处的子向量。

所述表和所述另一个表可以构成音频/语音编解码器的一部分,音频/语音编解码器可以工作在多个操作模式或操作编码速率下。

针对第一指针的值和第二指针的值使用模n的整数可以取决于音频/语音编解码器的特定操作模式或操作编码速率。

数据类型可以是无符号字符数据类型,并且其中,n是256。

基本码向量可以是领导类,并且每个领导类包括领导向量和领导向量的置换。

一个或多个基本码向量可以是定义结构化码本的基本码向量集,并且基本向量集是领导类,每个领导类包括不同的领导向量和所述领导向量的置换。

根据另一个方面,提供了一种计算机程序代码,其用于通过将第一指针所指向的子向量的向量分量与第二指针所指向的子向量的向量分量组合来构成基本码向量,其中,第一指针所指向的子向量和第二指针所指向的子向量被包含在包括多个子向量的表中,其中,所述表的每个条目是子向量,并且每个子向量具有与一个或多个基本码向量的向量分量相同的向量分量,其中,第一指针和第二指针被包含在另一个表中,其中,所述另一个表的条目包括第一指针和第二指针。

根据另一个方面,提供了一种计算机可读介质,在其上存储有计算机可读代码,计算机可读代码在由至少一个处理器执行时使得装置:通过将第一指针所指向的子向量的向量分量与第二指针所指向的子向量的向量分量组合来构成基本码向量,其中,第一指针所指向的子向量和第二指针所指向的子向量被包含在包括多个子向量的表中,其中,所述表的每个条目是子向量,并且每个子向量具有与一个或多个基本码向量的向量分量相同的向量分量,其中,第一指针和第二指针被包含在另一个表中,其中,所述另一个表的条目包括第一指针和第二指针。

附图说明

为了更好地理解本申请以及如何同样地实施本申请,现在将通过示例的方式参考附图,其中:

图1a示出根据本发明的实施例的装置的示意图;

图1b示出根据本发明的实施例的有形存储介质;

图2示出根据一些实施例的音频编解码器系统;

图3示出根据本发明的实施例的方法的流程图。

具体实施方式

图1示意性地示出了根据本发明的实施例的装置1的组件。装置1例如可以是例如能够对语音、音频和视频信号中的至少一个进行编码的电子设备、或者是这种设备的组件。装置1尤其被配置为确定用于对输入向量进行编码的码向量。装置1例如可以具体化为模块。装置1的非限制性示例是移动电话、个人数字助理、便携式多媒体(音频和/或视频)播放器、以及计算机(例如,膝上型计算机或台式计算机)。

装置1包括处理器10,仅举几个非限制性示例,处理器10例如可以具体化为微处理器、数字信号处理器(dsp)或专用集成电路(asic)。处理器10执行存储在程序存储器11中的程序代码,并且将主存储器12用作工作存储器,例如以至少临时存储中间结果,而且还存储例如预定义和/或预计算的数据库。存储器11和12中的一些或全部也可以包括在处理器10中。仅举几个非限制性示例,存储器11和/或12例如可以具体化为只读存储器(rom)、随机存取存储器(ram)。存储器11和12中的一个或两者可以固定地连接到处理器10或者是可从处理器10移除的,例如采用存储卡或棒的形式。

处理器10还控制输入/输出(i/o)接口13,处理器经由该接口接收或向其它功能单元提供信息。

如下所述,处理器10至少能够执行用于确定用于对输入向量进行编码的码向量的程序代码。然而,处理器10当然可以具有其它能力。例如,处理器10可能够例如基于采样输入值,进行语音、音频和视频编码中的至少一个。附加地或可替代地,处理器10可能够控制便携式通信和/或多媒体设备的操作。

图1的装置1还可以包括诸如例如允许装置1的用户与处理器10进行交互的用户接口的组件,或者使得装置1能够执行无线通信的具有相关联的射频(rf)电路的天线。

如在本说明书的结尾处进一步描述的,由装置1的组件构成的电路可以仅采用硬件、部分地采用硬件和软件、或者仅采用软件来实现。

应当理解,在图1至2中描述的示意性结构以及在图3中示出的方法步骤仅表示音频编解码器的一部分,并且尤其表示嵌入在编码器/解码器装置中或者在图1中示出的装置中实现的示例性地示出的量化器和去量化器的一部分。

实施例所采用的音频编解码器的一般操作在图2中示出。如在图2中示意性地所示,一般的音频编码/解码系统包括编码器和解码器两者。然而,应当理解,一些实施例可以实现以下中的一个:编码器或解码器,或者编码器和解码器两者。图2示出了系统102,其具有编码器104尤其是实现在本文中描述的结构化码本的编码器、存储或媒体通道106以及解码器108。应当理解,如上所述,一些实施例可以包括或实现编码器104或解码器108中的一个或者编码器104和解码器108两者。

编码器104压缩输入音频信号110从而产生比特流112,在某些实施例中,可以存储比特流112或者将其通过媒体通道106传输。

可以在解码器108内接收比特流112。解码器108对比特流112进行解压缩并产生输出音频信号114。比特流112的比特率和输出音频信号114相对于输入信号110的质量是定义编码系统102的性能的主要特征。

编码器104和解码器108可以包括用于量化和去量化音频编码过程的系数和参数的量化器151和去量化器152。例如,音频编码过程的参数可以包括但不限于线性预测系数(lpc)的变换表示。例如,这种lpc的变换表示可以至少包括以下中的一个:线谱频率(lsf)、线谱对(lsp)或导抗谱对(isp)。前述可以表示为包括多个向量分量的向量。

量化器151和去量化器152的结构化码本可以通过基本码向量集来定义,其中,基本码向量集中的每个基本码向量定义了相应的另一个基本码向量集。在结构化码本中,相应的另一个基本码向量集可以根据与它相关联的基本码向量来构成。因此,结构化码本可以在量化器151和去量化器152中通过包括定义了所述结构化码本的基本码向量集的表来表示。

在实施例中,包括定义了结构化码本的基本码向量集的表可被有效地存储在装置1中,作为具有多个子基本码向量的表。每个子基本码向量包括来自结构化码本的基本码向量的连续分量集,具有更少数量的分量。

通过注意到基本码向量包括在基本码向量集中是重复的连续向量分量集的模式,可以认识到可使用更少的存储器来存储定义了结构化码本的基本码向量。在实施例中,可以通过具有子码基本向量来利用这些重复模式,其中这些子码基本向量的分量是在整个基本码向量集中存在的重复分量模式。

通过使用c-源示例的进一步解释,结构化码本可以通过以下基本码向量来定义。应当观察到,在该特定示例中,每个基本码向量的向量维度是6。

在这种情况下,子基本码向量的表可以基于三个向量维度,是结构化码本的基本码向量的向量维度的一半,并且可以包括以下子基本码向量。

在该特定示例中,用于定义结构化码本的第一基本码向量可以表示为子基本码向量表中的第一子基本码向量{1,0,0}。换句话说,用于定义结构化码本的第一基本码向量的第一组分量0至2和第二组分量3至5两者都可以通过第一子基本码向量来表示。

在使用该特定示例的另一种情况下,用于定义结构化码本的第二基本码向量可以通过在第一子基本码向量{1,0,0}后面的第二子基本码向量{2,0,0}来表示。

规定如何根据子基本码向量表来构成每个基本码向量的映射可以包含在指针表中,从而指针表中的每个条目采用一定数量的指向子基本码向量表中的条目的指针的形式来指定制定特定基本码向量所需的子基本码向量。指针表中的每个条目中的指针数量与制定与指针表中的该特定条目相关联的基本码向量所需的子基本码向量的数量相对应。

由指针表中的特定条目所指向的子基本码向量被组合成单个基本码向量。

返回到上述c-源示例作为解释,我们可以将指针表制定为:

在这种情况下,每个条目由两个整数构成,其中每个整数指向子基本码向量表中的条目。因此,在上述示例中,定义了结构化码本的第一基本码向量被给出为指针表中的第一条目。在这种情况下,第一个整数指向子基本码向量表中的条目“0”,从而表示基本码向量的前三个分量0至2是与子基本码向量表中的第一条目相关联的子基本码向量。第二个整数也指向子基本码向量表中的条目“0”,从而同样表示基本码向量的后三个分量3至5是与子向量表中的第一条目相关联的子基本码向量。

因此,应当理解,用于定义结构化码本的基本码向量表可以采用子基本码向量表和附加的指针表的形式进行存储,其中附加的指针表包括指向子基本码向量表中的子基本码向量的条目。由于子基本码向量表和附加的指针表只需要较少的存储,因此,这可以带来需要更少的存储器来存储用于定义结构化码本的基本码向量的技术效益。

进一步地,装置1中的处理器10可被设置为通过组合来自子基本码向量表中的子基本码向量来执行制定基本码向量的方法,其中,用于制定特定基本码向量的子基本码向量通过来自指针表的条目来指定,如在上面所概述的。

相应地,图3示出了可以由诸如图1中的10所示的处理器执行的处理步骤。

处理步骤301示出了从指定了基本码向量的指针表中获取特定条目的步骤。

处理步骤303示出了从子基本码向量表中获取多个子基本码向量的步骤。每个子基本码向量使用通过根据步骤301的来自指针表中的条目给出的指针来获取。

处理步骤305示出了将所获取的子基本码向量组合成基本码向量的步骤。放置子基本码向量以构成基本码向量的顺序通过指针的顺序给出,如通过来自指针表的条目所提供。

通常,用于保存量化表等的存储器可以采用只读存储器(rom)的形式。

例如,对于使用总共406个量化器结构的3gpp标准化增强语音服务(evs)的特定实现,当使用完整表来存储基本码向量集时,表rom消耗大约4.872k16比特字。然而,当使用上述子码基础向量表和伴随的指针表的结构时,该数字减少到3.797k16比特字。

为了进一步减少用于存储上述量化表的存储器需求,在上面给出的特定c-源码示例中被示出为lead_p_idx的指针表当前被示出为使用数据类型short来存储每个成员,数据类型short是有符号的16比特字,值的可能范围是-32,768至32,767。可替代地,在一些实施例中,指针表可以使用数据类型unsignedchar(uchar)来存储表的成员。在这种情况下,指针表的每个成员或数值被存储为无符号的8比特数值,因此,每个数值被限制在0至255之间的值的可能范围内。当与使用16比特字存储类型相比较时,这将占用指针表(lead_p_idx)所需的存储的一半。

在这一点上,应当理解,诸如第三代合作伙伴计划(3gpp)标准化的evs编解码器的许多音频/语音编解码器被设计为工作在多个比特/编码速率和操作模式下是有利的,并且每个操作模式和源比特率可能需要专门适合于特定操作条件的特定结构化码本。在以上描述的上下文中,以这种方式操作的音频/语音编解码器(诸如evs编解码器)可以使用许多不同的结构化码本,并且每个结构化码本可能需要不同数量的基本码向量以定义所述结构化码本。

例如,上述所获取的leader_short表包含子基本码向量,其用于构成用于定义特定结构化码本的基本码向量。在某些操作模式下,可能需要访问子基本码向量表(leader_short)中的超过255的条目。在这些情况下,指向子基本码向量表(leader_short)中的条目的uchar值将不能够直接指向该表中大于255的任何条目。

针对音频编解码器的这些操作模式(或编码比特率),指针表(lead_p_idx)可被设置为使用模算术,以用于存储比被分配给指针值的数据类型所允许的最大数值更大的值的目的。换句话说,当指针值超过它被分配的数据类型的最大范围时,被分配给指针的值可被“折叠(wrappedaround)”。例如,在上述用于存储指针值的数据类型是uchar类型的情况下,数值可以根据模256运算来进行存储,以使得需要指向子基本码向量表中大于256的条目的指针被分配指针值0,1,2...。

指针的实际值可以通过将所存储的指针的值加上模数来获得。因此,继续上述示例,实际的指针值可以通过将指针表中所存储的值加上256来获得。

应当理解,上述使用模运算以扩展来自指针表中的指针值的可能范围的机制取决于音频/语音编解码器的操作模式(或操作比特率)。也就是说,对于一些操作模式(或操作比特率),可能需要访问子基本码向量表的区域,其超过用于存储指针值的被分配数据类型的数值范围。

其它实施例可以通过确保指针表的每个条目遵循特定规则或模式来扩展被分配给指针的数据类型所允许的有效最大值。例如,表的每个条目中的指针的相对值可用于指示特定条目的指针可被视为在数据类型的数值范围内的值,或者表示超过数据类型的标准数值范围因此需要进一步处理以获得真实值的数值的值。

指示指针表中的指针值是否可被视为(或不被视为)在数据类型的数值范围内的正常数值所需的信令可以固有地并入表和码本的结构中。因此,没有产生额外的信令开销。换句话说,基本码向量以及因此表子基本码向量表中的子基本码向量可被构造以使得如果指针值被视为在数据类型的数值范围内的值,则指针表中的每个条目具有一个特定规则/模式,如果指针值被视为位于数据类型的数值范围之外的值,则指针表中的每个条目具有另一个模式/规则。

例如,一个这样的规则/模式可以通过以下方式来实现:设计结构化码本以使得(对于结构化码本中的每个基本码向量)当指针表的条目中的指针值被视为在数据类型的数值范围内的正常数值时,第一子基本码向量在指针表中具有被分配给给它的指针值,其大于或等于被分配给第二子基本向量的指针值。相反,当将指针表的条目中的指针值被视为在数据类型的数值范围之外的数值时,可以使用不同的模式/规则以存储指针值。例如,模式/规则可以使得当第一子基本码向量指针值小于第二子基本码向量指针值时,表的条目中的指针值应被视为位于数据类型的数值范围之外的数值。

例如,使用上述c-源码示例并且进一步解释,子基本码向量leaders_short表可被构造以使得结构化码本的每个基本码向量no_lead在指针表lead_p_idx中具有如下给出的条目。指针表lead_p_idx的数据类型是uchar。

可以看出,表中的一些条目遵循如上所述的模式/规则即第一指针值等于或大于第二指针值。该条件仅适用于位于被分配用于存储指针值的数据类型的数值范围内的指针值。例如,如上所述,如果数据类型是unsignedchar,则指针值的动态范围将位于0至255之间的范围内。因此,与这些特定条目相关联的所存储的指针被视为正常数值,因为不需要执行模256运算以获得实际指针值。

通过检查上述表lead_p_idx,可以看出一些条目的第一指针值小于第二指针值。如上所述,该指针的特定设置表示在特定指针表条目中所存储的第一指针的值表示第一指针将被视为位于uchar数据类型的数值范围之外的值,换句话说,指针值大于255。指针的实际值可以通过将所存储的指针的值加上模数来获得。继续上述示例,第一指针的实际值可以通过将指针表中所存储的值加上256来获得。

在一些实施例中,所述定义结构化码本的基本码向量集可以表示领导类,其中,每个领导类包括不同的领导向量和所述领导向量的置换。因此,所述领导向量和所述领导向量的置换可以表示通过基本码向量集中的基本码向量定义的另一个基本码向量集。例如,领导向量是n维向量(其中,n表示整数),其(正)分量是有序的(例如,递减地)。进而,与领导向量对应的领导类包括领导向量和通过领导向量的全部有符号排列而获得的所有向量(具有一些可能的限制)。

领导类并集可以通过与多个尺度表示中的相同尺度表示和相应的尺度表示相关联的基本码向量集来定义。例如,领导类并集可与通过用尺度表示来对基本码向量的关联步骤的基本码向量进行缩放而获得的码向量集相关联。

这样的领导类并集可被认为是截断。因此,如果多个尺度表示是n个尺度表示,则可以定义n个领导类并集,其中,每个领导类的并集是通过相应的尺度表示和与相应的尺度表示相关联的基本码向量集中的一组基本码向量来定义的。

因此,多个尺度表示和多个基本码向量组可以定义多个领导类并集,从而定义码本,其中,作为示例,每个领导类并集可被认为是缩放的领导类的并集。

在这些语音和音频编解码器内使用的码本例如可以基于晶格结构,如a.vasilache,b.dumitrescu和i.tabus在爱思唯尔(elsevier)的信号处理,2002年第82卷第563-586页的参考文献“多尺度领导晶格vq及其在lsf量化中的应用”中所描述的,该参考文献通过引用全部并入本文中。例如,可以考虑将d10+晶格用于量化,但也可以考虑任何其它适合的晶格量化。

如在本申请中使用的,术语“电路”是指如下的全部:

(a)仅硬件的电路实现(诸如仅采用模拟和/或数字电路的实现);

(b)电路和软件(和/或固件)的组合,诸如(如适用的):

(i)处理器的组合;或者

(ii)处理器/软件的部分(包括数字信号处理器)、软件和存储器,其协同工作以使得诸如移动电话或定位设备的装置执行各种功能;以及

(c)电路,诸如微处理器或微处理器的一部分,其需要软件或固件以工作,即使该软件或固件在物理上不存在。

“电路”的定义适用于本申请(包括任何权利要求)中的该术语的所有使用。作为进一步的示例,如在本申请中所使用的,术语“电路”还涵盖仅一个处理器(或多个处理器)或处理器的一部分及它(或它们的)伴随软件和/或固件的实现。例如,如果适用于特定的权利要求元素,术语“电路”还涵盖用于移动电话或定位设备的基带集成电路或应用处理器集成电路。

关于本申请中描述的本发明的各方面及其实施例,应当理解,任何动作或步骤的公开将被理解为对应装置的对应(功能)配置(例如,计算机程序代码和/或处理器和/或对应装置的一些其它装置的配置),被定义以在被执行时引起这种动作或步骤的对应计算机程序代码的对应(功能)配置,和/或系统(或其部分)的对应(功能)配置的公开。

在本申请中提出的本发明的各方面及其实施例以及它们的单个特征还将被理解为以所有可能的彼此组合公开。还应当理解,以上呈现的流程图中的方法步骤的顺序不是强制性的,替代顺序也可以是可能的。

在上面已经通过非限制性示例描述了本发明。特别地,应当注意,存在对于本领域技术人员而言显而易见的替代方式和变形,并且这些替代方式和变形可以在不背离所附权利要求的范围和精神的情况下实现。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1