一种提高速度并减小功耗的数字音频解码滤波方法和装置的制作方法

文档序号:2832266阅读:270来源:国知局
专利名称:一种提高速度并减小功耗的数字音频解码滤波方法和装置的制作方法
技术领域
本发明涉及数据处理领域,尤其涉及一种提高速度并减小功耗的数字音频的解码 滤波方法和装置。
背景技术
以档案压缩格式压缩的音乐档,由于其档案小容易通过网络传输,而且其解压缩 播放后的音质好,因此日益在网络上流通。在音频文件处理过程解码滤波是一个相当重要的一个环节,其中解码器可以直接 完成各种格式音频数据流的解码操作,并输出PCM或I2S格式的数字音频信号。其中,由于音频的数据在存储时需要存储的数据量非常大,目前对于音频数据都 是采用压缩的方式存储的,而压缩之后存储的数据如果需要还原成原来的数据需要进行解 压缩(即解码)。如图1所示,在现有技术中普遍使用的解码滤波技术,具体步骤包括步骤101、输入32个新输入样本。步骤102、将存储单元已存的历史数据进行移位,将暂存器中的数据往右移动64 个位置,将原本在V(960) V(1023)的数据移出暂存器,并空出V(O) V(63)的位置。步骤103、将32个新输入样本进行矩阵运算得到64个历史数据V并保存到暂存器 空出的V(O) V(63),其中矩阵运算的具体的实现公式为 当 i=0,则 V0 为 根据公式1则可计算得到64个历史数据V。步骤104、利用所述新输入样本计算得到的历史数据建立512个值的向量U并保 存,具体的实现公式为U[i · 64+j] = V[i · 128+j]i = 0· · · 7,j = 0· · · 31U[i · 64+32+j] = V[i · 128+96+j] i = 0. · · 7,j = 0. · · 31步骤105、加窗将新建立的向量U乘上常数D得到向量W并保存Wi = Ui · Di i = 0.. 511其中D是常系数,通过查表得到。步骤106、将每间隔32个位置的W累加起来,得到输出样本S(j),j =0 31,其 中具体的实现公式为
(公式 2)当j=0,则 S。为
S0 = ff0+32*o+Wo+32*i+........+W0+32*15 步骤 107、输出 32 个输出样本数据 Sj,j = 0 31。综上所述,现有技术对数据进行解码滤波时,在进行矩阵运算、建立新向量时必须 每次都将存入存储单元中的数据读出然后再写入,从而导致运算速度慢功耗大。

发明内容
本发明提供一种提高速度并减小功耗的数字音频处理方法和装置,用于解决现有 技术中多次重复读写存储器中的数据导致运算速度慢功耗大的问题。一种提高速度并减小功耗的数字音频解码滤波方法,其中解码滤波处理的数字音 频数据作为历史数据存储在存储器中,所述存储器中包括若干个存储单元,每个存储单元 对应一个存储地址,用于存储一个历史数据,包括A.输入32个子带样本数据;B.对所述存储器中的历史数据进行移位;C.对所述32个子带样本数据进行矩阵运算,得到历史数据,并将得到的历史数据 存入所述存储器移位后空出的存储单元中;D.从所述存储器存储地址为t的存储单元中读出历史数据,当第i次从存储器中 读出历史数据,读出数据的存储地址t为i乘上预设的第一偏移量M,并将得到的乘积加上 第二偏移量j和/第三偏移量N,t = j+M*i,当i为偶数时;t = j+M*i+N,当i为奇数时; t = j,当i为0时;其中i = 0,1,. . .,15 ;M、N和j为整数,并且保证所得的t小于等于存 储器中存储单元总数;E.将读出的每个历史数据乘以对应的常系数,将乘以常系数后的所有历史数据进 行累加得到一个输出样本数据。一种提高速度并减小功耗的数字音频解码滤波装置,该装置包括存储模块,用于存储作为历史数据的数据音频数据,所述存储模块包含若干个存 储单元,每个存储单元中存储一个历史数据;历史数据生成模块,用于对所述存储模块中的历史数据进行移位,并输入32个子 带样本数据,对所述32个子带样本数据进行矩阵运算,得到历史数据,并将得到的历史数 据存入所述存储模块移位后空出的存储单元中;输出样本数据生成模块,用于从所述存储模块存储地址为t的存储单元中读出历 史数据,当第i次从存储器中读出历史数据,读出数据的存储地址t为i乘上预设的第一偏 移量M,并将得到的乘积加上第二偏移量j和/第三偏移量N,其中,t = j+M*i,当i为偶数 时;t = j+M*i+N,当i为奇数时;t = j,当i为0时;i = 0,1,. . .,15 ;M、N和j为整数,并 且保证所得的t小于等于存储器中存储单元总数,将读出的每个历史数据乘以获得的对应 的常系数,将乘以常系数后的所有历史数据进行累加得到一个输出样本数据。本发明实施例通过将现有技术中的加窗、建立向量、累加三个步骤进行合并使得 一次读出数据便可完成上述三个步骤,从而减少了运算的时间和读写存储单元的功耗。


