数字音频信号中的可变字母表尺寸

文档序号:1439829 发布日期:2020-02-14 浏览:24次 >En<

阅读说明:本技术 数字音频信号中的可变字母表尺寸 (Variable alphabet size in digital audio signals ) 是由 A·周 A·卡尔克 G·塞鲁西 于 2018-04-24 设计创作,主要内容包括:音频编码器可以将数字音频信号解析为多个帧,每个帧包括指定数量的音频样本;执行对每个帧的音频样本的变换,以便产生每个帧的多个频域系数;将每个帧的所述多个频域系数划分到每个帧的多个带中,每个带具有表示时间分辨率和频率分辨率的重塑参数;以及将数字音频信号编码为包括重塑参数的比特流。对于第一带,可以使用第一字母表尺寸对重塑参数进行编码。对于第二带,可以使用与第一字母表尺寸不同的第二字母表尺寸对重塑参数进行编码。使用不同的字母表尺寸可以允许比特流中的更紧凑的压缩。(The audio encoder may parse the digital audio signal into a plurality of frames, each frame including a specified number of audio samples; performing a transform of the audio samples of each frame to produce a plurality of frequency domain coefficients for each frame; dividing the plurality of frequency domain coefficients for each frame into a plurality of bands for each frame, each band having a reshaping parameter that represents a temporal resolution and a frequency resolution; and encoding the digital audio signal into a bitstream comprising the reshaping parameter. For the first band, the reshaping parameter may be encoded using a first alphabet size. For the second band, the reshaping parameter may be encoded using a second alphabet size different from the first alphabet size. Using different alphabet sizes may allow for more compact compression in the bitstream.)

数字音频信号中的可变字母表尺寸

相关申请的交叉引用

本申请要求于2018年3月20日提交的美国专利申请序列No.15/926,089的优先权,该申请要求于2017年4月25日提交的美国临时申请No.62/489,867的权益,它们的内容都通过引用整体并入本文。

技术领域

本公开涉及对音频信号进行编码或解码。

背景技术

音频编解码器可以将时域音频信号编码为数字文件或数字流,并且可以将数字文件或数字流解码为时域音频信号。正在努力改善音频编解码器,诸如以减小编码文件或流的尺寸。

发明内容

编码系统的示例可以包括:处理器;以及存储可由处理器执行的指令的存储器设备,指令可由处理器执行以执行用于对音频信号进行编码的方法,该方法包括:接收数字音频信号;将数字音频信号解析为多个帧,每个帧包括指定数量的音频样本;对每个帧的音频样本执行变换,以便产生每个帧的多个频域系数;将每个帧的多个频域系数划分到每个帧的多个带中,每个带具有表示时间分辨率和频率分辨率的重塑(reshaping)参数;将数字音频信号编码为包括重塑参数的比特流,其中:对于第一带,使用第一字母表尺寸对重塑参数进行编码;对于不同于第一带的第二带,使用与第一字母表尺寸不同的第二字母表尺寸对重塑参数进行编码;以及输出比特流。

解码系统的示例可以包括:处理器;以及存储可由处理器执行的指令的存储器设备,指令可由处理器执行以执行用于对经编码的音频信号进行解码的方法,该方法包括:接收比特流,该比特流包括多个帧,每个帧被划分到多个带中;对于每个帧的每个带,从比特流中提取重塑参数,该重塑参数表示该带的时间分辨率和频率分辨率,其中:对于第一带,使用第一字母表尺寸将重塑参数嵌入在比特流中;并且对于不同于第一带的第二带,使用与第一字母表尺寸不同的第二字母表尺寸将重塑参数嵌入在比特流中;以及使用重塑参数对比特流进行解码,以生成经解码的数字音频信号。

编码系统的另一个示例可以包括:接收器电路,用于接收数字音频信号;成帧器电路,用于将数字音频信号解析为多个帧,每个帧包括指定数量的音频样本;变换器电路,用于对每个帧的音频样本执行变换,以便产生每个帧的多个频域系数;频带划分器电路,用于将每个帧的多个频域系数划分到每个帧的多个带中,每个带具有表示时间分辨率和频率分辨率的重塑参数;编码器电路,用于将数字音频信号编码为包括每个带的重塑参数的比特流,其中:对于第一带,重塑参数使用第一字母表尺寸进行编码;对于不同于第一带的第二带,使用与第一字母表尺寸不同的第二字母表尺寸对重塑参数进行编码;以及输出电路,用于输出比特流。

