音频文件数据重排序的方法和系统的制作方法

文档序号:9351137阅读:842来源:国知局
音频文件数据重排序的方法和系统的制作方法
【技术领域】
[0001] 本发明涉及音频编码解码技术领域,尤其涉及一种音频文件数据重排序的方法和 系统。
【背景技术】
[0002] MP3是MPEG-I音频标准第三层音频编码(MPEG-l/Audio Layer-Ill)的简称,是目 前被广泛使用的一种音频格式。在MPEG-I音频标准(IS0/IEC11172-3)中,根据压缩质量 和编码复杂程度划分为三层,即Layerl、Layer2、Layer3,分别对应MP1、MP2、MP3这三种音 频文件,其中MP3的回放效果最好,编码最复杂,压缩率最高,可达10 :1~12 :1。
[0003]MP3对音频信号采用的是有损压缩方式,为了降低声音失真度,MP3使用了基于 人耳听觉特性的音频感知编码,采取了"心理声学模型II",其直接影响着音频编码的质量 及压缩比。将输入的声音信号经32个子带滤波器组和MDCT(ModifiedDiscreteCosine Transform,修正离散余弦变换)进行时频转换处理,同时通过"心理声学模型II"计算出每 个子带的信号能量和SMR(signal-t〇-maskratio,信掩比)。利用SMR来决定分配子带信 号的量化位数,然后通过熵编码对每个谱线进行编码,最后通过"位流封装"将子带的样本 及其他附加数据按帧的格式组装成位比特流,形成具有较高压缩比的MP3文件,并使压缩 后的文件在回放时能够达到比较接近原音源的声音效果。
[0004] 在"心理声学模型II"同时计算出感知熵,反映了信号变化的激烈程度,以此确定 时频变换后每个粒度576个值的类型。当感知熵小于设定阀值时,该粒度为长块,即576个 值按频率线从低到高分为32个子带,每个子带包含18条频率线;当感知熵大于设定阀值 时,该粒度为短块,即576个值按频率线从低到高分为32个子带,每个子带包含6条频率 线。每一条频率线上有三个窗值windowO、windowl和window2 ;当低频的感知熵较大时,该 粒度为混合块,即576个值的前36个值为长块部分,后540个值为短块部分。在进行量化 时按若干条频率线为单位进行,这若干条频率线组成缩放因子频带,在一个缩放因子频带 内的频率线量化和反量化时共用缩放因子。
[0005] 在MP3解码中,如果粒度的块类型为短块或者混合块,说明在编码时有子带使用 了短窗,在IMDCT(InverseModifiedDiscreteCosineTransform,修正离散余弦逆变换) 之前要对这些频率线的顺序按照MDCT输出的顺序重新进行排列。重排序有两个特征:重排 序不会改变频率线的子带归属,即重排序后缩放因子频带间的数据不会交叠;缩放因子频 带内第一个位置的频率线和最后一个位置的频率线位置不变。
[0006] 由于频率线重新排序的特征,需要用到576点的缓存,在MP3编解码所用内存中占 相当大的比重。因此在保证MP3音频编解码速度的同时,对重排序内存空间占用的优化十 分必要,可减小芯片面积,降低成本。

【发明内容】

