首页> 中国专利> 用于统一语音和音频解码改进的方法和装置

用于统一语音和音频解码改进的方法和装置

摘要

本文描述了用于对编码的MPEG‑D USAC比特流进行解码的方法、装置和计算机产品。本文描述了降低计算复杂度的这种方法、装置和计算机产品。

著录项

  • 公开/公告号CN115668365A

    专利类型发明专利

  • 公开/公告日2023-01-31

    原文格式PDF

  • 申请/专利权人 杜比国际公司;

    申请/专利号CN202180036466.5

  • 申请日2021-05-18

  • 分类号G10L19/02;G10L19/16;G10L19/18;G10L19/07;

  • 代理机构北京市汉坤律师事务所;

  • 代理人魏小薇;吴丽丽

  • 地址 爱尔兰都柏林

  • 入库时间 2023-06-19 18:25:54

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-01-31

    公开

    国际专利申请公布

说明书

相关申请的交叉引用

本申请要求以下优先申请的优先权:于2020年5月20日提交的美国临时申请63/027,594(参考号:D20046USP1)和于2020年5月20日提交的欧洲申请20175652.5(参考号:D20046EP),这些申请通过引用并入本文。

技术领域

本公开总体涉及用于对编码的MPEG-D USAC比特流进行解码的方法和装置。本公开进一步涉及降低计算复杂度的这种方法和装置。此外,本公开还涉及相应的计算机程序产品。

尽管本文将特别参考该公开内容来描述一些实施例,但是将理解的是,本公开不限于这种使用领域并且可应用于更广泛的背景。

背景技术

在整个公开内容中对背景技术的任何讨论绝不应视为承认这种技术是本领域众所周知的或形成本领域公知常识的一部分。

如国际标准ISO/IEC 23003-3(以下称为MPEG-D USAC标准)中所指定的,用于统一语音和音频编码(USAC)的解码器包括需要多个复杂计算步骤的多个模块(单元)。这些计算步骤中的每一个都可能对实施这些解码器的硬件系统造成负担。这些模块的示例包括前向混叠消除FAC模块(或工具)以及线性预测编码LPC模块。

