JP2013218631A - 情報処理装置、情報処理方法、および情報処理プログラム - Google Patents

情報処理装置、情報処理方法、および情報処理プログラム Download PDF

Info

Publication number
JP2013218631A
JP2013218631A JP2012090853A JP2012090853A JP2013218631A JP 2013218631 A JP2013218631 A JP 2013218631A JP 2012090853 A JP2012090853 A JP 2012090853A JP 2012090853 A JP2012090853 A JP 2012090853A JP 2013218631 A JP2013218631 A JP 2013218631A
Authority
JP
Japan
Prior art keywords
instruction set
unit
processing
image
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012090853A
Other languages
English (en)
Inventor
Juichi Shiraki
寿一 白木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2012090853A priority Critical patent/JP2013218631A/ja
Publication of JP2013218631A publication Critical patent/JP2013218631A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)
  • Studio Devices (AREA)

Abstract

【課題】画像処理システムにおいて、ユーザが操作したパラメータを監視し、パラメータの操作状況に応じて、GPUに実行させる画像処理命令を使い分ける情報処理装置および情報処理方法を提供する。
【解決手段】複数の画像処理命令を実行可能なグラフィックス・プロセッシング・ユニットと、前記画像処理命令に対応した操作パラメータの、ユーザによる操作を検知する検知部と、前記グラフィックス・プロセッシング・ユニットにおいて実行される前記画像処理命令の組み合わせを命令セットとして保持する命令セット記憶部と、前記パラメータ比較部における比較結果に基づき、前記命令セット記憶部が保持する前記命令セットの中から、前記グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する命令セット選択部とを備える。
【選択図】図13

Description

