音频解码中的合成子带滤波方法和合成子带滤波器的制作方法

文档序号:2829369阅读:372来源:国知局
专利名称:音频解码中的合成子带滤波方法和合成子带滤波器的制作方法
技术领域
本发明涉及音频解码,尤其涉及音频解码中的合成子带滤波方法和合成子带滤波器。
背景技术
MPEG音频标准是一种广泛应用的音频编解码算法,这种算法显著减少了音频数据的传输带宽与存储容量,同时保证了音频数据的传输质量。MPEG音频编码中采用了子带编码方法。子带编码方法使用一组带通滤波器把输入音频信号的频带分成若干个的频段,每个频段为一个子带,对每个子带中的音频信号采用单独的编码方案去编码。这样,对每个子带信号可以分别进行自适应控制,量化后的大小可以按照每个子带的能量电平加以调节,同时,可以根据每个子带信号在感觉上的重要性,对每个子带分配不同的位数来表示每个样本值。通常在MPEG音频编码时采用分析子带滤波器,而解码时采用合成子带滤波器进行相应的逆运算。
MPEG标准中合成子带滤波器的基本运算流程如图1所示。该流程包括大致7个步骤,步骤S1为准备好例如32个新的子带样点;步骤S2进行移位,将最远的64个值清理出1024系数阵列,为IDCT(离散余弦反变换)的结果腾出位置;步骤S3进行32*64的IDCT变换矩阵运算;步骤S4抽取512个加窗系数,准备进行加窗重建;步骤S5用加窗模块对样点数据进行加窗变换;步骤S6混合叠加32个PCM样点;步骤S7输出重建后的32个PCM样点。其中步骤S3和S5中分别进行IDCT计算和加窗计算,分别需要使用乘加单元来完成,整个计算过程需要5个乘加单元和一个加法器,同时运算中的中间结果也需要暂用大量的存储单元。在硬件实现时,这些乘加单元和中间结果的存储单元需要占用大量的面积,特别是在系统单芯片中,对整个芯片成本的降低提出了一个难题。

