一种用于音频DSP数据的防溢出方法与流程

文档序号:26278289发布日期:2021-08-13 19:34阅读:172来源:国知局
一种用于音频DSP数据的防溢出方法与流程

本申请涉及数据信号处理技术领域,更具体地说,尤其涉及一种用于音频dsp数据的防溢出方法。



背景技术:

在音频行业中,dsp(数字信号处理)是其不可或缺的一部分。通过dsp技术,不仅可获得符合人们需要的信号形式,而且还可以实现语音识别、回音消除等功能。但音频文件有相应的文件格式,并且格式中有数据位数的限制,通过dsp处理后的数据有可能超过其位数所能表示的范围,造成溢出现象,严重影响音乐的音质。

目前对于音频数据溢出现象,现有的消除方法主要包括:直接削去数据的溢出部分;使用动态更新衰减系数来对数据的溢出部分进行衰减以及使用预测的方法修复音频被截幅的部分。但是,上述的音频数据防溢出方法并没有关注截幅部分与非截幅部分的跳变,若用在音乐设备上,则有可能出现“哒哒”的噪声,并且各个频率之间相对功率比值发生了明显的改变,若音频数据发生严重的溢出现象,修复效果不明显。

因此,如何提供一种用于音频dsp数据的防溢出方法,其能够平滑地修复数据,修复能力强,更有效地实现数据的防溢出处理,已经成为本领域技术人员亟待解决的技术问题。



技术实现要素:

为解决上述技术问题,本申请提供一种用于音频dsp数据的防溢出方法,其能够平滑地修复数据,修复能力强,更有效地实现数据的防溢出处理。

本申请提供的技术方案如下:

本申请提供一种用于音频dsp数据的防溢出方法,包括步骤s1至步骤s7,具体为:s1:启动计数器,清理历史参数以及数据;s2:使用next帧和last帧获取待处理的音频数据;s3:对音频数据进行格式转换以及整合,随后对其进行dsp处理;s4:获取衰减系数nextq、历史衰减系数nextattq以及辅助衰减系数logattq,对比历史衰减系数nextattq与衰减系数nextq的大小;s5:若nextq<nextattq,更新历史衰减系数nextattq值以及辅助衰减系数logattq值,清空计数器,对last帧数据进行线性变化系数衰减处理,随后进入步骤s6进行固定系数衰减处理;若nextq≥nextattq,则对计数器进行加一处理得到计数器值cnt,获取计数器计算阈值nth;对比计数器值cnt与计算阈值nth:若nth>cnt,则进入步骤s6进行固定系数衰减处理;若nth≤cnt,则对next帧数据进行线性变化系数放大处理,清零计数器并更新历史衰减系数nextattq,随后直接进入步骤s7输出last帧数据;s6:对next帧数据进行固定系数衰减处理;s7:输出last帧数据,交换last帧与next帧的数据缓冲区,随后跳回步骤s2进行新一轮数据防溢出处理。

进一步地,在本发明一种优选方式中,在步骤s3中,所述音频数据进行格式转换以及整合包括:s301:将音频数据由整数型转换成浮点型。

进一步地,在本发明一种优选方式中,在步骤s4中,所述获取衰减系数nextq包括:

s401:获取经dsp处理后next帧数据中前m个最大绝对值maxi,计算前m个最大绝对值的平均值nextmax并获取音频数据的位数能表示的最大值maxth,对比nextmax与maxth的大小;

s402:若nextmax≤maxth,则直接进入步骤s5;若nextmax>maxth,计算衰减系数nextq,计算公式为:

对比衰减系数nextq以及预设的初始衰减值attth,若nextq>attth,则给定nextq=attth后进入步骤s5。

进一步地,在本发明一种优选方式中,所述音频数据的位数能表示的最大值maxth具体表示为:

式中:n—音频数据的位数。

进一步地,在本发明一种优选方式中,在步骤s5中,所述对last帧数据进行线性变化系数衰减处理包括:

s501:进入last帧衰减处理系统;

s502:参数获取:获取数据帧的长度len、参考步进长度stepmin、历史衰减系数nextattq以及辅助衰减系数logattq;

s503:参数预处理:首先,获取目标衰减系数:

并获取初步需操作的数据长度:

其次,处理ngap的长度:若ngap>len×δ,则数据长度过长,进行裁剪操作:给定ngap=len×δ,δ为数据帧长度的比例系数,取值范围为;若ngap<len×δ,则表明数据长度过短,进行延长操作:给定ngap=numth,其中numth=len/10;