附图说明

图1示出了根据一些示例的编码系统的示例的框图。

图2示出了根据一些示例的编码系统的另一个示例的框图。

图3示出了根据一些示例的解码系统的示例的框图。

图4示出了根据一些示例的解码系统的另一个示例的框图。

图5示出了根据一些示例的与对数字音频信号进行编码相关的多个量。

图6示出了根据一些示例的用于对音频信号进行编码的方法的示例的流程图。

图7示出了根据一些示例的用于对经编码的音频信号进行解码的方法的示例的流程图。

图8-11示出了根据一些示例的用于对音频信号进行编码和解码的伪代码的示例。

图12示出了根据一些示例的编码系统的示例的框图。

贯穿几个视图,对应的附图标记指示对应的部分。附图中的元素不一定是按比例绘制的。附图中所示的配置仅仅是示例,并且不应当以任何方式解释为限制本发明的范围。

具体实施方式

在诸如编解码器之类的音频编码和/或解码系统中,可以使用具有不同尺寸的字母表来编码不同带中的重塑参数。使用不同的字母表尺寸可以允许在比特流(例如,经编码的数字音频信号)中进行更紧凑的压缩,如下面更详细地解释的。

图1示出了根据一些示例的编码系统100的示例的框图。图1的配置仅仅是编码系统的一个示例;也可以使用其它合适的配置。

编码系统100可以接收数字音频信号102作为输入,并且可以输出比特流104。输入和输出信号102、104可以各自包括在本地或可访问的服务器上保存的一个或多个离散文件,和/或在本地或可访问的服务器上生成的一个或多个音频流。

编码系统100可以包括处理器106。编码系统100还可以包括存储器设备108,其存储可由处理器106执行的指令110。指令110可以由处理器106执行以执行用于对音频信号进行编码的方法。下面详细解释用于对音频信号进行编码的这种方法的示例。

在图1的配置中,编码在软件中执行,通常是由处理器执行,该处理器还可以在计算设备中执行附加任务。作为替代,编码也可以在硬件中执行,诸如通过被硬连线以执行编码的专用芯片或专用处理器。这种基于硬件的编码器的示例在图2中示出。

图2示出了根据一些示例的编码系统200的另一个示例的框图。图2的配置仅仅是编码系统的一个示例;也可以使用其它合适的配置。

编码系统200可以接收数字音频信号202作为输入,并且可以输出比特流204。编码系统200可以包括专用编码处理器206,其可以包括被硬连线以执行特定编码方法的芯片。下面详细解释用于对音频信号进行编码的这种方法的示例。

图1和2的示例分别示出了可以在软件和硬件中操作的编码系统。下面的图3和4分别示出了可以在软件和硬件中操作的相当的解码系统。

图3示出了根据一些示例的解码系统的示例的框图。图3的配置仅仅是解码系统的一个示例;也可以使用其它合适的配置。

解码系统300可以接收比特流302作为输入,并且可以输出经解码的数字音频信号304。输入和输出信号302、304可以各自包括在本地或可访问的服务器上保存的一个或多个离散文件,和/或在本地或可访问的服务器上生成的一个或多个音频流。

解码系统300可以包括处理器306。解码系统300还可以包括存储器设备308,其存储可由处理器306执行的指令310。指令310可以由处理器306执行以执行用于对音频信号进行解码的方法。下面详细解释用于对音频信号进行解码的这种方法的示例。

在图3的配置中,解码在软件中执行,通常是由处理器执行,该处理器还可以在计算设备中执行附加任务。作为替代,解码也可以在硬件中执行,诸如通过被硬连线以执行解码的专用芯片或专用处理器。这种基于硬件的解码器的示例在图4中示出。

图4示出了根据一些示例的解码系统400的另一个示例的框图。图4的配置仅仅是解码系统的一个示例;也可以使用其它合适的配置。