在自适应流媒体的背景下,当切换到不同的配置(例如,不同的比特率,比如在MPEG-DASH中的适配集内配置的比特率)时,为了从开始就准确地再现信号,需要向解码器供应表示节目的对应时间段的帧(AU

因此,要利用新的(当前)配置进行解码的第一帧AU

鉴于上述情况,因此存在对降低计算复杂度的MPEG-D USAC解码器的过程和模块的实施方式的需要。

发明内容

根据本公开的第一方面,提供了一种用于对编码的MPEG-D USAC比特流进行解码的解码器。该解码器可以包括被配置为接收编码的比特流的接收器,其中,比特流表示样本值(在下文中称为音频样本值)的序列并且包括多个帧,其中,每个帧包括相关联的编码音频样本值,其中,比特流包括预卷元素,该预卷元素包括解码器为建立完整信号以便能够输出与当前帧相关联的有效音频样本值所需的一个或多个预卷帧,并且其中,比特流进一步包括USAC配置元素,该USAC配置元素包括作为有效载荷的当前USAC配置和当前比特流标识。该解码器可以进一步包括解析器,该解析器被配置为将USAC配置元素解析到当前比特流标识,并且被配置为存储比特流中USAC配置元素的开始位置和当前比特流标识的开始位置。该解码器可以进一步包括确定器,该确定器被配置为确定当前USAC配置是否与先前USAC配置不同,并且如果当前USAC配置与先前USAC配置不同,则存储当前USAC配置。并且该解码器可以包括初始化器,该初始化器被配置为:如果确定器确定当前USAC配置与先前USAC配置不同,则初始化解码器,其中,初始化解码器可以包括对包括在预卷元素中的一个或多个预卷帧进行解码。初始化解码器可以进一步包括:如果确定器确定当前USAC配置与先前USAC配置不同,则将解码器从先前USAC配置切换到当前USAC配置,从而将解码器配置为使用当前USAC配置。并且该解码器可以被配置为:如果确定器确定当前USAC配置与先前USAC配置相同,则丢弃预卷元素并且不对预卷元素进行解码。

在自适应流式传输的情况下,对MPEG-D USAC比特流进行处理可以涉及从先前配置切换到不同的当前配置。这例如可以通过立即播放帧(IPF)来完成。在这种情况下,不管配置改变如何,每次可仍然对预卷元素(即,包括预卷帧)进行完全解码。如上配置,解码器使得能够避免对预卷元素进行这样不必要的解码。

在一些实施例中,确定器可以被配置为通过对照先前比特流标识检查当前比特流标识来确定当前USAC配置是否与先前USAC配置不同。

在一些实施例中,确定器可以被配置为通过对照先前USAC配置的长度检查当前USAC配置的长度来确定当前USAC配置是否与先前USAC配置不同。

在一些实施例中,如果确定当前比特流标识与先前比特流标识相同,和/或如果确定当前USAC配置的长度与先前USAC配置的长度相同,则确定器可以被配置为通过将当前USAC配置与先前USAC配置按字节进行比较来确定当前USAC配置是否与先前USAC配置不同。

在一些实施例中,解码器可以进一步被配置为将与当前帧相关联的有效音频样本值的输出延迟一帧,其中,将有效音频样本值的输出延迟一帧可以包括在输出之前缓冲音频样本的每个帧,并且其中,解码器可以进一步被配置为:如果确定当前USAC配置与先前USAC配置不同,则执行解码器中缓冲的先前USAC配置的帧与当前USAC配置的当前帧的交叉渐变。

根据本公开的第二方面,提供了一种通过解码器对编码的MPEG-D USAC比特流进行解码的方法。该方法可以包括接收编码的比特流,其中,比特流表示音频样本值的序列并且包括多个帧,其中,每个帧包括相关联的编码音频样本值,其中,比特流包括预卷元素,该预卷元素包括解码器为建立完整信号以便能够输出与当前帧相关联的有效音频样本值所需的一个或多个预卷帧,并且其中,比特流进一步包括USAC配置元素,该配置元素包括作为有效载荷的当前USAC配置和当前比特流标识。该方法可以进一步包括将USAC配置元素解析到当前比特流标识,并存储比特流中USAC配置元素的开始位置和当前比特流标识的开始位置。该方法可以进一步包括确定当前USAC配置是否与先前USAC配置不同,并且如果当前USAC配置与先前USAC配置不同,则存储当前USAC配置。并且该方法可以包括:如果确定当前USAC配置不同于先前USAC配置,则初始化解码器,其中,初始化解码器可以包括对包括在预卷元素中的一个或多个预卷帧进行解码,以及如果确定当前USAC配置与先前USAC配置不同,则将解码器从先前USAC配置切换到当前USAC配置,从而将解码器配置为使用当前USAC配置。该方法可以进一步包括:如果确定当前USAC配置与先前USAC配置相同,则通过解码器丢弃预卷元素并且不对预卷元素进行解码。

在一些实施例中,确定当前USAC配置是否与先前USAC配置不同可以包括对照先前比特流标识检查当前比特流标识。

在一些实施例中,确定当前USAC配置是否与先前USAC配置不同可以包括对照先前USAC配置的长度检查当前USAC配置的长度。

在一些实施例中,如果确定当前比特流标识与先前比特流标识相同,和/或如果确定当前USAC配置的长度与先前USAC配置的长度相同,则确定当前USAC配置是否与先前USAC配置不同可以包括将当前USAC配置与先前USAC配置按字节进行比较。

在一些实施例中,该方法可以进一步包括将与当前帧相关联的有效音频样本值的输出延迟一帧,其中,将有效音频样本值的输出延迟一帧可以包括在输出之前缓冲音频样本的每个帧,并且如果确定当前USAC配置与先前USAC配置不同,则执行解码器中缓冲的先前USAC配置的帧与当前USAC配置的当前帧的交叉渐变。

根据本公开的第三方面,提供了一种用于对编码的MPEG-D USAC比特流进行解码的解码器,该编码的比特流包括多个帧,每个帧由一个或多个子帧组成,其中,编码的比特流包括每个子帧的一个或多个线谱频率LSF集来作为线性预测系数LPC的表示。解码器可以被配置为对编码的比特流进行解码,其中,通过解码器对编码的比特流进行解码可以包括对来自比特流的每个子帧的LSF集进行解码。并且通过解码器对编码的比特流进行解码可以包括将解码的LSF集转换为线性谱对LSP表示,以用于进一步处理。解码器可以进一步被配置为为每个帧暂时存储解码的LSF集,以用于与后续帧进行插值。

如上配置,解码器使得能够直接使用保存在LSF表示中的最后一个集,因此避免了将保存在LSP表示中的最后一个集转换为LSF的需要。

在一些实施例中,该进一步处理可以包括通过应用寻根算法基于LSP表示来确定LPC,其中,应用寻根算法可以涉及在寻根算法内对LSP表示的系数进行缩放,以避免定点范围中的溢出。

在一些实施例中,应用寻根算法可以涉及通过扩展相应的乘积多项式从LSP表示中查找多项式F1(z)和/或F2(z),其中,缩放被执行为多项式系数的2次方缩放。缩放可以涉及或对应于左移位操作。

在一些实施例中,解码器可以被配置为取得量化的LPC滤波器、并且被配置为计算其加权版本、并且被配置为计算对应的抽取频谱(decimated spectrum),其中,在基于可以从一个或多个查找表中得到的预先计算的值计算抽取频谱之前,可以对LPC应用调制。

根据本公开的第四方面,提供了一种对编码的MPEG-D USAC比特流进行解码的方法,该编码的比特流包括多个帧,每个帧由一个或多个子帧组成,其中,该编码的比特流包括每个子帧的一个或多个线谱频率LSF集来作为线性预测系数LPC的表示。该方法可以包括对编码的比特流进行解码,其中,对编码的比特流进行解码可以包括对来自比特流的每个子帧的LSF集进行解码。并且对编码的比特流进行解码可以包括将解码的LSF集转换为线性谱对LSP表示,以用于进一步处理。该方法可以进一步包括为每个帧暂时存储解码的LSF集,以用于与后续帧进行插值。

在一些实施例中,该进一步处理可以包括通过应用寻根算法基于LSP表示来确定LPC,其中,应用寻根算法可以涉及在寻根算法内对LSP表示的系数进行缩放,以避免定点范围中的溢出。

在一些实施例中,应用寻根算法可以涉及通过扩展相应的乘积多项式从LSP表示中查找多项式F1(z)和/或F2(z),其中,缩放被执行为多项式系数的2次方缩放。缩放可以涉及或对应于左移位操作。

根据本公开的第五方面,提供了一种用于对编码的MPEG-D USAC比特流进行解码的解码器。该解码器可以被配置为实施前向混叠消除FAC工具,该FAC工具用于在线性预测域LPD编解码器内当在代数码激励线性预测ACELP编码帧与变换编码TC帧之间转变时消除时域混叠和/或加窗。解码器可以进一步被配置为:如果先前解码的加窗信号是用ACELP编码的,则执行从LPD到频域FD的转变并且应用FAC工具。该解码器可以进一步被配置为:如果第一解码的窗口是用ACELP编码的,则执行从FD到LPD的转变并且应用FAC工具,其中,在从LPD到FD的转变以及从FD到LPD的转变中均可以使用相同的FAC工具。

如上配置,解码器使得能够在LPD和FD两种编解码器中使用前向混叠消除(FAC)工具。

在一些实施例中,当FAC工具用于从FD到LPD的转变时,可以添加ACELP零输入响应。

根据本公开的第六方面,提供了一种通过实施前向混叠消除FAC工具的解码器对编码的MPEG-D USAC比特流进行解码的方法,该FAC工具用于在线性预测域LPD编解码器内当在代数码激励线性预测ACELP编码帧与变换编码TC帧之间转变时消除时域混叠和/或加窗。该方法可以包括:如果先前解码的加窗信号是用ACELP编码的,则执行从LPD到频域FD的转变,并应用FAC工具。该方法可以进一步包括:如果第一解码的窗口是用ACELP编码的,则执行从FD到LPD的转变,并应用FAC工具,其中,在从LPD到FD的转变以及从FD到LPD的转变中均可以使用相同的FAC工具。

在一些实施例中,该方法可以进一步包括:当FAC工具用于从FD到LPD的转变时,添加ACELP零输入响应。

根据本公开的第七方面,提供了一种具有指令的计算机程序产品,该指令被适配成使得具有处理能力的设备执行以下方法:一种通过解码器对编码的MPEG-D USAC比特流进行解码的方法;一种对编码的MPEG-D USAC比特流进行解码的方法,该编码的比特流包括多个帧,每个帧由一个或多个子帧组成,其中,该编码的比特流包括每个子帧的一个或多个线谱频率LSF集来作为线性预测系数LPC的表示;或者一种通过实施前向混叠消除FAC工具的解码器对编码的MPEG-D USAC比特流进行解码的方法,该FAC工具用于在线性预测域LPD编解码器内当在代数码激励线性预测ACELP编码帧与变换编码TC帧之间转变时消除时域混叠和/或加窗。

附图说明

现在将参考附图仅通过举例来描述本公开的示例实施例,其中:

图1示意性地图示了MPEG-D USAC解码器的示例。

图2图示了通过解码器对编码的MPEG-D USAC比特流进行解码的方法的示例。

图3图示了包括预卷元素和USAC配置元素的编码的MPEG-D USAC比特流的示例。

图4图示了用于对编码的MPEG-D USAC比特流进行解码的解码器的示例。

图5图示了对编码的MPEG-D USAC比特流进行解码的方法的示例,该编码的比特流包括多个帧,每个帧由一个或多个子帧组成,其中,该编码的比特流包括每个子帧的一个或多个线谱频率LSF集来作为线性预测系数LPC的表示。

图6图示了对编码的MPEG-D USAC比特流进行解码的方法的进一步示例,该编码的比特流包括多个帧,每个帧由一个或多个子帧组成,其中,该编码的比特流包括每个子帧的一个或多个线谱频率LSF集来作为线性预测系数LPC的表示,其中,该方法包括为每个帧暂时存储解码的LSF集,以用于与后续帧进行插值。

图7图示了对编码的MPEG-D USAC比特流进行解码的方法的又一进一步示例,该编码的比特流包括多个帧,每个帧由一个或多个子帧组成,其中,编码的比特流包括每个子帧的一个或多个线谱频率LSF集来作为线性预测系数LPC的表示。

图8图示了通过实施前向混叠消除FAC工具的解码器对编码的MPEG-D USAC比特流进行解码的方法的示例,该FAC工具用于在线性预测域LPD编解码器内当在代数码激励线性预测ACELP编码帧与变换编码TC帧之间转变时消除时域混叠和/或加窗。

图9图示了用于对编码的MPEG-D USAC比特流进行解码的解码器的示例,其中,该解码器被配置为实施前向混叠消除FAC工具,该FAC工具用于在线性预测域LPD编解码器内当在代数码激励线性预测ACELP编码帧与变换编码TC帧之间转变时消除时域混叠和/或加窗。

图10图示了具有处理能力的设备的示例。

具体实施方式

对MPEG-D USAC比特流的处理

本文所描述的对MPEG-D USAC比特流的处理涉及如由相应解码器应用的对编码的MPEG-D USAC比特流进行解码的不同步骤。在这里和下文中,MPEG-D USAC比特流可以指符合ISO/IEC 23003-3:2012,Information technology-MPEG audio technologies-Part3:unified speech and audio coding[ISO/IEC 23003-3:2012,信息技术-MPEG音频技术-第3部分:统一语音和音频编码]以及随后的版本、修订和更正中规定的标准的比特流(“以下简称MPEG-D USAC或USAC”)。

参考图1的示例,图示了MPEG-D USAC解码器1000。解码器1000包括用于进行立体声处理或多声道处理的MPEG环绕功能单元1200。例如,可以在USAC标准的第7.11条中描述了MPEG环绕功能单元1200。本条款通过引用以其整体并入本文。MPEG环绕功能单元1200可以包括单到双(one-to-two,OTT)盒(OTT解码块)作为上混单元的示例,该单到双盒可以执行单声道到立体声的上混。解码器1000进一步包括:比特流有效载荷解复用器工具1400,该比特流有效载荷解复用器工具将比特流有效载荷分离成用于每个工具的部分,并为工具中的每一个工具提供与该工具有关的比特流有效载荷信息;标度因子无噪音解码工具1500,该标度因子无噪音解码工具从比特流有效载荷解复用器获取信息、解析该信息、并对霍夫曼和差分脉冲编码调制(DPCM)编码的标度因子进行解码;频谱无噪音解码工具1500,该频谱无噪音解码工具从比特流有效载荷解复用器中获取信息、解析该信息、对算术编码数据进行解码、并重建量化的频谱;逆量化器工具1500,该逆量化器工具获取用于频谱的量化值,并将整数值转换为非缩放的、重建的频谱;该量化器优选地是压扩量化器,其压扩因子取决于所选择的核心编码模式;噪声填充工具1500,该噪声填充工具用于填充解码频谱中的谱隙,该谱隙在频谱值被量化为零时(例如由于编码器中对比特需求的强烈限制)出现;重新缩放工具1500,该重新缩放工具将标度因子的整数表示转换为实际值,并将未缩放的逆量化频谱乘以相关标度因子;M/S工具1900,如ISO/IEC 14496-3中所描述的;时域噪声整形(TNS)工具1700,如ISO/IEC 14496-3中所描述的;滤波器组/块切换工具1800,该滤波器组/块切换工具应用在编码器中执行的频率映射的逆;对于滤波器组工具优选地使用逆修改离散余弦变换(IMDCT);时间扭曲的滤波器组/块切换工具1800,当启用时间扭曲模式时,该时间扭曲的滤波器组/块切换工具取代正常的滤波器组/块切换工具;该滤波器组优选地与用于正常滤波器组的(IMDCT)相同,另外,通过时变重采样将加窗的时域样本从扭曲的时域映射到线性时域;信号分类器工具,该信号分类器工具分析原始输入信号,并从中产生触发对不同编码模式的选择的控制信息;对输入信号的分析通常取决于实施方式,并且将尝试为给定的输入信号帧选择最佳的核心编码模式;可选地,信号分类器的输出也可以用于影响其他工具的行为,例如MPEG环绕、增强频谱带复制(SBR)、时间扭曲的滤波器组等;以及代数码激励线性预测(ACELP)工具1600,该ACELP工具提供了通过将长期预测器(自适应码字)与脉冲状序列(创新码字)进行组合来高效地表示时域激励信号的方式。解码器1000可以进一步包括LPC滤波器工具1300,该LPC滤波器工具通过凭借线性预测合成滤波器对重建的激励信号进行滤波来从激励域信号产生时域信号。解码器1000还可以包括增强型频谱带宽复制(eSBR)单元1100。例如,可以在USAC标准的第7.5条中对eSBR单元1100进行描述。本条款通过引用以其整体并入本文。eSBR单元1100从编码器接收编码的音频比特流或编码的信号。eSBR单元1100可以产生该信号的高频分量,该高频分量与解码的低频分量合并从而产生解码信号。换句话说,eSBR单元1100可以重新生成音频信号的高频带。

现在参考图2和图4的示例,图示了用于对编码的MPEG-D USAC比特流进行解码的方法和解码器。在步骤S101中,由接收器101接收编码的MPEG-D USAC比特流。该比特流表示音频样本值的序列并包括多个帧,其中,每个帧包括相关联的编码音频样本值。该比特流包括预卷元素,预卷元素包括解码器100为建立完整信号以便能够输出与当前帧相关联的有效音频样本值所需的一个或多个预卷帧。完整信号(音频样本的正确再现)例如可以指由解码器在启动或重新启动期间建立信号。该比特流进一步包括USAC配置元素,该USAC配置元素包括作为有效载荷的当前USAC配置和当前比特流标识(ID_CONFIG_EXT_STREAM_ID)。如果发生配置改变,则解码器100可以使用包括在USAC配置元素中的USAC配置作为当前配置。USAC配置元素可以作为预卷元素的一部分包括在比特流中。

在步骤S102中,USAC配置元素(预卷元素)被解析器102解析到当前比特流标识。进一步地,存储比特流中USAC配置元素的开始位置和当前比特流标识的开始位置。

参考图3的示例,示意性地图示了与预卷元素4有关的MPEG-D USAC比特流中的USAC配置元素1的位置。如图3的示例所示,并且如上面已经提到的,USAC配置元素1(USACconfig元素)包括当前USAC配置2和当前比特流标识3。预卷元素4包括预卷帧5、6(UsacFrame()[n-1]、UsacFrame()[n-2])。当前帧由UsacFrame()[n]表示。在图3的示例中,预卷元素4进一步包括USAC配置元素1。为了确定配置改变,预卷元素4可以被解析到USAC配置元素1,该USAC配置元素本身可以被解析到当前比特流标识3。

在步骤S103中,然后由确定器103确定当前USAC配置是否与先前USAC配置不同,并且如果当前USAC配置与先前USAC配置不同,则存储当前USAC配置。然后,解码器100使用存储的USAC配置作为当前配置。因此,使用如本文所描述的USAC配置元素使得能够避免对预卷元素、特别是对包括在预卷元素中的预卷帧进行不必要的(即,不管配置改变而每次都进行)的解码。

在实施例中,可以由确定器103(确定器103可以被配置为确定)通过对照先前比特流标识检查当前比特流标识来确定当前USAC配置是否与先前USAC配置不同。如果比特流标识不同,则可以确定USAC配置已经改变。

可替代地或者附加地,在实施例中,如果确定当前比特流标识与先前比特流标识相同,则可以由确定器103通过对照先前USAC配置的长度检查当前USAC配置的长度(config_length_in_bits:长度=比特流标识的开始-USAC配置的开始)来确定当前USAC配置是否与先前USAC配置不同。如果确定长度不同,则可以确定USAC配置已经改变。

在当前比特流标识和/或当前USAC配置的长度指示USAC配置已经改变的情况下,存储当前USAC配置。然后,存储的当前USAC配置可以在之后在接收到下一个USAC配置元素的情况下用作先前USAC配置以供比较。示例性地,这可以按以下执行:

a.跳回到比特流中USAC config的开始位置;

b.批量读取(并存储)((config_length_in_bits+7)/8)个字节的USAC config有效载荷(未解析的)。

在实施例中,如果确定当前比特流标识与先前比特流标识相同,和/或如果确定当前USAC配置的长度与先前USAC配置的长度相同,则可以由确定器103通过将当前USAC配置与先前USAC配置按字节进行比较来确定当前USAC配置是否与先前USAC配置不同。示例性地,这可以按以下执行:

a.跳回到比特流中USAC config的开始位置;

b.批量逐字节读取((config_length_in_bits+7)/8)个字节的USAC config有效载荷(未解析的);

c.将每个新的有效载荷字节与先前有效载荷的相应字节进行比较;

d.如果字节不同,则用新的(当前)字节替换旧的(先前)字节;

e.如果已经应用了任何替换,则USAC配置已经改变。

再次参考图2和图4的示例,在步骤S104中,如果确定当前USAC配置与先前USAC配置不同,则初始化器104来初始化解码器100。初始化解码器100包括:对包括在预卷元素中的一个或多个预卷帧进行解码,以及如果确定当前USAC配置与先前USAC配置不同,则将解码器100从先前USAC配置切换到当前USAC配置,从而将解码器100配置为使用当前USAC配置。在步骤S105中,如果确定当前USAC配置与先前USAC配置相同,则由解码器100丢弃预卷元素并不对预卷元素进行解码。在这一点上,由于可以基于USAC配置元素来确定配置改变(即,无需对预卷元素进行解码),因此可以避免不管USAC配置改变而每次都对预卷元素进行解码。

在实施例中,可以由解码器100将与当前帧相关联的有效音频样本值的输出延迟一帧。将有效音频样本值的输出延迟一帧可以包括在输出之前缓冲音频样本的每个帧,其中,如果确定当前USAC配置与先前USAC配置不同,则由解码器100执行在解码器100中缓冲的先前USAC配置的帧与当前USAC配置的当前帧的交叉渐变。

在这方面,可以考虑在解码器100中启用差错隐蔽方案,这可以给解码器100的输出引入一帧的额外延迟。额外延迟意味着在确定USAC配置已经改变的时间点处仍然可以访问先前配置的最后一个输出(例如PCM)。这使得能够比MPEG-D USAC标准中所描述的早128个样本开始交叉渐变(淡出),即在前一帧的结束而不是在刷新帧状态(flushed framestate)的开始。这意味着,根本不需要对解码器进行刷新。

一般地,将解码器刷新一帧的计算复杂度与对通常帧进行解码的计算复杂度相当。因此,这使得能够在已经必须花费(number_of_pre-roll_frames+1)*(单个帧的复杂度)而将导致峰值负荷的时间点处降低一帧的复杂度。因此,可以在最后一个预卷帧的结束处就已经开始与当前(新)配置相关的输出的交叉渐变(或淡入)。一般地,必须利用先前(旧)配置对解码器进行刷新以得到额外的128个样本,这些样本用于交叉渐变到当前(新)配置下的第一个当前(实际)帧(均不是预卷帧)的前128个样本。

现在参考图5的示例,图示了对编码的MPEG-D USAC比特流进行解码的方法,该编码的比特流包括多个帧,每个帧由一个或多个子帧组成,其中,该编码的比特流包括每个子帧的一个或多个线谱频率LSF集来作为线性预测系数LPC的表示。在步骤S201中,接收编码的MPEG-D USAC比特流。然后,在步骤S202中,对编码的比特流进行解码包括由解码器(解码器被配置为解码)对来自比特流的每个子帧的LSF集进行解码。然后,在步骤S203中,由解码器将解码的LSF集转换为线性谱对LSP表示,以用于进一步处理。

一般地,LSP具有使其优于LPC的直接量化的几个特性(例如,对量化噪声的敏感度较小)。

参考图6的示例,在实施例中,对于每个帧,可以由解码器暂时存储解码的LSF集,以用于与后续帧进行插值,S204a。在这方面,由于出于插值目的而需要来自先前帧的最后一个集,因此只保存LSF表示中的最后一个集可能也是足够的。暂时存储LSF集使得能够直接使用LSF集:

if(!p_lpd_data->first_lpd_flag){

memcpy(lsf,h_lpd_dec->lsf_prev,LPD_ORDER*sizeof(DLB_LFRACT));

}

而无需将保存在LSP表示中的最后一个集转换为LSF:

if(!first_lpd_flag){

ixheaacd_lsp_2_lsf_conversion(st->lspold,lsf_flt,ORDER);

)

参考图7的示例,可替代地或额外地,在实施例中,进一步处理可以包括通过应用寻根算法基于LSP表示来确定LPC,其中,应用寻根算法可以涉及缩放,S204b。可以在寻根算法内对LSP表示的系数进行缩放,以避免定点范围中的溢出。

在实施例中,应用寻根算法可以涉及通过扩展相应的乘积多项式从LSP表示中查找多项式F1(z)和/或F2(z),其中,缩放可以被执行为多项式系数的2次方缩放。这定义了左移位操作1<<LPD_COEFF_SCALE,其中,默认LPD_COEFF_SCALE值为8。示例性地,这可以按以下执行。

LP多项式的LSP表示仅仅由P和Q的根(即ω,使得z=e

从LSP中查找多项式F1(z)和/或F2(z)。

这通过扩展乘积多项式来执行:

F1(z)=product(1-2LSP_i z^-1+z^-2)i=0,2,4,6,8,10,12,13

F2(z)=product(1-2LSP_i z^-1+z^-2)i=1,3,5,7,9,11,13,15

其中,LSP_i是cosine域中的LSP。

R.A.Salami 1990年10月

如以下所示,伪码实施了上述的缩放(并且不是R.A.Salami算法的一部分):

在寻根算法内进行缩放,以避免定点范围中的溢出:

在一些实施例中,解码器可以被配置为取得量化的LPC滤波器、并计算其加权版本、并计算对应的抽取频谱,其中,在基于可以从一个或多个查找表中得到的预先计算的值计算抽取频谱之前,可以对LPC应用调制。

一般地,在变换码本激励(TCX)增益计算中,在应用逆修改离散余弦变换(MDCT)之前,可以取得对应于MDCT块的两端(extremity)(即左折叠点和右折叠点)的两个量化LPC滤波器、可以计算其加权版本、并可以计算对应的抽取频谱。可以通过对LPC滤波器系数应用奇数离散傅里叶变换(ODFT)来计算这些加权的LPC频谱。在计算ODFT之前,可以对LPC系数应用复合调制,以使得ODFT的频率仓可以与MDCT的频率仓完全对准。这可以例如在USAC标准的第7.15.2条中进行描述。该条款通过引用以其整体并入本文。由于M(ccf1/16)的仅有可能值可以是64和48,因此可以使用针对该复合调制的表进行查找。

下面给出了使用查找表进行调制的示例:

现在参考图8和图9的示例,图示了通过实施前向混叠消除FAC工具的解码器对编码的MPEG-D USAC比特流进行解码的方法,该FAC工具用于在线性预测域LPD编解码器内当在代数码激励线性预测ACELP编码帧与变换编码TC帧之间转变时消除时域混叠和/或加窗。

例如,可以在USAC标准的第7.16条中描述FAC工具。该条款通过引用以其整体并入本文。一般地,在LPD编解码器内在ACELP帧与TC帧之间的转变期间,执行前向混叠消除(FAC),以得到最终的合成信号。FAC的目标是消除由TC引入并且不能通过前面或后面的ACELP帧来消除的时域混叠和加窗。

在步骤S301中,由解码器300接收编码的MPEG-D USAC比特流。在步骤S302中,如果先前的解码的加窗信号是利用ACELP编码的,则执行从LPD到频域FD的转变并应用FAC工具301。进一步地,在步骤S303中,如果第一解码的窗口是利用ACELP编码的,则执行从FD到LPD的转变并应用(相同)FAC工具301。可以在解码过程期间确定要执行哪种转变,因为这取决于MPEG-D USAC比特流是如何被编码的。只使用一个函数(lpd_fwd_alias_cancel_tool())使得能够使用更少的代码和更少的内存,从而降低计算的复杂度。

在实施例中,进一步地,当FAC工具301用于从FD到LPD的转变时,可以添加ACELP零输入响应(ACELP ZIR)。ACELP ZIR可以是最后一个ACELP编码子帧的实际合成的输出信号,该输出信号结合FAC工具用于在编解码器从LPD切换到FD后生成第一个新的输出样本。将ACELP ZIR添加到FAC工具(例如,作为FAC工具的输入)实现从FD到LPD的无缝转变,和/或使用相同的FAC工具以进行从LPD到FD和/或从FD到LPD的转变。

如上所述,从LPD到FD的转变以及从FD到LPD的转变均可以应用相同的FAC工具。这里,使用相同的工具可以意指应用(或调用)解码应用程序的代码中的相同函数,无论LPD与FD之间如何转变,反之亦然。例如,这个函数可以是下面描述的lpd_fwd_alias_cancel_tool()函数。

实施FAC工具的函数(例如,函数lpd_fwd_alias_cancel_tool())可以接收与滤波器系数、ZIR、子帧长度、FAC长度和/或FAC信号有关的信息作为输入。在下面呈现的示例代码中,该信息可以由*lp_filt_coeff(滤波器系数)、*zir(ZIR)、len_subfrm(子帧长度)、fac_length(FAC长度)和*fac_signal(FAC信号)表示。

如上所述,实施FAC工具的函数(例如,函数lpd_fwd_alias_cancel_tool())可以设计成使得在解码的任何实例期间都可以被调用,而不管当前的编码域(例如,LPD或FD)如何。这意味着当从FD切换到LPD时可以调用相同的函数,反之亦然。因此,所提出的FAC工具或实施FAC工具的函数在解码中的代码执行方面提供了与先前的实施方式相比的技术优势或改进。另外,所产生的解码的灵活性允许代码优化,这在先前的实施方式(例如,在FD和LPD中使用不同的函数来实施FAC工具的实施方式)中是不可行的。

下面给出了实施FAC工具的函数的示例代码:

如从上面的示例代码可以看出的,可以不管当前的编码域(例如FD或LPD)如何来调用实施FAC工具的函数lpd_fwd_alias_cancel_tool(),并且可以适当地处理编码域之间的转变。

参考图10的示例,应当注意,如本文描述的方法还可以通过具有指令的相应的计算机程序产品来实施,该指令被适配成使具有处理能力401的设备400执行所述方法。

解释

除非另外特别声明,否则从以下讨论中显而易见的是,应当理解,在整个公开的讨论中,利用如“处理”、“计算”、“确定”、“分析”等术语来指代计算机或计算系统或类似的电子设备的将表示为物理(如电子)量的数据操纵和/或变换为类似地表示为物理量的其他数据的动作和/或过程。

以类似的方式,术语“处理器”可以指代处理电子数据以将该电子数据变换为其他电子数据的任何设备或设备的一部分。“计算机”或“计算机器”或“计算平台”可以包括一个或多个处理器。

如上所述,本文描述的方法可以被实施为具有指令的计算机程序产品,该指令被适配成使具有处理能力的设备执行所述方法。包括能够执行指定要采取的动作的指令集(顺序的或其他形式)的任何处理器。因此,一个示例可以是可以包括一个或多个处理器的典型处理系统。每个处理器可以包括CPU、图形处理单元、张量处理单元和可编程DSP单元中的一个或多个。处理系统可以进一步包括存储器子系统,该存储器子系统包括主RAM和/或静态RAM和/或ROM。可以包括总线子系统以用于部件之间的通信。处理系统可以进一步是分布式处理系统,其中,处理器通过网络耦接。如果处理系统需要显示器,则可以包括这样的显示器,例如液晶显示器(LCD)、任何种类的发光二极管显示器(LED)(例如包括OLED(有机发光二极管)显示器)、或阴极射线管(CRT)显示器。如果需要手动输入数据,则处理系统还可以包括输入设备,如字母数字输入单元(如键盘)、定点控制设备(如鼠标)等中的一个或多个。处理系统还可以涵盖如磁盘驱动单元等存储系统。处理系统可以包括声音输出设备(例如一个或多个扬声器或耳机端口)以及网络接口设备。

计算机程序产品例如可以是软件。软件可以以各种方式实施。软件可以经由网络接口设备在网络上被发送或接收,或者可以经由载体介质分发。载体介质可以包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质例如可以包括光盘、磁盘以及磁光盘。易失性介质可以包括动态存储器,如主存储器。传输介质可以包括同轴电缆、铜线和光纤,包括包含总线子系统的导线。传输介质还可以采用声波或光波的形式,如在无线电波和红外数据通信期间生成的声波或光波。例如,术语“载体介质”应该因此被认为包括但不限于固态存储器、体现在光学介质和磁性介质中的计算机产品;承载可由至少一个处理器或一个或多个处理器检测并表示指令集的传播信号的介质,该指令集在被执行时实施方法;以及网络中的传输介质,该传输介质承载可由一个或多个处理器中的至少一个处理器检测并表示指令集的传播信号。

应当注意,当要执行的方法包括多个要素(例如,多个步骤)时,除非另外特别声明,否则不暗示这些要素的任何顺序。

将理解的是,在一个示例实施例中,所讨论的方法的步骤由执行存储在存储装置中的指令(计算机可读代码)的处理(例如,计算机)系统的适当处理器(或多个处理器)执行。还将理解的是,本公开不限于任何特定的实施方式或编程技术,并且本公开可以使用用于实施本文描述的功能的任何适当的技术来实施。本公开不限于任何特定的编程语言或操作系统。

在整个本公开中对“一个实施例”、“一些实施例”或“实施例”的提及意味着结合该实施例所描述的特定特征被包括在本公开的至少一个实施例中。因此,在整个本公开中各处出现的短语“在一个实施例中”、“在一些实施例中”或“在实施例中”不一定都指代同一个实施例。此外,在一个或多个实施例中,可以以任何合适的方式组合特定特征,如根据本公开将对本领域普通技术人员显而易见的。

在权利要求和本文的描述中,术语包括、包括有或其包括中的任何一个是开放术语,其意指至少包括随后的要素/特征,但不排除其他要素/特征。因此,当在权利要求中使用术语“包括”时,不应当被解释为限于在其之后列出的模块或要素或步骤。如本文所使用的,术语包含或其包含或其包含有中的任何一个也是开放术语,其也意指至少包括该术语之后的要素/特征,但不排除其他要素/特征。因此,包含与包括同义并且意指包括。

应当理解,在以上对本公开的示例实施例的描述中,有时在单个示例实施例、图或其描述中将本公开的各个特征组合在一起,以便简化本公开并且帮助理解各创造性方面中的一个或多个。然而,本公开的方法不应当被解释为反映权利要求书需要比每个权利要求中明确记载的特征更多的特征的意图。而是,如所附权利要求所反映的,创造性方面在于少于单个前面公开的示例实施例的所有特征。因此,随说明书附上的权利要求书特此明确地并入本说明书中,其中,每个权利要求独立地作为本公开的单独的示例实施例。

此外,虽然本文描述的一些示例实施例包括其他示例实施例中所包括的一些特征而不包括其他示例实施例中所包括的其他特征,但是如本领域技术人员将理解的,不同示例实施例的特征的组合旨在处于本公开的范围内并形成不同的示例实施例。例如,在所附权利要求中,要求保护的示例实施例中的任何示例实施例都可以以任何组合来使用。

在本文提供的描述中,阐述了许多具体细节。然而,应当理解,可以在没有这些具体细节的情况下实践本公开的示例实施例。在其他实例中,未详细示出众所周知的方法、设备结构和技术,以避免模糊对本说明书的理解。

因此,尽管已经描述了被认为是本公开的最佳模式的模式,但是本领域技术人员将认识到,可以在不背离本公开的精神的情况下对其做出其他和进一步的修改,并且旨在要求保护落入本公开的范围内的所有这些改变和修改。例如,可以向在本公开的范围内描述的方法添加或删除步骤。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号