发明名称 子带分析/合成滤波方法
摘要 本发明提供一种音频编码/译码方法,能够用来对一音频信号进行编码,也能够用来对多个子带样本进行译码以产生一数字音频信号。在编码过程中,该方法是根据依据2P个时域区间的P个窗口声音样本产生第0个和数,并根据依据该2P个时域区间的2P个窗口声音样本产生第1个至第(M-1)个和数中的一和数,再根据该M个和数计算M个子带样本。而于解码过程中,该方法是对应于一第一索引的变化,在多个子带样本当中读取M个子带样本,以通过一逆向修改离散余弦转换与一综合运算产生一数字音频信号。
申请公布号 CN1835078A 申请公布日期 2006.09.20
申请号 CN200610071832.8 申请日期 2003.11.26
申请人 联发科技股份有限公司 发明人 林宗瑶;徐建华
分类号 G10L19/00(2006.01);G10L19/02(2006.01);H03M7/30(2006.01) 主分类号 G10L19/00(2006.01)
代理机构 北京市柳沈律师事务所 代理人 吕晓章;李晓舒
主权项 1.一种符合MPEG规格的音频处理方法,用来对多个子带样本xr[m]进行译码以产生一数字音频信号,该方法包含有:对应于一第一索引p,在该多个子带样本xr[m]当中读取M个子带样本xr[18q+p],其中,q=(M-1)~0,而第一索引p的值是0到17的整数;对该M个子带样本xr[18q+p]进行一逆向修改离散余弦转换,以产生M个输出vs1作为N个循环缓冲变量vs[n]当中的M个循环缓冲变量,其中,该N个循环缓冲变量存储在一循环缓冲器,该M个输出vs1依照一反向顺序排列,作为该N个循环缓冲变量vs[n]当中的连续M个循环缓冲变量的值,以及该逆向修改离散余弦转换为:for(i=3m/2:1>=M/2+1;i=- -){vs1[- -vsi]=0; for(j=0;j<M;j+ +) vs1[vsi]+=cos(pI/2M*(i+M/2)*(2*J+1))*xr[18M+18*j+p]; }其中,PI代表圆周率;根据该N个循环缓冲变量当中的多个循环缓冲变量进行一综合运算,其中该综合运算是一窗口运算与对应于该第一索引p的变化的一加总运算的组合;以及对应于该第一索引p的变化,重新在该多个子带样本xr[m]当中读取M个子带样本xr[18q+p],以通过对应于该第一索引p的变化进行18次的该逆向修改离散余弦转换进行步骤与该综合运算进行步骤来产生该数字音频信号;其中,该方法适用于数字信号处理器的流水线单指令多数据运算,以及下列(a)与(b)当中仅有一者成立:(a)该综合运算为:for(j=0;j<=M/2-1;j++) {ps[M*p+j]=0;for(i=0;i<M/2;i+=2)ps[M*p+j]+=(-d[M*i+j]*vs[vsi+M*i+M/2-1-j]);for(i=1;i<=M/2-1;i+=2)ps[M*p+j]+=(d[M*i+j]*vs[vsi+M*i+M/2-1+j]);}ps[18*M+M*p+M/2]=0;for(i=1;i<=M/2-1;i+=2)ps[M*p+M/2]+=(d[M*i+M/2]*vs[vsi+M*i+M/2-1+M/2]);for(j=M/2+1;j<=M-1;j++){ps[18*M+M*p+j]=0;for(i=0;i<M/2;i+=2)ps[M*p+j]+=(d[M*i+j]*vs[vsi+M*i+j-M/2+1]);for(i=1;i<=M/2-1;i+=2)ps[M*p+j]+=(d[M*i+j]*vs[vsi+M*i+3M/2-1-j]);}其中,声音样本ps[n]是该数字音源信号的声音样本ps[n],而窗口系数d[n]是该窗口运算的窗口系数d[n];(b)该综合运算是:j=0;ps[M*p+j]=0;for(i=0;i<M/4;i+=2) ps[M*p+j]+=(-d[M*i+j]*vs[(vsi+M*i+M/2-1-j)]);for(i=M/4;i<M/2;i+=2) ps[M*p+j]+=(-d[N-M*i-j]*vs[(vsi+M*i+M/2-1-j)]);for(i=1;i<M/4+1;i+=2) ps[M*p+j]+=(d[M*i+j]*vs[(vsi+M*i+M/2-1+j)]);for(i=M/4+1;i<=M/2-1;i+=2) ps[M*p+j]+=(-d[N-M*i-j]*vs[(vsi+M*i+M/2-1+j)]);for(j=1;j<=M/2-1;j++){ ps[M*p+j]=0;for(i=0;i<M/4;i+=2) ps[18*M+M*p+j]+=(-d[M*i+j]*vs[(vsi+M*i+M/2-1-j)]);for(i=8;i<M/2;i+=2) ps[M*p+j]+=(d[N-M*i-j]*vs[(vsi+M*i+M/2-1-j)]);for(i=1;i<M/4+1;i+=2) ps[M*p+j]+=(d[M*i+j]*vs[(vsi+M*i+M/2-1+j)]);for(i=M/4+1;i<=M/2-1;i+=2) ps[M*p+j]+=(-d[N-M*i-j]*vs[(vsi+M*i+M/2-1+j)]);} ps[M*p+M/2]=0;for(i=1;i<M/4+1;i+=2) ps[M*p+M/2]+=(d[M*i+M/2]*vs[(vsi+M*i+M/2-1+M/2)]);for(i=M/4+1;i<=M/2-1;i+=2) ps[M*p+M/2]+=(-d[N-M*i-M/2]*vs[(vsi+M*i+M/2-1+M/2)]);for(j=M/2+1;j<=M-1;j++){ ps[M*p+j]=0;for(i=0;i<M/4;i+=2) ps[18*M+M*p+j]+=(d[M*i+j]*vs[(vsi+M*i+j-M/2+1)]);for(i=M/4;i<M/2;i+=2) ps[M*p+j]+=(-d[N-M*i-j]*vs[(vsi+M*i+j-M/2+1)]);for(i=1;i<M/4+1;i+=2) ps[M*p+j]+=(d[M*i+j]*vs[(vsi+M*i+3M/2-1-j)]);for(i=M/4+1;i<=M/2-1;i+=2) ps[M*p+j]+=(-d[N-M*i-j]*vs[(vsi+M*i+3M/2-1-j)]);}其中,声音样本ps[n]是该数字音源信号的声音样本ps[n],而窗口系数d[n]是该窗口运算的窗口系数d[n],且该窗口运算的窗口系数d[n]的数量为N/2+1。
地址 中国台湾新竹科学工业园区