解码系统400可以接收比特流402作为输入,并且可以输出经解码的数字音频信号404。解码系统400可以包括专用解码处理器406,其可以包括被硬接线以执行特定解码方法的芯片。下面详细解释用于对音频信号进行解码的这种方法的示例。

图5示出了根据一些示例的与对数字音频信号进行编码相关的多个量(quantity)。比特流的解码一般涉及与比特流的编码相同的量,但是数学运算相反地执行。图5中所示的量仅仅是这些量的示例;也可以使用其它合适的量。图5中所示的每个量均可以与图1-4中所示的任何编码器或解码器一起使用。

编码器可以接收数字音频信号502。数字音频信号502在时域中,并且可以包括表示音频信号随时间演化的振幅的整数或浮点数的序列。数字音频信号502可以是流的形式(例如,没有指定的开始和/或结束),诸如来自演播室的现场馈送。可替代地,数字音频信号502可以是离散文件(例如,具有开始和结束以及指定的持续时间),诸如服务器上的音频文件、从光盘中翻录的未压缩的音频文件,或未压缩格式的歌曲的混音文件。

编码器可以将数字音频信号502解析为多个帧504,其中每个帧504包括指定数量的音频样本506。例如,帧504可以包括1024个样本506或另一个合适的值。一般而言,将数字音频信号502分组为帧504允许编码器将其处理高效地应用于明确定义的数量的样本506。在一些示例中,这样的处理可以逐帧变化,从而每个帧可以独立于其它帧来处理。

编码器可以执行每个帧504的音频样本506的变换508。在一些示例中,变换可以是改进的离散余弦变换。可以使用其它合适的变换,诸如傅立叶、拉普拉斯等。变换508将时域的量(诸如帧504中的样本506)转换成频域的量(诸如帧504的频域系数510)。变换508可以为每个帧504产生多个频域系数510。在一些示例中,由变换508产生的频域系数510的数量可以等于帧中的样本506的数量,诸如1024。频域系数510描述帧中存在特定频率的多少信号。

在一些示例中,可以将时域帧细分为连续样本的子块,并且可以将变换应用于每个子块。例如,可以将1024个样本的帧划分为每个都是128个样本的八个子块,并且每个这样的子块可以被变换为128个频率系数的块。对于其中将帧划分为子块的示例,变换可以被称为短变换。对于其中帧未被划分为子块的示例,变换可以被称为长变换。

编码器可以将每个帧504的多个频域系数510划分到每个帧504的多个带512中。在一些示例中,每个帧可以有二十二个带512,但是也可以使用其它值。每个带512可以表示帧504中的频率范围510,使得所有频率范围的级别包括帧504中表示的所有频率。对于使用短变换的示例,可以将频率系数的每个得到的块划分为相同数量的带,这些带可以与用于长变换的带一一对应。对于使用短变换的示例,块中的给定带的系数的数量与给定带在长变换情况下的系数的数量相比成比例地变小。例如,帧可以被划分为八个子块,短变换块中的带具有长变换中的对应带中的系数数量的八分之一。长变换中的带可以具有三十二个系数;在短变换中,同一个带在八个频率块的每一个块中可以具有四个系数。短变换中的带可以与八乘四的矩阵相关联,该矩阵在时域中的分辨率为八并且在频域中的分辨率为四。长变换中的带可以与一乘三十二的矩阵相关联,该矩阵在时域中的分辨率为一并且在频域中的分辨率为三十二。因此,每个带512可以包括表示时间分辨率514和频率分辨率516的重塑参数518。在一些示例中,重塑参数518可以通过提供相对于时间分辨率514和频率分辨率516的默认值的改变的值来表示时间分辨率514和频率分辨率516。

一般而言,编解码器的目标是使用受编码文件的特定数据速率或比特速率控制的有限数量的数据来确保特定帧的频域表示尽可能准确地代表帧的时域表示。例如,数据速率可以包括1411kbps(千比特每秒)、320kbps、256kbps、192kbps、160kbps、128kbps或其它值。一般而言,数据速率越高,帧的表示越准确。

