论文部分内容阅读
依靠丰富的网络资源,高清视频回放已经成为当今电脑不可或缺的应用之一。由于高清节目的分辨率数倍于标清节目,所以要将它们压缩到可以接受的体积必须借助极为复杂的算法,这就意味着无论是编码过程还是解码过程对于大多数计算机来说都是一项相当严峻的考验。于是,如何在入门级配置情况下实现高清视频的流畅播放,就成了业界的焦点所在。
在VCD和DVD刚问世的时候,许多厂商推出了各种各样硬件加速卡来解决VCD和DVD的回放问题。而在高清时代,硬件加速、高清解码的重任都被显卡承担了下来。自NVIDIAGeForce 6800显卡问世以后,整个显卡市场的战火蔓延到了高清视频加速领域,伴随着每一次显示芯片的更迭,显卡的高清视频加速功能也在不断进化。如今NVIDIA的PureVideo和ATI(现AMD,下同)的AVIVO都已经发展到了第二代,即便是英特尔的集成显卡也引入了被称作ClearVideo的视频加速功能。在这些硬件解码技术的帮助下,就算是主流配置的电脑也可以流畅播放720p的高清视频。
不过话说回来,你可以别以为各大厂商的高清硬件加速功能都差不多;事实上NVIDIA、ATI和英特尔所选择的高清解码之路截然不同……不同的技术架构、不同的侧重方向以及不同的实现方式,这就导致PureVideo、AVIVO、ClearVideo三者之间巨大的差异,究竟--在高清视频背后隐藏有多少奥秘,未来高清加速又将何去何从?这就是我们今天要讨论的问题,不过在进入主题之前,我们还要先去了解一下各种高清标准,就权当主菜之前的热身吧。
高清编码标准,谁是真正的硬件杀手?
对高清视频有所了解的朋友们一定都听说过H.264、VC-1、MPEG-2等这些高清视频的专有名词吧。和所有的IT技术一样,业界对于高清视频的编码标准也有着较大的分歧,由此派生出了各种互不兼容的视频编码方案。在蓝光视频光盘和网络上,高清视频以MPEG-2 TS、H.264、VC-1等编码标准为主,其中MPEG-2 TS由于压缩比过低在竞争中处于劣势,很有可能退出新一轮视频编码标准的竞争,而VC-1和H.264将会是日后使用最为广泛的高清视频编码标准。
从上面的介绍中我们不难看出,VC-1和H 264是当之无愧的硬件杀手,即便是双核Core 2 Duo E6300在不超频的情况下也可能被高码率的VC-1和H_264编码“秒杀”。虽然MPEG-2对于硬件来说要温和了许多,但是它的体积将会严重挑战小硬盘的“肚量”。
面对三大高清标准的挑战,业界最大的三家显示芯片厂商又选择了怎样的应对之道呢?热身之后,主菜登场……
硬件视频解码技术,并不是想象的“万金油”
在众多显卡的宣传资料上,你不难发现似乎三家显示芯片厂商的硬件视频加速技术都像“万金油”一样好用,资料上说它们可以解决所有的视频编码问题。事实上又是怎么一回事呢?
其实硬件视频加速技术很多时候只能支持少数几个标准的硬件加速,在播放视频的过程中更是需要播放器和编码器的配合,才能对特定编码标准进行硬件加速。而PureVideo、AVIVO和ClearVideo之间能够加速的编码标准也有着巨大的差异。
Intel的ClearVideo技术
作为整合图形领域份额最多的厂商,英特尔在GMAX3000整合图形核心中带来了称作ClearVideo的视频加速技术,由于整合图形核心面积和功耗所限,ClearVIdeo只能提供对MPEG-2视频标准的iDCT硬件加速。这就意味着我们在回放H.264或者VC-1视频的时候,整合图形核心的硬件加速功能(从某种程度上来说)完全派不上用场。据Intel透露,ClearVideo硬件解码加速功能在整合图形核心内部并没有单独的逻辑单元,而是通过对图形核心的矩阵单元重新编程来实现的。这意味着相对于PureVideo和AVIVO来说,C|earVideo技术的实现成本几乎可以忽略不计。在未来,英特尔也很可能通过改进驱动让ClearVide0技术支持H.264或者VC-1硬件解码加速,但当前来看ClearVideo与其它技术相比并不具备什么优势。在媒体播放器市场LWinDVD 7*、PowerDVD7等播放软件均支持ClearVideo的加速功能。
NVlDIA的PureVideo技术
第一代PureVide0技术出现在GeForce 6800显卡上面,但当时的PureVideo技术只能提供MPEG-2标清和高清视频的解码加速。到了GeForce 7系列显卡时,PureVideo被显著加强,NVIDIA为其加入了对H.264和VC-1视频编码的加速功能,并且开始提供对HDCP的支持。在GeForce8600/850018400显卡上,PureVide0技术被再度加强,这些显示核心内部的PureVide0逻辑单元被加入了BSP Engine(BitstreamStream ProcessorEngine)。
在实际测试中,第二代PureVideo硬件视频加速引擎配合Core2 Duo E6600处理器,在回放20Mbps码率的H.264视频时CPU占用率始终低于10%,这与之前PureVideo 1~1.5版本时高达30-40%的CPU占用率形成了鲜明对比。值得注意的是,目前NVIDIA最高端的GeForce 8800系列显卡并没有集成第二代PuteVideo视频引擎(其中的原因很多人认为是,用户在选择高端显卡的时候一般都会选择商性能处理器,所PACPU性能不会是瓶颈,而高端显卡主要偏重于3D方面)。
在软件支持度方面,NVIDIA拥有自己的PureVideo视频编码引擎;第三方播放软件如WinDVD 7、PowerDVD 7以及WMP 11都对PureVideo提供了支持。
ATI的AVIVO技术
ATI在Radeon X1000系列显卡中加入TAVIVO视频加速技术,AVIV0和PureVideo一样都是通过GPU内部的专用单元来实现的。第一代的AVIVO视频加速技术就已经直接提供了对H.264、MPEG2和VC-1的解码支持。但根据显卡档次的不同,ATI选择性地开放了硬件加速功能,例如Radeon x1300仅提供720p分辨率的硬件解码加速。第一代AVIVO技术和NVIDIA PureVideo 1-1.5技术相比,在视频解码性能上略胜一筹——AVIVO有着更低的CPU占用率,以及具各视频编码功能等。
今年夏天ATI又陆续发布了Radeon HD 2000系列,AVIVO也升级到TAVIVO HD。此时为了便于区分,ATI将Radeon HD 2900、Radeon X1000系列显卡内部 的视频加速引擎称作AVP(Advance Video Processo~高级视频处理器),而最新研发的被运用在RadeonHD 2600/2400显卡上的视频加速引擎被称作了UVD(Unified Video Decoder,通用视频解码器)。
和AVP相比,UVD和NVIDIA第二代PureVideo引擎一样都是真正意义上全面的硬件视频加速方案。UVD同样可以实现(H_264和VC-1视频)在熵编码阶段就介入对其进行硬件解码,进而实现超低的CPU占用率。
软件支持方面,AVIVO已被WinDVD 7、PowerDVD7以及WMP 11等主流播放器所支持,ATI更是提供了AVIVOHD硬件加速编码器,为视频功能锦上添花。
进阶阅读:加速能力与编解码过程的关系
在上面的介绍中,我们已经对三家显示芯片厂商的技术有了一个大致的了解。下面我们再来重点谈谈不同的加--速架构会对最终结果产生怎样的影响,以及为什么会出现这样的情况。
首先,让我们先来了解T视频加速的过程,这里我们用NVIDIA的H.264解码流程为例来介绍。
首先是H.264视频解码层VCL(Video CodingLayer中的熵编码(Entropy coding)技术,该技术采用基于内容的自适应变长编码CAVLC(contex6basedAdaptive Variable Length Coding)与一致变字长编码CABAC(Context-based Adaptive Binary Arithmetic coding)两种关键编码方式。简单来说,(AVL)与CABAC就是H.264编码规范中的两种不同的算法,目的都是为了提高压缩比,其中CABAC的压缩率比CAVLC更高。CABAC是在H.264标准中新提出来的一种编码方式,目的是希望解决H.263?Annex E熵编码的不足;但话说回来,虽然CABAC很好地改进了之前的不足,但又再一次增加了计算量和复杂度。
视频编码的最后一步是熵编码,因此,在解码过程中熵编码自然就变成了为第一步。H.264视频解码层VCL中的熵编码有很多用途,比方说用于量化变换系数、自适应块变换ABT(Adaptive Block Transform)、运动向量和其它编码信息的压缩技术中。而基于内容的自适应二进制算术编码主要是使编码和解码两边都能使用所有语法元素(变换系数、运动矢量)的概率模型,而这些计算恰恰是相当耗费资源的项目。因此,在解码的四个重要步骤当中,熵编码步骤是最消耗资源的。
相关测试数据表明,在Without PV(关闭PureVideo硬件加速功能)模式下,CPU会负责视频解码的全部过程,此时CPU占用率会高达90%~100%;而使用PureVideo 2之后,由于CPU不再负责熵编码和逆变换,CPU占用率就能够降低到50%以下。
结合到具体的产品上,在上文我们知道,第二代PureVideo和UVD最引人注目的便在于四个重要步骤全部由GPU进行处理,由此使得CPU占用率下降了很多。相关测试表明,使用上PureVideo 2或者UVD以后,整个视频解码过程基本不再依赖于CPU。当然,这样的工作模式不仅可以使CPU占用率下降,还能够提升系统性能(ATI的Radeon X2600/2400在处理H.264视频时CPU占用率甚至可以低于1%)。
遗憾的是,当前英特尔ClearVideo硬件解码加速还不具备解码H.264等视频的功能。因此,使用Intel集成显卡来播放H.264编码或VC-1编码的高清视频节目时,不可避免地会给CPU带来巨大的计算压力,CPU使用率居高不下也就很好理解了。
硬件加速功能的新舞台——也谈视频压缩
三家显示芯片厂商除了在视频加速技术上的龙争虎斗之外,还在视频处理功能上展开了全面的较量。尽管PureVideo的问世早于ATI的AVIVO,但AVIVO却是首个提供硬件加速编码的芯片厂商。
对于用户来说,高清视频摄录设备(HD DV)的普及是大势所趋。但是要对高清视频进行H264或者VC-1编码却是一件非常考验耐心的事情。完全采用软件压缩算法的H.264编码器,在Core2 Duo E6600上压缩1080p视频的速度还不到1FPS,这就意味着压缩一部影片需要一个漫长的等待过程!除此以外,由于H.264和VC-1问世不久,成熟可用的编码器也屈指可数,这在一定程度上限制了新一代编码标准和高清设备的普及速度。
抓住高清编码契机的ATI在AVIVO问世初期就推出YAVIVOVideoConverter,通过这款软件用户能够显著提升视频编码速度,相对于传统的H.264编码器,ATI的AVIVO VideoConverter可以达到近2倍的性能提升。值得一提的是,新版本的AVIVO VideoConverter已经免费包含在了官方Catalvst驱动之中。
除此之外,Intel的ClearVideo还首先提出了多视频流加速的概念——在ClearVideo技术的帮助下,Intel的整合图形核心能够在同一时间加速1个MPEG-2高清视频流和1个标清视频流,并且还能够实现叠加的画中画显示。这样的功能对于使用多头输出的用户来说很有吸引力。也许是看到了这—功能的巨大前景,NVIDIA在GeForce 860/8500GPU中也将多视频流画中画功能作为一个标准配置加人芯片当中,而ATI目前仍然没有提供相应的解决方案。
未来,硬件视频加速何去何从?
在我们深入了解了各家的硬件视频解码加速方案之--后,许多朋友可能会产生一个疑问——几乎所有硬件解码加速方案都以降低CPU占用率为根本目标,那么在日后四核甚至更多核心的CPU普及之后,这些硬件加速技术还有用武之地吗?
这个问题要分两个方面来看。首先是尽管当前的硬件加速方案已经在很大程度上解决了高清视频回放的难题,但是高清视频并不仅仅是图像压缩技术——在处理视频信号的同时还要对高清视频附带的LPCM、DolbyTureHD等音频编码格式进行解码,这就仍然需要大量的CPU资源进行支撑。
其二就是我们还处在一个高清和标清视频改朝换代的中间期,但新的技术又向我们走来。当我们刚为解决了Full HD(1920×1080p)问题而感到沾沾自喜的时候,各大电影发行公司正在酝酿新的4K标准(4096×21601,使用最高40bit的色彩精度,对于计算机系统来说无疑又将是一场梦魇。反过来说,CPU和GPU都暂时不会为“失业”的问题而苦恼,“各司其职”在今后相当长的一段时间内仍将是最好的选择。
在VCD和DVD刚问世的时候,许多厂商推出了各种各样硬件加速卡来解决VCD和DVD的回放问题。而在高清时代,硬件加速、高清解码的重任都被显卡承担了下来。自NVIDIAGeForce 6800显卡问世以后,整个显卡市场的战火蔓延到了高清视频加速领域,伴随着每一次显示芯片的更迭,显卡的高清视频加速功能也在不断进化。如今NVIDIA的PureVideo和ATI(现AMD,下同)的AVIVO都已经发展到了第二代,即便是英特尔的集成显卡也引入了被称作ClearVideo的视频加速功能。在这些硬件解码技术的帮助下,就算是主流配置的电脑也可以流畅播放720p的高清视频。
不过话说回来,你可以别以为各大厂商的高清硬件加速功能都差不多;事实上NVIDIA、ATI和英特尔所选择的高清解码之路截然不同……不同的技术架构、不同的侧重方向以及不同的实现方式,这就导致PureVideo、AVIVO、ClearVideo三者之间巨大的差异,究竟--在高清视频背后隐藏有多少奥秘,未来高清加速又将何去何从?这就是我们今天要讨论的问题,不过在进入主题之前,我们还要先去了解一下各种高清标准,就权当主菜之前的热身吧。
高清编码标准,谁是真正的硬件杀手?
对高清视频有所了解的朋友们一定都听说过H.264、VC-1、MPEG-2等这些高清视频的专有名词吧。和所有的IT技术一样,业界对于高清视频的编码标准也有着较大的分歧,由此派生出了各种互不兼容的视频编码方案。在蓝光视频光盘和网络上,高清视频以MPEG-2 TS、H.264、VC-1等编码标准为主,其中MPEG-2 TS由于压缩比过低在竞争中处于劣势,很有可能退出新一轮视频编码标准的竞争,而VC-1和H.264将会是日后使用最为广泛的高清视频编码标准。
从上面的介绍中我们不难看出,VC-1和H 264是当之无愧的硬件杀手,即便是双核Core 2 Duo E6300在不超频的情况下也可能被高码率的VC-1和H_264编码“秒杀”。虽然MPEG-2对于硬件来说要温和了许多,但是它的体积将会严重挑战小硬盘的“肚量”。
面对三大高清标准的挑战,业界最大的三家显示芯片厂商又选择了怎样的应对之道呢?热身之后,主菜登场……
硬件视频解码技术,并不是想象的“万金油”
在众多显卡的宣传资料上,你不难发现似乎三家显示芯片厂商的硬件视频加速技术都像“万金油”一样好用,资料上说它们可以解决所有的视频编码问题。事实上又是怎么一回事呢?
其实硬件视频加速技术很多时候只能支持少数几个标准的硬件加速,在播放视频的过程中更是需要播放器和编码器的配合,才能对特定编码标准进行硬件加速。而PureVideo、AVIVO和ClearVideo之间能够加速的编码标准也有着巨大的差异。
Intel的ClearVideo技术
作为整合图形领域份额最多的厂商,英特尔在GMAX3000整合图形核心中带来了称作ClearVideo的视频加速技术,由于整合图形核心面积和功耗所限,ClearVIdeo只能提供对MPEG-2视频标准的iDCT硬件加速。这就意味着我们在回放H.264或者VC-1视频的时候,整合图形核心的硬件加速功能(从某种程度上来说)完全派不上用场。据Intel透露,ClearVideo硬件解码加速功能在整合图形核心内部并没有单独的逻辑单元,而是通过对图形核心的矩阵单元重新编程来实现的。这意味着相对于PureVideo和AVIVO来说,C|earVideo技术的实现成本几乎可以忽略不计。在未来,英特尔也很可能通过改进驱动让ClearVide0技术支持H.264或者VC-1硬件解码加速,但当前来看ClearVideo与其它技术相比并不具备什么优势。在媒体播放器市场LWinDVD 7*、PowerDVD7等播放软件均支持ClearVideo的加速功能。
NVlDIA的PureVideo技术
第一代PureVide0技术出现在GeForce 6800显卡上面,但当时的PureVideo技术只能提供MPEG-2标清和高清视频的解码加速。到了GeForce 7系列显卡时,PureVideo被显著加强,NVIDIA为其加入了对H.264和VC-1视频编码的加速功能,并且开始提供对HDCP的支持。在GeForce8600/850018400显卡上,PureVide0技术被再度加强,这些显示核心内部的PureVide0逻辑单元被加入了BSP Engine(BitstreamStream ProcessorEngine)。
在实际测试中,第二代PureVideo硬件视频加速引擎配合Core2 Duo E6600处理器,在回放20Mbps码率的H.264视频时CPU占用率始终低于10%,这与之前PureVideo 1~1.5版本时高达30-40%的CPU占用率形成了鲜明对比。值得注意的是,目前NVIDIA最高端的GeForce 8800系列显卡并没有集成第二代PuteVideo视频引擎(其中的原因很多人认为是,用户在选择高端显卡的时候一般都会选择商性能处理器,所PACPU性能不会是瓶颈,而高端显卡主要偏重于3D方面)。
在软件支持度方面,NVIDIA拥有自己的PureVideo视频编码引擎;第三方播放软件如WinDVD 7、PowerDVD 7以及WMP 11都对PureVideo提供了支持。
ATI的AVIVO技术
ATI在Radeon X1000系列显卡中加入TAVIVO视频加速技术,AVIV0和PureVideo一样都是通过GPU内部的专用单元来实现的。第一代的AVIVO视频加速技术就已经直接提供了对H.264、MPEG2和VC-1的解码支持。但根据显卡档次的不同,ATI选择性地开放了硬件加速功能,例如Radeon x1300仅提供720p分辨率的硬件解码加速。第一代AVIVO技术和NVIDIA PureVideo 1-1.5技术相比,在视频解码性能上略胜一筹——AVIVO有着更低的CPU占用率,以及具各视频编码功能等。
今年夏天ATI又陆续发布了Radeon HD 2000系列,AVIVO也升级到TAVIVO HD。此时为了便于区分,ATI将Radeon HD 2900、Radeon X1000系列显卡内部 的视频加速引擎称作AVP(Advance Video Processo~高级视频处理器),而最新研发的被运用在RadeonHD 2600/2400显卡上的视频加速引擎被称作了UVD(Unified Video Decoder,通用视频解码器)。
和AVP相比,UVD和NVIDIA第二代PureVideo引擎一样都是真正意义上全面的硬件视频加速方案。UVD同样可以实现(H_264和VC-1视频)在熵编码阶段就介入对其进行硬件解码,进而实现超低的CPU占用率。
软件支持方面,AVIVO已被WinDVD 7、PowerDVD7以及WMP 11等主流播放器所支持,ATI更是提供了AVIVOHD硬件加速编码器,为视频功能锦上添花。
进阶阅读:加速能力与编解码过程的关系
在上面的介绍中,我们已经对三家显示芯片厂商的技术有了一个大致的了解。下面我们再来重点谈谈不同的加--速架构会对最终结果产生怎样的影响,以及为什么会出现这样的情况。
首先,让我们先来了解T视频加速的过程,这里我们用NVIDIA的H.264解码流程为例来介绍。
首先是H.264视频解码层VCL(Video CodingLayer中的熵编码(Entropy coding)技术,该技术采用基于内容的自适应变长编码CAVLC(contex6basedAdaptive Variable Length Coding)与一致变字长编码CABAC(Context-based Adaptive Binary Arithmetic coding)两种关键编码方式。简单来说,(AVL)与CABAC就是H.264编码规范中的两种不同的算法,目的都是为了提高压缩比,其中CABAC的压缩率比CAVLC更高。CABAC是在H.264标准中新提出来的一种编码方式,目的是希望解决H.263?Annex E熵编码的不足;但话说回来,虽然CABAC很好地改进了之前的不足,但又再一次增加了计算量和复杂度。
视频编码的最后一步是熵编码,因此,在解码过程中熵编码自然就变成了为第一步。H.264视频解码层VCL中的熵编码有很多用途,比方说用于量化变换系数、自适应块变换ABT(Adaptive Block Transform)、运动向量和其它编码信息的压缩技术中。而基于内容的自适应二进制算术编码主要是使编码和解码两边都能使用所有语法元素(变换系数、运动矢量)的概率模型,而这些计算恰恰是相当耗费资源的项目。因此,在解码的四个重要步骤当中,熵编码步骤是最消耗资源的。
相关测试数据表明,在Without PV(关闭PureVideo硬件加速功能)模式下,CPU会负责视频解码的全部过程,此时CPU占用率会高达90%~100%;而使用PureVideo 2之后,由于CPU不再负责熵编码和逆变换,CPU占用率就能够降低到50%以下。
结合到具体的产品上,在上文我们知道,第二代PureVideo和UVD最引人注目的便在于四个重要步骤全部由GPU进行处理,由此使得CPU占用率下降了很多。相关测试表明,使用上PureVideo 2或者UVD以后,整个视频解码过程基本不再依赖于CPU。当然,这样的工作模式不仅可以使CPU占用率下降,还能够提升系统性能(ATI的Radeon X2600/2400在处理H.264视频时CPU占用率甚至可以低于1%)。
遗憾的是,当前英特尔ClearVideo硬件解码加速还不具备解码H.264等视频的功能。因此,使用Intel集成显卡来播放H.264编码或VC-1编码的高清视频节目时,不可避免地会给CPU带来巨大的计算压力,CPU使用率居高不下也就很好理解了。
硬件加速功能的新舞台——也谈视频压缩
三家显示芯片厂商除了在视频加速技术上的龙争虎斗之外,还在视频处理功能上展开了全面的较量。尽管PureVideo的问世早于ATI的AVIVO,但AVIVO却是首个提供硬件加速编码的芯片厂商。
对于用户来说,高清视频摄录设备(HD DV)的普及是大势所趋。但是要对高清视频进行H264或者VC-1编码却是一件非常考验耐心的事情。完全采用软件压缩算法的H.264编码器,在Core2 Duo E6600上压缩1080p视频的速度还不到1FPS,这就意味着压缩一部影片需要一个漫长的等待过程!除此以外,由于H.264和VC-1问世不久,成熟可用的编码器也屈指可数,这在一定程度上限制了新一代编码标准和高清设备的普及速度。
抓住高清编码契机的ATI在AVIVO问世初期就推出YAVIVOVideoConverter,通过这款软件用户能够显著提升视频编码速度,相对于传统的H.264编码器,ATI的AVIVO VideoConverter可以达到近2倍的性能提升。值得一提的是,新版本的AVIVO VideoConverter已经免费包含在了官方Catalvst驱动之中。
除此之外,Intel的ClearVideo还首先提出了多视频流加速的概念——在ClearVideo技术的帮助下,Intel的整合图形核心能够在同一时间加速1个MPEG-2高清视频流和1个标清视频流,并且还能够实现叠加的画中画显示。这样的功能对于使用多头输出的用户来说很有吸引力。也许是看到了这—功能的巨大前景,NVIDIA在GeForce 860/8500GPU中也将多视频流画中画功能作为一个标准配置加人芯片当中,而ATI目前仍然没有提供相应的解决方案。
未来,硬件视频加速何去何从?
在我们深入了解了各家的硬件视频解码加速方案之--后,许多朋友可能会产生一个疑问——几乎所有硬件解码加速方案都以降低CPU占用率为根本目标,那么在日后四核甚至更多核心的CPU普及之后,这些硬件加速技术还有用武之地吗?
这个问题要分两个方面来看。首先是尽管当前的硬件加速方案已经在很大程度上解决了高清视频回放的难题,但是高清视频并不仅仅是图像压缩技术——在处理视频信号的同时还要对高清视频附带的LPCM、DolbyTureHD等音频编码格式进行解码,这就仍然需要大量的CPU资源进行支撑。
其二就是我们还处在一个高清和标清视频改朝换代的中间期,但新的技术又向我们走来。当我们刚为解决了Full HD(1920×1080p)问题而感到沾沾自喜的时候,各大电影发行公司正在酝酿新的4K标准(4096×21601,使用最高40bit的色彩精度,对于计算机系统来说无疑又将是一场梦魇。反过来说,CPU和GPU都暂时不会为“失业”的问题而苦恼,“各司其职”在今后相当长的一段时间内仍将是最好的选择。