引自: http://bbs.kenapple.com/thread-6178-1-2.html
于Apple本身在用詞上的模糊,許多人對(duì)Quartz, Quartz Extreme, Quartz 2D Extreme, Core Image之間的區(qū)別并不是很清楚。這里就向你簡(jiǎn)單地介紹它們之間的關(guān)系。
1. Quartz是什么?
Quartz 是Mac OSX上的繪圖體系結(jié)構(gòu),與其等同的是Classic Mac OS上的QuickDraw, Java中的Graphics/Graphics 2D和Windows中的GDI/GDI+。Quartz和傳統(tǒng)的繪圖體系結(jié)構(gòu)不同,除了2D繪圖功能外,Quartz還有一個(gè)額外的部分,用于把繪制好的圖形組合成最終的屏幕輸出。相應(yīng)的,繪圖的部分就被叫做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開(kāi)始Quartz中的 Quartz Compositor部分提供了硬件支持的實(shí)現(xiàn),其原理是通過(guò)OpenGL的硬件加速,把需要組合的圖形作為texture (3D 紋理) 交給圖形卡的texture processor處理。因此提供硬件加速的Quartz Compositor的Quartz被叫做了Quartz Extreme
在Mac OS X 10.4中,不光Quartz Compositor提供了硬件加速,連Quartz 2D也提供了硬件加速,此時(shí)當(dāng)程序在繪制窗口圖形時(shí),Quartz 2D 只是把PDF (postscript )的繪圖指令保存下來(lái),當(dāng)繪圖結(jié)束后,再交給圖形卡的2D加速單元繪制,然后再通過(guò)Quartz Compositor把不同窗口的繪制結(jié)果組合成最終的屏幕輸出放到屏幕的Frame Buffer中。這種同時(shí)為Quartz 2D和Quartz Compositor提供硬件加速的Quartz被稱作 Quartz 2D Extreme
3.什么是Core Image呢?
Core Image是在10.4中提供的圖像處理Framework。請(qǐng)注意圖像處理(image processing)和繪圖(drawing)是兩個(gè)概念,圖像處理類似于Photoshop的濾鏡。事實(shí)上Core Image就提供了一個(gè)“濾鏡”鏈,輸入圖像在經(jīng)過(guò)一系列的“濾鏡”后產(chǎn)生了輸出圖像。由于整個(gè)過(guò)程相當(dāng)耗費(fèi)CPU處理資源,因此Core Image可以通過(guò)OpenGL利用圖形卡GPU的pixel shader來(lái)處理大量的運(yùn)算,再一次Core Image是可以被硬件加速的。
4.那么CoreImage和Quartz 又有什么關(guān)系呢?
Quartz中的Quartz Compositor可能利用Core Image產(chǎn)生類似陰影等的特效,然后合成最終的屏幕輸出。剛才我們說(shuō)過(guò)了Quartz Extreme中Quartz Compositor可以利用硬件來(lái)合成圖像,現(xiàn)在通過(guò)core image, 連圖形特效(FX)也可以通過(guò)硬件加速了。結(jié)果是從繪制到特效到組合全面硬件加速。
5.硬件加速的好處
圖形子系統(tǒng)是非常耗費(fèi)CPU資源的處理過(guò)程,而每個(gè)操作系統(tǒng)的圖形界面又大量依賴于圖形子系統(tǒng)。如果能把這部分的消耗交由圖形卡處理,那么CPU就可以省下更多的資源處理其他任務(wù)。很多unix的服務(wù)器系統(tǒng)為了節(jié)省CPU資源,不得不把圖形界面去掉,以便服務(wù)更多的客戶,如果全硬件加速可行的話,那么這些服務(wù)器系統(tǒng)就不需要消耗太多CPU處理時(shí)間用于用戶界面了。