一种音频播放装置、方法及一种数字电视芯片转让专利

申请号 : CN200810226099.1

文献号 : CN101404741B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张辉王西强吕悦川张岩曹晋宇胡伟王洪仁

申请人 : 北京创毅视讯科技有限公司

摘要 :

本发明提供了一种移动多媒体广播系统的音频播放方法,包括:获取解码后的音频数据;将音频数据地址指针指向解码后音频数据的当前缓存地址;在音频播放过程中,比较所述音频数据地址指针和播放指针,并依据比较结果播放音频数据或停止播放音频数据。本发明针对移动多媒体广播终端芯片上的操作系统功能较弱且资源有限的特点,通过比较音频数据地址指针和播放指针来控制音频数据的播放,实现方法简单,实现代码短小,无需增加软硬件设备和驱动支持,占用资源少,可方便地集成在移动终端芯片中;本发明还在移动终端进行频道切换时,通过播放指针的状态重置和指向重置,实现快速音频切换。

权利要求 :

1.一种移动多媒体广播系统的音频播放装置,其特征在于,包括:初始化模块,用于接收音频播放命令,将音频数据地址指针和播放指针初始化至同一缓存起始地址,并设置所述播放指针为不可用状态,初始化音频解码设备和音频播放设备;

音频数据获取模块,用于获取解码后的音频数据;

音频数据指针更新模块,用于将音频数据地址指针指向解码后音频数据的当前缓存地址;

音频数据播放模块,包括:

存储量计算子模块,用于在音频播放过程中,比较所述音频数据地址指针和播放指针,获得所述缓存中音频数据的存储量;

判断子模块,用于判断所述音频数据的存储量是否满足播放阈值,若是,则启动播放子模块;若否,则启动停止子模块;

播放子模块,用于设置所述播放指针为可用状态,依据所述播放指针的状态读取并播放所述缓存中的音频数据,并更新所述播放指针;

停止子模块,用于设置所述播放指针为不可用状态,并依据所述播放指针的状态停止播放音频数据;

所述音频播放装置还用于在音频播放过程中,当用户需要进行频道切换时,置播放指针为不可用状态,清空音频压缩数据消息队列,并重置播放指针,使其与音频数据地址指针指向所要播放的音频数据的缓存的同一起始位置即可。

2.根据权利要求1所述的装置,其特征在于,还包括音频数据写入模块,所述音频数据写入模块进一步包括:顺序写入子模块,用于将解码后的音频数据从所述缓存低地址位到高地址位依次写入;

地址翻转写入子模块,用于当所述解码后的音频数据写入到达所述缓存最高地址位,则跳转到最低地址位继续写入。

3.根据权利要求2所述的装置,其特征在于,所述播放子模块进一步包括:顺序播放单元,用于从所述缓存低地址位到高地址位依次读取并播放所述解码后的音频数据;

地址翻转播放单元,用于当播放到达所述缓存最高地址位,则跳转到最低地址位继续读取并播放所述解码后的音频数据。

4.根据权利要求1所述的装置,其特征在于,所述播放阈值为N倍的每采样间隔的采样数据量,所述每采样间隔的采样数据量为采样间隔与单位时间的音频数据采样率和采样精度的乘积。

5.一种移动多媒体广播系统的音频播放方法,其特征在于,包括以下步骤:接收音频播放命令,将音频数据地址指针和播放指针初始化至同一缓存起始地址,并设置所述播放指针为不可用状态,初始化音频解码设备和音频播放设备;

获取解码后的音频数据;

将音频数据地址指针指向解码后音频数据的当前缓存地址;

比较所述音频数据地址指针和播放指针,获得所述缓存中音频数据的存储量;

判断所述音频数据的存储量是否满足播放阈值,若是,则设置所述播放指针为可用状态,依据所述播放指针的状态读取并播放所述缓存中的音频数据,并更新所述播放指针;若否,则设置所述播放指针为不可用状态,并依据所述播放指针的状态停止播放音频数据;

在上述音频播放过程中,当用户需要进行频道切换时,置播放指针为不可用状态,清空音频压缩数据消息队列,并重置播放指针,使其与音频数据地址指针指向所要播放的音频数据的缓存的同一起始位置即可。

6.根据权利要求5所述的方法,其特征在于,在所述将音频数据地址指针指向解码后音频数据的当前缓存地址之前,还包括:将解码后的音频数据从所述缓存低地址位到高地址位依次写入;

