逛奔的蜗牛

我不聪明,但我会很努力

   ::  :: 新随笔 ::  ::  :: 管理 ::

引自: http://bbs.kenapple.com/thread-6178-1-2.html

于Apple本身在用词上的模糊,许多人对Quartz, Quartz Extreme, Quartz 2D Extreme, Core Image之间的区别并不是很清楚。这里就向你简单地介绍它们之间的关系。

1. Quartz是什么?
Quartz 是Mac OSX上的绘图体系结构,与其等同的是Classic Mac OS上的QuickDraw, Java中的Graphics/Graphics 2D和Windows中的GDI/GDI+。Quartz和传统的绘图体系结构不同,除了2D绘图功能外,Quartz还有一个额外的部分,用于把绘制好的图形组合成最终的屏幕输出。相应的,绘图的部分就被叫做Quartz 2D而合成的部分就叫做Quartz Compositor, 他们合在一起就叫做Quartz。


2.那么什么是Extreme, Extreme 2D?
我们知道了Quartz 2D 和 Quartz Compositor组成了Quartz, 那么什么是Quartz Extreme 和Quartz Extreme 2D呢?

最初在Mac OS X 10.0 - 10.1中Quartz是全部由软件完成的,从10.2开始Quartz中的 Quartz Compositor部分提供了硬件支持的实现,其原理是通过OpenGL的硬件加速,把需要组合的图形作为texture (3D 纹理) 交给图形卡的texture processor处理。因此提供硬件加速的Quartz Compositor的Quartz被叫做了Quartz Extreme

在Mac OS X 10.4中,不光Quartz Compositor提供了硬件加速,连Quartz 2D也提供了硬件加速,此时当程序在绘制窗口图形时,Quartz 2D 只是把PDF (postscript )的绘图指令保存下来,当绘图结束后,再交给图形卡的2D加速单元绘制,然后再通过Quartz Compositor把不同窗口的绘制结果组合成最终的屏幕输出放到屏幕的Frame Buffer中。这种同时为Quartz 2D和Quartz Compositor提供硬件加速的Quartz被称作 Quartz 2D Extreme

3.什么是Core Image呢?
Core Image是在10.4中提供的图像处理Framework。请注意图像处理(image processing)和绘图(drawing)是两个概念,图像处理类似于Photoshop的滤镜。事实上Core Image就提供了一个“滤镜”链,输入图像在经过一系列的“滤镜”后产生了输出图像。由于整个过程相当耗费CPU处理资源,因此Core Image可以通过OpenGL利用图形卡GPU的pixel shader来处理大量的运算,再一次Core Image是可以被硬件加速的。

4.那么CoreImage和Quartz 又有什么关系呢?
Quartz中的Quartz Compositor可能利用Core Image产生类似阴影等的特效,然后合成最终的屏幕输出。刚才我们说过了Quartz Extreme中Quartz Compositor可以利用硬件来合成图像,现在通过core image, 连图形特效(FX)也可以通过硬件加速了。结果是从绘制到特效到组合全面硬件加速。

5.硬件加速的好处
图形子系统是非常耗费CPU资源的处理过程,而每个操作系统的图形界面又大量依赖于图形子系统。如果能把这部分的消耗交由图形卡处理,那么CPU就可以省下更多的资源处理其他任务。很多unix的服务器系统为了节省CPU资源,不得不把图形界面去掉,以便服务更多的客户,如果全硬件加速可行的话,那么这些服务器系统就不需要消耗太多CPU处理时间用于用户界面了。

posted on 2008-09-08 15:04 逛奔的蜗牛 阅读(1146) 评论(0)  编辑 收藏 引用 所属分类: Mac

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理