视频播放方法及视频播放器技术

技术编号:3804282 阅读:155 留言:0更新日期:2012-04-11 18:40
一种视频播放方法,包括以下步骤:读取视频文件信息;获取硬件系统信息;根据所述视频文件信息及硬件系统信息与滤镜的对应关系选择滤镜。根据视频文件信息及硬件系统信息与滤镜的对应关系选择滤镜,在硬件系统能够对视频文件的播放实现硬件加速时,选择支持硬件加速的滤镜,可以有效降低CPU的占用率。此外,还提供了一种视频播放器。

【技术实现步骤摘要】
视频播放方法及视频播放器
本专利技术涉及计算机
,尤其是计算机技术中的视频播放方法及视频 播放器。
技术介绍
当十年前MPEG标准的产物——VCD尚未完全退出消费市场时,当很多人 还在赞叹DVD所带来的高品质图像画质时,伴随着MPEG-4 PartlO、 AVC/H.264 和Windows Media VC-1等^L频编码标准的成熟及其产业链的形成,高清影片已 经开始为追求生活品质的人们所追捧。高清影片要求分辨率达到1280x720或者1920x1080,相应地,普通高清影 片的码率高达30Mbps 。显然,对比DVD所定义的标准清晰度影片(Standard Definition, SD),高清影片在分辨率和码率方面都有显著提高。海量的图像/声音 数据给用户带来了细腻、逼真的画质和抑扬分明的音质,让影片观赏者身临其 境,充分感受到影片所带来的视觉和听觉冲击力。然而,播放高清影片将极大增加CPU的负荷。这是因为,传统视频播放器 将全部视频解码工作放在CPU中进行。对于高清影片, 一方面其采用了高计算 复杂度的视频编码算法;另一方面,相对于低分辨率的影片,播放高清影片需 要处理的图像像素数量急剧增加。于是,普通配置的CPU在解码高清视频时往 往会满负荷工作,造成PC响应其他用户命令緩慢而出现画面显示不连续、声音 播放断断续续的现象,更有甚者出现操作系统无响应(系统死机)的情况。为了降低CPU解码高清视频时的工作负荷,近年来,各大GPU生产厂商 纷纷研发了支持高清视频硬件解码的GPU产品,如NVIDIA出品的NVIDIA GeForce 8/9系列产品和ATI产品的ATI HD 2000系列及其以上的产品。 一般地, 视频解码包括熵解码、反整数变换、运动补偿和图像后处理(或者"环路滤波") 等4个环节,支持高清视频硬件解码的GPU即能够完成上述4个环节中的部分 甚至全部,于是由CPU岸义担的部分或者全部解码工作转为GPU来承担,,人而5降低了系统播放高清^L频时的CPU资源占用率,使得其能及时响应其他的用户命令。对应于GPU在视频解码过程中的参与程度,Microsoft定义了 DXVA标 准(DirectX Video Acceleration),以表明GPU的^见频硬j牛解码能力档次。基于DirectShow架构的传统视频播放器,在渲染一见频文件时首先枚举系统 中注册的分离器滤镜,然后根据滤镜生成的输出端(outputpin)上的文件类型 以递归的方式枚举并连接合适的解码滤镜直至连接到渲染器滤镜。更具体地, 对视频文件的渲染可以分为下面几个步骤首先,根据视频文件特征码或者后缀名,枚举系统中所有合适的分离器, 并根据Merit值从高到低的顺序,依次尝试。当找到某个能成功解析视频文件的 分离器时,进入下一步;否则,将该分离器从渲染图表中剔除,继续尝试下一 分离器,直至所有分离器都被遍历一次。然后,在上一级(Upstream)滤镜的输出端上,根据视频信息(Media Type) 枚举系统中所有合适的解码滤镜,并根据优先级(Merit)值从高到低的顺序, 依次尝试。若上级滤镜输出端能和被尝试滤镜的输入端相连接(Connect)的时 候,则继续连接下一级滤镜;直至递归连接到渲染器,整个渲染图表建立完成。如果视频播放器能够搜索到所有在系统中业已注册的DirectShow滤镜,那 么这种视频播放器就能够支持高清影片硬件加速功能。然而,4见频播放器在视 频文件的渲染过程中,是以递归搜索的方式优先尝试Merit值较高的DirectShow 滤镜,而没有考虑并利用高清影片自身的特点,故造成渲染效率低下;如果支 持硬件加速的滤镜Merit值较低,甚至会出现无法实现硬件加速的情况。另一方 面,由于开启显卡视频解码加速功能后,使得常见的视频解码后处理等过程无 法实施,使得硬件加速开启后的画面质量有一定损失,所以若对小分辨率视频 也一律开启加速,则会带来视觉效果削弱而又没能明显改善系统负载,因为CPU对小分辨率视频进行处理所占用的资源本来就很小。上述过程由于没有考虑高清文件自身的特点,也没有挖掘系统显卡的DXVA 能力,故无法最大化地利用显卡DXVA能力,造成GPU资源的浪费,进而可能 影响到高清影片的播放体验。
技术实现思路
有鉴于此,有必要提供一种根据视频文件自身的特点及系统硬件能力进行 播放的纟见频播Jt方法。此外,还有必要提供一种根据视频文件自身的特点及系统硬件能力进行播放 的视频播放器。一种视频播放方法,包括以下步骤读取视频文件信息;获取硬件系统信息; 根据所述视频文件信息及硬件系统信息与滤镜的对应关系选择滤镜。优选地,所述读取视频文件信息的步骤包括如下步骤中的 一种以上解析视 频文件的分辨率或码率;解析容器格式;解析视频编码格式;读取字幕存在方 式、显示方式。优选地,所述获取硬件系统信息的步骤包括如下步骤判断硬件系统是否支 持硬件加速;如果支持硬件加速则获取硬件加速能力信息。优选地,所述根据所述视频文件信息及硬件系统信息与滤镜的对应关系选择 滤镜的步骤包括选择与所述容器格式对应的分离器滤镜的步骤。优选地,所述根据所述视频文件信息及硬件系统信息与滤镜的对应关系选择 滤镜的步骤包括判断所述编码格式是否与硬件加速能力信息对应;如果不对 应,选择与编码格式对应的解码器滤镜;如果对应,则选择与编码格式对应且 支持硬件加速的解码器滤镜。优选地,在判断所述编码格式是否与硬件加速能力信息对应之前还包括判断所述预定分辨率或码率,则直接进行所述选择与所述编码才各式对应的解码器滤 镜的步骤;如果达到所述预定分辨率或码率,则进行所述判断所述编码格式是 否与硬件加速能力信息对应的步骤。优选地,所述根据所述视频文件信息及硬件系统信息与滤镜的对应关系选择 滤镜的步骤还包括依次根据操作系统的类型、是否启用了硬件加速、视频文 件的显示方式或字幕存在方式选择渲染器滤镜。一种视频播放器,包括文件信息解析模块,用于读取视频文件信息;硬件 检测模块,用于获取硬件系统信息;滤镜管理模块,用于存储视频文件信息及硬件系统信息与滤镜的对应关系;滤镜连接策略模块,分别与所述文件信息解 析模块、硬件检测模块、滤镜管理模块相连以获取所述视频文件信息、硬件系 统信息、视频文件信息及硬件系统信息与滤镜的对应关系,并根据所述对应关 系选择滤镜。优选地,所述滤镜管理模块包括分离器滤镜管理单元,所述分离器滤镜管理 单元用于存储视频文件的容器格式对应的分离器滤镜优先级顺序。优选地,所述滤镜管理模块包括解码器滤镜管理单元,所述解码器滤镜管理 单元用于存储视频文件的编码格式对应的解码器滤镜分別在是否支持硬件加速 的条件下的优先级顺序。优选地,所述滤镜连接策略模块用于根据所述硬件系统信息判断硬件系统能 否对^见频文件的播放执行硬件加速,如果能执行硬件加速,则选择支持硬件加 速的条件下的优先级高的解码器滤镜并启用硬件加速。优选地,所述滤镜连接策略模块还用于根据所述^L频文件信息中的分辨率或码率判断所述视频文件的分辨率或码率是否达到预定分辨率或码率,如果所述 视频文件的分辨率或码率未达到预定分辨率或码率,则不启用硬件加速。优选地,所述滤镜管理模块包括渲染器滤镜管理单元,所述渲染器滤镜本文档来自技高网
...

【技术保护点】
一种视频播放方法,其特征在于,包括以下步骤: 读取视频文件信息; 获取硬件系统信息; 根据所述视频文件信息及硬件系统信息与滤镜的对应关系选择滤镜。

【技术特征摘要】

【专利技术属性】
技术研发人员:李大龙
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:94[中国|深圳]

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

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