当所述解码后的音频数据写入到达所述缓存最高地址位,则跳转到最低地址位继续写入。

7.根据权利要求6所述的方法,其特征在于,所述比较指针获得所述缓存中音频数据的存储量的步骤进一步包括:当音频数据地址指针所指地址位高于播放指针所指地址位时,音频数据写地址高于音频数据读地址,所述缓存中音频数据的存储量为音频数据写地址与音频数据读地址的差;

当音频数据地址指针所指地址位低于播放指针所指地址位时,音频数据写地址低于音频数据读地址,所述缓存中音频数据的存储量为音频数据写地址与音频数据读地址的差与所述缓存的缓存容量的和;

当音频数据地址指针所指地址位与播放指针所指地址位相同时,音频数据写地址等于读地址,所述缓存中音频数据的存储量为0。

8.根据权利要求7所述的方法,其特征在于,所述读取并播放缓存中的音频数据包括以下步骤:从所述缓存低地址位到高地址位依次读取并播放所述解码后的音频数据;

当播放到达所述缓存最高地址位,则跳转到最低地址位继续读取并播放所述解码后的音频数据。

9.根据权利要求5所述的方法,其特征在于,所述播放阈值为N倍的每采样间隔的采样数据量,所述每采样间隔的采样数据量为采样间隔与单位时间的音频数据采样率和采样精度的乘积。

10.一种数字电视芯片,其特征在于,所述芯片包括音频播放装置,所述音频播放装置包括:初始化模块,用于接收音频播放命令,将音频数据地址指针和播放指针初始化至同一缓存起始地址,并设置所述播放指针为不可用状态,初始化音频解码设备和音频播放设备;

音频数据获取模块,用于获取解码后的音频数据;

音频数据指针更新模块,用于将音频数据地址指针指向解码后音频数据的当前缓存地址;

音频数据播放模块,包括:

存储量计算子模块,用于在音频播放过程中,比较所述音频数据地址指针和播放指针,获得所述缓存中音频数据的存储量;

判断子模块,用于判断所述音频数据的存储量是否满足播放阈值,若是,则启动播放子模块;若否,则启动停止子模块;

播放子模块,用于设置所述播放指针为可用状态,依据所述播放指针的状态读取并播放所述缓存中的音频数据,并更新所述播放指针;

停止子模块,用于设置所述播放指针为不可用状态,并依据所述播放指针的状态停止播放音频数据;

所述音频播放装置还用于在音频播放过程中,当用户需要进行频道切换时,置播放指针为不可用状态,清空音频压缩数据消息队列,并重置播放指针,使其与音频数据地址指针指向所要播放的音频数据的缓存的同一起始位置即可。

11.根据权利要求10所述的数字电视芯片,其特征在于,所述音频播放装置还包括音频数据写入模块,所述音频数据写入模块进一步包括:顺序写入子模块,用于将解码后的音频数据从所述缓存低地址位到高地址位依次写入;

地址翻转写入子模块,用于当所述解码后的音频数据写入到达所述缓存最高地址位,则跳转到最低地址位继续写入。

12.根据权利要求11所述的数字电视芯片,其特征在于,所述播放子模块进一步包括:顺序播放单元,用于从所述缓存低地址位到高地址位依次读取并播放所述解码后的音频数据;

地址翻转播放单元,用于当播放到达所述缓存最高地址位,则跳转到最低地址位继续读取并播放所述解码后的音频数据。

说明书 :

一种音频播放装置、方法及一种数字电视芯片

技术领域

