解码器解码过程中运行的Mips数的自动调节方法技术

技术编号:3421423 阅读:146 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种解码器解码过程中运行的Mips数的自动调节方法,选用解码器中两个大小相同且上下相邻的缓冲器,其中一个缓冲器用于存放解码数据,另一个缓冲器用于播放数据,所述两个缓冲器各自有一个指针,在播放过程中比较存放数据缓冲器的填充速度和播放数据的搬空速度,根据比较的结果,判定当前运行的Mips数情况,接着再根据判定的Mips数情况,以解码器说明书中规定的Mips数为参照,来调节当前运行的Mips数。本发明专利技术可以根据不同的音频格式文件播放过程中解码算法的运算量,来自动调节解码过程中运行的Mips数,达到一个对应不同音频格式文件所需的合适数值,这样不仅可以正常播放所有比特率文件,还能有效控制功耗,提高电池寿命。

【技术实现步骤摘要】

本专利技术涉及一种算法。
技术介绍
目前在各种嵌入式产品中,不同格式的文件往往需要相应的算法解码后才能正常播放,然而每一种格式的文件可能有不同比特率,采样率,解码复杂度,所以对不同格式的文件所需解码算法的运算量不一样,即解码速度不一样,Mips(每秒百万条指令)数也不一样。如果采用固定最小的Mips数来解码,对需要运算量较大的格式文件的解码过程中,会造成一些比特率文件不能正常播放,出现声音、图象不连续等现象,如果采用固定最大的Mips数来解码,对需要运算量较小的格式文件的解码过程中,会造成一些比特率文件播放时电源浪费,大大降了低电池的使用寿命,况且最大的Mips数也需要大量的文件才能测试出来,而且不一定精确。
技术实现思路
为了克服目前技术上的不足,本专利技术的目的在于提供了一种算法,能够根据不同音频格式文件解码算法的运算量来自动调节解码器运行的Mips数。本专利技术的目的可通过以下的技术措施来实现选用解码器中两个大小相同且上下相邻的缓冲器,其中一个缓冲器用于存放解码数据,另一个缓冲器用于播放数据,所述两个缓冲器各自有一个指针,在播放过程中比较存放数据缓冲器的填充速度和播放数据的搬空速度,根据比较的结果,判定当前运行的Mips数情况,接着再根据判定的Mips数情况,以解码器说明书中规定的Mips数为参照,来调节当前运行的Mips数。本专利技术根据比较速度的结果,判定Mips数的过程为如果播放数据缓冲器搬空的速度小于或等于存放数据缓冲器填充的速度的1/2~4/5倍,则当前运行的Mips数过高;如果播放数据缓冲器搬空的速度既不符合小于或等于存放数据缓冲器填充的速度的1/2~4/5倍,也不大于存放数据缓冲器填充的速度,则当前运行的Mips数适宜;如果播放数据缓冲器搬空的速度大于存放数据缓冲器填充的速度,则当前运行的Mips数过低。本专利技术所述两个缓冲器的速度关系是根据这两个缓冲器长度及其指针位置来判断。本专利技术根据判定的Mips数情况,调节Mips数的过程为当前运行的Mips数过高时;对照当前运行的Mips数是否达到解码器说明书中规定的最低Mips数,如果达到,就保持当前运行的Mips数不变,否则在当前运行的Mips数基础之上按照解码器说明书中规定的降低;当前运行的Mips数适宜时,则保持当前运行的Mips数适宜不变;当前运行的Mips数过低时,对照当前运行的Mips数是否达到IC的规格书的最高Mips数,如果达到,就保持对照当前运行的Mips数不变,否则在对照当前运行的Mips数基础之上按照解码器说明书中规定的提高。本专利技术所述当前运行的Mips数是算法解码器运行所需的Mips数最小值。本专利技术在播放过程中,按以下的处理步骤a).把算法解码器所需运行的Mips数设成最小值,使解码器运行起来;b).比较播放数据缓冲器搬空的速度和存放数据缓冲器填充的速度来判断当前的Mips数是否需要调节;c).如果满足播放数据缓冲器搬空的速度小于或等于存放数据缓冲器填充的速度的3/4倍,表示当前的Mips数过高,则检查当前的Mips数数是否达到解码器说明书中规定的最低Mips数,如果达到,就保持原来的Mips数不变,执行第f)步;否则在当前的Mips数基础之上按照解码器说明书中规定的降低一级后;执行第f)步;d).如果既不满足播放数据缓冲器搬空的速度小于或等于存放数据缓冲器填充的速度的3/4倍,也不满足播放数据buffer搬空的速度大于存放数据buffer填充的速度,表示Mips能满足,则保持当前的Mips数不变,执行第f)步;e).如果满足播放数据缓冲器搬空的速度大于存放数据缓冲器填充的速度,表示Mips数过低,则检查当前的Mips数是否达到解码器说明书中规定的最高Mips数,如果达到,就保持当前的Mips数不变,否则在当前的Mips数基础之上按照解码器说明书中规定的提高一级;f).循环到第b)步。本专利技术可以根据不同的音频格式文件播放过程中解码算法的运算量,来自动调节解码过程中运行的Mips数,达到一个对应不同音频格式文件所需的合适数值,这样可以正常播放所有比特率文件,避免了运算量较大的格式文件的解码过程中出现声音、图象不连续等现象;对运算量较小的格式文件的解码过程中,避免造成一些比特率文件播放时电源浪费,达到有效控制播放器的功耗,可以为便携式产品用户节省电源,提高电池寿命。附图说明图1为本专利技术的具体实施例的流程框图。具体实施例方式在诸如mp3播放器,PMP,PDA等嵌入式产品的解码器中往往有大小相同,上下相邻的两个缓冲器buffer,算法解码器得到的数据需要存放在其中一个缓冲器buffer中,在数据播放中断里需要另一个缓冲器buffer来播放播放,两个缓冲器buffer各自有一个指针,在播放过程中两个buffer相互上下切换,根据这两个缓冲器buffer长度及其指针位置来判断其速度的关系。由于两个缓冲器buffer的长度一样,速度比值是指针位置与缓冲器buffer的起点的距离比值,所以根据两个距离的比值来决定速度,例如,播放数据缓冲器buffer搬空的速度就用其指针与该buffer的起点的距离为576;存放数据缓冲器buffer填充的速度就用其指针与该buffer的起点的距离为432;那么432/576=3/4,则表明播放数据缓冲器buffer搬空的速度等于存放数据缓冲器buffer填充的速度的3/4,其余类似。在mp3音乐格式的解码在播放过程中,依次按以下的步骤处理1).把mp3算法解码器所需运行的Mips数12Mips设成最小值使mp3解码器运行起来;2).比较播放数据缓冲器buffer搬空的速度和存放数据缓冲器buffer填充的速度来判断当前的Mips数是否需要调节;3).如果满足播放数据缓冲器buffer搬空的速度小于或等于存放数据缓冲器buffer填充的速度的3/4,表示当前的Mips数过高,则检查当前的Mips数是否达到mp3解码器说明书中的最低Mips数,如果达到,就保持原来的Mips数不变,执行第6)步;否则在当前的Mips数基础之上按照mp3解码器说明书中每级步长3mips的降低一级,将当前运行的Mips数调节为9mips;执行第6)步;4).如果既不满足播放数据缓冲器buffer搬空的速度小于或等于存放数据缓冲器buffer填充的速度的3/4,也不满足播放数据buffer搬空的速度大于存放数据buffer填充的速度,表示Mips能满足,则保持当前的Mips数不变,执行第6)步;5).如果满足播放数据缓冲器buffer搬空的速度大于存放数据缓冲器buffer填充的速度,表示Mips数过低,则检查当前的Mips数是否达到mp3解码器说明书中的最高Mips数,如果达到,就保持当前的Mips数不变,否则在当前的Mips数基础之上按照mp3解码器说明书中每级步长3mips的提高一级,将当前运行的Mips数调节为15mips;执行第6)步;6).循环到第2)步。上述实施例中数据缓冲器buffer搬空的速度与存放数据缓冲器buffer填充的速度比可根据情况在1/2~4/5之间选择。上述方法还可用于WMA,OGG,AAC,ASF等音频文件格式,在实施中可以参照不同格式解码器说明书中规定Mips数来确定相应比较的值和调节幅度。权本文档来自技高网...

【技术保护点】
一种解码器解码过程中运行的Mips数的自动调节方法,其特征在于:选用解码器中两个大小相同且上下相邻的缓冲器,其中一个缓冲器用于存放解码数据,另一个缓冲器用于播放数据,所述两个缓冲器各自有一个指针,在播放过程中比较存放数据缓冲器的填充速度和播放数据的搬空速度,根据比较的结果,判定当前运行的Mips数情况,接着再根据判定的Mips数情况,以解码器说明书中规定的Mips数为参照,来调节当前运行的Mips数。

【技术特征摘要】

【专利技术属性】
技术研发人员:赵新中吴浪
申请(专利权)人:炬力集成电路设计有限公司
类型:发明
国别省市:44[中国|广东]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利