了解硬件加速 了解DXVA与FlashPlayer关系 用户对视觉体验的逐步加强产生了需求,而作为主导Flash以及FlashPlayer的Adobe顺应用户需求推出了相关产品的升级,即FlashPlayer 10.1应运而生。 在了解Adobe FlashPlayer 10.1之前,首先让我们了解一下DXVA。那么DXVA是什么?DXVA有什么用?DXVA和我们要了解的FlashPlayer又有什么关系? ☆ DXVA是什么? DXVA英文全称DirectX Video Acceleration,中文译为视频硬件加速。 DXVA是微软公司专门定制的视频加速规范,它共有两个版本,分别是DXVA 1.0和DXVA 2.0。DXVA规范不仅仅是在视频播放过程中的解码计算规范,其还有与视频后期处理息息相关,例如反交错、色彩空间转换或图像缩放等等。 ☆ DXVA有什么用? 视频解码对于我们普通用户来说可以分成两类,一类是以CPU为核心的软件解码,另一类就是目前主流的以GPU为核心的额硬件加速解码。 就目前来看,二者各有利弊。 软件解码好处是,第三方软件解码器齐全通用性高,使用CPU来作为解码核心能够满足几乎所有的视频解码。而坏处也显而易见,在一台CPU性能较弱的平台上,尤其是在看高码率的高清视频时,CPU由于线程数和自身架构导致的效能上不足,视频画面卡、顿、慢成为不可避免的结局。 硬件加速解码好处是,目前主流显卡都能够很好的支持主流视频格式解码,尤其是在图形核心采用统一架构后,利用图形核心的并行架构设计,在H.264和VC-1格式高清视频上有绝佳的支持效果。弊端是,硬件解码受限视频播放总体流程,尤其是后期处理部分。所以很多追求最终画质效果的高清发烧友,宁可放弃硬件(GPU)加速解码的几倍性能,而选择基于CPU的软件解码。 
☆ DXVA与FlashPlayer之间关系? 了解了DXVA的具体用途后,接下来让我们了解一下DXVA与FlashPlayer之间的关系。 我们知道DXVA是微软定制的视频硬件加速规范,虽然目前显卡图形核心支持DXVA规范,但这不能说明某一款图形核心完全支持DXVA规范里的所有功能。不过微软想到了一个很好的解决办法,即与图形核心相对应的显卡驱动加入DXVA代码,用驱动来告诉系统中DXVA接口当前系统中图形核心支持DXVA的哪部分功能。 这也就回到了我们前文所提及的,要想让网络视频支持图形核心硬件加速,在升级FlashPlayer软件同时,硬件的驱动也需要即使更新加入DXVA功能识别代码,令硬件上可以胜任硬件能力的图形核心开启针对FlashPlayer播放器的支持,用DXVA以完成网络视频格式的高清硬件加速解码。 同时根据DXVA的规范制定,硬件加速解码可分为四个级别,它们由高到低分别是: VLD(bitstream方面的处理)>IDCT(帧内压缩)>MoComp(帧间压缩)>PostProc(显示后处理) 从上面的等级分布上不难看出,VLD加速等级最高,所以其包含IDCT、MoCoopm和PostProc;IDCT加速次之,包含MoCoopm和PostProc;最后MoComp加速仅包含PostProc。 对于仅支持MC加速的显卡只有在2005年以前的老产品上出现,当NVIDIA进入GeForce 6000系列和AMD进入Radeon X800系列后,图形核心的硬件加速能力达到了IDCT加速级别。而当显卡进入图形核心统一架构设计后,GeForce 8000和Radeon HD 2000开始进入目前最高的VLD加速。 不过值得一提的是,由于NVIDIA的高清硬件加速功能基于Video Pocesser单元设计,而最早出现的GeForce 8800系列(G80核心产品)没有开放此功能单元设计,所以NVIDIA真正进入VLD加速是从2007年4月发布的GeForce 8600/8500系列开始。 |