[0001] 本发明涉及移动多媒体广播技术领域,特别是涉及一种移动多媒体广播系统的音频播放装置和方法,以及一种提供移动多媒体广播接收的数字电视芯片。 背景技术
[0002] 移动多媒体广播是新兴的一种多媒体播放技术,近年来,这种技术和标准发展迅速,例如欧洲的数字视频广播手持式接收(DVB-H,Digital VideoBroadcast Handheld)、美国的媒体单一前向链路(MediaFLO,Media ForwardLink Only)和中国的移动多媒体广播系统(CMMB,China Mobile MultimediaBroadcast)等,为其终端用户提供许多服务内容,如广告、天气预报、新闻、体育节目、综艺、多媒体广播剧、电影等节目,用户可以根据自己的爱好选择不同的业务。
[0003] 使用移动多媒体广播业务的用户可以通过手持的终端,在高速移动的情况下,用移动终端观看电视。用户接收到节目单,可以选择自己有权利收看的频道,接收选择频道的多媒体数据,从而实现在移动终端上看自己选择的电视节目。但是,移动终端的播放系统在播放节目时,需要进行音频和视频的解码、播放以及同步等复杂处理,对处理器的性能要求较高。对于音频播放来说,目前,主流的嵌入式操作系统如Win CE,Symbian和Linux平台上有丰富的多媒体软硬件和驱动的支持,在此类操作系统上实现移动数字电视广播的音频播放主要是对提供的基于该操作系统的音频播放引擎相关的应用程序编程接口(API,Application Programming Interface)进行开发。其优点是对于用户来说使用非常方便,但缺点也比较明显,如因需要较多的软硬件和驱动支持而导致系统比较庞大和复杂,占用资源较多,无法集成在一些功能较弱的嵌入式操作系统中。比如移动多媒体广播终端芯片上的操作系统,这类 操作系统因要考虑到移动设备终端的功耗等因素,处理器的能力相对有限,所以功能较弱,且资源有限;此外,目前流行的多媒体播放引擎没有开放内部结构,不能对其进行修改以适应数字电视广播终端用户在播放节目时快速切换频道,以观看和收听不同节目的需要。
[0004] 总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够以较少的资源占用,满足在功能较弱的嵌入式操作系统上播放移动多媒体广播系统的音频和移动多媒体广播系统在应用中进行频道切换时快速音频切换的需求。
[0005] 发明内容
[0006] 本发明所要解决的技术问题是提供一种移动多媒体广播系统的音频播放装置和方法,能够以较少的资源占用,满足在功能较弱的嵌入式操作系统上播放移动多媒体广播系统的音频和移动多媒体广播系统在应用中进行频道切换时快速音频切换的需求。 [0007] 本发明的另一个目的是提供一种移动多媒体广播终端的数字电视芯片,以实现本发明在移动终端的具体应用。
[0008] 为了解决上述问题,本发明实施例提供了一种移动多媒体广播系统的音频播放装置,包括:
[0009] 初始化模块,用于接收音频播放命令,将音频数据地址指针和播放指针初始化至同一缓存起始地址,并设置所述播放指针为不可用状态,初始化音频解码设备和音频播放设备;
[0010] 音频数据获取模块,用于获取解码后的音频数据;
[0011] 音频数据指针更新模块,用于将音频数据地址指针指向解码后音频数据的当前缓存地址;
[0012] 音频数据播放模块,包括:
[0013] 存储量计算子模块,用于在音频播放过程中,比较所述音频数据地址指针和播放指针,获得所述缓存中音频数据的存储量;
[0014] 判断子模块,用于判断所述音频数据的存储量是否满足播放阈值,若 是,则启动播放子模块;若否,则启动停止子模块;
[0015] 播放子模块,用于设置所述播放指针为可用状态,依据所述播放指针的状态读取并播放所述缓存中的音频数据,并更新所述播放指针;
[0016] 停止子模块,用于设置所述播放指针为不可用状态,并依据所述播放指针的状态停止播放音频数据;
[0017] 所述音频播放装置还用于在音频播放过程中,当用户需要进行频道切换时,置播放指针为不可用状态,清空音频压缩数据消息队列,并重置播放指针,使其与音频数据地址指针指向所要播放的音频数据的缓存的同一起始位置即可。
[0018] 优选的,所述音频播放装置还包括音频数据写入模块,所述音频数据写入模块进一步包括:
[0019] 顺序写入子模块,用于将解码后的音频数据从所述缓存低地址位到高地址位依次写入;
[0020] 地址翻转写入子模块,用于当所述解码后的音频数据写入到达所述缓存最高地址位,则跳转到最低地址位继续写入。
[0021] 优选的,所述播放子模块进一步包括:
[0022] 顺序播放单元,用于从所述缓存低地址位到高地址位依次读取并播放所述解码后的音频数据;
[0023] 地址翻转播放单元,用于当播放到达所述缓存最高地址位,则跳转到最低地址位继续读取并播放所述解码后的音频数据。
[0024] 优选的,所述播放阈值为N倍的每采样间隔的采样数据量,所述每采样间隔的采样数据量为采样间隔与单位时间的音频数据采样率和采样精度的乘积。
[0025] 本发明实施例还提供了一种移动多媒体广播系统的音频播放方法,包括以下步骤:
[0026] 接收音频播放命令,将音频数据地址指针和播放指针初始化至同一缓存起始地址,并设置所述播放指针为不可用状态,初始化音频解码设备和音频播放设备; [0027] 获取解码后的音频数据;
[0028] 将音频数据地址指针指向解码后音频数据的当前缓存地址;
[0029] 比较所述音频数据地址指针和播放指针,获得所述缓存中音频数据的存储量; [0030] 判断所述音频数据的存储量是否满足播放阈值,若是,则设置所述播放指针为可用状态,依据所述播放指针的状态读取并播放所述缓存中的音频数据,并更新所述播放指针;若否,则设置所述播放指针为不可用状态,并依据所述播放指针的状态停止播放音频数据;
[0031] 在上述音频播放过程中,当用户需要进行频道切换时,置播放指针为不可用状态,清空音频压缩数据消息队列,并重置播放指针,使其与音频数据地址指针指向所要播放的音频数据的缓存的同一起始位置即可。
[0032] 优选的,在所述将音频数据地址指针指向解码后音频数据的当前缓存地址之前,还包括:
[0033] 将解码后的音频数据从所述缓存低地址位到高地址位依次写入; [0034] 当所述解码后的音频数据写入到达所述缓存最高地址位,则跳转到最低地址位继续写入。
[0035] 优选的,所述比较指针获得所述缓存中音频数据的存储量的步骤进一步包括: [0036] 当音频数据地址指针所指地址位高于播放指针所指地址位时,音频数据写地址高于音频数据读地址,所述缓存中音频数据的存储量为音频数据写地址与音频数据读地址的差;
[0037] 当音频数据地址指针所指地址位低于播放指针所指地址位时,音频数据写地址低于音频数据读地址,所述缓存中音频数据的存储量为音频数据写地址与音频数据读地址的差与所述缓存的缓存容量的和;
[0038] 当音频数据地址指针所指地址位与播放指针所指地址位相同时,音频数据写地址等于读地址,所述缓存中音频数据的存储量为0。
[0039] 优选的,所述读取并播放缓存中的音频数据包括以下步骤:
[0040] 从所述缓存低地址位到高地址位依次读取并播放所述解码后的音频数据; [0041] 当播放到达所述缓存最高地址位,则跳转到最低地址位继续读取并播放所述解码后的音频数据。
[0042] 优选的,所述播放阈值为N倍的每采样间隔的采样数据量,所述每采样间隔的采样数据量为采样间隔与单位时间的音频数据采样率和采样精度的乘积。
[0043] 本发明实施例还提供了一种数字电视芯片,所述芯片包括音频播放装置,所述音频播放装置包括:
[0044] 初始化模块,用于接收音频播放命令,将音频数据地址指针和播放指针初始化至同一缓存起始地址,并设置所述播放指针为不可用状态,初始化音频解码设备和音频播放设备;
[0045] 音频数据获取模块,用于获取解码后的音频数据;
[0046] 音频数据指针更新模块,用于将音频数据地址指针指向解码后音频数据的当前缓存地址;
[0047] 音频数据播放模块,包括:
[0048] 存储量计算子模块,用于在音频播放过程中,比较所述音频数据地址指针和播放指针,获得所述缓存中音频数据的存储量;
[0049] 判断子模块,用于判断所述音频数据的存储量是否满足播放阈值,若是,则启动播放子模块;若否,则启动停止子模块;
[0050] 播放子模块,用于设置所述播放指针为可用状态,依据所述播放指针的状态读取并播放所述缓存中的音频数据,并更新所述播放指针;
[0051] 停止子模块,用于设置所述播放指针为不可用状态,并依据所述播放指针的状态停止播放音频数据;
[0052] 所述音频播放装置还用于在音频播放过程中,当用户需要进行频道切换时,置播放指针为不可用状态,清空音频压缩数据消息队列,并重置播放指针,使其与音频数据地址指针指向所要播放的音频数据的缓存的同一起始位置即可。
[0053] 优选的,所述音频播放装置还包括音频数据写入模块,所述音频数据写入模块进一步包括:
[0054] 顺序写入子模块,用于将解码后的音频数据从所述缓存低地址位到高地址位依次写入;
[0055] 地址翻转写入子模块,用于当所述解码后的音频数据写入到达所述缓存最高地址位,则跳转到最低地址位继续写入。
[0056] 优选的,所述播放子模块进一步包括:
[0057] 顺序播放单元,用于从所述缓存低地址位到高地址位依次读取并播放所述解码后的音频数据;
[0058] 地址翻转播放单元,用于当播放到达所述缓存最高地址位,则跳转到最低地址位继续读取并播放所述解码后的音频数据。
[0059] 与现有技术相比,本发明具有以下优点:
[0060] 首先,针对移动多媒体广播终端芯片上的操作系统功能较弱且资源有限的特点,本发明根据判断音频解码数据在缓存中的存储量是否满足播放阈值,来调整播放指针的可用和不可用状态,从而实现了由音频播放指针的状态来控制音频数据的播放。该方法实现简单,实现代码短小,无需增加软硬件设备和驱动支持,因此,占用资源也较少,可方便地集成在移动终端芯片的弱功能操作系统中。与现有对音频播放引擎的应用程序编程接口进行大量代码开发,从而实现移动终端的音频播放方式相比,本发明有效解决了该方法因需要较多的软硬件和驱动支持而导致系统比较庞大和复杂,代码量大,占用资源较多,无法集成在功能较弱的移动多媒体广播终端芯片的嵌入式操作系统中的问题;
[0061] 其次,本发明使用应用程序接口函数控制音频播放指针,在移动终端进行频道切换时,可通过播放指针的状态重置和指向重置,使其快速获得和播放目标音频数据,减少音频切换时间,满足频道切换时快速音频切换的要求。
[0062] 附图说明
[0063] 图1是本发明的一种移动多媒体广播系统的音频播放装置实施例的结构框图; [0064] 图2是本发明应用图1所示的装置实施例进行音频播放的步骤流程图; [0065] 图3是本发明的一种移动多媒体广播系统的音频播放方法实施例的步 骤流程图。

