以下、本発明の具体的な実施の形態について、図面を参照しながら詳細に説明する。ここでは、先ずオーサリング装置の全体構成を説明し、続いてビデオデータのエンコードを並列処理する情報処理システムについて説明する。
〔全体構成〕
図1は、本発明が適用される、スタジオ側に設置されるオーサリング装置(以下、「スタジオ側オーサリング装置」と称する)の一構成例を示している。
このスタジオ側オーサリング装置11は、メニュー信号処理装置21と、サブタイトル信号処理装置22と、オーディオ信号処理装置23と、ビデオ信号処理装置24と、マルチプレクサ25と、ダウンローダ26と、ファイルサーバ27と、オーサリングアプリケーション実行装置28とがネットワーク29を介して相互に接続されて構成されている。また、ダウンローダ26には、ライタ30を介して、DLT(Digital Linear Tape)31、HDD(Hard Disk Drive)32、及びネットワーク33が接続されている。なお、以下では、メニュー信号処理装置21乃至ダウンローダ26のそれぞれを「内部装置」とも称する。
スタジオ側オーサリング装置11は、光ディスクに記録させる多重ストリームをファイルとして生成して、DLT31、HDD32、及びネットワーク33のうちの少なくとも1つに出力させる。例えば、ネットワーク33にデータを出力させた場合、ネットワーク33に接続された他の装置、例えば後述する図5のプラント側オーサリング装置101に対してデータを転送して、そのデータを他の装置に保持(記憶)させる。
このスタジオ側オーサリング装置11において、メニュー信号処理装置21は、オーサリングアプリケーション実行装置28により制御され、例えばビデオテープレコーダ等より供給されるメニュー画面のビデオデータに対してエンコード処理を施し、その結果得られるエンコードビデオデータをファイルサーバ27に記憶させる。
サブタイトル信号処理装置22は、オーサリングアプリケーション実行装置28により制御され、例えば外部のビデオテープレコーダより供給されるタイトル等のビデオデータに対してエンコード処理を施して、その結果得られるエンコードビデオデータをファイルサーバ27に記憶させる。
オーディオ信号処理装置23は、オーサリングアプリケーション実行装置28により制御され、例えばビデオテープレコーダより供給されるオーディオデータに対してエンコード処理を施して、その結果得られるエンコードオーディオデータをファイルサーバ27に記憶させる。
ビデオ信号処理装置24は、オーサリングアプリケーション実行装置28により制御され、例えばビデオテープレコーダより供給されるビデオデータに対してエンコード処理を施して、その結果得られるエンコードビデオデータをファイルサーバ27に記憶させる。ビデオデータは、光ディスクに記録させる編集対象(データ)のうちの主データとなる。なお、このビデオ信号処理装置24の詳細な構成例については、図3を参照して後述する。
マルチプレクサ25は、オーサリングアプリケーション実行装置28により制御され、ファイルサーバ27に記憶されているエンコードオーディオデータやエンコードビデオデータをそれぞれ多重化し、その結果得られる多重ストリームをファイルとして生成する(以下、「多重化ストリームファイル」と称する。)。マルチプレクサ25により生成された多重化ストリームファイルは、ネットワーク29を介してダウンローダ26に供給される。
ダウンローダ26は、多重化ストリームファイルを、ライタ30を介して、DLT31、HDD32、及びネットワーク33のうちの少なくとも1つに出力する。この多重化ストリームファイルは、ディスクイメージデータとして、例えば後述する図5のプラント側オーサリング装置101に供給される。なお、プラント側オーサリング装置101のさらなる説明については後述する。
ファイルサーバ27は、例えば、ネットワーク管理機能をもつコンピュータと高速アクセス可能なディスクアレイにより構成される。ファイルサーバ27は、各内部装置からネットワーク29を介して供給されるエンコードビデオデータやエンコードオーディオデータをそれぞれ記憶する。また、ファイルサーバ27は、マルチプレクサ25等の要求に応動して、記憶されているエンコードビデオデータやエンコードオーディオデータを、ネットワーク29を介してマルチプレクサ25等に出力する。
オーサリングアプリケーション実行装置28は、例えば、オーサリングアプリケーションソフトウエアを実行可能なコンピュータにより構成される。オーサリングアプリケーションソフトウエアとは、このスタジオ側オーサリング装置11全体の動作を制御するためのソフトウエアを指す。即ち、オーサリングアプリケーション実行装置28は、例えば、オペレータにより設定された各種条件に従って、上述したように各内部装置の動作を制御することになる。
次に、図2のフローチャートを参照して、スタジオ側オーサリング装置11の動作例について説明する。
ステップS1において、オーサリングアプリケーション実行装置28は、オペレータの操作に従って各内部装置に対して編集リストを通知することにより、編集対象をビデオ信号処理装置24等の各内部装置に通知する。
ここで、編集対象とは、例えばビデオ信号処理装置24の処理対象のビデオデータを少なくとも含む。また、その他必要に応じて、オーディオ信号処理装置23の処理対象のオーディオデータ、サブタイトル信号処理装置22の処理対象のビデオデータ、及びメニュー信号処理装置21の処理対象のビデオデータのうちの任意の数の任意の種類のデータを含むいわゆる素材(データ)を指す。
ステップS2において、オーサリングアプリケーション実行装置28は、エンコード処理に必要な各種情報を生成し、これを一括して所定のファイルに含めた符号化ファイルを内部装置に通知する。
具体的には、オーサリングアプリケーション実行装置28は、例えば編集対象がこれから記録される光ディスクの記録可能なデータ量を取得し、そのデータ量に基づいて、編集対象を構成する各データに割り当てるデータ量をそれぞれ計算する。そして、オーサリングアプリケーション実行装置28は、計算された各データ量のそれぞれを符号化ファイルに含めて、各内部装置のうちの対応する内部装置にそれぞれ通知する。
例えば、ビデオ信号処理装置24に符号化ファイルを通知する場合、オーサリングアプリケーション実行装置28は、ビデオ信号処理装置24の処理対象のビデオデータを通知する。即ち、編集対象のうちのメニューやタイトルを除くビデオデータに割り当てるデータ量(以下、「ビデオデータに割り当て可能なデータ量」と称する)を、符号化ファイルに含めてビデオ信号処理装置24に通知する。
また、例えば、オーサリングアプリケーション実行装置28は、編集対象のうちのメニューやタイトルを除くビデオデータについて、オペレータにより設定されたチャプターの時間情報(以下、「アクセス(チャプター)ポイント」と称する)を符号化ファイルに含めてビデオ信号処理装置24に通知する。チャプターとは、フレーム内符号化処理(Iピクチャ)が強制的に割り当てられるフレームを指す。光ディスクを取り扱うことが可能な装置は、このチャプターを目標にしてトラックジャンプして記録内容を確認することができる。
また、例えば、オーサリングアプリケーション実行装置28は、編集対象のうちのメニューやタイトルを除くビデオデータについて、GOPの最大表示フレーム数(例えば15フレーム)や、各GOPにおけるエンコード処理の配列等を符号化ファイルに含めてビデオ信号処理装置24に通知する。
また、例えば、オーサリングアプリケーション実行装置28は、必要に応じて、マルチアングルの処理対象も符号化ファイルに含めてビデオ信号処理装置24に通知する。マルチアングルとは、複数のビデオ素材を時分割多重化して光ディスクに記録することにより、ユーザの選択に応じて、例えば列車の走行シーン等を異なる撮影箇所より視聴できるようにした処理を指す。
また、例えば、オーサリングアプリケーション実行装置28は、必要に応じて、「シーンチェンジ自動検出(ON/OFF)」、「光ディスクのディスク容量」、「VTRの開始及び終了時刻」等も符号化ファイルに含めてビデオ信号処理装置24に通知する。
ステップS3において、各内部装置は、この符号化ファイルに含まれる各種情報に基づいて、編集対象のうちの対応するデータをエンコードし、その結果得られる各エンコードデータのそれぞれをファイルサーバ27に記憶させる。具体的には、例えば、ビデオ信号処理装置24は、後述する図4の「ビデオデータ生成処理」を実行することになる。
ステップS4において、マルチプレクサ25は、ステップS3の処理でファイルサーバ27に記憶された各エンコードデータのそれぞれを多重化することで、多重化ストリームファイルを生成し、ダウンローダ26に供給する。
ステップS5において、ダウンローダ26は、この多重化ストリームファイルを、ライタ30を介して、DLT31、HDD32、及びネットワーク33のうちの少なくとも1つに出力する。これにより、スタジオ側オーサリング装置11の処理は終了となる。
次に、図3を参照して、このスタジオ側オーサリング装置11のうちのビデオ信号処理装置24の詳細な構成例について説明する。
図3に示されるように、ビデオ信号処理装置24は、例えば、ビデオテープレコーダ51、主コントローラ52、エンコーダ53、及びモニタ装置54から構成される。
上述したステップS1の処理により、編集リストがオーサリングアプリケーション実行装置28からビデオ信号処理装置24に供給される。具体的には、編集リストは、図3に示されるように主コントローラ52に供給され、その後、ビデオテープレコーダ51に供給される。即ち、編集リストは、主コントローラ52を介してビデオテープレコーダ51に供給される。
ビデオテープレコーダ51は、この編集リストに従って磁気テープを再生し、これにより処理対象のビデオデータD1を出力して、エンコーダ53に供給する。
エンコーダ53は、主コントローラ52により設定される各種エンコード条件に従って動作を切り換え、ビデオテープレコーダ51から出力されるビデオデータD1に対して、例えばMPEG規格によるエンコード処理を施す。このとき、各種エンコード条件の設定が主コントローラ52により可変制御されることにより、エンコーダ53からの発生ビット量が制御されるようになされている。
さらに、エンコーダ53は、このエンコード処理の結果を主コントローラ52に通知する。これにより、主コントローラ52は、エンコーダ53のエンコード処理で使用されたピクチャタイプや、そのエンコード処理における発生ビット量をフレーム単位で検出することができる。
また、エンコーダ53は、いわゆる2パスエンコードを行う場合、1パス目と2パス目との何れのエンコード処理も実行する。
具体的には、エンコーダ53は、2パス目のエンコード処理で利用されるエンコード条件を事前に設定するために、1パス目のエンコード処理、例えば後述する図4のステップS22の処理の一部であるエンコード処理を実行する。詳細には、エンコーダ53は、自分自身の内部処理でピクチャタイプを割り振る。そして、エンコーダ53は、そのようにして割り振られたピクチャタイプを利用してビデオデータD1に対して1パス目のエンコード処理を施し、その1パス目のエンコード処理の結果、例えば各フレームのピクチャタイプや発生ビット量等を主コントローラ52に通知する。
2パス目のエンコード処理では、エンコーダ53は、例えば後述する図4のステップS30のエンコード処理を実行する。即ち、エンコーダ53は、主コントローラ52により設定されたフレーム単位のピクチャタイプと目標ビット量とを使用して、2パス目のエンコード処理をビデオデータD1に対して施し、その結果得られるエンコードビデオデータD2を、ネットワーク29を介してファイルサーバ27に記憶させる。このとき、エンコーダ53は、ファイルサーバ27に記憶されたビデオデータD2のデータ量等を主コントローラ52に通知する。
モニタ装置54は、例えばディスプレイ装置等で構成され、主コントローラ52のエンコーダ53を介する制御に基づいて、エンコーダ53から出力されるエンコードビデオデータD2に対応する映像を表示する。即ち、エンコーダ53は、エンコードビデオデータD2をデコードして、その結果得られるビデオ信号をモニタ装置54に供給する。モニタ装置54は、供給されたビデオ信号に対応する映像、即ち、エンコードビデオデータD2に対応する映像を表示する。
これにより、オペレータは、エンコーダ53の処理結果をモニタ装置54で必要に応じて確認することができる。即ち、ビデオ信号処理装置24は、モニタ装置54を利用して、エンコーダ53の処理結果のプレビューを行うことができる。さらに、オペレータは、このプレビュー結果に基づいて主コントローラ52を操作することで、各種エンコード条件のそれぞれを細かく変更することができる。
主コントローラ52は、例えば、このビデオ信号処理装置24に割り当てられたコンピュータにより構成される。主コントローラ52は、オーサリングアプリケーション実行装置28との間でネットワーク29を介するデータ通信を行うことで、このビデオ信号処理装置24全体の動作を制御する。
このため、主コントローラ52には、例えば図3に示されるように、グラフィカルユーザーインターフェース(GUI:Graphical User Interface)61、ビデオテープレコーダ(VTR:Video Tape Recorder)コントロール部62、ビットアサイン部63、及び、エンコードコントロール部64が設けられている。
即ち、主コントローラ52は、オーサリングアプリケーション実行装置28からの制御とオペレータの操作とのそれぞれをGUI61の管理により受け付ける。また、このGUI61により管理されるVTRコントロール部62とビットアサイン部63とエンコードコントロール部64とを用いて、ビデオテープレコーダ51、エンコーダ53、及びモニタ装置54のそれぞれの動作を制御する。
これにより、主コントローラ52は、例えば、オーサリングアプリケーション実行装置28から通知された符号化ファイルに基づいて各種エンコード条件を設定することが可能になる。なお、以下、他の内部装置に供給される符号化ファイルと区別するために、ビデオ信号処理装置24に供給される符号化ファイルを、図3の記載と併せて、符号化ファイルVENC.XMLと称する。
さらに、主コントローラ52は、上述したように、GUI61を介してオペレータの設定を受け付け、これにより、例えば、各種エンコード条件の設定を更新することができる。
そして、主コントローラ52は、例えば、このようにして設定された或いは更新された各種エンコード条件に従ったエンコード処理を、エンコーダ53が処理対象のビデオデータD1に対して施すことを制御する。
また、主コントローラ52は、エンコーダ53から通知されたエンコード処理の結果を受け取り、そのエンコード処理の結果をオーサリングアプリケーション実行装置28に通知することができる。
VTRコントロール部62は、オーサリングアプリケーション実行装置28から通知される編集リストに従ってビデオテープレコーダ51の動作を制御することで、編集対象のビデオデータD1をビデオテープレコーダ51から再生させる。
ビットアサイン部63は、例えば、オーサリングアプリケーション実行装置28から通知される符号化ファイルVENC.XMLに従って各種エンコード条件を設定し、このエンコード条件に対応する制御データをエンコードコントロール部64に通知する。このとき、ビットアサイン部63は、例えば、オペレータのGUI61の操作に応じて、各種エンコード条件の設定を変更することができる。
ビットアサイン部63が設定するエンコード条件としては、例えば、1パス目のエンコード処理で利用される第1のエンコード条件と、2パス目のエンコード処理で利用される第2のエンコード条件とが該当する。第1のエンコード条件の中には、例えば、エンコーダ53が1パス目のエンコード処理を実行する際にその内部処理でピクチャタイプを設定するために必要な各種条件等が含まれる。これに対して、第2のエンコード条件の中には、例えば、2パス目のエンコード処理で利用される各フレームのそれぞれのピクチャタイプや目標ビット量等が含まれる。
エンコードコントロール部64は、例えば、ビットアサイン部63から通知される制御ファイルに従って、エンコーダ53の1パス目と2パス目のそれぞれのエンコード処理を制御する。
また、エンコードコントロール部64は、エンコーダ53による1パス目のエンコード処理の結果から、エンコード処理に要する困難度と、ピクチャタイプとのそれぞれをフレーム単位で検出し、その検出結果をビットアサイン部63に通知する。すると、ビットアサイン部63は、通知されたフレーム毎の困難度とピクチャタイプとを利用して、2パス目のエンコード処理で利用される第2のエンコード条件を設定する。なお、困難度については後述する。
さらに、エンコードコントロール部64は、エンコーダ53の最終的な2パス目のエンコード処理の結果得られたエンコードビデオデータD2を、ネットワーク29を介してファイルサーバ27に記憶させることを制御する。
次に、図4のフローチャートを参照して、このビデオ信号処理装置24におけるビデオデータ生成処理の動作例を説明する。
オーサリングアプリケーション実行装置28から、上述した図2のステップS1の処理で編集リスト(編集対象)が通知され、ステップS2の処理で符号化ファイルVENC.XMLが供給される。さらに、この「ビデオデータ生成処理」の開始が指示されると、GUI61の管理により、VTRコントロール部62、ビットアサイン部63、及び、エンコードコントロール部64が起動されて、この「ビデオデータ生成処理」が開始される。即ち、処理は図2のステップS3に進み、ステップS3の処理のうちのビデオ信号処理装置24の処理として、この「ビデオデータ生成処理」が開始される。
ステップS21において、主コントローラ52は、オーサリングアプリケーション実行装置28から供給された符号化ファイルVENC.XMLから、編集対象のビデオデータD1のエンコード処理に必要な各種情報を取得する。
具体的には、例えば、符号化ファイルVENC.XMLに含まれる「アクセス(チャプター)ポイント」、「シーンチェンジ自動検出(ON/OFF)」、「ディスク容量」、「VTRの開始及び終了時刻」、「ビデオデータD1に割り当て可能なデータ量」などの各種情報が取得される。
ステップS22において、主コントローラ52は、ビデオテープレコーダ51とエンコーダ53とを制御して、ステップS21の処理で取得された各種情報により設定される第1のエンコード条件に従った1パス目のエンコード処理を、編集対象のビデオデータD1に対して施す。そして、主コントローラ52は、1パス目のエンコード処理の結果得られる第1のエンコードビデオデータから、エンコード処理に要する困難度と、ピクチャタイプとのそれぞれをフレーム単位で検出する。
具体的には、エンコーダ53は、次のようにビデオテープレコーダ51で再生された編集対象のビデオデータD1を処理する。
エンコーダ53は、このビデオデータD1を構成する各フレームのそれぞれのピクチャタイプを設定する。即ち、エンコーダ53は、主コントローラ52からの指示により指定されたフレームをIピクチャに設定する。さらに、エンコーダ53は、ステップS21の処理で取得された「シーンチェンジ自動検出」がONに設定されている場合(そのことが主コントローラ52から通知された場合)には、その前後のフレームの相関関係からシーンチェンジと判定されたフレームを強制的にIピクチャに設定する。そして、エンコーダ53は、Iピクチャに設定されたフレームから、次のIピクチャの直前のフレームまでのフレーム群をGOPとして設定していく処理を実行する。
また、エンコーダ53は、このようにして設定されたピクチャタイプを使用して、ビデオデータD1を構成する各フレームのそれぞれに対して、固定量子化ステップによる1パス目のエンコード処理を順次施していく。そして、エンコーダ53は、その際に発生するビット量、即ち、各フレームのそれぞれがエンコードされた際の発生ビット量のそれぞれを主コントローラ52に通知するとともに、各フレームのピクチャタイプを主コントローラ52に通知する。
すると、主コントローラ52は、エンコーダ53からのこの通知により、困難度とピクチャタイプとのそれぞれをフレーム単位で検出する。即ち、主コントローラ52は、エンコーダ53から通知された各フレームのピクチャタイプを、そのまま各フレームのピクチャタイプとして検出する。また、主コントローラ52は、エンコーダ53から通知された各フレームの発生ビット量のそれぞれを、各フレームのそれぞれの困難度として検出(測定)する。
このように、本明細書で言う困難度とは、固定量子化ステップによるエンコード処理が編集対象のビデオデータD1に対して施された際の、エンコード処理後の各フレームのそれぞれのデータ量を指す。
即ち、フレーム間エンコード処理(PまたはBピクチャのエンコードタイプ)においては動きの激しい部分で予測フレームからの予測誤差(差分)が大きくなり、その分、画質劣化を低減させるために多くのデータが必要となる。またフレーム内符号化処理(Iピクチャのエンコードタイプ)においては、高周波数成分が多い場合に、ディスクリートコサイン変換処理により高次の係数データが発生することにより、その分、画質劣化を低減させるために多くのデータ量が必要となる。従って、固定量子化ステップによるエンコード処理がビデオデータD1に対して施された場合、画質劣化を低減させるための多くのデータ量を要する部分(フレーム)において、多くのデータ量が検出されることになる。以上のことから、固定量子化ステップによるエンコード処理が編集対象のビデオデータD1に対して施された結果得られるエンコードビデオデータを構成する各フレームのデータのそれぞれのデータ量こそが、各フレームのそれぞれについての困難度を指すことになる。
ステップS23において、主コントローラ52は、ステップS22の処理によりフレーム単位で検出された困難度とピクチャタイプとを用いて「ビット配分計算処理」を実行することで、目標ビット量をフレーム単位で設定する。
「ビット配分計算処理」とは、例えば次のような処理を指す。即ち、ステップS22の処理で検出された各フレームの困難度とピクチャタイプとを用いて、編集対象のビデオデータD1に対して2パス目のエンコード処理が施された場合に得られるエンコードビデオデータD2全体の目標ビット量を、各フレームのそれぞれに割り振るための計算処理が、「ビット配分計算処理」である。
以下、「ビット配分計算処理」についてさらに詳しく説明する。
即ち、主コントローラ52は、次の式(1)の演算処理を実行し、ビデオデータD1(エンコードデータD2)に対して実際に割り当て可能な総ビット量TOTAL_SUPPLYを計算する。
TOTAL_SUPPLY = TOTAL_BYTES − TOTAL_HEADER ・・・(1)
式(1)において、TOTAL_BYTESは、ステップS21の処理で取得された「ビデオデータD1に割り当て可能なデータ量」を示し、ネットワーク29上のファイルサーバ27に記録されるエンコードビデオデータD2全体の目標データ量に相当する。また、TOTAL_HEADERは、エンコードビデオデータD2のうちのヘッダー等の付随的なデータのデータ量を示しており、GOPの総数により特定されるデータ量である。
従って、主コントローラ52は、この式(1)の演算処理により、エンコードビデオデータD2のうちの付随的なデータを除いたデータに対して割り当て可能なデータ量を、ビデオデータD1に対して実際に割り当て可能な総ビット量TOTAL_SUPPLYとして計算することになる。
次に、主コントローラ52は、ビデオデータD1に対して実際に割り当て可能な総ビット量TOTAL_SUPPLYを、各エンコード処理単位(エンコードユニット)のそれぞれに分配する。なお、以下、このようにして分配された各エンコードユニットのそれぞれのデータ量を、対応するエンコードユニットの目標ビット量と称し、かつ、SUPPLY_BYTESと記述する。 また、主コントローラ52は、各エンコードユニットのそれぞれについて、対応するエンコードユニットに属する各フレームの困難度(ステップS22の処理で検出された困難度)の総和を演算する。なお、以下、各フレームの困難度をDIFと記述し、また、各困難度DIFの総和をDIF_SUMと記述する。
続いて、主コントローラ52は、各エンコードユニットのそれぞれについて、GOP単位のビット配分を行うための評価関数を計算する。ここでの評価関数は、例えば次の式(2)で表される。
Y = BX ・・・(2)
式(2)において、Yは、演算対象のエンコードユニットの目標ビット量SUPPLY_BYTESを示し、Xは、演算対象のエンコードユニットに属する各フレームの困難度DIFの総和DIF_SUMを示している。
主コントローラ52は、このようにして式(2)の評価関数を設定すると、換言すると、式(2)の評価関数における係数Bを演算すると、各エンコードユニットのそれぞれについて、この係数Bを用いる次の式(3)の演算処理を順次実行していく。
GOP_TGT = B × GOP_DIF_SUM ・・・(3)
なお、式(3)において、GOP_DIF_SUMは、演算対象のGOPに属する各フレームの困難度DIFの総和を示している。また、GOP_TGTは、演算対象のGOPの目標ビット量を示している。
即ち、演算対象のGOPの目標ビット量GOP_TGTとは、演算対象のGOPが含まれるエンコードユニットの目標ビット量SUPPLY_BYTESの中から、演算対象のGOPの困難度GOP_DIF_SUMに応じて演算対象のGOPに配分された分のデータ量を指す。
そして、主コントローラ52は、対象のGOPの目標ビット量GOP_TGTを、対象のGOPに属する各フレームのそれぞれに割り振る処理を各GOPのそれぞれについて実行することで、各フレームの目標ビット量をそれぞれ設定する。
このように、ステップS23の「ビット配分計算処理」では、1パス目のエンコード処理結果(ステップS22の処理結果)を基準にして、2パス目のエンコード処理で利用される第2のエンコード条件のひとつ、即ち、目標ビット量が設定される。
ステップS24において、主コントローラ52は、直前の「ビット配分計算処理」(いまの場合、ステップS23の「ビット配分計算処理」)により設定されたフレーム毎の目標ビット量と、直前のステップS22の処理で検出された各フレームのピクチャタイプとを少なくとも含む第2のエンコード条件を設定する。
次に、ステップS25において、主コントローラ52は、この第2のエンコード条件に従った2パス目のエンコード処理が編集対象のビデオデータD1に対して施された場合に得られるはずの第2のエンコードビデオデータD2のプレビュー処理を実行する。
ステップS25のプレビュー処理とは、例えば次のような一連の処理を指す。即ち、ビデオテープレコーダ51が、オペレータのGUI61の操作に応動して、即ち、主コントローラ52の制御に応動して、編集対象のビデオデータD1を再生して、エンコーダ53に供給する。エンコーダ53が、第2のエンコード条件に従ってこのビデオデータD1を一旦エンコードし、その結果得られるエンコードビデオデータD2を再デコードして、その結果得られるビデオ信号をモニタ装置54に供給する。モニタ装置54は、このビデオ信号に対応する映像を表示する。即ち、第2のエンコード条件に従った2パス目のエンコード処理が編集対象のビデオデータD1に対して施された場合に得られるはずの第2のエンコードビデオデータD2に対応する映像が、モニタ装置54にプレビュー映像として表示される。以上の一連の処理が、ステップS25のプレビュー処理である。
ステップS26において、主コントローラ52は、オペレータの画質評価が「O.K」であるか否かを判定する。
即ち、オペレータは、ステップS25の処理によりモニタ装置54に表示されるプレビュー映像、即ち、エンコードビデオデータD2に対応する映像の画質の評価を行い、その評価結果を、GUI61を操作することで主コントローラ52に入力させることができる。
例えば、オペレータが画質に満足して、GUI61を操作して2パス目のエンコード処理の開始を指示すると、ステップS26において、オペレータの画質評価が「O.K」であると判定されて、処理はステップS30に進む。
ステップS30において、主コントローラ52は、ビデオテープレコーダ51とエンコーダ53とを制御して、直前のステップS24の処理で設定された第2のエンコード条件に従った2パス目のエンコード処理を編集対象のビデオデータD1に対して施す。また、その結果得られる第2のエンコードビデオデータD2をファイルサーバ27に記憶させる。
具体的には例えば、ビデオテープレコーダ51は、主コントローラ52の制御に基づいて、編集対象のビデオデータD1を再生して、エンコーダ53に供給する。エンコーダ53は、主コントローラ52から指示される第2のエンコード条件に従った2パス目のエンコード処理を、ビデオデータD1に対して施し、その結果得られる第2のエンコードビデオデータD2を、主コントローラ52の制御に基づいてネットワーク29を介してファイルサーバ27に記憶させる。
その後、ステップS31において、主コントローラ52は、2パス目のエンコード処理の結果をオーサリングアプリケーション実行装置28に通知する等の後処理を実行する。これにより、「ビデオデータ生成処理」は終了となる。
これに対して、オペレータが、ステップS25のプレビュー処理によりモニタ装置54に表示されているプレビュー映像、即ち、ファイルサーバ27に記憶される前のエンコードビデオデータD2に対応する映像の画質に満足するかを評価する。オペレータが画質に満足せず、例えば、GUI61を操作してカスタマイズの処理を選択すると、ステップS26において、オペレータの画質評価が「O.K」ではないと判定されて、処理はステップS27に進む。
ステップS27において、主コントローラ52は、ピクチャタイプの変更が指示されたか否かを判定する。
即ち、オペレータは、GUI61を操作することで、編集対象のビデオデータD1を構成する各フレームのうちの1枚以上のフレームのピクチャタイプを、BまたはPピクチャからIピクチャに変更させる指示を、主コントローラ52に入力させることができる。
このようなオペレータの指示がない場合には、ステップS27において、ピクチャタイプの変更が指示されていないと判定されて、処理はステップS28に進む。
ステップS28において、主コントローラ52は、「カスタマイズ処理」を実行する。ここで言う「カスタマイズ処理」とは、例えば、オペレータのGUI61の操作に応動して部分的にエンコード条件を変更することにより、部分的に画質を変更する処理を指す。
さらに、主コントローラ52は、続くステップS29において、上述したステップS23と同様の「ビット配分計算処理」を再実行することで、目標ビット量の設定を更新する。即ち、ステップS29の処理とは、上述したステップS23の処理と基本的に同様の処理である。ただし、ステップS29の処理では、直前のステップS28の「カスタマイズ処理」の結果を利用する点が、ステップS23の処理とは異なる点である。
このステップS29の処理が終了すると、処理はステップS24に戻され、それ以降の処理が繰り返される。
これに対して、オペレータからのピクチャタイプ変更の指示があった場合、ステップS27において、ピクチャタイプの変更が指示されたと判定されて、処理はステップS21に戻され、それ以降の処理が繰り返される。
即ち、オペレータからピクチャタイプの変更が指示されたフレームがシーンチェンジポイントであるとみなされて、その結果、上述したステップS21の各種情報の取得処理以降の一連の処理がやり直されることになる。
以上説明したように、ビデオ信号処理装置24は、フレーム毎の困難度とピクチャタイプとを基準にして、2パス目のエンコード処理で利用される第2のエンコード条件を設定することができる。さらに、このビデオ信号処理装置24は、オペレータの操作に応動して、この第2のエンコード条件を変更することができる。これにより、最終的にオペレータの満足する第2のエンコード条件によりビデオデータD1がエンコードされ、その結果得られるエンコードビデオデータD2がファイルサーバ27に記憶されるのである。
さらに、このとき設定される第2のエンコード条件の基準となる困難度とピクチャタイプとは1パス目のエンコード処理結果であるが、1パス目と2パス目とのそれぞれのエンコード処理で利用されるピクチャタイプは全フレームで同一となる。即ち、「1パス目のエンコード処理で利用(設定)されたピクチャタイプをそのまま2パス目のエンコード処理でも利用する」という条件が、この第2の条件に含まれているとも言える。これにより、記録メディアに用意された容量を効率的に使い切るようにエンコードビデオデータD2を作成することが可能になる。
その後、上述したように、図1のスタジオ側オーサリング装置11において、このエンコードビデオデータD2と、その他のエンコードビデオデータやエンコードオーディオデータとが多重化され、その結果得られる多重化ストリームファイルが、DLT31、HDD32、及びネットワーク33のうちの少なくとも1つに出力される。
そして、上述したように、DLT31、HDD32、及びネットワーク33のうちの少なくとも1つに出力された多重化ストリームファイルは、ディスクイメージデータとして、例えばプラント側に設置される図5のオーサリング装置(以下、プラント側オーサリング装置と称する)に供給される。
図5は、本発明が適用されるプラント側オーサリング装置の一構成例を示している。
図5に示されるように、このプラント側オーサリング装置101は、例えば、プリマスタリング装置111、フォーマッタ112、及びカッティング装置113から構成される。
ここで、図6のフローチャートを参照して、このプラント側オーサリング装置101の処理例について説明する。
ステップS41において、プリマスタリング装置111は、ディスクイメージデータ(図3のエンコードビデオデータD2を含む多重化ストリームファイル)を取得する。
次に、ステップS42において、プリマスタリング装置111は、外部から与えられるコピープロテクションデータを用いてディスクイメージデータを暗号化し、その結果得られる暗号化データをフォーマッタ112に供給する。
ステップS43において、フォーマッタ112は、信号のレベル変換処理等各種処理を暗号化データに対して施し、その結果得られる信号をカッティング装置113に供給する。
ステップS44において、カッティング装置113は、フォーマッタ112から供給される信号を元に、マスターディスク114(ディスクイメージデータが記録された光ディスクの原盤114)を作成する。これにより、プラント側オーサリング装置101の処理は終了となる。
以上説明したように、上述した図3のビデオデータD1に対する1パス目のエンコード処理において、ビデオ素材に最適化されたピクチャタイプが設定されて利用され、そのピクチャタイプを基準にして各フレームの目標ビット量の設定が行われる。その後、1パス目と同一のそのピクチャタイプが利用され、かつ、1パス目で設定されたその目標ビット量が利用されて、2パス目のエンコード処理がビデオデータD1に対して施され、その結果としてエンコードビデオデータD2が得られる。そして、このエンコードビデオデータD2を含むディスクイメージデータがプラント側オーサリング装置101に供給されて、光ディスク114に記録される。
従って、光ディスク114の使用可能ディスク容量を図1のスタジオ側オーサリング装置11に事前に通知しておくことで、図3のビデオ信号処理装置24は、その通知に見合った目標ビット量を設定することが可能になる。その結果、光ディスク114に記録されるディスクイメージデータのデータ量が、光ディスク114の使用可能ディスク容量に比較して不足したり余剰となってしまうことを防ぐことができる。これにより、光ディスク114のディスク容量を最大限使い切ることが可能になり、結果として光ディスク114に記録されるビデオデータの画質が向上されることになる。
ところで、上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることができる。
この場合、図1のスタジオ側オーサリング装置11全体またはその一部分は、例えば後述するコンピュータとして構成することができる。なお、スタジオ側オーサリング装置11の一部分とは、例えば、図1のビデオ信号処理装置24全体のときもあるし、或いは、さらに、そのビデオ信号処理装置24の一部分、例えば、図3の主コントローラ52等のときもある。
同様に、図5のプラント側オーサリング装置101全体またはその一部分は、例えば後述するコンピュータとして構成することができる。なお、プラント側オーサリング装置101の一部分とは、スタジオ側オーサリング装置11のそれと同様に、例えば、カッティング装置113全体のときもあるし、或いは、さらに、そのカッティング装置113の図示せぬ一部分のときもある。
〔エンコード並列処理〕
次に、ビデオデータのエンコードを並列処理する情報処理システムについて説明する。具体例として示す情報処理システムは、複数のコンピュータがエンコード処理を並列して行い、エンコード処理の効率化を図るようにしたものである。なお、情報処理システムは、上述したビデオ信号処理装置24のエンコードコントロール部64、エンコーダ53に対応する。
図7は、エンコードを並列処理する情報処理システムの構成を示すブロック図である。この情報処理システムは、エンコーダ201a〜201dと、スペック読み取り回路202と、起動プロセス算出回路203と、テストデータ測定回路204と、優先順位決定回路205と、エンコード最適化回路206と、分割素材割り当て回路207と、分散ストリーム連結回路208とを備えている。
エンコーダ201a〜201dは、後述するコンピュータから構成され、分割素材割り当て回路207から出力された分割データをエンコードする。具体的には、例えば上述したように2パスエンコードにより、1パス目で設定されたその目標ビット量が利用されて、2パス目のエンコード処理が分割データに対して施され、その結果として分割ストリームが得られる。各エンコーダ201a〜201dでエンコードされた分散ストリームは、分散ストリーム連結回路に出力される。なお、エンコーダ201a〜201dの数は、これに限られることなく、任意の数であっても良い。
図8は、コンピュータの構成を示すブロック図である。CPU(Central Processing Unit)301は、ROM(Read Only Memory)302に記録されているプログラム、または記憶部308からRAM(Random Access Memory)303にロードされたプログラムに従って各種の処理を実行する。RAM303にはまた、CPU301が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU301、ROM302、及びRAM303は、バス304を介して相互に接続されている。このバス304にはまた、入出力インタフェース305も接続されている。
入出力インタフェース305には、入力部306、出力部307、記憶部308、及び、通信部309が接続されている。また、入出力インタフェース305には、必要に応じてドライブ310が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどよりなるリムーバブル記録媒体311が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部308にインストールされる。
入力部306は、例えば、出力部307の表示部も兼ねたタッチパネル、キーボード、受光部を含むリモートコントローラ、マウスなどの入力機器で構成される。
出力部307は、例えば、ディスプレイ等の表示部単体、スピーカやヘッドフォン出力端子等の音声出力部単体、または、それらの組合せで構成される。
記憶部308は、例えばハードディスクなどで構成される。また、通信部309は、例えばモデム、ターミナルアダプタ、無線通信機器などより構成され、他の情報処理装置との間の通信を制御する。例えば、通信部309は、ネットワークを介してスペック読み取り回路202と通信したり、テストデータ測定回路204と通信したりする。
このようなコンピュータを用いてエンコーダ201a〜201dを構成する場合、入力部306、出力部307、及びCPU301が実行するプログラムの組み合わせで構成することができる。
スペック読み取り回路202は、各エンコーダ201a〜201dの仕様情報を取得する。具体的には、図8に示すコンピュータのCPU301、RAM303等のスペック情報をネットワークを介して取得する。スペック情報としては、物理コア数、メモリ容量、クロック周波数などが挙げられる。
起動プロセス算出回路203は、仕様情報に基づいて情報処理装置にビデオデータを符号化処理させる処理単位数を算出し、各情報処理装置に処理単位数の符号化処理を起動させる。具体的には、符号化対象素材のビデオデータの符号化処理に必要なスペックがパラメータ化された符号化パラメータ情報に基づいて各エンコーダ201a〜201dに実行させる符号化プロセス数を算出する。
具体例として、表1にコンピュータのスペック情報を示し、表2に符号化パラメータ情報を示す。また、符号化対象素材のエンコード条件を表3に示す。このエンコード条件は、例えば、図3に示すオーサリングアプリケーション実行装置28により、オペレータによって設定され、起動プロセス算出回路203に入力される。
起動プロセス算出回路203は、スペック情報、符号化パラメータ情報及びエンコード条件に基づいてパラメータα,βを算出し、αとβのうち値が小さい方を符号化プロセス数とする。例えば表1に示すエンコーダ用PCのスペック情報と、表2に示す符号化パラメータ情報と、表3に示すエンコード条件とから算出される値は、α=4、β=2なので、符号化プロセス数は2である。
このように符号化パラメータ情報は、ビデオデータの解像度、コーデックに対して必要とされるエンコーダ201a〜201dのスペックをパラメータ化したものである。符号化パラメータ情報は、例えば、図9に示すような符号化プロセスの起動数と8コアCPUの負荷率との関係に基づいてパラメータ化される。図9の例は、解像度が1920×1080、コーデックがAVC、メモリが16GBの条件において、エンコーダ用PCのコアの負荷率の閾値を80%に設定した場合のものである。この場合、8コアCPUでの起動プロセスの最適値は、4プロセスとなる。
また、符号化パラメータ情報には、各エンコーダ201a〜201dの性能指数も含まれる。例えば、表1に示すスペック情報と表2に示す符号化パラメータ情報により、性能指数γ(3.0/8)が求められる。この性能指数γにより優先順位が設定される。
また、起動プロセス算出回路203は、各エンコーダ201a〜201dに対して算出した符号化プロセス数を起動させる。具体的には、ネットワークを介して各エンコーダに201a〜201dに符号化プロセスの起動を指示する。このように各エンコーダに201a〜201dに符号化プロセスを起動させることにより、例えば、負荷率が80%以下のコアを用いて符号化処理を快適に行うことができる。
テストデータ測定回路204は、各エンコーダ201a〜201dに対してテストデータを送信し、その応答速度を測定する。例えば、起動プロセス算出回路203に入力されるエンコード条件と同等の解像度及びコーデックのテストデータを送信することにより、各エンコード用PCにおける符号化対象のビデオデータの符号化処理速度を正確に測定することができる。
優先順位決定回路205は、テストデータ測定回路204から入力された符号化プロセスの処理速度及び各エンコーダ201a〜201dの性能指数に基づいてエンコード用PCの優先順位を決定する。例えば、性能指数γに基づいて設定された各エンコード用PCの優先順位と、各エンコード用PCの処理速度を測定して得られた現時点の優先順位とから最終的な優先順位を決定する。
エンコード最適化回路206は、所定プロセス数の符号化処理を起動させたエンコーダ用PCの構成を最適化する。具体的には、エンコーダ201a〜201dの優先順位に基づいて実行させるエンコーダ用PCを選択して最適化する。
エンコード最適化回路206は、例えば、エンコーダ201a〜201dの処理能力に大きな差がある場合、処理能力の低いエンコーダを実行環境から除外する。これにより、処理速度の違いに伴う遅延を防止することができる。
例えば、最も大きい符号化処理速度に比して符号化処理速度の差が閾値以下であるエンコード用PCを選択し、これらのエンコード用PCの優先順位に基づいてビデオデータを分割する比率を算出する。ここで、例えば、各エンコード用PCの符号化処理速度に基づいて、各エンコード用PCの符号化処理時間が同じとなるようにビデオデータを分割する比率を算出することが好ましい。これにより、符号化対象素材のビデオデータを分割する分割処理時間及び分割データを結合する結合処理時間を含む総時間を短くすることができる。
これら最適化されたエンコーダ用PCの台数及び割合は、構成情報として分割素材割り当て回路207に出力される。
分割素材割り当て回路207は、エンコード最適化回路206に指示された割り当て比率に応じて符号化対象素材のデータを分割し、この分割データを各エンコーダ201a〜201dの符号化プロセスに対して割り当てる。
分散ストリーム連結回路208は、各エンコーダ201a〜201dから出力された分割ストリームを連結処理し、エンコードデータを得る。このエンコードデータは、ファイルサーバ27に出力される。
次に、図10に示すフローチャートを参照して符号化対象素材のデータの割り当て処理を説明する。
ステップS101において、スペック読み取り回路202は、各エンコーダ201a〜201dから物理コア数、メモリ容量、クロック周波数などのスペック情報を取得する。また、スペック読み取り回路202は、各エンコーダ201a〜201dのスペック情報を起動プロセス算出回路203に出力する。また、エンコードフォーマット(解像度等)、コーデック(MPEG-2、H.264/AVC等)、エンコード設定パラメータ(Mパターン、スライス数等)などの処理に必要なスペックをパラメータ化した符号化パラメータ設定情報が起動プロセス算出回路203に入力される。
ステップS102において、起動プロセス算出回路203は、スペック情報及び符号化パラメータ情報を元に各エンコーダ用PCで起動させる符号化プロセス数を算出する。具体的には、起動プロセス算出回路203は、例えば表1に示すスペック情報、表2に示す符号化パラメータ情報及び表3に示すエンコード条件に基づいてパラメータα,βを算出し、αとβのうち値が小さい方を符号化プロセス数とする。
また、起動プロセス算出回路203は、各エンコーダ用PCの性能指数を算出し、優先順位を設定する。
また、起動プロセス算出回路203は、ネットワークを介して各エンコーダに201a〜201dに符号化プロセスの起動を指示する。
ステップS103において、テストデータ測定回路204は、各エンコーダ201a〜201dに対してテストデータを送信し、その応答速度を測定する。また、テストデータ測定回路204は、テストデータの測定結果を優先順位決定回路205に出力する。
優先順位決定回路205は、起動プロセス算出回路203にて設定された優先順位及び測定結果に応じてエンコーダ201a〜201dの優先順位を決定し、その優先順位情報をエンコード最適化回路206に出力する。これにより現時点のエンコーダの負荷による処理能力の低下を考慮して常に最適な環境でエンコード処理をすることができる。
ステップS104において、エンコード最適化回路206は、起動プロセス算出回路203から入力された符号化プロセス情報と、優先順位決定回路205から入力された優先順位情報とからエンコード用PCを全て使用したほうが早いか否かを判定する。例えば、優先順位情報に基づいてビデオデータの実時間に対して重み付けした割り当て比率を算出し、この比率に応じてビデオデータを分割した場合の各エンコーダのエンコード処理時間を計算する。そして、優先順位が決定されたエンコード用PCを全て使用した方がよい場合、ステップS105に進む。また、例えば、あるエンコーダが他のエンコーダに比べて処理能力が極端に低く、処理能力が低いエンコーダを除外して並列処理を実行した方が早い場合には、ステップS106に進む。
ステップS105において、エンコード最適化回路206は、全てのエンコード用PCと、全てのエンコード用PCの優先順位に基づく割当比率とを含む構成情報を生成する。分割素材割り当て回路207は、この構成情報に基づいて符号化対象素材のビデオデータを分割し、この分割データをエンコーダ201a〜201dに出力する。
ステップS106において、エンコード最適化回路206は、処理能力が低いエンコーダを除外した最適な台数のエンコーダ用PCと、この最適な台数に割り当てる割当比率とを含む構成情報を生成する。分割素材割り当て回路207は、この構成情報に基づいて、符号化対象素材のデータを分割し、この分割データをエンコーダ201a〜201dに出力する。このように最適な台数のエンコーダ用PCと、この最適な台数に割り当てる割当比率とを含む構成情報を生成することによって、エンコード用PCの性能のばらつきや環境負荷による処理能力の低下の影響を考慮した最適かつ最速なエンコード並列処理が可能になる。
ステップS107において、エンコーダ201a〜201dは、割り当てられた分割データのエンコード処理を施した後、分散ストリーム連結回路208に出力する。
ステップS108において、分散ストリーム連結回路208は、分散ストリームの連結処理を施しデータを出力する。
このように分散処理を行う際に各エンコード用PCのスペック情報と、適応コーデック、設定パラメータを含む符号化パラメータ情報と、各エンコード用PCの現時点のテストデータ測定情報とから、起動プロセス数とエンコード割り当て期間を決定することで、エンコード用PCの増減などの環境変化による処理のばらつきを抑えることができる。また、エンコードを実行する時点での処理能力を考慮することにより、より効率的なエンコード環境を確立することが可能になる。
したがって、エンコード用PCの性能にばらつきがある場合、他のコーデックの同時実行する場合、環境負荷などの要因のために一時的に性能が出せない場合等においても、エンコード処理負荷の均一化を図ることができ、分散処理のメリットを十分に発揮させることができる。
また、エンコード用PCの優先順位を決定した結果、標準以下のPCを除外したほうが全体的な処理性能が向上するかの判定を行う為の統計情報も併せて活用することで、エンコードコーデックの変更、エンコード用PCの状況変化などに関わらず、常に最大のパフォーマンスを発揮させることが可能になる。
以上、実施形態の一例を示したが、上述の実施形態に限定される物ではなく、この発明の技術的思想に基づく各種の変形が可能である。
例えば、上述した一連の処理もソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータにネットワークや記録媒体からインストールされる。または、各種のプログラムをインストールすることで各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどにインストールされる。
また、このようなプログラムを含む記録媒体は、装置本体とは別に、ユーザにプログラムを提供するために配布されるものである。例えば、プログラムが記録されている磁気ディスク(フロッピディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)を含む)、半導体メモリ等よりなるリムーバブル記録媒体(パッケージメディア)である。また、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROMや、ハードディスクなどで構成されてもよい。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
11 スタジオ側オーサリング装置、 21 メニュー信号処理装置、 22 サブタイトル信号処理装置、 23 オーディオ信号処理装置、 24 ビデオ信号処理装置、 25 マルチプレクサ、 26 ダウンローダ、 27 ファイルサーバ、 28 オーサリングアプリケーション実行装置、 29 ネットワーク、 30 ライタ、 31 DLT、 32 HDD、 33 ネットワーク、 51 ビデオテープレコーダ、 52 主コントローラ、 53 エンコーダ、 54 モニタ装置、 61 GUI、 62 VTRコントロール部、 63 ビットアサイン部、 64 エンコードコントロール部、 101 プラント側オーサリング装置、 111 プリマスタリング装置、 112 フォーマッタ、 113 カッティング装置、 114 光ディスク装置、 201a〜201d エンコーダ、 202 スペック読み取り回路、 203 起動プロセス算出回路、 204 テストデータ測定回路、 205 優先順位決定回路、 206 エンコード最適化回路、 207 分割素材割り当て回路、 208 分散ストリーム連結回路