本技術は、GPU(Graphics Processing Unit)を用いて画像のエフェクト処理を行う情報処理装置に関する。
画像処理の分野においても、以前は専用ハードウェアでのみ実装可能であった処理が、汎用計算機上において実行されるプログラムにより実装される状況が本格的になってきた。それは、CPUやメモリの性能向上により、プログラムによる実装でも、ユーザが満足する程度の処理速度が得られるようになったからである。
また、さらなる高速化を目指してCPUで実行させるソフトウエア以外に「登録4325123」にあるようにDSPを組み込んだ実装例がある。
近年では計算機に組み込まれているグラフィック・レンダリング用のGPU(Graphics Processing Unit)を、レンダリングのみならず、他の数値演算にも利用するGPGPU (General-purpose computing on graphics processing units; GPUによる汎目的計算)という技術分野が存在する。
GPUは安価なうえ、入手が容易であり、かつ高速な演算が実現できるため、画像の特殊効果(エフェクト)などの処理を行うGPUを組み込んだ編集システムがローコストで開発できるようになった。
しかしながら、単純にGPU上で動作するプログラムを作成し、実行すれば、簡単に高速化が図れるというわけではない。サイズの大きな画像の処理や、演算量の多い画像処理を、リアルタイムに実現するには、そのプログラム開発において、画像処理アルゴリズムの工夫や、実装上の工夫が必要である。
最近では、GPUを使った演算の高速化の工夫に言及する発明が、いくつか公開されている。
例えば特許文献1は、ビデオ信号の復号に関して、GPUとCPUで処理ステップを使い分け、GPUとCPUの作業負担の釣り合いをとるものである。CPUとGPUの間のデータ通信が最小限にされ、CPUおよびGPUの作業負荷の釣合いがとられ、GPUにオフロードされるモジュールを、効率的に実現できるという技術が開示されている。
また、特許文献2のように、GPUの利点である多数の並列演算に適した形態に処理アルゴリズムを適合させる例もある。特許文献2において開示されている髪シミュレーション方法は、粒子モデルを用いて毛髪をモデル化しており、GPU上で作動させることができるようになっている。ここで開示されている髪シミュレーション方法で用いる粒子モデルは、粒子モデルを構成する各粒子を並列に処理することが可能であるため、GPUを用いた実装に適しているという。
特開2010−130696号公報 特開2009−20874号公報
GPGPUに関連する発明は、未だ少ないのが現状である。
以上のような事情に鑑み、本技術の目的は、画像処理システムにおいて、ユーザが操作したパラメータを監視し、パラメータの操作状況に応じて、GPUに実行させる画像処理命令を使い分ける情報処理装置、情報処理方法、および情報処理プログラムを提供することにある。
(1)上記目的を達成するため、本技術の一形態に係る情報処理装置は、複数の画像処理命令を実行可能なグラフィックス・プロセッシング・ユニットと、前記画像処理命令に対応した操作パラメータの、ユーザによる操作を検知する検知部と、前記グラフィックス・プロセッシング・ユニットにおいて実行される前記画像処理命令の組み合わせを命令セットとして保持する命令セット記憶部と、前記パラメータ比較部における比較結果に基づき、前記命令セット記憶部が保持する前記命令セットの中から、前記グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する命令セット選択部とを備える。
本技術では、画像処理を行う際に、ユーザがGUIを用いて入力した操作パラメータを検知部が検知する。また、命令セット記憶部には、グラフィックス・プロセッシング・ユニットにおいて実行される画像処理命令の組み合わせが、命令セットとして保持されている。なお、命令セット中の画像処理命令は、操作パラメータに対応している。命令セット選択部が、命令セット記憶部が保持している命令セットの中から、検知部による検知結果に基づいて、対応した命令セットを選択する。そして、選択された命令セットはグラフィックス・プロセッシング・ユニットに送られて実行される。
これにより、ユーザがGUI上で操作していない操作パラメータに対応した画像処理命令が、命令セットに含まれることは無いので、無駄な処理がグラフィックス・プロセッシング・ユニット上において実行されることを防ぐことができる。そして画像処理全体の高速化を実現することができる。
(2)また、前記検知部は、前記操作パラメータの初期値を保持する初期値記憶部と、ユーザが操作した前記操作パラメータと前記初期値記憶部が保持する初期値とが相違するかを比較するパラメータ比較部を備えてもよい。
初期値記憶部が、ユーザが画像処理の操作を行うGUI上の操作パラメータの初期値を保持している。画像処理を行う際に、ユーザがGUIを用いて入力した操作パラメータと、初期値記憶部が保持している、操作パラメータの初期値とが、パラメータ比較部により比較され、ユーザが入力した操作パラメータと初期値とに相違があるか否かが判断される。
これにより、ユーザがGUI上で操作していない、すなわち初期値から操作されていない操作パラメータに対応した画像処理命令が、命令セットに含まれることは無いので、無駄な処理がグラフィックス・プロセッシング・ユニット上において実行されることを防ぐことができる。そして画像処理全体の高速化を実現することができる。
(3)また、前記命令セット記憶部は、画像処理命令の組み合わせ、すなわち命令セットを、操作パラメータの組み合わせ分だけ保持してもよい。予め、操作パラメータの組み合わせ分だけ保持することにより、操作パラメータがどのような組み合わせで操作されても、対応した命令セットを適切に選択し、グラフィックス・プロセッシング・ユニットに送って実行させることができる。
(4)本技術に係る情報処理方法は、情報処理装置内の検知部が、ユーザの操作した操作パラメータを検知し、前記情報処理装置内の命令セット選択部が、前記検知部による検知結果に基づき、命令セット記憶部が保持する、自装置内のグラフィックス・プロセッシング・ユニットにおいて実行される、操作パラメータに対応した画像処理命令の組み合わせである命令セットの中から、該グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択するものである。
(5)本技術に係る情報処理プログラムは、複数の画像処理命令を実行可能なグラフィックス・プロセッシング・ユニットを具備するコンピュータを動作させる情報処理プログラムであって、前記画像処理命令に対応した操作パラメータの、ユーザによる操作を検知する検知部、前記グラフィックス・プロセッシング・ユニットにおいて実行される前記画像処理命令の組み合わせを命令セットとして保持する命令セット記憶部、および前記パラメータ比較部における比較結果に基づき、前記命令セット記憶部が保持する前記命令セットの中から、前記グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する命令セット選択部として、前記コンピュータを機能させるものである。
以上のように、本技術によれば、画像処理における冗長な演算を排除することができ、複数の画像処理を行って処理結果を得る場合には、処理の高速化が実現できる。
本技術の一実施形態に係るカラーグレーディングシステムの構成を示す図である。 カラーグレーディングシステムのGUIおよび画像処理結果の例を示す図である。 情報処理装置のハードウェア構成を表すブロック図である。 カラーグレーディング処理の処理結果の例を示す図である。 複数のレイヤ処理の組み合わせ例を示す図である。 1つのレイヤ処理に相当する処理ブロックを示す図である。 「空間領域指定1」と「空間領域指定2」の違いを表す概念図である。 レイヤ処理におけるAND合成の概念図である。 レイヤ合成のブロック図である。 OR合成の概念図である。 GPU画像処理命令の選択処理を表すブロック図である。 GPU画像処理命令の選択処理(一般化したもの)を表すブロック図である。 情報処理装置の機能ブロック図である。 カラーグレーディングシステムの操作GUIの例である。 カラーグレーディングシステムの操作GUIの例である。 カラーグレーディングシステムの操作GUIの例である。 カラーグレーディングシステムの操作GUIの例である。 カラーグレーディングシステムの操作GUIの例である。 本技術の適用範囲を示すスレッド命令を説明する図である。
以下、本技術に係る実施形態を、図面を参照しながら説明する。
なお、以下の説明では、本技術をデジタルシネマなどの映像編集分野における画像の加工を行うエフェクト処理に適用することを想定している。
<概要>
本技術は、画像のうち、加工する領域を指定する演算命令や指定された領域に対して行うエフェクト処理の演算命令をGPU(Graphics Processing Unit)に送る際に、予め領域指定やエフェクト処理のパラメータをチェックすることにより、実行しない演算命令を省略して選択的に命令を送ることにより、GPUにおける処理時間を短縮するものである。
<第1の実施形態>
エフェクト処理には様々な種類のものがあるが、以下では、撮影された画像の色あいを自由に補正するカラーグレーディングシステムを例に説明する。なお、カラーグレーディングでは、ユーザが調整可能な多数の操作パラメータが存在するが、説明を簡略化するため、ここでは、操作パラメータは「空間領域指定パラメータ」、「色領域指定パラメータ」、「色補正パラメータ」の3種類として説明する。
図1は、カラーグレーディングシステムの構成を示す図である。ユーザは、そのGUIを見ながらパラメータを調整できる。操作入力装置18は、マウスやキーボードなどの入力手段である。表示装置19は、パラメータを操作するためのGUI(Graphical User Interface)と画像処理の結果とを表示する。
ユーザは、表示装置19に表示されたGUIを見ながら、GUIをマウスなどで操作することやキーボードから数値を入力することなどにより、各種パラメータを調整できる。
情報処理装置10は、汎用的な計算機などであり、内部に演算用のGPUが搭載されている。この情報処理装置10が、画像処理を実行し、処理結果を表示装置19上に表示する。
図2は、表示装置19上に表示されるGUIおよび画像処理結果の例を示す図である。
[情報処理装置10の構成]
次に、図3は、情報処理装置10のハードウェア構成を表すブロック図である。
情報処理装置10は、CPU部11、GPU部12、記憶装置13、表示インターフェース14、操作インターフェース15、ネットワークインターフェース16、これらを相互に接続するバス17を備える。
CPU部11は、CPU111とメモリ112(以下「CPUメモリ」と呼ぶ。)を有し、CPUメモリ112に格納されたプログラムを実行させることによってCPUメモリ112上で各種の演算処理に関する命令を実行する。CPU部11は、操作インターフェース15に接続された操作入力装置18を通じてユーザより入力された指令を解釈してプログラムの動作に反映させる。例えば、CPU部11は、記憶装置13に記憶された画像データを読み出してCPUメモリ112に取り込み、この画像データに対してエフェクト等の処理を行ったりすることができる。CPUメモリ112に保持された画像データは表示インターフェース14に供給され、ここで描画処理されることによって可視的な描画データとされ、必要に応じて後述するGPU部12によって処理された画像の描画データとマージされて表示装置19に出力される。さらにCPU部11は、CPUメモリ112に保持された処理後の画像データを、必要に応じて、GPU部12によって処理された画像データとマージして記憶装置13に書き戻したりするように制御を行うことが可能である。
GPU部12は、GPU121とメモリ122(以下「GPUメモリ122」と呼ぶ。)とを有し、GPUメモリ122に格納されたプログラムを実行させることによってGPUメモリ122上でエフェクトなどの画像処理を並列演算処理により実行することが可能である。GPUメモリ122に保持された画像データは表示インターフェース14に供給され、ここで描画処理によって可視的な描画データとされ、必要に応じて、上記のGPU部12によって処理された画像の描画データとマージされて表示装置19に出力される。
表示インターフェース14は、表示装置19とのインターフェースであり、CPU部11およびGPU部12より供給された画像データの描画処理を行い、必要に応じて、CPU部11により処理された画像の描画データとGPU部12により処理された画像の描画データをマージして1つの画像の描画データとして表示装置19に供給する。この表示インターフェース14の処理は、例えば、上記のGPU121もしくは別途設けられたGPU(図示せず)により実現される。
操作インターフェース15は、操作入力装置18とのインターフェースであり、操作入力装置18から入力されたユーザからのデータおよび指令をCPU部11に供給する処理などを行う。
記憶装置13は、例えば、編集前の画像データおよび編集後の画像データの保存、編集処理をCPU部11およびGPU部12に実行させるための各種のプログラムなどを蓄積する。
ネットワークインターフェース16は、ネットワーク30との接続をとるためのインターフェースである。
[カラーグレーディングとレイヤ処理について]
図4は、カラーグレーディング処理の処理結果の例を示す図である。この処理結果画像が示すように、色を調整する領域は一箇所とは限らず、通常は一画面中において何箇所も調整する。(図4右側の処理結果画面に示されている画像において、それぞれ白線により囲まれた領域の色が補正されている。) 以下では、それぞれの領域に対する処理(色補正など)を、レイヤ処理と呼ぶ。
[複数レイヤ処理の組み合わせ例]
図5は、各レイヤ処理(後述)と、それらの結果のレイヤ合成とによって、最終的な処理結果画像を得る例を示す図である。太線は、領域画像の流れを示す。この例では、レイヤ処理LP1の結果とレイヤ処理LP2の結果とがレイヤ合成LM1により合成(例えばOR合成。詳細は後述)され、その結果に対しレイヤ処理LP3が行われる。そして、別途レイヤ処理LP4が行われた画像と、レイヤ処理LP3が行われた画像とがレイヤ合成LM2により合成され、最終的な結果画像が得られる。
図5に示す処理は、あくまで、レイヤ処理およびレイヤ合成の一例である。実際には、補正したい対象画像とユーザの操作との組み合わせに応じて、様々のレイヤ処理およびレイヤ合成の組み合わせが存在する。レイヤ処理およびレイヤ合成の処理内容に関して、詳細は後述する。
[レイヤ処理について]
図6は、1つのレイヤ処理に相当する処理ブロックを示す図である。なお、以下の説明では、図の参照符号を括弧内に示す。
まず、どの領域を対象として、色を補正するのかを決めるために、領域の形状が演算される。ユーザがGUIを介して領域の形状を与える方法として、大きく分けて2種類の方法がある。「空間領域指定」および「色領域指定(CS)」である。「空間領域指定」はさらに「空間領域指定1(SS1)」および「空間領域指定2(SS2)」に分かれる。「空間領域指定1(SS1)」は、空間領域パラメータ1を入力として用いて行われる。また、「空間領域指定2(SS2)」は、「空間領域指定1(SS1)」の処理結果および空間領域パラメータ2を入力として用いて行われる。詳細は後述する。
次に、「空間領域指定」および「色領域指定(CS)」によりそれぞれ定められた領域の形状に対し、「AND合成(AM)」が行われる。「AND合成(AM)」が行われた後、合成された領域の形状は、領域画像として他のレイヤ処理のために出力されてもよいし、スイッチ(SW)を介して「色補正処理(CM)」に渡されてもよい。「AND合成」の詳細は後述する。
次に、スイッチ(SW)であるが、ここでは、「AND合成(AM)」により作成された領域画像と、他のレイヤ処理において作られた既存の領域画像とのいずれを色補正処理に用いるかを切り替えることができる。なお、太線は、領域画像の流れを示している。
最後に「色補正処理(CM)」がある。ここでは、入力された領域画像を基に、色補正パラメータ、および入力画像を用いて、指定された領域のみに対して色の補正処理が行われ、処理結果の画像が出力される。なお、領域画像が多値の場合は、その値に比例するように色補正の補正量が調整される。
[空間領域指定について]
空間領域指定について説明する。空間領域指定とは、画面内のどの領域を補正するかを空間的に直接指定する領域指定方法である。
空間領域指定における実際の処理は、CPU部11上で実行される「空間領域指定1(SS1)」と、GPU上で演算される「空間領域指定2(SS2)」との2段階のステップから構成される。
図7は、「空間領域指定1(SS1)」と「空間領域指定2(SS2)」との違いを表すイメージを示す図である。
最初に、「空間領域指定1(SS1)」のステップでは、ユーザが、GUIを介して領域を構成する形状の境界部を、直接ポインティングすることにより領域の形状SPを指定する。CPU部11は、ポインティングされた各点Pを、直線または曲線を用いて結ぶことによって、領域の形状SPを生成する。
このポインティングの位置情報が、図6に示す「空間領域パラメータ1」に相当する。この領域形状の生成演算は、各フレームにおいて行われるわけではなく、ポインティングされた点Pに対して、消去、追加、移動といった修正をユーザが行った場合に、その時点においてのみ再演算される。すなわち、一旦形成された領域の形状SPは、領域画像の情報として、ユーザによる修正がなされるまで保持される。
この領域の形状SPを生成または修正する演算は、CPU部11上において行われる。その理由は、処理が複雑なためGPUに適した並列演算化が難しい事や、各フレームにおいて演算するのではなく、ユーザが修正したときのみ再演算すれば良い事などである。
次に、GPUが、「空間領域指定2(SS2)」のステップを行う。「空間領域指定2(SS2)」のステップでは、GPUは、「空間領域指定1(SS1)」のステップにおいて生成または修正した、領域の形状SPをベースに、その領域の形状SPを、拡大したり、縮小したり、移動したり、回転させたりする演算を行う。
拡大、縮小、移動、回転の演算において用いられる、拡大率、移動量、および回転角が、図6に示す「空間領域パラメータ2」に相当する。
「空間領域指定2(SS2)」のステップが用いられるのは、ユーザが、あるオブジェクトの色を補正するために、「空間領域指定1(SS1)」のステップにおいて、オブジェクトの形状を領域指定した後である。ユーザが領域指定したフレーム以降においてオブジェクトの形状や位置が変化した場合に、色の補正を行う領域を正しく対応させるためにこのステップが用いられる。
領域形状の拡大、縮小、移動、および/または回転の幾何的演算は、GPUにおいて、フレーム毎に行われる。その理由は、演算が「空間領域指定1(SS1)」のステップにおいて得られた画像情報の画素ごとに行われるので、演算の並列化が容易なためである。
なお、「空間領域指定1(SS1)」のステップを行う代わりに、ユーザが矩形や楕円といった定形を領域の形状SPとして選択することにより、「空間領域指定1(SS1)」のステップでの形状指定を省略することも可能である。
また、「空間領域指定2(SS2)」のステップにおいて用いる、拡大、縮小、移動、回転等のパラメータは、ユーザがGUI操作で与える以外に、ブロックマッチング等の動き検出アルゴリズムの結果から、自動的に入力することも可能である。
[色領域指定について]
レイヤ処理における、もう1つの領域指定手段は、色空間の閾値処理による領域指定である。例えば、ユーザは、色空間内の色相を表すHueに対し、A≦Hue≦B に収まる範囲の画素のみを領域として指定する。この閾値A、Bをユーザが操作することにより、ユーザは、画像中のどの色のオブジェクトを補正したいかを指定できる。この閾値A、Bに代表されるパラメータは、図6において示す「色領域パラメータ」に相当する。
「色領域指定(CS)」のステップにおける領域指定の方法は、色相の範囲指定に限らず、輝度や彩度、RGBプレーンの各レベルなど、状況に応じて様々に組み合わせることができる。
[AND合成について]
図8は、AND合成のイメージを示す図である。「空間領域指定」および「色領域指定」の2つの方法によってそれぞれ指定された、空間領域SAおよび色領域CAが重なった領域が、AND領域AAとなる。
図に示すように、例えば、指定された領域に含まれる画素には1の値、それ以外の画素には0の値を持たせるなど、画像中のそれぞれの位置に応じた値を持った領域画像が生成される。
なお、領域の境界では、補正される部分とそうでない部分の段差が目立つため、その違和感を軽減するために、領域の境界付近の値は、0と1の中間である0.5の値にするといった多値情報として領域画像が生成されてもよい。
AND合成では、2種類の指定領域(SAおよびCA)に対し、AND領域が抽出され、最終的な領域画像として生成される。このAND領域AAの抽出は、それぞれの領域画像が2値の場合は各位相の値のAND演算処理であり、多値の場合は各位相の値の積で求められる。
[レイヤ合成について]
次に、レイヤ合成の処理内容について説明する。図9はそのブロック図である。
レイヤ合成では、基本的に、それぞれのレイヤ処理においてなされた各領域の色補正結果に対し、OR演算が行われる。以下では、このOR演算による合成をOR合成(OM1)と呼ぶ。同時に、各レイヤ処理から入力される領域画像に対しても、それらの領域のOR合成(OM2)が行われる。
図10はOR合成のイメージを示す図である。このOR合成では、それぞれのレイヤ処理の処理領域が画像上で重ならない場合は、各レイヤ処理における色補正結果を合成結果とすればよいので問題はない。もし、処理領域が画像上で重なった場合は、その重なり領域OLにおいて、優先順位の高い方のレイヤ処理結果を優先的に選択したり、全てのレイヤ処理の結果の平均値をとったりする方法により合成することができる。
[レイヤ処理の例]
前述したように、ユーザが画像の補正を行う場合、ユーザは、一画像に対し、複数のレイヤ処理を行い、その結果を重ね合わせる場合が、多く存在する。カラーグレーディングシステムでは、定型的な使い方が存在せず、状況に応じて様々な操作パラメータやレイヤ処理の組み合わせ方法が、ユーザに委ねられている。
カラーグレーディングシステムを使用する際の一例として、各レイヤ処理において行われる処理の具体例を、図5および図6に基づいて説明する。なお、ここでは、CPU部11上において行われる空間領域指定1(SS1)と、GPU部12上において行われる空間領域指定2(SS2)とをまとめて、空間領域指定(SS)と呼び、空間領域パラメータ1と空間領域パラメータ2とをまとめて空間領域パラメータと呼ぶ。
レイヤ処理LP1では、ユーザがGUI上の空間領域指定に関する操作パラメータを操作したので、その空間領域パラメータを用いて、「空間領域指定(SS)」が実行され、領域画像が生成される。それ以外の「色領域指定(CS)」「色補正処理(CM)」は、ユーザがGUI上の、関連する操作パラメータを操作しなかったので、実行されない。
レイヤ処理LP2では、ユーザによるGUI操作に基づき、「色領域指定(CS)」および「色補正処理(CM)」が実行される。
レイヤ合成LM1では、レイヤ処理LP1およびレイヤ処理LP2の処理結果が合成される。
レイヤ処理LP3では、レイヤ合成LM1から得られた領域画像を利用し、さらに「色補正処理(CM)」が行われる。
レイヤ処理LP4では、ユーザが「空間領域指定(SS)」および「色領域指定(CS)」の操作を行わなかったので、それらの処理は行われず、領域は指定されない。そこで、画面全体を対象として、一様に「色補正処理(CM)」のみが行われる。
レイヤ合成LM2では、レイヤ処理LP3の結果とレイヤ処理LP4の結果とが合成される。
表1は、以上の、各レイヤ処理の処理内容をまとめた表である。○は、そのレイヤ処理において、空間領域指定などの処理が実行されることを表し、○の無い欄は、処理が実行されないことを表す。
このように、それぞれのレイヤ処理において、必ずしも「空間領域指定(SS)」、「色領域指定(CS)」、および「色補正処理(CM)」の全てが実行されるわけではない。つまり、例えば、レイヤ処理LP1では、「空間領域指定(SS)」のみが行われるにもかかわらず、GPUへ画像処理命令を送る際に、「色領域指定(CS)」および「色補正処理(CM)」に関する画像処理命令も送られる事には無駄があった。
[GPU画像処理命令の選択処理について]
そこで、本技術では、各レイヤ処理の実行に当たり、情報処理装置10において、図11に示す処理を行う事を提案する。
まず、CPU部11は、1つのレイヤ処理で行われる処理内容である「空間領域指定(SS)」、「色領域指定(CS)」、および「色補正処理(CM)」の3つ処理に関連する操作パラメータに関して、初期値すなわちユーザがGUIを操作していない状態の操作パラメータを保持しておく。図では、「空間領域パラメータ初期値(IV1)」、「色領域パラメータ初期値(IV2)」、および「色補正パラメータ初期値(IV3)」で表される部分である。
次に、ユーザがGUIの操作を行った際には、CPU部11は、保持しておいた初期値と、そのレイヤ処理に対してユーザが指定した操作パラメータとを比較し、相違があった場合は、フラグとして1を出力し、そうでない場合は0を出力する。図では、「空間領域パラメータ(SAP)」、「色領域パラメータ(CAP)」、および「色補正パラメータ(CMP)」の部分、そして「比較(CMP1〜3)」の部分が相当する。
ここで、「空間領域指定(SS)」、「色領域指定(CS)」、および「色補正処理(CM)」の3つの処理は、それぞれ独立して行われるので、3つの処理に対するフラグに応じて、GPU部12上において実行させる画像処理命令を選択する。3つの処理は、それぞれ独立して実行されうるので、3つの事象の組み合わせとして、合計8パターンの命令セットが考えられる。
8種類の命令セットのそれぞれでは、フラグが1の処理はGPU部12において演算を実行するために、その演算用のGPU画像処理命令が組み込まれ、フラグが0の処理はGPU部12における演算を省略するので、その演算用のGPU画像処理命令は含まれない。
次の表2は、「空間領域指定(SS)」、「色領域指定(CS)」、および「色補正処理(CM)」の3つの処理を行うためのGPU画像処理命令と、それらが含まれる命令セットとの組み合わせを示す表である。
例えば、命令セットBは、空間領域指定(SS)用のGPU画像処理命令を含むので該当する欄に○がついており、それ以外の欄には○がついていないので、色領域指定用および色補正用のGPU画像処理命令は含まれない。命令セットAの場合、何も○がついていないので、GPU画像処理命令は含まれず、実質的にスルーの状態になる。
図では、命令セットAから命令セットHまでの8種類の命令セットが「8種類のGPU画像処理命令」の部分(CS)に保持されている。そして、「空間領域パラメータ(SAP)」、「色領域パラメータ(CAP)」および「色補正パラメータ(CMP)」を各初期値と「比較(CMP1〜3)」した結果である各フラグの値に基づき、「スイッチング(SW1)」の部分において、適切な命令セットが読み出されて、GPU部12に送られる。GPU部12では、入力画像に対し、CPU部11から送られてきた命令セットが実行され、出力画像として出力される。
これらの命令セットをレイヤ処理ごとに細かく使い分けることにより、各レイヤ処理における冗長な演算を排除することができる。また、上述したカラーグレーディングの例のように、複数レイヤ処理を行って処理結果を得る場合には、処理の高速化が実現できる。
なお、操作パラメータの初期値との比較処理も、CPU部11上において行うのではなく、GPUの命令として命令セットに組み込み、GPU上での条件分岐演算によって行い、GPU画像処理命令を使い分けることも考えうるが、適当とは言えない。
その理由として、操作パラメータの初期値との比較処理自体は、軽い演算でありCPU部11上において実行しても、ほとんど処理の遅延が無い事や、画素単位のスレッドを配置し並列演算を行うGPU画像処理の実現形態おいては、画素毎に操作パラメータを初期値と比較し処理を切り替えることになり、かえって冗長となる事が挙げられる。
[GPU画像処理命令の選択処理(一般化)について]
なお、図12は、本技術に関し、本実施の形態に限らない、一般化したブロック図である。
ここでは、本実施の形態を示した図11と一般化した形態を示す図12との相違点のみを説明する。
「色領域指定(CS)」の部分は、「画素のレベル判定による領域設定」に一般化されており、初期値が「画素のレベル判定による領域設定パラメータセット初期値(IV4)」となり、操作パラメータが「画素のレベル判定による領域設定パラメータセット(LAP)」となっている。
また、「色補正処理(CM)」の部分は、「エフェクト処理」に一般化されており、初期値が「エフェクト処理パラメータセット初期値(IV5)」となり、操作パラメータが「エフェクト処理パラメータセット(EPP)」となっている。
なお、「GPU画像処理命令セット(CS2)」に保持される命令セットの種類は8種類とは限らない事になる。
[情報処理装置10の機能ブロック図について]
図13において、情報処理装置10の機能ブロック図を示す。
情報処理装置10は、上述のとおり、CPU部11およびGPU部12を備える。CPU部11は、初期値記憶部51、パラメータ比較部52、命令セット記憶部53、命令セット選択部54を備える。なお、初期値記憶部51およびパラメータ比較部52に代えて、検知部を設ける構成でもよい。この場合、検知部が、ユーザによるGUI操作状況を検知し、検知結果を命令セット選択部54に与えることになる。
初期値記憶部51は、レイヤ処理に際して、ユーザがGUIを用いて操作する「空間領域パラメータ」、「色領域パラメータ」、および「色補正パラメータ」の初期値を保持し、それらの初期値をパラメータ比較部52に出力する。
パラメータ比較部52は、GUIを介してユーザが入力した操作パラメータと、初期値記憶部51から取得した、操作パラメータの初期値とを比較し、比較結果としてフラグの値を命令セット選択部54に出力する。比較の結果、ユーザが入力した操作パラメータとその初期値とに相違があった場合、パラメータ比較部52は、フラグの値として1を出力し、相違が無い場合、0を出力する。パラメータ比較部52での比較は、「空間領域指定(SS)」、「色領域指定(CS)」、および「色補正処理(CM)」のそれぞれの操作パラメータについて行われる。また、フラグも、「空間領域指定(SS)」、「色領域指定(CS)」、および「色補正処理(CM)」のそれぞれの操作パラメータについて設けられている。
なお、初期値記憶部51およびパラメータ比較部52は、「空間領域指定(SS)」、「色領域指定(CS)」、および「色補正処理(CM)」の3つの処理に関する操作パラメータに対応させて、3つずつ備えてもよい。すなわち、「空間領域指定(SS)」用の初期値記憶部51は、空間領域パラメータに関する初期値のみを記憶し、「空間領域指定(SS)」用のパラメータ比較部52は、空間領域パラメータに関してのみ、初期値とユーザに操作されたパラメータとを比較し、空間領域パラメータのみに関するフラグの値をセットする構成でもよい。
命令セット記憶部53は、GPU上において実行される画像処理命令が組み合わされた命令セットを、フラグの組み合わせに対応した数だけ保持している。本実施の形態の例では、命令セットは、命令セットAから命令セットHまでの8種類である。命令セット記憶部53は、命令セット選択部54からの要求に従って、要求された命令セットを命令セット選択部54に出力する。
命令セット選択部54は、パラメータ比較部52から受け取ったフラグの値に基づき、その値に対応した命令セットを命令セット記憶部53から読み出し、読み出した命令セットをGPU部12に出力する。
例えば、フラグの値が「010」の場合、それぞれの位の値が、左から順に「空間領域指定(SS)」、「色領域指定(CS)」、および「色補正処理(CM)」の操作パラメータの比較結果を表すとすると、このフラグは、「色領域指定(CS)」の操作パラメータのみが初期値と相違している事を表す。そこで、表2より、命令セットCが、このフラグの値に対応する命令セットとして命令セット記憶部53から読み出され、命令セット選択部54を介して、GPU部12へ送られる。
[操作パラメータの具体例]
上記の例では、「空間領域指定(SS)」「色領域指定(CS)」および「色補正処理(CM)」の3つの処理に関する操作パラメータの使用状況に着目して、命令セットの組み合わせを設定した。さらに、処理の演算内容を細分化し、より多くの命令セットを細かく切り替えることも考えうる。
実際に、「空間領域指定(SS)」、「色領域指定(CS)」、「色補正処理(CM)」の各処理の詳細においては、類似する操作パラメータも含めて、多数の処理の操作パラメータと、それを使った多数の演算手段が存在している。その理由として、ユーザは、様々な条件の入力画像に対して、想定する出力画像結果に、より的確に近づけるため、状況に応じて、操作パラメータや補正方法を使い分けるからである。
空間領域パラメータの具体例として、
・楕円、矩形などの定形か、任意形状かを示す情報
・領域のポインティング位置情報
・ポインティングを結合する際に、直線でつなぐか曲線でつなぐかの情報
・領域全体の幅、高さ、回転角度、位置情報など
・領域の境界付近をなじませるソフトネスの情報
などが挙げられる。
また、色領域パラメータの具体例として、
・HSL、YUV、RGB等の色空間での各閾値など
・閾値付近のレベルに多値情報を加える傾斜情報
などが挙げられる。
また、色補正パラメータの具体例として、
・高輝度、中輝度、低輝度各領域の色相と彩度
・輝度の上限、下限
・輝度のγ補正値
・R、G、B、および輝度それぞれの各レベル入出力曲線
・画面全体の色相、彩度調整
・領域画像以外の範囲の彩度を0にするフラグ
などが挙げられる。
上記のとおり、多くの操作パラメータがある一方、1つのレイヤ処理において、これらの操作パラメータにかかわる演算の全てが実行される事は少なく、ごく一部の操作パラメータに対応した演算を行う場合が多い。
このように、カラーグレーディングシステムでは、図5に示すように、多数のレイヤ処理を必要とするものの、それぞれのレイヤ処理においては、操作パラメータのごく一部しか演算しないので、本技術は効果的である。
なお、本技術の考え方は、カラーグレーディングシステムに限らず、領域指定を組み合わせたブラー処理やモザイク処理など、多数の操作パラメータが存在するような他の編集用画像処理にも応用可能である。
[操作用GUIの具体例]
図14から18において、カラーグレーディングシステムにおいてユーザが操作するGUIの一例を示す。なお、本技術とは関係の無い個所の説明は行わない。
図14において、左上の領域AR1は、操作するレイヤを選択するタブである。右上の領域AR2は、「Use Key of Previous Node」と表記され、前段のレイヤの画像領域を使うか否かの選択を指定する。選択した場合、空間領域指定および色領域指定は自動的にオフに設定される。下側の領域AR3〜AR5は、色補正処理に関するもので、左からそれぞれ、低輝度領域、中輝度領域、および高輝度領域の色相と彩度を補正するものである。
図15において、一番上の領域AR6は、色補正処理に関するものであり、各スライダがそれぞれ低輝度領域、中輝度領域、および高輝度領域の輝度補正を行うものである。二番目の領域AR7も色補正処理に関するものであり、各スライダは、上から順に、全体色補正、全体彩度補正、低輝度領域の彩度補正、高輝度領域の彩度補正、輝度のオフセット、輝度のゲイン、輝度のγ補正値を調整するものである。三番目の領域AR8も色補正処理に関するものであり、出力レベルの調整を行う。入力方法は、横軸を入力レベル、縦軸を出力レベルとし、その出力曲線を直接操作するものである。R、G、B、および輝度に対して操作が可能である。
図16において、一番上の領域AR9は、色領域指定に関するものであり、色相の閾値指定による領域指定を行うものである。二番目の領域AR10も、色領域指定に関するものであり、彩度の閾値指定による領域指定を行うものである。三番目の領域AR11も、色領域指定に関するものであり、輝度の閾値指定による領域指定を行うものである。
図17において、一番上の領域AR12は、空間領域指定1に関するものであり、空間領域を指定する形状を選択するものである。形状は、矩形、楕円、任意多角形、またはベジエ曲線による任意指定閉局面が選択できる。
二番目の領域AR13も空間領域指定1に関するものであり、ここに示されている操作GUIは、上段の領域AR12において選択された形状が、任意多角形または任意閉局面の場合のものであり、点Pの追加や移動により形状SPを生成する。上段の領域AR12で選択された形状が矩形または楕円の場合、ユーザはその形状を直接操作する。選択された形状が矩形または楕円の場合の操作GUIの例を図18に示す。
三番目の領域AR14も空間領域指定1に関するものであり、空間領域の境界をなじませるものである。三番目の領域AR14は、2値(0および1)の空間領域画像に対し、ブラーを入れることにより多値画像を生成し、境界を滑らかにする。
四番目の領域AR15は、空間領域指定2に関するものであり、空間領域指定1において指定された形状である空間領域に対し、移動、拡大縮小、回転を行う量を指定する。
[本技術の適用範囲について]
本技術は、GPUでの並列演算のように、多数のスレッド命令が、画像全体あるいは領域全体に均一に適用可能な状況であれば、本実施の形態において示したカラーグレーディングの例に限らず、適用できる。これについて、図19を使って補足説明する。
「case A」のように、演算A、演算B、および演算Cを行う画像処理命令が組み込まれているスレッド命令A(上記の命令セットに相当)を、画素ごとにスレッドを配置して演算させる場合を想定する。
この場合、画像全体において演算Aを行わないと判明した場合、スレッド命令は、「case B」のように、スレッド命令Aから演算Aを省略し、演算BおよびCのみを行うスレッド命令Bへと変更できる。この場合、演算Aが実行されないので、処理の高速化が図れる。この「case A」の状態を「case B」の状態に変更する事が、本実施の形態に相当する。
なお、「case C」に示すように、各画素単位に演算Aを行ったり、行わなかったりする条件分岐のあるスレッド命令は、全てのスレッド処理が終了するまで待機する場合、演算Aを行わない画素に対するスレッド処理は早く終了する。しかし、このスレッド命令は、演算Aを行う画素に対するスレッド処理が終了するまで待機するので、全体の高速化にはつながらない。また、画素ごとに条件分岐の演算を行うので、この点でも効率が悪い。
[本技術の他の構成]
なお、本技術は以下のような構成も採ることができる。
(1)複数の画像処理命令を実行可能なグラフィックス・プロセッシング・ユニットと、前記画像処理命令に対応した操作パラメータの、ユーザによる操作を検知する検知部と、前記グラフィックス・プロセッシング・ユニットにおいて実行される前記画像処理命令の組み合わせを命令セットとして保持する命令セット記憶部と、前記検知部の検知結果に基づき、前記命令セット記憶部が保持する前記命令セットの中から、前記グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する命令セット選択部とを備えた情報処理装置。
(2)前記(1)に記載の情報処理装置であって、前記検知部は、前記操作パラメータの初期値を保持する初期値記憶部と、ユーザが操作した前記操作パラメータと前記初期値記憶部が保持する初期値とが相違するかを比較するパラメータ比較部とを備えた情報処理装置。
(3)前記(1)から(2)のうちいずれか1つに記載の情報処理装置であって、前記命令セット記憶部は、前記命令セットを、前記操作パラメータの組み合わせ分だけ保持する情報処理装置。
(4)情報処理装置内の検知部が、ユーザの操作した操作パラメータを検知し、前記情報処理装置内の命令セット選択部が、前記検知部による検知結果に基づき、命令セット記憶部が保持する、自装置内のグラフィックス・プロセッシング・ユニットにおいて実行される、操作パラメータに対応した画像処理命令の組み合わせである命令セットの中から、該グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する情報処理方法。
(5)複数の画像処理命令を実行可能なグラフィックス・プロセッシング・ユニットを具備するコンピュータを動作させる情報処理プログラムであって、前記画像処理命令に対応した操作パラメータの、ユーザによる操作を検知する検知部、前記グラフィックス・プロセッシング・ユニットにおいて実行される前記画像処理命令の組み合わせを命令セットとして保持する命令セット記憶部、および前記検知部の検知結果に基づき、前記命令セット記憶部が保持する前記命令セットの中から、前記グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する命令セット選択部として、前記コンピュータを機能させるための情報処理プログラム。
10…情報処理装置
11…CPU部
12…GPU部
18…操作入力装置
19…表示装置
51…初期値記憶部
52…パラメータ比較部
53…命令セット記憶部
54…命令セット選択部