为了追求仅使用有限数据速率来提高准确性的目标,编解码器可以在每个带的时间分辨率和频率分辨率之间进行权衡。例如,编解码器可以将特定带的时间分辨率加倍,同时将该带的频率分辨率减半。执行这样的操作(例如,将时间分辨率交换为频率分辨率,或反过来)可以被称为对带的时频结构进行重塑。虽然在初始变换中所有带的时间分辨率都可以相同,但是一般而言在重塑之后,帧中一个带的时频结构可以独立于帧中其它带的时频结构,使得每个带都可以独立于其它带被重塑。

在一些示例中,每个带可以具有等于该带的时间分辨率514和该带的频率分辨率516的乘积的尺寸。在一些示例中,一个带的时间分辨率514可以等于八个音频样本,而另一个带的时间分辨率514可以等于一个音频样本。也可以使用其它合适的时间分辨率514。

在一些示例中,编码器可以以互补的方式调整每个帧的每个带的时间分辨率514和频率分辨率516,而不改变带的尺寸(例如,不改变时间分辨率514和频率分辨率516的乘积)。编码器可以利用重塑参数来量化这种调整。

重塑参数可以是选定的整数。例如,如果重塑参数为3,则时间分辨率可以乘以量23,并且频率分辨率可以乘以量2-3。可以使用其它合适的整数,包括正整数(意味着时间分辨率514增大而频率分辨率516减小)、负整数(意味着时间分辨率减小而频率分辨率增大)和零(意味着时间分辨率514和频率分辨率516不变,例如乘以量20)。

在一些示例中,可以将可允许的重塑参数值的数量限制为有限数量的整数。作为具体示例,可允许的重塑参数值可以包括0、1、2和3,共四个整数。作为另一个具体示例,可允许的重塑参数值可以包括0、1、2、3和4,共五个整数。作为另一个具体示例,可允许的重塑参数值可以包括0、-1、-2、-3和-4,共五个整数。作为另一个具体示例,可允许的重塑参数值可以包括0、-1、-2和-3,共四个整数。对于这些示例,描述这些指定范围的整数的术语是字母表尺寸。具体而言,整数范围的字母表尺寸是该范围内的可允许的值的数量。对于上述四个示例,字母表尺寸为四或五。

在一些示例中,单个帧可以包括具有可使用第一字母表尺寸编码的重塑参数的一个或多个带,并且还可以包括具有可使用不同于第一字母表尺寸的第二字母表尺寸编码的重塑参数的一个或多个带。以这种方式使用不同的字母表尺寸可以允许在比特流中进行更紧凑的压缩。

编码器可以将表示每个带的重塑参数的数据编码到比特流中。将重塑参数编码到比特流中可以允许解码器在应用逆变换之前反转时间/频率重塑。一种直截了当的方法可以是为每个帧形成重塑序列,其中重塑序列的每个元素是该帧中的带的重塑参数。对于具有二十二个带的帧,这将产生由二十二个重塑参数组成的重塑序列。对于每个帧,重塑序列可以描述每个带的重塑参数。在一些示例中,编码器可以将每个重塑序列中的每个条目(entry)规范化为该条目的可能值的范围,可能值的每个范围与该带的指定的重塑参数范围对应。

作为对这种直截了当的方法的改进,编码器可以减小完全描述这二十二个整数所需的数据的尺寸。在这种改进的方法中,编码器可以计算四个序列的长度(例如,四个序列中每个序列的比特或整数的数量)、选择四个序列中最短的序列,并将表示最短序列的数据嵌入到比特流中。最短序列是包括最少比特数的序列,或者是最紧凑地描述二十二个整数的序列。下面介绍这四个序列。

编码器可以使用一元码(unary code)为每个帧形成第一序列,第一序列将帧的重塑参数描述为表示每个带的重塑参数的序列。编码器可以为每个帧形成第二序列,第二序列使用准均匀码(quasi-uniform code)将帧的重塑参数描述为表示每个带的重塑参数的序列。编码器可以为每个帧形成第三序列,第三序列使用一元码将帧的重塑参数描述为表示相邻带之间的重塑参数的差异的序列。编码器可以为每个帧形成第四序列,第四序列使用准均匀码将帧的重塑参数描述为表示相邻带之间的重塑参数的差异的序列。

