硬件解码很多人都喜欢简称为硬解,到底什么是硬解?我们知道视频都有其编码格式的,常见的有MPEG-2,MPEG-4等等,播放的时候需要解码器,把储存在视频文件中的数据转化成图像信息并呈现出来。而这种解码器可以是硬件的,也可以是软件的。当我们使用软件解码的时候,就是通过每种编码格式所对应的软件解码器实现解码。比方说我们可以在网上下载到Windows Media Encoder 9.0这款软件,安装以后就可以播放wmv9编码格式的视频。
软件解码的好处就在于它具有很广泛的适用性,无论你在A平台还是I平台、有没有硬件解码器都可以使用软件解码来播放视频,对于绝大部分同学在过往几年中所看到的电影基本上都是采用软件解码的,安装个暴风影音也好,其他什么给力的播放器也好,都是软件解码,但是基本上没有出现不满足播放需求的现象。这就很好说明了软件解码的普遍适用。但是我们应该知道,视频解码对浮点运算要求是比较高的,而虽然CPU里面集成了FPU(Float Point Unit浮点运算单元),但是其浮点运算能力有限,以笔者的i7-860s OC 3.33GHz来说,其平均浮点运算能力仅仅为44GFlops,不要忘记了这是最新的CPU技术条件下的浮点运算能力了,如果放在以往的仅仅双核的普通处理器上,浮点运算更加会大打折扣(据笔者统计,无论是AMD的处理器还是INTEL的处理器,平均每个物理内核的浮点运算能力在10GFlops左右)。在这种CPU浮点运算能力极其微弱的条件下,播放高码率复杂场面的视频时候,就会出现掉帧、失真等等的现象。但是绝大部分同学都只有双核处理器,怎么才能满足高清视频的播放需要,于是硬件解码走入我们的视线。
从上面我们知道,软件解码实际上是依靠CPU的运算能力,而硬件解码,相应的依靠的是GPU的运算能力。很值得一说的是,“瘦死的骆驼比马壮”,再怎么阉割、再怎么悲催的GPU也比CPU强得多。如果说给大家一个概念,就是即使是集成显卡其浮点运算能力也是按TFlops算的,往高端走,一枚9800GX2显卡,两个G92核心的GPU,浮点运算能力达到让人惊讶的1.8TFlops,足足是笔者CPU浮点能力强40倍有多。即使是G105M,笔记本上的最低端独立显卡,运算能力也有0.7TFLops,依然是笔者CPU运算能力的10多倍…所以,说瘦死的骆驼比马壮完全是有理由的。既然有这么充足的运算能力资源,为什么我们不好好利用呢?
目前笔者在使用的硬件解码软件是TMT5(Total Media Theatre 5),只要把这个软件安装好,然后在SimHD选项中把处理方式改成GPU,并且在影音中心中选上硬件加速,这样就能实现硬件解码了。当然硬件解码也有其缺陷,一方面能使用硬件加速解码的显卡目前只有N卡,同时部分显卡显存不够,在解码的时候出现显存溢出的现象,结果也造成了一些意外失败。
http://ce.sysu.edu.cn/hope2008/Education/ShowArticle.asp?ArticleID=12782