Claims (5)

  1. 複数の画像処理命令を実行可能なグラフィックス・プロセッシング・ユニットと、
    前記画像処理命令に対応した操作パラメータの、ユーザによる操作を検知する検知部と、
    前記グラフィックス・プロセッシング・ユニットにおいて実行される前記画像処理命令の組み合わせを命令セットとして保持する命令セット記憶部と、
    前記パラメータ比較部における比較結果に基づき、前記命令セット記憶部が保持する前記命令セットの中から、前記グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する命令セット選択部と
    を備えた情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記検知部は、
    前記操作パラメータの初期値を保持する初期値記憶部と、
    ユーザが操作した前記操作パラメータと前記初期値記憶部が保持する初期値とが相違するかを比較するパラメータ比較部と
    を備えた情報処理装置。
  3. 請求項1に記載の情報処理装置であって、
    前記命令セット記憶部は、前記命令セットを、前記操作パラメータの組み合わせ分だけ保持する情報処理装置。
  4. 情報処理装置内の検知部が、ユーザの操作した操作パラメータを検知し、
    前記情報処理装置内の命令セット選択部が、前記検知部による検知結果に基づき、命令セット記憶部が保持する、自装置内のグラフィックス・プロセッシング・ユニットにおいて実行される、操作パラメータに対応した画像処理命令の組み合わせである命令セットの中から、該グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する
    情報処理方法。
  5. 複数の画像処理命令を実行可能なグラフィックス・プロセッシング・ユニットを具備するコンピュータを動作させる情報処理プログラムであって、
    前記画像処理命令に対応した操作パラメータの、ユーザによる操作を検知する検知部、
    前記グラフィックス・プロセッシング・ユニットにおいて実行される前記画像処理命令の組み合わせを命令セットとして保持する命令セット記憶部、および
    前記パラメータ比較部における比較結果に基づき、前記命令セット記憶部が保持する前記命令セットの中から、前記グラフィックス・プロセッシング・ユニットに実行させる前記命令セットを選択する命令セット選択部として、前記コンピュータを機能させるための情報処理プログラム。
