JP2012003618A - 情報処理システム、情報処理方法、情報処理装置 - Google Patents

情報処理システム、情報処理方法、情報処理装置 Download PDF

Info

Publication number
JP2012003618A
JP2012003618A JP2010139718A JP2010139718A JP2012003618A JP 2012003618 A JP2012003618 A JP 2012003618A JP 2010139718 A JP2010139718 A JP 2010139718A JP 2010139718 A JP2010139718 A JP 2010139718A JP 2012003618 A JP2012003618 A JP 2012003618A
Authority
JP
Japan
Prior art keywords
thread parameter
unit
image
information processing
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
JP2010139718A
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 JP2010139718A priority Critical patent/JP2012003618A/ja
Priority to US13/157,858 priority patent/US20110310108A1/en
Priority to CN201110165301A priority patent/CN102289783A/zh
Publication of JP2012003618A publication Critical patent/JP2012003618A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Abstract

【課題】画像処理の条件に応じた最適なスレッドパラメータを効率良く取得することができ、全体的な画像処理の効率化を図ることのできる画像編集システムを提供する。
【解決手段】編集装置は、与えられた画像処理の条件に対して自装置内のGPUによって最速で処理することのできるスレッドパラメータを最適なスレッドパラメータとして判定し、画像処理の条件と、その最適なスレッドパラメータとを対応付けてネットワークを通じてデータベースに転送して蓄積させる。編集装置は、データベースからネットワークを通じて最適なスレッドパラメータを取得してグラフィックス・プロセッシング・ユニットに設定する。
【選択図】図11

Description