编码器然后可以选择第一序列、第二序列、第三序列和第四序列中的最短序列。对于每个帧,编码器可以将所选择的最短序列嵌入到比特流中。编码器还可以将表示指示符的数据嵌入到每个帧的比特流中,该指示符指示这四个序列中的哪一个被包括在比特流中。

下面的附录提供了上面讨论的量的严格数学定义。

图6示出了根据一些示例的用于对音频信号进行编码的方法600的示例的流程图。方法600可以由图1或2的编码系统100或200或由任何其它合适的编码系统执行。方法600仅是用于对音频信号进行编码的一种方法。也可以使用其它合适的编码方法。

在操作602处,编码系统可以接收数字音频信号。

在操作604处,编码系统可以将数字音频信号解析为多个帧,每个帧包括指定数量的音频样本。

在操作606处,编码系统可以执行对每个帧的音频样本的变换,以便为每个帧产生多个频域系数。

在操作608处,编码系统可以将每个帧的多个频域系数划分到每个帧的多个带中,每个带具有表示时间分辨率和频率分辨率的重塑参数。

在操作610处,编码系统可以将数字音频信号编码为包括重塑参数的比特流。对于第一带,可以使用第一字母表尺寸对重塑参数进行编码。对于不同于第一带的第二带,可以使用与第一字母表尺寸不同的第二字母表尺寸对重塑参数进行编码。

在操作612处,编码系统可以输出比特流。

图7示出了根据一些示例的用于对经编码的音频信号进行解码的方法700的示例的流程图。方法700可以由图3或4的解码系统300或400执行,或者由任何其它合适的解码系统执行。方法700仅是用于对经编码的音频信号进行解码的一种方法。也可以使用其它合适的解码方法。

在操作702处,解码系统可以接收比特流,该比特流包括多个帧,每个帧被划分为多个带。

在操作704处,对于每个帧的每个带,从比特流中提取重塑参数,该重塑参数表示该带的时间分辨率和频率分辨率。对于第一带,可以使用第一字母表尺寸将重塑参数嵌入在比特流中。对于不同于第一带的第二带,可以使用与第一字母表尺寸不同的第二字母表尺寸将重塑参数嵌入在比特流中。

在操作706处,解码系统可以使用重塑参数对比特流进行解码,以生成经解码的数字音频信号。

图12示出了根据一些示例的编码系统1200的示例的框图。

接收器电路1202可以接收数字音频信号。

成帧器电路1204可以将数字音频信号解析为多个帧,每个帧包括指定数量的音频样本。

变换器电路1206可以执行对每个帧的音频样本的变换,以便为每个帧产生多个频域系数。

频带划分器电路1208可以将用于每个帧的多个频域系数划分到每个帧的多个带中,每个带具有表示时间分辨率和频率分辨率的重塑参数。

编码器电路1210可以将数字音频信号编码为包括每个带的重塑参数的比特流。对于第一带,可以使用第一字母表尺寸对重塑参数进行编码。对于不同于第一带的第二带,可以使用与第一字母表尺寸不同的第二字母表尺寸对重塑参数进行编码。

输出电路1212可以输出比特流。

与本文所述的那些方案不同的许多其它变型将从本文档显而易见。例如,取决于实施例,本文所述的任何方法和算法的某些动作、事件或功能可以以不同的顺序来执行,可以被添加、合并或完全去掉(如此,不是所有描述的动作或事件对于方法和算法的实践都是必要的)。而且,在某些实施例中,动作或事件可以同时执行,诸如通过多线程处理、中断处理或者多个处理器或处理器核心或者在其它并行体系架构上,而不是连续地。此外,不同的任务或处理可以由可以一起发挥作用的不同机器和计算系统来执行。

结合本文公开的实施例描述的各种说明性逻辑块、模块、方法和算法处理和序列可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,各种说明性的部件、块、模块和处理操作已经在上面就其功能性一般地进行了描述。这种功能被实现为硬件还是软件取决于强加到整个系统上的特定应用和设计限制。所描述的功能可以针对每个特定的应用以不同的方式来实现,但是这种实现决策不应当被解释为造成从本文档的范围的偏离。

