CN105070292B - 音频文件数据重排序的方法和系统 - Google Patents

音频文件数据重排序的方法和系统 Download PDF

Info

Publication number
CN105070292B
CN105070292B CN201510408730.XA CN201510408730A CN105070292B CN 105070292 B CN105070292 B CN 105070292B CN 201510408730 A CN201510408730 A CN 201510408730A CN 105070292 B CN105070292 B CN 105070292B
Authority
CN
China
Prior art keywords
frequency line
target position
scale factor
factor band
frequency
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510408730.XA
Other languages
English (en)
Other versions
CN105070292A (zh
Inventor
闫玉凤
肖全之
方桂萍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Jieli Technology Co Ltd
Original Assignee
Zhuhai Jieli Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhuhai Jieli Technology Co Ltd filed Critical Zhuhai Jieli Technology Co Ltd
Priority to CN201510408730.XA priority Critical patent/CN105070292B/zh
Publication of CN105070292A publication Critical patent/CN105070292A/zh
Application granted granted Critical
Publication of CN105070292B publication Critical patent/CN105070292B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开一种音频文件数据重排序的方法和系统。该方法包括:根据音频文件数据的缩放因子频带的宽度设定预设个数的轮转因子;根据表征缩放因子频带的频率线的原始位置、轮转因子和缩放因子频带的频率线的目标位置三者之间的关系的预设公式计算缩放因子频带的频率线的目标位置;通过预设中间变量将位于原始位置的频率线对应的数据赋值到目标位置。该系统包括轮转因子设定模块、数据库、目标位置计算模块和数据赋值模块。采用上述方法和系统能够大大减少读写操作的次数,节省内存空间资源,从而提升音频文件编码和解码的效率。

Description

音频文件数据重排序的方法和系统
技术领域
本发明涉及音频编码解码技术领域,尤其涉及一种音频文件数据重排序的方法和系统。
背景技术
MP3是MPEG-1音频标准第三层音频编码(MPEG-1/Audio Layer-III)的简称,是目前被广泛使用的一种音频格式。在MPEG-1音频标准(ISO/IEC11172-3)中,根据压缩质量和编码复杂程度划分为三层,即Layer1、Layer2、Layer3,分别对应MP1、MP2、MP3这三种音频文件,其中MP3的回放效果最好,编码最复杂,压缩率最高,可达10:1~12:1。
MP3对音频信号采用的是有损压缩方式,为了降低声音失真度,MP3使用了基于人耳听觉特性的音频感知编码,采取了“心理声学模型II”,其直接影响着音频编码的质量及压缩比。将输入的声音信号经32个子带滤波器组和MDCT(Modified Discrete CosineTransform,修正离散余弦变换)进行时频转换处理,同时通过“心理声学模型II”计算出每个子带的信号能量和SMR(signal-to-mask ratio,信掩比)。利用SMR来决定分配子带信号的量化位数,然后通过熵编码对每个谱线进行编码,最后通过“位流封装”将子带的样本及其他附加数据按帧的格式组装成位比特流,形成具有较高压缩比的MP3文件,并使压缩后的文件在回放时能够达到比较接近原音源的声音效果。
在“心理声学模型II”同时计算出感知熵,反映了信号变化的激烈程度,以此确定时频变换后每个粒度576个值的类型。当感知熵小于设定阀值时,该粒度为长块,即576个值按频率线从低到高分为32个子带,每个子带包含18条频率线;当感知熵大于设定阀值时,该粒度为短块,即576个值按频率线从低到高分为32个子带,每个子带包含6条频率线。每一条频率线上有三个窗值window0、window1和window2;当低频的感知熵较大时,该粒度为混合块,即576个值的前36个值为长块部分,后540个值为短块部分。在进行量化时按若干条频率线为单位进行,这若干条频率线组成缩放因子频带,在一个缩放因子频带内的频率线量化和反量化时共用缩放因子。
在MP3解码中,如果粒度的块类型为短块或者混合块,说明在编码时有子带使用了短窗,在IMDCT(Inverse Modified Discrete Cosine Transform,修正离散余弦逆变换)之前要对这些频率线的顺序按照MDCT输出的顺序重新进行排列。重排序有两个特征:重排序不会改变频率线的子带归属,即重排序后缩放因子频带间的数据不会交叠;缩放因子频带内第一个位置的频率线和最后一个位置的频率线位置不变。
由于频率线重新排序的特征,需要用到576点的缓存,在MP3编解码所用内存中占相当大的比重。因此在保证MP3音频编解码速度的同时,对重排序内存空间占用的优化十分必要,可减小芯片面积,降低成本。
发明内容
基于此,有必要提供一种音频文件数据重排序的方法,用于对重排序内存空间占用进行优化。
一种音频文件数据重排序的方法,包括以下步骤:
根据音频文件数据的缩放因子频带的宽度设定预设个数的轮转因子;一个所述轮转因子对应所述缩放因子频带的一个频率线,适用于引导所述缩放因子频带的多个频率线重排序;
根据预设公式计算所述缩放因子频带的频率线的目标位置;所述预设公式表征所述缩放因子频带的频率线的原始位置、所述轮转因子与所述缩放因子频带的频率线的目标位置三者之间的关系;
通过预设中间变量将位于所述原始位置的频率线对应的数据赋值到所述目标位置。
在其中一个实施例中,所述通过预设中间变量将位于所述原始位置的频率线对应的数据赋值到所述目标位置步骤包括:
将所述目标位置的频率线对应的数据暂时存储到预设中间变量中;
将所述原始位置的频率线对应的数据赋值到所述目标位置;
将所述目标位置设为新的原始位置,并将所述预设中间变量中暂时存储的数据作为所述新的原始位置的频率线对应的数据;
重复上述三步,直至通过所述预设公式计算出的目标位置为所述轮转因子对应的频率线的位置时止。
在其中一个实施例中,在所述音频文件数据的解码过程中,所述预设公式为:g=(n*p)%(n*w-1);
其中,(n*p)%(n*w-1)表示(n*p)整除(n*w-1)以后的余数,g为所述缩放因子频带的频率线的目标位置,p为所述缩放因子频带的频率线的原始位置,w为所述缩放因子频带的宽度,n为所述缩放因子频带的频率线的窗值个数,且根据预设公式计算所述缩放因子频带的频率线的目标位置的步骤,是由所述轮转因子对应的所述频率线开始计算所述缩放因子频带的频率线的目标位置。
在其中一个实施例中,在所述音频文件数据的编码过程中,所述预设公式为:g=w*(p%n)+p/n;
其中,p%n表示p整除n以后的余数,p/n表示p与n相除结果的整数部分,g为所述缩放因子频带的频率线的目标位置,p为所述缩放因子频带的频率线的原始位置,w为所述缩放因子频带的宽度,n为所述缩放因子频带的频率线的窗值个数,且根据预设公式计算所述缩放因子频带的频率线的目标位置的步骤,是由所述轮转因子对应的所述频率线开始计算所述缩放因子频带的频率线的目标位置。
在其中一个实施例中,所述频率线对应的数据类型为浮点数和/或定点数。
另外,本发明还提出一种音频文件数据重排序的系统,包括轮转因子设定模块、数据库、目标位置计算模块和数据赋值模块;
所述轮转因子设定模块,被配置以根据音频文件数据的缩放因子频带的宽度设定轮转因子;一个所述轮转因子对应所述缩放因子频带的一个频率线,适用于引导所述缩放因子频带的多个频率线重排序;
所述数据库,被配置以存储预设公式;所述预设公式表征所述缩放因子频带的频率线的原始位置、所述轮转因子和所述缩放因子频带的频率线的目标位置三者之间的关系;
所述目标位置计算模块,被配置以连接所述数据库并获取所述预设公式,根据所述预设公式计算所述缩放因子频带的频率线的目标位置;
所述数据赋值模块,被配置以通过预设中间变量将位于所述原始位置的频率线对应的数据赋值到所述目标位置。
在其中一个实施例中,所述数据赋值模块通过预设中间变量将位于所述原始位置的频率线对应的数据赋值到所述目标位置的方法包括以下步骤:
将所述目标位置的频率线对应的数据暂时存储到预设中间变量中;
将所述原始位置的频率线对应的数据赋值到所述目标位置;
将所述目标位置设为新的原始位置,并将所述预设中间变量中暂时存储的数据作为所述新的原始位置的频率线对应的数据;
重复上述三步,直至通过所述预设公式计算出的目标位置为所述轮转因子对应的频率线的位置时止。
在其中一个实施例中,在所述音频文件数据的解码过程中,所述预设公式为:g=(n*p)%(n*w-1);
其中,(n*p)%(n*w-1)表示(n*p)整除(n*w-1)以后的余数,g为所述缩放因子频带的频率线的目标位置,p为所述缩放因子频带的频率线的原始位置,w为所述缩放因子频带的宽度,且所述目标位置计算模块根据所述预设公式计算所述缩放因子频带的频率线的目标位置的过程,是由所述轮转因子对应的所述频率线开始计算所述缩放因子频带的频率线的目标位置。
在其中一个实施例中,在所述音频文件数据的编码过程中,所述预设公式为:g=w*(p%n)+p/n;
其中,p%n表示p整除n以后的余数,p/n表示p与n相除结果的整数部分,g为所述缩放因子频带的频率线的目标位置,p为所述缩放因子频带的频率线的原始位置,w为所述缩放因子频带的宽度,n为所述缩放因子频带的频率线的窗值个数,且所述目标位置计算模块根据所述预设公式计算所述缩放因子频带的频率线的目标位置的过程,是由所述轮转因子对应的所述频率线开始计算所述缩放因子频带的频率线的目标位置。
在其中一个实施例中,所述频率线对应的数据类型为浮点数和/或定点数。
上述音频文件数据重排序的方法和系统,根据缩放因子频带的宽度设定预设个数的轮转因子,根据预设公式计算缩放因子频带的频率线的目标位置,通过预设中间变量将位于原始位置的频率线对应的数据赋值到目标位置,能够大大减少读写操作的次数,节省内存空间资源,从而提升音频文件编码和解码的效率。
附图说明
图1为本发明音频文件数据重排序的方法一个实施例的流程图;
图2为本发明音频文件数据重排序的方法一个实施例中的将位于原始位置的频率线对应的数据赋值到目标位置的具体流程图;
图3为本发明音频文件数据重排序的系统一个实施例的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明音频文件数据重排序的方法和系统的具体实施方式进行说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1,一个实施例中,本发明音频文件数据重排序的方法包括以下步骤:
S100,根据音频文件数据的缩放因子频带的宽度设定预设个数的轮转因子。
其中,一个轮转因子对应音频文件数据的缩放因子频带的一个频率线,适用于引导缩放因子频带的多个频率线重排序。缩放因子频带的宽度不同,轮转因子的个数可能不同。例如,轮转因子的个数可以为两个、三个或其他数目,即本步骤中的预设个数可以为两个、三个或其他数目。对于宽度为4、采样率为48K的缩放因子频带,轮转因子的个数为两个。
一般的,可以通过穷举法,根据缩放因子频带宽度设定预设个数的轮转因子。
S200,根据预设公式计算缩放因子频带的频率线的目标位置。
其中,预设公式表征缩放因子频带的频率线的原始位置、轮转因子和缩放因子频带的频率线的目标位置三者之间的关系。可以理解的,在对数据进行IMDCT处理之前,要对缩放因子频带的频率线的顺序进行重新排列,依据的就是MDCT处理输出的顺序。
一个实施例中,在音频文件数据的解码过程中,对应的预设公式可以为:g=(n*p)%(n*w-1);
其中,(n*p)%(n*w-1)表示(n*p)整除(n*w-1)以后的余数,g为缩放因子频带的频率线的目标位置,p为缩放因子频带的频率线的原始位置,w为缩放因子频带的宽度,n为缩放因子频带的频率线的窗值个数,对于不同格式的音频文件,n的取值可能不同。例如,对于MP3音频文件,n的取值为3,而对于AAC(Advanced Audio Coding,高级音频编码)音频文件,n的取值则不一定为3。且步骤200是由轮转因子对应的所述频率线开始计算缩放因子频带的频率线的目标位置的。
而在音频文件数据的编码过程中,对应的预设公式可以为:g=w*(p%n)+p/n;
其中,p%n表示p整除n以后的余数,p/n表示p与n相除结果的整数部分,g为缩放因子频带的频率线的目标位置,p为缩放因子频带的频率线的原始位置,w为缩放因子频带的宽度,n为缩放因子频带的频率线的窗值个数,对于不同格式的音频文件,n的取值可能不同。例如,对于MP3音频文件,n的取值为3,而对于AAC(Advanced Audio Coding,高级音频编码)音频文件,n的取值则不一定为3。且步骤200是由轮转因子对应的频率线开始计算缩放因子频带的频率线的目标位置的。
在后续部分内容中,将以一个较为具体的实施例对预设公式进行说明。
S300,将位于所述原始位置的频率线对应的数据赋值到所述目标位置。
参见图2,一个实施例中,步骤S300可以包括以下步骤:
S310,将目标位置的频率线对应的数据暂时存储到预设中间变量中。
可以理解的,若直接将原始位置的频率线对应的数据直接赋值到计算得出的目标位置,则在重排序的后续的过程中会因为目标位置的频率线对应的数据直接被原始位置的频率线对应的原始数据覆盖掉而出错。针对上述问题,可以通过一预设中间变量,先将目标位置的频率线对应的数据暂时存储到该预设中间变量中,然后将原汁位置的频率线对应的数据赋值到目标位置。
S320,将原始位置的频率线对应的数据赋值到目标位置。
通过步骤310将目标位置的频率线对应的数据暂时存储到预设中间变量中后,目标位置暂时无对应的数据。因此,可以将原始位置的频率线对应的数据赋值到目标位置。此时,完成对一个位于原始位置的频率线的重排序。
S330,将目标位置设为新的原始位置,并将预设中间变量中暂时存储的数据作为新的原始位置的频率线对应的数据。
将目标位置作为新的原始位置,并将步骤S310中暂时存储到预设中间变量的数据作为新的原始位置的频率线对应的数据,从而可以根据步骤S310和S320对新的原始位置的频率线进行重排序。
S340,重复上述三步,直至通过预设公式计算出的目标位置为轮转因子对应的频率线的位置时止。
将目标位置作为新的原始位置,并将步骤S310中暂时存储到预设中间变量的数据作为新的原始位置的频率线对应的数据后,重复步骤S310、S320和S330,从而完成第二个频率线的重排序工作。
参照上述过程,对其他频率线进行重排序,直至通过预设公式计算出的目标位置与轮转因子对应的频率线的位置为同一位置,则完成步骤S300的内容。
需要说明的是,本实施例中,频率线对应的数据类型为浮点数和/或定点数。
以下以编码过程为例,对本发明音频文件数据重排序的方法进行详细说明。
表1重排序后位置与原始位置的对比
重排序步骤 原始位置 重排序后位置
1 0 0
2 1 4
3 4 5
4 5 9
5 9 3
6 3 1
7 2 8
8 8 10
9 10 7
10 7 6
11 6 2
12 11 11
参见表1,如前所述,原始位置中的位于第一位置的频率线和位于倒数第一位置的频率线,在重排序过程中位置不会变动。因此,只需对位于第二位置到倒数第二位置的频率线进行重排序。本实施例中,缩放因子频带的宽度为4,缩放因子频带的频率线的窗值个数为3。
首先,根据缩放因子频带的宽度设定预设个数的轮转因子。本实施例中,设定的轮转因子的个数为两个。第一个轮转因子对应的频率线的原始位置为1,第二个轮转因子对应的频率线的原始位置为2。
然后,依据公式:g=w*(p%3)+p/3,并由第一个轮转因子对应的频率线开始,计算各个频率线的目标位置,并重排序。具体过程为:
计算第一个轮转因子对应的频率线的目标位置g=w*(p%3)+p/3=4,则将目标位置(即原始位置为第4的位置)的频率线对应的数据暂时存储到预设中间变量,然后将第一个轮转因子对应的频率线对应的数据赋值到目标位置(即原始位置为第4的位置);
计算第4个频率线的目标位置g=w*(p%3)+p/3=5,则将目标位置(即原始位置为第5的位置)的频率线对应的数据暂时存储到预设中间变量,然后将预设中间变量中存储的原始位置为第4的位置的频率线对应的数据赋值到目标位置(即原始位置为第5的位置);
依次计算,直至计算得出的目标位置等于第一个轮转因子对应的频率线的原始位置。此时,通过第一个轮转因子引导相关的频率线的重排序完成。然后按照上述方法通过第二个轮转因子引导其他的频率线重排序。
原始位置0和11出的数据在重排序过程中位置不会变化。本实施例中,采用本发明音频文件数据重排序的方法,通过10次读/写操作就实现了缩放因子频带宽度为4的缩放因子频带的重排序;完成一个粒度576条频率线的重排序只需进行550次频率线读/写操作、13个起始索引读操作,8至21次轮转因子读操作即可。而采用现有方法,需要首先把缩放因子频带的频率线对应的数据重新排序到缓存中,然后把数据从缓存中赋值到缩放因子频带中,共需要24次读/写操作;完成一个粒度576条频率线的重排序需要576点的缓存、576*2次读操作和576*2次的写操作。由此可见,采用本发明音频文件数据重排序的方法能够大大减少读写操作的次数,节省内存空间资源,从而提升了音频文件编码的效率。
对于在解码过程中对缩放因子频带的频率线的重排序的过程参照上述在编码过程中对缩放因子频带的频率线的重排序过程即可,故在此不再赘述。一个实施例中,上述的音频文件可以为MP3或其他格式的音频文件。
上述音频文件数据重排序的方法,根据缩放因子频带的宽度设定预设个数的轮转因子,根据预设公式计算缩放因子频带的频率线的目标位置,通过预设中间变量将位于原始位置的频率线对应的数据赋值到目标位置,能够大大减少读写操作的次数,节省内存空间资源,从而提升音频文件编码和解码的效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
基于同一发明构思,本发明实施例提供一种音频文件数据重排序的系统,由于此系统解决问题的原理与前述一种音频文件数据重排序的方法相似,因此,该系统的实施可以按照前述方法的具体步骤实现,重复之处不再赘述。
参见图3,一个实施例中,本发明音频文件数据重排序的系统包括:轮转因子设定模块100、数据库200、目标位置计算模块300和数据赋值模块400。
轮转因子设定模块100,被配置以根据音频文件数据的缩放因子频带的宽度设定轮转因子。
其中,一个轮转因子对应音频文件数据的缩放因子频带的一个频率线,适用于引导所述缩放因子频带的多个频率线重排序。缩放因子频带的宽度不同,轮转因子的个数可能不同。例如,轮转因子的个数可以为两个、三个或其他数目,即本步骤中的预设个数可以为两个、三个或其他数目。对于宽度为4、采样率为48K的缩放因子频带,轮转因子的个数为两个。
一般的,可以通过穷举法,根据缩放因子频带宽度设定预设个数的轮转因子。
数据库200,被配置以存储预设公式。
其中,预设公式表征缩放因子频带的频率线的原始位置、轮转因子和缩放因子频带的频率线的目标位置三者之间的关系。可以理解的,在对数据进行IMDCT处理之前,要对缩放因子频带的频率线的顺序进行重新排列,依据的就是MDCT处理输出的顺序。
一个实施例中,在音频文件数据的解码过程中,对应的预设公式可以为:g=(n*p)%(n*w-1);
其中,(n*p)%(n*w-1)表示(n*p)整除(n*w-1)以后的余数,g为缩放因子频带的频率线的目标位置,p为缩放因子频带的频率线的原始位置,w为缩放因子频带的宽度,n为缩放因子频带的频率线的窗值个数。对于不同格式的音频文件,n的取值可能不同。例如,对于MP3音频文件,n的取值为3,而对于AAC(Advanced Audio Coding,高级音频编码)音频文件,n的取值则不一定为3。
在音频文件数据的编码过程中,对应的预设公式可以为:g=w*(p%n)+p/n;
其中,p%n表示p整除n以后的余数,p/n表示p与n相除结果的整数部分,g为缩放因子频带的频率线的目标位置,p为缩放因子频带的频率线的原始位置,w为缩放因子频带的宽度,n为缩放因子频带的频率线的窗值个数。对于不同格式的音频文件,n的取值可能不同。例如,对于MP3音频文件,n的取值为3,而对于AAC(Advanced Audio Coding,高级音频编码)音频文件,n的取值则不一定为3。
在后续部分内容中,将以一个较为具体的实施例对预设公式进行进一步的说明。
目标位置计算模块300,被配置以连接数据库200并获取预设公式,根据预设公式计算缩放因子频带的频率线的目标位置。
具体的,目标位置计算模块300连接数据库200,并根据此时为编码或解码过程,获取数据库200中存储的编码或解码过程对应的预设公式计算缩放因子频带的频率线的目标位置。
另外,在音频文件数据的编码和解码过程中,目标位置计算模块300根据所述预设公式计算所述缩放因子频带的频率线的目标位置的过程,均是由轮转因子对应的频率线开始计算缩放因子频带的频率线的目标位置的。
数据赋值模块400,被配置以将位于原始位置的频率线对应的数据赋值到目标位置。
一个实施例中,数据赋值模块400通过预设中间变量将位于原始位置的频率线对应的数据赋值到目标位置的方法可以包括以下步骤:
首先,将目标位置的频率线对应的数据暂时存储到预设中间变量中。
可以理解的,若直接将原始位置的频率线对应的数据直接赋值到计算得出的目标位置,则在重排序的后续的过程中会因为目标位置的频率线对应的数据直接被原始位置的频率线对应的原始数据覆盖掉而出错。针对上述问题,可以通过一预设中间变量,先将目标位置的频率线对应的数据暂时存储到该预设中间变量中,然后将原汁位置的频率线对应的数据赋值到目标位置。
然后,将原始位置的频率线对应的数据赋值到目标位置。
通过上一步骤将目标位置的频率线对应的数据暂时存储到预设中间变量中后,目标位置暂时无对应的数据。因此,可以将原始位置的频率线对应的数据赋值到目标位置。此时,完成对一个位于原始位置的频率线的重排序。
其次,将目标位置设为新的原始位置,并将预设中间变量中暂时存储的数据作为新的原始位置的频率线对应的数据。
将目标位置作为新的原始位置,并将步骤S310中暂时存储到预设中间变量的数据作为新的原始位置的频率线对应的数据,从而可以根据步骤S310和S320对新的原始位置的频率线进行重排序。
重复上述三步,直至通过预设公式计算出的目标位置为轮转因子对应的频率线的位置时止。
将目标位置作为新的原始位置,并将步骤第一个步骤中暂时存储到预设中间变量的数据作为新的原始位置的频率线对应的数据后,重复上述三个步骤,从而完成第二个频率线的重排序工作。
参照上述过程,对其他频率线进行重排序,直至通过预设公式计算出的目标位置与轮转因子对应的频率线的位置为同一位置,则完成对缩放因子频带的频率线的重排序。
需要说明的是,本实施例中,频率线对应的数据类型为浮点数和/或定点数。
以下以编码过程为例,对本发明音频文件数据重排序的系统的工作过程进行详细说明。
表2重排序后位置与原始位置的对比
重排序步骤 原始位置 重排序后位置
1 0 0
2 1 4
3 4 5
4 5 9
5 9 3
6 3 1
7 2 8
8 8 10
9 10 7
10 7 6
11 6 2
12 11 11
参见表2,如前所述,原始位置中的位于第一位置的频率线和位于倒数第一位置的频率线,在重排序过程中位置不会变动。因此,只需对位于第二位置到倒数第二位置的频率线进行重排序。本实施例中,缩放因子频带的宽度为4,n为缩放因子频带的频率线的窗值个数为3。
首先,根据缩放因子频带的宽度设定预设个数的轮转因子。本实施例中,设定的轮转因子的个数为两个。第一个轮转因子对应的频率线的原始位置为1,第二个轮转因子对应的频率线的原始位置为2。
然后,依据公式:g=w*(p%3)+p/3,并由第一个轮转因子对应的频率线开始,计算各个频率线的目标位置,并重排序。具体过程为:
计算第一个轮转因子对应的频率线的目标位置g=w*(p%3)+p/3=4,则将目标位置(即原始位置为第4的位置)的频率线对应的数据暂时存储到预设中间变量,然后将第一个轮转因子对应的频率线对应的数据赋值到目标位置(即原始位置为第4的位置);
计算第4个频率线的目标位置g=w*(p%3)+p/3=5,则将目标位置(即原始位置为第5的位置)的频率线对应的数据暂时存储到预设中间变量,然后将预设中间变量中存储的原始位置为第4的位置的频率线对应的数据赋值到目标位置(即原始位置为第5的位置);
依次计算,直至计算得出的目标位置等于第一个轮转因子对应的频率线的原始位置。此时,通过第一个轮转因子引导相关的频率线的重排序完成。然后按照上述方法通过第二个轮转因子引导其他的频率线重排序。
原始位置0和11出的数据在重排序过程中位置不会变化。本实施例中,采用本发明音频文件数据重排序的系统,通过10次读/写操作就实现了缩放因子频带宽度为4的缩放因子频带的重排序;完成一个粒度576条频率线的重排序只需进行550次频率线读/写操作、13个起始索引读操作,8至21次轮转因子读操作即可。而采用现有方法,需要首先把缩放因子频带的频率线对应的数据重新排序到缓存中,然后把数据从缓存中赋值到缩放因子频带中,共需要24次读/写操作;完成一个粒度576条频率线的重排序需要576点的缓存、576*2次读操作和576*2次的写操作。由此可见,采用本发明音频文件数据重排序的系统能够大大减少读写操作的次数,节省内存空间资源,从而提升了音频文件编码的效率。
对于在解码过程中对缩放因子频带的频率线的重排序的过程参照上述在编码过程中对缩放因子频带的频率线的重排序过程即可,故在此不再赘述。一个实施例中,上述的音频文件可以为MP3或其他格式的音频文件。
上述音频文件数据重排序的系统,根据缩放因子频带的宽度设定预设个数的轮转因子,根据预设公式计算缩放因子频带的频率线的目标位置,通过预设中间变量将位于原始位置的频率线对应的数据赋值到目标位置,能够大大减少读写操作的次数,节省内存空间资源,从而提升音频文件编码解码的效率。
上述音频文件数据重排序的系统,根据缩放因子频带的宽度设定预设个数的轮转因子,根据预设公式计算缩放因子频带的频率线的目标位置,通过预设中间变量将位于原始位置的频率线对应的数据赋值到目标位置,能够大大减少读写操作的次数,节省内存空间资源,从而提升音频文件的编码和解码的效率。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (8)

1.一种音频文件数据重排序的方法,其特征在于,包括以下步骤:
根据音频文件数据的缩放因子频带的宽度设定预设个数的轮转因子;一个所述轮转因子对应所述缩放因子频带的一个频率线,适用于引导所述缩放因子频带的多个频率线重排序;
根据预设公式计算所述缩放因子频带的频率线的目标位置;所述预设公式表征所述缩放因子频带的频率线的原始位置、所述轮转因子和所述缩放因子频带的频率线的目标位置三者之间的关系;
通过预设中间变量将位于所述原始位置的频率线对应的数据赋值到所述目标位置;
其中所述通过预设中间变量将位于所述原始位置的频率线对应的数据赋值到所述目标位置步骤包括:
将所述目标位置的频率线对应的数据暂时存储到预设中间变量中;
将所述原始位置的频率线对应的数据赋值到所述目标位置;
将所述目标位置设为新的原始位置,并将所述预设中间变量中暂时存储的数据作为所述新的原始位置的频率线对应的数据;
重复以上步骤,直至通过所述预设公式计算出的目标位置为所述轮转因子对应的频率线的位置时止。
2.根据权利要求1所述的音频文件数据重排序的方法,其特征在于,在所述音频文件数据的解码过程中,所述预设公式为:g=(n*p)%(n*w-1);
其中,(n*p)%(n*w-1)表示(n*p)整除(n*w-1)以后的余数,g为所述缩放因子频带的频率线的目标位置,p为所述缩放因子频带的频率线的原始位置,w为所述缩放因子频带的宽度,n为所述缩放因子频带的频率线的窗值个数,且根据预设公式计算所述缩放因子频带的频率线的目标位置的步骤,是由所述轮转因子对应的所述频率线开始计算所述缩放因子频带的频率线的目标位置。
3.根据权利要求1所述的音频文件数据重排序的方法,其特征在于,在所述音频文件数据的编码过程中,所述预设公式为:g=w*(p%n)+p/n;
其中,p%n表示p整除n以后的余数,p/n表示p与n相除结果的整数部分,g为所述缩放因子频带的频率线的目标位置,p为所述缩放因子频带的频率线的原始位置,w为所述缩放因子频带的宽度,n为所述缩放因子频带的频率线的窗值个数,且根据预设公式计算所述缩放因子频带的频率线的目标位置的步骤,是由所述轮转因子对应的所述频率线开始计算所述缩放因子频带的频率线的目标位置。
4.根据权利要求1至3任意一项所述的音频文件数据重排序的方法,其特征在于,所述频率线对应的数据类型为浮点数和/或定点数。
5.一种音频文件数据重排序的系统,其特征在于,包括轮转因子设定模块、数据库、目标位置计算模块和数据赋值模块;
所述轮转因子设定模块,被配置以根据音频文件数据的缩放因子频带的宽度设定轮转因子;一个所述轮转因子对应所述缩放因子频带的一个频率线,适用于引导所述缩放因子频带的多个频率线重排序;
所述数据库,被配置以存储预设公式;所述预设公式表征所述缩放因子频带的频率线的原始位置、所述轮转因子和所述缩放因子频带的频率线的目标位置三者之间的关系;
所述目标位置计算模块,被配置以连接所述数据库并获取所述预设公式,根据所述预设公式计算所述缩放因子频带的频率线的目标位置;
所述数据赋值模块,被配置以通过预设中间变量将位于所述原始位置的频率线对应的数据赋值到所述目标位置;
其中所述数据赋值模块通过预设中间变量将位于所述原始位置的频率线对应的数据赋值到所述目标位置的方法包括以下步骤:
将所述目标位置的频率线对应的数据暂时存储到预设中间变量中;
将所述原始位置的频率线对应的数据赋值到所述目标位置;
将所述目标位置设为新的原始位置,并将所述预设中间变量中暂时存储的数据作为所述新的原始位置的频率线对应的数据;
重复以上步骤,直至通过所述预设公式计算出的目标位置为所述轮转因子对应的频率线的位置时止。
6.根据权利要求5所述的音频文件数据重排序的系统,其特征在于,在所述音频文件数据的解码过程中,所述预设公式为:g=(n*p)%(n*w-1);
其中,(n*p)%(n*w-1)表示(n*p)整除(n*w-1)以后的余数,g为所述缩放因子频带的频率线的目标位置,p为所述缩放因子频带的频率线的原始位置,w为所述缩放因子频带的宽度,n为所述缩放因子频带的频率线的窗值个数,且所述目标位置计算模块根据所述预设公式计算所述缩放因子频带的频率线的目标位置的过程,是由所述轮转因子对应的所述频率线开始计算所述缩放因子频带的频率线的目标位置。
7.根据权利要求5所述的音频文件数据重排序的系统,其特征在于,在所述音频文件数据的编码过程中,所述预设公式为:g=w*(p%n)+p/n;
其中,p%n表示p整除n以后的余数,p/n表示p与n相除结果的整数部分,g为所述缩放因子频带的频率线的目标位置,p为所述缩放因子频带的频率线的原始位置,w为所述缩放因子频带的宽度,n为所述缩放因子频带的频率线的窗值个数,且所述目标位置计算模块根据所述预设公式计算所述缩放因子频带的频率线的目标位置的过程,是由所述轮转因子对应的所述频率线开始计算所述缩放因子频带的频率线的目标位置。
8.根据权利要求5至7任意一项所述的音频文件数据重排序的系统,其特征在于,所述频率线对应的数据类型为浮点数和/或定点数。
CN201510408730.XA 2015-07-10 2015-07-10 音频文件数据重排序的方法和系统 Active CN105070292B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510408730.XA CN105070292B (zh) 2015-07-10 2015-07-10 音频文件数据重排序的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510408730.XA CN105070292B (zh) 2015-07-10 2015-07-10 音频文件数据重排序的方法和系统

Publications (2)

Publication Number Publication Date
CN105070292A CN105070292A (zh) 2015-11-18
CN105070292B true CN105070292B (zh) 2018-11-16

Family

ID=54499645

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510408730.XA Active CN105070292B (zh) 2015-07-10 2015-07-10 音频文件数据重排序的方法和系统

Country Status (1)

Country Link
CN (1) CN105070292B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106782573B (zh) * 2016-11-30 2020-04-24 北京酷我科技有限公司 一种编码生成aac文件的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7548853B2 (en) * 2005-06-17 2009-06-16 Shmunk Dmitry V Scalable compressed audio bit stream and codec using a hierarchical filterbank and multichannel joint coding
US20070094035A1 (en) * 2005-10-21 2007-04-26 Nokia Corporation Audio coding
CN100486332C (zh) * 2005-11-17 2009-05-06 广达电脑股份有限公司 合成子频带滤波的方法及装置
CA2792500C (en) * 2010-03-10 2016-05-03 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Audio signal decoder, audio signal encoder, methods and computer program using a sampling rate dependent time-warp contour encoding
ES2937066T3 (es) * 2010-07-20 2023-03-23 Fraunhofer Ges Forschung Decodificador de audio, procedimiento y programa informático para decodificación de audio

Also Published As

Publication number Publication date
CN105070292A (zh) 2015-11-18

Similar Documents

Publication Publication Date Title
US10643626B2 (en) Methods for parametric multi-channel encoding
CN108711431B (zh) 用于隐藏帧错误的方法和设备
CN107481725B (zh) 时域帧错误隐藏设备和时域帧错误隐藏方法
EP2613315B1 (en) Method and device for coding an audio signal
ES2971838T3 (es) Codificación de audio multiseñal utilizando el blanqueamiento de señal como preprocesamiento
CN112216289B (zh) 用于音频信号的时域数据包丢失隐藏的方法
ES2739544T3 (es) Aparato y método de emisión de un valor estimado
CN105144289A (zh) 元数据驱动的动态范围控制
TW201725581A (zh) 訊框錯誤修補裝置及音訊解碼裝置
JP6616316B2 (ja) 高帯域符号化方法及びその装置、並びに高帯域復号方法及びその装置
CN110867190B (zh) 信号编码方法和装置以及信号解码方法和装置
JP2019152871A (ja) 信号処理方法及び装置
CN105070292B (zh) 音频文件数据重排序的方法和系统
JP5970602B2 (ja) 条件付き量子化器をもつオーディオ・エンコードおよびデコード
EP3707713B1 (en) Controlling bandwidth in encoders and/or decoders
AU2014286765A1 (en) Signal encoding and decoding methods and devices
EP2481048B1 (en) Audio coding
WO2011000408A1 (en) Audio coding
US20240153513A1 (en) Method and apparatus for encoding and decoding audio signal using complex polar quantizer
JP2006126372A (ja) オーディオ信号符号化装置、方法及びプログラム
TWI841856B (zh) 音頻量化器和音頻去量化器及相關方法以及電腦程式
JP2002182695A (ja) 高能率符号化方法及び装置
CN116189693A (zh) 一种带宽扩展方法、装置、介质及设备
JP2005165056A (ja) オーディオ信号符号化装置及び方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 519085 Guangdong city of Zhuhai province Jida West Road No. 107 Building 9 Building (1-4)

Applicant after: Zhuhai jelee Polytron Technologies Inc

Address before: 519085 Guangdong city of Zhuhai province Jida West Road No. 107 Building 9 Building

Applicant before: Zhuhai Jieli Technology Co., Ltd.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 519000 No. 333, Kexing Road, Xiangzhou District, Zhuhai City, Guangdong Province

Patentee after: ZHUHAI JIELI TECHNOLOGY Co.,Ltd.

Address before: Floor 1-107, building 904, ShiJiHua Road, Zhuhai City, Guangdong Province

Patentee before: ZHUHAI JIELI TECHNOLOGY Co.,Ltd.