媒体播放器和媒体文件的播放方法

文档序号:7957775阅读:273来源:国知局
专利名称:媒体播放器和媒体文件的播放方法
技术领域
本申请涉及一种媒体播放器和媒体文件的播放方法。
背景技术
近年来移动通信业务及应用日益丰富,尤其是多媒体技术已广泛应用到移动终端设备(如,手机)中。随着3G通信的发展和移动终端技术的突破,如芯片的高度集成、处理器能力提高、显示屏屏幕尺寸增大及能耗降低,多媒体应用进一步广泛和深入。在移动终端设备上,包括设备生产商、互联网企业及其他相关企业都推出自己的媒体播放软件(如,音视频播放软件),给用户带来了全新的用户体验。目前,在移动终端设备上往往存在多个音视频解码器。以H.264视频解码器为例,移动终端设备上往往有一个或多个软件解码器,而且还可能存在硬件的H.264视频解码器。目前的媒体播放器在操作时根据播放器自身的缺省配置选用一个对应的H.264解码器进行解码操作,如播放器默认设置为优先选择硬件解码器,则当H.264硬解码器存在时,播放器中分离模块中输出的H.264码流就会传送给H.264硬解码器,若播放器默认设置为优先选择软件解码器,则分离模块中输出的H.264码流就会传送给系统中的缺省加载的H.264软件解码器。在现有技术中,播放器根据默认配置选用了某个解码器,则会使用该解码器来对对应的媒体文件(如,音视频流)进行解码。如果因为解码器本身的解码限制,以某个H.264视频解码器为例,如因为视频流的分辨率大于该解码器支持的分辨率,或该解码器不能支持某个profile或level,播放的结果则是用户无法观看视频或者出现播放错误提示。在某些情况下,实际上,播放器如果选用另外一个解码器时,该视频流能够正常播放。这样,使得原本对该视频流具备播放能力的播放器无法正常播放,严重影响了用户的观看效果。还有一种情况是,如果在播放器中有两个或多个解码器都能支持某个视频流的解码,但因为播放器仅仅选用缺省的解码器,而这样则可能会在有限的硬件资源情况下造成播放时音视频不同步,或者播放耗电太多,使得视频不能完整观看。

发明内容
根据本申请的一方面,提供了一种媒体播放器,包括:分离单元,用于获取由媒体文件分离出的音频流和视频流的信息;评估单元,用于根据所述分离单元获取的信息,从多个解码器中选择对所述媒体文件具备解码能力的解码器;以及解码单元,用于利用所选择的解码器对所述音频流和视频流进行解码。根据本申请的另一方面,提供了一种媒体文件的播放方法,包括:获取由媒体文件分离出的音频流和视频流的信息;根据所获取的信息从多个解码器中选择对所述媒体文件具备解码能力的解码器;以及利用所选择的解码器对所述音频流和视频流进行解码。利用本申请提供的方法和装置,一方面,能够适当地选择解码器,以对媒体文件进行解码,并且在解码失败时,能够重新选择解码器进行解码;另一方面,可根据当前系统资源使用状况选用最优的解码器。


