截至目前为止,网络上的视频绝大部分都是以Flash的方式在浏览器上展现出来的,包括Youtube、Youku等都采用的是这样的方式。可以说,Flash目前就是{zlx}的网络视频输出方式,也可以说是一种格式。Flash是Adobe公司倾心打造的一款产品,如果要论市场占有率的话,恐怕Flash在Adobe公司的所有产品中市场占有率是{zg}的。目前基 于Web的Flash Player的{zx1}版本是Flash 10.0,该版本有一个特别重要的更新点就是加入了GPU(图形处理器)加速的支持,也就是所谓的硬件加速。该功能在Flash 10.0中默认呈开启状态,在网页的Flash中点击右键——设置就可以看到这一点。
0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}" title="flash gpu acceleration" alt="flash gpu acceleration" src="http://www.webmou.com/wp-content/uploads/2009/09/flash-gpu-acceleration1-550x331.PNG" width=550 height=331>
使用硬件加速有什么好处呢?大家知道,CPU虽然发展的很快,但处理能力是有限的,特别是对视频的处理能力,显然不如GPU强大。而且,从计算能力 方面,GPU所采用的精简指令集架构执行效率也远远要比x86 CPU所采用的复杂指令集?效率要高的多。使用GPU来处理Flash,不仅仅可以有效的提升性能,而且可以大幅度降低CPU的资源占用率,节省对CPU 资源的开支以让CPU可以做更多其他的事情。
0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}" title="Flash 10.0 gpu acceleration" alt="Flash 10.0 gpu acceleration" src="http://www.webmou.com/wp-content/uploads/2009/09/Flash-10.0-gpu-acceleration-550x185.PNG" width=550 height=185>
但是,在Flash 10.0中,Flash的处理并不是xx依靠GPU,甚至很大一部分处理仍然是依靠CPU来完成的(如上图)。我们可以看到,Web Flash的处理过程主要分为三个部分:目标视频处理——合成处理——屏幕渲染。在Flash 10.0中,目标视频处理与合成处理这两大部分仍然依靠CPU来完成,GPU只是完成了{zh1}一个步骤——屏幕渲染。显然,这还是很大程度上依赖 CPU,GPU的性能并没有得到xx的利用。
0 && image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}" title="Flash 10.1 gpu acceleration" alt="Flash 10.1 gpu acceleration" src="http://www.webmou.com/wp-content/uploads/2009/09/Flash-10.1-gpu-acceleration-550x181.PNG" width=550 height=181>
虽然以目前CPU的强大性能处理网页上的Flash不在话下,但是一些性能比较低的CPU在多开几个播放中的Flash窗口之后,就会出现CPU满 负载,视频停顿的现象(网络环境畅通的情况下)。同时,面对高清版网络视频逐渐流行,例如全球{zd0}的视频网站Youtube加入了高清版视频在线播 放,CPU处理起来就会渐渐感到力不从心,所以{zh0}的办法就是将这一切都交给GPU来处理。可喜的是,Adobe在下一个版本的Flash也就是 Flash 10.1中就会xx支持GPU,,GPU将xx替代CPU的角色,全程负责Flash的处理以及渲染(如上图)。
目前,Adobe已经与全球视觉计算的{lx}NVIDIA展开了合作,共同开发下一代Flash。根据调查,在线视频已经成为互联网的第三大应用,超 过了电子邮件的使用频率(互联网诞生初期电子邮件是最多的应用)。我们可以看到,随着GPU对Flash的全程支持以及高速网络的逐渐普及,直接在浏览器 中流畅的播放高清视频将不再是梦想!
注1:从Intel Pentium Pro(P6)之后,x86复杂指令集的CPU也开始采用内核精简指令集,但是在外围布置了从复杂指令集到精简指令集的译码电路动态译码方式,籍此提高CPU的性能,使复杂指令集CPU也有可能在1个时钟周期内运行一条甚至多条指令。
文: