以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)動画像クラスタ処理システムの全体構成
図1において、1は全体として第1の実施の形態の動画像クラスタ処理システムを示し、管理装置としてのホストノードパソコン2と、情報処理装置としての4台の計算ノードパソコン3A〜3Dとがネットワーク4を介して接続されている。
この動画像クラスタ処理システム1は、外部から供給されるアナログ映像信号を、クラスタ処理によってJPEG(Joint Photographic cording experts Group)2000方式でリアルタイム圧縮符号化処理するようになされている。
ホストノードパソコン2においては、当該ホストノードパソコン2を統括制御するCPU11に対し、メモリ12、表示部13、ハードディスクドライブ14、ネットワークインターフェース15及びビデオキャプチャ回路16が、バス17を介して接続されている。
ハードディスクドライブ14には、例えばWindows(登録商標)等のオペレーティングシステムや、動画像クラスタ処理プログラム等の各種アプリケーションプログラムが格納されている。CPU11は、ホストノードパソコン2の起動に応じてハードディスクドライブ14からオペレーティングシステムを読み出し、メモリ12に展開して実行する。
そして動画像処理指示手段としてのCPU11は、オペレーティングシステムの実行環境下において動画像クラスタ処理プログラムを実行し、計算ノードパソコン3A〜3Dに対して動画像の圧縮符号化及び伸張復号化処理を分散処理させる。
すなわち動画像の圧縮符号化時において、ホストノードパソコン2のビデオキャプチャ回路16は、外部から供給されるアナログ映像信号S1をディジタル変換してディジタル映像信号D1を生成し、これをCPU11に供給する。CPU11は動画像クラスタ処理プログラムに従い、ディジタル映像信号D1の圧縮符号化を計算ノードパソコン3A〜3Dに分散処理させる。
ここでJPEG2000方式は、ディジタル映像信号の圧縮符号化を、ピクチャとしてのフレーム(又はフィールド)毎に完結して行うとともに、各フレームを、複数の画像ブロック(以下、これをタイルと呼ぶ)に分割して、各タイル個別に圧縮符号化し得るようになされている。
すなわち図2に示すように、CPU11は例えば720×480画素でなるディジタル映像信号S1の各フレームを計算ノードパソコン3A〜3Dの台数に合わせて4分割し、360×240画素でなるタイル1〜タイル4を生成する。そしてCPU11は、分割後の各タイル1〜タイル4のデータを分割ディジタル映像データD2A〜D2Dとして対応する計算ノードパソコン3A〜3Dに順次供給する(図3(A))。
計算ノードパソコン3A〜3Dにおいては、当該計算ノードパソコン3を統括制御するCPU21に対し、メモリ22、表示部23、ハードディスクドライブ24及びネットワークインターフェース25がバス27を介して接続されている。
ハードディスクドライブ24には、オペレーティングシステムやクラスタアプリケーションプログラム等の各種アプリケーションプログラムが格納されている。CPU21は、計算ノードパソコン3の起動に応じてハードディスクドライブ24からオペレーティングシステムを読み出し、メモリ22に展開して実行する。
そしてCPU21は、オペレーティングシステムの実行環境下において動画像クラスタ処理プログラムを実行することにより、ホストノードパソコン2から供給される分割ディジタル映像データD2(D2A〜D2D)をJPEG2000方式で圧縮符号化して分割符号化データD3(D3A〜D3D)を生成し、これをホストノードパソコン2に返送する(図3(B))。
処理結果取得手段としてのCPU11は、各計算ノードパソコン3A〜3Dから返送される分割符号化データD3A〜D3Dをフレーム単位で順次合成して、圧縮符号化されたフレームデータの連続でなる符号化映像信号D4を生成し、これをハードディスクドライブ14に格納するか、あるいはネットワーク4を介して外部の送信先に送信する(図3(C))。
かくして動画像クラスタ処理システム1は、アナログ映像信号S1をクラスタ処理によってリアルタイム圧縮符号化する。
また動画像の伸張復号化時において、ホストノードパソコン2のCPU11はクラスタアプリケーションプログラムに従い、ハードディスクドライブ14から読みだした符号化映像信号D4、あるいは外部からネットワーク4を介して供給された符号化映像信号D4の伸張復号化を計算ノードパソコン3A〜3Dに分散処理させる。
すなわちCPU11は、符号化映像信号D4のフレーム毎の符号化データを、図2に示すタイル1〜タイル4に対応して4分割して分割符号化データD3A〜D3Dを生成し、それぞれを対応する計算ノードパソコン3A〜3Dに供給する(図3(C))。
計算ノードパソコン3A〜3DのCPU21は動画像クラスタ処理プログラムに従い、それぞれホストノードパソコン2から供給される分割符号化データD3A〜D3Dを伸張復号化して、タイル1〜タイル4の連続映像でなる分割ディジタル映像データD2A〜D2Dを生成し、これをホストノードパソコン2に返送する(図3(D))。
処理結果取得手段としてのCPU11は、各計算ノードパソコン3A〜3Dから返送された分割ディジタル映像データD2A〜D2Dをフレーム毎に順次合成してディジタル映像信号D1を生成し、これを表示部13に表示するか、あるいはネットワーク4を介して外部の送信先に送信する(図3(E))。
かくして動画像クラスタ処理システム1は、符号化映像信号D4をクラスタ処理によってリアルタイム伸張復号化する。
(1−2)圧縮符号化及び伸張復号化時のエラーコンシールメント
かかる構成に加えてホストノードパソコン2は、各計算ノードパソコン3A〜3Dそれぞれにおけるタイル毎の符号化処理時間又は復号化処理時間を常に監視している。
そしてホストノードパソコン2は、符号化処理時間又は復号化処理時間のいずれかが所定の基準処理時間を越えた場合(すなわち計算ノードにおける処理遅延の発生)、当該処理遅延が発生したタイルを含むフレームを、その前又は後のフレームを用いて補間することにより、計算ノードの処理遅延による復号画像の欠損を防止するようになされている。かかる補間処理をエラーコンシールメントと呼ぶ。
まず、上述したエラーコンシールメントを伴う動画像圧縮符号化を行うための、ホストノードパソコン2におけるクラスタ符号化処理手順を、図4に示すフローチャートを用いて詳細に説明する。
ホストノードパソコン2のCPU11は、ルーチンRT1の開始ステップから入って次のステップSP1に移る。ステップSP1において、動画像処理指示手段としてのCPU11は、各計算ノードパソコン3A〜3Dに対して符号化ターゲットレート等の各種処理パラメータを送信し、次のステップSP2に移る。
ステップSP2においてCPU11は、ディジタル映像信号D1の1フレーム分の画像データをメモリ12に格納し、次のステップSP3に移る。
ステップSP3においてCPU11は、メモリ12に取り込んだ1フレーム分の画像データを4枚のタイルに対応して分割して分割ディジタル映像データD2A〜D2Dを生成し、次のステップSP4に移る。
ステップSP4においてCPU11は、現フレームの各タイルと、これに対応する1枚前のフレーム(これを比較対象フレームと呼ぶ)のタイルとの間の、RGB各画素の画素値の差分値を算出する。
そしてCPU11は、算出した差分値の絶対値をタイル毎に平均し、各平均値を、タイル1〜4それぞれのフレーム間の絵柄の変化度合いを表す画像変動評価値Diff1〜Diff4としてメモリ12に記憶し、次のステップSP5に移る。
図5は、フレームの変化に伴う画像変動評価値の推移の例を示す。例えばフレーム3において、三角形の物体がタイル1及びタイル3にかけて出現していることから、当該フレーム3のタイル1の画像変動評価値Diff1及びタイル3の画像変動評価値Diff3が増加している。また、フレーム3とフレーム5の間に全く異なる絵柄のフレーム4が挟まれていることから、フレーム4及びフレーム5の各画像変動評価値Diff1〜Diff4はいずれも大きな値となっている。
ステップSP5において、動画像処理指示手段としてのCPU11は、各計算ノードパソコン3A〜3Dに対し、対応するタイル1〜タイル4を供給するとともに、当該タイルに対する圧縮符号化の開始を指示し、次のステップSP6に移る。
ステップSP6において、処理結果取得手段としてのCPU11は、各計算ノードパソコン3A〜3Dから返送される分割符号化データD3A〜D3Dの待ち受けを開始する。そしてCPU11は、当該待ち受けの開始から基準処理時間が経過すると、次のステップSP7に移る。
ステップSP7においてCPU11は、各計算ノードパソコン3A〜3Dから返送される分割符号化データD3A〜D3Dの返送状況に基づいて、圧縮符号化に遅延が生じたか否かを判断する。
ステップSP7において、全ての分割符号化データD3A〜D3Dが返送されている場合、このことは全計算ノードパソコン3A〜3Dで処理遅延が発生せず、エラーコンシールメントが不要であることを表しており、このときCPU11はステップSP8に移り、返送された全ての分割符号化データD3A〜D3D(タイル)を用いて合成して符号化映像信号D4を生成し、ステップSP2に戻る。
これに対してステップSP7において、分割符号化データD3A〜D3Dのいずれかが未だ返送されていない場合、このことはいずれかの計算ノードパソコン3A〜3Dで処理遅延が発生し、エラーコンシールメントが必要であることを表しており、このときCPU11はステップSP9に移る。
ステップSP9において、処理結果置換手段としてのCPU11は、処理遅延が発生したタイルの画像変動評価値Diffと、所定の変動評価閾値Dlimとを比較し、当該比較結果に基づいてエラーコンシールメント方法(一部のタイルを置換するか、あるいは全てのタイルを置換するか)を選択する。
すなわちステップSP9において、処理遅延が発生したタイルの画像変動評価値Diffが変動評価閾値Dlim未満の場合、このことは当該処理遅延が発生したタイルとこれに対応する比較対象フレームのタイルとの間の絵柄の相違が少なく、処理遅延が発生したタイルの代わりに比較対象フレームのタイルを用いて分割符号化データD3A〜D3Dを合成しても、復号後の映像における違和感が少ないことを表しており、このときCPU11はステップSP10に移る。
ステップSP10において、処理結果置換手段としてのCPU11は、処理遅延が発生したタイルの分割符号化データD3nを比較対象フレームのタイルの分割符号化データD3nで置換した後、分割符号化データD3A〜D3Dを合成して符号化映像信号D4を生成し、ステップSP2に戻る。
これに対してステップSP9において、処理遅延が発生したタイルの画像変動評価値Diffが変動評価閾値Dlim以上の場合、このことは当該処理遅延が発生したタイルと比較対象フレームのタイルとの間の絵柄の相違が大きく、処理遅延が発生したタイルの代わりに比較対象フレームのタイルを用いて分割符号化データD3A〜D3Dを合成すると、復号後の映像における違和感が大きくなることを表しており、このときCPU11はステップSP11に移る。
ステップSP11において、処理結果置換手段としてのCPU11は、処理遅延が発生したタイルを含む全てのタイルの分割符号化データD3A〜D3Dを、比較対象フレームのタイルの分割符号化データD3A〜D3Dで置換した後合成して符号化映像信号D4を生成し、ステップSP2に戻る。
図6及び図7に、符号化時におけるエラーコンシールメントの例を示す。ここで、変動評価閾値Dlim=10とする。
例えば図6(B)に示すように、フレーム3のタイル1(画像変動評価値Diff1=4)が処理遅延した場合、当該タイル1の画像変動評価値Diff1は変動評価閾値Dlim未満であることから、CPU11は処理遅延が発生したタイル1のみを比較対象フレームであるフレーム2のタイル1と置換する。この場合、タイル1にかかっていた3角形の先端部分は置換によって消去されるが、その面積が比較的小さいため復号後の映像における違和感は少ない。
また図6(C)に示すように、フレーム3のタイル2(画像変動評価値Diff1=0)が処理遅延した場合、当該タイル2の画像変動評価値Diff1は変動評価閾値Dlim未満であることから、CPU11は処理遅延が発生したタイル2のみをフレーム2のタイル2と置換する。
これに対して図6(D)に示すように、フレーム3のタイル3(画像変動評価値Diff1=30)が処理遅延した場合、当該タイル3の画像変動評価値Diff1は変動評価閾値Dlim以上であることから、CPU11は全てのタイルを比較対象フレームであるフレーム2のタイルと置換する。この場合、同一の絵柄のフレームが2枚連続することになるが、タイル3を置換する場合に比べて復号後の映像における違和感は少なくなる。
さらに図7に示すように、フレーム5(図5(E))のいずれかのタイルが処理遅延した場合、当該フレーム5の各タイル1〜タイル4の画像変動評価値Diff1〜Diff4はいずれも変動評価閾値Dlim以上であることから、CPU11は全てのタイルを比較対象フレームであるフレーム4のタイルと置換する。
次に、エラーコンシールメントを伴う動画像伸張復号化を行うための、ホストノードパソコン2におけるクラスタ復号化処理手順を、図8に示すフローチャートを用いて詳細に説明する。
ホストノードパソコン2のCPU11は、ルーチンRT2の開始ステップから入って次のステップSP21に移る。ステップSP21において、動画像処理指示手段としてのCPU11は、各計算ノードパソコン3A〜3Dに対してデコードレベル等の各種処理パラメータを送信し、次のステップSP22に移る。
ステップSP22においてCPU11は、符号化映像信号D4の1フレーム分の符号化データをメモリ12に格納し、次のステップSP23に移る。
ステップSP23においてCPU11は、メモリ12に取り込んだ1フレーム分の符号化データを4枚のタイルに対応して分割して分割符号化データD3A〜D3Dを生成し、次のステップSP24に移る。
ステップSP24において、動画像処理指示手段としてのCPU11は、各計算ノードパソコン3A〜3Dに対して対応する分割符号化データD3A〜D3Dを供給し、次のステップSP25に移る。
ステップSP25において、処理結果取得手段としてのCPU11は、各計算ノードパソコン3A〜3Dから返送される分割ディジタル映像データD2A〜D2Dの待ち受けを開始する。そしてCPU11は、当該待ち受けの開始から基準処理時間が経過すると、次のステップSP26に移る。
ステップSP26において、処理結果置換手段としてのCPU11は、各計算ノードパソコン3A〜3Dから返送される分割ディジタル映像データD2A〜D2Dの返送状況に基づいて、伸張復号化に遅延が生じたか否かを判断する。
ステップSP26において、全ての分割ディジタル映像データD2A〜D2Dが返送されている場合、このことは全計算ノードパソコン3A〜3Dで処理遅延が発生せず、エラーコンシールメントが不要であることを表しており、このときCPU11はステップSP26に移り、返送された全ての分割ディジタル映像データD2A〜D2Dを用いて合成し、ステップSP22に戻る。
これに対してステップSP26において、分割ディジタル映像データD2A〜D2Dのいずれかが未だ返送されていない場合、このことはいずれかの計算ノードパソコン3A〜3Dで処理遅延が発生し、エラーコンシールメントが必要であることを表しており、このときCPU11はステップSP28に移る。
ここで、先に述べた圧縮符号化時のエラーコンシールメントにおいては、符号化の処理遅延が発生したタイルの画像変動評価値Diffに基づいてエラーコンシールメント方法を選択するようにしたが、この伸張復号化時のエラーコンシールメントでは、復号化の処理遅延が発生したタイル自体が復号されていないため、当該処理遅延が発生したタイルの画像変動評価値Diffを得ることができない。
そこでこの場合、処理遅延が発生しなかった他のタイル(基準処理時間内に復号が完了したタイル)の画像変動評価値Diffの平均値に基づいてエラーコンシールメント方法を選択する。
すなわちステップSP28において、処理結果置換手段としてのCPU11は、復号が完了した現フレームの各タイルと、これに対応する1枚前のフレーム(比較対象フレーム)のタイルとの間の画像変動評価値Diffの平均値(これを平均変動評価値Daveと呼ぶ)を算出し、次のステップSP29に移る。
ステップSP29においてCPU11は、算出した平均変動評価値Daveと、変動評価閾値Dlimとを比較する。
ステップSP29において、平均変動評価値Daveが変動評価閾値Dlim未満の場合、このことは処理遅延が発生しなかったタイルとこれに対応する比較対象フレームのタイルとの間の絵柄の相違が少ないこと、すなわちフレーム全体での絵柄の相違が少ないことを表している。
このため、処理遅延が発生したタイルのみを比較対象フレームのタイルと置換しても復号後の映像における違和感が少ないことが想定され、このとき、処理結果置換手段としてのCPU11はステップSP30に移り、処理遅延が発生したタイルの分割ディジタル映像データD2nを、比較対象フレームのタイルの分割ディジタル映像データD2nで置換した後、分割ディジタル映像データD2A〜D2Dを合成してディジタル映像信号D1を生成し、ステップSP22に戻る。
これに対してステップSP29において、平均変動評価値Daveが変動評価閾値Dlim以上の場合、このことは処理遅延が発生しなかったタイルとこれに対応する比較対象フレームのタイルとの間の絵柄の相違が大きいこと、すなわちフレーム全体での絵柄の相違が大きいことを表している。
このため、処理遅延が発生したタイルのみを比較対象フレームのタイルと置換すると、復号後の映像における違和感が大きくなることが想定され、このとき、処理結果置換手段としてのCPU11はステップSP30に移り、処理遅延が発生したタイルを含む全てのタイルの分割ディジタル映像データD2A〜D2Dを比較対象フレームの分割ディジタル映像データD2A〜D2Dで置換した後合成してディジタル映像信号D1を生成し、ステップSP22に戻る。
図9及び図10に、復号化時におけるエラーコンシールメントの例を示す。ここで変動評価閾値Dlim=10とする。
例えば図9(B)に示すように、フレーム3のタイル1が処理遅延した場合、処理が間に合ったタイル2、タイル3及びタイル4の平均変動評価値Daveは(0+30+0)/3=10となり、当該平均変動評価値Daveが変動評価閾値Dlim以上であることから、CPU11は全てのタイルを比較対象フレームであるフレーム2のタイルと置換する。
また図9(C)に示すように、フレーム3のタイル2が処理遅延した場合、処理が間に合ったタイル1、タイル3及びタイル4の平均変動評価値Daveは(4+30+0)/3=11.3となり、当該平均変動評価値Daveが変動評価閾値Dlim以上であることから、CPU11は全てのタイルをフレーム2のタイルと置換する。
これに対して図9(D)に示すように、フレーム3のタイル3が処理遅延した場合、処理が間に合ったタイル1、タイル2及びタイル4の平均変動評価値Daveは(4+0+0)/3=1.3となり、当該平均変動評価値Daveが変動評価閾値Dlim未満であることから、処理遅延が発生したタイル3のみを比較対象フレームであるフレーム2のタイル3と置換する。
また図10に示すように、フレーム5(図5(E))のいずれかのタイルが処理遅延した場合、どのタイルが処理遅延しても平均変動評価値Daveは変動評価閾値Dlim以上になることから、CPU11は全てのタイルを比較対象フレームであるフレーム2のタイルと置換する。
次に、上述した動画像圧縮符号化及び伸張復号化処理を行うための、計算ノードパソコン3(3A〜3D)における計算処理手順を、図11に示すフローチャートを用いて詳細に説明する。
計算ノードパソコン3のCPU21は、ルーチンRT3の開始ステップから入って次のステップSP41に移る。ステップSP41においてCPU21は、ホストノードパソコン2から送信される符号化ターゲットレートやデコードレベル等の各種処理パラメータを待ち受け、当該処理パラメータを受け取ると、次のステップSP42に移る。
ステップSP42においてCPU21は、ホストノードパソコン2から送信される分割ディジタル映像データD2n又は分割符号化データD3nを待ち受け、当該データを受け取ると、次のステップSP43に移る。
ステップSP43においてCPU21は、ホストノードパソコン2から受け取った分割ディジタル映像データD2nの符号化処理又は分割符号化データD3nの復号化処理を行い、当該処理が完了すると、次のステップSP44に移る。
ステップSP44においてCPU21は、処理結果の分割符号化データD3n又は分割ディジタル映像データD2nをホストノードパソコン2に返送し、ステップSP42に戻る。
(1−3)動作及び効果
以上の構成において、動画像クラスタ処理システム1のホストノードパソコン2は、圧縮符号化処理時、ディジタル映像信号D1の1フレーム分の画像データを4枚のタイルに対応して分割した分割ディジタル映像データD2A〜D2Dを、それぞれ対応する計算ノードパソコン3A〜3Dに供給して圧縮符号化処理させるとともに、現フレームの各タイルについて、比較対象フレームのタイルとの間の絵柄の変化度合いを表す画像変動評価値Diffを算出してメモリ12に記憶する。
そしてホストノードパソコン2は、各計算ノードパソコン3A〜3Dで圧縮符号化されて返送された分割符号化データD3A〜D3Dを合成して符号化映像信号D4を生成することにより動画像の圧縮符号化をクラスタ処理する。
このときホストノードパソコン2は、計算ノードパソコン3A〜3Dのいずれかで圧縮符号化処理に遅延が発生した場合、処理遅延が発生したタイルの画像変動評価値Diffと変動評価閾値Dlimとを比較する。
そしてホストノードパソコン2は、画像変動評価値Diffが変動評価閾値Dlim未満の場合、処理遅延が発生したタイルと比較対象フレームのタイルとの間の絵柄の変化が小さく、当該処理遅延が発生したタイルを比較対象フレームのタイルで置換しても復号後映像における違和感が少ないものとして、当該処理遅延が発生したタイルを比較対象フレームのタイルと置換して符号化映像信号D4を生成する。
これに対してホストノードパソコン2は、画像変動評価値Diffが変動評価閾値Dlim以上の場合、処理遅延が発生したタイルと比較対象フレームのタイルとの間の絵柄の変化が大きく、処理遅延が発生したタイルのみを置換すると復号後の映像における違和感が大きくなるとして、処理遅延が発生したタイルを含むフレーム全体を比較対象フレームと置換して符号化映像信号D4を生成する。
またホストノードパソコン2は、伸張復号化処理時、符号化映像信号D4の1フレーム分の画像データを4枚のタイルに対応して分割した分割符号化データD3A〜D3Dを、それぞれ対応する計算ノードパソコン3A〜3Dに供給して伸張復号化処理させる。
そしてホストノードパソコン2は、各計算ノードパソコン3A〜3Dで伸張復号化処理されて返送された分割ディジタル映像データD2A〜D2Dを合成してディジタル映像信号D1を生成することにより、動画像の伸張復号化をクラスタ処理する。
このときホストノードパソコン2は、計算ノードパソコン3A〜3Dのいずれかでタイルの伸張復号化処理に遅延が生じた場合、処理遅延を生じなかった他のタイルの画像変動評価値Diffを平均した平均変動評価値Daveを算出し、当該平均変動評価値Daveと変動評価閾値Dlimとを比較する。
そしてホストノードパソコン2は、平均変動評価値Daveが変動評価閾値Dlim未満の場合、処理遅延が発生したタイルを含むフレームと、比較対象フレームとの間の絵柄の変化が小さく、当該処理遅延が発生したタイルを比較対象フレームのタイルで置換しても復号後映像における違和感が少ないものとして、当該処理遅延が発生したタイルを比較対象フレームのタイルと置換してディジタル映像信号D1を生成する。
これに対してホストノードパソコン2は、平均変動評価値Daveが変動評価閾値Dlim以上の場合、処理遅延が発生したタイルを含むフレームと、比較対象フレームとの間の絵柄の変化が大きく、当該処理遅延が発生したタイルを比較対象フレームのタイルで置換すると復号後映像における違和感が大きくなるとして、処理遅延が発生したタイルを含むフレーム全体を比較対象フレームと置換してディジタル映像信号D1を生成する。
以上の構成によれば、動画像クラスタ処理において処理遅延が発生した場合、当該処理遅延が発生したタイルの画像変動評価値Diff、又は当該処理遅延が発生したタイル以外のタイルの画像変動評価値Diffの平均値に基づいて、当該処理遅延が発生したタイルのみを比較対象フレームのタイルで置換するか、あるいはフレーム全体を置換するかを判断するようにしたことにより、絵柄の変化に応じた滑らかなエラーコンシールメントを行うことができる。
(1−4)他の実施の形態
なお上述の実施の形態においては、動画像クラスタ処理システム1がJPEG2000方式による動画像圧縮伸張処理を実行する場合について述べたが、本発明はこれに限らず、例えばMPEG(Moving Picture Experts
Group)2方式等、様々な符号化方式を本発明に適用することができる。
ここでMPEG2方式は、フレーム毎に符号化が完結するJPEG2000方式とは異なり、前後のフレームを参照して符号化効率を向上させる、ブロックマッチング法を用いた動き補償フレーム間符号化が行われている。
すなわちMPEG2方式では、フレーム内符号化を行うIピクチャ、Iピクチャを参照して順方向予測符号化を行うPピクチャ、前後のIピクチャ及びPピクチャを参照して双方向予測符号化を行うBピクチャの3つのピクチャタイプが適宜選択される。またMPEG2方式では、図12に示すように、符号化前のディジタル映像信号のシークエンス(図12(A))と、符号化後の符号化映像信号のシークエンス(図12(B))とでフレームの順序に相違が生じる。
このためMPEG2方式に本発明を適用する場合、符号化対象のフレームのピクチャタイプに応じて比較対象フレームを変える必要がある。例えば、符号化対象のフレームがBピクチャ又はPピクチャの場合、その前方向のIピクチャ又はPピクチャを比較対象フレームとする。また、符号化対象のフレームがIピクチャの場合、一番近い前方向のIピクチャ又はPピクチャを比較対象フレームとする。
さらにMPEG2方式では、図13に示すように、ピクチャタイプや動き探索レベル(ブロックマッチング法の動き検索対象範囲)に応じて、符号化処理時間や復号化処理時間が変化する。このためMPEG2方式に本発明を適用する場合、符号化対象フレームのピクチャタイプや動き探索レベルに応じて、処理遅延を判断するための基準処理時間を変更する必要がある。
また上述の実施の形態においては、ホストノードパソコン2のCPU11がハードディスクドライブ14に格納されている動画像クラスタ処理プログラムを実行するようにしたが、本発明はこれに限らず、動画像クラスタ処理プログラムが格納されているプログラム格納媒体をホストノードパソコン2にインストールすることにより、上述した動画像クラスタ処理を実行するようにしてもよい。
この場合、動画像クラスタ処理プログラムをホストノードパソコン2にインストールするためのプログラム格納媒体としては、例えばCD−ROM(Compact Disk-Read Only Memory )やDVD(Digital Versatile
Disk)等のパッケージメディアのみならず、プログラムが一時的又は永続的に格納される半導体メモリや磁気ディスク等で実現してもよい。また、これらプログラム格納媒体にプログラムを格納する手段としては、ローカルエリアネットワークやインターネット、ディジタル衛星放送等の有線及び無線通信媒体を用いても良い。
(2)第2の実施の形態
図1との対応部分に同一符号を付して示す図14において、30は全体として本発明の第2の実施の形態のバーチャルリアリティクラスタ処理システム(以下、VRクラスタ処理システムと呼ぶ)を示し、ホストノードパソコン2と、3台の計算ノードパソコン3A〜3Cとがネットワーク4を介して接続されている。
このVRクラスタ処理システム30においては、バーチャルリアリティ(仮想現実)の体験者(以下、VR体験者と呼ぶ)の前及び左右を取り囲むようにして配置された、コンピュータグラフィックス処理によって生成した仮想現実画像(以下、VR画像と呼ぶ)を表示するための3台のディスプレイ32A〜32C(正面ディスプレイ32A、右側面ディスプレイ32B及び左側面ディスプレイ32C)と、当該VR体験者の視線方向及び動作を検出するためのモーションセンサ33とからなるVR装置34とが、ホストノードパソコン2のビデオインターフェース31に接続されている。なお、モーションセンサ33は人間の頭部に装着されている場合もあるし、ビデオカメラ等により視線方向、動作を検出する場合も考えられる。
VRクラスタ処理システム30のホストノードパソコン2は、オペレーティングシステムの実行環境下においてVRクラスタ処理プログラムを実行し、モーションセンサ33を介してVR体験者の視線方向及び動作を検出し、当該検出結果に応じたVR画像データD5A〜D5Cを、計算ノードパソコン3A〜3Cに分散生成させる。
すなわち計算ノードパソコン3Aは、正面ディスプレイ32Aに表示されるVR画像のデータでなるVR画像データD5Aを生成する。同様に計算ノードパソコン3Bは、右側面ディスプレイ32Bに表示されるVR画像のデータでなるVR画像データD5Bを生成し、計算ノードパソコン3Cは、左側面ディスプレイ32Cに表示されるVR画像のデータでなるVR画像データD5Cを生成する。
そしてホストノードパソコン2のCPU11は、各計算ノードパソコン3A〜3Cが生成したVR画像データD5A〜D5Cをそれぞれ対応するディスプレイ32A〜32Cに供給してVR画像を表示することにより、VR体験者に対し、VR体験者自身の動きに対応して表示が変化する変化仮想現実空間を体験させるようになされている。
正面ディスプレイ32A、右側面ディスプレイ32B及び左側面ディスプレイ32CにおけるVR画像の表示変化の例を図16に示す。この場合、VR体験者は視線方向を正面ディスプレイ32Aに向けたまま、当該正面ディスプレイ32Aに向かって移動している。
かかる構成に加えてホストノードパソコン2は、各計算ノードパソコン3A〜3DそれぞれにおけるVR画像データD5A〜D5Cの生成に要する処理時間を常に監視しており、VR画像データD5A〜D5Cいずれかの生成が遅延した場合(処理遅延の発生)、その前のフレームのVR画像データを用いてエラーコンシールメントすることにより、計算ノードの処理遅延によるVR画像の欠損を防止するようになされている。
次に、上述したエラーコンシールメントを伴うVR画像データ生成のための、ホストノードパソコン2におけるクラスタVR処理手順を、図15に示すフローチャートを用いて詳細に説明する。
ホストノードパソコン2のCPU11は、ルーチンRT4の開始ステップから入って次のステップSP51に移る。ステップSP51において、動画像処理指示手段としてのCPU11は、各計算ノードパソコン3A〜3Cに対して初期状態のVR画像データD5A〜D5Cの生成を指示し、次のステップSP52に移る。
ステップSP52において、処理結果取得手段としてのCPU11は、各計算ノードパソコン3A〜3Cから返送されたVR画像データD5A〜D5Cを対応するディスプレイ32A〜32Cに供給してVR画像を表示し、次のステップSP53に移る。
ステップSP53においてCPU11は、モーションセンサ33から供給されるVR体験者の画像D6の変化に基づいて当該VR体験者の視線方向及び動作を抽出し、次のステップSP54に移る。
ステップSP54においてCPU11は、抽出したVR体験者の視線方向及び動作に変化が生じたか否かを判断する。ステップSP53において、VR体験者の視線方向及び動作に変化が生じていないと判断した場合、CPU11はステップSP53に戻って再度VR体験者の視線方向及び動作を抽出する。
これに対し、ステップSP53においてVR体験者の視線及び動作に変化が生じたと判断した場合、CPU11は次のステップSP55に移る。
ステップSP55において、動画像処理指示手段としてのCPU11は、各計算ノードパソコン3A〜3Cに対して、抽出したVR体験者の視線方向及び動作の変化に応じた新たなVR画像の生成を指示し、次のステップSP56に移る。
ステップSP56において、処理結果取得手段としてのCPU11は、各計算ノードパソコン3A〜3Cから返送されるVR画像データD5A〜D5Cの待ち受けを開始する。そしてCPU11は、当該待ち受けの開始から基準処理時間が経過すると、次のステップSP57に移る。
ステップSP57においてCPU11は、各計算ノードパソコン3A〜3Cから返送されるVR画像データD5A〜D5Cの返送状況に基づいて、VR画像データの生成に遅延が生じたか否かを判断する。
ステップSP57において、全てのVR画像データが返送されている場合、このことは全計算ノードパソコン3A〜3Cで処理遅延が発生せず、エラーコンシールメントが不要であることを表しており、このときCPU11はステップSP58に移り、返送された各VR画像データD5A〜D5Cを対応するディスプレイ32A〜32Cに供給してVR画像を表示し、ステップSP53に戻る。
これに対してステップSP57において、VR画像データD5A〜D5Cのいずれかが未だ返送されていない場合、このことはいずれかの計算ノードパソコン3A〜3Cで処理遅延が発生し、エラーコンシールメントが必要であることを表しており、このときCPU11はステップSP59に移る。
ステップSP59において、処理結果置換手段としてのCPU11は、処理遅延が発生したVR画像データD5が、VR体験者の視線方向の画像であるか否かを判断する。ステップSP59において、処理遅延が発生したVR画像データD5が視線方向の画像ではないと判断した場合、CPU11はステップSP60に移る。
この場合、処理遅延が発生したVR画像データD5は視線方向の画像ではないため、エラーコンシールメントによって画像に不連続が生じても、VR体験者はこれを感知しにくい。このためCPU11はステップSP60において、処理遅延が発生したVR画像データD5のみを1フレーム前のVR画像データD5で一律に置換して表示し、ステップSP53に戻る。
この場合のエラーコンシールメントの様子を図17に示す。T=3のタイミングにおいて左側面画像に処理遅延が生じたものとする。この場合、処理遅延が発生したVR画像は視線方向の画像ではないため、T=2の画像で置換が行われる。
これに対してステップSP59において、処理遅延が発生したVR画像データD5が視線方向の画像であると判断した場合、CPU11はステップSP61に移る。
この場合、処理遅延が発生したVR画像データD5は視線方向の画像であるため、エラーコンシールメントによって画像に不連続が生じると、VR体験者はこれを感知しやすい。このため、処理結果置換手段としてのCPU11はステップSP61において、遅延を生じなかった他の2つのVR画像データD5についての平均変動評価値Daveを算出し、次のステップSP62に移って平均変動評価値Daveと変動評価閾値Dlimとを比較する。
ステップSP62において、平均変動評価値Daveが変動評価閾値Dlim未満の場合、このことは処理遅延が発生しなかったVR画像の変化が少ないことを表している。このため、処理遅延が発生したVR画像のみを前フレームのVR画像と置換しても違和感が少ないことが想定され、このとき処理結果置換手段としてのCPU11はステップSP63に移り、処理遅延が発生したVR画像データD5のみを前フレームのVR画像データD5で置換して表示し、ステップSP53に戻る。
この場合のエラーコンシールメントの様子を図18に示す。T=2のタイミングにおいて正面画像に処理遅延が生じたものとする。この場合、処理遅延が発生したVR画像は視線方向の正面画像であるため、処理遅延が発生しなかった右側面画像及び左側面画像の平均変動評価値Daveを算出し、当該平均変動評価値Daveが変動評価閾値Dlim未満であるため、T=1の画像で置換が行われる。
これに対してステップSP62において、平均変動評価値Daveが変動評価閾値Dlim以上の場合、このことは処理遅延が発生しなかったVR画像の変化が大きいことを表している。このため、処理遅延が発生したVR画像のみを前フレームのVR画像と置換すると違和感が大きくなることが想定され、このとき処理結果置換手段としてのCPU11はステップSP64に移り、全てのVR画像データD5を前フレームのVR画像データD5で置換して表示し、ステップSP53に戻る。
この場合のエラーコンシールメントの様子を図19に示す。T=4のタイミングにおいて正面画像に処理遅延が生じたものとする。この場合、処理遅延が発生したVR画像は視線方向の正面画像であるため、処理遅延が発生しなかった右側面画像及び左側面画像の平均変動評価値Daveを算出し、当該平均変動評価値Daveが変動評価閾値Dlim以上であるため、全ての画像について、T=1の画像で置換が行われる。
以上の構成において、VRクラスタ処理システム30のホストノードパソコン2は、計算ノードパソコン3A〜3Cに対し、モーションセンサ33を介して検出したVR体験者の視線方向及び動作に応じたVR画像データD5A〜D5Cをクラスタ処理で生成させ、当該VR画像データD5A〜D5Cをそれぞれ対応するディスプレイ32A〜32Cに供給してVR画像を表示する。
このときホストノードパソコン2は、VR体験者の視線方向以外のVR画像データが生成遅延した場合、当該処理遅延が発生したVR画像データのみを1フレーム前のVR画像データで置換して表示する。
これに対してVR体験者の視線方向のVR画像データが生成遅延した場合、ホストノードパソコン2は、処理遅延を生じなかった他のVR画像データの平均変動評価値Daveと変動評価閾値Dlimとを比較し、平均変動評価値Daveが変動評価閾値Dlim未満の場合、処理遅延が発生したVR画像データのみを前フレームのVR画像データで置換して表示するのに対し、平均変動評価値Daveが変動評価閾値Dlim以上の場合、全てのVR画像データを前フレームのVR画像データで置換して表示する。
以上の構成によれば、VRクラスタ処理において処理遅延が発生した場合、処理遅延を生じなかった他のVR画像データの平均変動評価値Daveに基づいて、当該処理遅延が発生したVR画像データのみを置換するか、あるいは全てのVR画像データを置換するかを判断するようにしたことにより、VR画像の変化に応じた滑らかなエラーコンシールメントを行うことができる。
なお上述の実施の形態においては、本発明をコンピュータグラフィックス処理によってVR画像を生成するVRクラスタ処理システム30に適用した場合について述べたが、本発明はこれに限らず、例えばコンピュータゲームにおけるゲーム画面の生成等、種々のコンピュータグラフィックス処理に本発明を適用するコトができる。
さらに上述の実施の形態においては、ホストノードパソコン2のCPU11がハードディスクドライブ14に格納されているVRクラスタ処理プログラムを実行するようにしたが、本発明はこれに限らず、VRクラスタ処理プログラムが格納されているプログラム格納媒体をホストノードパソコン2にインストールすることにより、上述した動画像クラスタ処理を実行するようにしてもよい。
この場合、VRクラスタ処理プログラムをホストノードパソコン2にインストールするためのプログラム格納媒体としては、例えばCD−ROM(Compact Disk-Read Only Memory )やDVD(Digital Versatile Disk)等のパッケージメディアのみならず、プログラムが一時的又は永続的に格納される半導体メモリや磁気ディスク等で実現してもよい。また、これらプログラム格納媒体にプログラムを格納する手段としては、ローカルエリアネットワークやインターネット、ディジタル衛星放送等の有線及び無線通信媒体を用いても良い。
1……動画像クラスタ処理システム、2……ホストノードパソコン、3A〜3D……計算ノードパソコン、4……ネットワーク、11、21……CPU11、12、22……メモリ、13、23……表示部示部、14、24……ハードディスクドライブ、15、25……ネットワークインターフェース、16……ビデオキャプチャ回路、17、27……バス、30……VRクラスタ処理システム、31……ビデオインターフェース、32A〜32C……ディスプレイ、33……モーションセンサ。