JP2012090853A 2012-04-12 2012-04-12 情報処理装置、情報処理方法、および情報処理プログラム Pending JP2013218631A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012090853A JP2013218631A (ja) 2012-04-12 2012-04-12 情報処理装置、情報処理方法、および情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012090853A JP2013218631A (ja) 2012-04-12 2012-04-12 情報処理装置、情報処理方法、および情報処理プログラム

Publications (1)

Publication Number Publication Date
JP2013218631A true JP2013218631A (ja) 2013-10-24

Family

ID=49590623

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012090853A Pending JP2013218631A (ja) 2012-04-12 2012-04-12 情報処理装置、情報処理方法、および情報処理プログラム

Country Status (1)

Country Link
JP (1) JP2013218631A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015141860A1 (en) * 2014-03-17 2015-09-24 Ricoh Company, Ltd. Image processing apparatus, imaging apparatus, image processing program, and image processing method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015141860A1 (en) * 2014-03-17 2015-09-24 Ricoh Company, Ltd. Image processing apparatus, imaging apparatus, image processing program, and image processing method
JP2015177391A (ja) * 2014-03-17 2015-10-05 株式会社リコー 画像処理装置、撮像装置、画像処理プログラム、画像処理方法
US10063827B2 (en) 2014-03-17 2018-08-28 Ricoh Company, Ltd. Image processing apparatus, imaging apparatus, image processing program, and image processing method

