Core_Image

Core Image是一項Mac OS X中的新技術 ， 利用機器的繪圖處理器來作影像相關特效 。 於2004年8月的世界開發者大會 （ WWDC ） 中展示 ， 它提供大部份共同圖形濾鏡的捷徑 。 它提供即時直接作很多共同形式的影像處理能力 （ 在這之前必須由開發者自己的程式碼來實做完成 ） 。 Core Image較簡單的GUI增強有更深遠的含意 ， 像是由Dashboard所產生的水波紋效果 。 Core Image可以用來作即時的影像操作 ， 類似於Photoshop的濾鏡 。 這些運算稱爲影像單位 （ Image Units ） 。 然而 ， 不像傳統的濾鏡是在來源影像上操作 ， Core Image利用重疊來實現這樣的操作 -- 能維持原來的影像 。 這稱爲 " 非破壞性 " 操作 。 這樣的結果可以用來作高複雜度和多層的影像操作 ， 而只有少數或沒有品質上的損失 。 轉場特效類似濾鏡 ， 結合兩個或多個影像來形成結果的影像 ， 且接受一個時間數值 （ 0 < t < 1 ） 爲參數 。 藉由使用計時器來驅動一個動畫 ， 產生由一個影像到另一個的轉場效果是很容易地實現 。 在Core Image內部 ， 影像是以浮點數的數值在指定的色彩空間來表示像素的成份 。 使用浮點數可以得到較高的精確度 。 多個效果可以藉由結合數個影像單位 （ Image Unit ） 成爲一個順序的次序 （ 稱爲特效堆疊 ， effects stack ） 來達成 。 然而 ， Core Image在處理堆疊時候並不產生每個中介的影像 ； 反之 ， 它一次就計算效果的數學之運算 ， 然後把這個結果應用到影像上 。 結論是這樣的方法 ， 不會使得當更多的特效加入時 ， 而使得效能降低 - 因每個像素都只會被處理一次 ， 而不管特效堆疊變得多複雜 。 Core Image是設計來借用高階顯示卡上繪圖處理器的某些形式之能力 。 這會得到大量效能上的利益 ， 由於巨大的影像資料不需要在主記憶體匯流排中搬移 ， 這是即時影像處理頻寬限制的一個地方 。 然而 ， 如果沒有適合的圖形處理器 ， Core Image就會退回到下一個最好的選擇 - 利用G5和G4處理器上的AltiVec處理能力 ， 或者就只好執行G3上的'一般'程式碼 。 Core Image會自動地在目前機器架構下的選擇最快方法 。 然而 ， 逼真地即時影像處理需要一個可相容的繪圖處理器 。