最后,获取系数步进值:

s504:将数据进行平滑操作;

s505:步骤返回处理好的数据,退出last帧衰减处理系统。

进一步地,在本发明一种优选方式中,在步骤s502中,所述参考步进长度stepmin的计算公式具体为:

式中:dot—测试深度,所述dot由单频音频测试获得。

进一步地,在本发明一种优选方式中,在步骤s504中,所述将数据进行平滑操作的操作公式具体为:

式中:

进一步地,在本发明一种优选方式中,在步骤s5中,所述对next帧数据进行线性变化系数放大处理包括:

s506:进入next帧放大处理系统;

s507:参数获取:获取数据帧的长度len、历史衰减系数nextattq以及辅助衰减系数logattq。

s508:参数预处理:首先,获取目标放大系数:

其次,获取回升步进值:

s509:将数据进行放大操作;

s510:步骤返回处理好的数据,退出next帧放大处理系统。

进一步地,在本发明一种优选方式中,在步骤s509中,所述将数据进行放大操作的操作公式具体为:

式中:

进一步地,在本发明一种优选方式中,在步骤s6中,所述对next帧数据进行固定系数衰减处理的处理公式为:

本发明提供的一种用于音频dsp数据的防溢出方法,与现有技术相比,包括以下步骤:s1:启动计数器,清理历史参数以及数据;s2:使用next帧和last帧获取待处理的音频数据;s3:对音频数据进行格式转换以及整合,随后对其进行dsp处理;s4:获取衰减系数nextq、历史衰减系数nextattq以及辅助衰减系数logattq,对比历史衰减系数nextattq与衰减系数nextq的大小;s5:若nextq<nextattq,更新历史衰减系数nextattq值以及辅助衰减系数logattq值,清空计数器,对last帧数据进行线性变化系数衰减处理,随后进入步骤s6进行固定系数衰减处理;若nextq≥nextattq,则对计数器进行加一处理得到计数器值cnt,获取计数器计算阈值nth;对比计数器值cnt与计算阈值nth:若nth>cnt,则进入步骤s6进行固定系数衰减处理;若nth≤cnt,则对next帧数据进行线性变化系数放大处理,清零计数器并更新历史衰减系数nextattq,随后直接进入步骤s7输出last帧数据;s6:对next帧数据进行固定系数衰减处理;s7:输出last帧数据,交换last帧与next帧的数据缓冲区,随后跳回步骤s2进行新一轮数据防溢出处理。其中,本方法通过归一化操作,结合线性变化系数衰减处理、线性变化系数放大处理以及固定系数衰减处理的方式来实现数据防溢出处理,同时兼顾数据各帧之间的平滑过渡,实现有效的数据修复。本发明涉及的技术方案,相较于现有技术而言,其能够平滑地修复数据,修复能力强,更有效地实现数据的防溢出处理。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的用于音频dsp数据的防溢出方法的步骤流程图;

图2为本发明实施例提供的用于音频dsp数据的防溢出方法的框架流程图;

图3为本发明实施例提供的线性变化系数衰减处理的步骤流程图;

图4为本发明实施例提供的线性变化系数放大处理的步骤流程图。

具体实施方式

为了使本领域的技术人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,当元件被称为“固定于”或“设置于”另一个元件上,它可以直接在另一个元件上或者间接设置在另一个元件上;当一个元件被称为是“连接于”另一个元件,它可以是直接连接到另一个元件或间接连接至另一个元件上。

需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“第一”、“第二”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”、“若干个”的含义是两个或两个以上,除非另有明确具体的限定。

须知,本说明书附图所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本申请可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本申请所能产生的功效及所能达成的目的下,均应仍落在本申请所揭示的技术内容得能涵盖的范围内。

请如图1至图4所示,本申请实施例提供的用于音频dsp数据的防溢出方法,包括步骤s1至步骤s7,具体为:s1:启动计数器,清理历史参数以及数据;s2:使用next帧和last帧获取待处理的音频数据;s3:对音频数据进行格式转换以及整合,随后对其进行dsp处理;s4:获取衰减系数nextq、历史衰减系数nextattq以及辅助衰减系数logattq,对比历史衰减系数nextattq与衰减系数nextq的大小;s5:若nextq<nextattq,更新历史衰减系数nextattq值以及辅助衰减系数logattq值,清空计数器,对last帧数据进行线性变化系数衰减处理,随后进入步骤s6进行固定系数衰减处理;若nextq≥nextattq,则对计数器进行加一处理得到计数器值cnt,获取计数器计算阈值nth;对比计数器值cnt与计算阈值nth:若nth>cnt,则进入步骤s6进行固定系数衰减处理;若nth≤cnt,则对next帧数据进行线性变化系数放大处理,清零计数器并更新历史衰减系数nextattq,随后直接进入步骤s7输出last帧数据;s6:对next帧数据进行固定系数衰减处理;s7:输出last帧数据,交换last帧与next帧的数据缓冲区,随后跳回步骤s2进行新一轮数据防溢出处理。

