Core Imageは、 Mac OS Xのピクセル精度、ほぼリアルタイム、非破壊画像処理技術です。Mac OS X 10.4以降のQuartzCoreフレームワークの一部として実装されたCore Imageは、Quartzグラフィックスレンダリングレイヤー内でフィルターやエフェクトを適用するためのプラグインベースのアーキテクチャを提供します。[1]このフレームワークは後にiOS 5でiOSに追加されました。[2]
概要
Core Image は、画像にフィルタを適用する際に必要なピクセルレベルの操作プロセスを抽象化します。これにより、アプリケーションは膨大なコーディングをすることなく、画像変換機能を実装できます。単純な実装では、Core Image は単一のImage Filter を特定のソースのピクセル データに適用して、変換された画像を生成します。各 Image Filter は、Core Image に組み込まれているか、Image Unitと呼ばれるプラグインから読み込まれた単一の変換または効果を指定します。プリセットまたはユーザー定義の入力パラメータと組み合わせることで、フィルタを元のピクセル データに変更を加えることなく適用できるため、非破壊的な画像編集が可能になります。[3] [4]
Photoshopと同様に、Core Image は同じ画像ソースに複数のフィルターを適用できます。Core Image は、一連のフィルターを個別に適用する代わりに、動的な命令パイプラインを組み立てて、累積的な効果を得るためにピクセルデータに 1 つの計算のみを適用する必要があります。複数のフィルターに関連付けられたピクセル操作の適用は、処理時間を大幅に増やすことなく同時に実行できます。フィルターの数に関係なく、Core Image はこの命令パイプラインのコードをジャストインタイムコンパイラで組み立てます。これは、CPU またはグラフィックカードの GPU のいずれか、計算をより速く実行できる方によって実行されます。[5]
フィルタはCore Imageカーネル言語で記述されており、 OpenGL Shading Language (GLSL)とコマンドのサブセットを共有しています。[6]互換性のあるGPUが利用可能な場合、Core ImageコンパイラはGLSLを使用して命令パイプラインを記述し、バッファと状態を透過的に処理します。GPUレンダリングが優先されますが[要出典]、コンパイラはCPUフォールバックモードで動作し、代わりに現在のCPUアーキテクチャに適したコマンドを生成することができます。[7] CPUフォールバックは、現在のCPUまたはCPUのベクター処理機能を使用し、マルチプロセッサを認識します。したがって、Core Imageのパフォーマンスは、GPUのGLSL機能またはCPUの処理能力に依存します。サポートされているGPUを使用すると、ほとんどのエフェクトをリアルタイムまたはほぼリアルタイムでレンダリングできます。[8]
歴史と実装
Core ImageはMac OS X 10.4で導入されました。[9] その初期の使用例としては、Dashboardのリップル効果や、Appleのプロフェッショナル向けデジタル写真アプリケーションであるApertureが挙げられます。[10] Mac OS X 10.5以降では、Image Kitを実装するすべてのアプリケーションでCore Imageを利用できます。[11] PreviewやiPhotoが一般的な例です。
2011年、AppleはiOS 5.0でCore Imageを追加しました。[2]
XcodeツールにはCore Image Fun HouseとQuartz Composer が含まれており、どちらも Core Imageを利用します。
Core ImageプラグインのアーキテクチャはCore Audioのアーキテクチャに触発されました。[12]
ピクセル精度
イメージユニットが提供するすべてのピクセル処理は、プレマルチプライアルファ(RGBA)色空間で実行され、赤、緑、青、透明度(アルファ)の4つの色チャネルを格納します。各色チャネルは32ビットの浮動小数点数で表されます。これにより、各ピクセルが128ビットベクトル(4つの32ビット色チャネル)で表されるため、人間の目で知覚できるよりもはるかに深い色深度が得られます。ビット深度の低い色空間では、Core Imageが採用している浮動小数点計算モデルが非常に優れたパフォーマンスを発揮し、複数の画像やビデオフレームを処理するときに役立ちます。[3] [13]
サポートされているグラフィックプロセッサ
必要なOpenGL Shader( GLSL )コマンドをサポートするプログラム可能なGPUは、Core Imageに対応しています。Appleは、Mac OS X 10.4およびApertureでCore Image GPU処理をサポートするために次のグラフィックカードを使用しているため、次のリストは最小要件の例と考えることができます。[10] [14]
- ATI Mobility Radeon 9700 (Mobility Radeon 9600 も対応)
- ATI Radeon 9550、9600、9650、9600 XT、9600 Pro、9700 Pro、9800 XT、および 9800 Pro
- ATI Radeon X600 XT、X600 Pro、X800 XT、X850 XT、X1600、X1900 XT
- ATI Radeon HD 2400 XT、HD 2600 Pro、および HD 2600 XT
- NVIDIA GeForce FX 5200 Ultra、FX Go 5200
- NVIDIA GeForce 6600、6600 LE、6800 Ultra DDL、および 6800 GT DDL
- NVIDIA GeForce 7300 GT、7600 GT、および 7800 GT
- NVIDIA GeForce 8600M GT および 8800 GT
- NVIDIA GeForce 9400M および 9600M GT
- NVIDIA GeForce GT 120 および GT 130
- NVIDIA GeForce GTX 285
- NVIDIA Quadro FX 4500 および FX 5600
- NVIDIA Quadro FX 4800
- NVIDIA Quadro 4000
- NVIDIA GeForce 320M
- NVIDIA GeForce GT 330M
- NVIDIA GeForce GT 640M
- NVIDIA GeForce GT 650M
- NVIDIA GeForce GTX 660M
- NVIDIA GeForce GTX 675M
- NVIDIA GeForce GTX 680MX
- NVIDIA GeForce GT 750M
- NVIDIA GeForce GT 755M
- NVIDIA GeForce GTX 775M
- NVIDIA GeForce GTX 780M
- Intel GMA 900、GMA 950、またはGMA X3100
- インテル HD グラフィックス 3000 (Sandy Bridge)
- インテル HD グラフィックス 4000 (Ivy Bridge)
- インテル HD グラフィックス 5000 (Haswell)
- インテル アイリス 5100(Haswell)
- インテル アイリス プロ 5200 (Haswell)
- インテル HD グラフィックス 5300(ブロードウェル)
- インテル HD グラフィックス 6000(ブロードウェル)
- インテル アイリス 6100(ブロードウェル)
Core Image命令を処理できるGPUはQuartz Extremeにも対応していることに注意してください。Core Imageの要件はQuartz Extremeの要件よりも厳しくなっています。[14]
内蔵フィルター