发明内容
为克服现有技术中存在的缺陷,本发明提出了一种用于音频解码中的合成子带滤波方法和合成子带滤波器,节约了计算资源和存储资源,在很大程度上减小了解码器的面积开销,同时提高了计算效率,并且拥有良好的可扩充性。另一方面,本发明在解码器的工作频率相对较低的情况下就能够按时完成解码,满足匀速播放的要求。
根据本发明的一个方面,提供音频解码中的一种合成子带滤波方法,包括以下步骤(a)输入多个频域样点构成的一个新的样点组;(b)作为IDCT第一阶段,将输入的新的样点组处理成两个中间变量数组并送入存储器中暂时保存;(c)作为IDCT第二阶段,从存储器中取出在IDCT第一阶段得到的中间变量数组,并利用该中间变量数组消除IDCT中的对称性冗余,获得样点时域的IDCT数据,并送入存储器中暂时保存;(d)对存储器进行寻址,取出一个样点在不同频率值下的多个时域IDCT数据;(e)对取出的IDCT样点的数据进行加窗操作,然后输出PCM样点;(f)重复步骤(d)和(e),直至一个样点组中的所有样点全部完成加窗操作。
根据所述的方法,进一步包括如下步骤(g)在完成所述加窗操作后执行通过数学插值而改变输出点数,以更改采样率和微调输出点数的重采样操作。
根据所述的方法,在步骤(a)中,输入32个频域样点构成的一个新的样点组。
根据所述的方法,在步骤(b)中,通过如下的公式运算将输入的新的样点组处理成两个中间变量数组S_add[k]=st[k]+st[31-k],k=0...15。
S_sub[k]=st[k]-st[31-k]根据所述的方法,在步骤(c)中,利用所述中间变量数组,通过如下的公式运算获得样点时域的IDCT数据
V[u]=Σk=015IM[u][k]*S_sub[k],u=2iV[u]=Σk=015IM[u][k]*S_add[k],u=2i+1.]]>根据所述的方法,在步骤(d)中,取出一个样点在不同频率值下的32个时域IDCT数据,按照如下寻址公式所示的寻址顺序对存储器进行寻址,一次取出一个样点在32个不同频率值下的时域IDCT数据,i∈(0...15);j∈(0...31)i为奇数j<16index=-(i*32+15-j),j=16index=0,j>16index=i*32+j-17;]]>i为偶数j<=16index=-(i*31+15+j),j>16index=i*32+47-j]]>其中,index表示对进行中间缓存的存储器的访问地址,index=0时表示直接输出0值,index值前的“-”号表示对index相应地址取出的值逐位取反加1。
根据所述的方法,在步骤(e)中,通过如下的公式运算对取出的IDCT样点的数据进行加窗操作Vi=Σj=015Uj+32i*Dj+32,i=0,1,...31.]]>根据所述的方法,在步骤(c)中,按照所述寻址公式所示的寻址顺序对所述样点进行处理。
根据本发明的另一方面,提供一种实现上述合成子带滤波方法的合成子带滤波器,包括中间计算单元,在IDCT第一阶段将输入的多个频域样点构成的一个新的样点组处理成中间变量数组;
乘加单元,可复用地执行至少包括IDCT第二阶段对所述中间变量数组进行的乘加运算和加窗操作中进行的乘加运算在内的操作;地址产生单元,执行运算中所需的寻址操作;数据存储单元,用以存储包括所述中间变量数组在内的运算中所产生的数据;系数存储单元,用以存放包括IDCT系数表和加窗系数表在内的计算用系数表;控制单元,用以控制整个合成子带滤波过程中的运算流程。
根据所述的合成子带滤波器,还包括作为存储器的隔离层,统一接受各个单元的存储器读写请求的缓冲器。
根据所述的合成子带滤波器,还包括通过数学插值而改变输出点数,以更改采样率和微调输出点数的重采样单元。
在本发明的一个实施例中,所述数据存储单元为静态随机存储器(SRAM)。
在本发明的一个实施例中,控制单元为统一状态机。
在本发明的其它实施例中,可以复用的计算资源还包括移位单元等。
在本发明的一个实施例中,控制单元控制整个运算流程,控制至少一个复用的计算资源,完成包括解码以及后处理的过程。
本发明提供的MPEG合成子带滤波器的算法允许单点计算,而不必一次计算所有例如32个子带的样点,从而使流水线的计算过程成为可能。同时它允许输入达到17个样点时候就可以启动计算,而不必等到接收满所有的例如32个样点再进行IDCT操作,因而提高了工作效率。
MPEG I&II Layer I&II音频解码过程中,合成子带滤波以及后续的后处理模块,例如重采样、音量调节等等,都需要使用MAC(乘加单元)资源,本发明实际只使用了一个MAC单元,而由一个统一的状态机负责计算调度,达成多个不同操作中MAC单元的复用。通过算法的改进,使整个过程可以采用流水线(Pipeline)方式进行,从而节约了计算资源,同时极大地改善了可扩充性和修改便利性。这种结构很大程度上减小了解码器的面积开销,计算步骤中所需的多个乘加运算和加法运算可以缩减为由一个MAC来完成,由于结构的统一和前后状态的无关性,也利于调试。同时由于状态机结构的开放性,增加或者减少处理步骤也很容易,同时修改计算精度也非常方便。