本発明は、GPU(Graphics Processing Unit)を用いて画像のエフェクト処理を行う情報処理システム、情報処理方法、情報処理装置に関する。
近年、汎用のコンピュータ・ハードウェアの高性能化・高機能化は目覚しく、以前は専用のハードウェアでのみ実装可能であった画像処理が、汎用のコンピュータ・ハードウェアを利用して行うことが可能となってきた。汎用のコンピュータ・ハードウェアのうち特にCPU(Central Processing Unit)の高速化、主記憶として用いられるRAM(Random Access Memory)の高速化は目覚しく、これにより大容量の画像データに対して複雑なエフェクト処理を実用的な時間で処理することが可能となった。
また、並列演算処理に特化して設計された演算処理装置であるGPU(Graphics Processing Unit)は、画像処理のさらなる高速化を可能とするものである。GPUによる並列演算処理は、複数の演算ユニットに対して同じ命令を発行することで、各演算ユニットがそれぞれ独立して同じ命令を実行するというメカニズムによって実現されるのに対し、CPUでは複数の演算ユニットにそれぞれ異なる命令が発行されることで、各演算ユニットがそれぞれ異なる命令を実行する。このため、GPUは画像処理のように一部の演算結果が他の部分に影響しないような処理で優れた性能を発揮し、CPUは逆に逐次型処理に適したものと言える。
また最近では、GPUを、画像処理のみならず、他の数値演算にも利用できるように設計されたGPGPU(General−Purpose computing on Graphics Processing Units)という技術分野も存在する。
特許文献1には、ネットワークに接続されている機器を検索し、各機器のリソース情報(スペック及び性能に関する情報など)その一覧情報を表示するシステムが開示されている。このシステムでは、各機器のリソース情報を検索する際に、ユーザより入力された検索条件(検索プロトコル、検索に用いる通信方式、検索範囲など)をもとに、機器の検索結果の表示処理をGPUに実行させる場合にスレッド数を最適化することが記載されている。スレッドの数を最適化することで、リソース情報の表示処理により必要以上のスレッドが生成されてリソースを過剰に消費させたり、逆にスレッド数が少なすぎて表示処理の分担による処理速度の向上の目的を達成されなくなることを防止している。
特開2008−226038号公報(段落[0005])
画像データに対するGPUによるエフェクト等の処理においては、 スレッド数(スレッドパラメータ)の選定が、処理速度を決定づける重要な鍵となる。ところが、最適なスレッド数(スレッドパラメータ)は、GPUのスペック、画像サイズ、エフェクトの処理内容(エフェクトの種類、タップサイズ等のエフェクトパラメータ)などの画像処理の条件により異なる。コンピュータを用いた画像編集環境においては、出力したい画像サイズや、エフェクトの処理内容などの画像処理の条件をユーザが自由に設定できる。結果的に、画像処理の条件の種類の数は膨大となり、毎回ユーザが自分で画像処理の条件に対して最適なスレッドパラメータを見つけ出して設定することは非常に非効率である。
また、エフェクトの開発者が全ての画像処理の条件の組み合わせに対して予め最適なスレッドパラメータを決定しておくことも考えられるが、そのための手間と時間も膨大となることが予測されるので、やはり現実的な対応と言えない。
以上のような事情に鑑み、本発明の目的は、画像処理の条件に応じた最適なスレッドパラメータを効率良く取得することができ、全体的な画像処理の効率化を図ることのできる情報処理システム、情報処理方法、情報処理装置を提供することにある。
上記目的を達成するため、本発明の一形態に係る情報処理システムは、複数の情報処理装置とデータベースとこれらを接続する伝送路とを具備し、前記それぞれの情報処理装置は、画像に対する処理を複数のスレッドに分割して実行可能なグラフィックス・プロセッシング・ユニットと、与えられた画像処理の条件に対して前記グラフィックス・プロセッシング・ユニットによって最速で処理することのできるスレッドパラメータを最適なスレッドパラメータとして判定する判定部と、前記画像処理の条件と前記判定部により判定された前記最適なスレッドパラメータとを対応付けて前記伝送路を通じて前記データベースに蓄積させる転送部と、前記データベースから前記伝送路を通じて前記最適なスレッドパラメータを取得して前記グラフィックス・プロセッシング・ユニットに設定する設定部とを具備する。
本発明では、与えられた画像処理の条件に対する最適なスレッドパラメータを新規に得る場合には、判定部が、その画像処理の条件に対して自装置内のグラフィックス・プロセッシング・ユニットによって最速で処理することのできるスレッドパラメータを探索して最適なスレッドパラメータとして判定する。また、画像処理の条件と、判定部により判定された最適なスレッドパラメータとは互いに対応付けられて伝送路を通じてデータベースに転送されて蓄積される。したがって、情報処理装置は、与えられた画像処理の条件に対する最適なスレッドパラメータがデータベースに存在する場合には、伝送路を通じてデータベースより最適なスレッドパラメータを取得してグラフィックス・プロセッシング・ユニットに設定することもできる。これにより、本発明では、多種多様な画像処理の条件に対して最適なスレッドパラメータを効率的に得ることができ、画像編集を効率良く行うことができる。さらに、本発明によれば、1つのデータベースを複数台の情報処理装置で共用することで、最適なスレッドパラメータをより一層効率的に取得することができる。
画像処理の条件は、グラフィックス・プロセッシング・ユニットの種類、画像のサイズ、画像の処理内容を少なくとも含むものとすることで、将来的に、より高性能なグラフィックス・プロセッシング・ユニットの出現に伴う画像処理の条件の増加に対応できる。
設定部は、判定部により判定された最適なスレッドパラメータをグラフィックス・プロセッシング・ユニットに設定することで、新たな画像処理の条件に対する画像処理を直ちに実行させるようにしてもよい。
判定部は、与えられた画像処理の条件に対して、グラフィックス・プロセッシング・ユニットに設定するスレッドパラメータを更新しながら、それぞれのスレッドパラメータ毎に処理に要する時間を測定し、最も処理に要する時間が短いスレッドパラメータを最適なスレッドパラメータとして判定するようにしてもよい。これにより、最も処理に要する時間が短いスレッドパラメータを確実に判定することができる。
判定部は、スレッドパラメータの上限を設定可能とされ、この設定された上限を超えない範囲で最適なスレッドパラメータを判定するようにしてもよい。これにより、グラフィックス・プロセッシング・ユニットにスレッドパラメータの上限が設けられている場合に対応することができる。
本発明の他の形態に係る情報処理方法は、情報処理装置内の判定部が、与えられた画像処理の条件に対して自装置内のグラフィックス・プロセッシング・ユニットによって最速で処理することのできるスレッドパラメータを最適なスレッドパラメータとして判定し、前記情報処理装置内の転送部が、前記画像処理の条件と前記判定部により判定された前記最適なスレッドパラメータとを対応付けてネットワークを通じてデータベースに転送して蓄積させ、前記情報処理装置内の設定部が、前記データベースから前記ネットワークを通じて前記最適なスレッドパラメータを取得して前記グラフィックス・プロセッシング・ユニットに設定するというものである。
本発明の他の形態に係る情報処理装置は、画像に対する処理を複数のスレッドに分割して実行可能なグラフィックス・プロセッシング・ユニットと、与えられた画像処理の条件に対して前記グラフィックス・プロセッシング・ユニットによって最速で処理することのできるスレッドパラメータを最適なスレッドパラメータとして判定する判定部と、前記画像処理の条件と前記判定部により判定された前記最適なスレッドパラメータとを対応付けて伝送路を通じてデータベースに転送して蓄積させる転送部と、前記データベースから前記伝送路を通じて前記最適なスレッドパラメータを取得して前記グラフィックス・プロセッシング・ユニットに設定する設定部とを具備するものである。
以上説明したように、本発明によれば、画像処理の条件に応じた最適なスレッドパラメータを効率良く取得することができ、全体的な画像処理の効率化を図ることができる。
本発明の一実施形態に係るコンピュータを用いた画像編集システムの構成を示す図である。 図1の編集装置のハードウェアの構成を示すブロック図である。 エフェクト処理の流れを示すフローチャートである。 図1の編集装置における編集環境画面の例を示す図である。 デフォーカスのパラメータ設定用の編集環境画面の例を示す図である。 図1の編集装置においてGPUを用いて画像データにエフェクトをかけるときの画像処理の流れを示すフローチャートである。 図1の編集装置による画像処理の機能を模式的に表現したブロック図である。 スレッドパラメータの規定に関する概念図である。 同じくスレッドパラメータの規定に関する概念図である。 スレッドパラメータについて説明するための図である。 図1の編集装置による最適なスレッド数の探索手順を示すフローチャートである。 変形例1の編集装置による最適スレッドパラメータの探索手順のフローチャートである。
以下、図面を参照しながら、本発明の実施形態を説明する。
<第1の実施形態>
図1は、本発明の一実施形態に係る情報処理システムとしての画像編集システムの構成を示す図である。
[画像編集システム]
同図に示すように、この画像編集システム100は、情報処理装置である複数の編集装置10(10−1〜10−5)と、データベース20と、これらを接続する伝送路であるネットワーク30とで構成される。
データベース20は、大量の画像データなどを蓄積し、編集装置10からの画像選択要求に対して該当する画像データをネットワーク30を通じてその編集装置10にダウンロードする。また、データベース20には、編集対象としての画像データの他、その画像データを縮小してサムネイル化した縮小画像データを編集装置10からの要求に応じてダウンロードすることが可能である。さらに、データベース20には、編集装置10(10−1〜10−5)によって得られた、画像処理の条件と最適なスレッドパラメータとの組み合わせが蓄積される。
編集装置10(10−1〜10−5)は、それぞれ個別にネットワーク30を通じてデータベース20からダウンロードされた画像データに対して編集者からの操作入力をもとにエフェクトなどの処理を行うことのできる装置である。編集装置10は、より具体的には、コンピュータ・ハードウェアを有する情報処理装置である。
[編集装置10の構成]
図2は編集装置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は、データベース20に蓄積された画像データをユーザからの指令などをもとにダウンロードし、記憶装置13に保存するように制御を行ったり、記憶装置13に記憶された画像データを読み出してCPUメモリ112に取り込み、この画像データに対してエフェクト等の処理を行ったりすることができる。CPUメモリ112に保持された画像データは表示インターフェース14に供給され、ここで描画処理されることによって可視的な描画データとされ、必要に応じて後述するGPU部12によって処理された画像の描画データとマージされて表示装置19に出力される。さらにCPU部11は、CPUメモリ112に保持された処理後の画像データを、必要に応じて、GPU部12によって処理された画像データとマージして記憶装置13に書き戻したり、記憶装置13に書き戻された編集後の画像データをネットワーク30を通じてデータベース20に転送したりするように制御を行うことが可能である。
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は、例えば、データベース20から取得した編集前の画像データおよび編集後の画像データの保存、編集処理をCPU部11およびGPU部12に実行させるための各種のプログラムなどを蓄積する。
ネットワークインターフェース16は、ネットワーク30との接続をとるためのインターフェースである。
[エフェクト処理について]
図2の編集装置10において、動画像の一部である1つのシーンを構成する1以上のフレーム画像にエフェクト(特殊効果)をかけるときの処理の流れを説明する。
図3は、このエフェクト処理の流れを示すフローチャートである。
まず、編集装置10のCPU111は、ユーザからの指示に従ってデータベース20より動画像におけるシーン選択のための情報をダウンロードし(ステップS101)、ダウンロードされたシーン選択のための情報を表示装置19に表示する(ステップS102)。ここで、シーン選択のための情報とは、例えば、そのシーンを代表するフレーム画像の解像度を下げた画像データ(サムネイル画像)などである。
次に、表示装置19に表示されたシーン選択のための情報の中から、マウスなどの操作入力装置18を使ってエフェクトをかけたいシーンがユーザによって選択されると(ステップS103)、編集装置10のCPU111は、選択されたシーンに対応する1以上のフレーム画像のダウンロードをデータベース20に要求して当該1以上のフレーム画像を取得し、記憶装置13に保存する(ステップS104)。
次に、操作入力装置18を使ってユーザにより画像の出力条件が設定される(ステップS105)。出力条件とは、動画像の出力フォーマットを設定する条件であり、例えば、拡大/縮小率、フレームレートなどである。CPU111は、記憶装置13から当該選択シーンに対応する各フレーム画像をCPUメモリ112に読み出し、各フレーム画像に対して上記の出力条件に従って拡大/縮小、フレーム間補間などによるフレームレートの変更などを行う。この出力条件をもとに加工された各フレーム画像は、後述する編集環境画面の出力画像表示ウィンドウとトラック表示ウィンドウに表示される(ステップS106)。
次に、操作入力装置18を使ってユーザよりエフェクト開始の指示が入力される(ステップS107)。CPU111はエフェクト開始の指示を受けると、編集装置10に予め用意されたエフェクトプログラムのリストを表示装置19に表示する(ステップS108)。編集装置10には複数のエフェクトプログラムが予め用意されている。その中でユーザによって1つのエフェクトが選択されると(ステップS109)、その選択されたエフェクトに対応するエフェクトプログラムが実行され、表示中のフレーム画像に対するエフェクト処理が実行される。
図4は編集装置10の編集環境画面40の例を示す図である。同図に示すように、この編集環境画面40には、出力画像表示ウィンドウ41、トラック表示ウィンドウ42、およびエフェクト候補リスト43などが表示される。出力画像表示ウィンドウ41は、出力条件に従って拡大/縮小されたフレーム画像がエフェクトの対象画像として表示されたり、エフェクトの結果画像が表示されるウィンドウである。トラック表示ウィンドウ42は、ユーザにより選択されたシーンの一部に対応する連続する複数のフレーム画像を同時に表示できるウィンドウである。このトラック表示ウィンドウ42において水平方向は時間の向きとなっている。時間の位置を選択するスライダー(図示せず)が操作入力装置18を使ってユーザによって右左水平方向に操作されることで、トラック表示ウィンドウ42に同時に表示される複数のフレーム画像の時間位置が移動される。この切り替えを通じてユーザは選択したシーンを構成するすべてのフレーム画像を見ることができる。また、ユーザは操作入力装置18を使って、トラック表示ウィンドウ42に表示された複数のフレーム画像の中から、出力画像表示ウィンドウ41に表示させる1つのフレーム画像を選択することができる。エフェクト候補リスト43は、出力画像表示ウィンドウ41に表示されたフレーム画像にかけることのできるエフェクトの種類のリストである。ユーザは出力画像表示ウィンドウ41に表示されたフレーム画像にかけたいエフェクトの種類をマウスなどの操作入力装置18を使って選択することができる。
エフェクト候補リスト43で1つのエフェクトが選択されると、CPU111は、その選択されたエフェクトに関する各種のパラメータを設定するためのエフェクトGUIウィンドウを表示する(ステップS110)。ユーザはマウス等の操作入力装置18を用いて、エフェクトGUIウィンドウにおいて項目毎のパラメータの調整を行うことができる(ステップS111)。
例として、エフェクトの種類としてデフォーカスが選択された場合を説明する。デフォーカスが選択されると、図5に示すように、編集環境画面40にデフォーカスのパラメータを設定するためのエフェクトGUIウィンドウ46が表示される。このデフォーカス用のエフェクトGUIウィンドウ46においてユーザはマウス等の操作入力装置18を用いて、ボタン操作によるアイリスの形状の選択、スライダー操作による半径、角度、曲率等のパラメータの調整を行うことができる。
CPU111は、エフェクトGUIウィンドウ46においてユーザにより選択されたパラメータに従って、出力画像表示ウィンドウ41に表示されたフレーム画像に対するエフェクト処理を実行する。このときエフェクト処理は、個々のパラメータの選択操作に対してリアルタイムに実行されて出力画像表示ウィンドウ41に表示されたフレーム画像に反映されることで、項目毎に最適なパラメータを効率的に選択することができる。
パラメータ調整が終了すると(ステップS112のY)、ユーザは選択されたシーンを構成するすべてのフレーム画像に対して、パラメータの調整結果を含むエフェクトを反映させる指示を操作入力装置18を用いてCPU111に入力する(ステップS113)。この指示は編集環境画面40に設けられた処理出力ボタンをクリックすることなどによって行われる。処理出力ボタンには、図4、図5に示すように、再生ボタン44と記録ボタン45とがある。再生ボタン44がユーザによって操作されると、ユーザによって選択されたフレーム画像にかけられたパラメータの調整結果を含むエフェクトが、シーンを構成する他のフレーム画像に対しても同様にかけられて、そのシーンに対応する動画が出力画像表示ウィンドウ41に出力される。ユーザは、この出力画像表示ウィンドウ41に表示された動画をみてエフェクトの結果をシーン全体を通して確認することができる。また、記録ボタン45がユーザによって操作されたときは、ユーザによって選択されたフレーム画像にかけられたパラメータの調整結果を含むエフェクトが、シーンを構成する他のフレーム画像に対しても同様にかけられて記憶装置13に書き込まれる(ステップS114)。
なお、ここではデフォーカスのエフェクト処理について説明したが、その他のエフェクト処理についても同様である。
次に、GPU121を用いて画像データにエフェクトをかけるときの処理について説明する。
図6は、このGPU121を用いて画像データにエフェクトをかけるときの画像処理の流れを示すフローチャートである。
まず、ユーザによってエフェクトが選択される(ステップS201)。この操作は、前述したように、図4に示すエフェクト候補リスト43の中からのエフェクトの選択によって行われる。エフェクトが選択されると、CPU111が、その選択されたエフェクトに対応するエフェクトプログラムを起動する(ステップS202)。エフェクトプログラムの起動後、CPU111は以下の初期化処理を行う。
CPU111は、初期化として、ユーザにより設定された画像データの出力条件から1フレームの水平垂直画像サイズを判断する(ステップS203)。次に、CPU111は、その1フレームの水平垂直画像サイズに対し、GPUメモリ122の確保をGPU121に指示する(ステップS204)。続いて、CPU111はGPU部12で処理を実行させるスレッド数を規定する(ステップS205)。このスレッド数の規定の作業は後述する。
ここまでが初期化処理である。続いて、画像処理に移行する。
図7は編集装置10による画像処理の機能を模式的に表現したブロック図である。同図に示すように、まず、初期化後の処理として、記憶装置13からCPUメモリ112への画像データの読み出しが行われる(ステップS206)。ここでCPUメモリ112へ読み出される画像データとは、動画像データの中からCPU部11により指定されたフレーム番号の画像データ(フレーム画像)である。CPU部11により指定されるフレーム番号とは、図5のトラック表示ウィンドウ42でユーザにより選択されたフレーム画像のフレーム番号である。また、図5の編集環境画面40においてユーザにより再生ボタン44や記録ボタン45が操作されてパラメータの調整結果を含むエフェクトが全てのフレーム画像に対してかけられる場合には、シーンの先頭のフレーム画像から最後のフレーム画像までのフレーム番号が順次指定されることになる。
次に、CPUメモリ112にロードされた画像データを、上記の初期化で確保したGPUメモリ122へ転送する(ステップS207)。この後、GPU121はGPUメモリ122から画像データを読み出しつつ、起動されるエフェクトプログラムに従って画像データのエフェクト処理を実行し(ステップS208)、その結果をGPUメモリ122に書き戻す。GPU121はエフェクト処理が完了すると、GPUメモリ122からGPUメモリ122へ画像データを戻す(ステップS209)。
ここで、CPU111はユーザによる記録ボタン45の操作の有無を検知する(ステップS210)。記録ボタン45がユーザによって操作されなければ(ステップS210のN)、CPU111はCPUメモリ112からエフェクトがかけられた画像データを表示インターフェース14に供給する。表示インターフェース14はCPUメモリ112から供給された画像データの描画処理を行い、描画データを表示装置19に供給する。これにより、図5の出力画像表示ウィンドウ41に画像が表示される(ステップS211)。このステップS211の動作は、ユーザによる再生ボタン44の操作が発生した場合も同様である。但し、ユーザによって再生ボタン44が操作された場合には、シーンに含まれるすべてのフレーム画像に対して順次エフェクトをかけて、その結果を表示することを繰り返すために、ステップS213からステップS206に戻って、記憶装置13から次のエフェクト対象の画像データをCPUメモリ112に読み出す処理が繰り返される。
また、CPU111は、ユーザにより記録ボタン45が操作されたことを検知した場合には(ステップS210のY)、CPUメモリ112からエフェクトがかけられた画像データを記憶装置13に書き戻す(ステップS212)。また、ユーザにより記録ボタン45が操作された場合には、シーンに含まれるすべてのフレーム画像に対して順次エフェクトをかけて、その結果を記憶装置13に記録することを繰り返すために、ステップS213からステップS206に戻って、記憶装置13から次のエフェクト対象の画像データをCPUメモリ112に読み出す処理が繰り返される。
ユーザによる記録ボタン45の操作、再生ボタン44の操作が行われない場合も同様にステップS211に移行して、エフェクトがかけられた画像データが表示される。この場合、CPU111は、画像データを表示インターフェース14に供給後、次の指示の待ち状態になる。この待ち状態で、例えば、ユーザによって図5のエフェクトGUIウィンドウ46が閉じられる操作など、エフェクト操作の終了の指示がユーザより入力された場合(ステップS214のY)、CPU111はGPUメモリ122を解放して(ステップS215)、エフェクト処理を終了する。
次に、GPU部12のスレッドパラメータを規定する手順を説明する。
GPGPUの開発においては、米NVIDIA社の開発環境CUDA(登録商標)が提供されている。CUDA(登録商標)におけるプログラミングでは、実際の処理をスレッドに分割するパラメータとして、"Glid"、"Block"、"Thread"が存在する。図8、図9にその概念図を示す。例えば、全画面に対し、フィルタ係数をかける畳み込み演算を行う画像処理を例にとると、フィルタ係数との積和演算を行う処理をばらまく画素に相当するパラメータが"Thread"、その"Thread"をひとまとまりにし、画像の矩形領域に相当するものが"Block"。さらに"Block"をまとめて、画面全体を相当するものが"Glid"である。ここで"Glid"が画面全体に相当するとして、"Block"と"Thread"の配置は、図8に示すように一次元に設定したり、図9に示すように二次元に設定したり、開発者が自由に設定できる。例えば水平方向の"Thread"の数をThread、垂直方向の"Thread"の数をThread、画像の水平方向の画素数を"Width"、画像の垂直方向の画素数を"Height"とすると、水平方向の"Block"の数であるBlock、垂直方向の"Block"の数であるBlockはそれぞれ式(1)、式(2)で規定される。
Block=Width/Thread (1)
Block=Height/Thread (2)
本実施形態では、例えば、Thread、Thread、Block、BlockがスレッドパラメータとしてGPU部12に与えられる場合を想定している。
GPUの種類によっては、ThreadとThreadがスレッドパラメータとして与えられればよい場合もある。
任意のスレッドパラメータに対する処理全体のスケジューリングアルゴリズムはCUDA(登録商標)に依存し、詳細は不明だが、これらのスレッドパラメータの与え方によって、画像処理の速度が変わることが分かっている。また、最適なスレッドパラメータは、対象となる画像のサイズ、"Thread"あたりの処理内容(エフェクトの種類、エフェクトパラメータ)、処理を実行させるGPU121の種類といった条件によって異なる。例えば、Thread、Thread、Block、Blockといったスレッドパラメータを調整することによって、動画像にエフェクトを追加した結果をリアルタイム描画できたり、できなかったりするケースがある。
本実施形態は、画像処理の条件に対応する最適なスレッドパラメータを効率的に規定することのできる仕組みを提供する。すなわち、編集装置10(10−1〜10−5)は、画像処理の条件に対してGPU121によって最速で処理することのできるスレッド数を探索し、これを最適なスレッドパラメータとして判定する。ここで、画像処理の条件とは、より具体的には、例えば図10に示したように、GPUの種類、画像サイズ、エフェクトの処理内容(エフェクトの種類、エフェクトパラメータ)を少なくとも含むものである。GPUの種類はGPUのスペック情報であってもよい。
編集装置10(10−1〜10−5)は、画像処理の条件をID、その画像処理の条件に対して最適なスレッドパラメータをデータとして、これらIDとデータとを互いに対応付けて図1のデータベース20に転送して蓄積させる。そして、データベース20に蓄積された最適なスレッドパラメータを各編集装置10(10−1〜10−5)で再利用する。データベース20に蓄積された最適なスレッドパラメータを再利用するために、編集装置10(10−1〜10−5)は、画像処理の条件であるIDを含む問い合せをデータベース20に送信する。データベース20はこの問い合せに含まれるIDに対応する最適なスレッドパラメータのデータを検索し、これを問い合せ元である編集装置10に応答する。以下に、その詳細を説明する。
まず、編集装置10において、画像処理の条件に対応する最適なスレッドパラメータを探索する手順を説明する。
図11は、その手順を示すフローチャートを示す。
まず、編集装置10のCPU111は、これから実行する画像処理の条件である、GPU121の種類、画像サイズ、エフェクトの処理内容(エフェクトの種類、エフェクトパラメータ)の組み合わせをIDとし、それに対して最適なスレッドパラメータのデータが存在するかどうかをネットワーク30を通じてデータベース20に問い合わせる(ステップS301)。
CPU111は、データベース20からの応答をもとに、データベース20に当該画像処理の条件であるIDに対して最適なスレッドパラメータのデータが存在するかどうかを判断する(ステップS302)。IDに対する最適なスレッドパラメータのデータが存在すれば(ステップS302のY)、CPU111(設定部)は、その最適なスレッドパラメータのデータをデータベース20からダウンロードして(ステップS312)、GPU部12に設定して画像データのエフェクト処理を実行させる(ステップS311)。データベース20にこれから実行する画像処理の条件であるIDに対する最適なスレッドパラメータが存在しない場合(ステップS302のN)、CPU111(判定部)は、次のようにして探索による最適なスレッドパラメータの判定を行う。
この判定は、
1.探索対象のスレッドパラメータの設定または更新(ステップS303)、
2.処理時間の計測の開始(ステップS304)、
3.GPU121による処理の実行(ステップS305)、
4.処理時間の計測の終了(ステップS306)、
5.処理時間が最短かどうかの判定(ステップS307)
6.処理時間が最短であるスレッドパラメータの保持(ステップS308)が、探索対象の全スレッドパラメータが終了するまで繰り返される(ステップS309)、ことで行われる。
これによりCPU111(判定部)は、探索対象の全スレッドパラメータの中で処理時間が最短である(最速で処理することのできる)スレッドパラメータを最適なスレッドパラメータとして判定する。
ここで、スレッドパラメータには、例えば、Thread、Thread、Block、Blockがある。Block、Blockは、Thread、Thread、Width、Heightが与えられることで上記の式(1)、式(2)によって一意に決まる。したがって、CPU111は、初回時にThread、Threadとしてそれぞれ初期値"1"をセットして画像の処理に要する時間を計測し、以後は1サイクル毎にThreadとThreadの値の組み合わせを更新しながら、その都度、画像の処理に要する時間を計測する。
なお、ここでのGPU121による処理の実行の目的は処理時間を計測することにあるので、GPUメモリ122は使用されるものの、ここに実際の画像データを入れる必要はない。すなわち、実際の画像処理時のようにCPUメモリ112からGPUメモリ122へ画像データを転送する必要はない。
この後、CPU111(転送部)は、画像処理の条件である、GPU121の種類、画像データのサイズ、エフェクトの処理内容(エフェクトの種類、エフェクトパラメータ)を組み合わせたIDを生成し、このIDと最適なスレッドパラメータのデータとの組み合わせをネットワーク30を通じてデータベース20に転送し、蓄積させる(ステップS310)。以後、その最適なスレッドパラメータは、画像編集システム100の各編集装置10(10−1〜10−5)からの問い合せに対する応答の候補として利用できることとなる。
そしてCPU111(設定部)は、判定した最適なスレッドパラメータをGPU部12に出力してGPU121に実際の画像データの処理を実行させる(ステップS311)。
上記の最適スレッドパラメータの探索は図7のエフェクト起動後の初期化の段階で行われ、フレーム毎に行われる必要はない。また、エフェクト処理時間は1フレームあたり数msから数十ms程度であるため、仮に100回の探索が行われても、数秒程度の時間を要するのにすぎない。したがって、最適スレッドパラメータの探索によるユーザの待ち時間が問題となる可能性は低い。
以上説明したように本実施形態の編集装置10では、与えられた画像処理の条件に対する最適なスレッドパラメータを新規に得る場合に、CPU111が、その画像処理の条件に対して自装置内のグラフィックス・プロセッシング・ユニットによって最速で処理することのできるスレッドパラメータを探索して最適なスレッドパラメータとして判定する。また、本実施形態の編集装置10では、データベース20に画像処理の条件に対する最適なスレッドパラメータが存在する場合、CPU111が、伝送路30を通じてデータベース20より最適なスレッドパラメータを取得してGPU部12に与えることもできる。したがって、過去に使用されたことのある画像処理の条件で再度GPU121によるエフェクト処理を行う場合には、データベース20に蓄積されたスレッドパラメータを再利用することができる。これにより、多種多様な画像処理の条件に対して最適なスレッドパラメータを効率的に得ることができ、画像編集を効率良く行うことができる。
また、本実施形態の編集装置10では、1つのデータベース20を複数台の編集装置10(10−1〜10−5)で共用することで、最適なスレッドパラメータをより一層効率的に取得することができる。
さらに、本実施形態の編集装置10では、GPU121の種類、画像データのサイズ、エフェクトの処理内容(エフェクトの種類、エフェクトパラメータ)の組み合わせをIDとして、このIDと最適なスレッドパラメータのデータとの組み合わせがデータベース20に蓄積される。したがって、将来的に、より高性能なGPUの出現に伴う、GPUの種類、エフェクトの種類、エフェクトパラメータの種類などの増加にも対応することができるという利点がある。
<変形例1>
GPU121の種類によっては、Thread、Threadの積の値に最大512や256といった上限が設けられている場合がある。このような場合、スレッドパラメータをその上限を超えない範囲で更新させる必要がある。
図12は、GPU121が上記のような制限を持っている場合の最適スレッドパラメータの探索手順のフローチャートである。
この例では、ステップS302で、IDに対する最適なスレッドパラメータのデータが存在しないことを判定した後、CPU111は、GPU121の種類に応じて、Thread、Threadの積が上限値を超えない範囲に収まるThreadとThreadのすべての組み合わせを生成する(ステップS313)。この後は、ステップS303〜ステップS309において、ThreadとThreadのすべての組み合わせの中で、GPU121による処理時間が最短の組み合わせを用いたスレッドパラメータが最適なスレッドパラメータとして判定される。そして、判定された最適なスレッドパラメータとIDとの組み合わせがデータベース20に転送され(ステップS310)、最適なスレッドパラメータがGPU部12に出力され、GPU121にて実際の画像データの処理が実行される(ステップS311)。
<変形例2>
GPU121の種類によっては探索対象のスレッドパラメータの数があまりにも膨大で時間がかかりすぎる場合も考えられる。このような場合には、Thread、Threadの値を1サイクル毎に所定の値ずつ更新するのではなく、2のべき乗の値に限定して更新するようにしてもよい。
<変形例3>
エフェクトの種類によっては、図5に示すような編集環境画面40で、特定のフレームに対し、ユーザが頻繁にエフェクトパラメータの調整を繰り返す場合もある。その場合、CPU111は、調整時には適当なスレッドパラメータでGPU121に処理を実行させ、実際に高速に処理させたい再生や記録などの動画像処理に移行する直前に最適なスレッドパラメータを規定するようにしてもよい。
なお、本発明は以上説明した実施の形態には限定されるものではなく、本発明の技術思想の範囲内で種々の変形が可能である。
10…編集装置
11…CPU部
12…GPU部
20…ネットワーク
30…データベース
100…画像編集システム
111…CPU
112…CPUメモリ
121…GPU
122…GPUメモリ

