(57)【要約】【課題】データ転送の回数を少なくする。【解決手段】エフェクト処理を行うＧＰＵは、コマンドを記憶するバッファを備えている。“Upload”コマンドは、システムメモリからＧＰＵへ処理対象とされる画像のデータのコピーを指示するコマンドである。“Color Correction”と“Mosaic”という２つのエフェクト処理が行われる場合、それぞれのコマンドが生成され、バッファに記憶される。ＧＰＵは、“Download”というコマンドを受信すると、バッファに記憶されているコマンドを順次実行する。本発明は、映像に対してエフェクト処理を施す編集装置に適用できる。【選択図】図９
2008098911.tif 000002
【特許請求の範囲】
【請求項１】
画像データを記憶する第１の画像記憶手段と、
前記画像データに基づく画像にエフェクト処理を実行するときに、前記画像データを記憶する第２の画像記憶手段と、
コマンドを生成する生成手段と、
前記コマンドを記憶するコマンド記憶手段と、
前記記憶手段に記憶された前記コマンドを実行する実行手段と
を備え、
前記生成手段により生成される前記コマンドは、前記第１の画像記憶手段から前記第２の画像記憶手段に前記画像データを転送させる第１のコマンド、前記エフェクト処理を実行させる第２のコマンド、および、前記第２の画像記憶手段から前記第１の画像記憶手段に前記画像データを転送させる第３のコマンドのうちのいずれかのコマンドであり、
前記実行手段は、前記第３のコマンドが受信された時点で、前記コマンド記憶部に記憶されている前記コマンドを実行する
画像処理装置。
【請求項２】
前記第１の画像記憶手段は、ＣＰＵ（Central Processing Unit）が管理し、
前記第２の画像記憶手段は、ＧＰＵ（Graphics Processing Unit）が管理する
請求項１に記載の画像処理装置。
【請求項３】
異なるエフェクト処理を実行させるための複数の第２のコマンドが前記コマンド記憶手段に記憶されていた場合、前記複数の第２のコマンドのうちの１つの第２のコマンドが実行されることによりエフェクト処理が施された画像データは、前記第２の画像記憶手段の所定の領域に記憶され、次の第２のコマンドが実行されるときには、前記エフェクト処理が施された画像データが前記所定の領域から読み出され、次のエフェクト処理が施される
請求項１に記載の画像処理装置。
【請求項４】
画像データを記憶する第１の画像記憶手段と、
前記画像データに基づく画像にエフェクト処理を実行するときに、前記画像データを記憶する第２の画像記憶手段と、
コマンドを記憶するコマンド記憶手段と
を備える画像処理装置の画像処理方法であって、
前記第１の画像記憶手段から前記第２の画像記憶手段に前記画像データを転送させる第１のコマンド、前記エフェクト処理を実行させる第２のコマンド、および、前記第２の画像記憶手段から前記第１の画像記憶手段に前記画像データを転送させる第３のコマンドのうちのいずれかのコマンドを生成し、
生成された前記コマンドを前記コマンド記憶手段に記憶し、
前記第３のコマンドが生成された時点で、前記コマンド記憶部に記憶されている前記コマンドを実行する
画像処理方法。
【請求項５】
画像データを記憶する第１の画像記憶手段と、
前記画像データに基づく画像にエフェクト処理を実行するときに、前記画像データを記憶する第２の画像記憶手段と、
コマンドを記憶するコマンド記憶手段と
を備える画像処理装置を制御するコンピュータのプログラムであって、
前記第１の画像記憶手段から前記第２の画像記憶手段に前記画像データを転送させる第１のコマンド、前記エフェクト処理を実行させる第２のコマンド、および、前記第２の画像記憶手段から前記第１の画像記憶手段に前記画像データを転送させる第３のコマンドのうちのいずれかのコマンドを生成し、
生成された前記コマンドを前記コマンド記憶手段に記憶し、
前記第３のコマンドが生成された時点で、前記コマンド記憶部に記憶されている前記コマンドを実行する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置および方法、並びにプログラムに関し、特に、画像の編集を高速で行えるようにした画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
例えば、テレビジョン放送用の番組を作成するときに、さまざまなエフェクト（Effect）処理が映像に対して行われている。例えば、カラー映像を白黒映像に変換したり、場面が変わるときなどにフェードアウトやフェードインしたり、モザイクをかけたりといったエフェクト処理が行われている。このようなエフェクト処理は、コンピュータなどに装着されたグラフィック・プロセッサ・ユニット（ＧＰＵ）が搭載されている画像処理用基板などが用いられて行われる。
【０００３】
図１はエフェクト処理を行うときの、従来の装置の一例の構成を示す図である。エフェクト処理を行う装置は、ＧＰＵ１１、システムメモリ１２、記録部１３、およびバス１４を含む構成とされている。記録部１３には編集の対象となる画像データが記録されており、ＣＰＵ（Central Processing Unit）などの制御部（不図示）からの指示に基づき、記録している画像データを、システムメモリ１２に供給する。
【０００４】
システムメモリ１２は、制御部が処理を行うときのデータを記憶するメモリである。システムメモリ１２に供給された画像データは、適宜、ＧＰＵ１１に供給される。
【０００５】
図２を参照し、図１における装置において実行されるエフェクト処理時の処理について説明する。処理１として、記録部１３からシステムメモリ１２に画像データが供給される（Inputの処理）。処理２として、Color Correctionと称されるエフェクト処理が実行される場合、まずシステムメモリ１２から、ＧＰＵ１１に画像データが供給される。
【０００６】
ＧＰＵ１１は、供給された画像データを内部のＰＢＯ（Pixel Buffer Object）に記憶する。ＧＰＵ１１は、ＰＢＯに記憶された画像データに対し、テクスチャを生成し、エフェクト処理を行うと、その処理結果を、ＦＢＯ（Frame Buffer Object）に記憶する。ＦＢＯに記憶された画像データは、システムメモリ１２に戻される。
【０００７】
処理３として、Mosaicと称されるエフェクト処理が実行される場合、先程、Color Correctionと称されるエフェクト処理が施され、システムメモリ１２に記憶されている画像データが、システムメモリ１２から読み出されＧＰＵ１１に供給される。
【０００８】
ＧＰＵ１１は、供給された画像データを内部のＰＢＯに記憶する。ＧＰＵ１１は、ＰＢＯに記憶された画像データに対し、テクスチャを生成し、エフェクト処理を行うと、その処理結果を、ＦＢＯ（Frame Buffer Object）に記憶する。ＦＢＯに記憶された画像データは、システムメモリ１２に戻される。
【０００９】
処理４として、２つのエフェクト処理が施され、システムメモリ１２に記憶された画像データが、図示していないインタフェースを介して、外部の装置に出力される（Outputの処理）。
【００１０】
映像に対してエフェクト処理を施す他に、例えば、コンピュータグラフィックスなどで映像を作成することも行われ、そのようなコンピュータグラフィックスにより作成された映像と、上記したような処理でエフェクト処理が施された映像と合わせて用いられることがある。（例えば、特許文献１乃至３参照）
【特許文献１】特開２００４−０７２５５３号公報
【００１１】
【特許文献２】特開２００３−０５８９０２号公報
【００１２】
【特許文献３】特開２００５−０３８４２６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
図２を参照して説明したように、例えば、Color Correctionと称されるエフェクト処理とMosaicと称されるエフェクト処理が行われる場合、システムメモリ１２からＧＰＵ１１へ画像データが供給され、エフェクト処理が施され、ＧＰＵ１１からシステムメモリ１２へと画像データが戻されるといった処理が、２回行われる。
【００１４】
すなわち、１つのエフェクト処理が実行されると、システムメモリ１２とＧＰＵ１１との間でのデータ授受が１回行われる。よって、複数のエフェクト処理が実行される場合、そのエフェクト処理の回数と同回数だけ、システムメモリ１２とＧＰＵ１１との間でデータ授受が行われる。
【００１５】
よって、単純で、比較的、処理時間を必要としないエフェクト処理の繰り返しであっても、システムメモリ１２とＧＰＵ１１とのデータの授受は、そのエフェクト処理の回数分だけ複数回繰り返されるため、データの授受（データ転送）にかかる時間が長くなり、結果としてエフェクト処理にかかる時間が長くなってしまうといったことがあった。エフェクト処理による処理結果を、リアルタイムにユーザに提供しようとした場合、データの転送時間によるロスをなくす必要があった。
【００１６】
また、システムメモリ１２とＧＰＵ１１の間でデータの授受を行うとき、バス１４を介して行われるが、エフェクト処理毎にシステムメモリ１２とＧＰＵ１１との間でのデータの授受が行われると、バス１４の帯域を無駄に占有してしまうことになり、他のデータの授受の妨げとなる場合があった。
【００１７】
本発明は、このような状況に鑑みてなされたものであり、データの授受を行う回数を少なくすることができるようにするものである。
【課題を解決するための手段】
【００１８】
本発明の一側面の画像処理装置は、画像データを記憶する第１の画像記憶手段と、前記画像データに基づく画像にエフェクト処理を実行するときに、前記画像データを記憶する第２の画像記憶手段と、コマンドを生成する生成手段と、前記コマンドを記憶するコマンド記憶手段と、前記記憶手段に記憶された前記コマンドを実行する実行手段とを備え、前記生成手段により生成される前記コマンドは、前記第１の画像記憶手段から前記第２の画像記憶手段に前記画像データを転送させる第１のコマンド、前記エフェクト処理を実行させる第２のコマンド、および、前記第２の画像記憶手段から前記第１の画像記憶手段に前記画像データを転送させる第３のコマンドのうちのいずれかのコマンドであり、前記実行手段は、前記第３のコマンドが受信された時点で、前記コマンド記憶部に記憶されている前記コマンドを実行する。
【００１９】
前記第１の画像記憶手段は、ＣＰＵ（Central Processing Unit）が管理し、前記第２の画像記憶手段は、ＧＰＵ（Graphics Processing Unit）が管理するようにすることができる。
【００２０】
異なるエフェクト処理を実行させるための複数の第２のコマンドが前記コマンド記憶手段に記憶されていた場合、前記複数の第２のコマンドのうちの１つの第２のコマンドが実行されることによりエフェクト処理が施された画像データは、前記第２の画像記憶手段の所定の領域に記憶され、次の第２のコマンドが実行されるときには、前記エフェクト処理が施された画像データが前記所定の領域から読み出され、次のエフェクト処理が施されるようにすることができる。
【００２１】
本発明の一側面の画像処理方法は、画像データを記憶する第１の画像記憶手段と、前記画像データに基づく画像にエフェクト処理を実行するときに、前記画像データを記憶する第２の画像記憶手段と、コマンドを記憶するコマンド記憶手段とを備える画像処理装置の画像処理方法であって、前記第１の画像記憶手段から前記第２の画像記憶手段に前記画像データを転送させる第１のコマンド、前記エフェクト処理を実行させる第２のコマンド、および、前記第２の画像記憶手段から前記第１の画像記憶手段に前記画像データを転送させる第３のコマンドのうちのいずれかのコマンドを生成し、生成された前記コマンドを前記コマンド記憶手段に記憶し、前記第３のコマンドが生成された時点で、前記コマンド記憶部に記憶されている前記コマンドを実行する。
【００２２】
本発明の一側面のプログラムは、画像データを記憶する第１の画像記憶手段と、前記画像データに基づく画像にエフェクト処理を実行するときに、前記画像データを記憶する第２の画像記憶手段と、コマンドを記憶するコマンド記憶手段とを備える画像処理装置を制御するコンピュータのプログラムであって、前記第１の画像記憶手段から前記第２の画像記憶手段に前記画像データを転送させる第１のコマンド、前記エフェクト処理を実行させる第２のコマンド、および、前記第２の画像記憶手段から前記第１の画像記憶手段に前記画像データを転送させる第３のコマンドのうちのいずれかのコマンドを生成し、生成された前記コマンドを前記コマンド記憶手段に記憶し、前記第３のコマンドが生成された時点で、前記コマンド記憶部に記憶されている前記コマンドを実行する。
【００２３】
本発明の画像処理装置および方法、並びにプログラムにおいては、異なる記憶手段にデータを転送させるための第１のコマンド、転送先でエフェクト処理を実行させるための第２のコマンド、および、エフェクト処理が施された画像の画像データを、転送元に戻すための第３のコマンドが生成され、第３のコマンドが処理される時点で、それまでに生成された第１のコマンドや第２のコマンドに対応する処理が実行される。
【発明の効果】
【００２４】
本発明の一側面によれば、エフェクト処理を実行するとき、効率良くエフェクト処理を行うことが可能となる。具体的には、エフェクト処理を行うとき、データの授受の回数を少なくすることが可能となる。
【発明を実施するための最良の形態】
【００２５】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２６】
本発明の一側面の画像処理装置（例えば、ＰＣ３３）は、画像データを記憶する第１の画像記憶手段（例えば、図６のシステムメモリ１０３）と、前記画像データに基づく画像にエフェクト処理を実行するときに、前記画像データを記憶する第２の画像記憶手段（例えば、図６のＧＰＵメモリ１２１）と、コマンドを生成する生成手段（例えば、図５のＣＰＵ７１）と、前記コマンドを記憶するコマンド記憶手段（例えば、図６のコマンドバッファ１３１）と、前記記憶手段に記憶された前記コマンドを実行する実行手段（例えば、図６の処理部１１１）とを備える。
【００２７】
以下に、本発明の実施の形態について図面を参照して説明する。
【００２８】
［システムの構成例］
図３は、本発明を適用したシステムの一実施の形態の構成を示す図である。図３に示したシステムは、映像を編集するシステムであり、ノンリニア編集機などと称されるシステムの概略図である。図３に示したシステムは、ディスプレイ３１、ディスプレイ３２、ＰＣ（Personal Computer）３３、マウス３４、キーボード３５、画質コントロールパネル３６、音声コントロールパネル３７、再生コントロールパネル３８、および画像処理効果コントロールパネル３９を含む構成とされている。
【００２９】
ディスプレイ３１とディスプレイ３２は、編集作業を行うＧＵＩ（Graphical User Interface）を表示するディスプレイである。図３においては、ディスプレイ３１とディスプレイ３２の２つのディスプレイを示したが、システムによっては、ディスプレイ３１またはディスプレイ３２のどちらか一方のみ備えるシステムもある。
【００３０】
ＰＣ３３は、編集用ソフトウェアが動作するコンピュータ本体である。ＰＣ３３の内部には、SDI Interfacを持つハードウェアや、レンダリングするためのグラフィックボードなどが含まれている。マウス３４やキーボード３５は、ユーザが操作をするときに用いられる。画質コントロールパネル３６は、画像処理をする際にそのパラメータを調整する際に用いられる。音声コントロールパネル３７は、音声レベルを調整するときに用いられる。
【００３１】
再生コントロールパネル３８は、編集対象とされている映像から所望のシーンを探し出すときに操作され、再生状態をFF（早送り）やREW（巻き戻し）などのモードに設定するときに用いられる。画像処理効果コントロールパネル３９は、３次元の画像処理効果をかけるときに、その動作を３次元的にコントロールするときに用いられる。
【００３２】
画質コントロールパネル３６、音声コントロールパネル３７、再生コントロールパネル３８、および画像処理効果コントロールパネル３９を含まないシステム構成の場合もある。これらのコントロールパネルを含まないシステム構成の場合、マウス３４やキーボード３５で、同様の操作が行えるように構成される。
【００３３】
図４は、ディスプレイ３１またはディスプレイ３２に表示される画面の一例を示す図である。ここでは、ディスプレイ３１に表示される画面であるとして説明を続ける。図４に示した画面例は、タイムライン編集時のイメージ図を示す図である。ＰＣ３３に取り込まれた映像と音声は、図４のようなタイムラインというＧＵＩ上で編集される。
【００３４】
表示部５０は、映像/音声をタイムラインにロードするためのソースビューワーである。表示部５０にロードされた映像/音声は、時間軸５１のタイムラインに再度ロードされ、時間軸上に展開される。その画像は、表示部５２のマスタービューワーに表示される。タイムライン上に、マーク５３で示されるような画像処理を適用すると、表示部５２でその効果が確認できるように構成されている。
【００３５】
図５は、ＰＣ３３の内部構成例を示すブロック図である。ＣＰＵ（Central Processing Unit）７１は、ＲＯＭ（Read Only Memory）７２、または記憶部７８に記憶されているプログラムに従って各種の処理を実行する。ＲＡＭ（Random Access Memory）７３には、ＣＰＵ７１が実行するプログラムやデータなどが適宜記憶される。これらのＣＰＵ７１、ＲＯＭ７２、およびＲＡＭ７３は、バス７４により相互に接続されている。
【００３６】
ＣＰＵ７１にはまた、バス７４を介して入出力インタフェース７５が接続されている。入出力インタフェース７５には、キーボード、マウス、マイクロホンなどよりなる入力部７６、ディスプレイ、スピーカなどよりなる出力部７７が接続されている。ＣＰＵ７１は、入力部７６から入力される指令に対応して各種の処理を実行する。そして、ＣＰＵ７１は、処理の結果を出力部７７に出力する。
【００３７】
入出力インタフェース７５に接続されている記憶部７８は、例えばハードディスクからなり、ＣＰＵ７１が実行するプログラムや各種のデータを記憶する。通信部７９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
【００３８】
また、通信部７９を介してプログラムを取得し、記憶部７８に記憶してもよい。
【００３９】
入出力インタフェース７５に接続されているドライブ８０は、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどのリムーバブルメディア８１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部７８に転送され、記憶される。
【００４０】
図６は、システム内のシグナルフローの概略について説明するための図であり、ＰＣ３３内で、マーク５３で示されるような画像効果を適用し、その画像効果を表示部５２と同時にSDI Monitorに表示する際の映像信号の流れを説明するための図である。なお、図６を参照して説明するシグナルフローは、映像信号の流れについて説明し、音声信号についての説明はここでは省略する。
【００４１】
図６は、映像信号の処理、ここでは、エフェクト処理を例に挙げて説明するが、そのような処理を行う部分をＰＣ３３から抽出し詳細に示した図である。エフェクト処理を行う部分の構成は、インタフェース１０１、記録部１０２、システムメモリ１０３、ＧＰＵ（Graphics Processing Unit）１０４、および、バス１０５を含む構成とされている。
【００４２】
ＧＰＵ１０４は、処理部１１１、ＧＰＵメモリ１２１、およびコマンドバッファ１３１を含む構成とされている。またＧＰＵメモリ１２１は、ＰＢＯ（Pixel Buffer Object）１２２とＦＢＯ（Frame Buffer Object）１２３−１乃至１２３−Ｎを含む構成とされている。なお、以下の説明において、ＦＢＯ１２３−１乃至１２３−Ｎを個々に区別する必要がない場合、単に、ＦＢＯ１２３と記述する。
【００４３】
ＧＰＵメモリ１２１内は、ＰＢＯ１２２とＦＢＯ１２３という複数のメモリから構成されているが、これらのメモリは、ハード的に異なるものとされていても良いし、１つの領域を分割することで、それぞれのメモリに割り当てられるようにしても良い。
【００４４】
インタフェース１０１は、SDI Interfaceなどで構成され、例えば、エフェクト処理済みの画像データを、ディスプレイ３１に供給するための処理を行う。記録部１０２は、例えば、ハードディスクドライブ（ＨＤＤ）や、リムーバブルディスク８１（図５）を含む構成とされ、画像データを記録している。システムメモリ１０３は、ＣＰＵ７１（図５）が処理を実行するときに、画像データを一旦記憶するためのメモリである。
【００４５】
ＧＰＵ１０４は、GPU Boardで構成される画像処理用基板である。バス１０５は、インタフェース１０１、記録部１０２、システムメモリ１０３、およびＧＰＵ１０４を相互に接続し、データの授受が行えるようにし、PCI Express x16などで構成されるバスである。
【００４６】
図６において、記録部１０２に記録されているデータが圧縮された画像データである場合、記録部１０２から読み出された画像データは、システムメモリ１０３に記憶され、ＣＰＵ７１（図５）の制御のもと、デコード（Decode）される。エフェクト処理が実行されるとき、非圧縮の画像データは、システムメモリ１０３からＧＰＵ１０４に転送され、ＰＢＯ１２２に記憶される。
【００４７】
ＧＰＵ１０４において、ＰＢＯ１２２に記憶されている画像データが用いられ、処理部１１１により画像処理（エフェクト処理）が施される。処理が施された画像データは、ＦＢＯ１２３−１乃至１２３−Ｎのうちの所定のＦＢＯ１２３に記憶される。そして、ＦＢＯ１２３に記憶された画像データは、システムメモリ１０３に戻される。システムメモリ１０３に戻された画像データは、インタフェース１０１を介して外部の装置、例えば、ディスプレイ３１に提供される。この際、必要があれば、Line補完がされ、SDIに出力される。
【００４８】
またＨＤ（High-Definition）テレビジョン放送用の画像データのようにデータ量が多い場合、例えば、ハードウェアでＨＤ信号をＳＤ信号にリサイズしたり、ＨＤ信号そのものを間引き処理をしたりして少ないデータ量にして、その結果を、システムメモリ１０３経由で表示部５２（図４）に出すような処理も行われる。このようなデータの流れでＧＰＵ１０４が用いられた場合、画像処理に大幅な時間を要すのでなく、システムメモリ１０３とＧＰＵ１０４間のデータ転送に大幅な時間を要し、この部分が編集機としてのリアルタイム性に大きく起因する。
【００４９】
図２を参照して説明したように、複数のエフェクト処理を実行するときに、システムメモリ１０３とＧＰＵ１０４との間で複数回のデータ転送が行われると、そのデータ転送に時間を要してしまい、リアルタイム性の実現の妨げとなる可能性がある。
【００５０】
そこで、本実施の形態においては、エフェクト処理に関わる処理を、以下に説明するように行うことで、システムメモリ１０３とＧＰＵ１０４との間でのデータ転送の回数を少なくし、リアルタイムに処理が行えるようにする。
【００５１】
図７を参照して、本実施の形態における処理の流れについて説明する。ＧＰＵ１０４におけるエフェクト処理は、図７の上図に示したように、４つの処理に分割される。すなわち、“Upload”、“Texture”、“Effect”、“Download”の４つの処理である。
【００５２】
“Upload”はOpenGLなどのＧＰＵ１０４を制御する関数（ＡＰＩ）の管理する画像メモリであるＰＢＯ１２２に、システムメモリ１０３からの画像データをコピーし、TextureID, PBOID, PBOをリングバッファに積む処理である。
【００５３】
“Texture”は、リングバッファからUploadで積み込んだ情報を取得し、ＰＢＯ１２２からテクスチャを生成する。“Texture”の処理により、ＰＢＯ１２２に格納されたデータが10BitやKRGB,420などの色空間の場合、一旦レンダリングが行われ、YUV422+Kの色空間に変換される。
【００５４】
“Effect”は、エフェクトのレンダリングを行う処理である。レンダリング結果はＦＢＯ１２３に格納される。
【００５５】
“DownLoad”は、エフェクト処理の結果が格納されているＦＢＯ１２３からデータを読み出し、システムメモリ１０３に供給する処理である。
【００５６】
図７の上図に示すように、１つのエフェクトに対し、これらの4つの処理が順次行われる。しかしながら、複数のエフェクト処理を連続して適用したい場合、エフェクト処理毎に、“Download”と“Upload”の処理を行うと、データ転送時間のロスになるだけでなく、バス１０５の帯域も無駄に占有してしまうことは既に説明した。そこで、図７の下図に示すように、複数のエフェクト処理を連続して適用する場合、Effect処理を連続して行い、最後にまとめて“DownLoad”を行うことでデータ転送の無駄を減らす。
【００５７】
すなわち、図７の下図に示したように、まず、処理１として、“Upload”の処理が実行され、処理２として、“Texture”の処理が行われる。そして、次に“Effect１”の処理が行われ、引き続き、“Effect２”の処理が行われる。このように、エフェクト処理が複数回（この場合、２回）連続して行われ、一旦、システムメモリ１０３にデータが戻されるといった処理は行われない。
【００５８】
換言すれば、複数のエフェクト処理が行われるとき、例えば、２回のエフェクト処理が行われるとき、“Effect１”と“Effect２”の間に、“Download”の処理や“Upload”の処理が実行されることはない。エフェクト処理の間に、“Download”の処理や“Upload”の処理といった処理が行われなければ、システムメモリ１０３とＧＰＵ１０４との間でデータの転送処理が行われることがないので、データ転送に係る時間を省略することができる。よって、エフェクト処理が行われるときの処理時間を短くすることが可能となる。
【００５９】
このように、必要な回数だけ連続してエフェクト処理が実行されると、“Download”の処理が実行され、データ転送が行われる。
【００６０】
このように、複数のエフェクト処理が実行される場合であっても、“Upload”の処理と“Download”の処理は、それぞれ１回しか行わない。そのために、システムメモリ１０３とＧＰＵ１０４との間でのデータ転送の処理も１往復だけで済むようになり、データ転送にかかる時間を短くすることが可能となる。
【００６１】
図８を参照し、さらに、具体的な例を挙げて説明を続ける。図８に示した例は、入力画像に対して、カラーコレクション（Color Correction）というエフェクト処理をかけて、さらにモザイク（Mosaic）というエフェクト処理をかけるといった例である。この例における処理が実行されると、入力画像に対し、カラーコレクションがかけられた後、その出力にモザイクがかけられた画像が出力されることになる。
【００６２】
まず処理１として、画像データの入力（Input）が行われる。“Input”というコマンドが実行されることにより、記録部１０２からシステムメモリ１０３に画像データが供給され、システムメモリ１０３に、処理対象とされる画像データが記憶される。処理２として、“Upload”というコマンドが実行されることにより、システムメモリ１０３からＧＰＵ１０４に画像データが転送される。
【００６３】
ＧＰＵ１０４に供給された画像データは、ＰＢＯ１２２に記憶される。ＰＢＯ１２２に記憶されたとき、上記したように、必要に応じ、“Texture”の処理が実行される。処理３として、カラーコレクション（Color Correction）というエフェクト処理が実行される。カラーコレクションが施された画像データは、ＦＢＯ１２３に記憶される。画像データが、ＦＢＯ１２３−１乃至１２３−Ｎのうち、どのＦＢＯ１２３に記憶されるかは、処理部１１１により決定される。ここでは、ＦＢＯ１２３−１に記憶されるとして説明を続ける。
【００６４】
処理４として、モザイク（Mosaic）というエフェクト処理が実行される。処理部１１１は、ＦＢＯ１２３−１に記憶されているカラーコレクションが施された画像データに対して、モザイクというエフェクト処理をさらにかける。このようにして、カラーコレクションとモザイクのエフェクト処理がかけられた画像データは、処理部１１１の制御のもと、例えば、ＦＢＯ１２３−２に記憶される。
【００６５】
これで、予め設定された２つのエフェクト処理が施されたことになるので、処理５として、“Download”の処理が実行される。ＦＢＯ１２３−２に記憶されているエフェクト処理済みの画像データは、Downloadの処理が実行されることにより、ＦＢＯ１２３−２から読み出され、システムメモリ１０３に供給され、記憶される。
【００６６】
処理６として、“Output”という処理が実行されると、システムメモリ１０３に記憶されたエフェクト処理済みの画像データが、インタフェース１０１に供給され、インタフェース１０１を介して、ディスプレイ３１などの他の装置に供給される。
【００６７】
さらに、このような処理が実行される際のコマンドについて図９を参照して説明する。
【００６８】
画像データが、ＣＰＵ７１の管理するシステムメモリ１０３に記憶される。ＣＰＵ７１は、“Upload”というコマンドを生成し、ＧＯＰ１０４に供給する。ＧＰＵ１０４は供給されたコマンドを、コマンドバッファ１３１（図６）に記憶する。
【００６９】
次に、ユーザが、マウス３４（図３）などを操作することにより、Color Correctionというエフェクト処理を指示すると、“Color Correction（CCR）”というコマンドが生成され、ＧＰＵ１０４に供給され、コマンドバッファ１３１に記憶される。
【００７０】
さらに、ユーザが、マウス３４（図３）などを操作することにより、Mosaicというエフェクト処理を指示すると、“Mosaic”というコマンドが生成され、ＧＰＵ１０４に供給され、コマンドバッファ１３１に記憶される。
【００７１】
ここでは、２つのエフェクト処理が指示される場合を例に挙げているので、Color CorrectionとMosaicという２つのエフェクト処理が指示された時点で、ユーザから、指示の終了を示す操作がされる。このような操作が行われると、ＣＰＵ７１は、“Download”というコマンドを生成し、ＧＰＵ１０４に供給する。
【００７２】
ＧＰＵ１０４は、“Download”というコマンドを受信すると、コマンドバッファ１３１に記憶されているコマンドを順次実行する。すなわち、この場合、“Upload”、“CCR”および“Mosaic”というコマンドが順次実行される。よって、画像データがＰＢＯ１２２に記憶され、その画像データに対して、カラーコレクションというエフェクト処理とモザイクというエフェクト処理が連続的に施され、そのエフェクト処理が施された画像データがＦＢＰ１２３に記憶され、さらに、システムメモリ１０３に転送される。
【００７３】
このような処理は、１フレーム毎に行われる。
【００７４】
このように、“Download”というコマンドを受けた時点で、コマンドバッファ１３１に記憶されていたコマンドが順次実行される。コマンド自体は画像データと比較すると、はるかにデータ量が小さいため、バス１０５の帯域を占有してしまったり、コマンドの転送のために、処理時間が無駄に費やされてしまったりといったことはない。
【００７５】
このように、Color CorrectionとMosaicがＧＰＵ１０４におけるエフェクト処理であった場合、単独ですべての処理を行う各EffectのPluginとして実装すると、例えば、図２を参照して説明したように、Color CorrectionとMosaicの間で無駄な転送処理が発生するが、図８を参照して説明したように、GPUエフェクト（本実施の形態を適用したエフェクト処理を、適宜、GPUエフェクトと記述する）を実装する各Pluginにはエフェクト処理部分のみを実装し、その他の処理を行うPlugin(Upload, Download)を用意して、連続したGPUエフェクトの前後に挟み込む形でGPUエフェクトの効率化を図ることにより、システム全体のレンダリング時間高速化、リアルタイム性の向上が実現される。
【００７６】
また、通常のプラグインではエフェクト処理した画像データを次のプラグインへ送るが、GPUエフェクトのプラグインでは、図９のように入力画像データとエフェクト処理を行うコマンドデータを送り、最終のDownloadプラグインで実際のエフェクト処理を行う。この手法をとることで、Downloadプラグインで接続関係を把握できるため、バッファの使用量を抑えることができる。
【００７７】
上述した実施の形態では、画像データとして１つの画像データを扱う場合を例に挙げて説明したが、次に２つの画像データを扱う場合を例に挙げて説明する。図１０は、２つの画像データを処理する例であり、図９と同じように図示してある。
【００７８】
図１０を参照して説明するエフェクト処理は、例えば、人物の映像と風景の映像をそれぞれ別に撮影し、その風景に人物を合成した画像を生成するときに行われる処理である。人物の映像に対しては、人物の部分のみが抽出され（クロマキー（Chroma-key）などと称されるエフェクト処理が行われ）、その抽出された人物が、合成する風景の中で適切な大きさとなるように拡大または縮小される（３Ｄなどと称されるエフェクト処理が行われる）。
【００７９】
風景の映像に対しては、クロマキーと３Ｄのエフェクト処理が施された後の人物の映像が合成される（コンポジター（Compositer）などと称されるエフェクト処理が行われる）。
【００８０】
まず、人物の映像に対して行われる処理を実行するためのコマンドについて説明する。人物の映像の画像データ（画像データ１とする（DATA1））が、ＣＰＵ７１の管理するシステムメモリ１０３に記憶される。ＣＰＵ７１は、“Upload”というコマンドを生成し、ＧＯＰ１０４に供給する。ＧＰＵ１０４は供給されたコマンドを、コマンドバッファ１３１（図６）に記憶する。
【００８１】
次に、ユーザが、マウス３４（図３）などを操作することにより、Chroma-keyというエフェクト処理を指示すると、“Chroma-key(CHR)”というコマンドが生成され、ＧＰＵ１０４に供給され、コマンドバッファ１３１に記憶される。
【００８２】
さらに、ユーザが、マウス３４（図３）などを操作することにより、３Ｄというエフェクト処理を指示すると、“３Ｄ”というコマンドが生成され、ＧＰＵ１０４に供給され、コマンドバッファ１３１に記憶される。
【００８３】
人物の映像は、風景の映像と合成されるため、さらにユーザは、マウス３４（図３）などを操作し、Compositerというエフェクト処理を指示する。その指示に対応し、ＣＰＵ７１は、“Compositer（COMP）”というコマンドを生成し、ＧＰＵ１０４に供給し、コマンドバッファ１３１に記憶させる。
【００８４】
合成する風景の映像も、人物の映像と同じく、システムメモリ１０３に記録される（Inputの処理が実行されることにより、記録部１０２からシステムメモリ１０３にコピーされる）。ＣＰＵ７１は、“Upload”というコマンドを生成し、ＧＯＰ１０４に供給する。ＧＰＵ１０４は供給されたコマンドを、コマンドバッファ１３１（図６）に記憶する。
【００８５】
このようなコマンドが順次コマンドバッファ１３１に記憶されることで、コマンドバッファ１３１には、Data１に関するコマンドとして“Upload”、“Chroma-key(CHR)”、“３Ｄ”というコマンドが記憶され、Data２に関するコマンドとして、“Upload”というコマンドが記憶され、Data１とData２に関するコマンドとして、“Compositer（COMP）”というコマンドが記憶される。
【００８６】
このような状態のときに、ユーザからの指示に基づきＣＰＵ７１が“Download”というコマンドを生成し、ＧＰＵ１０４に供給すると、コマンドバッファ１３１に記憶されているコマンドが順次実行される。
【００８７】
“Upload”というコマンドが実行されることにより、“DATA１”と“Data２”がシステムメモリ１０３から読み出され、ＧＰＵ１０３のＰＢＯ１２２に記憶される。次に、“Chroma-key(CHR)”と言うコマンドが実行されることにより、ＰＢＯ１２２に記憶されている人物の画像データである“DATA1”に対して、クロマキーの処理が実行される。クロマキーの処理が施された“DATA1”は、ＦＢＯ１２３−１に記憶される。
【００８８】
次に、“３Ｄ”というコマンドが実行されることにより、ＦＢＯ１２３−１に記憶されたクロマキーの処理が施された“DATA1”に対して、３Ｄの処理が施される。３Ｄの処理が施された“DATA1”は、先にクロマキーの処理が施された“DATA1”が記憶されていたＦＢＯ１２３−１とは異なるＦＢＯ１２３、例えば、ＦＢＯ１２３―２に記憶される。
【００８９】
一方、ＰＢＯ１２２に記憶されている“Data２”は、“Compositer”というコマンドが実行されると処理部１１１により読み出される。また、“Compositer”というコマンドが実行されることにより、ＦＢＯ１２３−２に記憶されている“DATA1”も読み出される。そして、読み出された“DATA1”と“Data２”が用いられCompositerの処理が実行される。
【００９０】
このような処理が、コマンドバッファ１３１に記憶されているコマンドに基づいて順次実行されることにより、風景と人物が合成された画像が生成される。合成された画像の画像データは、例えば、ＦＢＯ１２３−Ｎに一旦記憶され、その後、“Output”のコマンドが実行されることにより、システムメモリ１０３に転送され、さらにインタフェース１０１に転送され、外部の装置に出力される。
【００９１】
このようにしてエフェクト処理を実行することで、システム全体のレンダリング時間の高速化や、リアルタイム性の向上を実現することが可能となる。また、Downloadプラグインで接続関係を把握できるため、バッファの使用量を抑えることが可能となる。
【００９２】
［記録媒体について］
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
【００９３】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図５に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む）、光磁気ディスク（ＭＤ（Mini-Disc）を含む）、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア８１、または、プログラムが一時的もしくは永続的に格納されるＲＯＭ７２や、記憶部７８を構成するハードディスクなどにより構成される。プログラム格納媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部７９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【００９４】
なお、本明細書において、プログラム格納媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【００９５】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【００９６】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【００９７】
【図１】従来のエフェクト処理に係る一例の構成を示す図である。
【図２】従来のエフェクト処理の流れについて説明する図である。
【図３】本発明を適用したシステムの一実施の形態の構成を示す図である。
【図４】ディスプレイに表示される画面例を示す図である。
【図５】ＰＣの内部構成例を示す図である。
【図６】本発明のエフェクト処理に係る構成例を示す図である。
【図７】エフェクト処理の流れについて説明する図である。
【図８】エフェクト処理の流れについて説明する図である。
【図９】エフェクト処理のコマンドの流れについて説明する図である。
【図１０】エフェクト処理のコマンドの流れについて説明する図である。
【符号の説明】
【００９８】
１０１  インタフェース，  １０２  記録部，  １０３  システムメモリ，  １０４  ＧＰＵ，  １１１  処理部，  １２１  ＧＰＵメモリ，  １２２  ＰＢＯ，  １２３  ＦＢＯ，  １３１  コマンドバッファ
【図１】
2008098911.tif 000003
【図２】
2008098911.tif 000004
【図３】
2008098911.tif 000005
【図４】
2008098911.tif 000006
【図５】
2008098911.tif 000007
【図６】
2008098911.tif 000008
【図７】
2008098911.tif 000009
【図８】
2008098911.tif 000010
【図９】
2008098911.tif 000011
【図１０】
2008098911.tif 000012