以下附图为对本发明示例性实施例的辅助说明,结合以下附图对本发明实施例的阐述,是为进一步揭示本发明的特征所在,但并不限制本发明,附图中相同的参照号代表实施例中相应元件或步骤,其中图1为MPEG标准中现有的子带合成滤波器的基本运算流程。
图2A为1个样点的数据在32个子带中的频率分布图。
图2B为1个样点的数据经过IDCT计算后得到的时域的PCM采样值图。
图3为根据本发明的一种MPEG音频解码中合成子带滤波方法的流程图。
图4为实现图3所示合成子带滤波方法的一个合成子带滤波器的结构框图。
图5为图4所示合成子带滤波器的中间计算单元的状态机示意图。
图6为图4所示合成子带滤波器的核心状态机示意图。
图7为图4所示合成子带滤波器的SRAM地址分配示意图。
具体实施例方式
音频解码时,合成子带滤波器(SubBand Synthesis Filter)通常用来将解复用后的多个(例如32个)子带频域样点映射到时域,最终叠加输出例如32个PCM样点完成音频解码逆向映射(inverse mapping)部分,是整个MPEG解码算法中运算量最大、最复杂的单元。
在MPEG解码算法中IDCT的系数矩阵大小例如为32*64,IDCT系数的生成公式如下IM[i][k]=cos[(i+16)*(2*k+1)*π64],]]>i=0...63,k=0...31(公式一)IDCT变换是整个合成子带滤波器的初始步骤,资源消耗方面,MPEG标准合成子带滤波基本运算流程中最大的一块存储器即来自IDCT变换后1024点的缓存要求,按照24位精度计算,需要约3K byte的SRAM存放,这也决定了整个计算的颗粒度大小。
由于余弦函数具有对称性,如下所示cosθ=cos(2π-θ)
而IDCT系数为余弦函数,因此,IDCT的算法中存在大量对称性,在这个基础上予以优化可以削减大量的冗余度。
由IDCT系数表达式可以看出,IDCT矩阵的每一列元素构成了一个频率不同的余弦波形,其在横轴上的时移为-16个点。如果以点16为中心,IM0-0...IM15-0与IM17-0...IM32-0为奇对称关系,以点48为中心,IM33-0...IM47-0与IM49-0...IM63-0为偶对称关系,并且这种对称关系对于任意一列中的元素都成立。以此为依据,可将IDCT系数矩阵变化为如下所示的公式IM[i][k]=cos[(i+33)*(2*k+1)*π64],]]>i=0...31,k=0...31(公式二)以此为优化算法,IDCT系数中由i引起的对称性冗余已经消除,IDCT系数矩阵简化为32*32。
IDCT系数中的k为IDCT系数矩阵的每一行元素,由k引起的冗余呈现出与IDCT矩阵列元素相同的对称关系。也就是有如下的公式关系IM[i][k]=(-1)i·IM[i][m],k=(31-m),m=15...0(公式三)当IDCT系数所在行为偶数行时,前16个系数与后16个系数之间呈偶对称关系,当IDCT系数所在行为奇数行时前16个系数与后16个系数呈奇对称关系。因此我们在进行IDCT变换的第一步,利用输入的例如32个频域样点构造公式四所示的两个中间变量数组S_add[k]=st[k]+st[31-k],k=0...15(公式四)S_sub[k]=st[k]-st[31-k]这样IDCT变换的第二步可以利用第一步获得的两个中间变量数组来完成,其计算公式为如下所示的公式五。
V[u]=Σk=015IM[u][k]*S_sub[k]′u=2iV[u]=Σk=015IM[u][k]*S_add[k]′u=2i+1]]>(公式五)用这种方法可以完全消除IDCT中的对称性冗余,IDCT系数矩阵进一步简化为16*32。这样IDCT变换后需要的缓存大小为256个样点,大大降低了合成子带滤波的中间缓存要求,从一个方面达到了减小芯片面积的目的。
在合成子带滤波器中,对于IDCT变换之后的加窗操作,有如下的计算公式
Wi=Ui*Di,i=O,1,...511(公式六)合成子带滤波器叠加输出样点的计算公式如下Vi=Σj=015Wj+32i,i=0,1,...31]]>(公式七)结合公式六和公式七,可以得到如下公式Vi=Σj=015Uj+32i*Dj+32,i=0,1,...31]]>(公式八)公式八中Vi为重建后输出的PCM样点。
参考图2A和2B,图2A为一种1个样点的数据在32个子带中的频率分布图。图2B为1个样点的数据经过计算得到的时域的PCM采样值图。在进行加窗时,我们需要把每个样点在32个不同频率值下的数据一起进行计算,来得到一个样点的时域上的PCM采样值。图2A中横轴为频率值,图2B中横轴为时间值。对于公式八,图2A需要等到全部32个子带样点完成DCT计算后,才能对每个样点分别按公式八进行加窗操作而图2B一次列出一个样点时域下所有32个频率值下的数据,可以对一个样点按公式八进行处理。
如果在加窗操作前对DCT样点数据选用适当的访问顺序,可以在得到每个样点的32个不同频率值下的时域IDCT数据后,直接进行加窗操作并即时地输出该样点的PCM采样值,而不需等到接收完所有样点在32个不同频率值下的时域DCT数据后才开始进行加窗操作,然后完成所有样点的加窗操作后,再输出各样点的PCM采样值。
在本发明的一个实施例中,采用大小为512byte的存储器,按如下公式九的寻址方式来得到需要进行加窗操作的样点的时域DCT数据i∈(0...15);j∈(0...31)i为奇数j<16index=-(i*32+15-j),j=16index=0,j>16index=i*32+j-17;]]>i为偶数j<=16index=-(i*32+15+j),j>16index=i*32+47-j]]>(公式九)
公式九中,index为对存储器的访问地址。此外,index=0时表示直接输出0值,index值前的“-”号表示对index相应地址取出的值逐位取反加1。
在本发明的一个实施例中,在按照公式五进行计算时,可以相应地更改通常的计算顺序,按照公式九要求的对样点的寻址顺序来进行IDCT变换操作,使加窗操作所需的样点能够比较及时地输出,并保证最后的输出结果可通过顺应性测试(Compliance Test)要求。
IDCT变换后得到样点的时域IDCT相关数据,然后采用如公式九所示的适当的对存储器的访问方式,可以用一个乘加单元来完成加窗变换和叠加输出样点。
根据公式四、五和八,并结合公式九提供的寻址方法,可以得到优化过的合成子带滤波器的算法,使得合成子带滤波可以单点计算。从IDCT变换开始计算到第一个PCM样点输出,至少需要32*16+16个乘加周期,在匀速播放的要求下,必须把最长的32*16+16个乘加周期作为一般数据对待,解码器的工作频率要求比较高。而采用单点计算方式之后,PCM样点输出的间隔相应的很均匀。在解码器的工作频率相对较低的情况下就能够按时完成解码,满足匀速播放的要求。
图3表示根据本发明的MPEG音频解码中一种合成子带滤波方法的操作流程。步骤S31,输入多个(例如为32个)频域样点构成的一个新的样点组;步骤S32,作为IDCT第一阶段,将输入的新的样点组处理成两个中间变量数组并送入存储器中暂时保存;步骤S33,作为IDCT第二阶段,从存储器中取出在IDCT第一阶段得到的中间变量数组,并利用该中间变量数组消除IDCT中的对称性冗余,处理后获得样点时域的IDCT数据,并送入存储器中暂时保存;步骤S34,对存储器进行寻址,取出一个样点在不同频率值下的多个(例如为32个)时域IDCT数据;步骤S35,对取出的IDCT样点的数据进行加窗操作,然后输出PCM样点;步骤S36,判断一个样点组中的所有(例如为32个)样点是否已经全部完成,如否,操作返回步骤S34,直至一个样点组中的所有样点全部完成加窗操作。
其中,步骤S32为IDCT第一阶段,利用步骤S31输入的新的样点组完成公式四的运算,并把中间运算结果送入存储器中暂时保存。按照公式四,只需把0-15和16-31范围内的样点两两对应计算,因此,输入达到17个样点的时候就可以开始后面的计算,而不需等到例如32个样点全部输入才进行IDCT操作,因而提高了工作效率。
步骤S33为IDCT第二阶段,从存储器中取出IDCT第一阶段得到的中间运算结果,进行公式五的运算,获得例如32个时域IDCT样点的相关数据,并送入存储器中暂时保存。
步骤S34按公式九提供的寻址方法取出一个时域IDCT样点在例如32个不同频率值下的相关数据。
步骤S35进行加窗操作,对取出的一个时域IDCT样点的数据,进行公式八的运算,然后输出PCM样点。每次取出一个时域IDCT样点在例如32个不同频率值下的数据,立即对该列数据进入加窗计算阶段,并直接输出一个相应的PCM样点,而不必等待取出1个样点组中所有样点在不同频率值下的数据才进行加窗。这样,PCM样点可以更快地输出,整个模块的工作效率也能有所提高。
步骤S36判断一个样点组中的例如32个样点是否已经全部完成,如果尚未全部完成,则继续进行前述步骤;如果已经全部完成,则结束这一个样点组的合成子带滤波。可根据处理器的要求,回到步骤S31,通知送入下一个新的样点组输入。
在本发明的一个实施例中,合成子带滤波器还可以进一步在加窗操作完成后进行第一级重采样(Resample)和第二级重采样(Resample)操作等后处理操作。第一级重采样操作通过数学插值而改变输出点数,更改采样率。第二级重采样操作通过数学插值而改变输出点数,微调输出点数,方便音/视频同步。
在实现MPEG音频算法时,整个合成子带滤波器可以被分割成5个部分移位(Shifting)、IDCT、512分量的矢量U建立、加窗重建、PCM样点叠加输出。在实现公式四、五和八的运算流程时,从运算的耦合性入手,整个合成子带滤波器的运算工作可以重新被拆分定义为如下3个部分(1)IDCT变换负责IDCT的矩阵乘法运算;(2)地址产生(DAG)负责移位(Shifting)、IDCT、矢量U建立、PCM样点叠加时所有的寻址操作;(3)加窗操作(Window)负责加窗时的矩阵乘法和PCM重建时的叠加操作。
下面的实施例中以两通道音频解码为例来说明本发明实现MPEG音频解码中合成子带滤波方法的一种合成子带滤波器的结构。图4为实现图3所示方法的一种合成子带滤波器的结构框图。图4所示合成子带滤波器包括中间计算单元1,在IDCT第一阶段将输入的多个(例如为32个)频域样点构成的一个新的样点组处理成中间变量数组;乘加单元2,执行包括IDCT第二阶段对所述中间变量数组进行的乘加运算和加窗操作中进行的乘加运算在内的复用操作;地址产生单元3,执行运算中所需的寻址操作;数据存储单元4,用以存储包括所述中间变量数组在内的运算中所产生的数据;系数存储单元5,用以存放包括IDCT系数表和加窗系数表在内的计算用系数表;控制单元6,用以控制整个合成子带滤波过程中的运算流程。其中,中间计算单元负责合成子带滤波算法的一部分计算工作统一的控制单元控制整个合成子带滤波运算流程,并控制至少一个计算资源复用于运算流程中的多个不同步骤。所述数据存储单元例如为静态随机存储器(SRAM)。
根据图3描述的方法流程,中间计算单元负责IDCT变换第一阶段的工作,将输入的例如32个频域样点按照公式四处理成所需的中间变量后,再存入SRAM供IDCT变换第二阶段使用。中间计算单元的工作由状态机来控制。每次复位时,状态机从IDLE状态50开始(见图5),按照公式四的计算要求依次进入各个状态。图5为中间计算单元的状态机示意图。图5中COMM状态51下,通过反量化计算(IQ)得出前16个样点,直接写入到SRAM的0-15地址。CAL状态52下,每当IQ出来一个样点,根据公式四将相应样点从SRAM中读出。SUBWR状态53下,将由减法得出的中间结果一写入SRAM。ADDWR状态54下,将由加法得出的中间结果二写入SRAM。由算法特征可得,COMM状态可以维持16个IDCT中间样点输出。由ADDWR返回CAL会维持16个数据写入周期。
MAC单元进行相应的乘加运算。在统一的控制单元的控制下,乘加单元可以在运算流程的各个不同步骤的操作进行复用。根据如公式九所示的适当的对存储器的访问方式,加窗操作需要的1个IDCT样点组中的例如32个样点的数据不再有关联性,可以对每个样点分别取出相应的数据进行加窗操作计算,并用统一的状态机来控制IDCT变换和加窗操作,进行单点计算。由于统一的控制单元进行控制下,IDCT第二阶段的乘加运算和加窗操作中的乘加运算复用一个MAC单元,从而节省了很大面积开销。MAC单元可以采用业界通用的乘加器,在此不再赘述。
在本发明的一个实施例中,统一的控制单元控制整个运算流程,控制一个或多个复用的计算资源,完成包括解码以及后处理的过程。例如后处理计算中包含环绕立体声的音频解码器,利用统一的控制单元,多个不同的运算步骤中的乘加计算可以复用同一个MAC单元,同时多个不同的运算步骤中的移位计算也可以复用同一个移位单元。
DAG单元在控制单元的控制下进行合成子带滤波器中的寻址操作,例如移位(shifting)、IDCT变换、矢量U建立、PCM样点叠加时所涉及到的各种寻址操作。
缓冲器7作为存储器的隔离层,统一接受系统各个模块的存储器读写请求。
系数存储单元中存放着算法中需要用到的系数表。根据前面描述的算法,包括IDCT系数表和加窗系数表。系数存储单元可以采用电路固化生成,或者利用其他的只读方式存储。
在本发明的一个实施例中,合成子带滤波器在后处理部分还进一步包括重采样单元8,重采样单元可以设置第一级重采样(Resample)操作模块和第二级重采样(Resample)操作模块。第一级重采样操作模块通过数学插值而改变输出点数,更改采样率。第二级重采样操作模块通过数学插值而改变输出点数,微调输出点数,方便音/视频同步。第一级重采样操作模块和第二级重采样操作模块中所需完成的乘加计算同样可以与IDCT变换和加窗操作一起复用MAC单元。
控制单元可以是统一核心状态机,其工作原理可参见图6。核心状态机控制IDCT变换第一阶段、IDCT变换第二阶段、加窗操作、第一级重采样、第二级重采样共5个模块的使能(Enable)信号。整体状态控制中,依照IDCT Step1 Enable(IDCT变换第一阶段使能)->IDCT Step2 Reset(IDCT第二阶段复位)->IDCT Step2 Enable(IDCT第二阶段使能)->Windows Enable(加窗操作使能)->Resample1 Reset(第一级重采样复位)->Resample1 Enable(第一级重采样使能)->Resample2 Enable(第二级重采样使能)的计算顺序形成固定优先级的驱动模式。其中,IDCT Step1状态进行IDCT变换第一阶段的工作;IDCT Step2状态进行IDCT变换第二阶段的工作;Windows状态进行加窗操作;Resample1状态进行第一级重采样操作;Resample2状态进行第二级重采样操作。
核心状态机同时也设置了模块切换时MAC单元复位(Reset)的时机(Cycle),在完成IDCT第二阶段的运算后,将MAC单元复位,即初始化为0。状态机中IDCTStep2 Reset状态完成MAC单元的复位。此外,Resample1 Reset状态完成第一级重采样操作模块的复位。
在进行算法实现时,从存储器中取数据是最消耗时钟周期的操作,同时对中间计算数据的存储也要消耗大量的面积。因此,可以开设一个静态缓存区,利用DAG单元完成各个样点相应的寻址操作。这样,每当IDCT第二阶段完成一个样点的相关数据的计算,得到一个时域的IDCT样点的相关数据后,DAG单元就可以直接从SRAM中相应的存储位置读取该样点的相关数据,送入MAC单元进行加窗计算,并直接输出一个PCM样点,而不必等待输入1个样点组中所有样点在不同频率值下的数据才进行加窗,从而提高了整个音频解码过程的效率。在本实施例中,SRAM大小例如为1088*24,地址分配例如如图7所示。通道0在IDCT第一阶段变换后得到的输入样点数据暂存于SRAM的地址1023-1055,通道1在IDCT第一阶段变换后得到的输入样点数据暂存于SRAM的地址1055-1087;通道0在IDCT第二阶段变换后得到的IDCT样点暂存于SRAM的地址0-511,通道1在IDCT第二阶段变换后得到的IDCT样点暂存于SRAM的地址511-1023。
本实施例只是为了进一步更清楚地描述本发明,而非对本发明的限制。应该可以理解,本发明并不限于实施例所做的阐述,任何基于本发明的修改和本发明的等同物都应涵盖在本发明的权利要求的精神和范围之内。
权利要求
1.音频解码中的一种合成子带滤波方法,包括以下步骤(a)输入多个频域样点构成的一个新的样点组;(b)作为IDCT第一阶段,将输入的新的样点组处理成两个中间变量数组并送入存储器中暂时保存;(c)作为IDCT第二阶段,从存储器中取出在IDCT第一阶段得到的中间变量数组,并利用该中间变量数组消除IDCT中的对称性冗余,处理后获得样点时域的IDCT数据,并送入存储器中暂时保存;(d)对存储器进行寻址,取出一个样点在不同频率值下的多个时域IDCT数据;(e)对取出的IDCT样点的数据进行加窗操作,然后输出PCM样点;(f)重复步骤(d)和(e),直至一个样点组中的所有样点全部完成加窗操作。
2.如权利要求1所述的方法,其特征在于进一步包括如下步骤(g)在完成所述加窗操作后执行通过数学差值而改变输出点数,以更改采样率和微调输出点数的重采样操作。
3.如权利要求1或2所述的方法,其特征在于,在步骤(a)中输入32个频域样点构成的一个新的样点组;在步骤(b)中,通过如下的公式运算将输入的新的样点组处理成两个中间变量数组S_add[k]=st[k]+st[31-k],k=0...15。S_sub[k]=st[k]-st[31-k]
4.如权利要求1或2所述的方法,其特征在于,在步骤(a)中输入32个频域样点构成的一个新的样点组,在步骤(c)中,利用所述中间变量数组,通过如下的公式运算获得样点的时域IDCT数据V[u]=Σk=015IM[u][k]*S_sub[k],u=2iV[u]=Σk=015IM[u][k]*S_add[k],u=2i+1.]]>
5.如权利要求1或2所述的方法,其特征在于,在步骤(a)中输入32个频域样点构成的一个新的样点组;在步骤(d)中,按照如下寻址公式所示的寻址顺序对存储器进行寻址,一次取出一个样点在32个不同频率值下的时域IDCT数据,i∈(0...15);j∈(0...31)i为奇数j<16index=-(i*32+15-j),j=16index=0,j>16index=i*32+j-17;]]>i为偶数j<=16index=-(i*32+15+j),j>16index=i*32+47-j]]>其中,index表示对进行中间缓存的存储器的访问地址,index=0时表示直接输出0值,index值前的“-”号表示对index相应地址取出的值逐位取反加1。
6.如权利要求1或2所述的方法,其特征在于,在步骤(a)中输入32个频域样点构成的一个新的样点组;在步骤(d)中,取出一个样点在不同频率值下的32个时域IDCT数据;在步骤(e)中,通过如下的公式运算对取出的IDCT样点的数据进行加窗操作Vi=Σj=015Uj+32i*Dj+32,i=0,1,...31.]]>
7.如权利要求5所述的方法,其特征在于,在步骤(c)中,按照所述寻址公式所示的寻址顺序对所述样点进行处理。
8.一种实现权利要求1所述合成子带滤波方法的合成子带滤波器,包括中间计算单元,在IDCT第一阶段将输入的多个频域样点构成的一个新的样点组处理成中间变量数组;乘加单元,执行包括IDCT第二阶段对所述中间变量数组进行的乘加运算和加窗操作中进行的乘加运算在内的复用操作;地址产生单元,执行运算中所需的寻址操作;数据存储单元,用以存储包括所述中间变量数组在内的运算中所产生的数据;系数存储单元,用以存放包括IDCT系数表和加窗系数表在内的计算用系数表;控制单元,用以控制整个合成子带滤波过程中的运算流程。
9.如权利要求8所述的合成子带滤波器,其特征在于还包括作为存储器的隔离层,统一接受各个单元的存储器读写请求的缓冲器。
10.如权利要求8或9所述的合成子带滤波器,其特征在于还包括通过数学插值而改变输出点数,以更改采样率和微调输出点数的重采样单元。
全文摘要
音频解码中的合成子带滤波方法和合成子带滤波器,其中的方法包括(a)输入多个频域样点构成的一个新的样点组;(b)作为IDCT第一阶段,将输入的新的样点组处理成两个中间变量数组并送入存储器中暂时保存;(c)作为IDCT第二阶段,从存储器中取出在IDCT第一阶段得到的中间变量数组,并利用该中间变量数组消除IDCT中的对称性冗余,获得样点时域的IDCT数据,并送入存储器中暂时保存;(d)对存储器进行寻址,取出一个样点在不同频率值下的多个时域IDCT数据;(e)对取出的IDCT样点的数据进行加窗操作,然后输出PCM样点;(f)重复步骤(d)和(e),直至一个样点组中的所有样点全部完成加窗操作。
文档编号G10L19/00GK101025919SQ20061002404
公开日2007年8月29日 申请日期2006年2月22日 优先权日2006年2月22日
发明者周振亚, 宋东海, 刘彦 申请人:上海奇码数字信息有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1