一种降低音频编码运算量的方法、系统、存储介质及设备与流程
本申请涉及音频编码技术领域,特别是一种降低音频编码运算量的方法、系统、存储介质及设备。
背景技术:
现有技术中,主流的蓝牙音频编码器包括:sbc音频编码器,其根据a2dp协议强制要求,使用最为广泛,所有的蓝牙音频设备支持,但音质一般;aac-lc音频编码器,其音质较好且应用较为广泛,很多主流的手机都支持,但与sbc音频编码器相比,内存占用较大,且运算复杂度高,很多蓝牙设备都基于嵌入式平台,电池容量有限,处理器运算能力较差且内存有限;aptx系列音频编码器,其音质较好,但码率很高,aptx需要码率384kbps,而aptx-hd的码率为576kbps,且为高通独有的技术,较为封闭;ldac音频编码器,其音质较好,但码率也很高,分别是330kbps,660kbps和990kbps,由于蓝牙设备所处的无线环境特别复杂,稳定支持如此高的码率有一定的困难,且为索尼独有的技术,也很封闭。
基于上述原因,蓝牙国际联盟bluetoothsig联合众多厂商推出了lc3音频编码器,其具有较低延迟、较高音质和编码增益以及在蓝牙领域无专利费等优点,受到广大厂商的关注。由于lc3音频编码器推出的初衷是要满足低功耗蓝牙领域的音频应用,所以对功耗要求非常严格。
在lc3音频编码器中,由于其基于波形编码技术,因此与传统声码器相比,压缩效率很低。例如,lc3在8k采样率时的推荐码率为24kbps,但应用于wcdma的amr-nb最大码率仅为12.2kbps,平均码率10kbps以下,应用于cdma系统的evrc-a最大码率为8kbps,平均码率约为5kbps。lc3音频编码器较高的码率占用了较大的带宽,因此需要更高的发射功率,而在蓝牙设备较多的公共场合,各个蓝牙设备间产生相互干扰,影响用户体验。
另外在使用编码器进行通话过程的编解码时,据统计,通话一方通常只有35%的时间进行通话,存在较长时间的静音状态。而目前的音频编码器在进行通话编解码时,均按照固定码率进行编解码过程,导致在通话一方处于不说话的静音状态时编码器仍使用相同码率进行编码,造成码率的浪费,占用较多的带宽资源,增到编码器的功耗。
技术实现要素:
针对现有技术中存在的上述技术问题,本申请提供一种降低音频编码运算量的方法、系统、存储介质及设备。
在本申请的一个技术方案中,提供一种降低音频编码运算量的方法,包括,判断编码音频帧是否为静音帧;若编码音频帧为静音帧,且静音帧为编码音频帧中的第一个静音帧,则对该第一个静音帧的编码过程包括:根据编码音频帧的采样率和帧长设置第一编码码率;根据第一编码码率对第一个静音帧进行编码,输出第一个静音帧的编码结果,并保存;若编码音频帧为静音帧,且静音频帧为除第一个静音帧之外的其他静音帧,则对其他静音帧的编码过程包括:载入第一个静音帧的编码结果,将第一个静音帧的编码结果作为其他静音帧的编码结果,并输出。
在本申请的另一技术方案中,提供一种降低音频编码运算量的系统,包括,静音帧判断模块,其判断编码音频帧是否为静音帧;第一个静音帧编码模块,根据第一个静音帧的采样率及帧长设置第一编码码率;根据第一编码码率对第一个静音帧进行编码,输出第一个静音帧的编码结果,并保存;以及其他静音帧编码模块,载入第一个静音帧的编码结果,将第一个静音帧的编码结果作为其他静音帧的编码结果,并输出
在本申请的另一技术方案中,提供一种计算机可读存储介质,其存储有计算机指令,其中计算机指令被操作以执行方案一中的降低音频编码运算量的方法。
在本申请的另一技术方案中,提供一种计算机设备,其包括处理器和存储器,存储器存储有计算机指令,其中,处理器操作计算机指令以执行方案一中的降低音频编码运算量的方法。
本申请的有益效果是:本申请的使用使得在对编码音频中的静音帧进行编码时,采用较低的编码码率进行编码,利用静音帧之间的相似性,在对除第一个静音帧之外的其他静音帧编码时,直接将第一个静音帧的编码结果作为其他静音帧的编码结果,减少不必要的编码流程,从而降低编码时的运算量,降低编码器的功耗。
附图说明
图1是本申请降低音频编码运算量的方法的一个具体实施方式的流程示意图;
图2是本申请的编码音频帧中静音帧与非静音帧的一个具体实例的示意图;
图3是本申请降低音频编码运算量的方法的一个具体实例的流程示意图;
图4是本申请降低音频编码运算量的方法的应用效果的示意图;
图5是本申请降低音频编码运算量的系统的一个具体实施方式的组成示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1示出了本申请降低音频编码运算量的方法的一个具体实施方式。
在该具体实施方式中,本申请的降低音频编码运算量的方法包括:步骤s101,判断编码音频帧是否为静音帧;步骤s102,若编码音频帧为静音帧,且静音帧为编码音频帧中的第一个静音帧,则对该第一个静音帧的编码过程包括:根据第一个静音帧的采样率和帧长设置第一编码码率;根据第一编码码率对第一个静音帧进行编码,输出第一个静音帧的编码结果,并保存;以及步骤s103,若编码音频帧为静音帧,且静音帧为编码音频帧中的除第一个静音帧之外的其他静音帧,则对其他静音帧的编码过程包括:载入保存的第一个静音帧的编码结果,将第一个静音帧的编码结果作为其他静音帧的编码结果,并输出。
在图1所示的具体实施方式中,本申请的降低音频编码运算量的方法包括:步骤s101,判断编码音频帧是否为静音帧。通过对编码音频帧是否为静音帧的判断,进而针对不同的编码音频帧采用不同编码码率进行编码,避免编码码率的浪费,从而降低编码器的运算量,降低编码器的功耗。
在本申请的一个具体实施例中,在判断编码音频帧是否为静音帧的的过程,包括:对编码音频帧进行低延迟改进型离散余弦变换,并记录低延迟改进型离散余弦变换结果;以及当低延迟改进型离散余弦变换结果全部为零,则编码音频帧是静音帧,当存在一个低延迟改进型离散余弦变换结果不为零,则编码音频帧为除静音帧之外的非静音帧。
在该具体实施例中,低延迟改进型离散余弦变换的计算公式如下:
图2示出了编码音频帧中静音帧与非静音帧的一个具体实例。由图2可知,非静音帧具有上下波动的振幅,而静音帧没有上下振幅变化,振幅为静止的零。因为静音帧在编码音频帧中的独特性,当对编码音频帧进行低延迟改进型离散余弦变换,得出的结果全部为零,则该编码音频帧为静音帧,否则该编码音频帧为非静音帧。对应于具体的低延迟改进型离散余弦变换公式中,因为静音帧中,函数
在图1所示的具体实施方式中,本申请的降低音频编码速率的方法包括步骤s102,若编码音频帧为静音帧,且静音帧帧为编码音频中的第一个静音帧,则对该第一个静音帧的编码过程包括:根据第一个静音帧的采样率及帧长设置第一编码码率;根据第一编码码率对第一个静音帧进行编码,输出第一个静音帧的编码结果,并保存。
在本申请的一个具体实施例中,第一编码码率为编码器的编码标准中对编码音频帧进行编码的最低编码码率。通过上述对编码音频帧中静音帧的判断,因为静音帧的特殊性,可采用编码器标准规范中规定的最低编码码率进行对静音帧的编码。例如,在lc3音频编码器的标准规范中,当采样率为16khz的单声道音频,如果帧长参数为10ms,则最低的编码码率可以为16kbps。若检测到编码音频帧为第一个静音帧,则根据编码音频的采样率和帧长,按照编码器的标准规范设置第一编码码率,其中第一编码码率为编解码器中对应该编码音频帧的最低编码码率。随后,利用该最低编码码率对该第一个静音帧进行编码。其中,对第一个静音帧的编码流程为按照编码器的标准规范进行的正常编码流程。在对该第一个静音帧编码结束后,对该静音帧的编码结果进行储存。
在图1所示的具体实施方式中,本申请的降低音频编码速率的方法包括步骤s103,若编码音频帧为静音帧,且静音帧为除第一个静音帧之外的其他静音帧,则对其他静音帧的编码过程包括:载入保存的第一个静音帧的编码结果,将第一个静音帧的编码结果作为其他静音帧的编码结果,并输出。
在该具体实施方式中,当编码音频帧为除第一个静音帧之外的其他静音帧时,因为静音帧之间的相似性,可直接将第一个静音帧的编码结果作为其他静音帧的编码结果,即在对其他静音帧进行编码时,直接将储存的第一个静音帧编码结果进行载入,作为其他静音帧的编码结果,从而跳过编码器中的各个编码模块,降低编码器中的运算量,降低编码器的功耗。
在本申请的一个具体实施例中,本申请的降低音频编码运算量的方法还包括:若编码音频帧为非静音帧,则对该非静音帧的编码过程包括:设定第二编码码率,第二编码码率以及根据第二编码码率对非静音帧进行标准编码流程。
在本申请的具体实施例中,第二编码码率为编码器对编码音频帧进行编码前预设的编码码率。例如,在lc3音频编码器的标准规范中,当采样率为16khz的单声道音频,如果帧长参数为10ms,则第二编码码率可以为64kbps。
在本申请的一个具体实施例中,本申请的降低音频编码速率的方法还包括,初始化过程,在对编码音频帧进行编码时,设置静音帧标志参数为第一数值,表示静音帧为第一个静音帧,当第一个静音帧编码结束后,设置静音帧标志参数为第二数值,表示之后的静音帧为除第一个静音帧之外的其他静音帧。
在该具体实施例中,在本申请降低音频编码速率的方法的初始化过程中,设置静音帧标志参数为第一数值,其中第一数值可以为0。随后对编码音频帧的第一个静音帧进行编码,在第一个静音帧编码结束后,设置静音帧标志参数为第二数值,其中第二数值可以为1。当编码音频帧中的第一个静音帧编码结束后,如果再有其他的静音帧,则根据静音帧标志参数对其他静音帧进行判断,并进行对其他静音帧的编码过程。
图3示出了本申请降低音频编码运算量的方法的一个具体实例。如图3所示,对编码音频帧进行低延迟改进型离散余弦变换,并对低延迟改进型离散余弦变换的结果进行判断。当低延迟改进型离散余弦变换的结果全部为零,则进行低延迟改进型离散余弦变换的该编码音频帧为静音帧;若存在一个低延迟改进型离散余弦变换的结果不为零,则该编码音频帧为非静音帧。如图3所示,对编码音频帧是否为静音帧的判断之后,若该编码音频帧为静音帧,则对该静音帧是否为第一个静音帧进行判断。预设静音帧标志参数为第一数值,例如可以设置为0,表示该静音帧为第一个静音帧。随后根据编码音频中的采样率或帧长信息对第一编码码率进行设置,其中第一编码码率为编码器对编码音频帧进行编码的编码标准中的最低编码码率,例如,在lc3音频编码器的标准规范中,当采样率为16khz的单声道音频,如果帧长参数为10ms,则最低的编码码率可以为16kbps。随后根据设置的第一编码码率对该第一个静音帧按照编码器的正常编码流程进行编码。在对第一个静音帧的编码结束后,将第一个静音帧的编码结果进行储存,并更改静音帧标志参数为敌人数值,例如可以更改为1,来表示后续的静音帧为除第一个静音帧之外的其他静音帧。最后将第一个静音帧的编码结果输出,完成对第一个静音帧的编码过程。
如图3所示,当编码音频中存在除第一个静音帧之外的其他静音帧时,通过静音帧标志参数对其他静音帧进行判断,随后进行对其他静音帧的编码。因为静音帧之间的相似性,所以直接将第一个静音帧的编码结果作为其他静音帧的编码结果及进行输出,跳过对其他静音帧的编码过程,从而降低编码时的编码运算量,降低编码器的功耗。其中,跳过其他静音帧的编码过程,是指跳过标准规范规定的编码模块的编码过程,例如,在lc3音频编码器中,跳过长期后置滤波器,带宽检测,频域噪声整形,时域噪声整形,谱量化,噪声估计,算术编码等过程。另外,在跳过其他静音帧的编码过程中,更新相关的帧数据缓存,例如,在lc3音频编码器中的长期后置滤波器的缓存。
如图3所示,若判断编码音频帧为非静音帧,则根据设置的第二编码码率对非静音帧进行编码器规范中的标准编码流程的编码。其中,第二编码码率为编码器对编码音频帧进行编码前预设的编码码率。例如,例如,在lc3音频编码器的标准规范中,当采样率为16khz的单声道音频,如果帧长参数为10ms,标准编码码率可以为64kbps,第二编码码率可以设置为64kbps。对非静音帧编码结束后,将编码结果进行输出,完成对编码音频帧的编码。
通过本申请的降低音频编码运算量的方法的应用,对编码音频帧是否为静音帧进行判断,采用较低的编码码率对静音帧进行编码,避免编码码率的浪费。另外,根据静音帧之间的相似性,在完成对第一个静音帧的编码后,在对其他静音帧进行编码时,直接将第一个静音帧的编码结果进行载入,作为其他静音帧的编码结果并输出,从而使得在对其他静音帧进行编码时,跳过编码模块的编码过程,从而减少编码过程的运算量,降低编码器的功耗,延长编码器的使用时间。另外,本申请的降低音频编码运算量的方法,可应用于所有采样率以及多种帧长的编码音频的编码过程,例如,10ms帧长的编码音频或者7.5ms的编码音频。通过本申请的应用,在lc3音频编码器中,对于如图2所示的包含静音帧的编码音频测试向量,可将其平均编码运算量降低原编码运算量的40%左右,且音质效果没有变化。
图4是本申请降低音频编码速率的方法的应用效果的示意图。其中,图4表示的是对于相同的静音帧,使用不同的编码码率所得出的输出码流的区别。其中,图4上半部分表示的是按照标准码率对静音帧进行编码的输出码流,图4下半部分表示的是使用编码器中的最低编码码率对静音帧进行编码后的输出码流。其中图4对应的静音帧为单声道,采样率为16khz,帧长为10ms的音频帧。其中,在lc3音频编码器中,lc3音频编码器的标准码率为64kbps,对应的nbytes字节数为80个字节;最低码率为16kbps,对应的nbytes字节数为20个字节。由图4上半部分可知,使用标准码率对静音帧进行编码时,输出的码流有较多的零值,出现编码码率的浪费;而使用最低码率的静音帧进行编码时,如图4下半部分,输出的码流中与使用标准码率的静音帧编码输出的码流相比,减少了60个字节。因此,本申请的应用,将编码音频帧中的静音帧使用最低码率进行编码,保证了编码器的正常编码过程,同时节省编码码率,降低编码器的运算量,降低编码器的功耗,延长编码器的使用时间。
图5示出了本申请降低音频编码运算量的系统的一个具体实施方式。
在图5所示的具体实施方式中,本申请的降低音频编码速率的系统包括:静音帧判断模块,其判断音频帧是否为静音帧;第一个静音帧编码模块,根据编码音频的采样率或帧长设置第一编码码率;根据第一编码码率对第一个静音帧进行编码,输出第一个静音帧的编码结果,并保存;以及其他静音帧编码模块,跳过编码器中的所有编码模块,将保存的第一个静音帧的编码结果作为其他静音帧的编码结果,并输出。
在本申请的一个具体实施例中,本申请的降低音频编码运算量的系统还包括,非静音帧编码模块,其对非静音帧使用第二编码码率进行标准编码流程。
在本申请的一个具体实施例中,本申请的降低音频编码运算量的系统的第二编码码率为
编码器对所述编码音频帧进行编码前预设的编码码率。
在本申请的一个具体实施方式中,一种计算机可读存储介质,其存储有计算机指令,其中计算机指令被操作以执行任一实施例描述的降低音频编码运算量的方法。其中,该存储介质可直接在硬件中、在由处理器执行的软件模块中或在两者的组合中。
软件模块可驻留在ram存储器、快闪存储器、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可装卸盘、cd-rom或此项技术中已知的任何其它形式的存储介质中。示范性存储介质耦合到处理器,使得处理器可从存储介质读取信息和向存储介质写入信息。
处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)、现场可编程门阵列(英文:fieldprogrammablegatearray,简称:fpga)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合等。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如dsp与微处理器的组合、多个微处理器、结合dsp核心的一个或一个以上微处理器或任何其它此类配置。在替代方案中,存储介质可与处理器成一体式。处理器和存储介质可驻留在asic中。asic可驻留在用户终端中。在替代方案中,处理器和存储介质可作为离散组件驻留在用户终端中。
在本申请的一个具体实施方式中,一种计算机设备,其包括处理器和存储器,存储器存储有计算机指令,其中:处理器操作计算机指令以执行任一实施例描述的降低音频编码运算量的方法。
在本申请所提供的实施方式中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除