联系本文公开的实施例描述的各种说明性逻辑块和模块可以由机器实现或执行,诸如通用处理器、处理设备、具有一个或多个处理设备的计算设备、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件部件,或者被设计为执行本文描述的功能的其任意组合。通用处理器和处理设备可以是微处理器,但在备选方案中,处理器可以是控制器、微控制器或状态机、它们的组合,等等。处理器也可以被实现为计算设备的组合,诸如DSP和微处理器的组合、多个微处理器、与DSP核心结合的一个或多个微处理器、或者任何其它此类配置。

本文描述的系统和方法的实施例在多种类型的通用或专用计算系统环境或配置中具有操作性。一般而言,计算环境可以包括任何类型的计算机系统,包括但不限于基于一个或多个微处理器的计算机系统、大型计算机、数字信号处理器、便携式计算设备、个人备忘记事本、设备控制器、家电中的计算引擎、移动电话、台式计算机、移动计算机、平板计算机、智能电话以及具有嵌入式计算机的家电,这仅仅举了几个例子。

这种计算设备通常可以在具有至少某个最小计算能力的设备中找到,包括但不限于个人计算机、服务器计算机、手持式计算设备、膝上型或移动计算机、诸如手机和PDA的通信设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机、大型计算机、音频或视频媒体播放器,等等。在一些实施例中,计算设备将包括一个或多个处理器。每个处理器可以是专用微处理器,诸如数字信号处理器(DSP)、非常长指令字(VLIW)或其它微控制器,或者可以是具有一个或多个处理核心的常规中央处理单元(CPU),包括多核CPU中基于专用图形处理单元(GPU)的核心。

联系本文公开的实施例描述的方法、处理或算法的处理动作可以直接被实施在硬件中、在由处理器执行的软件模块中,或者在这两者的任意组合中。软件模块可以被包含在能够由计算设备访问的计算机可读介质中。计算机可读介质既包括易失性又包括非易失性介质,要么是可移动的、要么是不可移动的,或者是其某种组合。计算机可读介质用于存储信息,诸如计算机可读或计算机可执行指令、数据结构、程序模块或其它数据。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。

计算机存储介质包括但不限于计算机或机器可读介质或存储设备,诸如蓝光盘(BD)、数字多功能盘(DVD)、压缩盘(CD)、软盘,带驱动器、硬驱、光驱、固态存储器设备、RAM存储器、ROM存储器、EPROM存储器、EEPROM存储器、闪速存储器或其它存储器技术、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可以用于存储期望的信息并可被一个或多个计算设备访问的任何其它设备。

软件模块可以驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CDROM或任何其它形式的非暂态计算机可读存储介质或本领域中已知的物理计算机储存器。示例性存储介质可以耦合到处理器,使得处理器可以从存储介质读取信息和向存储介质写入信息。在备选方案中,存储介质可以是处理器的组成部分。处理器和存储介质可以驻留在专用集成电路(ASIC)中。ASIC可以驻留在用户终端中。作为替代,处理器和存储介质可以作为分立元件驻留在用户终端中。

如在本文档中所使用的,短语“非暂态”是指“持久或长寿的”。短语“非暂态计算机可读介质”包括任何和所有计算机可读介质,唯一例外的是过渡性传播信号。作为示例而非限制,这包括非暂态计算机可读介质,诸如寄存器存储器、处理器高速缓存和随机存取存储器(RAM)。

短语“音频信号”是表示物理声音的信号。

诸如计算机可读或计算机可执行指令、数据结构、程序模块等信息的保持也可以通过使用各种通信介质编码一个或多个调制的数据信号、电磁波(诸如载波)或其它传输机制或通信协议来实现,并且包括任何有线或无线信息输送机制。一般而言,这些通信介质指其一个或多个特性以将信息或指令编码在信号中的方式被设置或改变的信号。例如,通信介质包括有线介质,诸如有线网络或携带一个或多个调制的数据信号的直接连线连接,以及无线介质,诸如声学、射频(RF)、红外线、激光,以及用于发送、接收或收发一个或多个调制的数据信号或电磁波的其它无线介质。以上所述的任意组合也应当被包括在通信介质的范围内。