[0007] 基于此,有必要提供一种音频文件数据重排序的方法,用于对重排序内存空间占 用进行优化。
[0008] -种音频文件数据重排序的方法,包括以下步骤:
[0009] 根据音频文件数据的缩放因子频带的宽度设定预设个数的轮转因子;一个所述轮 转因子对应所述缩放因子频带的一个频率线,适用于引导所述缩放因子频带的多个频率线 重排序;
[0010] 根据预设公式计算所述缩放因子频带的频率线的目标位置;所述预设公式表征所 述缩放因子频带的频率线的原始位置、所述轮转因子与所述缩放因子频带的频率线的目标 位置三者之间的关系;
[0011] 通过预设中间变量将位于所述原始位置的频率线对应的数据赋值到所述目标位 置。
[0012] 在其中一个实施例中,所述通过预设中间变量将位于所述原始位置的频率线对应 的数据赋值到所述目标位置步骤包括:
[0013] 将所述目标位置的频率线对应的数据暂时存储到预设中间变量中;
[0014] 将所述原始位置的频率线对应的数据赋值到所述目标位置;
[0015] 将所述目标位置设为新的原始位置,并将所述预设中间变量中暂时存储的数据作 为所述新的原始位置的频率线对应的数据;
[0016] 重复上述三步,直至通过所述预设公式计算出的目标位置为所述轮转因子对应的 频率线的位置时止。
[0017] 在其中一个实施例中,在所述音频文件数据的解码过程中,所述预设公式为:g= (n*p) % (n*w-l);
[0018] 其中,(n*p) % (n*w-l)表示(n*p)整除(n*w-l)以后的余数,g为所述缩放因子 频带的频率线的目标位置,p为所述缩放因子频带的频率线的原始位置,w为所述缩放因子 频带的宽度,n为所述缩放因子频带的频率线的窗值个数,且根据预设公式计算所述缩放因 子频带的频率线的目标位置的步骤,是由所述轮转因子对应的所述频率线开始计算所述缩 放因子频带的频率线的目标位置。
[0019] 在其中一个实施例中,在所述音频文件数据的编码过程中,所述预设公式为:g= w* (p%n) +p/n;
[0020] 其中,p%n表示p整除n以后的余数,p/n表示p与n相除结果的整数部分,g为 所述缩放因子频带的频率线的目标位置,P为所述缩放因子频带的频率线的原始位置,w为 所述缩放因子频带的宽度,n为所述缩放因子频带的频率线的窗值个数,且根据预设公式计 算所述缩放因子频带的频率线的目标位置的步骤,是由所述轮转因子对应的所述频率线开 始计算所述缩放因子频带的频率线的目标位置。
[0021] 在其中一个实施例中,所述频率线对应的数据类型为浮点数和/或定点数。
[0022] 另外,本发明还提出一种音频文件数据重排序的系统,包括轮转因子设定模块、数 据库、目标位置计算模块和数据赋值模块;
[0023] 所述轮转因子设定模块,被配置以根据音频文件数据的缩放因子频带的宽度设定 轮转因子;一个所述轮转因子对应所述缩放因子频带的一个频率线,适用于引导所述缩放 因子频带的多个频率线重排序;
[0024] 所述数据库,被配置以存储预设公式;所述预设公式表征所述缩放因子频带的频 率线的原始位置、所述轮转因子和所述缩放因子频带的频率线的目标位置三者之间的关 系;
[0025] 所述目标位置计算模块,被配置以连接所述数据库并获取所述预设公式,根据所 述预设公式计算所述缩放因子频带的频率线的目标位置;
[0026] 所述数据赋值模块,被配置以通过预设中间变量将位于所述原始位置的频率线对 应的数据赋值到所述目标位置。
[0027] 在其中一个实施例中,所述数据赋值模块通过预设中间变量将位于所述原始位置 的频率线对应的数据赋值到所述目标位置的方法包括以下步骤:
[0028] 将所述目标位置的频率线对应的数据暂时存储到预设中间变量中;
[0029] 将所述原始位置的频率线对应的数据赋值到所述目标位置;
[0030] 将所述目标位置设为新的原始位置,并将所述预设中间变量中暂时存储的数据作 为所述新的原始位置的频率线对应的数据;
[0031] 重复上述三步,直至通过所述预设公式计算出的目标位置为所述轮转因子对应的 频率线的位置时止。
[0032] 在其中一个实施例中,在所述音频文件数据的解码过程中,所述预设公式为:g= (n*p) % (n*w-l);
[0033] 其中,(n*p) % (n*w-l)表示(n*p)整除(n*w-l)以后的余数,g为所述缩放因子 频带的频率线的目标位置,p为所述缩放因子频带的频率线的原始位置,w为所述缩放因子 频带的宽度,且所述目标位置计算模块根据所述预设公式计算所述缩放因子频带的频率线 的目标位置的过程,是由所述轮转因子对应的所述频率线开始计算所述缩放因子频带的频 率线的目标位置。
[0034] 在其中一个实施例中,在所述音频文件数据的编码过程中,所述预设公式为:g= w* (p%n) +p/n;
[0035] 其中,p%n表示p整除n以后的余数,p/n表示p与n相除结果的整数部分,g为 所述缩放因子频带的频率线的目标位置,P为所述缩放因子频带的频率线的原始位置,w为 所述缩放因子频带的宽度,n为所述缩放因子频带的频率线的窗值个数,且所述目标位置计 算模块根据所述预设公式计算所述缩放因子频带的频率线的目标位置的过程,是由所述轮
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1