中国开发网: 论坛: 看电影看美剧: 贴子 556984
Fish
播放H264如何打开显卡的硬解码
标 题:一編好文:播放H264如何打开显卡的硬解码 (3千字)

现在H264的影片越来越多,包括电视台播出的大量20M 高码率影片,对系统性能要求很高,难倒了不少朋友。显卡硬件加速对播放H264有何作用,在此给出个人的一些看法,供大家参考。

所谓显卡硬件加速,是指显卡分担CPU的部分解码运算,从而提高解码速度。
目前MS XP 提供的DxVA 视频加速规范,只支持Mpeg2、WMV,没有包括H264。H264加速的实现是由各显卡厂商提供不同的API支持,比不上mpeg2 加速成熟和完善。
由于没找到A、N对显卡的H264加速的详细描述,不太清楚目前A、N卡对H264加速到底作了什么。单从Nvidia 的HD解码流程图看,N卡 H264 解码工作只负责MC (运动补偿)、
deblock,以及和解码无关的后处理。显卡承担的工作还是相当有限,大量的解码运算还必须由CPU 来做。不象Mpeg2 解码,显卡的视频处理器负责了大部分的解码运算(VLD、
IDCT、MC)。
A卡X1600 以上,N卡 6系以上,都提供了一定H264 HD解码加速能力。对不同显卡的 H264加速能力,参考附图。(8800GTX 的Max Cpu似乎有误)

目前的H264显卡加速解码, 常用的是 PowerDVD 软件。用PowerDVD 播放器,或者用KMP、mpc等播放器调用PowerDVD 所带的H264解码器,均可实现H264 硬件加速播放。但PowerDVD解码器为了更快的速度,没有启用H264 解码的inloop deblock (解码环路去块功能),这可能会导致画质下降。
简单说,deblock功能是H264标准规范要求的特性,用于消除H264编码算法产生的马赛克,deblock 在H264 编码/解码环节均有采用。除了H264,WMV9 也有采用inloop deblock,Mepg1/2/4 编码是没有采用inloop deblock的。如果H264 编码时启用了Deblock,解码时相应必须启用deblock, 否则容易出现色斑,特别是码率不足时。
PowerDVD 硬加速解码关闭deblock的画面对比参见附图,可见明显的色斑。

若追求最佳的画质,不建议用PowerDVD 硬加速。

PowerDVD 在版本7.2 之前的解码器,软解码的效能远低于Coreavc 解码器。即使开启显卡硬件加速,受累于解码引擎的低效,PowerDVD 比 Coreavc (关闭 deblock)解码速度快不了多少。
测试过E6300 用单核心解码“深蓝” 高码率H264 的情况,显卡为N7600GT。要满足“满帧率、不掉帧、声画同步”的基本要求:
- 采用 Coreavc解码,关闭deblock,主频要到2.3G, 这大概相当AMD 64 的2.7G,P4的4.5 G以上。
- 采用PD7 硬加速的话,显卡用7600GT,主频也要到2.0G,这大概相当AMD 64 的2.4G,P4的4G。CPU 低于这个,显卡硬加速也放不了高码率 H264。
因此,对于CPU 不够强劲的机器,升级支持H264的显卡并不能带来解码速度的大幅提升,来满足高码H264的播放需要,这时采用Coreavc解码是一个不错的选择。

不过,在Coreavc 开发者顶着“最快的H264解码器”的帽子潜心研究软件加密保护的期间,PowerDVD 也在努力改进。新发布的PowerDVD 7.2,软解码速度有了明显提高,已经不低于Coreavc 1.2,附图是二者用在E6300@2.3G+ 8800GTS 平台上解码高码率H264影片的CPU 占用对比。

由于PD 7.2解码引擎性能的提升,这时如果启用显卡加速,可以大幅降低H264解码对CPU的最低要求。
实际测试,采用PD 7.2 的解码器、分离器组合,P4 3G +N6600,已能基本流畅播放“深蓝”。参见另一帖子:http://bbs.silu.info/viewthread.php?tid=170151&extra=page%3D1
注意,PD7.2 的硬加速解码仍然是关闭 deblocking,这时有损画质的。

对于高码H264(20Mbps 级别)的播放,若要最佳画质,建议还是用软解。可选用PD7.2 解码器,软解码,和Coreavc速度相当,但没有Coreavc 麻烦的黑位错误。
机器配置要求:双核CPU (AMD X2、Intel CoreDuo 2, Intel PD系列 3G 以上 )。

对单核CPU,如P4 3G、 AMD 3000+, 只能稍为牺牲一点画质,采用PD 7.2 的解码器和分离器,启用显卡硬加速解码。
如果是单核CPU,显卡又不支持H264 硬加速,则还是只能用 Coreavc解码( 关闭deblock 选项)

附:
N卡用PowerDVD 7.2 开启硬加速的几个条件:
-确认显卡支持H264 硬加速。支持H264 的N卡可参见:http://www.nvidia.com/page/purevideo_support.html
-N卡 驱动版本更新,建议93.71 或以上
-CPU 支持SSE2,支持SSE3 更好
-PD7.2 解码器、分离器已被正确安装
-如果用KMP播放,启用极速模式,输出选 VMR9 renderless 。
-播放时确认PD7 H264 解码器(PDVD 6.x)已被调用,解码器属性的硬加速选项已被勾选。

Purevideo 技术是Nvidia 对N卡视频技术的通称,体现在显卡本身和驱动支持,不需另外安装的。
Nvidia Purevideo decoder是Nvidia 出品的mpeg2 解码器,和h264 一点关系都没有,解码H264不需要安装这东东。
大家都是出来卖的,何苦自己人为难自己人
那些活好的,或者活新的,或者花样多的,
或者老板拉皮条功夫好能拉到肯多花钱的客的,
拜托不要老是打击年老色衰的同行了

老鱼记事 老鱼侃棋 老鱼围脖


相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录