另外,实施本文描述的编码和解码系统和方法的各种实施例中的一些或所有实施例或其部分的软件、程序、计算机程序产品的一个或任意组合可以从计算机或机器可读介质或存储设备以及通信介质的任何期望的组合、以计算机可执行指令或其它数据结构的形式存储、接收、发送或读取。

本文描述的系统和方法的实施例可以在由计算设备执行的计算机可执行指令(诸如程序模块)的一般上下文中进一步描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件、数据结构,等等。本文描述的实施例还可以在其中任务由一个或多个远程处理设备执行的分布式计算环境中或者在通过一个或多个通信网络链接的一个或多个设备的云中实践。在分布式计算环境中,程序模块可以位于包括介质存储设备的计算机存储介质本地和远处。更进一步,上述指令可以部分或全部地被实现为硬件逻辑电路,其可以或可以不包括处理器。

除非另有说明或者如所使用的以其它方式在上下文中被理解,否则本文所使用的条件性语言,诸如“能够”、“可能”、“可以”、“例如”等一般意在传达某些实施例包括某些特征、元件和/或状态,而其它实施例不包括。因此,这种条件语言一般不意在暗示特征、元件和/或状态以任何方式是一个或多个实施例所需的或者一个或多个实施例必需包括用于在有或没有作者输入或提示的情况下决定这些特征、元件和/或状态包括在或者要在任何特定实施例中执行的逻辑。术语“包括”、“具有”等是同义的并且以开放的方式被包含性地使用,并且不排除附加的元件、特征、动作、操作,等等。而且,术语“或者”是在其包含的意义上(而不是在其排他的意义上)使用的,使得在用于例如连接元件的列表时,术语“或”是指列表中的一个、一些或所有元素。

虽然以上详细描述已经示出、描述并指出了如应用到各种实施例的新颖特征,但是应当理解,在不背离本公开内容的范围的情况下,可以进行所示出的设备或算法的形式和细节的各种省略、替换和变化。如将认识到的,本文描述的本发明的某些实施例可以在不提供本文阐述的所述特征和优点的形式中实施,因为一些特征可以与其它特征分开使用或实践。

而且,虽然本主题已经用特定于结构特征和方法动作的语言进行了描述,但是应当理解的是,在所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求书的示例形式被公开的。

附录

本文描述的时频改变序列编解码器和方法的实施例包括用于高效地编码和解码描述时频重塑序列的序列的技术。编解码器和方法的实施例通过异构字母表解决了序列的高效编码和解码。

一些编解码器生成比现有的编解码器中通常使用的序列复杂得多的序列。这种复杂性源于以下事实:这些序列描述了可能的时频重塑变换的更丰富集合。在一些实施例中,复杂性的来源是可能在正在处理的音频帧的上下文上、从具有不同尺寸或范围(取决于坐标)的四个不同字母表中提取序列的元素。这些序列的直截了当的编码是昂贵的,并且抵消了更丰富集合的优点。

编解码器和方法的实施例描述了非常高效的方法,该方法允许经由各种字母表变换对异构字母表进行统一处理,并优化编码参数以获得最短的可能描述。编解码器和方法的实施例的一些特征包括对异构字母表的统一处理、多个编码模态的定义以及最小化编码的长度的模态的选择。这些特征是提供编解码器和方法的实施例的一些优点的内容的一部分,包括允许使用时频变换的更丰富的集合。

第1节:序列的定义

改进的离散余弦变换(MDCT)变换引擎当前以两种模式操作:长变换(默认情况下在大多数帧中使用)和短变换(在被认为包含瞬态的帧中使用)。如果给定带中MDCT系数的数量为N,那么在长变换模式下,这些系数被组织为一个包含N个频隙的时隙(1×N)。在短变换模式下,系数被组织为八个时隙,每个时隙包含N/8个频隙(8×N/8)。

时频改变序列或向量是整数的序列,每个带一个,高达对于该帧有效的有效带的数量。每个整数指示对于对应的带,如何修改通过变换定义的原始时间/频率结构。如果带的原始结构为T×F(T个时隙,F个频隙),并且改变值为c,那么通过应用适当的局部变换,将结构改变为2cT×2-cF。c的容许值的范围由整数约束确定,该整数约束取决于原始模式是长还是短以及取决于带的尺寸,并且受支持的时频配置的数量的限制。