Claims (8)

  1. 複数の情報処理装置とデータベースとこれらを接続する伝送路とを具備し、
    前記それぞれの情報処理装置は、
    画像に対する処理を複数のスレッドに分割して実行可能なグラフィックス・プロセッシング・ユニットと、
    与えられた画像処理の条件に対して前記グラフィックス・プロセッシング・ユニットによって最速で処理することのできるスレッドパラメータを探索して最適なスレッドパラメータとして判定する判定部と、
    前記画像処理の条件と前記判定部により判定された前記最適なスレッドパラメータとを対応付けて前記伝送路を通じて前記データベースに蓄積させる転送部と、
    前記データベースから前記伝送路を通じて前記最適なスレッドパラメータを取得して前記グラフィックス・プロセッシング・ユニットに設定する設定部と
    を具備する情報処理システム。
  2. 請求項1に記載の情報処理システムであって、
    前記画像処理の条件は、
    前記グラフィックス・プロセッシング・ユニットの種類、
    前記画像のサイズ、
    前記画像の処理内容
    を少なくとも含む情報処理システム
  3. 請求項2に記載の情報処理システムであって、
    前記設定部は、前記判定部により判定された前記最適なスレッドパラメータを前記グラフィックス・プロセッシング・ユニットに設定する
    情報処理システム。
  4. 請求項3に記載の情報処理システムであって、
    前記判定部は、与えられた画像処理の条件に対して、前記グラフィックス・プロセッシング・ユニットに設定するスレッドパラメータを更新しながら、それぞれのスレッドパラメータ毎に処理に要する時間を測定し、最も処理に要する時間が短いスレッドパラメータを最適なスレッドパラメータとして判定する
    情報処理システム。
  5. 請求項4に記載の情報処理システムであって、
    前記スレッドパラメータは、少なくとも、画像の二軸方向それぞれのスレッド数の組み合わせを含む
    情報処理システム。
  6. 請求項5に記載の情報処理システムであって、
    前記判定部は、前記スレッドパラメータの上限を設定可能とされ、この設定された上限を超えない範囲で前記最適なスレッドパラメータを判定する
    情報処理システム。
  7. 情報処理装置内の判定部が、与えられた画像処理の条件に対して自装置内のグラフィックス・プロセッシング・ユニットによって最速で処理することのできるスレッドパラメータを最適なスレッドパラメータとして判定し、
    前記情報処理装置内の転送部が、前記画像処理の条件と前記判定部により判定された前記最適なスレッドパラメータとを対応付けてネットワークを通じてデータベースに転送して蓄積させ、
    前記情報処理装置内の設定部が、前記データベースから前記ネットワークを通じて前記最適なスレッドパラメータを取得して前記グラフィックス・プロセッシング・ユニットに設定する
    情報処理方法。
  8. 画像に対する処理を複数のスレッドに分割して実行可能なグラフィックス・プロセッシング・ユニットと、
    与えられた画像処理の条件に対して前記グラフィックス・プロセッシング・ユニットによって最速で処理することのできるスレッドパラメータを最適なスレッドパラメータとして判定する判定部と、
    前記画像処理の条件と前記判定部により判定された前記最適なスレッドパラメータとを対応付けて伝送路を通じてデータベースに転送して蓄積させる転送部と、
    前記データベースから前記伝送路を通じて前記最適なスレッドパラメータを取得して前記グラフィックス・プロセッシング・ユニットに設定する設定部と
    を具備する情報処理装置。