macOSには、以下のものを含め、多くのフィルターが組み込まれています。Mac OS X 10.4では100以上のフィルターが導入され、Mac OS X 10.5ではそのリストに追加されました。[3] [15]
- 中央値、ガウス、モーション、ノイズなどのぼかし
- 露出、ガンマ調整、セピア調などの色調整と効果
- 加算や乗算ブレンド、ハードライトなどの合成操作
- ピンチ、サークルスプラッシュ、ボルテックスなどの歪み
- スターシャインやレンチキュラーハローなどのジェネレーター
- 切り抜き、拡大縮小、回転、アフィン変換などのジオメトリ調整
- ハーフトーン、タイル、ポスタライズフィルター
- ディゾルブやリップルなどのトランジション
参照
- Acorn(ソフトウェア)
- 絞り
- コアイメージファンハウス
- GEGL 、 GIMPで使用されるプログラミング ライブラリ
- 即興
- ライブクォーツ
- ピクセルメーター
- クォーツコンポーザー
- Windows Imaging Component は、同様の API 設計を持ちますが、サポートされるイメージ操作は少なくなる Windows コンポーネントです。
参考文献
- ^ 「Mac Dev Center - Core Image プログラミング ガイドの概要」 。2009年9 月 20 日閲覧。
- ^ ab "iOS 5.0 API Diffs" . 2012年9月14日閲覧。
- ^ abc 「Apple - Developer - Developing with Core Image」。2009年10月6日時点のオリジナルよりアーカイブ。2009年9月20日閲覧。
- ^ 「Mac Dev Center - Core Image プログラミング ガイドの概要 - フィルター クライアントとフィルター クリエーター」 。2009年9 月 20 日閲覧。
- ^ 「ArsTechnica - Mac OS X 10.4 Tiger - ページ 15」。2005 年 4 月 28 日。2009 年9 月 20 日閲覧。
- ^ 「Mac Dev Center - Core Image カーネル言語リファレンス - 概要」 。2009年9 月 20 日閲覧。
- ^ 「Mac Dev Center - Core Image プログラミング ガイド - Core Image の概念 - Core Image と GPU」 。2009年9 月 20 日閲覧。
- ^ 「ArsTechnica - Mac OS X 10.4 Tiger - ページ 15」。2005 年 4 月 28 日。2007 年4 月 17 日閲覧。
- ^ 「Mac Dev Center - Core Image プログラミング ガイド - Core Image の概念」 。2009年9 月 20 日閲覧。
- ^ ab 「Apple - Aperture - 技術仕様」。2009年9月20日閲覧。
- ^ 「Mac Dev Center - Image Kit プログラミング ガイド - Image Kit プログラミング ガイドの概要」 。2009年9 月 20 日閲覧。
- ^ シン2006、97ページ。
- ^ 「Mac Dev Center - Core Image プログラミング ガイド - Core Image の概念 - カラー コンポーネントとプリマルチプライ アルファ」 。2009年9 月 20 日閲覧。
- ^ ab 「Mac OS X 10.4 - Quartz Extreme および Core Image Graphics の要件」。2014 年 11 月 9 日時点のオリジナルよりアーカイブ。2009年9 月 20 日閲覧。
- ^ 「Core Image Filter Reference」。2024年5月19日時点のオリジナルよりアーカイブ。2024年7月24日閲覧。
文献
- Singh, Amit (2006 年 6 月 19 日)。Mac OS X 内部: システムアプローチ。Addison-Wesley Professional。ISBN 978-0-13-270226-3。
外部リンク
- Core Image プログラミング ガイド – Mac OS X 開発者ライブラリ
- Apple、Mac OS X「Tiger」をプレビュー - Core Imageを含むMac OS X 10.4を発表
- Filterpedia - Simon Gladman によるカスタム GLSL および Metal ベースのフィルターとともに、利用可能なほぼすべての組み込み CoreImage フィルターをデモンストレーションするオープン ソースのSwiftアプリ。
