CN101308658B - 一种基于片上***的音频解码器及其解码方法 - Google Patents
一种基于片上***的音频解码器及其解码方法 Download PDFInfo
- Publication number
- CN101308658B CN101308658B CN2007100744331A CN200710074433A CN101308658B CN 101308658 B CN101308658 B CN 101308658B CN 2007100744331 A CN2007100744331 A CN 2007100744331A CN 200710074433 A CN200710074433 A CN 200710074433A CN 101308658 B CN101308658 B CN 101308658B
- Authority
- CN
- China
- Prior art keywords
- decoding
- hardware
- module
- data
- decoder
- 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
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于片上***的AAC音频解码器及其解码方法,其解码器特征在于,包括***控制部分(301)和解码实现部分(302)并通过总线(303)连接并进行两部分的通信。***控制部分(301)主要负责协调整个解码器的解码流程,解码实现部分(302)主要负责软件解码,即音频文件的数据流分析和硬件解码,即对分析后的数据流作音频数据还原,音频文件解码完毕后,通过硬件解码模块(305)向中断控制器(307)发出任务完成中断,输出解码后的音频文件。本发明采用软、硬件结合协作的方式,实现了*aac格式的多种文件头格式兼容解码,解码速度快,对数字信号处理器要求低,同时应用方案成本低。
Description
技术领域
本发明涉及一种基于SoC(System on a Chip,片上***)的音频解码器及其解码方法,尤其涉及一种实现*.aac格式音频文件实时播放的音频解码器及其解码方法。
背景技术
AAC(Advanced Audio Coding)编码标准最早是出现在MPEG-2标准中,后来在MPEG-4中进行了进一步的修改和完善,成为最新数字音频压缩编码标准。AAC编码标准是为了实现更高质量的数据压缩,在原有的MP4音频压缩标准基础上,增加了更多的数据压缩处理工具。公示标准AAC编码器的框架如图1所示,公示标准AAC解码器的框架如图2所示,该标准的数据处理流程包括以下几个方面:增益控制、滤波器组(filter bank)、时域噪声整形(TNS temporal noise shaping)、预测、强度立体声耦合、感知噪声整形(PNS perceptual noise substitution)、M/S立体声处理、频谱数据比例因子量化(iquant and scalefactor decoding)、无损编码和*.aac格式码流输出。其中滤波器组、频谱数据比例因子量化、无损编码和*.aac格式码流输出是其流程的必须组成部分,其余处理工具皆是可选择项。
为了适应不同实际情况下的编码压缩要求,AAC的编码标准包还分为三个层次,分别为Main profile,LC(Low Complexity)profile,SSR(Scaleable Sampling)profile。其中Main profile包括了如图1所示全部的处理步骤,是最完备的编码格式,可以得到最高的数据压缩比。LCprofile不包括增益控制和预测,而且时域噪声整形功能也受到一定的限制。SSR profi le则不包括预测和强度立体声耦合,且时域噪声整形和带宽受到限制。通常情况下,LC profile所能提供的音质效果几乎接近Mainprofile,但是它在算法和存储使用量上明显少于Main profile。所以大多数AAC解码器都是使用LC profile算法的。
自从AAC音频压缩标准一诞生,他就以因自身的独特魅力而迅速地在数字多媒体领域得到各个方面的应用。例如著名的流行播放软件 Winmap,iTuens都开始支持*.aac音频文件格式。松下,苹果等公司也相继推出了支持AAC标准的相关数码产品。由此可见,未来的电子消费类市场,兼容AAC标准功能的产品将成为一个热点,这就需要高效的,低成本,低功耗的AAC标准嵌入式解决方案来满足这一需求。
为了顺应这一趋势,很多研究机构和技术研发公司在这方面都做了很多工作。一般来说,实现AAC解码器的途径有三种:在数字信号处理器(DSP)上利用软件实现,采用全硬件体系实现(即ASIC)以及软/硬件协作的SoC体系。
但是根据对IEEE上检索查新得到的资料以及对国内各大学术期刊的检索显示,可以看出现在关于AAC标准解码器的有关技术上,很多还是停留在数字信号处理器(DSP)的层面,通过嵌入式软件的方式实现,利用简化或改进软件算法来提高AAC解码器的解码效率。这其中便存在两个缺点:一是由数字信号处理器(DSP)来实现AAC解码,为了实现很高的数据压缩比,涉及算法十分复杂,会加大对***资源的占用,这是无论怎样改进软件和算法都无法回避的问题。二是通过数字信号处理器(DSP)实现AAC解码,这种方法无法优化硬件工作效率和能量消耗。这将不利于AAC解码器应用于移动电子产品的开发。
当然也有科研机构实现了全硬件(ASIC)的AAC解码器,2004年***立中央大学电气工程学院在IEEE上发表的“A Pure-ASIC DesignApproach for MPEG-2AAC Audio Decoder”一文中就是这方面的代表。文中通过合理划分模块功能,并采用双声道流水线处理方式实现全硬件MPEG2-AAC解码器,其主要特点就是通过合理的硬件控制解决了DSP无法优化硬件效率和功耗的问题,并且提高解码速度。众所周知,AAC标准所规定的*.aac格式的音频文件具有多种文件头格式,针对其不同的头文件,解码方法也不尽相同,如果要使AAC解码器具有很好的兼容性,那么完成全硬件的AAC解码器就要求对AAC文件头进行在解码的同时一定要覆盖所有可能出现的文件头形式,这无疑会增加硬件的面积开销,同时大大增加产品的成本。除此之外还有其他一些并不是常用的解码插件工具亦是存在这样的问题。在SoC已经十分发达的今天,这一方面是可以通过其他更为简单和有效的方法来解决的。
发明内容
本发明针对现有AAC音频文件解码器存在的因算法复杂而占用***资源、硬件工作效率无法优化、能量消耗多以及AAC解码器兼容性等问题提出一种通过软、硬件相结合协作的基于SoC的AAC音频解码器及其解码方法。
本发明所述基于片上***的AAC音频解码器,其特征在于,包括***控制部分301和解码实现部分302,所述***控制部分301和解码实现部分302二者之间采用总线303进行通信,所述***控制部分301主要负责调整整个解码器的解码流程;所述解码实现部分302先执行软件解码,再对软件解码后的音频数据流执行硬件解码;总线303主要负责***控制部分301和解码实现部分302之间的数据传输;其中,软件解码使用数字信号处理器完成对音频文件的数据流分析:首先进行音频头文件的分析,用于判断该音频文件是否属于该解码器可解码范围内的音频文件,如判断不可解,则跳出解码步骤,报错并返回***初始状态,如判断可解,则分析该音频文件是采用单声道格式还是立体声格式;若该音频文件是立体声格式,则先从音频数据流中获得两个声道配置参数,该参数的一部分应用于下面的软件解码过程,一部分将被送入硬件,作为将来硬件解码部分的控制参数,然后分析段数据流,查表获得解码需要的两个声道比例因子数据及两个声道经过编码器处理后的采样数据;若该音频文件是单声道格式,则先从音频数据流中获得单个声道配置参数,该参数的一部分应用于下面的软件解码过程,一部分将被送入硬件,作为将来硬件解码部分的控制参数,然后分析段数据流,查表获得解码需要的单个声道比例因子数据及单个声道经过编码器处理后的采样数据;
硬件解码为将经软件解码后的数据流通过硬件进行解码。
所述***控制部分301包括中央处理单元和中断控制单元307,中央处理单元用于控制协调整个***的工作,中断控制单元307用于控制中断信号。
所述解码实现部分302包括数字信号处理器和硬件解码模块305,所述硬件解码模块305包括:存储输入数据SRAM402、两组波形数据输出SRAM403和AAC解码器硬件内核404,所述存储输入数据SRAM402和所述两组波形数据输出SRAM403位于AAC与总线接口401与AAC解码器硬件内核404之间。
所述AAC解码器硬件内核404包括:硬件控制模块501,保管AAC解码需要的一些基本解码参数;比例因子解码与反量化模块502,对数据进行 比例因子反量化处理;知觉噪声整形模块503,用于恢复自然噪声;滤波器组模块507,将频谱数据变为时域数据;滤波器组参数存储ROM512;数据RAM地址译码模块508,保存所述存储输入数据SRAM402中数据地址译码;FFT临时存储RAM510、左右道数据存储SRAM509和左右道窗数据叠加SRAM511。
所述比例因子解码与反量化模块502是将反量化和比例因子解码模块集成为单一模块。
所述知觉噪声整形模块503,针对双声道音频文件可采用并行处理。
所述AAC解码器硬件内核404还包括:M/S立体声恢复模块504或动态摆幅控制模块506或时域噪声整形模块505中的至少一个模块,其中所述M/S立体声恢复模块504,用于实现M/S立体声恢复;所述动态摆幅控制模块506,用于协调和控制硬件输出;所述时域噪声整形模块505,用于抑制前回声的声音处理方法。
所述时域噪声整形模块505中,对于采样数据流先判断当前窗需解码范围再进行时域噪声整形解码。
本发明所述一种基于片上***的AAC音频解码器的解码方法,包括:步骤1:中央处理单元和数字信号处理器对数据流进行预处理,所述预处理包括中央处理单元对数字信号处理器进行初始化参数配置,在所述初始化参数配置后,解码***寻找指定需要解码的AAC音频文件,并将之放入指定的存储器中;
所述预处理还包括数字信号处理器对数据流进行分析,该分析包括对音频头文件的分析、音频格式分析以及分析段数据流,其中,判断该音频文件是否属于该解码器可解码范围内的音频文件,如判断不可解,则跳出解码步骤,报错并返回***初始状态,如判断可解,则分析该音频文件是采用单声道格式还是立体声格式;若该音频文件是立体声格式,则先从音频数据流中获得两个声道配置参数,该参数的一部分应用于下面的软件解码过程,一部分将被送入硬件,作为将来硬件解码部分的控制参数,然后分析段数据流,查表获得解码需要的两个声道比例因子数据及两个声道经过编码器处理后的采样数据;若该音频文件是单声道格式,则先从音频数据流中获得单个声道配置参数,该参数的一部分应用于下面的软件解码过程,一部分将被送入硬件,作为将来硬件解码部分的控制参数,然后分析段数据流,查表获得解码需要的单个声道比例因子数据及单个声道经过编码器 处理后的采样数据;步骤2:硬件解码模块305对经步骤1处理后的数据流进行解码;步骤3:硬件解码模块305发出中断信号,输出解码后音频文件。
所述步骤2所述解码步骤包括比例因子解码与反量化和滤波器组处理,以及知觉噪声整形或M/S立体声恢复或时域噪声整形或动态摆幅控制中任一处理步骤。
所述解码过程中的数据流传输可采用CPU传输或采用DAM传输中任一实现方式。
本发明所述一种基于片上***的AAC音频解码器及其解码方法,采用软、硬件结合协作的方式,克服了现有AAC音频解码器存在的因算法复杂而占用***资源、硬件工作效率无法优化、能量消耗多以及AAC解码器兼容性等问题,实现了*aac格式的多种文件头格式兼容解码,且使用硬件模块解码,速度快,相比软件解码对数字信号处理器要求低,同时降低成本。将比例因子解码和反量化处理集成到一个模块中,减少了硬件存储和读取数据的时间;时域噪声整形模块,通过采用先判断解码范围再解码的处理方式,减少了运算步骤,优化算法并节省了运算时间;知觉噪声整形模块,通过采用对双声道音频文件进行并行处理,优化了算法节省了运算时间。本发明通过以上方式提供了一种低功耗、低成本和兼容性良好的AAC解码器及解码方法,在音视频便携式电子产品十分发达的今天,低功耗、低成本和高兼容性的音频播放***已经成为其必不可少的一部分。
附图说明
图1是标准AAC解码器的框架图;
图2是标准AAC编码器的框架图;
图3是本发明整个***示意图;
图4是本发明硬件部分的架构图;
图5是本发明AAC解码器硬件内核具体示意图;
图6a是本发明采用CPU传输方式工作主程序执行流程图;
图6b是本发明采用CPU传输方式中断处理流程图;
图7a是本发明采用DMA传输方式工作主程序执行流程图;
图7b是本发明采用DMA传输方式中断处理流程图;
图8是知觉噪声整形模块处理流程图;
图9是时域噪声整形模块处理流程图;
图10是动态摆幅控制模块处理流程图。
具体实施方式
现结合附图说明对本发明进行详细描述:
本发明所述AAC解码器采用软、硬件相结合的解码方式,如图3所示,本发明所述AAC解码器主要分为***控制部分301和解码实现部分302,所述***控制部分301和解码实现部分302通过总线303连接。
所述***控制部分301主要负责控制本发明所述的AAC解码器的整个***,并发出控制指令执行解码过程,该部分包括CPU304和中断控制器307。CPU304用于控制协调整个***的工作;中断控制器307用于控制中断信号,当数据输入/输出结束时或硬件产生中断时,向CPU304发出信号,使CPU304做出相应的处理工作。
所述解码实现部分302主要负责软件解码,即音频文件的数据流分析和硬件解码,即对分析后的数据流作音频数据还原,先执行软件程序,再通过硬件功能模块对软件解码后的音频数据流进行解码,完成AAC解码器的其余计算量很大的工作,该部分包括DSP306和硬件解码模块305。
如图4所示,硬件解码模块305包括AAC与总线接口401,存储输入数据SRAM402、波形数据输出SRAM403两组和AAC解码器硬件内核404。存储输入数据SRAM402用于存储需解码音频文件的基本控制数据及采样数据;两组波形数据输出SRAM403用于将解码完毕的波形数据流输出到总线303。
所述AAC解码器硬件内核404如图5所示,包括:硬件初始化模块501、比例因子解码与反量化模块502、知觉噪声整形模块503、M/S立体声恢复模块504、时域噪声整形模块505、动态摆幅控制模块506、滤波器组模块507、滤波器组参数存储ROM512、数据RAM地址译码模块508、FFT临时存储RAM(510)、左右道数据存储SRAM509和左右道窗数据叠加SRAM511。
其中,硬件控制模块501,因为AAC解码需要一些基本的解码参数,这些参数是完成各个解码工序都必不可少的,所以专门使用一个模块对其进行保管。另外该模块兼有协调其余各个模块之间工作的功能;数据SRAM地址译码器模块508,因为存储输入数据的SRAM402中包含了与各个解码工序相关的各种数据,该地址译码器模块将通过地址译码使对应的模块可 依得到与之相关的正确数据;比例因子解码与反量化模块502,用于恢复为量化前的数据,同时恢复经过比例因子编码的频谱数据。先通过查表完成反量化的操作,然后根据标准数据进行运算得出比例因子编码前的数据;知觉噪声整形模块503用于对自然噪声的恢复,使输出的声音更加自然逼真;M/S立体声恢复模块504,用于恢复经过M/S立体声处理的音频数据;时域噪声整形模块505时域噪声整形是一种抑制前回声的声音处理方法;动态摆幅控制506这个是可选择的功能,只有在必要的情况下才会使用;滤波器组模块507,该模块解码器解码工作的最后一步。同时也是最为重要,计算量最大的一步。它的输入数据为频谱数据,经过傅立叶变换后输出时域声音数据。
如图5、6a所示,本发明所述AAC音频解码器的具体解码流程如下:
步骤601:配置扬声器等播放工具的工作参数;
播放音频文件启动AAC解码器,CPU304通过总线303开始配置AAC解码器DSP306的初始化参数;
参数配置完毕后,解码***寻找指定的需要解码的AAC音频文件,如未找到,则返回错误信息,***调处执行流程;找到音频文件后,将文件放入指定的存储器中。
步骤602:启动AAC软件部分完成对数据流的分析;
CPU301向DSP306发出指令,启动软件解码部分,使之进入工作状态,软件首先进行音频头文件的分析,判断该音频文件是否属于该解码器可解码范围内的音频文件,如判断该文件不可解,则跳出解码步骤,报错并返回***初始状态,如判断可解,则进入下一个环节,分析该音频文件是采用单声道格式还是立体声格式。在确定音频格式以后,根据其具体格式进入与之相对应的处理流程中。
其中立体声格式的音频文件其处理流程如下:该格式音频文件因为采用的是双声道编码,先从音频数据流中获得两个声道配置参数,该参数的一部分应用于下面的软件解码过程,一部分将被送入硬件,作为将来硬件解码部分的控制参数存放在存储输入数据SRAM402中;然后分析段数据流,查表获得解码需要的两个声道比例因子数据及两个声道经过编码器处理后的采样数据。
单声道格式的音频文件处理流程与立体声格式的音频文件处理流程相似,只是从音频数据流中获得的是单个声道配置参数,分析查表获得解码 需要的是一个声道比例因子数据和一个声道经过编码器处理后的采样数据。
DSP306工作完成以后,向CPU304发出完成信号,将解码的控制权交回CPU304。
步骤603:将数字信号处理部分306分解后的数据送到硬件解码部分305,启动硬件解码;
CPU304得到数字信号处理部分306返回的信号以后,便向硬件解码部分305发出启动信号,***进入硬件解码阶段。
硬件解码模块305接收到由CPU304发出的启动指令以后,进入工作状态,硬件解码模块305中的硬件控制模块(501)先访问数据SRAM地址译码器模块508,通过地址译码从存储输入数据SRAM402中获得由软件解码而得的基本控制数据流,硬件控制模块501通过控制数据流进行初始化配置,配置结束后,进入解码状态。
首先比例因子解码与反量化模块502读取采样数据流,所述比例因子解码与反量化模块502在已有标准公开的算法基础上,将反量化模块和比例因子解码模块集成为单一模块,实现了同时完成对采样数据的比例因子量化和整体反量化处理,它是AAC音频解码的基础步骤。在该模块处理过程中,对于立体声音频文件,先判断该立体声音频文件是否采用统一窗函数,如果不是,则类似单声道处理方式;如果是,则两个声道同时处理。该模块会判断出一个用来表示两个声道在编码上的相关性的控制信号,对于立体声音频文件就会同时完成对两个声道的比例因子和反量化处理;对于单声道音频文件,将分别完成各个声道的比例因子和反量化处理。比例因子解码与反量化模块502完成对数据的处理后,把结果存入左右道数据存储SRAM509,并向硬件控制模块501发送“完成”信号,硬件控制模块305收到该信号后,跳入下一个解码状态。
硬件控制模块(501对通过数据SRAM地址译码器模块(508中地址译码从存储输入数据SRAM(402读取的基本控制数据进行判断,检测该音频文件在编码时是否采用了知觉噪声整形工具,此模块是用于对自然噪声得恢复,即对被采样的声音中有较长的空白,无主要音源情况下的环境噪声进行恢复,对于这种情况该解码算法通过一个随机算法产生出与自然噪音十分接近的频谱数据,替代之前采样声音的自然噪音。如果该音频文件采用了,则启动知觉噪声整形模块503,如图8所示,访问左右道数据存储 SRAM509读取采样数据流中当前频带数据,如果当前频带未使用噪声编码,则访问下一频带数据。如果当前频带采用噪声编码则计算使用噪声编码的带宽,确定此频带需做知觉噪声整形处理的带宽,该模块产生一组随机噪声矢量,随机噪声矢量带宽与之前确定的带宽相等,对于随机矢量计算其能量的均方,计算PNS量化因子,用计算所得量化因子对随机矢量进行量化,并将计算结果写入左右声道数据存储SRAM402,判断是否处理完当前帧的全部频带,如果处理完则对当前帧的频带做知觉噪声整形解码,如果当前帧的所有频带都处理完,则处理后的结果仍然放回左右道数据存储SRAM509,并向硬件控制模块501发送“完成”信号,硬件控制模块501收到该信号后,跳入下一个解码状态。此步骤中,针对采用统一窗函数的立体声音频文件实现并行处理,可以对两个声道同时进行知觉噪声整形处理。
硬件控制模块501对通过数据SRAM地址译码器模块508中地址译码从存储输入数据SRAM402读取的基本控制数据进行判断,检测该音频文件在编码时是否经过M/S立体声处理,单声道音频文件不需要这一解码过程,而大部分立体声编码格式的音频文件都会采用这一工具进行编码,如果采用了,则启动M/S立体声恢复模块504,从左右道数据存储SRAM509中读取上一步处理结果出,对音频数据作M/S立体声恢复处理,且两个声道同时进行处理。处理后的结果仍然放回左右道数据存储SRAM509,并向硬件控制模块501发送“完成”信号,硬件解码模块305收到该信号后,跳入下一个解码状态。
硬件控制模块501对通过数据SRAM地址译码器模块508中地址译码从存储输入数据SRAM402读取的基本控制数据进行判断,检测该音频文件是否需要进行时域噪声整形解码。时域噪声整形是一种抑制前回声的声音处理方法,被采样的声音数据会存在这样一种情况,前一部分的声音信号响度很低,而后一部分突然声音信号的响度提高,例如,先是一段很安静的音乐,后面突然间出现非常强烈高昂的音乐掺杂进来。这样的声音数据进行编码时,对经过编码后再恢复出来的系数做反量化,量化带来的扭曲将会出现在整个重构区间里,前一部分平静的那段音乐就会出现回声,这就叫做前回声,使用时域噪声整形解码就可以很好的消除这种前回声。如图9所示,若需要此项处理,则启动时域噪声整形模块505,访问左右道数据存储SRAM509,判断采样数据流中当前窗是否采用时域噪声整形编码,如 果没有采用,则跳入当前帧的下一窗数据进行判断;如果当前窗使用时域噪声整形编码,则计算当前窗使用时域噪声整形编码的频带范围,然后对计算出的频带范围做时域噪声整形解码,接着计算长时预测参数(LPC,linear predictive coding),并对长时预测参数也做时域噪声整形滤波,即毛刺滤波,对数据进行波幅限制。最后将计算结果存储到左右道数据存储SRAM509,判断当前窗内是否全部频带都处理完毕,如果当前窗还有其它频带需要进行时域噪声整形解码,则跳回计算当前窗使用时域噪声整形编码的频带范围;如果当前窗时域噪声整形解码完毕,则继续判断当前窗所在帧是否已经解码完毕,如未完毕,则对当前帧的下一窗数据做解码;如果解码完毕将处理后的结果仍然保存在左右到数据存储SRAM509,并向硬件控制模块501发送“完成”信号,跳入下一个解码状态。
硬件控制模块501发送新的数据SRAM访问请求,通过数据SRAM地址译码器模块508地址译码后从存储输入数据SRAM402读取的关于动态摆幅功能的基本控制数据进行判断,检测该音频文件是否需要启动动态摆幅控制模块506,此模块是对硬件输出起协调和控制作用。如需启动,如图10所示,则访问左右道数据存储SRAM509读取频带数据,计算当前动态摆幅控制处理的频带范围,并访问左右道数据存储SRAM509读取动态摆幅控制数据,根据此数据计算动态摆幅增益因子,以此对频带内频谱数据做动态摆幅控制处理并写回结果。如果当前频带解码完毕,则判断是否已处理完当前帧的全部频带,如果没有,则进入下一频带的解码;如果解码完毕将处理后的结果仍然存入左右道数据存储SRAM509,并向硬件控制模块501发送“完成”信号,硬件控制模块501收到该信号后,跳入下一个解码状态。该模块对于立体声音频文件可实现两个声道的数据同时进行解码,对于单声道音频文件则对一个声道的数据进行处理。
硬件控制模块501向左右道数据存储SRAM509发出指令,读取采样数据流,此时输入数据为频谱数据,硬件控制模块305向滤波器组模块507发出指令,滤波器组模块507从滤波器组参数存储ROM512将运算参数取出,对输入数据做傅立叶变换计算,计算的中间值存在FFT临时存储RAM510中,计算的结果在左右声道窗数据叠加SRAM511中进行去毛刺处理,最后从滤波器组模块中输出16bit的PCM声音数据流。
以上为本发明AAC解码器对于立体声、单声道音频文件中的一帧数据的解码过程。
步骤604:等待解码器实现部分302中断;
如图6b所示:步骤605:读取AAC中断状态寄存器;步骤606:输入下一帧的音频数据,在启动硬件进行下一帧的解码,这里当硬件解码305部分工作时,DSP306将会先取下一帧的数据流进行数据分析;步骤607:下一帧的音频数据输入完毕后,先启动硬件解码部分,使之进入工作状态;步骤608:读取当前帧的解码数据结果;步骤609:返回并等待解码器实现部分302的下一个中断。这是一个循环处理过程当硬件部分的解码工作完成后,硬件控制模块向CPU304发出一个“处理完成”的中断信号,CPU304获得硬件的中断信号以后,开始配置音频播放器,然后读取由硬件解码部分处理后得出的结果,送到音频播放器中,播放音频文件,完成整个音频文件的解码过程。
另外,本发明所述AAC音频解码器的解码过程中,除了上述处理过程中采用CPU传输方式进行解码过程控制外,还可以采用DMA(Direct MemoryAccess,直接存储器)存取传输方式进行解码过程控制,如图7a所示,其工作流程为:
步骤701:配置扬声器等播放工具的工作参数;
步骤702:启动AAC解码器软件部分,检查软件得出数据是否放在DMA可寻址单元内;如果没有,则返回,再次执行步骤702;如果已存放,则进入步骤703;
步骤703:初始化DMA;
步骤704:启动AAC解码器硬件解码模块;
步骤705:等待AAC解码器硬件解码模块部分发出中断信号;在此步骤中,如图7b所示,当AAC解码器的硬件解码模块产生中断信号后,跳入中断处理过程,如图7b所示,步骤706:由CPU读取AAC中断状态寄存器706;步骤707:CPU检查下一帧软件分析所得数据是否已放在DMA的指定地址,如果没有,则返回,再次检查,如果已存放,则将下一帧的待解码数据流输入硬件解码模块,并启动硬件解码模块305,步骤709:再读取前一帧的输出数据;步骤710:返回并等待硬件部分302中断。
采用DMA传输方式进行解码过程控制的具体解码流程与采用CPU传输方式的具体解码流程中,硬件解码模块305内部流程完全相同。
本发明所述一种基于片上***的AAC音频解码器及其解码方法,采用、硬件结合协作的方式,克服了现有AAC音频解码器存在的因算法复杂 而占用***资源、硬件工作效率无法优化、能量消耗多以及AAC解码器兼容性等问题,实现了*aac格式的多种文件头格式兼容解码,且使用硬件模块解码,速度快,相比软件解码对数字信号处理器要求低,同时降低成本。将比例因子解码和反量化处理集成到一个模块中,减少了硬件存储和读取数据的时间;时域噪声整形模块,通过采用先判断解码范围再解码的处理方式,减少了运算步骤,优化算法并节省了运算时间;知觉噪声整形模块,通过采用对双声道音频文件进行并行处理,优化了算法节省了运算时间。本发明通过以上方式提供了一种低功耗、低成本和兼容性良好的AAC解码器及解码方法,在音视频便携式电子产品十分发达的今天,低功耗、低成本和高兼容性的音频播放***已经成为其必不可少的一部分。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (11)
1.一种基于片上***的AAC音频解码器,其特征在于,包括***控制部分(301)和解码实现部分(302),所述***控制部分(301)和解码实现部分(302)二者之间采用总线(303)进行通信,所述***控制部分(301)主要负责调整整个解码器的解码流程;所述解码实现部分(302)先执行软件解码,再对软件解码后的音频数据流执行硬件解码;总线(303)主要负责***控制部分(301)和解码实现部分(302)之间的数据传输;
其中,软件解码使用数字信号处理器完成对音频文件的数据流分析:首先进行音频头文件的分析,用于判断该音频文件是否属于该解码器可解码范围内的音频文件,如判断不可解,则跳出解码步骤,报错并返回***初始状态,如判断可解,则分析该音频文件是采用单声道格式还是立体声格式;若该音频文件是立体声格式,则先从音频数据流中获得两个声道配置参数,该参数的一部分应用于下面的软件解码过程,一部分将被送入硬件,作为将来硬件解码部分的控制参数,然后分析段数据流,查表获得解码需要的两个声道比例因子数据及两个声道经过编码器处理后的采样数据;若该音频文件是单声道格式,则先从音频数据流中获得单个声道配置参数,该参数的一部分应用于下面的软件解码过程,一部分将被送入硬件,作为将来硬件解码部分的控制参数,然后分析段数据流,查表获得解码需要的单个声道比例因子数据及单个声道经过编码器处理后的采样数据;
硬件解码为将经软件解码后的数据流通过硬件进行解码。
2.如权利要求1所述一种基于片上***的AAC音频解码器,其特征在于,所述***控制部分(301)包括中央处理单元和中断控制单元(307),中央处理单元用于控制协调整个***的工作,中断控制单元(307)用于控制中断信号。
3.如权利要求1所述一种基于片上***的AAC音频解码器,其特征在于,所述解码实现部分(302)包括数字信号处理器和硬件解码模块(305),所述硬件解码模块(305)包括:存储输入数据SRAM(402)、两组波形数据输出SRAM(403)和AAC解码器硬件内核(404),所述存储输入数据SRAM(402)和所述两组波形数据输出SRAM(403)位于AAC与总线接口(401)与AAC解码器硬件内核(404)之间。
4.如权利要求3所述一种基于片上***的AAC音频解码器,其特征在 于,所述AAC解码器硬件内核(404)包括:硬件控制模块(501),保管AAC解码需要的一些基本解码参数;比例因子解码与反量化模块(502),对数据进行比例因子反量化处理;知觉噪声整形模块(503),用于恢复自然噪声;滤波器组模块(507),将频谱数据变为时域数据;滤波器组参数存储ROM(512);数据RAM地址译码模块(508),保存所述存储输入数据SRAM(402)中数据地址译码;FFT临时存储RAM(510)、左右道数据存储SRAM(509)和左右道窗数据叠加SRAM(511)。
5.如权利要求4所述一种基于片上***的AAC音频解码器,其特征在于,所述比例因子解码与反量化模块(502)是将反量化和比例因子解码模块集成为单一模块。
6.如权利要求4所述一种基于片上***的AAC音频解码器,其特征在于,所述知觉噪声整形模块(503),针对双声道音频文件可采用并行处理。
7.如权利要求4所述一种基于片上***的AAC音频解码器,其特征在于,所述AAC解码器硬件内核(404)还包括:M/S立体声恢复模块(504)或动态摆幅控制模块(506)或时域噪声整形模块(505)中的至少一个模块,其中所述M/S立体声恢复模块(504),用于实现M/S立体声恢复;所述动态摆幅控制模块(506),用于协调和控制硬件输出;所述时域噪声整形模块(505),用于实施抑制前回声的声音处理方法。
8.如权利要求7所述一种基于片上***的AAC音频解码器,其特征在于,所述时域噪声整形模块(505)中,对于采样数据流先判断当前窗需解码范围再进行时域噪声整形解码。
9.一种基于片上***的AAC音频解码器的解码方法,包括:
步骤1:中央处理单元和数字信号处理器对数据流进行预处理,所述预处理包括中央处理单元对数字信号处理器进行初始化参数配置,在所述初始化参数配置后,解码***寻找指定需要解码的AAC音频文件,并将之放入指定的存储器中;
所述预处理还包括数字信号处理器对数据流进行分析,该分析包括对音频头文件的分析、音频格式分析以及分析段数据流,其中,判断该音频文件是否属于该解码器可解码范围内的音频文件,如判断不可解,则跳出解码步骤,报错并返回***初始状态,如判断可解,则分析该音频文件是采用单声道格式还是立体声格式;若该音频文件是立体声格式,则先从音频数据流中获得两个声道配置参数,该参数的一部分应用于下面的软件解 码过程,一部分将被送入硬件,作为将来硬件解码部分的控制参数,然后分析段数据流,查表获得解码需要的两个声道比例因子数据及两个声道经过编码器处理后的采样数据;若该音频文件是单声道格式,则先从音频数据流中获得单个声道配置参数,该参数的一部分应用于下面的软件解码过程,一部分将被送入硬件,作为将来硬件解码部分的控制参数,然后分析段数据流,查表获得解码需要的单个声道比例因子数据及单个声道经过编码器处理后的采样数据;
步骤2:硬件解码模块(305)对经步骤1处理后的数据流进行解码;
步骤3:硬件解码模块(305)发出中断信号,输出解码后音频文件。
10.如权利要求9所述一种基于片上***的AAC音频解码器的解码方法,其特征在于,所述步骤2所述解码步骤包括比例因子解码与反量化和滤波器组处理,以及知觉噪声整形或M/S立体声恢复或时域噪声整形或动态摆幅控制中任一处理步骤。
11.如权利要求9所述一种基于片上***的AAC音频解码器的解码方法,其特征在于,所述解码过程中的数据流传输可采用CPU传输或采用DAM传输中任一实现方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100744331A CN101308658B (zh) | 2007-05-14 | 2007-05-14 | 一种基于片上***的音频解码器及其解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100744331A CN101308658B (zh) | 2007-05-14 | 2007-05-14 | 一种基于片上***的音频解码器及其解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101308658A CN101308658A (zh) | 2008-11-19 |
CN101308658B true CN101308658B (zh) | 2011-04-27 |
Family
ID=40125071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100744331A Active CN101308658B (zh) | 2007-05-14 | 2007-05-14 | 一种基于片上***的音频解码器及其解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101308658B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102237090B (zh) * | 2010-04-20 | 2012-11-21 | 安凯(广州)微电子技术有限公司 | 一种多媒体***级芯片及其多媒体处理方法和多媒体装置 |
CN101968771B (zh) * | 2010-09-16 | 2012-05-23 | 北京航空航天大学 | 一种在dsp上实现先进音频编码算法的内存优化方法 |
CN102158778A (zh) * | 2011-03-11 | 2011-08-17 | 青岛海信移动通信技术股份有限公司 | 一种降低耳机噪声的方法、设备和*** |
US9640190B2 (en) * | 2012-08-29 | 2017-05-02 | Nippon Telegraph And Telephone Corporation | Decoding method, decoding apparatus, program, and recording medium therefor |
CN103065641B (zh) * | 2013-02-01 | 2014-12-10 | 飞天诚信科技股份有限公司 | 一种解析音频数据的方法 |
CN103280233A (zh) * | 2013-05-17 | 2013-09-04 | 深圳市奋达科技股份有限公司 | 基于片上***的音频处理*** |
CN104754365A (zh) * | 2013-12-31 | 2015-07-01 | 中兴通讯股份有限公司 | 一种流媒体处理方法和装置 |
CN104240714A (zh) * | 2014-09-30 | 2014-12-24 | 福州瑞芯微电子有限公司 | 一种音频解码装置和方法 |
CN104954941B (zh) * | 2015-06-10 | 2018-09-14 | 福州瑞芯微电子股份有限公司 | 高性能低功耗hifi解码*** |
CN106384596A (zh) * | 2016-09-22 | 2017-02-08 | 努比亚技术有限公司 | 一种音频数据的处理方法及终端 |
CN106782578B (zh) * | 2016-12-06 | 2020-09-01 | 瑞安市海达服饰有限公司 | 一种分布式解码控制器、分布式解码方法及音频终端 |
EP3483882A1 (en) * | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Controlling bandwidth in encoders and/or decoders |
EP3483879A1 (en) | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Analysis/synthesis windowing function for modulated lapped transformation |
CN108320754B (zh) * | 2018-02-05 | 2019-03-19 | 山东师范大学 | 一种音频解码器、解码方法和多媒体*** |
CN109360574B (zh) * | 2018-10-18 | 2022-06-21 | 恒玄科技(上海)股份有限公司 | 一种无线蓝牙***改进的高级音频编码/解码方法及*** |
CN109587497B (zh) * | 2018-12-13 | 2021-03-23 | 广州虎牙信息科技有限公司 | Flv流的音频数据传输方法、装置和*** |
CN115579013B (zh) * | 2022-12-09 | 2023-03-10 | 深圳市锦锐科技股份有限公司 | 一种低功耗音频解码器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173381B1 (en) * | 1994-11-16 | 2001-01-09 | Interactive Silicon, Inc. | Memory controller including embedded data compression and decompression engines |
CN1909382A (zh) * | 2006-08-17 | 2007-02-07 | 上海交通大学 | 适用于多音频标准通用滤波器单元的vlsi实现方法 |
-
2007
- 2007-05-14 CN CN2007100744331A patent/CN101308658B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173381B1 (en) * | 1994-11-16 | 2001-01-09 | Interactive Silicon, Inc. | Memory controller including embedded data compression and decompression engines |
CN1909382A (zh) * | 2006-08-17 | 2007-02-07 | 上海交通大学 | 适用于多音频标准通用滤波器单元的vlsi实现方法 |
Non-Patent Citations (4)
Title |
---|
Chun-Nan Liu,et al..SoC platform based design of MPEG-2/4 AAC audio decoder.《EEE International Symposium on Circuits and Systems, 2005. ISCAS 2005》.2005,第3卷2851-285. * |
Chun-NanLiu,etal..SoCplatformbaseddesignofMPEG-2/4AACaudiodecoder.《EEEInternationalSymposiumonCircuitsandSystems 2005. ISCAS 2005》.2005 |
Tsung-Han Tsai,et al..A pure-ASIC design approach for MPEG-2 AAC audio decoder.《Proceedings of the 2003 Joint Conference of the Fourth International Conference on Information, Communications and Signal Processing, 2003 and the Fourth Pacific Rim Conference on Multimedia.》.2003,第3卷1633-1636. * |
王华明等.用定点DSP实现MPEG-2 AAC实时解码器.《电声技术》.2001,(第3期),3-7. * |
Also Published As
Publication number | Publication date |
---|---|
CN101308658A (zh) | 2008-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101308658B (zh) | 一种基于片上***的音频解码器及其解码方法 | |
ES2681429T3 (es) | Generación de ruido en códecs de audio | |
RU2690885C1 (ru) | Стереофонический кодер и декодер аудиосигналов | |
CN101268351B (zh) | 健壮解码器 | |
US7573912B2 (en) | Near-transparent or transparent multi-channel encoder/decoder scheme | |
CN1973319B (zh) | 编码和解码多通道音频信号的方法和设备 | |
CN101253557B (zh) | 立体声编码装置及立体声编码方法 | |
CN101996636B (zh) | 带多级码本和冗余编码的子带话音编解码器 | |
RU2381571C2 (ru) | Синтезирование монофонического звукового сигнала на основе кодированного многоканального звукового сигнала | |
CN104011794B (zh) | 具有并行架构的音频编码器 | |
US8335577B2 (en) | Method of generating advanced audio distribution profile (A2DP) source code and chipset using the same | |
CN101568959B (zh) | 用带宽扩展进行编码和/或解码的方法 | |
CN1271597C (zh) | 对声源信号进行编码/解码的方法和装置 | |
EA025020B1 (ru) | Аудиодекодер и способ декодирования с использованием эффективного понижающего микширования | |
CN101727906B (zh) | 高频带信号的编解码方法及装置 | |
CN1748247A (zh) | 音频编码 | |
CN101512639A (zh) | 用于语音/音频发送器和接收器的方法和设备 | |
CN103380455A (zh) | 对音频信号的高效编码/解码 | |
MX2013003782A (es) | Aparato y metodo para procesar una señal de audio y para otorgar una mayor granularidad temporal para un codificador-decodificador combinado y unificado de voz y audio (usac). | |
CN101483495B (zh) | 一种背景噪声生成方法以及噪声处理装置 | |
CN105577781A (zh) | 虚拟化桌面中音频重定向的方法及*** | |
KR100721263B1 (ko) | Imdct 코프로세서 및 이를 포함한 오디오 복호기 | |
CN101136200B (zh) | 音频信号转换编码方法与*** | |
JP2008503766A5 (zh) | ||
CN102419978B (zh) | 音频解码器、音频解码的频谱重构方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 518057 room 406-421, 4 floor, 4 science and technology two way software park, Nanshan District hi tech Zone, Shenzhen, Guangdong Patentee after: Shenzhen Shenyang electronic Limited by Share Ltd Address before: 518057 room 406-421, 4 floor, 4 science and technology two way software park, Nanshan District hi tech Zone, Shenzhen, Guangdong Patentee before: Aike Chuangxin Microelectronic Co., Ltd. |
|
CP01 | Change in the name or title of a patent holder |