图1为现有技术中解码滤波的流程图;图2为本发明实施例一种提高速度并减小功耗的数字音频解码滤波方法的流程 图;图3为利用本发明实施例的方法实现解码滤波的流程图;图4为本发明实施例计算每个输出样本数据S[j]的流程图;图5为本发明实施例一种提高速度并减小功耗的数字音频解码滤波装置的装置 图。
具体实施例方式本发明实施例一种提高速度并减小功耗的数字音频解码滤波方法和装置,该方法 包括解码滤波处理的数字音频数据作为历史数据存储在存储器中,所述存储器中包括若 干个存储单元,每个存储单元对应一个存储地址,用于存储一个历史数据A.输入32个子 带样本数据;B.对所述存储器中的历史数据进行移位;C.对所述32个子带样本数据进行 矩阵运算,得到历史数据,并将得到的历史数据存入所述存储器移位后空出的存储单元中; D.从所述存储器存储地址为t的存储单元中读出历史数据,当第i次从存储器中读出历史 数据,读出数据的存储地址t为i乘上预设的第一偏移量M,并将得到的乘积加上第二偏移 量j和/第三偏移量N,t = j+M*i,当i为偶数时;t = j+M*i+N,当i为奇数时;t = j,当 i为0时;其中i = 0,1,. . .,15 ;M、N和j为整数,并且保证所得的t小于等于存储器中存 储单元总数;E.将读出的每个历史数据乘以对应的常系数,将乘以常系数后的所有历史数 据进行累加得到一个输出样本数据。为了方便描述和使本发明实施例描述更为清楚,以下提供几个与所述存储器相关 的名词定义,包括存储器由若干个存储单元组成,每个存储单元可存放一个数据,并且每个存储单 元的位置都有一个编号,即地址;存储方式若存储器中包含η个存储单元,存储地址依次为0,1,2,3. . . η_1 ;存储地址是指某一存储单元距离存储器起始单元偏移了多少个存储单元。如图2所示,本发明实施例一种提高速度并减小功耗的数字音频解码滤波方法, 当解码滤波器对存储在存储器中的数字音频数据进行处理时,存放在该存储器中的数字音 频数据被称为历史数据,该方法具体包括步骤201、输入32个子带样本(也称为输入样本数据),并将该32个子带样本(S_ in)存入暂存器中。步骤202、对所述存储器中的历史数据进行移位。步骤203、对所述32个子带样本数据进行矩阵运算,得到历史数据,并将得到的历 史数据写入所述存储器移位后空出的存储单元中。其中,当存储器的存储单元总数为1024,得到的历史数据位64个则,所述矩阵运 算的公式为 Vi=YjNik-SJnk=Y4 cos为运算系数,在本实施例中Nik=cos (16 + 0(2^ + 1)^-。S_in是输入样本,在本实施例中每个输入样本包括32个样本。步骤204,从所述存储器中存储器地址为t的单元中读出历史数据,读出的历史数 据的编号为i (即第几次从存储器中读出数据),读出数据的存储地址t为i乘上预设的第 一偏移量M,并将得到的乘积加上第二偏移量j和/第三偏移量N,其中,i = 0,1,...,15, 当i为偶数时,t = j+M*i,当i为奇数时,t = j+M*i+N,t、M、N和j均为整数,并且保证所 得的t小于等于存储器中存储单元总数。另外,当所述存储器中的历史数据总数是1024个时,M为64,N为32,当存储器中 的历史数据总数不同时,则M值和N值有所不同。步骤205、获取每个历史数据对应的常系数,并将读出的每个历史数据乘以获得的 对应的常系数,将乘以常系数后的16个历史数据进行累加得到一个输出样本数据。在实际的应用环境中,每次一般都是输出32个输出样本数据。所以,本发明实施 例还包括步骤206,判断输出样本数据的总个数是否等于32,如果不等于,则转入步骤207, 否则转入步骤208。因为得到每个输出样本数据的顺序对输出样本数据的计算结果不会造成影响,所 以在计算的过程中j可以无序的取32个整数;步骤207,更新j值,并转入步骤204。在更新j值的时候实施的方式可以有多种第一种,j从0到31 ;第二种,j从31 到0 ;第三种,j不重复地取0 31间的任意数据。步骤208,输出得到的32个输出样本数据,结束本流程。其中,当选择的存储设备内存储1024个历史数据,则M的取值为64,N的取值为 32,则可以通过公式3计算得到输出样本数据。公式3为Sj =玄 V[t] * D0+32*i] j = 0· · · 31……(3)
I=Ot = j+64*i, for i = 0,2,4,6,8,10,12,14t = j+64*i+32, for i = 1,3,5,7,9,11,13,15V[t]为历史数据,D为常系数,j为输出样本编号。当j = 0时,第一个输出样本数据Stl具体表示为5'0=^V[t]*DO+32*i]
/=0二 V
* D
+V
* D
+V[&f64*2]* D
+ "... +V[Of64*15+32] * D[(H-32*15]= V
* D
+V[96] * D[32]+V[128] * D[64]屮■... +V[992] * D[480]常系数D通过查表得到,其中,在查表时通过所述常系数的下标[j+32i]作为查表 系数,查找保存查表系数与常系数对应关系的映射表,获得每个历史数据对应的常系数。针对现有技术中音频文件解码滤波处理流程为例,对本发明实施例做进一步的说
6明,如图3所示,具体包括步骤步骤301、将32个输入样本(S_in)存入输入样本存储器。步骤302、将历史数据存储器中已存的1024个历史数据V进行移位,将原本在 V(960) V(1023)的数据移出历史数据存储单元,并空出V(O) V(63)的位置。步骤303、从所述输入样本存储单元中读出输入样本S_in,并进行矩阵运算,得到 64个历史数据,将计算得到的历史数据写入所述历史数据存储器空出的位置V (0) V (63) 中。其中,矩阵运算的公式为
3131 Γπ —K =ZA^riSjTijfc =Zcos (16 +0(2免 + 1)— -S_ink i = 0· · · 63 ;k = 0· · 31. N
k=0k=0 L64」
为运算系数,在本实施例中Nik=COS[(16 + 0(2hl)告。S_in是输入样本,在本实施例中每个输入样本包括32个样本。步骤304、可以通过公式3计算得到32个输出样本数据。公式3为Sj = f]Y[t] * D[j+32*i] j = 0· · · 31……(3)
/=0t = j+64*i,for i = 0,2,4,6,8,10,12,14。t = j+64*i+32,for i = 1,3,5,7,9,11,13,15其中,计算每一个S[j]具体流程步骤为for(j = 0 ;j < 32 ;j++){sum = 0 ;for(i = 0 ;i < 16 ;i++) //i 取 16 个数{if(i% 2 = = 0)//在 i(i = 0,2,4,6,8,. . .,14)取偶数时应用下述计 算得到S[j]。sum+= D[j+32*i]*V[j+64*i];else//当i (i = 1,3,5,7,9,. . .,15)为奇数时应用下述公式得到 S[j]。sum+= D[j+32*i]*V[j+64*i+32];}S[j] = sum ;}其中,计算每一个S[j]的流程图4所示。如图5所示,本发明实施例还提供一种提高速度并减小功耗的数字音频的解码滤 波装置,该装置具体包括读取模块501、计算模块502和判定模块503 存储模块501,用于存储作为历史数据的数据音频数据,所述存储模块包含若干个 存储单元,每个存储单元中存储一个历史数据;
历史数据生成模块502,用于对所述存储模块中的历史数据进行移位,并输入32 个子带样本数据,对所述32个子带样本数据进行矩阵运算,得到历史数据,并将得到的历 史数据存入所述存储模块移位后空出的存储单元中;输出样本数据生成模块503,用于从所述存储模块501中存储地址为t的存储单 元中读出历史数据,当第i次从存储器中读出历史数据,读出数据的存储地址t为i乘上预 设的第一偏移量M,并将得到的乘积加上第二偏移量j和/第三偏移量N,其中,t = j+M*i, 当i为偶数时;t = j+M*i+N,当i为奇数时;t = j,当i为0时;i = 0,1,. . .,15 ;M、N和 j为整数,并且保证计算后的t小于等于存储器中存储单元总数,将乘以常系数后的所有历 史数据进行累加得到一个输出样本数据。另外,为了循环的计算出32个输出样本数据,本发明实施例所述提供的装置还包 括判定模块504,用于判断输出样本数据的总个数是否为32,如果是,则将得到的所 有输出样本数据输出,否则,更新j的值,并将更新后的j值发送给所述输出样本数据生成 模块503。可见现有技术在解码滤波过程中,需要读存储单元的次数为1536次(512次读 V(i)+512次读U+512次读W);另外写存储单元的次数为1056次(512次读U+512次写W+32 次写S(j))所以在上述解码滤波过程中需要访问存储单元的次数为2592次。应用本发明实施例提供的方法,访问存储单元的次数则降为544次包括512次读 V(i)加上32次写S(J)0通过上述比较可知,本发明实施例所提供的方法减少了对存储单元的读写,对存 储单元的访问次数仅为常规算法的21%。因此减少了运算时间和读写存储单元的功耗。另外,减少可存储单元的存储量节省了大量的存储空间。本发明所述的方法并不限于具体实施方式
中所述的实施例,本领域技术人员根据 本发明的技术方案得出其它的实施方式,同样属于本发明的技术创新范围。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
一种提高速度并减小功耗的数字音频解码滤波方法,其中解码滤波处理的数字音频数据作为历史数据存储在存储器中,所述存储器中包括若干个存储单元,每个存储单元对应一个存储地址,用于存储一个历史数据,其特征在于,包括A.输入32个子带样本数据;B对所述存储器中的历史数据进行移位;C.对所述32个子带样本数据进行矩阵运算,得到历史数据,并将得到的历史数据存入所述存储器移位后空出的存储单元中;D.从所述存储器存储地址为t的存储单元中读出历史数据,当第i次从存储器中读出历史数据,读出数据的存储地址t为i乘上预设的第一偏移量M,并将得到的乘积加上第二偏移量j和/第三偏移量N,t=j+M*i,当i为偶数时;t=j+M*i+N,当i为奇数时;t=j,当i为0时;其中i=0,1,...,15;M、N和j为整数,并且保证所得的t小于等于存储器中存储单元总数;E.将读出的每个历史数据乘以对应的常系数,将乘以常系数后的所有历史数据进行累加得到一个输出样本数据。
2.如权利要求1所述的方法,其特征在于,在步骤E之后,该方法进一步包括F.判断输出样本数据的总个数是否为32,如果是,则将得到的所有输出样本数据输 出,结束本流程,否则,更新j的值,并转入步骤D。
3.如权利要求2所述的方法,其特征在于,所述j的初始值为0,所述步骤F包括判断输出样本数据的总个数是否为32,如果是,则将得到的所有输出样本数据输出,结束本流程,否则,将j加1,并转入步骤D。
4.如权利要求1所述的方法,其特征在于,当所述存储器中的历史数据总数是1024个 时,M的取值为64,N的取值为32。
5.一种提高速度并减小功耗的数字音频解码滤波装置,其特征在于,该装置包括存储模块,用于存储作为历史数据的数据音频数据,所述存储模块包含若干个存储单 元,每个存储单元中存储一个历史数据;历史数据生成模块,用于对所述存储模块中的历史数据进行移位,并输入32个子带样 本数据,对所述32个子带样本数据进行矩阵运算,得到历史数据,并将得到的历史数据存 入所述存储模块移位后空出的存储单元中;输出样本数据生成模块,用于从所述存储模块存储地址为t的存储单元中读出历史数 据,当第i次从存储器中读出历史数据,读出数据的存储地址t为i乘上预设的第一偏移量 M,并将得到的乘积加上第二偏移量j和/第三偏移量N,其中,t = j+M*i,当i为偶数时;t =j+M*i+N,当i为奇数时;t = j,当i为0时;i = 0,1,...,15 ;M、N和j为整数,并且保 证所得的t小于等于存储器中存储单元总数,将读出的每个历史数据乘以获得的对应的常 系数,将乘以常系数后的所有历史数据进行累加得到一个输出样本数据。
6.如权利要求5所述的装置,其特征在于,该装置还包括判定模块,用于判断输出样本数据的总个数是否为32,如果是,则将得到的所有输出样 本数据输出,否则,更新j的值,并将更新后的j值发送给所述输出样本数据生成模块。
全文摘要
本发明公开了一种提高速度并减小功耗的数字音频的解码滤波方法和装置,包括A.输入32个子带样本;B.对存储在存储器中的历史数据进行移位;C.对32个子带样本进行矩阵运算,得到历史数据,并将所述历史数据存入所述存储器移位后空出的存储单元中;D.从所述存储器中存储地址为t的存储单元中读出历史数据,其中,t=j+M*i,当i为偶数时;t=j+M*i+N,当i为奇数时;t=j,当i为0时;其中i=0,1,...,15;M、N和j为整数,并且保证所得的t小于等于存储器中存储单元总数;将读出的每个历史数据乘以对应的常系数,将乘以常系数后的所有历史数据进行累加得到一个输出样本数据。应用本发明公开的方法解决了现有技术在解码滤波的时候必须重复读写存储单元造成运算速度慢功耗大的问题。
文档编号G10L19/00GK101930739SQ20091014865
公开日2010年12月29日 申请日期2009年6月25日 优先权日2009年6月25日
发明者张媛媛 申请人:炬力集成电路设计有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1