以下、本発明の好ましい実施形態について、図面を参照しながら説明する。
《第1の実施形態》
図1は、本発明の第1の実施形態に係る画像処理システム100のブロック図である。図1を参照するに、この画像処理システム100はパーソナルコンピュータ等のコンピュータ端末を用いて実現され、そのコンピュータ端末に接続されたモニタ30、例えば、アナログモニタ30A、デジタルモニタ30B、および/またはTV受像器30CにCG画像を表示する。アナログモニタ30Aは液晶ディスプレイ(LCD)またはブラウン管モニタ(CRT)である。デジタルモニタ30BはLCDまたはデジタルプロジェクタである。TV受像器30Cはビデオテープレコーダ(VTR)に置き換えられてもよい。
画像処理システム100は、グラフィックスボード10、マザーボード20、およびシステムバス60を含む。グラフィックスボード10は、画像処理装置10A、内部バス13、入出力インタフェース(I/O)14、表示用データ生成器15、およびAV端子16を含む。マザーボード20は、CPU21、メインメモリ22、およびI/O23を含む。なお、グラフィックスボード10はマザーボード20に統合されていてもよい。システムバス60は、グラフィックスボード10とマザーボード20との間を接続するバスである。システムバス60はPCI−Express規格に準拠している。その他に、システムバス60はPCI規格またはAGP規格に準拠していてもよい。
画像処理装置10Aはグラフィックス処理専用のプロセッサ(GPU:Graphics Processing Unit)11とビデオメモリ(VRAM)12とを含む。GPU11とVRAM12とは内部バス13によって接続されている。
GPU11は、グラフィックス表示に必要な演算処理に特化した、チップ等の論理回路である。GPU11の行うCG処理にはジオメトリ処理とレンダリング処理とがある。ジオメトリ処理では、幾何学的演算、特に座標変換により、3次元仮想空間の中に想定された各モデルを2次元画面に投影したときの配置が決定される。レンダリング処理では、ジオメトリ処理で決定された2次元画面上での各モデルの配置に基づき、2次元画面に実際に表示されるべき画像のデータが生成される。レンダリング処理には、隠面消去、シェーディング、シャドウイング、テクチャマッピング等が含まれる。
GPU11は、頂点シェーダ11A、ピクセルシェーダ11B、およびROP(Rendering Output Pipeline、または、Rasterizing OPeration)ユニット11Cを含む。
頂点シェーダ11Aはジオメトリ処理専用の演算器であり、ジオメトリ処理に必要な幾何学的演算、特に座標変換に関する演算に利用される。頂点シェーダ11Aは、幾何学的演算の種類別に用意された演算器であっても、プログラムによって種々の幾何学的演算を処理可能な演算器であってもよい。
ピクセルシェーダ11Bはレンダリング処理専用の演算器であり、レンダリング処理に必要な各ピクセルの色情報、すなわちピクセルデータの処理に関する演算に利用される。ピクセルシェーダ11Bは、VRAM12から画像データをピクセル単位で読み出して、その成分間の和および積をピクセル単位で計算できる。ピクセルシェーダ11Bは、ピクセルデータの処理に関する演算の種類別に用意された演算器であっても、プログラムによって種々の演算をピクセル単位で処理可能な演算器であってもよい。さらに、同じプログラム可能な演算器がプログラムに応じて、頂点シェーダ11Aおよびピクセルシェーダ11Bとして使い分けられてもよい。
なお、ピクセルデータは例えばARGB4:4:4:4で表現される。RGBは三原色の各成分を表し、Aはアルファ値を表す。ここで、アルファ値は、同じピクセルデータの色成分を他のピクセルデータの色成分とアルファ合成するときの重みを表す。アルファ値は、正規化された場合0〜1の間の数値をとり、百分率で表した場合0〜100%の数値をとる。アルファ値は、アルファ合成における各ピクセルデータの色成分の不透明の度合いを意味する場合もある。
ROPユニット11Cは、レンダリング処理専用の演算器であり、レンダリング処理において、ピクセルシェーダ11Bによって生成されたピクセルデータをVRAM12に書き込む。ROPユニット11Cはさらに、そのピクセルデータの各成分と、VRAM12に記憶された別のピクセルデータの各成分との和および積を計算できる。その機能を利用することで、ROPユニット11Cは特に、フレームバッファ12Aの画像データにVRAM12の別領域の画像データをアルファ合成して、フレームバッファ12Aに書き込むことができる。
VRAM12は、例えば、シンクロナスDRAM(SDRAM)であり、好ましくは、DDR(Double−Data−Rate)−SDRAM、またはGDDR(Graphic−DDR)−SDRAMである。VRAM12はフレームバッファ12Aを含む。フレームバッファ12Aは、GPU11によって処理された、モニタ30に出力されるべき1フレームの画像データを記憶する。フレームバッファ12Aの各メモリセルが一つのピクセルの色情報、すなわち一組のピクセルデータを記憶する。ここで、ピクセルデータは例えばARGB4:4:4:4で表現される。VRAM12は、フレームバッファ12Aの他に、各種テクスチャ等の画像データの記憶領域やGPU11用の演算バッファ領域を含む。
I/O14は、内部バス13をシステムバス60に接続するインタフェースであり、システムバス60を通してグラフィックスボード10とマザーボード20との間でデータを交換する。I/O14はPCI−Express規格に準拠している。その他に、I/O14はPCI規格またはAGP規格に準拠していてもよい。なお、I/O14は、GPU11と同じチップに組み込まれていてもよい。
表示用データ生成器15は、フレームバッファ12Aからピクセルデータを読み出して表示用データとして出力するためのチップ等のハードウェアである。表示用データ生成器15は、フレームバッファ12Aのアドレス範囲をモニタ30の画面に対応させ、そのアドレス範囲の中に読み出しアドレスを生成するごとに、その読み出しアドレスからピクセルデータを順番に読み出して一連の表示用データとして出力する。なお、表示用データ生成器15は、GPU11と同じチップに組み込まれていてもよい。
AV端子16は、モニタ30に接続され、表示用データ生成器15から出力された表示用データを、モニタ30への出力に適した信号形式に変換してモニタ30に出力する。AV端子16は例えば、アナログRGBコネクタ16A、DVIコネクタ16B、およびS端子16Cを含む。アナログRGBコネクタ16Aは、表示用データをアナログRGB信号に変換してアナログモニタ30Aに出力する。DVIコネクタ16Bは、表示用データをDVI信号に変換してデジタルモニタ30Bに出力する。S端子16Cは、表示用データを、NTSC、PAL、またはHDTVのTV信号に変換してTV受像器30Cに出力する。ここで、TV信号は、S信号、コンポジット信号、またはコンポーネント信号のいずれでもよい。AV端子16はその他に、HDMIコネクタやD端子等、他の種類のコネクタや端子を含んでもよい。なお、表示用データを適切な信号形式に変換する機能は、AV端子16の代わりにGPU11に実装されていてもよい。その場合、GPU11は表示用データを、出力先のモニタ30の種類に応じた信号形式に変換して、AV端子16からモニタ30に出力する。
CPU21は、メインメモリ22に記憶されているプログラムを実行し、そのプログラムに従って、グラフィックスボード10に処理対象の画像データを与え、グラフィックスボード10の各要素の動作を制御する。CPU21はメインメモリ22からVRAM12に画像データを書き込むことができる。そのとき、CPU21は画像データの形式を、GPU11によって処理可能な形式、例えばARGB4:4:4:4に変換してもよい。
メインメモリ22は、CPU21によって実行されるプログラム、および、グラフィックスボード10による処理対象の画像データを記憶する。
I/O23は、CPU21およびメインメモリ22をシステムバス60に接続するインタフェースであり、システムバス60を通してグラフィックスボード10とマザーボード20との間でデータを交換する。I/O23はPCI−Express規格に準拠している。その他に、I/O23はPCI規格またはAGP規格に準拠していてもよい。
図2は、画像処理装置10Aの機能構成を示すブロック図である。図2を参照するに、画像処理装置10Aは、影描画手段101、背景合成手段102、および前景合成手段103を含む。これら三つの手段101、102、103はGPU11によって実現され、前景の影を生成して背景に描画する処理を行う。ここで、前景のデータおよび背景のデータは予め、例えばCPU21の命令によってVRAM12に記憶されている。なお、CPU21の代わりにGPU11の命令によってVRAM12に記憶されていてもよい。また、VRAM12の代わりに、CPU21あるいはGPU11がアクセス可能なメモリ、例えば、メインメモリ22に前景のデータおよび背景のデータが記憶されていてもよい。
影描画手段101は、CPU21からの指示に従い、VRAM12に記憶された前景のデータからその前景の影のデータを生成して、フレームバッファ12Aに書き込む。
図3Aは、影描画手段101による前景FGの影SHのデータの生成およびフレームバッファ12Aへの書き込みの説明図である。図3Aを参照するに、影描画手段101はまず、影SHの色とアルファ値0%とを示すピクセルデータでフレームバッファ12Aの全体を埋める。影描画手段101は次に、VRAM12に記憶された前景FGのデータからその前景FGの影SHのアルファ値を生成してフレームバッファ12Aに書き込む。ここで、影描画手段101は頂点シェーダ11Aを利用して影SHの形を計算してもよい。
図3Bは、影描画手段101によってフレームバッファ12Aに書き込まれた前景FGの影SHのデータを模式的に表す図である。図3Bを参照するに、斜線部は影SHの範囲を示す。その範囲の内側ではアルファ値が0%より大きいので影の色が表示され、その範囲の外側ではアルファ値が0%であるので影の色が表示されない。このように、フレームバッファ12Aには影SHのデータが記憶される。
なお、前景が一つで、光源が複数の場合や、前景が複数で光源が一つの場合、あるいはこれらの組み合わせの場合は、複数の異なる影が生じる。このような場合、影描画手段101は、それらの影のデータを一つずつ順番に生成してフレームバッファ12Aに書き込む。新たに生成された影が、フレームバッファ12Aに先に書き込まれた影と同じピクセルで重なる場合、影描画手段101は、新たに生成された影と先に書き込まれた影とでそのピクセルのアルファ値を比較して、いずれか大きい方をそのピクセルのアルファ値として選択する。こうして、影の重複描画が容易に防止される。
図2に戻り、背景合成手段102は、VRAM12に記憶された背景のデータをフレームバッファ12Aの画像データにアルファ合成してフレームバッファ12Aに書き込む。
図4Aは、背景合成手段102による前景の影SHのデータと背景BGのデータとのアルファ合成の説明図である。図4Aを参照するに、背景合成手段102は、VRAM12から背景BGのピクセルデータを読み出して、背景BGの各ピクセルデータをフレームバッファ12Aの対応するピクセルデータにアルファ合成し、アルファ合成されたピクセルデータでフレームバッファ12Aの元のピクセルデータを更新する。背景合成手段102はそれらの操作をフレームバッファ12Aの全てのピクセルデータについて繰り返すことにより、アルファ合成された前景の影SHと背景BGとのデータをフレームバッファ12Aに書き込むことができる。
図4Bは、背景合成手段102によってフレームバッファ12Aに書き込まれた、アルファ合成された前景の影SHと背景BGとのデータを模式的に表す図である。図4Bを参照するに、斜線部は影SHの範囲を示し、横線部は背景BGの範囲を示す。影SHの内側では影SHの色と背景BGの色とが、それぞれのアルファ値に応じた割合で加算されて表示される。一方、影SHの外側では影SHのアルファ値が0%であるので、背景BGの色が背景BGのアルファ値の重みで表示される。
図2に戻り、前景合成手段103は、VRAM12に記憶された前景のデータをフレームバッファ12Aに書き込む。
図5Aは、前景合成手段103による前景FGのデータのフレームバッファ12Aへの書き込みの説明図である。図5Aを参照するに、前景合成手段103は、VRAM12から前景FGのピクセルデータを一組読み出すごとに、そのピクセルデータでフレームバッファ12Aの対応するピクセルデータを更新する。前景合成手段103はそれらの操作を、VRAM12に記憶された前景FGの全てのピクセルデータについて繰り返すことにより、前景FGのデータをフレームバッファ12Aに書き込む。
図5Bは、前景合成手段103によってフレームバッファ12Aに書き込まれた、前景FG、背景BG、および前景FGの影SHのデータを模式的に表す図である。図5Bを参照するに、白色部は前景FGの範囲を示し、斜線部は影SHの範囲を示し、横線部は背景BGの範囲を示す。前景FGの内側では、影SHの色および背景BGの色にかかわらず、前景FGの色が前景FGのアルファ値の重みで表示される。一方、前景FGの外側では、図4Bに示されている影SHと背景BGとの合成画像が表示される。
図6は、本発明の第1の実施形態に係る画像処理方法のフローチャートである。以下、図6を参照しながら、画像処理装置10Aによる画像処理方法について説明する。GPU11は、例えば、CPU21から画像処理の指示を受けたときに、以下の処理は開始される。
最初に、ステップS10では、影描画手段101が、VRAM12に記憶された前景のデータを読み出して、その前景の影のデータを生成して、フレームバッファ12Aに書き込む。
次いで、ステップS20では、背景合成手段102が、VRAM12に記憶された背景のデータをフレームバッファ12Aの画像データにアルファ合成してフレームバッファ12Aに書き込む。なお、そのアルファ合成処理の詳細については後述する。
次いで、ステップS30では、前景合成手段103が、VRAM12に記憶された前景のデータをフレームバッファ12Aに書き込む。
図7は、背景合成手段102による前景の影のデータと背景のデータとのアルファ合成処理のフローチャートである。以下、図7を参照しながら、そのアルファ合成処理の詳細について説明する。
最初に、ステップS21では、背景合成手段102がピクセルシェーダ11Bを利用して、VRAM12に記憶された背景のデータから一組のピクセルデータ、すなわち、一つのピクセルの色成分BCとアルファ値BAとを読み出す。
次いで、ステップS22では、背景合成手段102がピクセルシェーダ11Bを利用して、読み出されたピクセルデータの色成分BCとアルファ値BAとの積BC×BAを求める。その積BC×BAはROPユニット11Cに出力される。
次いで、ステップS23では、背景合成手段102がROPユニット11Cを利用して、フレームバッファ12Aに記憶された前景の影のデータから、ステップS21で読み出されたピクセルデータに対応するピクセルデータ、すなわち、当該ピクセルの色成分SCとアルファ値SAとを読み出す。
次いで、ステップS24では、背景合成手段102がROPユニット11Cを利用して、背景の色成分BCと背景のアルファ値BAとの積BC×BA、および、前景の影の色成分SCと前景の影のアルファ値SAを用いて、アルファ合成された色成分RCを次式(1)から求める。
RC=SC×SA+(BC×BA)×(1−SA)・・・・・・・(1)
次いで、ステップS25では、背景合成手段102がROPユニット11Cを利用して、アルファ合成された色成分RCをフレームバッファ12Aに書き込む。
次いで、ステップS26では、背景合成手段102がピクセルシェーダ11Bを利用して、1フレームの全てのピクセルについてアルファ合成処理を終えたか否かを判定する。アルファ合成処理を終えていないピクセルが残っている場合(ステップS26で“NO”の場合)、処理がステップS21から繰り返され、全てのピクセルについてアルファ合成処理を終えた場合(ステップS26で“YES”の場合)、処理が図6のフローチャートに戻って、ステップS30に進む。
ここで、背景合成手段102によるアルファ合成処理には、次に説明するGPUの持つアルファ合成機能を使用しない。それは以下の理由による。
従来のアルファ合成機能では、書き込み先のバッファに予め書き込まれた画像データにソースバッファの画像データがアルファ合成される。GPUは特に、書き込み先のバッファの色成分DSTC、および、ソースバッファの色成分SRCCとアルファ値SRCAを用いて、アルファ合成された色成分RSLCを次式(2)から求める。
RSLC=SRCC×SRCA+DSTC×(1−SRCA)・・・・・・・(2)
ここで、書き込み先のバッファの色成分DSTCとしては、元のピクセルデータの色成分とアルファ値との積が利用される。
この従来のアルファ合成機能を利用する場合、フレームバッファに背景のデータを先に書き込んでフレームバッファを書き込み先のバッファとして指定し、フレームバッファとは別の一時バッファに前景の影のデータを書き込んでその一時バッファをソースバッファとして指定する。それにより、式(2)では、書き込み先のバッファの色成分DSTCとして背景の色成分BCとアルファ値BAとの積BC×BAが用いられ、ソースバッファの色成分SRCCとアルファ値SRCAとして前景の影の色成分SCとアルファ値SAとがそれぞれ用いられる。従って、式(2)の結果RSLCとして式(1)の結果RCが得られる。すなわち、背景のデータに前景の影のデータが正しくアルファ合成される。
しかし、この合成処理では、フレームバッファ12Aに前景の影のデータを先に書き込んでフレームバッファ12Aを書き込み先のバッファとして指定し、背景のデータが書き込まれたVRAM12の領域をソースバッファとして指定した場合、式(2)では、書き込み先のバッファの色成分DSTCとして前景の影の色成分SCとアルファ値SAとの積SC×SAが用いられ、ソースバッファの色成分SRCCとアルファ値SRCAとして背景の色成分BCとアルファ値BAとがそれぞれ用いられる。従って、式(2)の結果RSLCは式(1)の結果RCとは異なる。すなわち、前景の影のデータに背景のデータが正しくはアルファ合成されない。
ステップS20のアルファ合成処理では、背景合成手段102が、GPU11の従来のアルファ合成機能に代えて、ピクセルシェーダ11BとROPユニット11Cとの各演算機能を利用して、式(1)の演算を実現させる。それにより、背景合成手段101は、フレームバッファ12Aに前景の影のデータを先に書き込んでも、そのデータに背景のデータを正しくアルファ合成できる。
第1の実施形態に係る画像処理装置10Aは、フレームバッファ12Aに前景の影のデータを背景のデータよりも先に書き込み、上記式(1)の演算によって、フレームバッファ12Aの画像データに背景のデータをアルファ合成する。それにより、画像処理装置10Aは、フレームバッファ12Aとは別の一時バッファを利用することなく、前景の影のデータを背景のデータに正しくアルファ合成することができる。その結果、画像処理装置10Aは、VRAM12等、画像処理に割り当てられるメモリの容量および帯域をさらに削減できる。
第1の実施形態に係る画像処理装置10Aは、GPU11を利用して、影描画手段101、背景合成手段102、および前景合成手段103を実現する。画像処理装置10Aはその他に、GPU11の代わりにCPU21を利用して、それら三つの手段101、102、103の一つ以上を実現してもよい。また、各手段101、102、103は、前景のデータおよび/または背景のデータを、VRAM12の代わりに、メインメモリ22から読み出してもよい。さらに、フレームバッファ12Aは、VRAM12の代わりにメインメモリ22の中に組み込まれていてもよい。
《第2の実施形態》
図8は、本発明の第2の実施形態に係るビデオ編集システム200のハードウェア構成を示すブロック図である。図8を参照するに、第2の実施形態に係るビデオ編集システム200はノンリニアビデオ編集システムであり、パーソナルコンピュータ等のコンピュータ端末を用いて実現される。ビデオ編集システム200は、画像処理システム100、HDD300A、ドライブ400A、入出力インタフェース500、ユーザインタフェース600、およびエンコーダ700を備えている。ビデオ編集システム200はそれらの他に、外部のLANやインターネットに接続可能なネットワークインタフェースをさらに備えてもよい。
画像処理システム100は、グラフィックスボード10、マザーボード20、およびシステムバス60を含む。グラフィックスボード10は、画像処理装置10A、内部バス13、I/O14、表示用データ生成器15、およびAV端子16を含む。マザーボード20は、CPU21、メインメモリ22、およびI/O23を含む。画像処理システム100は、図1に示されている要素と同様な要素を含み、図8ではそれら同様な要素に対して、図1に示されている符号と同じ符号を付し、詳細な説明については、第1の実施形態における説明を援用する。
なお、CPU21は、画像処理システム100の各要素に加えて、ビデオ編集システム200の各要素を制御する。また、AV端子16は、図1に示されているコネクタ等16A、16B、16Cに加えて、例えばIEEE1394インタフェースを含み、それを利用して第1カメラ501Aとの間でAVデータの入出力を行う。AV端子16は、第1カメラ501Aの他にも、VTR、スイッチャー、送出サーバー等、AVデータを扱う様々な機器との間でAVデータの入出力を行ってもよい。
HDD300Aおよびドライブ400Aは、ビデオ編集システム200を実現するコンピュータ端末に内蔵され、システムバス60に接続されている。なお、HDD300Aの代わりに、図8に示されているように、入出力インタフェース500を通してシステムバス60に接続された外付けのHDD300Bを設けてもよく、HDD300AとHDD300Bの両方を設けてもよい。HDD300Bはネットワークを介して入出力インタフェース500に接続されてもよい。同様に、ドライブ400Aの代わりに、またはドライブ400Aに加えて、外付けのドライブ400Bを設けてもよい。
ドライブ400Aおよびドライブ400Bは、DVD401等のリムーバブルメディアに、映像データおよび/または音声データを含むAVデータの記録再生を行う。リムーバブルメディアとしては、光ディスク、磁気ディスク、光磁気ディスク、半導体メモリ等が挙げられる。
入出力インタフェース500は、HDD300Bやドライブ400Bの他に、ユーザインタフェース600の各要素61〜64や、第2カメラ501B等の外部機器に内蔵される記憶媒体をシステムバス60に接続する。入出力インタフェース500は、例えばIEEE1394インタフェースを利用して第2カメラ501Bとの間でAVデータの入出力を行う。入出力インタフェース500は、第2カメラ501Bの他にも、VTR、スイッチャー、送出サーバー等、AVデータを扱う様々な機器との間でAVデータの入出力を行うことができる。
ユーザインタフェース600は、入出力インタフェース500を通してシステムバス60に接続されている。ユーザインタフェース600は例えば、マウス601、キーボード602、ディスプレイ603、およびスピーカ604を含む。ユーザインタフェース600は、タッチパネル(図示せず)等、他の入力デバイスを含んでもよい。
エンコーダ700は、AVデータの符号化処理専用の回路であり、システムバス60から供給されたAVデータを、例えば、MPEG(Moving Picture Experts Group)方式で圧縮符号化してシステムバス60に出力する。なお、エンコーダ700は、グラフィックスボード10またはマザーボード20に統合されていてもよい。さらに、エンコーダ700はGPU11の中に組み込まれていてもよい。また、エンコーダ700は、圧縮を目的としない符号化処理に利用されてもよい。
図9は、第2の実施形態に係るビデオ編集システム200の機能構成を示すブロック図である。図9を参照するに、ビデオ編集システム200は、編集部201、符号化部202、および出力部203を含む。これら三つの機能部201、202、203は、CPU21に所定のプログラムを実行させることによって実現される。画像処理装置10Aは、影描画手段101、背景合成手段102、および前景合成手段103を含む。これら三つの手段101、102、103は、図2に示されている手段101、102、103と同様であるので、それらの詳細については、第1の実施形態に係る手段101、102、103についての説明を援用する。
編集部201は、ユーザの操作に従い、編集対象のAVデータを選択して、それに対する編集情報を作成する。編集情報は、編集対象のAVデータから一連のAVデータストリームを編集する処理の内容を規定する情報である。編集情報は、例えば、そのAVデータストリームの各部分を構成する素材データの一部または全体を参照する情報、すなわちクリップを含む。編集情報はさらに、クリップごとに、その参照先の素材データを含むファイルの識別情報と形式、静止画や動画等の素材データの種類、映像サイズ、アスペクト比、フレームレート、および/または、素材データの参照部分の時間軸上、すなわちタイムライン上での開始位置と終了位置との各タイムコードを含む。編集情報はその他に、クリップごとに、その参照先の素材データに対する、復号処理やエフェクト処理等の編集処理の内容を規定する情報を含む。ここで、エフェクト処理の種類には、例えば、各クリップに対応する映像の色や明るさの調整、各クリップに対応する映像全体に対する特殊効果、および、複数のクリップ間での映像の合成等が含まれる。
編集部201はさらに、編集情報に基づき、選択されたAVデータを読み出してそれに対して編集処理を行い、一連のAVデータストリームとして出力する。
具体的には、編集部201は、まず、DVD401、HDD300A、またはHDD300B等のリソースに記憶されたファイルの一覧を、ユーザインタフェース600に含まれるディスプレイ603に表示する。それらのファイルは、映像データ、音声データ、静止画、またはテキストデータ等を含む。ユーザはマウス601やキーボード602を操作して、その一覧の中から、編集対象のデータ、すなわち素材データを含むファイルを選択する。編集部201は、ユーザによるファイルの選択を受け付け、選択されたファイルに対応するクリップをディスプレイ603に表示する。
図10は、編集ウィンドウEWの一例である。編集部201は、ディスプレイ603にこの編集ウィンドウEWを表示してユーザから編集操作を受け付ける。図10を参照するに、編集ウィンドウEWは、例えば、素材ウィンドウBW、タイムラインウィンドウTW、およびプレビューウィンドウPWを含む。
編集部201は、素材ウィンドウBWに、選択された編集対象のファイルに対応するクリップIC1を表示する。
編集部201は、タイムラインウィンドウTWに複数のトラックTRを表示し、各トラックTR上へのクリップCL1〜CL4の配置を受け付ける。図10では、各トラックTRは画面の水平方向に延びている細長い帯状領域である。各トラックTRはタイムライン上での位置情報を示す。図10では、各トラックTRの上を画面の水平方向に左から右へ進むほどタイムライン上の位置が進むように、各トラックTR上の水平方向での位置がタイムライン上の位置に対応づけられている。編集部201は、例えばユーザによるマウス601の操作を通して、素材ウィンドウBWから各トラックTR上へのクリップCL1〜CL4の配置を受け付ける。
編集部201は、タイムラインウィンドウTWにタイムラインカーソルTLCと時間軸目盛りTLSとを表示してもよい。図10では、タイムラインカーソルTLCは、時間軸目盛りTLSから画面の垂直方向に延びた直線であり、各トラックTRと垂直に交差している。タイムラインカーソルTLCはタイムラインウィンドウTWの中を水平方向に移動可能である。タイムラインカーソルTLCの端が指す時間軸目盛りTLSの値は、タイムラインカーソルTLCと各トラックTRとの交差点のタイムライン上での位置を表す。
編集部201は、各トラックTR上に配置される各クリップCL1〜CL4のタイムライン上での開始位置であるインポイントIPと終了位置であるアウトポイントOPとの設定、および、各トラックTR上に配置された後での各クリップCL1〜CL4のインポイントIPとアウトポイントOPとの変更を受け付ける。
編集部201は、各トラックTR上に配置された各クリップCL1〜CL4について、エフェクト処理の設定、例えば、各クリップCL1〜CL4に対応する映像の色や明るさの調整、各映像に対する特殊効果の設定、異なるトラックTRに並列に配置された第2クリップCL2と第3クリップCL3等の間での映像の合成等をユーザから受け付ける。
編集部201は、プレビューウィンドウPWに、タイムラインカーソルTLCの示すタイムライン上の位置に配置されたクリップに対応する映像を表示する。図10では、タイムラインカーソルTLCの示す、第3クリップCL3内の位置に対応する映像IMがプレビューウィンドウPWに表示される。編集部201はまた、タイムラインウィンドウTWに配置されたクリップCL1〜CL4のうち、指定された範囲に対応する動画像をプレビューウィンドウPWに表示する。ユーザは、プレビューウィンドウPWに表示された映像から、編集部201によって受け付けられた編集処理の結果を確認できる。
編集部201は、タイムラインウィンドウTW内のトラックTR上でのクリップCL1〜CL4の配置、および、各クリップCL1〜CL4に設定された編集処理の内容に基づいて編集情報を生成する。編集部201はさらに、その編集情報に従い、各クリップCL1〜CL4が参照するファイルから素材データを読み出して復号し、各クリップCL1〜CL4に設定されたエフェクト処理を素材データに加え、その結果得られたAVデータをタイムライン上の順番で連結して一連のAVデータストリームとして出力する。そのとき、編集部201は、必要に応じて、復号処理および/またはエフェクト処理に画像処理装置10Aを利用する。
符号化部202は、図8に示されているエンコーダ700のデバイスドライバである。符号化部202はその他に、CPU21によって実行されるAVデータの符号化処理モジュールであってもよい。符号化部202は、編集部201から出力されたAVデータストリームを符号化する。その符号化方式は編集部201によって設定される。
出力部203は、符号化されたAVデータストリームを所定のファイル形式または伝送形式に整形する。そのファイル形式または伝送形式は編集部201によって設定される。具体的には、出力部203は、必要に応じて、図8に示されている表示用データ生成器15やAV端子16を利用し、符号化されたAVデータストリームに、その復号に必要な情報やパラメータ、その他規定された情報を加え、それらのデータ全体を規定された形式に整える。
出力部203はさらに、システムバス60を通して任意の記録媒体、例えば、HDD300A、HDD300B、または、ドライブ400A若しくはドライブ400Bに装着されたDVD401等に、整形されたAVデータストリームを書き込む。出力部203はその他に、整形されたAVデータストリームを、ネットワークインタフェースを通して接続されたデータベースや情報端末に送信することもできる。出力部203は、整形されたAVデータストリームを、AV端子16や入出力インタフェース500から外部機器に出力することもできる。
編集部201は、画像処理装置10Aの影描画手段101、背景合成手段102、および前景合成手段103をエフェクト処理に利用する。それにより、編集部201は、エフェクト処理の一つとして、例えば図10に示されている第2クリップCL2に対応する画像の影、または、球体や箱等、所定の仮想的な物体を生成し、さらにその物体の影を生成して、第3クリップCL3に対応する背景に描画する処理を提供できる。編集部201は、前景のデータと背景のデータとをVRAM12に書き込んだ上で画像処理装置10Aに影の生成を指示する。その結果、画像処理装置10Aから出力された、前景、その影、および背景の合成画像のデータは、編集部201によって符号化部202に出力され、または、表示用データ生成器15、AV端子16、入出力インタフェース500によってモニタ30若しくはディスプレイ603に表示される。
第2の実施形態に係るビデオ編集システム200は、画像処理装置10Aが、第1の実施形態に係るものと同様に、フレームバッファ12Aに前景の影のデータを背景のデータよりも先に書き込み、式(1)の演算によって、フレームバッファ12Aの画像データに背景のデータをアルファ合成する。それにより、画像処理装置10Aは、フレームバッファ12Aとは別の一時バッファを利用することなく、前景の影のデータを背景のデータに正しくアルファ合成することができる。その結果、第2の実施形態に係るビデオ編集システム200は、VRAM12等、画像処理に割り当てられるメモリの容量および帯域をさらに削減できる。
なお、第2の実施形態に係るビデオ編集システム200は、GPU11を利用して、影描画手段101、背景合成手段102、および前景合成手段103を実現する。ビデオ編集システム200はその他に、GPU11の代わりにCPU21を利用して、それら三つの手段101、102、103の一つ以上を実現してもよい。また、各手段101、102、103は、前景のデータおよび/または背景のデータを、VRAM12の代わりに、メインメモリ22から読み出してもよい。さらに、フレームバッファ12Aは、VRAM12の代わりにメインメモリ22の中に組み込まれていてもよい。