著录项信息
专利名称 | 一种视频播放方法及播放器 |
申请号 | CN201410131609.2 | 申请日期 | 2014-04-02 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-06-04 | 公开/公告号 | CN103841389A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04N9/64 | IPC分类号 | H;0;4;N;9;/;6;4;;;H;0;4;N;1;9;/;1;8;6查看分类表>
|
申请人 | 北京奇艺世纪科技有限公司 | 申请人地址 | 北京市海淀区北一街2号鸿城拓展大厦10、11层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京奇艺世纪科技有限公司 | 当前权利人 | 北京奇艺世纪科技有限公司 |
发明人 | 余续刚;马跃;郁晶源 |
代理机构 | 北京柏杉松知识产权代理事务所(普通合伙) | 代理人 | 马敬;项京 |
摘要
本发明实施例公开了一种视频播放方法及播放器,一种视频播放方法,包括:接收视频流数据;将所接收到的视频流数据,发送给所述终端设备的CPU,并控制所述终端设备的CPU对所述视频流数据进行解码,得到YUV格式的视频数据;控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU,并控制所述终端设备的GPU对所述YUV格式的视频数据进行色度空间转换,得到RGB格式的视频数据;控制所述终端设备的GPU对所得到的RGB格式的视频数据进行显示。应用上述方案,本发明实施例利用GPU来分担CPU色度空间转换和播放的任务,可以降低CPU占用率,从而减小了终端设备的耗电量,延长了终端设备的使用寿命。
1.一种视频播放方法,应用于包括中央处理器CPU、图形处理器GPU的终端设备中,其特征在于,该方法包括:
接收视频流数据;
将所接收到的视频流数据,发送给所述终端设备的CPU,并控制所述终端设备的CPU对所述视频流数据进行解码,得到YUV格式的视频数据;
控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU,并控制所述终端设备的GPU对所述YUV格式的视频数据进行色度空间转换,得到RGB格式的视频数据;
控制所述终端设备的GPU对所得到的RGB格式的视频数据进行显示;
其中,所述控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU,包括:
获取视频流数据的帧率;
检测单位时间内所述视频流数据的视频解码帧数;
判断单位时间内所述视频流数据的视频解码帧数是否小于所述视频流数据的帧率,如果是,则控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU。
2.根据权利要求1所述的方法,其特征在于,所述获取视频流数据的帧率,包括:
在未对视频流数据进行解码之前,获取视频流数据的帧率;
或,
在对视频流数据开始进行解码之后,且在判断操作之前,获取视频流数据的帧率,所述判断操作为:判断单位时间内所述视频流数据的视频解码帧数是否小于所述视频流数据的帧率。
3.根据权利要求1所述的方法,其特征在于,所述控制所述终端设备的GPU对所得到的RGB格式的视频数据进行显示,具体包括:
控制所述终端设备的GPU按照预设的播放速度对所得到的RGB格式的视频数据进行显示。
4.一种播放器,应用于包括中央处理器CPU、图形处理器GPU的终端设备中,其特征在于,该播放器包括:
接收模块,用于接收视频流数据;
解码模块,用于将所接收到的视频流数据,发送给所述终端设备的CPU,并控制所述终端设备的CPU对所述视频流数据进行解码,得到YUV格式的视频数据;
色度空间转换模块,用于控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU,并控制所述终端设备的GPU对所述YUV格式的视频数据进行色度空间转换,得到RGB格式的视频数据;
显示模块,用于控制所述终端设备的GPU对所得到的RGB格式的视频数据进行显示;
其中,所述色度空间转换模块,包括:
获取子单元,用于获取视频流数据的帧率;
检测子单元,用于检测单位时间内所述视频流数据的视频解码帧数;
判断子单元,用于判断单位时间内所述视频流数据的视频解码帧数是否小于所述视频流数据的帧率,如果是,则控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU,并控制所述终端设备的GPU对所述YUV格式的视频数据进行色度空间转换,得到RGB格式的视频数据。
5.根据权利要求4所述的播放器,其特征在于,所述获取子单元,具体用于:
在所述解码模块未对视频流数据进行解码之前,获取视频流数据的帧率;
或,
在所述解码模块对视频流数据进行解码之后,且在所述第二判断子单元开始判断操作之前,获取视频流数据的帧率。
6.根据权利要求4所述的播放器,其特征在于,所述显示模块,具体用于:
控制所述终端设备的GPU按照预设的播放速度对所得到的RGB格式的视频数据进行显示。
一种视频播放方法及播放器\n技术领域\n[0001] 本发明涉及多媒体信息技术领域,特别涉及一种视频播放方法及播放器。\n背景技术\n[0002] 随着互联网技术和多媒体技术的不断发展,通过多种终端设备观看视频已经成为很多人的生活习惯。目前,用户可以通过终端设备中的浏览器打开视频网站的页面,该页面调用相应的视频播放器为用户在线播放视频;用户也可以直接打开终端设备中的客户端软件,该客户端软件调用相应的视频播放器播为用户在线播放视频。\n[0003] 现有技术中,视频播放器在线播放视频的过程通常为:接收服务器传送的视频流数据,对接收的视频流数据进行解码,解码后的数据格式是YUV格式,然后对YUV格式的数据进行色度空间转化,转化后的数据格式是RGB格式,再对RGB格式的数据进行显示,从而实现视频的在线播放,其中YUV和RGB是两种不同的颜色编码方法。\n[0004] 然而现有技术中,对视频流数据的解码和色度空间转化过程都是在CPU(Central Processing Unit,中央处理器)上进行的,其中,将YUV格式的数据转化为RGB格式的数据会使CPU的占用率过高,CPU占用率过高会带来终端设备耗电量大的问题,并且会导致终端设备过热,缩短终端设备的使用寿命。\n发明内容\n[0005] 为了解决上述问题,本发明实施例公开了一种视频播放方法及播放器,具体技术方案如下:\n[0006] 一种视频播放方法,包括:\n[0007] 接收视频流数据;\n[0008] 将所接收到的视频流数据,发送给所述终端设备的CPU,并控制所述终端设备的CPU对所述视频流数据进行解码,得到YUV格式的视频数据;\n[0009] 控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU,并控制所述终端设备的GPU对所述YUV格式的视频数据进行色度空间转换,得到RGB格式的视频数据;\n[0010] 控制所述终端设备的GPU对所得到的RGB格式的视频数据进行显示。\n[0011] 优选的,所述控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU,包括:\n[0012] 得到YUV格式的视频数据后,直接控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU。\n[0013] 优选的,所述控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU,包括:\n[0014] 得到YUV格式的视频数据后,判断是否满足预设条件,如果是,则控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU。\n[0015] 优选的,所述判断是否满足预设条件,具体包括:\n[0016] 检测所述终端设备的CPU占用率,判断所述CPU占用率是否大于预设值,如果是,则确定满足预设条件。\n[0017] 优选的,所述判断是否满足预设条件,具体包括:\n[0018] 获取视频流数据的帧率;\n[0019] 检测单位时间内所述视频流数据的视频解码帧数;\n[0020] 判断单位时间内所述视频流数据的视频解码帧数是否小于所述视频流数据的帧率,如果是,则确定满足预设条件。\n[0021] 优选的,所述获取视频流数据的帧率,包括:\n[0022] 在未对视频流数据进行解码之前,获取视频流数据的帧率;\n[0023] 或,\n[0024] 在对视频流数据开始进行解码之后,且在判断操作之前,获取视频流数据的帧率,所述判断操作为:判断单位时间内所述视频流数据的视频解码帧数是否小于所述视频流数据的帧率。\n[0025] 优选的,所述控制所述终端设备的GPU对所得到的RGB格式的视频数据进行显示,具体包括:\n[0026] 控制所述终端设备的GPU按照预设的播放速度对所得到的RGB格式的视频数据进行显示。\n[0027] 一种播放器,该播放器包括:\n[0028] 接收模块,用于接收视频流数据;\n[0029] 解码模块,用于将所接收到的视频流数据,发送给所述终端设备的CPU,并控制所述终端设备的CPU对所述视频流数据进行解码,得到YUV格式的视频数据;\n[0030] 色度空间转换模块,用于控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU,并控制所述终端设备的GPU对所述YUV格式的视频数据进行色度空间转换,得到RGB格式的视频数据;\n[0031] 显示模块,用于控制所述终端设备的GPU对所得到的RGB格式的视频数据进行显示。\n[0032] 优选的,所述色度空间转换模块,包括:\n[0033] 第一发送子模块,用于在所述解码模块解码得到YUV格式的视频数据之后,直接控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU;\n[0034] 第一转换子模块,用于控制所述终端设备的GPU对所述第一发送子模块所发送的YUV格式的视频数据进行色度空间转换,得到RGB格式的视频数据。\n[0035] 优选的,所述色度空间转换模块,包括:\n[0036] 判断子模块,用于在所述解码模块解码得到YUV格式的视频数据之后,判断是否满足预设条件;\n[0037] 第二发送子模块,用于当所述判断子模块的判断结果为是时,控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU;\n[0038] 第二转换子模块,用于控制所述终端设备的GPU对所述第二发送子模块所发送的YUV格式的视频数据进行色度空间转换,得到RGB格式的视频数据。\n[0039] 优选的,所述判断子模块具体包括:\n[0040] 第一检测子单元,用于检测所述终端设备的CPU占用率;\n[0041] 第一判断子单元,用于判断所述CPU占用率是否大于预设值,如果是,则确定满足预设条件。\n[0042] 优选的,所述判断子模块具体包括:\n[0043] 获取子单元,用于获取视频流数据的帧率;\n[0044] 第二检测子单元,用于检测单位时间内所述视频流数据的视频解码帧数;\n[0045] 第二判断子单元,用于判断单位时间内所述视频流数据的视频解码帧数是否小于所述视频流数据的帧率,如果是,则确定满足预设条件。\n[0046] 优选的,所述获取子单元,具体用于:\n[0047] 在所述解码模块未对视频流数据进行解码之前,获取视频流数据的帧率;\n[0048] 或,\n[0049] 在所述解码模块对视频流数据进行解码之后,且在所述第二判断子单元开始判断操作之前,获取视频流数据的帧率。\n[0050] 优选的,所述显示模块,具体用于:\n[0051] 控制所述终端设备的GPU按照预设的播放速度对所得到的RGB格式的视频数据进行显示。\n[0052] 应用上述技术方案,终端设备的CPU完成对视频流数据的解码之后,本发明实施例可以在满足预设条件后,或直接控制终端设备的CPU将解码得到的YUV格式的视频数据,发送给终端设备的GPU,并控制终端设备的GPU对YUV格式的视频数据进行色度空间转换,GUP直接对所得到的RGB格式的视频数据进行显示;与现有技术相比,由于GPU具有主频低,计算量大的优点,本发明实施例利用GPU来分担CPU色度空间转换和播放的任务,可以降低CPU占用率,从而减小了终端设备的耗电量,延长了终端设备的使用寿命。\n附图说明\n[0053] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。\n[0054] 图1为本发明实施例所提供的一种视频播放方法的第一种流程图;\n[0055] 图2为本发明实施例所提供的一种视频播放方法的第二种流程图;\n[0056] 图3为本发明实施例所提供的一种视频播放方法的第三种流程图;\n[0057] 图4为如图3所示的S303的第一种流程图;\n[0058] 图5为如图3所示的S303的第二种流程图;\n[0059] 图6为本发明实施例所提供的一种播放器的结构示意图;\n[0060] 图7为如图6所示的模块603的第一种结构示意图;\n[0061] 图8为如图6所示的模块603的第二种结构示意图;\n[0062] 图9为如图8所示的模块603c的第一种结构示意图;\n[0063] 图10为如图8所示的模块603c的第二种结构示意图。\n具体实施方式\n[0064] 首先对本发明实施例所提供的一种视频播放方法进行说明,该方法应用于包括中央处理器CPU、图形处理器GPU的终端设备中,可以包括:\n[0065] 接收视频流数据;\n[0066] 将所接收到的视频流数据,发送给所述终端设备的CPU,并控制所述终端设备的CPU对所述视频流数据进行解码,得到YUV格式的视频数据;\n[0067] 控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU,并控制所述终端设备的GPU对所述YUV格式的视频数据进行色度空间转换,得到RGB格式的视频数据;\n[0068] 控制所述终端设备的GPU对所得到的RGB格式的视频数据进行显示。\n[0069] 应用本发明提供的技术方案,终端设备的CPU完成对视频流数据的解码之后,本发明实施例可以在满足预设条件后,或直接控制终端设备的CPU将解码得到的YUV格式的视频数据,发送给终端设备的GPU,并控制终端设备的GPU对YUV格式的视频数据进行色度空间转换,GUP直接对所得到的RGB格式的视频数据进行显示;与现有技术相比,由于GPU具有主频低,计算量大的优点,本发明实施例利用GPU来分担CPU色度空间转换和播放的任务,可以降低CPU占用率,从而减小了终端设备的耗电量,延长了终端设备的使用寿命。\n[0070] 为了使本领域技术人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。\n[0071] 为了在视频播放过程中,降低该终端设备的CPU占用率,从而减小终端设备的耗电量,延长终端设备的使用寿命,本发明实施例提供了一种视频播放方法及播放器。\n[0072] 下面首先对本发明实施例所提供的一种视频播放方法进行介绍。\n[0073] 需要说明的是,本发明实施例所提供的一种视频播放方法适用于终端设备中,在实际应用中,该终端设备可以为:车载电脑、手机、机顶盒、笔记本电脑或台式电脑等。\n[0074] 如图1所示,一种视频播放方法,应用于包括中央处理器CPU、图形处理器GPU的终端设备中,可以包括:\n[0075] S101,接收视频流数据。\n[0076] 终端设备中的播放器可以接收来自服务器侧的视频流数据,本发明实施例所述的“视频流数据”可以是经过编码处理的流媒体数据,本发明实施例对此不作限制。\n[0077] S102,将所接收到的视频流数据,发送给所述终端设备的CPU,并控制所述终端设备的CPU对所述视频流数据进行解码,得到YUV格式的视频数据。\n[0078] 本发明实施例所述的“YUV”是欧洲电视系统所采用的一种颜色编码方法,主要用于优化彩色视频信号的传输,其中,Y代表亮度,U、V代表色差,亮度和色差是构成颜色的两个分量。\n[0079] 需要说明的是,彩色图像信号经分色、分别放大校正后,得到RGB图像,再经过矩阵变换电路得到亮度信号Y和两个色差信号U和V,最后发送端将亮度和色差3个信号分别进行编码,用统一信道发送出去。\n[0080] 由于接收到的视频流数据是经过编码处理的YUV格式的视频数据,该终端设备的播放器可以将所接收到的视频流数据,发送给该终端设备的CPU,并控制该终端设备的CPU对所接收到的视频流数据进行解码,得到YUV格式的视频数据。\n[0081] 比如用户通过手机在线观看电视剧时,手机中的播放器从网络视频服务器侧获取源源不断的视频数据,播放器控制手机的CPU对获取到的视频数据进行解码,得到YUV格式的视频数据。\n[0082] S103,控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU,并控制所述终端设备的GPU对所述YUV格式的视频数据进行色度空间转换,得到RGB格式的视频数据。\n[0083] 本发明实施例所述的“RGB”是对一种颜色进行编码的方法,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们互相之间的叠加来得到各式各样的颜色的。\n[0084] 需要说明的是,通过RGB三基色来表示色彩的确很直观,但是如果把这种方法用作图像传输则存在以下缺点:第一个缺点是占用太多带宽,用RGB三色表示图像,R、G、B三个分量的带宽是均等的,都约等于亮度Y的带宽,所以每个分量都需要较大的带宽来描述;\n第二个缺点是抗干扰能力差,由于G分量占有亮度值的59%,所以当G受到干扰的时候,像素亮度值会受到很大的影响,而人眼对亮度值的变化是十分敏感的,所以图像主观质量会明显下降。基于这些原因,在视频信号传输中,通常采用YUV合成的方法。\n[0085] 本发明实施例所述的“色度空间转换”本质上就是将YUV格式的视频数据转换为RGB格式的视频数据,其中,YUV与RGB的转换公式可以为:\n[0086] Y=0.299R+0.587G+0.114B\n[0087] U=-0.147R+0.289G+0.436B\n[0088] V=0.615R-0.515G-0.100B。\n[0089] 可以理解的是,目前的显示器大都采用RGB颜色标准,比如显示器上显示彩色图像,是通过电子枪打在屏幕的红、绿、蓝三色发光极上产生色彩的图像的。\n[0090] 基于上述事实,在该终端设备的CPU对所接收到的视频流数据进行解码,得到YUV格式的视频数据之后,该终端设备的播放器控制终端设备的CPU将解码得到的YUV格式的视频数据发送给该终端设备的GPU进行色度空间转化,得到能在显示器的显示屏上显示的RGB格式的视频数据。\n[0091] 比如用户通过手机在线观看电视剧时,手机中的播放器从网络视频服务器侧获取源源不断的视频数据,播放器首先控制手机的CPU对获取到的视频数据进行解码,得到YUV格式的视频数据,接着控制手机的CPU将解码得到的YUV格式的视频数据发送给手机的GPU,以进行色度空间转换,得到RGB格式的视频数据,之后控制手机的GPU将转换得到的RGB格式的视频数据在手机的显示屏上为用户进行展示。\n[0092] 现有技术中,色度空间转换完全是在该终端设备的CPU上完成的,将YUV格式的数据转化为RGB格式的数据会使CPU的占用率过高,CPU占用率过高会带来终端设备耗电量大的问题,并且会导致终端设备过热,缩短终端设备的使用寿命。\n[0093] 本发明实施例的优势在于,由于GPU具有主频低,计算量大的优点,利用GPU来分担CPU色度空间转换和播放的任务,可以降低CPU占用率,从而减小了终端设备的耗电量,延长了终端设备的使用寿命;此外,GPU强大的计算功能,使得播放器解码能力相对提高,从而该终端设备的播放器对视频数据的播放更为流畅。\n[0094] S104,控制所述终端设备的GPU对所得到的RGB格式的视频数据进行显示。\n[0095] 本发明实施例所述的“RGB格式的视频数据”可以理解为多个视频帧,每一个视频帧就是一张静止图像,视频文件的播放可以理解为多张静止图片的连续播放。\n[0096] 在得到RGB格式的视频数据后,该终端设备的播放器控制该终端设备的GPU对所得到的RGB格式的视频数据在显示屏上进行显示。\n[0097] 在本发明实施例的一个具体实施方式中,为了满足用户的个性化播放要求,控制所述终端设备的GPU对所得到的RGB格式的视频数据进行显示,可以包括:控制所述终端设备的GPU按照预设的播放速度对所得到的RGB格式的视频数据进行显示。\n[0098] 本发明实施例所述的“播放速度”可以理解为每秒中包含的视频帧的帧数,即帧率。根据人的视觉生理特点,当图像的刷新速度达到5帧/秒时,人开始感觉图像是活动的,当图像的刷新速度达到24帧/秒时,人感觉图像是完全连续和流畅的,比如电影所使用的帧率就是24帧/秒。\n[0099] 在本发明实施例中,预设的播放速度可以为匀速,当然还可以根据实际需要设置该预设的播放速度,以满足个性化需求,本发明实施例对此不作限制。\n[0100] 在本发明的一个实施例中,如图2所示,一种视频播放方法,可以包括:\n[0101] S201,接收视频流数据。\n[0102] S202,将所接收到的视频流数据,发送给所述终端设备的CPU,并控制所述终端设备的CPU对所述视频流数据进行解码,得到YUV格式的视频数据。\n[0103] S203,直接控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU,并控制所述终端设备的GPU对所述YUV格式的视频数据进行空间色度空间转换,得到RGB格式的视频数据。\n[0104] S204,控制所述终端设备的GPU对所得到的RGB格式的视频数据进行显示。\n[0105] 在本发明实施例中,S201、S202、S204分别与前一实施例中的S101、S102、S104相同,本发明实施例对此不再赘述。S203中,该终端设备的播放器将解码得到的YUV格式的视频数据,完全交由该终端设备的GPU进行处理。\n[0106] 此时,该终端设备的GPU完全承担了将YUV格式的视频数据转换为RGB格式的视频数据的任务,而该终端设备的CPU只负责对所接收的视频流数据进行解码。本发明实施例可以适用于终端设备的CPU性能非常低,在播放视频过程中,卡顿严重的情况;此时由GPU完全承担将YUV格式的视频数据转换为RGB格式的视频数据的任务,从而可以极大的降低视频播放过程中CPU的占用率,从根本上解决视频播放过程中卡顿严重的问题。\n[0107] 在本发明的另一个实施例中,如图3所示,一种视频播放方法,可以包括:\n[0108] S301,接收视频流数据。\n[0109] S302,将所接收到的视频流数据,发送给所述终端设备的CPU,并控制所述终端设备的CPU对所述视频流数据进行解码,得到YUV格式的视频数据。\n[0110] S303,判断是否满足预设条件,如果是,则转到S304,否则转到S305。\n[0111] 在得到YUV格式的视频数据后,该终端设备可以判断是否满足预设条件,并根据不同的判断结果执行不同的操作。其中,当判断满足预设条件时,可以执行步骤S304;当判断不满足预设条件时,可以执行步骤S305。\n[0112] 在本发明实施例的一个具体实施方式中,S303可以包括:\n[0113] S303a,检测所述终端设备的CPU占用率。\n[0114] S303b,判断所述CPU占用率是否大于预设值,如果是,则转到S303c,否则转到S303d。\n[0115] 在检测该终端设备的CPU的当前占用率之后,可以终端设备可以判断CPU的当前占用率是否大于预设值,当该终端设备的CPU的当前占用率大于预设值时,执行步骤S303c;当该终端设备的CPU的当前占用率小于预设值时,执行步骤S303d。\n[0116] 需要说明的是,本发明实施例所述的“预设值”可以为20%、25%或30%等等,当然用户也可以根据实际需要自行设置,本发明实施例对此不作限制。该终端设备的CPU在对视频流数据进行解码的过程中,播放器检测CPU的占用率,当CPU的占用率大于预设值时,则认为CPU的负荷过高,由GPU来承担色度空间转换的任务。\n[0117] 可以理解的是,播放器对CPU解码过程中CPU占用率的检测,可以根据预设的时间周期来进行,也可以是通过接收相应的用户指令来触发,本发明实施例对此不作限制。\n[0118] S303c,确定满足预设条件。\n[0119] S303d,确定不满足预设条件。\n[0120] 在本发明实施例的另一个具体实施方式中,S303可以包括:\n[0121] S303e,获取视频流数据的帧率。\n[0122] 本发明实施例可以在未对视频流数据进行解码之前,获取视频流数据的帧率;也可以在对视频流数据开始进行解码之后,且在判断操作之前,获取视频流数据的帧率,所述判断操作为:判断单位时间内所述视频流数据的视频解码帧数是否小于所述视频流数据的帧率,本发明实施例对此不作限制。\n[0123] S303f,检测单位时间内所述视频流数据的视频解码帧数。\n[0124] S303g,判断单位时间内所述视频流数据的视频解码帧数是否小于所述视频流数据的帧率,如果是,则转到S303h,否则转到S303i。\n[0125] 在检测单位时间内所述视频流数据的视频解码帧数之后,终端设备可以判断单位时间内所述视频流数据的视频解码帧数是否小于所述视频流数据的帧率,当单位时间内所述视频流数据的视频解码帧数小于所述视频流数据的帧率时,执行步骤S303h;当单位时间内所述视频流数据的视频解码帧数大于所述视频流数据的帧率时,执行步骤S303i。\n[0126] CPU在对视频流数据进行解码的过程中,播放器对CPU单位时间内的视频解码帧数进行检测,当检测到CPU单位时间内的视频解码帧数小于所述视频流数据的帧率时,则认为CPU的解码速度不能满足视频播放的要求,会出现视频卡顿现象,此时将色度空间转换的任务交给GPU来处理,可以极大的降低CPU的负荷,使CPU能够分配更多的资源来对视频流数据进行解码,从而解决了因解码速度不足造成的视频卡顿问题。\n[0127] 可以理解的是,播放器对CPU解码过程中CPU单位时间内视频解码帧数的检测,可以根据预设的时间周期来进行,也可以是通过接受相应的用户指令来触发,本发明实施例对此不作限制。\n[0128] S303h,确定满足预设条件。\n[0129] S303i,确定不满足预设条件。\n[0130] S304,控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU,并控制所述终端设备的GPU对所述YUV格式的视频数据进行空间色度空间转换,得到RGB格式的视频数据。\n[0131] S305,控制所述终端设备的CPU对所述YUV格式的视频数据进行空间色度空间转换,得到RGB格式的视频数据。\n[0132] S306,控制所述终端设备的GPU对所得到的RGB格式的视频数据进行显示。\n[0133] 在本发明实施例中,S301、S302、S306分别与前一实施例中的S101、S102、S104相同,本发明实施例对此不再赘述。\n[0134] 本发明实施例适用于终端设备的CPU性能相对较低,在播放高清视频时,CPU的解码速度小于高清视频帧率,或CPU的占用率过高的情况;本发明实施例可以通过控制终端设备的GPU来分担该终端设备的CPU的色度空间转换任务,从而可以降低CPU的负荷,使CPU能够分配更多的资源来对视频流数据进行解码,从而解决了因解码速度不足造成的视频卡顿问题,提高了终端设备视频播放的流畅度。\n[0135] 相应于上面的方法实施例,本发明还提供一种播放器,应用于包括中央处理器CPU、图形处理器GPU的终端设备中,参见图6所示,该播放器可以包括:\n[0136] 接收模块601,用于接收视频流数据;\n[0137] 解码模块602,用于将所接收到的视频流数据,发送给所述终端设备的CPU,并控制所述终端设备的CPU对所述视频流数据进行解码,得到YUV格式的视频数据;\n[0138] 色度空间转换模块603,用于控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU,并控制所述终端设备的GPU对所述YUV格式的视频数据进行色度空间转换,得到RGB格式的视频数据;\n[0139] 显示模块604,用于控制所述终端设备的GPU对所得到的RGB格式的视频数据进行显示。\n[0140] 在本发明的一个具体实施方式中,所述显示模块604,具体用于控制所述终端设备的GPU按照预设的播放速度对所得到的RGB格式的视频数据进行显示。\n[0141] 在本发明的一种实施例中,所述色度空间转换模块603,可以包括:\n[0142] 第一发送子模块603a,用于在所述解码模块解码得到YUV格式的视频数据之后,直接控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU;\n[0143] 第一转换子模块603b,用于控制所述终端设备的GPU对所述第一发送子模块所发送的YUV格式的视频数据进行色度空间转换,得到RGB格式的视频数据。\n[0144] 在本发明的另一种实施例中,色度空间转换模块603,可以包括:\n[0145] 判断子模块603c,用于在所述解码模块解码得到YUV格式的视频数据之后,判断是否满足预设条件;\n[0146] 在本发明实施例的一个具体实施方式中,判断子模块603c,可以包括:\n[0147] 第一检测子单元603c1,用于检测所述终端设备的CPU占用率;\n[0148] 第一判断子单元603c2,用于判断所述CPU占用率是否大于预设值,如果是,则确定满足预设条件。\n[0149] 在本发明实施例的一个具体实施方式中,判断子模块603c,可以包括:\n[0150] 获取子单元603c3,用于获取视频流数据的帧率;\n[0151] 进一步的,所述获取子单元603c3,具体用于:\n[0152] 在所述解码模块未对视频流数据进行解码之前,获取视频流数据的帧率;\n[0153] 或,\n[0154] 在所述解码模块对视频流数据进行解码之后,且在所述第二判断子单元开始判断操作之前,获取视频流数据的帧率;\n[0155] 第二检测子单元603c4,用于检测单位时间内所述视频流数据的视频解码帧数;\n[0156] 第二判断子单元603c5,用于判断单位时间内所述视频流数据的视频解码帧数是否小于所述视频流数据的帧率,如果是,则确定满足预设条件。\n[0157] 第二发送子模块603d,用于当所述判断子模块的判断结果为是时,控制所述终端设备的CPU将解码得到的YUV格式的视频数据,发送给所述终端设备的GPU;\n[0158] 第二转换子模块603e,用于控制所述终端设备的GPU对所述第二发送子模块所发送的YUV格式的视频数据进行色度空间转换,得到RGB格式的视频数据。\n[0159] 对于播放器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。\n[0160] 为了描述的方便,描述以上播放器时以功能分为各种模块分别描述。当然,在实施本发明时可以把各模块的功能在同一个或多个软件和/或硬件中实现。\n[0161] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。\n[0162] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。\n[0163] 本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。\n[0164] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
法律信息
- 2015-10-21
- 2014-07-02
实质审查的生效
IPC(主分类): H04N 9/64
专利申请号: 201410131609.2
申请日: 2014.04.02
- 2014-06-04
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-08-24
|
2010-02-24
| | |
2
| |
2009-07-08
|
2008-01-04
| | |
3
| |
2010-12-29
|
2009-06-18
| | |
4
| |
2012-08-01
|
2011-01-26
| | |
5
| |
2013-11-20
|
2013-08-23
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |