音频数据的处理方法及系统
技术领域
本发明涉及通信领域,具体而言,涉及一种音频数据的处理方法及系统。
背景技术
目前,便携式移动终端,例如:手机、掌上电脑(PDA)、平板等均配备有音乐播放功能,甚至还有很多产品以此作为市场畅销的亮点。关于音乐播放功能,绝大部分此类产品的硬件方案涉及应用处理器、音频解码器、音频编译码器(Codec),其中,应用处理器负责读取音乐文件并对音乐文件进行解码处理,音频解码器负责连接外设以及与外设之间的协作等,音频Codec负责音频数据的数字信号向模拟信号转换以及模拟信号向数字信号转换。当采用上述方案的便携式移动终端运行音频播放任务时,应用处理器、音频解码器和音频Codec均处于工作状态,因此会消耗较大的电池容量。而由于应用处理器的架构较为复杂,主频较高,因而其能耗占据主要地位。当用户拥有长时间收听音乐的需求时,容易导致便携式移动终端的大部分电量被音乐播放功能所消耗,从而影响移动终端的通话、接收和/或发送短信息等基础功能,进而影响产品的市场竞争力。
基于上述介绍可知,相关技术中缺少一种能够在移动终端播放音频任务时,降低移动终端的功耗、提高电池续航能力的技术方案。
发明内容
本发明提供了一种音频数据的处理方法及系统,以至少解决相关技术中在移动终端播放音频任务时,无法降低移动终端的功耗的问题。
根据本发明的一个方面,提供了一种音频数据的处理方法。
本发明的音频数据的处理方法包括:应用处理器在将从音频数据存储设备中读取的预设时长的音频数据发送至音频解码器之后,确定进入空闲模式;应用处理器在从空闲模式被唤醒之后,继续从音频数据存储设备中读取与前一次读取到的音频数据接续的下一段音频数据并发送至音频解码器。
根据本发明的另一方面,提供了一种音频数据的处理系统。
本发明的音频数据的处理系统包括:应用处理器;应用处理器包括:第一确定模块,用于在将从音频数据存储设备中读取的预设时长的音频数据发送至音频解码器之后,确定进入空闲模式;处理模块,用于在从空闲模式被唤醒之后,继续从音频数据存储设备中读取与前一次读取到的音频数据接续的下一段音频数据并发送至所述音频解码器。
通过本发明,采用应用处理器在将从音频数据存储设备中读取的预设时长的音频数据发送至音频解码器之后,确定进入空闲模式;应用处理器在从空闲模式被唤醒之后,继续从音频数据存储设备中读取与前一次读取到的音频数据接续的下一段音频数据并发送至音频解码器,即移动终端在运行音频播放任务时,由于应用处理器的功耗占据主要地位,因此通过在应用处理器每次读取一段音频数据后,使得应用处理器间歇性地进入空闲模式,能够有效地减少在音频播放时应用处理器的运行时间,由此解决了相关技术中在移动终端播放音频任务时,无法降低移动终端的功耗的问题,进而当移动终端运行音频播放任务时,通过使移动终端间歇性地进入低功耗音乐播放状态,能够显著降低移动终端在播放音频任务时的总功耗,提高移动终端的电池续航能力,提升产品竞争力。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的音频数据的处理方法的流程图;
图2是根据本发明优选实施例的监测应用处理器的运行状态的流程图;
图3是根据本发明实施例的音频数据的处理系统的结构框图;
图4是根据本发明优选实施例的音频数据的处理系统的结构框图;
图5是根据本发明优选实施例的低功耗音频播放系统的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1是根据本发明实施例的音频数据的处理方法的流程图。如图1所示,该方法可以包括以下处理步骤:
步骤S102:应用处理器在将从音频数据存储设备中读取的预设时长的音频数据发送至音频解码器之后,确定进入空闲模式;
步骤S104:应用处理器在从空闲模式被唤醒之后,继续从音频数据存储设备中读取与前一次读取到的音频数据接续的下一段音频数据并发送至音频解码器。
相关技术中,在移动终端播放音频任务时,无法降低移动终端的功耗。采用如图1所示的方法,应用处理器在将从音频数据存储设备中读取的预设时长的音频数据发送至音频解码器之后,确定进入空闲模式(此时应用处理器依旧保持上电状态,同时可以确保移动终端内部的运行数据不丢失,此时应用处理器的功耗较低,需要通过中断来重新唤醒);应用处理器在从空闲模式被唤醒之后,继续从音频数据存储设备中读取与前一次读取到的音频数据接续的下一段音频数据并发送至音频解码器,即移动终端在运行音频播放任务时,由于应用处理器的功耗占据主要地位,因此通过在应用处理器每次读取一段音频数据后,使得应用处理器间歇性地进入空闲模式,利用功耗较低的音频解码器代替功耗较高的应用处理器完成某些需要芯片一直工作才能完成的任务,能够有效地减少在音频播放时应用处理器的运行时间,由此解决了相关技术中在移动终端播放音频任务时,无法降低移动终端的功耗的问题,进而当移动终端运行音频播放任务时,通过使移动终端间歇性地进入低功耗音乐播放状态,能够显著降低移动终端在播放音频任务时的总功耗,提高移动终端的电池续航能力,提升产品竞争力。
优选地,在步骤S102,应用处理器进入空闲模式之前,还可以包括以下步骤:
步骤S1:应用处理器确定当前移动终端内部仅有音频播放任务正在运行。
在优选实施例中,如果除了音频播放任务之外,还有其他任务(例如:视频播放任务、游戏任务)同样处于运行状态,那么此时无论音频播放任务是否处于运行状态,应用处理器都无法进入空闲模式。只有在移动终端内部仅有音频播放任务正在运行的情况下,应用处理器才能间歇性地进入空闲模式。
优选地,在步骤S1中,应用处理器确定仅有音频播放任务正在运行可以包括以下操作:
步骤S11:应用处理器判断当前是否存储有除音频播放任务之外其余任务的标识信息以及音频播放任务当前是否处于运行状态,其中,存储有标识信息表示存在除音频播放任务之外的其余任务正在运行;
步骤S12:如果应用处理器未存储标识信息并且音频播放任务正处于运行状态,则确定当前仅有音频播放任务正在运行。
在优选实施例中,图2是根据本发明优选实施例的监测应用处理器的运行状态的流程图。可以在移动终端内部的应用处理器中单独设置一个功能模块(例如:低功耗播放模式管理模块)负责监测应用处理器的运行状态,并确定进入低功耗音频播放状态的时机。如图2所示,具体的操作流程如下:
步骤S202:在移动终端的系统中任何希望保持运行的任务都需要向低功耗播放模式管理模块提出注册申请,其申请的标识信息为任务ID。当此任务不再需要保持运行状态的情况下,需要向低功耗播放模式管理模块提出注销申请。低功耗播放模式管理模块可以维护一个链表,链表中保存着已经申请注册的全部任务ID。判断需要保持运行状态的任务链表是否为空;如果是,则继续执行步骤S204;如果否,则转向步骤S208。
步骤S204:当需要保持运行状态的任务链表为空时,即没有其他任务希望保持运行状态,此时还需要进一步判断音频(例如:音乐)播放任务当前是否处于运行状态;如果是,则继续执行步骤S206;如果否,则转向步骤S208。
步骤S206:只有音频播放任务当前正处于运行状态,则低功耗播放模式管理模块可以将当前系统状态设置为低功耗播放模式。流程结束。
步骤S208:如果系统当前已经处于低功耗播放模式,则可以结束系统当前所采用的低功耗播放模式。流程结束。
优选地,在步骤S102,应用处理器每次将读取到的音频数据发送至音频解码器之后,还可以包括以下步骤:
步骤S2:音频解码器获取存放每一段音频数据的地址信息;
步骤S3:音频解码器按照获取到的地址信息将每一段音频数据存放在同一个存储区域内,或者,将每一段音频数据先后交替存放在第一存储区域与第二存储区域,其中,同一个存储区域、第一存储区域以及第二存储区域的存储容量均按照预设时长进行设置。
在优选实施例中,音频解码器可以接收来自于应用处理器的音频数据并保存至缓冲区。首先需要获取存储上述音频数据的地址信息,然后按照获取到的地址信息执行写入操作。在实际存储过程中,可以采用以下两种方案:
方案一、将应用处理器每次从数据存储设备读取的一段音频数据均存储在同一个存储区域,该方案优势在于节省存储空间,但其对各段音频数据之间的连续性要求较高。
方案二、将应用处理器每次从数据存储设备读取的一段音频数据交替存储在两个不同的存储区域内且两个存储区域的存储容量相同,该方案虽然消耗额外的存储空间,但是其能够更加精确地确保各段音频数据之间的连续性。
优选地,在步骤S3,音频解码器按照获取到的地址信息将每一段音频数据存放在同一个存储区域内之后,还可以包括以下操作:
步骤S4:音频解码器对当前接收到的音频数据进行解码处理;
步骤S5:音频解码器在对当前接收到的音频数据进行解码过程中剩余的未解码数据小于预设阈值的情况下唤醒应用处理器;
步骤S6:音频解码器在对当前接收到的音频数据解码完毕时,继续对从应用处理器接收到的下一段音频数据进行解码处理,直至将全部音频数据解码完毕。
作为本发明的一个优选实施例,可以按照每次从数据存储设备中读取音频数据的预设时长确定存储区域的存储容量,应用处理器每读取一段音频数据即可将读取到的音频数据发送至音频解码器,随后即可进入空闲模式。音频解码器根据获取到地址信息对音频数据进行存储,然后开始对存储区域内的音频数据进行解码,当未解码的剩余音频数据小于预设阈值(该预设阈值可以根据移动终端的型号、性能等特征信息来确定)的情况下,唤醒应用处理器。应用处理器可以继续从数据存储设备读取下一段音频数据,并在音频解码器对当前存储区域内的音频数据全部解码完毕后,从应用处理器接收下一段音频数据并进行解码处理,如此反复执行下去,直至完成对全部音频数据的解析操作。
优选地,在步骤S3,音频解码器按照获取到的地址信息将每一段音频数据先后交替存放在第一存储区域与第二存储区域的同时,还可以包括以下步骤:
步骤S7:音频解码器在对存放在第一存储区域的音频数据进行解码处理的过程中唤醒应用处理器,并在第二存储区域接收与存放在第一存储区域的音频数据接续的下一段音频数据;或者,
步骤S8:音频解码器在对存放在第二存储区域的音频数据进行解码处理的过程中唤醒应用处理器,并在第一存储区域接收与存放在第二存储区域的音频数据接续的下一段音频数据。
作为本发明的另一个优选实施例,音频解码器可以根据应用处理器每次读取音频数据的预设时长配置两个容量大小相同的内存块并同时定义两个指针,其中一个为接收音频数据的指针、而另一个为解码音频数据的指针,两个指针分别指向一个内存块。在音频解码器对由解码音频数据的指针指向的内存块中的音频数据进行解码的过程中,音频解码器可以唤醒应用处理器并通知应用处理器继续向由接收音频数据的指针指向的内存块中发送下一段音频数据。每当音频解码器对其中一个内存块中的音频数据解码完毕时,交换接收音频数据的指针和解码音频数据的指针的值。如此反复执行下去,采用上述双缓冲数据管理方式,可以使得音频播放连续、无断点、同时还能够有效地解决应用处理器与音频解码器的同步问题。接收音频数据的指针与解码音频数据的指针相互交换配合,整个系统有条不紊地进行工作。应用处理器间断运行丝毫不会影响整个音频的播放过程,用户完全感觉不到应用处理器其实是在休眠与运行之间进行不断切换。
当然还可以在应用处理器第一次向音频解码器连续发送两段预设时长的音频数据后,音频解码器将两段音频数据各自存储在一个存储区域中,按照两段音频数据的时序关系,将解码音频数据的指针指向前一段音频数据所在的存储区域,而将接收音频数据的指针指向后一段音频数据所在的存储区域。在音频解码器对解码音频数据的指针指向的存储区域中的音频数据解码完毕后,交换接收音频数据的指针和解码音频数据的指针的值。然后音频解码器可以唤醒应用处理器并通知应用处理器继续向由接收音频数据的指针指向的存储区域中发送下一段音频数据。如此反复执行下去。
图3是根据本发明实施例的音频数据的处理系统的结构框图。如图3所示,该音频数据的处理系统可以包括:应用处理器10;应用处理器10可以包括:第一确定模块100,用于在将从音频数据存储设备中读取的预设时长的音频数据发送至音频解码器之后,确定进入空闲模式;处理模块102,用于在从空闲模式被唤醒之后,继续从音频数据存储设备中读取与前一次读取到的音频数据接续的下一段音频数据并发送至所述音频解码器。
采用如图3所示的系统,解决了相关技术中在移动终端播放音频任务时,无法降低移动终端的功耗的问题,进而当移动终端运行音频播放任务时,通过使移动终端间歇性地进入低功耗音乐播放状态,能够显著降低移动终端在播放音频任务时的总功耗,提高移动终端的电池续航能力,提升产品竞争力。
优选地,如图4所示,应用处理器10还可以包括:第二确定模块104,用于确定当前移动终端内部仅有音频播放任务正在运行。
优选地,第二确定模块104可以包括:判断单元(图中未示出),用于判断当前是否存储有除音频播放任务之外其余任务的标识信息以及音频播放任务当前是否处于运行状态,其中,存储有标识信息表示存在除音频播放任务之外的其余任务正在运行;确定单元(图中未示出),用于在判断单元输出为是时,确定当前仅有音频播放任务正在运行。
优选地,如图4所示,上述系统还可以包括:音频解码器20;音频解码器20可以包括:获取模块200,用于获取存放每一段音频数据的地址信息;存储模块202,用于按照获取到的地址信息将每一段音频数据存放在同一个存储区域内,或者,将每一段音频数据先后交替存放在第一存储区域与第二存储区域,其中,同一个存储区域、第一存储区域以及第二存储区域的存储容量均按照预设时长进行设置。
优选地,如图4所示,音频解码器20还可以包括:第一解码模块204,用于对当前接收到的音频数据进行解码处理;唤醒模块206,用于音频解码器在对当前接收到的音频数据进行解码过程中剩余的未解码数据小于预设阈值的情况下唤醒应用处理器;第一解码模块204,还用于在对当前接收到的音频数据解码完毕时,继续对从应用处理器接收到的下一段音频数据进行解码处理,直至将全部音频数据解码完毕。
优选地,如图4所示,音频解码器20还可以包括:第二解码模块208,用于在对存放在第一存储区域的音频数据进行解码处理的过程中唤醒应用处理器,其中,在第二存储区域从应用处理器接收与存放在第一存储区域的音频数据接续的下一段音频数据;或者,第二解码模块208,用于在对存放在第二存储区域的音频数据进行解码处理的过程中唤醒应用处理器,其中,在第一存储区域从应用处理器接收与存放在第二存储区域的音频数据接续的下一段音频数据。
下面结合图5所示的优选实施方式对上述优选实施过程作进一步的描述。
图5是根据本发明优选实施例的低功耗音频播放系统的示意图。如图5所示,该系统位于移动终端的内部,其主要包括两大部分:应用处理器和音频解码器。
应用处理器可以包括但不限于以下功能模块:低功耗播放模式管理模块、音频数据读取和发送模块以及数据同步模块。各个功能模块的具体作用如下:
(1)低功耗播放模式管理模块(相当于上述第一确定模块)负责监测应用处理器的运行状态,并确定进入低功耗音频播放状态的时机;
(2)数据同步模块(相当于上述处理模块的部分功能)负责处理音频解码器发送的同步信号,根据该同步信号唤醒应用处理器,并通知音频数据读取和发送模块继续发送新的音频数据;
(3)音频数据读取和发送模块(相当于上述处理模块的部分功能)负责从数据存储设备中读取音频数据,并通过预设接口将读取到的音频数据发送至音频解码器。在音频数据传递完毕后,进入空闲模式。
音频解码器可以包括但不限于以下功能模块:音频数据接收模块、缓冲区管理和数据同步模块以及音频数据解码和发送模块。各个功能模块的具体作用如下:
(1)音频数据接收模块(相当于上述获取模块和存储模块)负责接收来自于应用处理器的音频数据并保存至缓冲区;
(2)缓冲区管理和数据同步模块(相当于上述唤醒模块)负责管理低功耗模式下的缓冲区以及实现与应用处理器之间的同步;
(3)音频数据解码和发送模块(相当于上述第一解码模块和第二解码模块)负责对已经接收到的音频数据进行解码处理并将解码后的音频数据发送至音频Codec。
从以上的描述中,可以看出,上述实施例实现了如下技术效果(需要说明的是这些效果是某些优选实施例可以达到的效果):采用本发明实施例所提供的技术方案,将功耗较高的应用处理器每一次读取的音频数据(大约2s)发送至功耗较低的音频解码器,然后应用处理器进入休眠状态。音频解码器在接收到来自于应用处理器的音频数据后,每次对固定大小(大约20ms)的音频数据进行解码处理,并将解码后的音频数据发送至音频Codec,直至应用处理器发送过来的音频数据中大于预设阈值的部分音频数据已经解码完毕,此时唤醒应用处理器。应用处理器再次读取音频数据(大约2s),并将读取的音频数据发送至音频解码器,然后应用处理器再次进入休眠状态,如此反复执行下去,由此通过应用处理器间歇性地进入休眠状态,可以有效降低移动终端的总功耗,提高移动终端的电池续航能力。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。