(57)【要約】【課題】画像処理システムにおいて、ユーザが操作したパラメータを監視し、パラメータの操作状況に応じて、ＧＰＵに実行させる画像処理命令を使い分ける情報処理装置および情報処理方法を提供する。【解決手段】複数の画像処理命令を実行可能なグラフィックス・プロセッシング・ユニットと、前記画像処理命令に対応した操作パラメータの、ユーザによる操作を検知する検知部と、前記グラフィックス・プロセッシング・ユニットにおいて実行される前記画像処理命令の組み合わせを命令セットとして保持する命令セット記憶部と、前記パラメータ比較部における比較結果に基づき、前記命令セット記憶部が保持する前記命令セットの中から、前記グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する命令セット選択部とを備える。【選択図】図１３
2013218631.tif 000002
【特許請求の範囲】
【請求項１】
複数の画像処理命令を実行可能なグラフィックス・プロセッシング・ユニットと、
前記画像処理命令に対応した操作パラメータの、ユーザによる操作を検知する検知部と、
前記グラフィックス・プロセッシング・ユニットにおいて実行される前記画像処理命令の組み合わせを命令セットとして保持する命令セット記憶部と、
前記パラメータ比較部における比較結果に基づき、前記命令セット記憶部が保持する前記命令セットの中から、前記グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する命令セット選択部と
を備えた情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記検知部は、
前記操作パラメータの初期値を保持する初期値記憶部と、
ユーザが操作した前記操作パラメータと前記初期値記憶部が保持する初期値とが相違するかを比較するパラメータ比較部と
を備えた情報処理装置。
【請求項３】
請求項１に記載の情報処理装置であって、
前記命令セット記憶部は、前記命令セットを、前記操作パラメータの組み合わせ分だけ保持する情報処理装置。
【請求項４】
情報処理装置内の検知部が、ユーザの操作した操作パラメータを検知し、
前記情報処理装置内の命令セット選択部が、前記検知部による検知結果に基づき、命令セット記憶部が保持する、自装置内のグラフィックス・プロセッシング・ユニットにおいて実行される、操作パラメータに対応した画像処理命令の組み合わせである命令セットの中から、該グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する
情報処理方法。
【請求項５】
複数の画像処理命令を実行可能なグラフィックス・プロセッシング・ユニットを具備するコンピュータを動作させる情報処理プログラムであって、
前記画像処理命令に対応した操作パラメータの、ユーザによる操作を検知する検知部、
前記グラフィックス・プロセッシング・ユニットにおいて実行される前記画像処理命令の組み合わせを命令セットとして保持する命令セット記憶部、および
前記パラメータ比較部における比較結果に基づき、前記命令セット記憶部が保持する前記命令セットの中から、前記グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する命令セット選択部として、前記コンピュータを機能させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、ＧＰＵ（Graphics Processing Unit）を用いて画像のエフェクト処理を行う情報処理装置に関する。
【背景技術】
【０００２】
画像処理の分野においても、以前は専用ハードウェアでのみ実装可能であった処理が、汎用計算機上において実行されるプログラムにより実装される状況が本格的になってきた。それは、ＣＰＵやメモリの性能向上により、プログラムによる実装でも、ユーザが満足する程度の処理速度が得られるようになったからである。
【０００３】
また、さらなる高速化を目指してＣＰＵで実行させるソフトウエア以外に「登録4325123」にあるようにＤＳＰを組み込んだ実装例がある。
【０００４】
近年では計算機に組み込まれているグラフィック・レンダリング用のＧＰＵ(Graphics Processing Unit)を、レンダリングのみならず、他の数値演算にも利用するＧＰＧＰＵ (General-purpose computing on graphics processing units; ＧＰＵによる汎目的計算)という技術分野が存在する。
【０００５】
ＧＰＵは安価なうえ、入手が容易であり、かつ高速な演算が実現できるため、画像の特殊効果（エフェクト）などの処理を行うＧＰＵを組み込んだ編集システムがローコストで開発できるようになった。
【０００６】
しかしながら、単純にＧＰＵ上で動作するプログラムを作成し、実行すれば、簡単に高速化が図れるというわけではない。サイズの大きな画像の処理や、演算量の多い画像処理を、リアルタイムに実現するには、そのプログラム開発において、画像処理アルゴリズムの工夫や、実装上の工夫が必要である。
【０００７】
最近では、ＧＰＵを使った演算の高速化の工夫に言及する発明が、いくつか公開されている。
【０００８】
例えば特許文献１は、ビデオ信号の復号に関して、ＧＰＵとＣＰＵで処理ステップを使い分け、ＧＰＵとＣＰＵの作業負担の釣り合いをとるものである。ＣＰＵとＧＰＵの間のデータ通信が最小限にされ、ＣＰＵおよびＧＰＵの作業負荷の釣合いがとられ、ＧＰＵにオフロードされるモジュールを、効率的に実現できるという技術が開示されている。
【０００９】
また、特許文献２のように、ＧＰＵの利点である多数の並列演算に適した形態に処理アルゴリズムを適合させる例もある。特許文献２において開示されている髪シミュレーション方法は、粒子モデルを用いて毛髪をモデル化しており、ＧＰＵ上で作動させることができるようになっている。ここで開示されている髪シミュレーション方法で用いる粒子モデルは、粒子モデルを構成する各粒子を並列に処理することが可能であるため、ＧＰＵを用いた実装に適しているという。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１０−１３０６９６号公報
【特許文献２】特開２００９−２０８７４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ＧＰＧＰＵに関連する発明は、未だ少ないのが現状である。
【００１２】
以上のような事情に鑑み、本技術の目的は、画像処理システムにおいて、ユーザが操作したパラメータを監視し、パラメータの操作状況に応じて、ＧＰＵに実行させる画像処理命令を使い分ける情報処理装置、情報処理方法、および情報処理プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
（１）上記目的を達成するため、本技術の一形態に係る情報処理装置は、複数の画像処理命令を実行可能なグラフィックス・プロセッシング・ユニットと、前記画像処理命令に対応した操作パラメータの、ユーザによる操作を検知する検知部と、前記グラフィックス・プロセッシング・ユニットにおいて実行される前記画像処理命令の組み合わせを命令セットとして保持する命令セット記憶部と、前記パラメータ比較部における比較結果に基づき、前記命令セット記憶部が保持する前記命令セットの中から、前記グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する命令セット選択部とを備える。
【００１４】
本技術では、画像処理を行う際に、ユーザがＧＵＩを用いて入力した操作パラメータを検知部が検知する。また、命令セット記憶部には、グラフィックス・プロセッシング・ユニットにおいて実行される画像処理命令の組み合わせが、命令セットとして保持されている。なお、命令セット中の画像処理命令は、操作パラメータに対応している。命令セット選択部が、命令セット記憶部が保持している命令セットの中から、検知部による検知結果に基づいて、対応した命令セットを選択する。そして、選択された命令セットはグラフィックス・プロセッシング・ユニットに送られて実行される。
【００１５】
これにより、ユーザがＧＵＩ上で操作していない操作パラメータに対応した画像処理命令が、命令セットに含まれることは無いので、無駄な処理がグラフィックス・プロセッシング・ユニット上において実行されることを防ぐことができる。そして画像処理全体の高速化を実現することができる。
【００１６】
（２）また、前記検知部は、前記操作パラメータの初期値を保持する初期値記憶部と、ユーザが操作した前記操作パラメータと前記初期値記憶部が保持する初期値とが相違するかを比較するパラメータ比較部を備えてもよい。
【００１７】
初期値記憶部が、ユーザが画像処理の操作を行うＧＵＩ上の操作パラメータの初期値を保持している。画像処理を行う際に、ユーザがＧＵＩを用いて入力した操作パラメータと、初期値記憶部が保持している、操作パラメータの初期値とが、パラメータ比較部により比較され、ユーザが入力した操作パラメータと初期値とに相違があるか否かが判断される。
【００１８】
これにより、ユーザがＧＵＩ上で操作していない、すなわち初期値から操作されていない操作パラメータに対応した画像処理命令が、命令セットに含まれることは無いので、無駄な処理がグラフィックス・プロセッシング・ユニット上において実行されることを防ぐことができる。そして画像処理全体の高速化を実現することができる。
【００１９】
（３）また、前記命令セット記憶部は、画像処理命令の組み合わせ、すなわち命令セットを、操作パラメータの組み合わせ分だけ保持してもよい。予め、操作パラメータの組み合わせ分だけ保持することにより、操作パラメータがどのような組み合わせで操作されても、対応した命令セットを適切に選択し、グラフィックス・プロセッシング・ユニットに送って実行させることができる。
【００２０】
（４）本技術に係る情報処理方法は、情報処理装置内の検知部が、ユーザの操作した操作パラメータを検知し、前記情報処理装置内の命令セット選択部が、前記検知部による検知結果に基づき、命令セット記憶部が保持する、自装置内のグラフィックス・プロセッシング・ユニットにおいて実行される、操作パラメータに対応した画像処理命令の組み合わせである命令セットの中から、該グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択するものである。
【００２１】
（５）本技術に係る情報処理プログラムは、複数の画像処理命令を実行可能なグラフィックス・プロセッシング・ユニットを具備するコンピュータを動作させる情報処理プログラムであって、前記画像処理命令に対応した操作パラメータの、ユーザによる操作を検知する検知部、前記グラフィックス・プロセッシング・ユニットにおいて実行される前記画像処理命令の組み合わせを命令セットとして保持する命令セット記憶部、および前記パラメータ比較部における比較結果に基づき、前記命令セット記憶部が保持する前記命令セットの中から、前記グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する命令セット選択部として、前記コンピュータを機能させるものである。
【発明の効果】
【００２２】
以上のように、本技術によれば、画像処理における冗長な演算を排除することができ、複数の画像処理を行って処理結果を得る場合には、処理の高速化が実現できる。
【図面の簡単な説明】
【００２３】
【図１】本技術の一実施形態に係るカラーグレーディングシステムの構成を示す図である。
【図２】カラーグレーディングシステムのＧＵＩおよび画像処理結果の例を示す図である。
【図３】情報処理装置のハードウェア構成を表すブロック図である。
【図４】カラーグレーディング処理の処理結果の例を示す図である。
【図５】複数のレイヤ処理の組み合わせ例を示す図である。
【図６】１つのレイヤ処理に相当する処理ブロックを示す図である。
【図７】「空間領域指定１」と「空間領域指定２」の違いを表す概念図である。
【図８】レイヤ処理におけるＡＮＤ合成の概念図である。
【図９】レイヤ合成のブロック図である。
【図１０】ＯＲ合成の概念図である。
【図１１】ＧＰＵ画像処理命令の選択処理を表すブロック図である。
【図１２】ＧＰＵ画像処理命令の選択処理（一般化したもの）を表すブロック図である。
【図１３】情報処理装置の機能ブロック図である。
【図１４】カラーグレーディングシステムの操作ＧＵＩの例である。
【図１５】カラーグレーディングシステムの操作ＧＵＩの例である。
【図１６】カラーグレーディングシステムの操作ＧＵＩの例である。
【図１７】カラーグレーディングシステムの操作ＧＵＩの例である。
【図１８】カラーグレーディングシステムの操作ＧＵＩの例である。
【図１９】本技術の適用範囲を示すスレッド命令を説明する図である。
【発明を実施するための形態】
【００２４】
以下、本技術に係る実施形態を、図面を参照しながら説明する。
【００２５】
なお、以下の説明では、本技術をデジタルシネマなどの映像編集分野における画像の加工を行うエフェクト処理に適用することを想定している。
【００２６】
＜概要＞
本技術は、画像のうち、加工する領域を指定する演算命令や指定された領域に対して行うエフェクト処理の演算命令をＧＰＵ（Graphics Processing Unit）に送る際に、予め領域指定やエフェクト処理のパラメータをチェックすることにより、実行しない演算命令を省略して選択的に命令を送ることにより、ＧＰＵにおける処理時間を短縮するものである。
【００２７】
＜第１の実施形態＞
エフェクト処理には様々な種類のものがあるが、以下では、撮影された画像の色あいを自由に補正するカラーグレーディングシステムを例に説明する。なお、カラーグレーディングでは、ユーザが調整可能な多数の操作パラメータが存在するが、説明を簡略化するため、ここでは、操作パラメータは「空間領域指定パラメータ」、「色領域指定パラメータ」、「色補正パラメータ」の３種類として説明する。
【００２８】
図1は、カラーグレーディングシステムの構成を示す図である。ユーザは、そのＧＵＩを見ながらパラメータを調整できる。操作入力装置１８は、マウスやキーボードなどの入力手段である。表示装置１９は、パラメータを操作するためのＧＵＩ（Graphical User Interface）と画像処理の結果とを表示する。
ユーザは、表示装置１９に表示されたＧＵＩを見ながら、ＧＵＩをマウスなどで操作することやキーボードから数値を入力することなどにより、各種パラメータを調整できる。
【００２９】
情報処理装置１０は、汎用的な計算機などであり、内部に演算用のＧＰＵが搭載されている。この情報処理装置１０が、画像処理を実行し、処理結果を表示装置１９上に表示する。
図２は、表示装置１９上に表示されるＧＵＩおよび画像処理結果の例を示す図である。
【００３０】
［情報処理装置１０の構成］
次に、図３は、情報処理装置１０のハードウェア構成を表すブロック図である。
【００３１】
情報処理装置１０は、ＣＰＵ部１１、ＧＰＵ部１２、記憶装置１３、表示インターフェース１４、操作インターフェース１５、ネットワークインターフェース１６、これらを相互に接続するバス１７を備える。
【００３２】
ＣＰＵ部１１は、ＣＰＵ１１１とメモリ１１２（以下「ＣＰＵメモリ」と呼ぶ。）を有し、ＣＰＵメモリ１１２に格納されたプログラムを実行させることによってＣＰＵメモリ１１２上で各種の演算処理に関する命令を実行する。ＣＰＵ部１１は、操作インターフェース１５に接続された操作入力装置１８を通じてユーザより入力された指令を解釈してプログラムの動作に反映させる。例えば、ＣＰＵ部１１は、記憶装置１３に記憶された画像データを読み出してＣＰＵメモリ１１２に取り込み、この画像データに対してエフェクト等の処理を行ったりすることができる。ＣＰＵメモリ１１２に保持された画像データは表示インターフェース１４に供給され、ここで描画処理されることによって可視的な描画データとされ、必要に応じて後述するＧＰＵ部１２によって処理された画像の描画データとマージされて表示装置１９に出力される。さらにＣＰＵ部１１は、ＣＰＵメモリ１１２に保持された処理後の画像データを、必要に応じて、ＧＰＵ部１２によって処理された画像データとマージして記憶装置１３に書き戻したりするように制御を行うことが可能である。
【００３３】
ＧＰＵ部１２は、ＧＰＵ１２１とメモリ１２２（以下「ＧＰＵメモリ１２２」と呼ぶ。）とを有し、ＧＰＵメモリ１２２に格納されたプログラムを実行させることによってＧＰＵメモリ１２２上でエフェクトなどの画像処理を並列演算処理により実行することが可能である。ＧＰＵメモリ１２２に保持された画像データは表示インターフェース１４に供給され、ここで描画処理によって可視的な描画データとされ、必要に応じて、上記のＧＰＵ部１２によって処理された画像の描画データとマージされて表示装置１９に出力される。
【００３４】
表示インターフェース１４は、表示装置１９とのインターフェースであり、ＣＰＵ部１１およびＧＰＵ部１２より供給された画像データの描画処理を行い、必要に応じて、ＣＰＵ部１１により処理された画像の描画データとＧＰＵ部１２により処理された画像の描画データをマージして１つの画像の描画データとして表示装置１９に供給する。この表示インターフェース１４の処理は、例えば、上記のＧＰＵ１２１もしくは別途設けられたＧＰＵ（図示せず）により実現される。
【００３５】
操作インターフェース１５は、操作入力装置１８とのインターフェースであり、操作入力装置１８から入力されたユーザからのデータおよび指令をＣＰＵ部１１に供給する処理などを行う。
【００３６】
記憶装置１３は、例えば、編集前の画像データおよび編集後の画像データの保存、編集処理をＣＰＵ部１１およびＧＰＵ部１２に実行させるための各種のプログラムなどを蓄積する。
【００３７】
ネットワークインターフェース１６は、ネットワーク３０との接続をとるためのインターフェースである。
【００３８】
［カラーグレーディングとレイヤ処理について］
図４は、カラーグレーディング処理の処理結果の例を示す図である。この処理結果画像が示すように、色を調整する領域は一箇所とは限らず、通常は一画面中において何箇所も調整する。(図４右側の処理結果画面に示されている画像において、それぞれ白線により囲まれた領域の色が補正されている。)  以下では、それぞれの領域に対する処理（色補正など）を、レイヤ処理と呼ぶ。
【００３９】
［複数レイヤ処理の組み合わせ例］
図５は、各レイヤ処理（後述）と、それらの結果のレイヤ合成とによって、最終的な処理結果画像を得る例を示す図である。太線は、領域画像の流れを示す。この例では、レイヤ処理ＬＰ１の結果とレイヤ処理ＬＰ２の結果とがレイヤ合成ＬＭ１により合成（例えばOR合成。詳細は後述）され、その結果に対しレイヤ処理ＬＰ３が行われる。そして、別途レイヤ処理ＬＰ４が行われた画像と、レイヤ処理ＬＰ３が行われた画像とがレイヤ合成ＬＭ２により合成され、最終的な結果画像が得られる。
【００４０】
図５に示す処理は、あくまで、レイヤ処理およびレイヤ合成の一例である。実際には、補正したい対象画像とユーザの操作との組み合わせに応じて、様々のレイヤ処理およびレイヤ合成の組み合わせが存在する。レイヤ処理およびレイヤ合成の処理内容に関して、詳細は後述する。
【００４１】
［レイヤ処理について］
図６は、１つのレイヤ処理に相当する処理ブロックを示す図である。なお、以下の説明では、図の参照符号を括弧内に示す。
まず、どの領域を対象として、色を補正するのかを決めるために、領域の形状が演算される。ユーザがＧＵＩを介して領域の形状を与える方法として、大きく分けて2種類の方法がある。「空間領域指定」および「色領域指定（ＣＳ）」である。「空間領域指定」はさらに「空間領域指定１（ＳＳ１）」および「空間領域指定２（ＳＳ２）」に分かれる。「空間領域指定１（ＳＳ１）」は、空間領域パラメータ１を入力として用いて行われる。また、「空間領域指定２（ＳＳ２）」は、「空間領域指定１（ＳＳ１）」の処理結果および空間領域パラメータ２を入力として用いて行われる。詳細は後述する。
【００４２】
次に、「空間領域指定」および「色領域指定（ＣＳ）」によりそれぞれ定められた領域の形状に対し、「ＡＮＤ合成（ＡＭ）」が行われる。「ＡＮＤ合成（ＡＭ）」が行われた後、合成された領域の形状は、領域画像として他のレイヤ処理のために出力されてもよいし、スイッチ（ＳＷ）を介して「色補正処理（ＣＭ）」に渡されてもよい。「ＡＮＤ合成」の詳細は後述する。
【００４３】
次に、スイッチ（ＳＷ）であるが、ここでは、「ＡＮＤ合成（ＡＭ）」により作成された領域画像と、他のレイヤ処理において作られた既存の領域画像とのいずれを色補正処理に用いるかを切り替えることができる。なお、太線は、領域画像の流れを示している。
【００４４】
最後に「色補正処理（ＣＭ）」がある。ここでは、入力された領域画像を基に、色補正パラメータ、および入力画像を用いて、指定された領域のみに対して色の補正処理が行われ、処理結果の画像が出力される。なお、領域画像が多値の場合は、その値に比例するように色補正の補正量が調整される。
【００４５】
［空間領域指定について］
空間領域指定について説明する。空間領域指定とは、画面内のどの領域を補正するかを空間的に直接指定する領域指定方法である。
【００４６】
空間領域指定における実際の処理は、ＣＰＵ部１１上で実行される「空間領域指定１（ＳＳ１）」と、ＧＰＵ上で演算される「空間領域指定２（ＳＳ２）」との２段階のステップから構成される。
【００４７】
図７は、「空間領域指定１（ＳＳ１）」と「空間領域指定２（ＳＳ２）」との違いを表すイメージを示す図である。
【００４８】
最初に、「空間領域指定１（ＳＳ１）」のステップでは、ユーザが、ＧＵＩを介して領域を構成する形状の境界部を、直接ポインティングすることにより領域の形状ＳＰを指定する。ＣＰＵ部１１は、ポインティングされた各点Ｐを、直線または曲線を用いて結ぶことによって、領域の形状ＳＰを生成する。
【００４９】
このポインティングの位置情報が、図６に示す「空間領域パラメータ１」に相当する。この領域形状の生成演算は、各フレームにおいて行われるわけではなく、ポインティングされた点Ｐに対して、消去、追加、移動といった修正をユーザが行った場合に、その時点においてのみ再演算される。すなわち、一旦形成された領域の形状ＳＰは、領域画像の情報として、ユーザによる修正がなされるまで保持される。
【００５０】
この領域の形状ＳＰを生成または修正する演算は、ＣＰＵ部１１上において行われる。その理由は、処理が複雑なためＧＰＵに適した並列演算化が難しい事や、各フレームにおいて演算するのではなく、ユーザが修正したときのみ再演算すれば良い事などである。
【００５１】
次に、ＧＰＵが、「空間領域指定２（ＳＳ２）」のステップを行う。「空間領域指定２（ＳＳ２）」のステップでは、ＧＰＵは、「空間領域指定１（ＳＳ１）」のステップにおいて生成または修正した、領域の形状ＳＰをベースに、その領域の形状ＳＰを、拡大したり、縮小したり、移動したり、回転させたりする演算を行う。
【００５２】
拡大、縮小、移動、回転の演算において用いられる、拡大率、移動量、および回転角が、図６に示す「空間領域パラメータ２」に相当する。
【００５３】
「空間領域指定２（ＳＳ２）」のステップが用いられるのは、ユーザが、あるオブジェクトの色を補正するために、「空間領域指定１（ＳＳ１）」のステップにおいて、オブジェクトの形状を領域指定した後である。ユーザが領域指定したフレーム以降においてオブジェクトの形状や位置が変化した場合に、色の補正を行う領域を正しく対応させるためにこのステップが用いられる。
【００５４】
領域形状の拡大、縮小、移動、および／または回転の幾何的演算は、ＧＰＵにおいて、フレーム毎に行われる。その理由は、演算が「空間領域指定１（ＳＳ１）」のステップにおいて得られた画像情報の画素ごとに行われるので、演算の並列化が容易なためである。
【００５５】
なお、「空間領域指定１（ＳＳ１）」のステップを行う代わりに、ユーザが矩形や楕円といった定形を領域の形状ＳＰとして選択することにより、「空間領域指定１（ＳＳ１）」のステップでの形状指定を省略することも可能である。
【００５６】
また、「空間領域指定２（ＳＳ２）」のステップにおいて用いる、拡大、縮小、移動、回転等のパラメータは、ユーザがＧＵＩ操作で与える以外に、ブロックマッチング等の動き検出アルゴリズムの結果から、自動的に入力することも可能である。
【００５７】
［色領域指定について］
レイヤ処理における、もう１つの領域指定手段は、色空間の閾値処理による領域指定である。例えば、ユーザは、色空間内の色相を表すＨｕｅに対し、Ａ≦Ｈｕｅ≦Ｂ  に収まる範囲の画素のみを領域として指定する。この閾値Ａ、Ｂをユーザが操作することにより、ユーザは、画像中のどの色のオブジェクトを補正したいかを指定できる。この閾値Ａ、Ｂに代表されるパラメータは、図６において示す「色領域パラメータ」に相当する。
【００５８】
「色領域指定（ＣＳ）」のステップにおける領域指定の方法は、色相の範囲指定に限らず、輝度や彩度、ＲＧＢプレーンの各レベルなど、状況に応じて様々に組み合わせることができる。
【００５９】
［ＡＮＤ合成について］
図８は、ＡＮＤ合成のイメージを示す図である。「空間領域指定」および「色領域指定」の2つの方法によってそれぞれ指定された、空間領域ＳＡおよび色領域ＣＡが重なった領域が、ＡＮＤ領域ＡＡとなる。
【００６０】
図に示すように、例えば、指定された領域に含まれる画素には１の値、それ以外の画素には０の値を持たせるなど、画像中のそれぞれの位置に応じた値を持った領域画像が生成される。
【００６１】
なお、領域の境界では、補正される部分とそうでない部分の段差が目立つため、その違和感を軽減するために、領域の境界付近の値は、０と１の中間である０．５の値にするといった多値情報として領域画像が生成されてもよい。
【００６２】
ＡＮＤ合成では、２種類の指定領域（ＳＡおよびＣＡ）に対し、ＡＮＤ領域が抽出され、最終的な領域画像として生成される。このＡＮＤ領域ＡＡの抽出は、それぞれの領域画像が２値の場合は各位相の値のＡＮＤ演算処理であり、多値の場合は各位相の値の積で求められる。
【００６３】
［レイヤ合成について］
次に、レイヤ合成の処理内容について説明する。図９はそのブロック図である。
【００６４】
レイヤ合成では、基本的に、それぞれのレイヤ処理においてなされた各領域の色補正結果に対し、ＯＲ演算が行われる。以下では、このＯＲ演算による合成をＯＲ合成（ＯＭ１）と呼ぶ。同時に、各レイヤ処理から入力される領域画像に対しても、それらの領域のＯＲ合成（ＯＭ２）が行われる。
【００６５】
図１０はＯＲ合成のイメージを示す図である。このＯＲ合成では、それぞれのレイヤ処理の処理領域が画像上で重ならない場合は、各レイヤ処理における色補正結果を合成結果とすればよいので問題はない。もし、処理領域が画像上で重なった場合は、その重なり領域ＯＬにおいて、優先順位の高い方のレイヤ処理結果を優先的に選択したり、全てのレイヤ処理の結果の平均値をとったりする方法により合成することができる。
【００６６】
［レイヤ処理の例］
前述したように、ユーザが画像の補正を行う場合、ユーザは、一画像に対し、複数のレイヤ処理を行い、その結果を重ね合わせる場合が、多く存在する。カラーグレーディングシステムでは、定型的な使い方が存在せず、状況に応じて様々な操作パラメータやレイヤ処理の組み合わせ方法が、ユーザに委ねられている。
【００６７】
カラーグレーディングシステムを使用する際の一例として、各レイヤ処理において行われる処理の具体例を、図５および図６に基づいて説明する。なお、ここでは、ＣＰＵ部１１上において行われる空間領域指定１（ＳＳ１）と、ＧＰＵ部１２上において行われる空間領域指定２（ＳＳ２）とをまとめて、空間領域指定（ＳＳ）と呼び、空間領域パラメータ１と空間領域パラメータ２とをまとめて空間領域パラメータと呼ぶ。
【００６８】
レイヤ処理ＬＰ１では、ユーザがＧＵＩ上の空間領域指定に関する操作パラメータを操作したので、その空間領域パラメータを用いて、「空間領域指定（ＳＳ）」が実行され、領域画像が生成される。それ以外の「色領域指定（ＣＳ）」「色補正処理（ＣＭ）」は、ユーザがＧＵＩ上の、関連する操作パラメータを操作しなかったので、実行されない。
【００６９】
レイヤ処理ＬＰ２では、ユーザによるＧＵＩ操作に基づき、「色領域指定（ＣＳ）」および「色補正処理（ＣＭ）」が実行される。
【００７０】
レイヤ合成ＬＭ１では、レイヤ処理ＬＰ１およびレイヤ処理ＬＰ２の処理結果が合成される。
【００７１】
レイヤ処理ＬＰ３では、レイヤ合成ＬＭ１から得られた領域画像を利用し、さらに「色補正処理（ＣＭ）」が行われる。
【００７２】
レイヤ処理ＬＰ４では、ユーザが「空間領域指定（ＳＳ）」および「色領域指定（ＣＳ）」の操作を行わなかったので、それらの処理は行われず、領域は指定されない。そこで、画面全体を対象として、一様に「色補正処理（ＣＭ）」のみが行われる。
【００７３】
レイヤ合成ＬＭ２では、レイヤ処理ＬＰ３の結果とレイヤ処理ＬＰ４の結果とが合成される。
【００７４】
表１は、以上の、各レイヤ処理の処理内容をまとめた表である。○は、そのレイヤ処理において、空間領域指定などの処理が実行されることを表し、○の無い欄は、処理が実行されないことを表す。
【表１】
2013218631.tif 000003
このように、それぞれのレイヤ処理において、必ずしも「空間領域指定（ＳＳ）」、「色領域指定（ＣＳ）」、および「色補正処理（ＣＭ）」の全てが実行されるわけではない。つまり、例えば、レイヤ処理ＬＰ１では、「空間領域指定（ＳＳ）」のみが行われるにもかかわらず、ＧＰＵへ画像処理命令を送る際に、「色領域指定（ＣＳ）」および「色補正処理（ＣＭ）」に関する画像処理命令も送られる事には無駄があった。
【００７５】
［ＧＰＵ画像処理命令の選択処理について］
そこで、本技術では、各レイヤ処理の実行に当たり、情報処理装置１０において、図１１に示す処理を行う事を提案する。
【００７６】
まず、ＣＰＵ部１１は、１つのレイヤ処理で行われる処理内容である「空間領域指定（ＳＳ）」、「色領域指定（ＣＳ）」、および「色補正処理（ＣＭ）」の３つ処理に関連する操作パラメータに関して、初期値すなわちユーザがＧＵＩを操作していない状態の操作パラメータを保持しておく。図では、「空間領域パラメータ初期値（ＩＶ１）」、「色領域パラメータ初期値（ＩＶ２）」、および「色補正パラメータ初期値（ＩＶ３）」で表される部分である。
【００７７】
次に、ユーザがＧＵＩの操作を行った際には、ＣＰＵ部１１は、保持しておいた初期値と、そのレイヤ処理に対してユーザが指定した操作パラメータとを比較し、相違があった場合は、フラグとして１を出力し、そうでない場合は０を出力する。図では、「空間領域パラメータ（ＳＡＰ）」、「色領域パラメータ（ＣＡＰ）」、および「色補正パラメータ（ＣＭＰ）」の部分、そして「比較（ＣＭＰ１〜３）」の部分が相当する。
【００７８】
ここで、「空間領域指定（ＳＳ）」、「色領域指定（ＣＳ）」、および「色補正処理（ＣＭ）」の３つの処理は、それぞれ独立して行われるので、３つの処理に対するフラグに応じて、ＧＰＵ部１２上において実行させる画像処理命令を選択する。３つの処理は、それぞれ独立して実行されうるので、３つの事象の組み合わせとして、合計８パターンの命令セットが考えられる。
【００７９】
８種類の命令セットのそれぞれでは、フラグが１の処理はＧＰＵ部１２において演算を実行するために、その演算用のＧＰＵ画像処理命令が組み込まれ、フラグが０の処理はＧＰＵ部１２における演算を省略するので、その演算用のＧＰＵ画像処理命令は含まれない。
【００８０】
次の表２は、「空間領域指定（ＳＳ）」、「色領域指定（ＣＳ）」、および「色補正処理（ＣＭ）」の３つの処理を行うためのＧＰＵ画像処理命令と、それらが含まれる命令セットとの組み合わせを示す表である。
【００８１】
例えば、命令セットＢは、空間領域指定（ＳＳ）用のＧＰＵ画像処理命令を含むので該当する欄に○がついており、それ以外の欄には○がついていないので、色領域指定用および色補正用のＧＰＵ画像処理命令は含まれない。命令セットＡの場合、何も○がついていないので、ＧＰＵ画像処理命令は含まれず、実質的にスルーの状態になる。
【表２】
2013218631.tif 000004
【００８２】
図では、命令セットＡから命令セットＨまでの８種類の命令セットが「８種類のＧＰＵ画像処理命令」の部分（ＣＳ）に保持されている。そして、「空間領域パラメータ（ＳＡＰ）」、「色領域パラメータ（ＣＡＰ）」および「色補正パラメータ（ＣＭＰ）」を各初期値と「比較（ＣＭＰ１〜３）」した結果である各フラグの値に基づき、「スイッチング（ＳＷ１）」の部分において、適切な命令セットが読み出されて、ＧＰＵ部１２に送られる。ＧＰＵ部１２では、入力画像に対し、ＣＰＵ部１１から送られてきた命令セットが実行され、出力画像として出力される。
【００８３】
これらの命令セットをレイヤ処理ごとに細かく使い分けることにより、各レイヤ処理における冗長な演算を排除することができる。また、上述したカラーグレーディングの例のように、複数レイヤ処理を行って処理結果を得る場合には、処理の高速化が実現できる。
【００８４】
なお、操作パラメータの初期値との比較処理も、ＣＰＵ部１１上において行うのではなく、ＧＰＵの命令として命令セットに組み込み、ＧＰＵ上での条件分岐演算によって行い、ＧＰＵ画像処理命令を使い分けることも考えうるが、適当とは言えない。
【００８５】
その理由として、操作パラメータの初期値との比較処理自体は、軽い演算でありＣＰＵ部１１上において実行しても、ほとんど処理の遅延が無い事や、画素単位のスレッドを配置し並列演算を行うＧＰＵ画像処理の実現形態おいては、画素毎に操作パラメータを初期値と比較し処理を切り替えることになり、かえって冗長となる事が挙げられる。
【００８６】
［ＧＰＵ画像処理命令の選択処理（一般化）について］
なお、図１２は、本技術に関し、本実施の形態に限らない、一般化したブロック図である。
【００８７】
ここでは、本実施の形態を示した図１１と一般化した形態を示す図１２との相違点のみを説明する。
【００８８】
「色領域指定（ＣＳ）」の部分は、「画素のレベル判定による領域設定」に一般化されており、初期値が「画素のレベル判定による領域設定パラメータセット初期値（ＩＶ４）」となり、操作パラメータが「画素のレベル判定による領域設定パラメータセット（ＬＡＰ）」となっている。
【００８９】
また、「色補正処理（ＣＭ）」の部分は、「エフェクト処理」に一般化されており、初期値が「エフェクト処理パラメータセット初期値（ＩＶ５）」となり、操作パラメータが「エフェクト処理パラメータセット（ＥＰＰ）」となっている。
【００９０】
なお、「ＧＰＵ画像処理命令セット（ＣＳ２）」に保持される命令セットの種類は８種類とは限らない事になる。
【００９１】
［情報処理装置１０の機能ブロック図について］
図１３において、情報処理装置１０の機能ブロック図を示す。
【００９２】
情報処理装置１０は、上述のとおり、ＣＰＵ部１１およびＧＰＵ部１２を備える。ＣＰＵ部１１は、初期値記憶部５１、パラメータ比較部５２、命令セット記憶部５３、命令セット選択部５４を備える。なお、初期値記憶部５１およびパラメータ比較部５２に代えて、検知部を設ける構成でもよい。この場合、検知部が、ユーザによるＧＵＩ操作状況を検知し、検知結果を命令セット選択部５４に与えることになる。
【００９３】
初期値記憶部５１は、レイヤ処理に際して、ユーザがＧＵＩを用いて操作する「空間領域パラメータ」、「色領域パラメータ」、および「色補正パラメータ」の初期値を保持し、それらの初期値をパラメータ比較部５２に出力する。
【００９４】
パラメータ比較部５２は、ＧＵＩを介してユーザが入力した操作パラメータと、初期値記憶部５１から取得した、操作パラメータの初期値とを比較し、比較結果としてフラグの値を命令セット選択部５４に出力する。比較の結果、ユーザが入力した操作パラメータとその初期値とに相違があった場合、パラメータ比較部５２は、フラグの値として１を出力し、相違が無い場合、０を出力する。パラメータ比較部５２での比較は、「空間領域指定（ＳＳ）」、「色領域指定（ＣＳ）」、および「色補正処理（ＣＭ）」のそれぞれの操作パラメータについて行われる。また、フラグも、「空間領域指定（ＳＳ）」、「色領域指定（ＣＳ）」、および「色補正処理（ＣＭ）」のそれぞれの操作パラメータについて設けられている。
【００９５】
なお、初期値記憶部５１およびパラメータ比較部５２は、「空間領域指定（ＳＳ）」、「色領域指定（ＣＳ）」、および「色補正処理（ＣＭ）」の３つの処理に関する操作パラメータに対応させて、３つずつ備えてもよい。すなわち、「空間領域指定（ＳＳ）」用の初期値記憶部５１は、空間領域パラメータに関する初期値のみを記憶し、「空間領域指定（ＳＳ）」用のパラメータ比較部５２は、空間領域パラメータに関してのみ、初期値とユーザに操作されたパラメータとを比較し、空間領域パラメータのみに関するフラグの値をセットする構成でもよい。
【００９６】
命令セット記憶部５３は、ＧＰＵ上において実行される画像処理命令が組み合わされた命令セットを、フラグの組み合わせに対応した数だけ保持している。本実施の形態の例では、命令セットは、命令セットＡから命令セットＨまでの８種類である。命令セット記憶部５３は、命令セット選択部５４からの要求に従って、要求された命令セットを命令セット選択部５４に出力する。
【００９７】
命令セット選択部５４は、パラメータ比較部５２から受け取ったフラグの値に基づき、その値に対応した命令セットを命令セット記憶部５３から読み出し、読み出した命令セットをＧＰＵ部１２に出力する。
【００９８】
例えば、フラグの値が「０１０」の場合、それぞれの位の値が、左から順に「空間領域指定（ＳＳ）」、「色領域指定（ＣＳ）」、および「色補正処理（ＣＭ）」の操作パラメータの比較結果を表すとすると、このフラグは、「色領域指定（ＣＳ）」の操作パラメータのみが初期値と相違している事を表す。そこで、表２より、命令セットＣが、このフラグの値に対応する命令セットとして命令セット記憶部５３から読み出され、命令セット選択部５４を介して、ＧＰＵ部１２へ送られる。
【００９９】
［操作パラメータの具体例］
上記の例では、「空間領域指定（ＳＳ）」「色領域指定（ＣＳ）」および「色補正処理（ＣＭ）」の3つの処理に関する操作パラメータの使用状況に着目して、命令セットの組み合わせを設定した。さらに、処理の演算内容を細分化し、より多くの命令セットを細かく切り替えることも考えうる。
【０１００】
実際に、「空間領域指定（ＳＳ）」、「色領域指定（ＣＳ）」、「色補正処理（ＣＭ）」の各処理の詳細においては、類似する操作パラメータも含めて、多数の処理の操作パラメータと、それを使った多数の演算手段が存在している。その理由として、ユーザは、様々な条件の入力画像に対して、想定する出力画像結果に、より的確に近づけるため、状況に応じて、操作パラメータや補正方法を使い分けるからである。
【０１０１】
空間領域パラメータの具体例として、
・楕円、矩形などの定形か、任意形状かを示す情報
・領域のポインティング位置情報
・ポインティングを結合する際に、直線でつなぐか曲線でつなぐかの情報
・領域全体の幅、高さ、回転角度、位置情報など
・領域の境界付近をなじませるソフトネスの情報
などが挙げられる。
【０１０２】
また、色領域パラメータの具体例として、
・ＨＳＬ、ＹＵＶ、ＲＧＢ等の色空間での各閾値など
・閾値付近のレベルに多値情報を加える傾斜情報
などが挙げられる。
【０１０３】
また、色補正パラメータの具体例として、
・高輝度、中輝度、低輝度各領域の色相と彩度
・輝度の上限、下限
・輝度のγ補正値
・Ｒ、Ｇ、Ｂ、および輝度それぞれの各レベル入出力曲線
・画面全体の色相、彩度調整
・領域画像以外の範囲の彩度を０にするフラグ
などが挙げられる。
【０１０４】
上記のとおり、多くの操作パラメータがある一方、１つのレイヤ処理において、これらの操作パラメータにかかわる演算の全てが実行される事は少なく、ごく一部の操作パラメータに対応した演算を行う場合が多い。
【０１０５】
このように、カラーグレーディングシステムでは、図５に示すように、多数のレイヤ処理を必要とするものの、それぞれのレイヤ処理においては、操作パラメータのごく一部しか演算しないので、本技術は効果的である。
【０１０６】
なお、本技術の考え方は、カラーグレーディングシステムに限らず、領域指定を組み合わせたブラー処理やモザイク処理など、多数の操作パラメータが存在するような他の編集用画像処理にも応用可能である。
【０１０７】
［操作用ＧＵＩの具体例］
図１４から１８において、カラーグレーディングシステムにおいてユーザが操作するＧＵＩの一例を示す。なお、本技術とは関係の無い個所の説明は行わない。
【０１０８】
図１４において、左上の領域ＡＲ１は、操作するレイヤを選択するタブである。右上の領域ＡＲ２は、「Use Key of Previous Node」と表記され、前段のレイヤの画像領域を使うか否かの選択を指定する。選択した場合、空間領域指定および色領域指定は自動的にオフに設定される。下側の領域ＡＲ３〜ＡＲ５は、色補正処理に関するもので、左からそれぞれ、低輝度領域、中輝度領域、および高輝度領域の色相と彩度を補正するものである。
【０１０９】
図１５において、一番上の領域ＡＲ６は、色補正処理に関するものであり、各スライダがそれぞれ低輝度領域、中輝度領域、および高輝度領域の輝度補正を行うものである。二番目の領域ＡＲ７も色補正処理に関するものであり、各スライダは、上から順に、全体色補正、全体彩度補正、低輝度領域の彩度補正、高輝度領域の彩度補正、輝度のオフセット、輝度のゲイン、輝度のγ補正値を調整するものである。三番目の領域ＡＲ８も色補正処理に関するものであり、出力レベルの調整を行う。入力方法は、横軸を入力レベル、縦軸を出力レベルとし、その出力曲線を直接操作するものである。Ｒ、Ｇ、Ｂ、および輝度に対して操作が可能である。
【０１１０】
図１６において、一番上の領域ＡＲ９は、色領域指定に関するものであり、色相の閾値指定による領域指定を行うものである。二番目の領域ＡＲ１０も、色領域指定に関するものであり、彩度の閾値指定による領域指定を行うものである。三番目の領域ＡＲ１１も、色領域指定に関するものであり、輝度の閾値指定による領域指定を行うものである。
【０１１１】
図１７において、一番上の領域ＡＲ１２は、空間領域指定１に関するものであり、空間領域を指定する形状を選択するものである。形状は、矩形、楕円、任意多角形、またはベジエ曲線による任意指定閉局面が選択できる。
【０１１２】
二番目の領域ＡＲ１３も空間領域指定１に関するものであり、ここに示されている操作ＧＵＩは、上段の領域ＡＲ１２において選択された形状が、任意多角形または任意閉局面の場合のものであり、点Ｐの追加や移動により形状ＳＰを生成する。上段の領域ＡＲ１２で選択された形状が矩形または楕円の場合、ユーザはその形状を直接操作する。選択された形状が矩形または楕円の場合の操作ＧＵＩの例を図１８に示す。
【０１１３】
三番目の領域ＡＲ１４も空間領域指定１に関するものであり、空間領域の境界をなじませるものである。三番目の領域ＡＲ１４は、２値（０および１）の空間領域画像に対し、ブラーを入れることにより多値画像を生成し、境界を滑らかにする。
【０１１４】
四番目の領域ＡＲ１５は、空間領域指定２に関するものであり、空間領域指定１において指定された形状である空間領域に対し、移動、拡大縮小、回転を行う量を指定する。
【０１１５】
［本技術の適用範囲について］
本技術は、ＧＰＵでの並列演算のように、多数のスレッド命令が、画像全体あるいは領域全体に均一に適用可能な状況であれば、本実施の形態において示したカラーグレーディングの例に限らず、適用できる。これについて、図１９を使って補足説明する。
【０１１６】
「case A」のように、演算Ａ、演算Ｂ、および演算Ｃを行う画像処理命令が組み込まれているスレッド命令Ａ（上記の命令セットに相当）を、画素ごとにスレッドを配置して演算させる場合を想定する。
【０１１７】
この場合、画像全体において演算Ａを行わないと判明した場合、スレッド命令は、「case B」のように、スレッド命令Ａから演算Ａを省略し、演算ＢおよびＣのみを行うスレッド命令Ｂへと変更できる。この場合、演算Ａが実行されないので、処理の高速化が図れる。この「case A」の状態を「case B」の状態に変更する事が、本実施の形態に相当する。
【０１１８】
なお、「case C」に示すように、各画素単位に演算Ａを行ったり、行わなかったりする条件分岐のあるスレッド命令は、全てのスレッド処理が終了するまで待機する場合、演算Ａを行わない画素に対するスレッド処理は早く終了する。しかし、このスレッド命令は、演算Ａを行う画素に対するスレッド処理が終了するまで待機するので、全体の高速化にはつながらない。また、画素ごとに条件分岐の演算を行うので、この点でも効率が悪い。
【０１１９】
［本技術の他の構成］
なお、本技術は以下のような構成も採ることができる。
【０１２０】
（１）複数の画像処理命令を実行可能なグラフィックス・プロセッシング・ユニットと、前記画像処理命令に対応した操作パラメータの、ユーザによる操作を検知する検知部と、前記グラフィックス・プロセッシング・ユニットにおいて実行される前記画像処理命令の組み合わせを命令セットとして保持する命令セット記憶部と、前記検知部の検知結果に基づき、前記命令セット記憶部が保持する前記命令セットの中から、前記グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する命令セット選択部とを備えた情報処理装置。
【０１２１】
（２）前記（１）に記載の情報処理装置であって、前記検知部は、前記操作パラメータの初期値を保持する初期値記憶部と、ユーザが操作した前記操作パラメータと前記初期値記憶部が保持する初期値とが相違するかを比較するパラメータ比較部とを備えた情報処理装置。
【０１２２】
（３）前記（１）から（２）のうちいずれか１つに記載の情報処理装置であって、前記命令セット記憶部は、前記命令セットを、前記操作パラメータの組み合わせ分だけ保持する情報処理装置。
【０１２３】
（４）情報処理装置内の検知部が、ユーザの操作した操作パラメータを検知し、前記情報処理装置内の命令セット選択部が、前記検知部による検知結果に基づき、命令セット記憶部が保持する、自装置内のグラフィックス・プロセッシング・ユニットにおいて実行される、操作パラメータに対応した画像処理命令の組み合わせである命令セットの中から、該グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する情報処理方法。
【０１２４】
（５）複数の画像処理命令を実行可能なグラフィックス・プロセッシング・ユニットを具備するコンピュータを動作させる情報処理プログラムであって、前記画像処理命令に対応した操作パラメータの、ユーザによる操作を検知する検知部、前記グラフィックス・プロセッシング・ユニットにおいて実行される前記画像処理命令の組み合わせを命令セットとして保持する命令セット記憶部、および前記検知部の検知結果に基づき、前記命令セット記憶部が保持する前記命令セットの中から、前記グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する命令セット選択部として、前記コンピュータを機能させるための情報処理プログラム。
【符号の説明】
【０１２５】
１０…情報処理装置
１１…ＣＰＵ部
１２…ＧＰＵ部
１８…操作入力装置
１９…表示装置
５１…初期値記憶部
５２…パラメータ比較部
５３…命令セット記憶部
５４…命令セット選択部
【図１】
2013218631.tif 000005
【図３】
2013218631.tif 000006
【図５】
2013218631.tif 000007
【図６】
2013218631.tif 000008
【図１１】
2013218631.tif 000009
【図１２】
2013218631.tif 000010
【図１３】
2013218631.tif 000011
【図２】
2013218631.tif 000012
【図４】
2013218631.tif 000013
【図７】
2013218631.tif 000014
【図８】
2013218631.tif 000015
【図９】
2013218631.tif 000016
【図１０】
2013218631.tif 000017
【図１４】
2013218631.tif 000018
【図１５】
2013218631.tif 000019
【図１６】
2013218631.tif 000020
【図１７】
2013218631.tif 000021
【図１８】
2013218631.tif 000022
【図１９】
2013218631.tif 000023