引自: 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處理時間用于用戶界面了。