图1示出了根据本申请一个实施方式的媒体播放器的示意图;图2示出了根据本申请另一个实施方式的媒体播放器的示意图;图3示出了根据本申请又一个实施方式的媒体播放器的示意图;图4示出了根据本申请再一个实施方式的媒体播放器的示意图;图5示出了根据本申请一个实施方式的媒体文件播放方法的流程图;图6示出了根据本申请另一个实施方式的媒体文件播放方法的流程图;以及图7示出了根据本申请又一个实施方式的媒体文件播放方法的流程图。
具体实施例方式下面参照附图对根据本申请的实施方式进行详细描述。图1示出了根据本申请一个实施方式的媒体播放器100的示意图。如图1所示,媒体播放器100包括分离单元101、解码单元102以及评估单元103。在操作中,媒体播放器100能够从多个解码器(未示出)中选出至少一个解码器,从而对媒体文件进行解码。上述多个解码器既可包括软件解码器,也可包括硬件解码器。具体地,当用户希望在媒体播放器100上播放媒体文件(例如,音视频文件)时,分离单元101首先将读取到的该媒体文件分离为单独的音频流和视频流,并将音频流和视频流发送至解码单元102,以用于之后的解码。而且,分离单元101还获取音频流和视频流的信息。例如,音频流的信息可包括采样率、码率等,视频流的信息可包括视频类型、分辨率、帧率和码率等。分离单元101将所获取的音频流和视频流的信息发送至评估单元103。评估单元103在接收到音频流和视频流的信息后,根据这些信息,从多个解码器中选择对该媒体文件具备解码能力的解码器,并通知解码单元102。解码单元102则利用所选择的解码器对从分离单元101接收到得音频流和视频流进行解码,并将解码后的数据提供给播放单元(未示出)进行显示和播放。在图1及以下的图2-4中,实线表示数据流的传输,虚线表示控制流及相关信息的传输。图2示出了根据本申请另一个实施方式的媒体播放器100’的示意图。如图2所示,媒体播放器100’与图1所示的媒体播放器100的区别在于,其还可包括信息处理单元104。在信息处理单元104或媒体播放器100’的存储单元(未示出)中,预设有解码器能力信息表,其中记录了每个解码器的解码能力,即,与每个解码器相关的音频流和视频流的信息和能否对该类音频流和视频流成功解码的相应解码状态信息。在操作中,分离单元101将音频流和视频流的信息发送给信息处理单元104,解码单元102将所利用的解码器的标识发送给信息处理单元104。并且,解码单元102在利用所选出的解码器对音频流和视频流进行解码时,根据解码是否成功生成解码状态信息,并将该状态信息发送给信息处理单元104。信息处理单元104利用从分离单元101接收的音频流和视频流的信息以及从解码单元102接收的解码器的标识和是否解码成功的状态信息,更新解码器能力信息表。也就是说,每进行一次播放操作,信息处理单元104就对解码器能力信息表进行一次更新,即,进行一次训练,从而更详细地掌握该解码器的解码能力。当评估单元103从分离单元101接收到音频流和视频流的信息后,通过查询由信息处理单元104维护的解码器能力信息表,以从多个解码器中选择对该媒体文件具备解码能力的解码器。根据本申请的一个实施方式,对应一个解码器,解码器自身会给出其解码能力,该解码能力预先记录在码器能力信息表中。以一个H.264视频解码器为例,它可能给出的能力信息包括解码流类型为"video/x-h264",视频流的宽度范围为[16,1096],高度范围为[16,1096],及帧速率范围为[1,30]。有时,解码器给出的能力信息并不充分,存在这样一种情况,依据能力信息,当前解码器能对某个视频流进行解码,但实际上该解码器却不能对该视频流进行正常解码的情况。例如,从能力信息可以判断该H.264视频解码器能对
H.264进行解码,但实际上该解码器仅仅支持baseline这一档次的视频解码,如果从分离单元101输出的视频流类型为main profile档次的数据,则该解码器不能进行正常解码。根据本申请的另一实施方式,还存在这样一种情况,即,由于媒体文件的信息不足够详细,使得分离单元101给出的音频流和视频流的信息不足够详细。这样,所选出的解码器可能在某些时候能够对音频流和视频流进行正常解码,而在某些时候不能正常解码。如
H.264解码器能支持main profile的视频流解压缩,但该解码器支持的level层次有限,当分离单元101给出的信息仅仅表明是H.264main profile的档次,则在某些情况能正常解码,在某些情况则提示错误信息,不能正常解码。如果解码单元102生成的状态信息表明音频流或视频流解码失败,则信息处理单元104不仅根据该信息更新解码器能力信息表,还会通知评估单元103重新查询更新后的解码器能力信息表,评估单元103通过重新查询,重新选择对该媒体文件具备解码能力的解码器。而且,通过信息处理单元104对解码器能力信息表的更新,达到了训练的目的,从而在下次播放同样类型的媒体文件时,评估单元103能根据不断更新后的解码器能力信息表选择有对应解码能力的解码器。也就是说,当媒体播放器在播放任何一个媒体文件时,实际就是对解码器能力信息表的一个训练过程,当媒体播放器播放的媒体文件越多,则训练样本的基数越大,由信息处理单元104中维护的解码器能力信息表则越详细。这样对解码器能力有更充分的认识后,评估单元103就能在多个解码器中更有效地选择有对应解码能力的解码器。根据本申请的另一实施方式,当评估单元103在查询解码器能力信息表时发现有至少两个解码器具备对该媒体文件进行解码的能力时,评估单元103将根据当前资源使用情况选择解码器。具体而言,在信息处理单元104或媒体播放器100’的存储单元(未示出)中,还预设有解码器资源占用表,其中记录了每个解码器的资源占用情况,即,与每个解码器分别相关的首频流和视频流的息和相应的资源占用情况。在操作中,信息处理单元104利用从分离单元101接收的音频流和视频流的信息以及在解码单元102利用所选出的解码器进行解码时该解码器的系统资源占用情况(如,CPU占用率、占用内存和电量消耗等),更新解码器资源占用表。也就是说,每进行一次播放操作,信息处理单元104就对解码器资源占用表进行一次更新,S卩,进行一次训练,从而更详细地掌握该解码器的资源占用情况。
当评估单元103在查询解码器能力信息表时发现有至少两个解码器具备对该媒体文件进行解码的能力时,通过查询由信息处理单元104维护的解码器资源占用表,并结合当前资源使用情况(如,当前CPU占用率、当前占用内存和当前电量消耗等),以从具备对所述媒体文件进行解码的能力的至少两个解码器中选择解码器,从而尽量避免由于系统资源不足而导致媒体文件无法正常播放的情况出现。图3示出了根据本申请另一个实施方式的媒体播放器100”的示意图。如图3所示,与图2所示的媒体播放器100’的区别在于,其还可包括后处理单元105。解码单元102在对音频流和视频流进行解码操作时,实时地将解码后的数据发送至后处理单元105,后处理单元105对解码后的音频流和视频流进行同步操作,并将音频流和视频流的同步状况发送至信息处理单元104,例如该解码器解码后音频流和视频流是否同步。信息处理单元104根据从后处理单元105接收的音频流和视频流的同步状况,更新解码器资源占用表。也就是说,音频流和视频流的同步状况也是解码器资源占用表中所记录的事项,其也可作为评估单元103在选择解码器时所考虑的条件之一。根据本申请的另一实施方式,评估单元103根据解码器资源占用表和当前资源使用情况对具备对媒体文件进行解码的能力的至少两个解码器进行加权评估。根据一个实施例,加权评估的计算公式为:
权利要求
1.种媒体播放器,包括: 分离单元,用于获取由媒体文件分离出的音频流和视频流的信息; 评估单元,用于根据所述分离单元获取的信息,从多个解码器中选择对所述媒体文件具备解码能力的解码器;以及 解码单元,用于利用所选择的解码器对所述音频流和视频流进行解码。
2.权利要求1所述的媒体播放器,还包括: 信息处理单元,用于维护解码器能力信息表,其中所述信息处理单元从所述分离单元接收音频流和视频流的信息,从所述解码单元接收所利用的解码器的标识和是否解码成功的状态信息,以更新所述解码器能力信息表, 其中所述评估单元通过查询所述解码器能力信息表,从所述多个解码器中选择对所述媒体文件具备解码能力的解码器。
3.权利要求2所述的媒体播放器,其中,如果所述状态信息表明所述音频流或视频流解码失败,则所述信息处理单元更新所述解码器能力信息表,并且所述评估单元通过重新查询更新后的解码器能力信息表,选择对所述媒体文件具备解码能力的解码器。
4.权利要求1至3中任一项所述的媒体播放器,其中,当有至少两个解码器具备对所述媒体文件进行解码的能力时,所述评估单元根据当前资源使用情况选择解码器。
5.权利要求4所述的媒体播放器,其中所述信息处理单元还用于维护解码器资源占用表,其中,所述信息处理单元 根据从所述分离单元接收的音频流和视频流的信息以及所述解码单元所利用的解码器在对音频流和视频流进行解码时所占用的资源情况,更新所述解码器资源占用表,其中所述评估单元通过查询所述解码器资源占用表,从具备对所述媒体文件进行解码的能力的至少两个解码器中选择解码器。
6.权利要求5所述的媒体播放器,其中,所述评估单元根据所述解码器资源占用表和所述当前资源使用情况对具备对所述媒体文件进行解码的能力的至少两个解码器进行加权评估。
7.权利要求5或6所述的媒体播放器,还包括: 后处理单元,用于对解码后的音频流和视频流进行同步操作,并将音频流和视频流的同步状况发送至所述信息处理单元,所述信息处理单元根据从所述后处理单元接收的音频流和视频流的同步状况,更新所述解码器资源占用表。
8.权利要求6或7所述的媒体播放器,其中所述评估单元根据所述解码器资源占用表和所述当前资源使用情况对所述至少两个解码器进行加权评估的计算公式为:
9.权利要求8所述的媒体播放器,其中 所述加权项包括:所述媒体播放器的CPU占用率加权项、内存占用率加权项、剩余电量加权项以及音频流和视频流同步加权项中的一个或多个。
10.种媒体文件的播放方法,包括: 获取由媒体文件分离出的音频流和视频流的信息; 根据所获取的信息从多个解码器中选择对所述媒体文件具备解码能力的解码器;以及 利用所选择的解码器对所述音频流和视频流进行解码。
11.权利要求10所述的方法,其中,根据所获取的信息从多个解码器中选择对所述媒体文件具备解码能力的解码器的步骤包括: 查询解码器能力信息表,所述解码器能力信息表记录了与所述多个解码器中的每个分别相关的音频流和视频流的信息和能否解码成功的相应解码状态信息。
12.权利要求11所述的方法,还包括: 检测利用所选择的解码器是否对所述音频流和视频流成功解码;以及 根据检测结果,更新所述解码器能力信息表。
13.权利要求12所述的方法,其中,如果所述检测结果表明对所述音频流或视频流的解码失败,则在更新所述解码器能力信息表之后,重新查询更新后的解码器能力信息表,从而重新选择对所述媒体文件具备解码能力的解码器。
14.权利要求11至 13中任一项所述的方法,其中,根据所获取的信息从多个解码器中选择对所述媒体文件具备解码能力的解码器的步骤还包括: 通过查询所述解码器能力信息表,根据所获取的信息,判断是否有至少两个解码器具备对所述媒体文件进行解码的能力,其中如果有至少两个解码器具备对所述媒体文件进行解码的能力,则根据当前资源使用情况选择解码器。
15.权利要求14所述的方法,其中,根据当前资源使用情况选择解码器的步骤包括: 查询解码器资源占用表,所述解码器资源占用表记录了与所述多个解码器中的每个分别相关的首频流和视频流的息和相应的资源占用情况。
16.权利要求15所述的方法,还包括: 根据所选择的解码器对所述音频流和视频流进行解码时的资源占用情况,更新所述解码器资源占用表。
17.权利要求15或16所述的方法,其中,根据当前资源使用情况选择解码器的步骤还包括: 根据所述解码器资源占用表和所述当前资源使用情况,对具备对所述媒体文件进行解码的能力的至少两个解码器进行加权评估。
18.权利要求15至17中任一项所述的方法,还包括: 对解码后的音频流和视频流进行同步操作,并根据音频流和视频流的同步状况,更新所述解码器资源占用表。
19.权利要求17或18所述的方法,其中对具备对所述媒体文件进行解码的能力的至少两个解码器进行加权评估的计算公式为: κ =Ix 7=1 其中,K为对于每个解码器的加权评估结果,η为正整数,表示需要在加权评估中考虑的加权项数,Kj为每项加权项的加权系数,Wj为第j项加权项的评估值;在计算出所述至少两个解码器中的每个的加权评估结果后,选择加权评估结果最大的解码器用于对所述音频流和视频流进行解码。
20.权利要求19所述的方法,其中 所述加权项包括=CPU占用率加权项、内存占用率加权项、剩余电量加权项以及音频流和视频流同步加权项中的一个或 多个。
全文摘要
本申请公开了一种媒体播放器,包括分离单元,用于获取由媒体文件分离出的音频流和视频流的信息;评估单元,用于根据所述分离单元获取的信息,从多个解码器中选择对所述媒体文件具备解码能力的解码器;以及解码单元,用于利用所选择的解码器对所述音频流和视频流进行解码。
文档编号H04N21/434GK103096163SQ20111033947
公开日2013年5月8日 申请日期2011年11月1日 优先权日2011年11月1日
发明者张世俊, 黄晓伟, 郭勐, 张俭 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1