Similar Documents

Publication Publication Date Title
US7969444B1 (en) Distributed rendering of texture data
US8478072B2 (en) Device, method, and program for image processing
CN109509146B (zh) 图像拼接方法及装置、存储介质
US9508121B2 (en) Method and apparatus for controlling spatial resolution in a computer system by rendering virtual pixel into physical pixel
CN111292236B (zh) 一种减少中央凹注视渲染中的混叠伪像的方法和计算***
US11544818B2 (en) Enhancing high-resolution images with data from low-resolution images
US9355464B2 (en) Dynamic generation of texture atlases
US9536282B2 (en) Method and apparatus for controlling spatial resolution in a computer system
US20240029211A1 (en) History clamping for denoising dynamic ray-traced scenes using temporal accumulation
US9652886B2 (en) Rendering processing device and rendering processing method using interpolation rendering result
JP2015215890A (ja) 映像処理方法及び装置
US20100061638A1 (en) Information processing apparatus, information processing method, and computer-readable storage medium
CN109493331B (zh) 一种基于并行计算算法的两景图像重叠区域快速获取方法
CN109600667B (zh) 一种基于网格与帧分组的视频重定向的方法
JP4797039B2 (ja) 画像合成方法及び装置
CN117437118A (zh) 图像处理方法、装置及电子设备
JP2010108205A (ja) 超解像画像作成方法
JP2013101363A (ja) スクリーンセーバ生成装置、および、スクリーンセーバ生成方法
JP2013218631A (ja) 情報処理装置、情報処理方法、および情報処理プログラム
JPH02228175A (ja) 対話型大画像処理方法
US9818210B2 (en) Pixel-aligned drawing to avoid anti-aliasing
US20200118244A1 (en) Data processing systems
US10165200B2 (en) Processing multiple image frames
JP2010085599A (ja) スクリーンセーバ生成装置、および、スクリーンセーバ生成方法
JP2013225756A (ja) 情報処理装置および情報処理方法