JP2010139718A 2010-06-18 2010-06-18 情報処理システム、情報処理方法、情報処理装置 Pending JP2012003618A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010139718A JP2012003618A (ja) 2010-06-18 2010-06-18 情報処理システム、情報処理方法、情報処理装置
US13/157,858 US20110310108A1 (en) 2010-06-18 2011-06-10 Information processing system, information processing method, and information processing apparatus
CN201110165301A CN102289783A (zh) 2010-06-18 2011-06-13 信息处理系统、信息处理方法、和信息处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010139718A JP2012003618A (ja) 2010-06-18 2010-06-18 情報処理システム、情報処理方法、情報処理装置

Publications (1)

Publication Number Publication Date
JP2012003618A true JP2012003618A (ja) 2012-01-05

Family

ID=45328224

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010139718A Pending JP2012003618A (ja) 2010-06-18 2010-06-18 情報処理システム、情報処理方法、情報処理装置

Country Status (3)

Country Link
US (1) US20110310108A1 (ja)
JP (1) JP2012003618A (ja)
CN (1) CN102289783A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5382383B2 (ja) * 2011-03-24 2014-01-08 日本電気株式会社 データベース処理装置、データベース処理方法、プログラム及びデータベースのデータ構造
CN103455492B (zh) * 2012-05-29 2018-10-30 腾讯科技(深圳)有限公司 一种搜索网页的方法和装置
CN104410863B (zh) * 2014-12-11 2017-07-11 上海兆芯集成电路有限公司 图像处理器以及图像处理方法
CN106708620A (zh) * 2015-11-13 2017-05-24 苏宁云商集团股份有限公司 一种处理数据的方法及系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68926885T2 (de) * 1989-09-08 1997-01-09 Canon Kk Datenverarbeitungssystem mit Anzeigetafel
JP3681026B2 (ja) * 1997-03-27 2005-08-10 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および方法
JPH11328100A (ja) * 1998-05-13 1999-11-30 Sony Corp ディジタル信号処理装置
JP2003241923A (ja) * 2002-02-14 2003-08-29 Canon Inc 周辺機器および情報処理装置およびジョブ処理方法および記憶媒体およびプログラム
JP4046716B2 (ja) * 2004-10-06 2008-02-13 株式会社ソニー・コンピュータエンタテインメント 情報処理装置およびデータ伝送方法
JP4706278B2 (ja) * 2005-02-24 2011-06-22 ソニー株式会社 情報処理システム、再生端末装置および再生方法、情報処理装置および方法、並びにプログラム
JP2006350649A (ja) * 2005-06-15 2006-12-28 Nintendo Co Ltd プログラムおよび情報処理装置
JP4652978B2 (ja) * 2005-08-12 2011-03-16 キヤノン株式会社 画像編集装置及びその制御方法、コンピュータプログラム
JP2007158968A (ja) * 2005-12-07 2007-06-21 Canon Inc 情報処理装置及び情報処理方法
JP4957945B2 (ja) * 2005-12-28 2012-06-20 ソニー株式会社 情報処理装置および情報処理方法、プログラム、並びに、記録媒体
JP2007193741A (ja) * 2006-01-23 2007-08-02 Toshiba Corp 情報処理装置および同装置で使用される動作制御方法
JP4885904B2 (ja) * 2008-04-15 2012-02-29 コニカミノルタビジネステクノロジーズ株式会社 画像処理方法、画像処理プログラム、および画像処理装置