本发明提供一种用于音频dsp数据的防溢出方法,具体包括以下步骤:s1:启动计数器,清理历史参数以及数据;s2:使用next帧和last帧获取待处理的音频数据;s3:对音频数据进行格式转换以及整合,随后对其进行dsp处理;s4:获取衰减系数nextq、历史衰减系数nextattq以及辅助衰减系数logattq,对比历史衰减系数nextattq与衰减系数nextq的大小;s5:若nextq<nextattq,更新历史衰减系数nextattq值以及辅助衰减系数logattq值,清空计数器,对last帧数据进行线性变化系数衰减处理,随后进入步骤s6进行固定系数衰减处理;若nextq≥nextattq,则对计数器进行加一处理得到计数器值cnt,获取计数器计算阈值nth;对比计数器值cnt与计算阈值nth:若nth>cnt,则进入步骤s6进行固定系数衰减处理;若nth≤cnt,则对next帧数据进行线性变化系数放大处理,清零计数器并更新历史衰减系数nextattq,随后直接进入步骤s7输出last帧数据;s6:对next帧数据进行固定系数衰减处理;s7:输出last帧数据,交换last帧与next帧的数据缓冲区,随后跳回步骤s2进行新一轮数据防溢出处理。其中,本方法通过归一化操作,结合线性变化系数衰减处理、线性变化系数放大处理以及固定系数衰减处理的方式来实现数据防溢出处理,同时兼顾数据各帧之间的平滑过渡,实现有效的数据修复。本发明涉及的技术方案,相较于现有技术而言,其能够平滑地修复数据,修复能力强,更有效地实现数据的防溢出处理。

具体地,在本发明的实施例中,所述next帧用于获取新的数据,所述last帧用以输出数据。

其中,所述步骤s1:清理历史参数以及数据,在系统进行数据防溢出处理,是用以清理各个参数和数据,以便清除历史记录的影响。

具体地,在本发明的实施例中,在步骤s3中,所述音频数据进行格式转换以及整合包括:s301:将音频数据由整数型转换成浮点型。

其中,将原始音频数据有整数型转换为浮点型,可以把精度损失降低最低,保证音频数据在处理过程中的完整。

具体地,在本发明的实施例中,在步骤s4中,所述获取衰减系数nextq包括:

s401:获取经dsp处理后next帧数据中前m个最大绝对值maxi,计算前m个最大绝对值的平均值nextmax并获取音频数据的位数能表示的最大值maxth,对比nextmax与maxth的大小;

s402:若nextmax≤maxth,则直接进入步骤s5;若nextmax>maxth,计算衰减系数nextq,计算公式为:

对比衰减系数nextq以及预设的初始衰减值attth,若nextq>attth,则给定nextq=attth后进入步骤s5。

其中,所述maxi表示为:,所述平均值:

用于以可忽略不计的截幅失真的代价来避免后期归一化导致整体音量变小的问题。

具体地,在本发明的实施例中,所述音频数据的位数能表示的最大值maxth具体表示为:

式中:n—音频数据的位数。

具体地,在本发明的实施例中,对比历史衰减系数nextattq与衰减系数nextq的大小,所述衰减系数小于所述历史衰减系数,则说明next帧需要进一步衰减,则进入步骤s6。

具体地,在本发明的实施例中,在步骤s5中,所述对last帧数据进行线性变化系数衰减处理包括:

s501:进入last帧衰减处理系统;

s502:参数获取:获取数据帧的长度len、参考步进长度stepmin、历史衰减系数nextattq以及辅助衰减系数logattq;

s503:参数预处理:首先,获取目标衰减系数:

并获取初步需操作的数据长度:

其次,处理ngap的长度:若ngap>len×δ,则数据长度过长,进行裁剪操作:给定ngap=len×δ,δ为数据帧长度的比例系数,取值范围为;若ngap<len×δ,则表明数据长度过短,进行延长操作:给定ngap=numth,其中numth=len/10;