具体实施方式

[0066] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0067] 本发明实施例的核心构思之一在于,在音频播放过程中,通过音频数据地址指针和播放指针的比较,来调整播放指针的可用和不可用状态,从而实现根据音频播放指针的状态控制音频数据的播放。本发明实现方法简单,实现代码短小,无需增加软硬件设备和驱动支持,占用资源也较少,可方便地集成在移动终端芯片的功能较弱且资源有限的操作系统中;本发明还在移动终端进行频道切换时,通过播放指针的状态重置和指向重置,使其快速获得和播放目标音频数据,减少音频切换时间,满足频道切换时快速音频切换的要求。 [0068] 参考图1,示出了本发明的一种移动多媒体广播系统的音频播放装置实施例的结构框图,可以包括以下模块:
[0069] 音频数据获取模块101,用于获取解码后的音频数据;
[0070] 音频数据指针更新模块102,用于将音频数据地址指针指向解码后音频数据的当前缓存地址;
[0071] 音频数据播放模块103,用于在音频播放过程中,比较所述音频数据地址指针和播放指针,并依据比较结果播放音频数据或停止播放音频数据。
[0072] 优选的是,音频数据播放模块103还可以进一步包括:
[0073] 存储量计算子模块1031,用于比较所述音频数据地址指针和播放指针,获得所述缓存中音频数据的存储量;
[0074] 判断子模块1032,用于判断所述音频数据的存储量是否满足播放阈值,若是,则启动播放子模块;若否,则启动停止子模块;
[0075] 其中,所述播放阈值为N倍的每采样间隔的采样数据量,即采样间隔与单位时间的音频数据采样率和采样精度的乘积。
[0076] 播放子模块1033,用于设置所述播放指针为可用状态,依据所述播放指 针的状态读取并播放所述存储量的音频数据,并更新所述播放指针;
[0077] 停止子模块1034,用于设置所述播放指针为不可用状态,并依据所述播放指针的状态停止播放音频数据。
[0078] 优选的是,播放子模块1033还可以进一步包括:
[0079] 顺序播放单元10331,用于从所述缓存低地址位到高地址位依次播放所述解码后的音频数据;
[0080] 地址翻转播放单元10332,用于当播放到达所述缓存最高地址位,则跳转到最低地址位继续播放。
[0081] 优选的是,本实施例的装置还可以包括:
[0082] 初始化模块104,用于在所述获取解码后的音频数据之前,将音频数据地址指针和播放指针初始化至同一所述缓存起始地址,并设置所述播放指针为不可用状态,初始化音频解码设备和音频播放设备。
[0083] 优选的是,本实施例的装置还可以包括:
[0084] 音频数据写入模块105,该模块还可以进一步包括:
[0085] 顺序写入子模块1051,用于将解码后的音频数据从所述缓存低地址位到高地址位依次写入;
[0086] 地址翻转写入子模块1052,用于当所述解码后的音频数据写入到达所述缓存最高地址位,则跳转到最低地址位继续写入。
[0087] 参考图2,示出了本发明应用图1所示的装置实施例进行音频播放的步骤流程图,具体可以包括以下步骤:
[0088] 步骤201:接收到音频播放命令,初始化模块将音频数据地址指针和播放指针初始化至同一缓存起始地址,并设置播放指针为不可用状态,初始化音频解码设备和音频播放设备;
[0089] 在移动多媒体广播系统的接收终端,用户要收听收看节目时,首先启动播放命令,然后接收音视频数据,并通过终端芯片对接收的音视频数据进行处理和转换,从而实现音视频的播放和收听收看。对于音频播放来说,在接收到音频播放命令后,由初始化模块负责开启音频解码线程和音频播 放线程,将音频数据地址指针和播放指针初始化至同一缓存起始地址,并设置播放指针为不可用状态,对音频解码设备和音频播放设备进行初始化。 [0090] 本实施例使用IIS(Inter-IC Sound bus)设备以环形缓存(Ring Buffer)工作方式传输音频数据,并通过IIS的状态调整控制音频数据播放,本步骤初始化IIS指针和音频数据地址指针指向环形缓存的同一起始地址,并置IIS状态为不可用状态,同时,初始化音频解码设备如音频解码器,和音频播放设备如IIS设备。需要说明的是,本领域技术人员也可采用其它设备或缓存工作方式实现音频数据传输,本发明无需对此作出限制。 [0091] 步骤202:判断是否收到音频播放终止命令,如果是,则停止音频解码和播放;如果否,则循环执行下述音频解码和播放步骤;
[0092] 在音频播放过程中,如果接收到音频播放终止命令,则停止解码和播放音频数据;如果没有收到音频播放终止命令,则进行音频解码和播放。
[0093] 步骤203:音频数据获取模块获取解码后的音频数据;
[0094] 音频解码设备初始化后,从音频压缩数据消息队列中接收解复用模块发送的压缩音频数据消息,其中,音频压缩数据消息队列由解复用模块管理和维护。如果音频解码模块收到音频数据消息,从解复用模块获取解复用后的压缩音频数据并解码,音频数据获取模块则获取解码后的音频数据,执行步骤204;如果收不到音频数据消息,则在播放命令有效的情况下,音频解码模块一直等待音频数据消息。
[0095] 步骤204:音频数据写入模块将解码后的音频数据写入缓存;
[0096] 本实施例中,音频数据获取解码后的音频数据后,由音频数据写入模块写入所述环形缓存。在写入时,顺序写入子模块将解码后的音频数据从所述环形缓存的低地址位到高地址位依次顺序写入;当写入到达所述环形缓存的最高地址位时,地址翻转写入子模块跳转音频数据地址指针至环形缓存的最低地址位继续写入。
[0097] 步骤205:音频数据指针更新模块更新音频数据地址指针指向解码后音频数据的当前缓存地址;
[0098] 音频数据指针更新模块更新音频数据地址指针指向解码后音频数据在所 述环形缓存的当前地址。
[0099] 步骤206:音频数据播放模块的存储量计算子模块比较所述播放指针和更新后的音频数据地址指针,获得所述缓存中音频数据的存储量;
[0100] 本实施例中,音频播放模块的存储量计算子模块比较IIS指针和更新后的音频数据地址指针,进而获得环形缓存中音频数据的存储量。在进行指针比较时,如果音频数据地址指针所指地址位高于播放指针所指地址位,即音频数据写地址高于音频数据读地址,则存储量计算子模块通过计算音频数据写地址与音频数据读地址的差获得环形缓存中音频数据的存储量;如果音频数据地址指针所指地址位低于播放指针所指地址位,即音频数据写地址低于音频数据读地址,则存储量计算子模块通过计算音频数据写地址与音频数据读地址的差与所述缓存的缓存容量的和获得环形缓存中音频数据的存储量;如果音频数据地址指针所指地址位与播放指针所指地址位相同,即音频数据写地址等于读地址,则存储量计算子模块的同地址计算单元置环形缓存中音频数据的存储量为0。
[0101] 步骤207:音频播放模块的判断子模块判断所述音频数据的存储量是否满足播放阈值,若是,则启动播放子模块,执行步骤208;若否,则启动停止子模块,执行步骤209; [0102] 本步骤中的所述播放阈值为N倍的每采样间隔的采样数据量,即采样间隔与单位时间的音频数据采样率和采样精度的乘积。本实施例中,音频数据的采样率为48Kbyte/s,采样精度为每采样点2字节,采样时间间隔为50ms。为保证音频播放控制的精度,播放阈值须大于每采样间隔的采样数据量,设为每采样间隔的采样数据量的N倍,本实施例将N设为2,其计算如下:
[0103] 播放阈值=(48000×2×2×50)÷1000=19200字节。
[0104] 如果步骤206获得的音频数据的存储量达到并超过19200字节,则启动播放子模块,执行步骤208;如果音频数据的存储量没有达到19200字节,则启动停止子模块,执行步骤209。
[0105] 步骤208:音频播放模块的播放子模块设置所述播放指针为可用状态,依据所述播放指针的状态读取并播放所述存储量的音频数据,并更新所述播放指针,返回步骤202;
[0106] 在本实施例中,播放子模块设置IIS指针为可用状态,依据IIS指针的可用状态,顺序播放单元从环形缓存的低地址位到高地址位依次读取并播放解码后的音频数据;当播放到达环形缓存的最高地址位时,地址翻转播放单元跳转IIS指针到环形缓存的最低地址位继续读取并播放。
[0107] 步骤209:音频播放模块的停止子模块设置所述播放指针为不可用状态,并依据所述播放指针的状态停止播放音频数据,返回步骤202;
[0108] 停止子模块设置IIS指针为不可用状态,所述音频播放装置依据IIS指针的不可用状态停止播放音频数据,继续等待音频解码模块解码音频数据。
[0109] 在音频播放过程中,上述音频解码过程和音频播放过程并行执行。 [0110] 需要说明的是,本领域技术人员应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。其次,对于上述实施例中的某些步骤可以采用其他顺序或者同时进行,本发明并不受所描述的动作顺序的限制。 [0111] 参考图3,示出了本发明的一种移动多媒体广播系统的音频播放方法实施例的步骤流程图,可以包括以下步骤:
[0112] 步骤301:接收音频播放命令,将音频数据地址指针和播放指针初始化至同一缓存起始地址,并设置所述播放指针为不可用状态,初始化音频解码设备和音频播放设备; [0113] 本实施例使用IIS(Inter-IC Sound bus)设备以环形缓存(Ring Buffer)工作方式传输音频数据,并通过IIS的状态调整控制音频数据播放,本步骤接收音频播放命令,初始化IIS指针和音频数据地址指针指向环形缓存的同一起始地址,并置IIS状态为不可用状态,初始化音频解码设备和音频播放设备。
[0114] 需要说明的是,本领域技术人员也可采用其它设备或缓存工作方式实现音频数据传输,本发明无需对此作出限制。
[0115] 步骤302:判断是否收到音频播放终止命令,如果是,则停止音频解码和播放;如果否,则循环执行下述音频解码和播放步骤;
[0116] 步骤303:等待音频压缩数据消息队列中的音频数据消息,如果收到消息, 则执行步骤304;如果没有收到消息,则在播放命令有效的情况下,一直等待音频数据消息。 [0117] 等待音频压缩数据消息队列中由解复用模块发送的音频数据消息,所述音频压缩数据消息队列由解复用模块管理和维护。
[0118] 步骤304:获取音频数据并解码,将解码后的音频数据写入缓存; [0119] 本步骤中的音频数据为收到音频压缩数据消息队列中的音频数据消息后,从解复用模块获取的解复用后的压缩音频数据。将获取的压缩音频数据进行解码,并将解码后的音频数据写入环形缓存。在写入环形缓存时,从环形缓存的低地址位到高地址位依次顺序写入解码后的音频数据;当写入到达所述环形缓存的最高地址位时,跳转音频数据地址指针至环形缓存的最低地址位继续写入。
[0120] 步骤305:将所述音频数据地址指针指向解码后音频数据的当前缓存地址; [0121] 将所述音频数据地址指针指向解码后音频数据在所述环形缓存中的当前地址。 [0122] 步骤306:比较播放指针和更新后的音频数据地址指针,获得所述缓存中音频数据的存储量;
[0123] 本实施例比较IIS指针和更新后的音频数据地址指针,通过两者的差距获得环形缓存中音频数据的存储量。在进行指针比较时,如果音频数据地址指针所指地址位高于IIS指针所指地址位,即音频数据写地址高于音频数据读地址,则环形缓存中音频数据的存储量为音频数据写地址与音频数据读地址的差;如果音频数据地址指针所指地址位低于IIS指针所指地址位时,音频数据写地址低于音频数据读地址,则环形缓存中音频数据的存储量为音频数据写地址与音频数据读地址的差与所述缓存的缓存容量的和;如果音频数据地址指针所指地址位与IIS指针所指地址位相同时,音频数据写地址等于读地址,则环形缓存中音频数据的存储量为0。
[0124] 步骤307:判断所述音频数据的存储量是否满足播放阈值,若是,则执行步骤308;若否,则执行步骤309;
[0125] 所述播放阈值为N倍的每采样间隔的采样数据量,即采样间隔与单位时间的音频数据采样率和采样精度的乘积。
[0126] 本实施例中,播放阈值=(48000×2×2×50)÷1000=19200字节。其中,音频数据的采样率为48Kbyte/s,采样精度为每采样点2字节,采样时间间隔为50ms。为保证音频播放控制的精度,播放阈值须大于每采样间隔的采样数据量,设为每采样间隔的采样数据量的N倍,本实施例设N为2。
[0127] 如果步骤306获得的音频数据的存储量达到并超过19200字节,则执行步骤308;如果音频数据的存储量没有达到19200字节,则执行步骤309。
[0128] 步骤308:设置所述播放指针为可用状态,依据所述播放指针的状态读取并播放所述存储量的音频数据,并更新所述播放指针,返回步骤302;
[0129] 本步骤设置IIS指针为可用状态,并依据IIS指针的可用状态从环形缓存的低地址位到高地址位依次读取并播放解码后的音频数据;当播放到达环形缓存的最高地址位时,跳转IIS指针到环形缓存的最低地址位继续读取并播放。
[0130] 步骤309:设置所述播放指针为不可用状态,并依据所述播放指针的状态停止播放音频数据,返回步骤302;
[0131] 设置IIS指针为不可用状态,并依据IIS指针的不可用状态停止播放音频数据,继续等待解码后的音频数据。
[0132] 在音频播放过程中,上述音频解码步骤和音频播放步骤并行执行。 [0133] 由于图3所示的实施例可以对应适用于图2所示的实施例中,所以描述较为简略,未详尽之处可以参见本说明书前面相应部分的描述。
[0134] 需要说明的是,对于上述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0135] 根据本发明的实施例,还涉及一种数字电视芯片,在该数字电视芯片中,包括上面所描述的音频播放装置。由于音频播放装置已经做了详细的 描述,在此,包括该音频播放装置的数字电视芯片不再赘述。
[0136] 本发明实施例提供的数字电视芯片可广泛用于移动多媒体广播终端,方便用户收听收看移动多媒体节目,如可作为接收中国移动多媒体广播CMMB的终端数字电视芯片,为用户提供各种CMMB的移动多媒体广播业务。
[0137] 此外,本发明为满足移动终端用户在应用中进行频道切换时快速音频切换的需求,提供了应用程序接口函数对播放指针进行控制。在音频播放过程中,当用户需要进行频道切换时,只须置播放指针为不可用状态,清空音频压缩数据消息队列,并重置播放指针,使其与音频数据地址指针指向所要播放的音频数据的缓存的同一起始位置即可。音频切换时间为解复用帧时间加上初始解码时间,若以音频解码器器处理5帧音频数据的时间长度为初始解码时间,则本发明的音频切换总时间不超过1秒。
[0138] 以上对本发明所提供的一种移动多媒体广播系统的音频播放装置和方法进行了详细介绍,本文中应用了具体个例对本发明的核心构思及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。