Also Published As

Publication number Publication date
US20110310108A1 (en) 2011-12-22
CN102289783A (zh) 2011-12-21

Similar Documents

Publication Publication Date Title
CN111626430B (zh) 一种数据处理方法及相关产品
US10338963B2 (en) System and method of schedule validation and optimization of machine learning flows for cloud computing
EP2591413A2 (en) Visualizing expressions for dynamic analytics
KR20000012137A (ko) 디지털 이미지 처리 장치
JPWO2012176365A1 (ja) Guiプログラム作成支援装置、guiプログラム作成支援方法、プログラム、及び集積回路
US20180373504A1 (en) Graphical interface to generate instructions to control a representation by an output interface of one or more objects
CA2932897A1 (en) Visual effects system for "big data" analysis workflow editors, distribution platforms, execution engines, and management systems comprising same
CN105517681A (zh) 使用元数据的图表转换系统和方法
KR101773781B1 (ko) 웹 기반의 사용자 지향적 데이터 시각화 방법 및 장치
US11647250B2 (en) Methods and systems for remote streaming of a user-customized user interface
US20230334723A1 (en) Post-processing special effect production system and method, and ar special effect rendering method and apparatus
JP2012003618A (ja) 情報処理システム、情報処理方法、情報処理装置
KR100663655B1 (ko) 데이터 처리 방법 및 데이터 처리 장치
KR20220027870A (ko) 딥 러닝을 위한 비주얼 프로그래밍
KR20000012134A (ko) 비디오 처리 장치 및 비디오 처리 방법
KR20000012135A (ko) 디지털 비디오 처리장치
KR20000012136A (ko) 비디오 특수 효과 장치
JP6872047B2 (ja) オブジェクトセットの視覚的表現を提供する方法、装置、機器、および記憶媒体。
CN105324795A (zh) 合并图形操作
JPH0816824A (ja) 3次元計算機支援設計装置及び方法
US10198150B2 (en) Cross database data selection and correlation interface
US10310823B2 (en) Program development support system and program development support software
CN114692055A (zh) 表单处理方法、装置、存储介质与电子设备
CN114327709A (zh) 一种控制页面生成方法、装置、智能设备及存储介质
JP5931276B2 (ja) プログラマブル表示器、そのプログラム