最后,获取系数步进值:

s504:将数据进行平滑操作;

s505:步骤返回处理好的数据,退出last帧衰减处理系统。

具体地,在本发明的实施例中,所述计数器主要功能是用于衰减系数回升,避免处理过程中设备发出来的声音过小。

具体地,在本发明的实施例中,在步骤s5中,对last帧数据进行线性变化系数衰减处理用以平滑last帧与next帧之间的过渡;进行线性变化系数衰减处理前,还包括:更新历史衰减系数nextattq以及辅助衰减系数logattq。

其中,所述更新历史衰减系数nextattq以及辅助衰减系数logattq的规则具体为:给定logattq=nextattq,并且给定nextattq=nextq。

具体地,在本发明的实施例中,在步骤s502中,所述参考步进长度stepmin的计算公式具体为:

式中:dot—测试深度,所述dot由单频音频测试获得。

其中,dot的取值并没有确定的范围,因为数模转换设备的分辨率和参考电压并不是固定的。dot是用单频音频测试得到的,其主要过程如下:逐渐减小dot值,直到听不到设备发出的“哒哒”声,此时的dot才是所需要的值。

具体地,在本发明的实施例中,在步骤s504中,所述将数据进行平滑操作的操作公式具体为:

式中:

具体地,在本发明的实施例中,在步骤s5中,所述对比计数器值cnt与计算阈值nth,判断计数器值cnt是否超过计数阈值nth:若未超过,说明没有进一步衰减或者放大处理,进入步骤s6;反之则说明需要放大处理,便进入后续的线性变化系数放大处理。

其中,在进行完所述线性变化系数放大处理后,清零所述计数器,表明一轮放大处理已完成,随后更新历史衰减系数nextattq,此时历史衰减系数nextattq更新规则为:给定nextattq=nextq。

具体地,在本发明的实施例中,在步骤s5中,所述对next帧数据进行线性变化系数放大处理包括:

s506:进入next帧放大处理系统;

s507:参数获取:获取数据帧的长度len、历史衰减系数nextattq以及辅助衰减系数logattq。

s508:参数预处理:首先,获取目标放大系数:

其次,获取回升步进值:

s509:将数据进行放大操作;

s510:步骤返回处理好的数据,退出next帧放大处理系统。

具体地,在本发明的实施例中,在步骤s509中,所述将数据进行放大操作的操作公式具体为:

式中:

具体地,在本发明的实施例中,在步骤s6中,所述对next帧数据进行固定系数衰减处理的处理公式为:

具体地,在本发明的实施例中,在步骤s7中,直接将next帧与last帧的数据缓冲区进行交换,可以去掉next帧数据复制到last帧中的时间,提高效率。

更为具体地阐述,目前对于音频数据溢出现象,现有的消除方法主要包括:直接削去数据的溢出部分;使用动态更新衰减系数来对数据的溢出部分进行衰减以及使用预测的方法修复音频被截幅的部分。但是,上述的音频数据防溢出方法并没有关注截幅部分与非截幅部分的跳变,若用在音乐设备上,则有可能出现“哒哒”的噪声,并且各个频率之间相对功率比值发生了明显的改变,若音频数据发生严重的溢出现象,修复效果不明显。

本发明提供的用于音频dsp数据的防溢出方法,使用next帧和last帧获取音频数据,并对数据进行格式转换、dsp及防溢出处理;在next帧中,获取衰减系数nextq,与历史衰减系数nextattq对比:若nextq<nextattq,对last帧数据进行线性变化系数衰减处理,清空计数器,后对next帧进行固定系数衰减处理,并更新nextattq值;反之则对计数器进行加一处理,对比计数器值cnt与计算阈值nth:若nth>cnt,对next帧进行固定系数衰减处理;反之则对next帧数据进行线性变化系数放大处理,后清空计数器,并更新nextattq值。最后输出last帧数据,交换last帧与next帧的数据缓冲区,开始新一轮的处理,从而实现数据的防溢出处理。

因此,由上所述,本发明实施例涉及的用于音频dsp数据的防溢出方法,通过归一化操作,结合线性变化系数衰减处理、线性变化系数放大处理以及固定系数衰减处理的方式来实现数据防溢出处理,同时兼顾数据各帧之间的平滑过渡,实现有效的数据修复,并且消除了因音频数据间跳变过大而产生的噪声。本发明涉及的技术方案,相较于现有技术而言,其能够平滑地修复数据,修复能力强,更有效地实现数据的防溢出处理。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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