如果带的尺寸小于16个MDCT区间,那么该带被称为窄的。否则,该带被称为宽的。所有带尺寸都可以是8的倍数,并且在当前实施方式中,以48kHz的采样率,编号为0-7的带可以是窄的,而编号为8-21的带可以是宽的;以44kHz的采样率,编号为0-5的带可以是窄的,而编号为6-21的带可以是宽的。

以下段落示出了针对变换为长还是短以及带为窄还是宽的所有组合的可能改变值c的集合。

对于窄且长:{0,1,2,3}

对于宽且长:{0,1,2,3,4}

对于窄且短:{-3,-2,-1,0}

对于宽且短:{-3,-2,-1、0、1}

第2节:序列编码

第2.1节:基本元素

编码处理的输入是序列或向量,c=[c0,c1,…,cM-1],其中量M是有效带的数量,并且值ci在上述段落的适当范围内。

从序列c可以导出第一差异序列或向量d=[d0,d1,…,dM-1],其中d0=c0,并且di=ci-ci-l,0<i<M。定义编码的参数d,从而发信号通知哪个序列被编码在比特流中:当参数d=0时,为序列c,或者当参数d=1时,为序列d。下面讨论如何确定参数d。

给定要编码的序列或向量s=[s0,s1,…,sM-1],它可能是序列c或序列d,我们定义:

量head(s)是序列s的从第一个坐标延伸到最后一个非零坐标的子序列的长度。这个子序列被称为s的头部。注意的是,当且仅当序列s为全零序列时,head(s)=0。

量head(s)编码如下。如果量head(s)等于零,那么编码器写入零比特并停止。对于这种情况,零比特表示全为零的整个重塑向量,因此不需要进一步的编码。如果量head(s)大于零,那么编码器使用尺寸为M的字母表上的准均匀码对量head(s)-1进行编码。

尺寸为alpha的字母表上的准均匀码使用

Figure BDA0002332375810000171

比特或者比特来编码{0,1,…,alpha-1}中的整数,如下所示:

Figure BDA0002332375810000173

n1=N-alpha,n2=alpha-n1.

符号x,0<=x<n1通过其二元表示被编码为L1个比特。

符号x,n1<=x<n1+n2通过x+n1的二元表示被编码为L2个比特。

s的头部中的符号被逐个符号地编码。在编码之前,使用取决于参数d、长或短变换以及窄或宽带的选择的映射来映射每个符号。映射在伪代码函数MapTFSymbol中定义,如图8所示。假设输入符号序列s、变量d以及布尔量is_long和is_narrow作为参数给出。

图8示出了映射,在所有情况下,该映射都将产生范围为[0,alpha)内的非负整数(即,{0,1,…,alpha-1}),其中,量alpha对于窄带为4,并且对于宽带为5。对于映射的符号有两种代码选择,它们用二元标志k来参数化:

k=0:尺寸为alpha的字母表上的一元码。一元码通过i个“0”后面跟着“1”(其标记编码的结束)的序列对{0,1,…,alpha-2}中的整数i进行编码。整数alpha-1由alpha-1个“0”的序列来编码,但不以“1”结尾。

k=1:在尺寸为alpha的字母表上的准均匀码。

下面讨论如何确定二元标志k。

第2.2节:编码

假设参数d和k是已知的。对(d,k)被编码为一个符号,如图9中所示那样获得。所得的符号用Golomb码进行编码;置换阵列map_dk_pair以对(d,k)出现的概率的降序次序分派索引,其中(d=l,k=0)最有可能,并且接收最短的码字。

在图10的伪代码中概述了编码过程。变量seq表示输入序列c。带的数量在全局变量num_bands中可用。

第2.3节:参数优化

为了确定参数d和k,编码器尝试使用二元值的所有四种组合,然后挑选给出最短代码长度的组合。这是使用不需要实际编码的代码长度函数完成的。

第3节:序列解码

除了它从比特流中读取参数d和k并且不需要对其进行优化之外,解码器只是逆转编码器的步骤。在图11的伪代码中概述了解码过程,其中数量num_bands是已知的带数量。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:使用跟踪信号的后线性化系统和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类