(57)【要約】【課題】映像データの符号化処理を高速化できる符号化装置を提供する。【解決手段】ハードウェア・エンコーダ１５１は符号化処理用のハードウェアで構成され、ＡＶデータの一部を符号化する。ソフトウェア・エンコーダ１５２はＣＰＵ１０を利用して、ハードウェア・エンコーダ１５１による符号化処理と並行してＡＶデータの他の一部を符号化する。データ割振部１４はＡＶデータを両エンコーダ１５１，１５２に割り振る。合成部１６は、各エンコーダで符号化された映像データを所定の順序に配列して一連の符号化された映像データに合成する。出力部１７はその一連の符号化された映像データを出力する。符号化装置は、ハードウェア・エンコーダ１５１のみにより達成される符号化処理速度よりも大きな符号化処理速度で符号化可能である。【選択図】図３
2011077564.tif 000002
【特許請求の範囲】
【請求項１】
音声データおよび／または映像データを含むＡＶデータを符号化する符号化装置であって、
ＣＰＵと、
符号化処理用のハードウェアで構成され、前記ＡＶデータの一部を符号化するハードウェア・エンコーダと、
前記ＣＰＵを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して前記ＡＶデータの他の一部を符号化するソフトウェア・エンコーダと、
前記ＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るデータ割振部と、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたＡＶデータを所定の順序に配列して一連の符号化されたＡＶデータに合成する合成部と、
前記一連の符号化されたＡＶデータを出力する出力部と、
を備え、
前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でＡＶデータを符号化する、前記符号化装置。
【請求項２】
前記データ割振部と前記ハードウェア・エンコーダとの間に接続され、前記データ割振部によって前記ハードウェア・エンコーダに割り振られるＡＶデータを記憶し、前記ハードウェア・エンコーダにＡＶデータを供給するバッファを更に備え、
前記データ割振部は、前記バッファの空き情報を取得し、その空き情報に基づいて前記ＡＶデータを前記ソフトウェア・エンコーダに割り振る、
請求項１に記載の符号化装置。
【請求項３】
前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を表すデータが前記データ割振部に供給され、
前記データ割振部が、前記データに基づいてＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
請求項１に記載の符号化装置。
【請求項４】
前記ＣＰＵは、前記ＡＶデータについて符号化処理以外の他の処理も行い、
前記他の処理による前記ＣＰＵの負荷を、前記ＡＶデータに対応させて予測するＣＰＵ負荷推定部と、
前記予測された前記ＣＰＵの負荷に応じて、前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
を更に備え、
前記データ割振部が、前記データに基づいてＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
請求項１に記載の符号化装置。
【請求項５】
前記割り振り割合設定部は、前記ＣＰＵの負荷を検出し、検出された負荷に基づいて前記割合を変更する、請求項４に記載の符号化装置。
【請求項６】
前記ＣＰＵの負荷を検出し、検出された負荷に応じて、前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部を更に備え、
前記データ割振部が、前記データに基づいてＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
請求項１に記載の符号化装置。
【請求項７】
前記ハードウェア・エンコーダによる符号化処理速度と前記ソフトウェア・エンコーダによる符号化処理速度とを測定する処理速度測定部と、
前記測定された符号化処理速度に応じて、前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
を更に備え、
前記データ割振部が、前記データに基づいてＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
請求項１に記載の符号化装置。
【請求項８】
前記割り振り割合設定部は、前記ＣＰＵの負荷を検出し、検出された負荷に応じて前記割合を変更する、請求項７に記載の符号化装置。
【請求項９】
前記ＡＶデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を検出し、その検出に応じて検出信号を生成する切換位置検出部を更に備え、
前記データ割振部は、前記検出信号に応じてＡＶデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換える、
請求項１に記載の符号化装置。
【請求項１０】
ＣＰＵと、
音声データおよび／または映像データを含むＡＶデータを編集する編集部と、
符号化処理用の回路で構成され、前記編集されたＡＶデータの一部を符号化するハードウェア・エンコーダと、
前記ＣＰＵを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して、前記編集されたＡＶデータの他の一部を符号化するソフトウェア・エンコーダと、
前記編集されたＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るデータ割振部と、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたＡＶデータを所定の順序に配列して一連の符号化されたＡＶデータに合成する合成部と、
前記一連の符号化されたＡＶデータを出力する出力部と、
を備え、
前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でＡＶデータを符号化するビデオ編集システム。
【請求項１１】
前記編集部は、編集対象のＡＶデータに対してユーザにより設定された編集情報を有し、
前記編集部が編集情報に基づいて編集処理を実行するときのＣＰＵの負荷を予測するＣＰＵ負荷推定部と、
前記予測された前記ＣＰＵの負荷に応じて、前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
を更に備え、
前記データ割振部は、前記データに基づいて前記ＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
請求項１０に記載のビデオ編集システム。
【請求項１２】
前記割り振り割合設定部は、前記ＣＰＵの負荷を検出し、検出された負荷に応じて前記割合を変更する、請求項１０に記載のビデオ編集システム。
【請求項１３】
前記編集部が編集情報に基づいて編集処理を実行して得られるＡＶデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を前記編集情報から検出して、所定の検出信号を生成するフレーム切換位置検出部、を更に備え、
前記データ割振部は、前記検出信号に応じてＡＶデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換える、
請求項１０に記載のビデオ編集システム。
【請求項１４】
符号化処理用のハードウェアで構成され、ＡＶデータの一部を符号化するハードウェア・エンコーダと、ＣＰＵを利用して、前記ＡＶデータの他の一部を符号化するソフトウェア・エンコーダと、を使用して映像データを符号化する方法であって、
前記ＡＶデータを受信するステップと、
前記ＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るステップと、
前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダがそれぞれ割り振られたＡＶデータを符号化するステップと、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたＡＶデータを所定の順序に配列して一連の符号化されたＡＶデータに合成するステップと、
前記一連の符号化されたＡＶデータを出力するステップと、
を含み、
前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でＡＶデータを符号化する、前記方法。
【請求項１５】
前記ＡＶデータに対してユーザにより設定された編集情報に基づいて符号化対象の一連のＡＶデータに編集するステップであって、前記符号化するステップと並列して実行される、該ステップと、
前記編集するステップの編集情報に基づく編集処理を実行するときのＣＰＵの負荷を符号化対象の一連のＡＶデータに対応させて予測するステップと、
前記予測された前記ＣＰＵの負荷に応じて、前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを出力するステップと、
を更に含み、
前記ＡＶデータを割り振るステップは、前記データに基づいてＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、請求項１４に記載の方法。
【請求項１６】
前記ＡＶデータに対してユーザにより設定された編集情報に基づいて符号化対象の一連のＡＶデータに編集するステップと、
前記符号化対象の一連のＡＶデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を検出して、所定の検出信号を生成するステップと、
を更に備え、
前記ＡＶデータを割り振るステップは、前記検出信号に応じてＡＶデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換えるステップを含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は映像データおよび音声データの符号化処理に関する。
【背景技術】
【０００２】
ビデオ編集システムはユーザによる映像データの編集作業を支援するためのシステムであり、一般に、パーソナルコンピュータなど、汎用のＣＰＵを備えたコンピュータ端末に所定のアプリケーションプログラムを実行させることによって実現される。ビデオ編集システムは、予めビデオカメラ等などからＨＤＤに１つ以上の映像データおよび音声データを取り込み、それらから１本の映像データストリームを編集する。編集された音声・映像データストリームはシステムによって圧縮された後、又は非圧縮データのまま、同じシステム内でＨＤＤやＤＶＤなどの任意の記録媒体に記録され、あるいは放送などのために送出され、又はＩＥＥＥ１３９４等のインタフェースを通して外部に出力される。
【０００３】
ビデオ編集システムは、音声・映像データストリームの圧縮に様々な方式の符号化を利用する。近年、例えばＨＤＶ方式で見られるように、ストリーム１本当たりの映像データ量が膨大である。従って、近年のビデオ編集システムでは、符号化処理に要する時間が増加する傾向にある。
【０００４】
音声・映像データの符号化処理を高速にするための従来の手法としては、符号化処理を行うＣＰＵの数を増やして、並列に符号化処理を実行させる手法がある。その他に、一連の符号化処理の一部を専用のハードウェアに処理させ、残りをＣＰＵに処理させる手法がある。また、符号化処理専用のチップや回路をシステムに搭載し、それらに映像データの符号化処理全体を行わせる手法がある。
【特許文献１】特開２００４−３５６８５１号公報
【特許文献２】特開平０６−３３９０１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
符号化処理専用のチップや回路には符号化処理速度の上限があり、ユーザの所望の速度に達しない場合は、その符号化処理専用のチップや回路の処理速度を更に向上させることや、符号化処理専用のチップを複数使用して符号化処理を並列に行わせることが考えられる。
【０００６】
しかしながら、符号化処理専用のチップ単体や回路の処理速度を向上させるには、回路設計を変更しなければならない。これは、符号化処理専用のチップ単体や回路の製造コストを上昇させる。特に、符号化処理専用のチップは単体でも一般に規模が大きく高価であるため、これを追加すると大規模化し、その製造コストが大幅に上昇してしまう。このように、符号化処理専用のチップや回路では、その製造コストの増加を抑制しつつ、符号化処理を更に高速にするのは難しい。
【０００７】
本発明の目的は、上記の問題を解決した新規かつ有用な符号化装置とその符号化方法、及びビデオ編集システムを提供することである。本発明の具体的な目的は、映像データや音声データの符号化処理を高速化可能な符号化装置とその符号化方法、及びビデオ編集システムを提供することである。
【課題を解決するための手段】
【０００８】
本発明の一観点によれば、音声データおよび／または映像データを含むＡＶデータを符号化する符号化装置であって、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、符号化処理用のハードウェアで構成され、前記ＡＶデータの一部を符号化するハードウェア・エンコーダと、前記ＣＰＵを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して前記ＡＶデータの他の一部を符号化するソフトウェア・エンコーダと、前記ＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るデータ割振部と、前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたＡＶデータを所定の順序に配列して一連の符号化されたＡＶデータに合成する合成部と、前記一連の符号化されたＡＶデータを出力する出力部と、を備え、前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でＡＶデータを符号化する、符号化装置が提供される。
【０００９】
本発明によれば、ハードウェア・エンコーダとソフトウェア・エンコーダによって、音声データおよび／または映像データを含むＡＶデータを並列に符号化処理するので、ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でＡＶデータを符号化でき、符号化処理速度を高速化できる。
【００１０】
本明細書及び特許請求の範囲において、「ハードウェア・エンコーダ」は、（ｉ）映像データや音声データの符号化処理の一部又は全体を実行するために専用に設計されたＩＣやモジュールなどの回路、又は（ｉｉ）映像データや音声データの符号化処理の一部又は全体と、符号化処理以外の処理とを実行可能なＣＰＵやＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）などの演算回路であって、その演算回路が映像データや音声データの符号化処理の一部又は全体を実行している間はその符号化処理の一部又は全体を排他的に行う演算回路である。
【００１１】
本明細書及び特許請求の範囲において、「ソフトウェア・エンコーダ」は、汎用のＣＰＵやＤＳＰなど、映像データの符号化処理以外の他の処理にも利用されている演算回路で映像データの符号化処理用ソフトウェアを実行することによって、映像データの符号化処理を他の処理と並列に行うエンコーダをいう。
【００１２】
本発明の他の観点によれば、ＣＰＵと、音声データおよび／または映像データを含むＡＶデータを編集する編集部と、符号化処理用の回路で構成され、前記編集されたＡＶデータの一部を符号化するハードウェア・エンコーダと、前記ＣＰＵを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して、前記編集されたＡＶデータの他の一部を符号化するソフトウェア・エンコーダと、前記編集されたＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るデータ割振部と、前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたＡＶデータを所定の順序に配列して一連の符号化されたＡＶデータに合成する合成部と、前記一連の符号化されたＡＶデータを出力する出力部と、を備え、前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でＡＶデータを符号化するビデオ編集システムが提供される。
【００１３】
本発明によれば、ハードウェア・エンコーダとソフトウェア・エンコーダによって、音声データおよび／または映像データを含むＡＶデータを並列に符号化処理するので、ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でＡＶデータを符号化でき、符号化処理速度を高速化できる。
【００１４】
本発明のその他の観点によれば、符号化処理用のハードウェアで構成され、ＡＶデータの一部を符号化するハードウェア・エンコーダと、ＣＰＵを利用して、前記ＡＶデータの他の一部を符号化するソフトウェア・エンコーダと、を使用して映像データを符号化する方法であって、前記ＡＶデータを受信するステップと、前記ＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るステップと、前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダがそれぞれ割り振られたＡＶデータを符号化するステップと、前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたＡＶデータを所定の順序に配列して一連の符号化されたＡＶデータに合成するステップと、前記一連の符号化されたＡＶデータを出力するステップと、を含み、前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でＡＶデータを符号化する、方法が提供される。
【００１５】
本発明によれば、ハードウェア・エンコーダとソフトウェア・エンコーダによって、音声データおよび／または映像データを含むＡＶデータを並列に符号化処理するので、ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でＡＶデータを符号化でき、符号化処理速度を高速化できる。
【発明の効果】
【００１６】
本発明によれば、映像データや音声データの符号化処理を高速化可能な符号化装置とその符号化方法、及びビデオ編集システムを提供できる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の好ましい実施形態について、図面を参照しながら説明する。なお、本発明は、映像データおよび音声データのいずれの符号化処理も可能であるが、説明の便宜のため、映像データを符号化処理する場合を説明する。
【００１８】
《実施形態１》
図１は、本発明の実施形態１による符号化装置１００及びビデオ編集システム２００の構成を示すブロック図である。図１を参照するに、本発明の実施形態１に係る符号化装置１００はビデオ編集システム２００に組み込まれている。実施形態１に係るビデオ編集システム２００はノンリニアビデオ編集システムであり、パーソナルコンピュータなどのコンピュータ端末を用いて実現される。ビデオ編集システム２００は、ＣＰＵ１０、メモリ部２０、内蔵ＨＤＤ３０Ａ、内蔵ドライブ４０Ａ、入出力インタフェース５０、ユーザインタフェース６０、ＡＶユニット７０、ハードウェア・エンコーダ８０、及びこれらの要素を接続する内部バス９０を含む。ビデオ編集システム２００に含まれる要素のうち、ＣＰＵ１０及びハードウェア・エンコーダ８０は符号化装置１００に含まれる。ビデオ編集システム２００は更に、外部のＬＡＮやインターネットに接続可能なネットワークインタフェースを含んでいてもよい。
【００１９】
ＣＰＵ１０は、メモリ部２０に記憶されているプログラムを実行し、後述の編集部１３、データ割振部１４、ソフトウェア・エンコーダ１５２、合成部１６、及び出力部１７として機能する。これらの各部の詳細については後述する。ＣＰＵ１０は、１つのチップに限定されず、複数個のチップであってもよく、それぞれのチップに複数のコアがあってもよい。このような複数のＣＰＵが並列に動作する。これにより、ソフトウェア・エンコーダ１５２の符号化能力がさらに向上する。
【００２０】
メモリ部２０には、ＣＰＵ１０に後述の処理を実行させるプログラムやデータが記憶されている。また、メモリ部２０には、入力バッファ領域ＢＩ、第１出力バッファ領域ＢＯ１、及び第２出力バッファ領域ＢＯ２が確保される。これらのバッファ領域の詳細については後述する。
【００２１】
内蔵ＨＤＤ３０Ａは、ビデオ編集システム２００を実現するコンピュータ端末に内蔵されている。内蔵ＨＤＤ３０Ａに代えて、又は、図１に示すように内蔵ＨＤＤ３０Ａに加えて、外付けＨＤＤ３０Ｂが入出力インタフェース５０を通して内部バス９０に接続されていてもよい。
【００２２】
内蔵ドライブ４０Ａは、ビデオ編集システム２００を実現するコンピュータ端末に内蔵されている。内蔵ドライブ４０Ａに代えて、又は、図１に示すように内蔵ドライブ４０Ａに加えて、外付けドライブ４０Ｂが入出力インタフェース５０を通して内部バス９０に接続されていてもよい。
【００２３】
内蔵ドライブ４０Ａ及び外付けドライブ４０Ｂは、ＤＶＤ１０２などのリムーバブルメディアとの間で映像データや音声データの入出力を行う。リムーバブルメディアとしては、光ディスクの他に、磁気ディスク、光磁気ディスク、ブルーレイディスク、半導体メモリなどが挙げられる。
【００２４】
入出力インタフェース５０は、外付けＨＤＤ３０Ｂや外付けドライブ４０Ｂの他に、ユーザインタフェース６０や、第２カメラ１０１Ｂなどの外部機器に内蔵される記憶媒体を内部バス９０に接続することができる。例えば入出力インタフェース５０はＩＥＥＥ１３９４インタフェースなどを含み、それを利用して第２カメラ１０１Ｂとの間で映像データや音声データの入出力を行う。入出力インタフェース５０は、第２カメラ１０１Ｂの他にも、ＶＴＲ、スイッチャー、送出サーバーなど、映像データや音声データを扱う様々な機器との間で、映像データや音声データの入出力を行うことができる。
【００２５】
ユーザインタフェース６０は、入出力インタフェース５０を通して内部バス９０に接続されている。ユーザインタフェース６０は例えば、マウス６１、キーボード６２、ディスプレイ６３、及びスピーカ６４を含む。ユーザインタフェース６０はその他の入力デバイスとしてタッチパネル（図示せず）を含んでいてもよい。
【００２６】
ＡＶユニット７０はビデオインタフェースとオーディオインタフェースとを含む。ＡＶユニット７０はそれらのインタフェースを通して第１カメラ１０１Ａなどの外部機器との間で映像データの入出力を行う。ＡＶユニット７０は、第１カメラ１０１Ａの他にも、ＶＴＲ、スイッチャー、送出サーバーなど、映像データや音声データを扱う様々な機器との間で、映像データや音声データの入出力を行うことができる。
【００２７】
ハードウェア・エンコーダ８０は、（ｉ）映像データや音声データの符号化処理の一部又は全体を実行するために専用に設計されたＩＣやモジュールなどの回路、又は（ｉｉ）映像データや音声データの符号化処理の一部又は全体と、符号化処理以外の処理とを実行可能なＣＰＵやＤＳＰなどの演算回路であって、その演算回路が映像データや音声データの符号化処理の一部又は全体を実行している間はその符号化処理の一部又は全体を排他的に行う演算回路である。
【００２８】
ハードウェア・エンコーダ８０は、非圧縮の映像データを符号化によって圧縮する。例えば非可逆符号化方式の場合、ハードウェア・エンコーダ８０によって実行される映像データの符号化処理は次のステップ（ｉ）〜（ｉｖ）を含む。
（ｉ）ブロックやタイルなどへの分割ステップ、
（ｉｉ）ＤＣＴ変換やウェーブレット変換などの直交変換ステップ、
（ｉｉｉ）量子化ステップ、及び、
（ｉｖ）エントロピー符号化などの可逆符号化ステップ。
【００２９】
ハードウェア・エンコーダ８０による映像データの符号化処理はその他にも、例えば、サブサンプリングステップ、シャッフリングステップ、イントラフレーム予測ステップ、又はフレーム間予測ステップを含んでいてもよい。ハードウェア・エンコーダ８０による映像データの符号化処理はまた、可逆符号化方式による圧縮処理であっても、圧縮を目的とはしない符号化処理であってもよい。
【００３０】
ハードウェア・エンコーダ８０はフレームバッファを内蔵し、それに記憶された映像データを符号化する。その他に、同様なフレームバッファとしてメモリ部２０の所定の記憶領域が利用されてもよい。ハードウェア・エンコーダ８０による符号化方式は、例えば、ＤＶ方式、ＭＰＥＧ方式、ＪＰＥＧ２０００方式、イントラフレーム方式（例えば、ＡＶＣ−Ｉｎｔｒａ方式）、または、ＭＰＥＧ方式におけるクローズドＧＯＰ方式であるが、特に限定されない。ハードウェア・エンコーダ８０による符号化方式は、符号化された映像データの出力先のデバイスに応じて予め選択される。ハードウェア・エンコーダ８０は、各データ単位をそれに含まれている情報に基づいて符号化する。例えばイントラフレーム方式では、そのデータ単位は１フレームである。その他に、ＭＰＥＧ方式におけるクローズドＧＯＰ方式では、符号化のデータ単位は１ＧＯＰであってもよい。
【００３１】
図２は、図１に示されているハードウェア・エンコーダ８０が実装されたボード８００の概略的な平面図の一例である。このボード８００は、ビデオ編集システム２００を実現するコンピュータ端末に搭載される。
【００３２】
図２を参照するに、ボード８００は、コネクタ８１、ハードウェア・エンコーダ８２、フレームバッファ８３、及びＦＰＧＡ（Field Programmable Gate Array）８４を含む。ボード８００には更に、ＡＶユニット７０が実装されていてもよい。
【００３３】
コネクタ８１はＰＣＩ−Ｅｘｐｒｅｓｓに準拠しており、コンピュータ端末内のＰＣＩ−Ｅｘｐｒｅｓｓスロットに挿入されることで、ボード８００上の回路をそのコンピュータ端末のＰＣＩ−Ｅｘｐｒｅｓｓバスに接続する。このバスは内部バス９０に含まれている。
【００３４】
フレームバッファ８３はＤＤＲ２−ＳＤＲＡＭ（Ｄｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅ２−Ｓｙｎｃｈｒｏｎｏｕｓ−ＤＲＡＭ）の独立素子であり、所定数、例えば４枚のフレームを記憶可能である。符号化対象の映像データはフレームごとに、メモリ部２０の入力バッファ領域ＢＩから、コネクタ８１とＦＰＧＡ８４とを通してフレームバッファ８３に転送される。ハードウェア・エンコーダ８２はＦＰＧＡ８４を通してフレームバッファ８３の先頭アドレスから順に映像データを符号化する。ハードウェア・エンコーダ８２によって符号化された映像データはフレームごとに、ＦＰＧＡ８４を通してフレームバッファ８３に書き込まれ、更に、フレームバッファ８３からＦＰＧＡ８４とコネクタ８１とを通してメモリ部２０の第１出力バッファ領域ＢＯ１に転送される。
【００３５】
ＦＰＧＡ８４は単一のチップであり、ＰＣＩ−Ｅｘｐｒｅｓｓインタフェース８５、メモリインタフェース８６、ＤＭＡエンジン８７、及びエンコーダインタフェース８８を含む。ＰＣＩ−Ｅｘｐｒｅｓｓインタフェース８５はコネクタ８１を通し、ＦＰＧＡ８４内の他のモジュールを、ビデオ編集システム２００を構成するコンピュータ端末のＰＣＩ−Ｅｘｐｒｅｓｓバスに接続する。メモリインタフェース８６はＦＰＧＡ８４内の他のモジュールによるフレームバッファ８３へのアクセスを制御する。ＤＭＡエンジン８７はＰＣＩ−Ｅｘｐｒｅｓｓインタフェース８５とメモリインタフェース８６とを利用して、前記コンピュータ端末内のＰＣＩ−Ｅｘｐｒｅｓｓバスを通したメモリ部２０とフレームバッファ８３との間での映像データの転送を制御する。エンコーダインタフェース８８は、ＦＰＧＡ８４内の他のモジュールをハードウェア・エンコーダ８２に接続する。
【００３６】
図３は、図１のビデオ編集システム２００の主要な機能構成を示すブロック図である。図３を参照するに、ビデオ編集システム２００は機能構成としては編集部１３と符号化部１１とを含む。符号化部１１は、データ割振部１４、ハードウェア・エンコーダ１５１、ソフトウェア・エンコーダ１５２、合成部１６、及び出力部１７を含む。編集部１３、データ割振部１４、ソフトウェア・エンコーダ１５２、合成部１６、及び出力部１７は、図１のビデオ編集システム２００のＣＰＵ１０によって実現される。
【００３７】
編集部１３は、編集対象となる映像データの選択を受け付け、選択された映像データを読み出してユーザの編集操作に基づいて編集処理を行い、一連の映像データストリームに編集する。
【００３８】
具体的には、編集部１３はまず、ＤＶＤ１０２、内蔵ＨＤＤ３０Ａ、又は外付けＨＤＤ３０Ｂなどのリソースに記憶されたファイルの一覧を、ユーザインタフェース６０に含まれるディスプレイ６３に表示する。それらのファイルは、映像データ、音声データ、静止画、又はテキストデータなどを素材データとして含む。ユーザはマウス６１やキーボード６２を操作して、その一覧の中から編集対象のファイルを選択する。編集部１３はユーザによるファイルの選択を受け付け、選択されたファイルに対応するクリップをディスプレイ６３に表示する。クリップは、時間軸を持つ素材データの一部又は全体を参照する情報である。クリップは、それによって参照されるデータ部分の開始位置と終了位置とのそれぞれを表す時間情報を含む。
【００３９】
図４は編集ウィンドウＥＷの一例である。編集部１３は、ディスプレイ６３に編集ウィンドウＥＷを表示してユーザから編集操作を受け付ける。図４を参照するに、編集ウィンドウＥＷは例えば、素材ウィンドウＢＷ、タイムラインウィンドウＴＷ、及びプレビューウィンドウＰＷを含む。
【００４０】
編集部１３は素材ウィンドウＢＷに、選択された編集対象のファイルに対応するクリップＩＣ１を表示する。
【００４１】
編集部１３はタイムラインウィンドウＴＷに複数のトラックＴＲを表示し、各トラックＴＲ上へのクリップＣＬの配置を受け付ける。図４の例では各トラックＴＲは画面の水平方向に延びている細長い帯状領域である。各トラックＴＲは、編集部１３によって生成される映像データストリームの時間軸であるタイムライン上の位置情報を示す。図４の例では、各トラックＴＲ上を画面の水平方向に左から右へ進むほどタイムライン上の位置が進むように、各トラック上の水平方向での位置がタイムライン上の位置に対応づけられている。編集部１３は例えばユーザによるマウス６１の操作を通して、素材ウィンドウＢＷから各トラックＴＲ上へのクリップＣＬの配置を受け付ける。
【００４２】
編集部１３はまた、タイムラインウィンドウＴＷにタイムラインカーソルＴＬＣと時間軸目盛りとを表示してもよい。図４の例ではタイムラインカーソルＴＬＣは、時間軸目盛りから画面の垂直方向に延びて各トラックＴＲと交差している直線である。タイムラインカーソルＴＬＣは各トラックＴＲに対して平行に移動可能である。タイムラインカーソルＴＬＣの端が指す時間軸目盛りの値は、タイムラインカーソルＴＬＣと各トラックＴＲとの交差点のタイムライン上での位置を表す。
【００４３】
編集部１３は、各トラックＴＲ上に配置されるクリップＣＬのタイムライン上での開始位置であるインポイントＩＰと終了位置であるアウトポイントＯＰとの設定、及び、各トラックＴＲ上に配置された後でのクリップＣＬのインポイントＩＰとアウトポイントＯＰとの変更を受け付ける。
【００４４】
編集部１３は更に、各トラックＴＲ上に配置されたクリップＣＬについて、対応する映像の色や明るさの調整、対応する映像全体に対する特殊効果、又は異なるトラックＴＲに配置された複数のクリップＣＬ間での映像の合成などのエフェクト処理の設定をユーザから受け付けることができる。
【００４５】
編集部１３はプレビューウィンドウＰＷに、タイムラインカーソルＴＬＣの示すタイムライン上の位置に配置されたクリップＣＬに対応する映像を表示する。編集部１３はまた、タイムラインウィンドウＴＷに配置されたクリップＣＬのうち、指定された範囲に対応する動画像をプレビューウィンドウＰＷに表示する。ユーザは、プレビューウィンドウＰＷに表示された映像から、編集部１３によって受け付けられた編集処理の結果を確認できる。
【００４６】
編集部１３は、タイムラインウィンドウＴＷ内のトラックＴＲ上でのクリップＣＬの配置、及び各クリップＣＬに設定されたエフェクト処理に基づいて、編集する一連の映像データストリームに対する編集情報を生成する。編集情報では、編集部１３による編集処理の内容がタイムコードと共に規定されている。タイムコードは、対応する編集処理を受けた映像データのタイムライン上での位置を表す。編集部１３はその編集情報に従い、各クリップＣＬが参照する映像データをタイムライン上の順番で連結して一連の映像データストリームを生成する。編集部１３は更にその映像データストリームを符号化対象の映像データとしてデータ割振部１４に出力し、メモリ部２０内の入力バッファ領域ＢＩに書き込む。
【００４７】
図３に戻り、データ割振部１４は、メモリ部２０内の入力バッファ領域ＢＩに書き込まれた符号化対象の映像データをハードウェア・エンコーダ１５１とソフトウェア・エンコーダ１５２とに割り振る。具体的には、データ割振部１４はまず、メモリ部２０内に、エンコーダ１５１、１５２ごとに、符号化された映像データを書き込むための出力バッファ領域ＢＯ１、ＢＯ２を確保する。データ割振部１４は次に、入力バッファ領域ＢＩに書き込まれた映像データを所定のデータ単位ずつ、例えば１フレームずつ順番に、各エンコーダ１５１、１５２によって符号化されるべきデータ単位として選択する。データ割振部１４は続いて、ハードウェア・エンコーダ１５１に対して選択されたデータ単位を順番にハードウェア・エンコーダ１５１のフレームバッファに転送し、転送された各データ単位を符号化した後に書き込むべき第１出力バッファ領域ＢＯ１内のアドレスをハードウェア・エンコーダ１５１に指定する。一方、ソフトウェア・エンコーダ１５２に対して選択されたデータ単位については、データ割振部１４は、入力バッファ領域ＢＩにおけるそれらのデータ単位のアドレスを、それらのデータ単位を符号化した後に書き込むべき第２出力バッファ領域ＢＯ２内のアドレスと共に順番にソフトウェア・エンコーダ１５２に指定する。データ割振部１４は更に、両エンコーダ１５１、１５２に割り振られたデータ単位に順番に通し番号、例えばフレーム番号を振り、各番号のデータ単位の符号化後の書き込み先として各エンコーダ１５１、１５２に指定したアドレスをその番号と共に合成部１６に渡す。
【００４８】
なお、ハードウェア・エンコーダが２台以上存在し、それらが独立に符号化処理を行う場合、データ割振部１４は、各ハードウェア・エンコーダが処理すべき符号化対象の映像データを、それぞれのハードウェア・エンコーダに割り振る。
【００４９】
ハードウェア・エンコーダ１５１は、図１に示されているハードウェア・エンコーダ８０のデバイスドライバである。ハードウェア・エンコーダ１５１は、データ割振部１４によってメモリ部２０内の入力バッファ領域ＢＩからフレームバッファに転送された符号化対象の映像データを順番に符号化する。その符号化方式は編集部１３により設定される。ハードウェア・エンコーダ１５１は映像データの各データ単位を、それに含まれている情報に基づいて符号化する。例えば、符号化方式がイントラフレーム方式である場合は符号化のデータ単位は１フレームであり、符号化方式がクローズドＧＯＰ方式である場合は符号化のデータ単位は１ＧＯＰである。ハードウェア・エンコーダ１５１は、符号化された映像データを、データ割振部１４によって指定された第１出力バッファ領域ＢＯ１内のアドレスに転送する。ハードウェア・エンコーダ１５１は更に、符号化された映像データを第１出力バッファ領域ＢＯ１に転送するごとに、その転送先のアドレスを合成部１６に通知する。
【００５０】
ソフトウェア・エンコーダ１５２はＣＰＵ１０によって実行される符号化処理モジュールであり、メモリ部２０内の入力バッファ領域ＢＩに記憶された符号化対象の映像データを、データ割振部１４から指定されたアドレス順に符号化する。ソフトウェア・エンコーダ１５２はハードウェア・エンコーダ１５１とは独立に、かつ並列に符号化処理を実行する。ソフトウェア・エンコーダ１５２はハードウェア・エンコーダ１５１と同様、各データ単位をそれに含まれている情報に基づいて符号化する。
【００５１】
ソフトウェア・エンコーダ１５２のデータ単位と符号化方式とはハードウェア・エンコーダ１５１のデータ単位と符号化方式と共通である。すなわち、ハードウェア・エンコーダ１５１による符号化のデータ単位が１フレームであればソフトウェア・エンコーダ１５２による符号化のデータ単位も１フレームであり、ハードウェア・エンコーダ１５１による符号化のデータ単位が１ＧＯＰであれば、ソフトウェア・エンコーダ１５２による符号化のデータ単位も１ＧＯＰである。
【００５２】
さらに、ハードウェア・エンコーダ１５１による符号化方式がイントラフレーム方式であればソフトウェア・エンコーダ１５２による符号化方式もイントラフレーム方式であり、ハードウェア・エンコーダ１５１による符号化方式がクローズドＧＯＰ方式であればソフトウェア・エンコーダ１５２による符号化方式もクローズドＧＯＰ方式である。
【００５３】
ソフトウェア・エンコーダ１５２は、符号化された映像データを、データ割振部１４によって指定された第２出力バッファ領域ＢＯ２内のアドレスに書き込む。ソフトウェア・エンコーダ１５２は更に、符号化された映像データを第２出力バッファ領域ＢＯ２に書き込むごとに、その書き込み先のアドレスを合成部１６に通知する。
【００５４】
合成部１６は、ハードウェア・エンコーダ１５１およびソフトウェア・エンコーダ１５２によってそれぞれ符号化されたデータ単位を、データ割振部１４によって振られた番号順に配列し、１本の符号化された映像データストリームに合成する。具体的には、合成部１６はまず、データ割振部１４から受け取ったアドレスの中から、次に合成されるべきデータ単位の番号に対応するアドレスを特定する。合成部１６は次に、その特定されたアドレスと同じアドレスがいずれかのエンコーダ１５１、１５２から通知されたとき、符号化されたデータ単位をそのアドレスから読み出し、それ以前に読み出されていた他のデータ単位の配列の末尾に合成する。こうして、合成された一連の符号化されたデータ単位の順序は、編集部１３によってメモリ部２０内の入力バッファ領域ＢＩに書き込まれた順序と一致する。更に合成部１６は、合成された映像データストリームを出力部１７に出力する。
【００５５】
なお、ハードウェア・エンコーダ１５１およびソフトウェア・エンコーダ１５２が符号化方式としてクローズドＧＯＰ方式を利用して映像データをＧＯＰ単位で符号化する場合、合成部１６は、データ割振部１４から受け取った番号に加え、符号化された映像データの含むＧＯＰヘッダなどの情報に基づいて、符号化された映像データストリームを配列することもできる。また、ハードウェア・エンコーダ１５１およびソフトウェア・エンコーダ１５２によって符号化されたデータ単位は互いに予測可能ではないことが、合成部の処理が容易になる点で好ましい。
【００５６】
出力部１７は、合成された映像データストリームを所定のファイル形式又は伝送形式に整形する。出力部１７は、その映像データストリームに、符号化された映像データの復号化に必要な情報やパラメータ、その他規定された情報を加え、それらのデータストリームの全体を規定された形式に整える。出力部１７によって利用されるファイル形式又は伝送形式は、編集部１３によって設定される。出力部１７は、内部バス９０を介して任意の記録媒体、例えば内蔵ＨＤＤ３０Ａ、外付けＨＤＤ３０Ｂ、又は、内蔵ドライブ４０Ａ若しくは外付けドライブ４０Ｂに装着されたＤＶＤ１０２などに、合成された映像データストリームを書き込む。出力部１７は、合成された映像データストリームを、ネットワークインタフェースを介して接続されたデータベースや情報端末に送信することもできる。出力部１７は、合成された映像データストリームをＡＶユニット７０や入出力インタフェース５０から外部機器に出力することもできる。なお、出力部１７は、映像データストリームだけでなく、オーディオコンテンツを生成して出力することもできる。
【００５７】
図５は、本発明の実施形態１による符号化部１１のブロック図である。図５を参照するに、符号化部１１は、データ割振部１４、ハードウェア・エンコーダ１５１、ソフトウェア・エンコーダ１５２、合成部１６、出力部１７、バッファ２１を含む。バッファ２１は、データ割振部１４とハードウェア・エンコーダ１５１との間に配置されている。バッファ２１はハードウェア・エンコーダ８０に内蔵のフレームバッファ、例えば図２に示すフレームバッファ８３の記憶領域を表す。その場合、バッファ２１の容量は例えば数フレームである。バッファ２１はその他にメモリ部２０内の記憶領域であってもよい。その場合、バッファ２１の容量は例えば数十フレームである。
【００５８】
データ割振部１４は、ハードウェア・エンコーダ１５１に割り振った映像データを逐次バッファ２１に転送する。ハードウェア・エンコーダ１５１はバッファ２１の先頭アドレスから順に、映像データを所定のデータ単位ずつ、例えば１フレームずつ符号化する。
【００５９】
データ割振部１４はバッファ２１から空き情報を読み出し、その空き情報からバッファ２１の空き領域のサイズ、例えば空いているフレームバッファの数を確認する。そのサイズが所定の閾値、例えば１フレームを超えているとき、データ割振部１４は符号化対象の映像データをハードウェア・エンコーダ８０に割り振る。一方、バッファ２１の空き領域のサイズが所定の閾値以下、例えば１フレーム以下まで減ったとき、データ割振部１４は、ハードウェア・エンコーダ１５１に最後に割り振ったフレームの次に続くフレームをソフトウェア・エンコーダ１５２に割り振る。すなわち、データ割振部１４は次のフレームをバッファ２１には書き込まず、そのフレームが記憶された入力バッファ領域ＢＩ内のアドレスをソフトウェア・エンコーダ１５２に渡す。以後、バッファ２１の空き領域のサイズが閾値を再び超えるまで、データ割振部１４は符号化対象の映像データをソフトウェア・エンコーダ１５２に割り振り続ける。
【００６０】
図６は、図５に示されている符号化部１１による映像データの割り振り処理のフローチャートである。以下、図６を参照しながら、映像データの割り振り処理を説明する。なお、以下の説明では便宜上、符号化のデータ単位を１フレームとする。例えば編集部１３から符号化対象の映像データストリームが出力されると、以下の処理は開始される。
【００６１】
最初に、ステップＳ１１では、データ割振部１４は符号化対象の映像データストリームの先頭から所定数のフレーム、例えば１フレームをハードウェア・エンコーダ１５１に割り振り、バッファ２１に転送する。ハードウェア・エンコーダ１５１はバッファ２１の先頭アドレスから順に映像データを符号化し始める。
【００６２】
次いで、ステップＳ１２では、データ割振部１４はバッファ２１の空き情報から、空いているフレームバッファの数が所定の閾値以下まで減っているか否か判定する。空いているフレームバッファの数がその閾値よりも多い場合（ステップＳ１２で“Ｙｅｓ”の場合）、処理がステップＳ１３に進む。空いているフレームバッファの数がその閾値以下である場合（ステップＳ１２で“Ｎｏ”の場合）処理がステップＳ１４に進む。
【００６３】
ステップＳ１３では、データ割振部１４は符号化対象の映像データストリームの次のフレームをハードウェア・エンコーダ１５１に割り振り、そのフレームをバッファ２１に転送する。そして、処理はステップＳ１５に進む。
【００６４】
ステップＳ１４では、データ割振部１４は符号化対象の映像データストリームの次のフレームをソフトウェア・エンコーダ１５２に割り振る。そして、処理はステップＳ１５に進む。
【００６５】
次いで、ステップＳ１５では、データ割振部１４は、割り振ったフレームが符号化対象の映像データストリームの最後のフレームか否かを判定する。この判定は、例えばフレームヘッダを参照することにより可能である。そのフレームが最後でない場合（ステップＳ１５で“Ｎｏ”の場合）は処理がステップＳ１２に戻り、最後である場合（ステップＳ１５で“Ｙｅｓ”の場合）は処理が終了する。
【００６６】
実施形態１の符号化装置１００は、符号化部１１のバッファ２１の空き領域が閾値以下まで減った場合、データ割振部１４により符号化対象の映像データの一部をソフトウェア・エンコーダ１５２に割り振る。それにより、ハードウェア・エンコーダ１５１及びソフトウェア・エンコーダ１５２による符号化処理が並行して行われるので、符号化装置１００全体による符号化処理をハードウェア・エンコーダ１５１だけで行う場合よりも高速化することができる。特に、データ割振部１４は、ハードウェア・エンコーダ１５１による符号化処理待ちのフレームを一時格納するバッファ２１の空き情報を取得して、その空き情報に基づいて次のフレームの割り振り先を判定するので、ハードウェア・エンコーダ１５１を常に動作させつつ、ソフトウェア・エンコーダ１５２による符号化処理を並列して行うので、符号化装置１００は、ハードウェア・エンコーダ１５１の符号化処理速度よりも高速で符号化処理が行える。これにより、ビデオ編集システム２００の符号化処理速度が向上できる。
【００６７】
《実施形態２》
本発明の実施形態２による符号化装置１００は、実施形態１によるものと同様、ノンリニアビデオ編集システム２００に組み込まれている。ビデオ編集システム２００は、符号化部を除いて実施形態１によるものと同様である。従って、それら同様な要素の詳細については実施形態１についての説明を援用する。
【００６８】
図７は、本発明の実施形態２による符号化部１１Ａのブロック図である。図７を参照するに、符号化部１１Ａは、データ割振部１４、ハードウェア・エンコーダ１５１、ソフトウェア・エンコーダ１５２、合成部１６、出力部１７、及び割り振り割合設定部２２Ａを含む。符号化部１１Ａは、割り振り割合設定部２２Ａを除き、図３に示されている要素と同様な要素を含む。図７ではそれら同様な要素に対し、図３に示されている符号と同じ符号を付し、その詳細の説明を援用する。
【００６９】
図７を参照するに、割り振り割合設定部２２Ａは、ＣＰＵ１０が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。割り振り割合設定部２２Ａは、符号化対象の映像データストリームのうち、ハードウェア・エンコーダ１５１に割り振られるデータ単位数とソフトウェア・エンコーダ１５２に割り振られるデータ単位数との割合を設定する。割り振り割合設定部２２Ａは更に、その割合の値をユーザに選択させてもよい。すなわち、割り振り割合設定部２２Ａは、符号化部１１Ａによる符号化処理に先立ち、コンピュータ端末のディスプレイに所定の入力画面を表示し、マウスやキーボードを通してユーザから上記の割合の値を受け付ける。ユーザによって選択された割合の値は割り振り割合設定部２２Ａからデータ割振部１４に渡される。データ割振部１４は符号化対象の映像データストリームをその割合でハードウェア・エンコーダ１５１とソフトウェア・エンコーダ１５２とに割り振る。
【００７０】
例えば符号化のデータ単位が１フレームであり、ユーザが、ハードウェア・エンコーダ１５１に割り振られるフレーム数に対してソフトウェア・エンコーダ１５２に割り振られるフレーム数の割合を１／２に設定した場合を想定する。データ割振部１４はまず、符号化対象の映像データストリームの先頭フレームをソフトウェア・エンコーダ１５２に割り振る。データ割振部１４は次に、その映像データストリームの２、３番目のフレームをハードウェア・エンコーダ１５１に割り振る。データ割振部１４は更に、４番目のフレームをソフトウェア・エンコーダ１５２に割り振り、５、６番目のフレームをハードウェア・エンコーダ１５１に割り振る。データ割振部１４は以下同様に、１枚のフレームをソフトウェア・エンコーダ１５２に割り振るごとに、それに続く２枚のフレームをハードウェア・エンコーダ１５１に割り振る。
【００７１】
データ割振部１４はその他に、編集部１３がメモリ部２０に符号化対象の映像データを所定のフレーム数、例えば１５フレーム書き込むごとに、それらを３等分し、先頭の１／３、例えば１〜５番目のフレームをソフトウェア・エンコーダ１５２に割り振り、残り２／３、例えば６〜１５番目のフレームをハードウェア・エンコーダ１５１に割り振る。ソフトウェア・エンコーダ１５２が１〜５番目のフレームを符号化している間、ハードウェア・エンコーダ１５１は６〜１５番目のフレームを符号化する。
【００７２】
実施形態２の符号化装置１００は割り振り割合設定部２２Ａにより、符号化対象の映像データのうち、ハードウェア・エンコーダ１５１に割り振られるデータ単位数とソフトウェア・エンコーダ１５２に割り振られるデータ単位数との割合をユーザに選択させることができる。それにより、ユーザは、符号化部１１Ａを組み込んだビデオ編集システム２００が一連の処理全体に要した時間を見ながら、各エンコーダ１５１、１５２に単位時間当たりに割り振るデータ単位数の割合を調節できる。その結果、符号化装置１００は、その全体による符号化処理速度を、ハードウェア・エンコーダ１５１のみによる符号化処理速度よりも大きくできる。これにより、ビデオ編集システム２００の符号化処理速度が向上できる。
【００７３】
《実施形態３》
本発明の実施形態３による符号化装置１００は、実施形態１によるものと同様、ノンリニアビデオ編集システム２００に組み込まれている。そのビデオ編集システム２００は、符号化部を除いて実施形態１によるものと同様である。従って、それら同様な要素の詳細については実施形態１についての説明を援用する。
【００７４】
図８は、本発明の実施形態３による符号化部１１Ｂのブロック図である。図８を参照するに、符号化部１１Ｂは、データ割振部１４、ハードウェア・エンコーダ１５１、ソフトウェア・エンコーダ１５２、合成部１６、出力部１７、ＣＰＵ負荷推定部２３、割り振り割合設定部２２Ｂ、及び第１データベース２４を含む。符号化部１１Ｂは、ＣＰＵ負荷推定部２３、割り振り割合設定部２２Ｂ、及び第１データベース２４を除き、図３に示されている要素と同様な要素を含む。図８ではそれら同様な要素に対し、図３に示されている符号と同じ符号を付し、その詳細の説明を援用する。
【００７５】
図８を参照するに、ＣＰＵ負荷推定部２３は、ＣＰＵ１０が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。ＣＰＵ負荷推定部２３は、編集部１３による編集処理でのＣＰＵ１０の負荷を、その編集処理の内容を規定する編集情報から予測する。
【００７６】
ＣＰＵ負荷推定部２３は編集部１３による編集処理に先立ち、編集部１３から編集情報を受け取る。編集情報は、映像データの時間範囲とその時間順序や、エフェクトの内容、解像度変換に関する情報、フレームレート変換に関する情報などを含む。ＣＰＵ負荷推定部２３は編集情報に基づき、編集部１３による編集処理期間中でのタイムライン処理指数ＴＥの推移を以下のように予測する。ここで、タイムライン処理指数ＴＥは、編集部１３が１つのデータ単位の映像データを編集するのに要するＣＰＵ１０の処理量、すなわちＣＰＵ負荷指数で定義される。以下、説明の便宜上、そのデータ単位を１フレームとする。
【００７７】
ＣＰＵ負荷推定部２３はまず、編集情報に基づき、編集部１３による編集処理期間の全体を、複数の編集処理を含む期間ごとに分割する。ここで、分割された１つの期間で編集されるフレーム数が所定の閾値より小さい場合、その前後いずれかの期間に統合する。それにより、分割された各期間ではその閾値以上のフレームが編集される。
【００７８】
ＣＰＵ負荷推定部２３は次に、分割された期間ごとに並行する編集処理の種類を編集情報から特定し、特定された各種類に対応するＣＰＵ負荷指数を求める。ここで、編集処理の種類ごとにその編集処理に要するＣＰＵ１０の処理量、すなわちＣＰＵ負荷指数が予め評価され、メモリ部２０に第１データベース２４として記憶されている。
【００７９】
図９は、そのＣＰＵ負荷指数の一例を示す表である。図９を参照するに、ＡＶＣ−Ｉｎｔｒａ方式の映像データの復号処理におけるＣＰＵ負荷指数を１００として、ＣＰＵ１０の他の様々な処理に関するＣＰＵ負荷指数が評価されている。ＣＰＵ負荷推定部２３は、特定された編集処理の各種類に対応するＣＰＵ負荷指数を第１データベース２４から検索する。ＣＰＵ負荷推定部２３は更に、検索されたＣＰＵ負荷指数を分割された期間ごとに足し合わせ、各和をその分割された期間のタイムライン処理指数ＴＥとして決定する。
【００８０】
例えば編集情報が、ある期間で行われる編集処理を「ＡＶＣ−Ｉｎｔｒａ５０の素材を２つピクチャーインピクチャーで合成し、タイトルを１つ入れる」と表現している場合を想定する。ＣＰＵ負荷推定部２３はまず、その期間で並行する編集処理の種類として、「ＡＶＣ−Ｉｎｔｒａ５０の素材の復号」、「ピクチャーインピクチャーによるエフェクト処理」、及び「タイトルの付加」を特定する。ＣＰＵ負荷推定部２３は次に第１データベース２４から、特定された編集処理の各種類に対応するＣＰＵ負荷指数として１００、５、５を検索する。ＣＰＵ負荷推定部２３は更に、検索されたＣＰＵ負荷指数１００、５、５からタイムライン処理指数ＴＥを次式で決定する：ＴＥ＝１００×２＋５＋５＝２１０。ここで、ＡＶＣ−Ｉｎｔｒａ５０の素材は２フレームであるので、それらの復号処理に対するＣＰＵ負荷指数は１フレーム当たりの値１００の２倍で評価されている。
【００８１】
ＣＰＵ負荷推定部２３は、分割された各期間で編集される映像データストリームの時間範囲の開始位置を示すタイムコードを編集情報から読み取り、その期間でのタイムライン処理指数ＴＥに対応させる。こうして、編集部１３による編集処理期間中でのタイムライン処理指数ＴＥの推移が予測される。ＣＰＵ負荷推定部２３は更に、タイムライン処理指数ＴＥとタイムコードとの組み合わせを割り振り割合設定部２２Ｂに与える。
【００８２】
割り振り割合設定部２２Ｂは、ＣＰＵ１０が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。割り振り割合設定部２２Ｂは、ＣＰＵ負荷推定部２３によって予測されたＣＰＵ１０の負荷の推移、すなわちタイムライン処理指数ＴＥの推移に基づき、データ割振部１４によって両エンコーダ１５１、１５２に単位時間当たりに割り振られる映像データの割合を設定する。例えば符号化のデータ単位が１フレームであるとき、割り振り割合設定部２２Ｂは各タイムライン処理指数ＴＥに応じて、単位時間当たりにハードウェア・エンコーダ１５１に割り振られるフレーム数ＨＦとソフトウェア・エンコーダ１５２に割り振られるフレーム数ＳＦとの割合を、以下のように算定する。
【００８３】
割り振り割合設定部２２Ｂはまず、タイムライン処理指数ＴＥとタイムコードとの組み合わせをＣＰＵ負荷推定部２３から受け取る。割り振り割合設定部２２Ｂは次に、各タイムライン処理指数ＴＥに対するＣＰＵ処理能力指数ＣＥの比ＣＥ／ＴＥを求める。ＣＰＵ処理能力指数ＣＥは、編集部１３による編集処理又はソフトウェア・エンコーダ１５２による符号化処理に対してＣＰＵ１０が提供可能な単位時間当たりの処理量、例えば１フレーム周期当たりの処理量で定義される。ここで、ＣＰＵ１０は一般に、コンピュータ端末のＯＳ、データ割振部１４、合成部１６など、他のモジュールに関する処理も行う。ＣＰＵ１０の提供可能な全処理量からそれらの処理に関する処理量を除いたものがＣＰＵ処理能力指数ＣＥである。従って、比ＣＥ／ＴＥは、仮にそのタイムライン処理指数ＴＥで評価された期間中、ＣＰＵ１０が提供可能な処理量を全て同じ編集処理に提供した場合に得られる編集処理速度の最高値、すなわち単位時間当たりに同じ編集処理を実行可能なフレームの最大数ＭＦを表す。
【００８４】
割り振り割合設定部２２Ｂは更に、各最高値ＭＦをハードウェア・エンコーダ１５１による符号化処理速度、すなわちハードウェア・エンコーダ１５１が単位時間当たりに符号化可能なフレーム数ＨＦと比較する。
【００８５】
編集処理速度の最高値ＭＦがハードウェア・エンコーダ１５１による符号化処理速度ＨＦ以下であるとき、その最高値ＭＦで評価された編集処理はハードウェア・エンコーダ１５１による符号化処理より遅いと見なせる。その場合、割り振り割合設定部２２Ｂは、その編集処理期間については、ソフトウェア・エンコーダ１５２に割り振られるフレーム数ＳＦを“０”に設定し、ＣＰＵ１０への負担の増加を防ぐ。
【００８６】
編集処理速度の最高値ＭＦがハードウェア・エンコーダ１５１による符号化処理速度ＨＦを超えているとき、その最高値ＭＦで評価された編集処理はハードウェア・エンコーダ１５１による符号化処理より速いと見なせる。その場合、割り振り割合設定部２２Ｂは、その編集処理期間についてはソフトウェア・エンコーダ１５２に割り振られるフレーム数ＳＦを以下のように“０”より大きい値に設定する。これにより、両エンコーダ１５１、１５２の並列処理による符号化部１１Ｂ全体での符号化処理時間の短縮を図ることができる。
【００８７】
ハードウェア・エンコーダ１５１による符号化処理速度ＨＦはＣＰＵ１０の負荷変動に関わらず一定である。従って、割り振り割合設定部２２Ｂはまず、ハードウェア・エンコーダ１５１に単位時間当たりに割り振られるフレーム数をその符号化処理速度ＨＦに設定する。その場合、ハードウェア・エンコーダ１５１を編集部１３と並列に遅滞なく動作させるために、編集部１３に対するＣＰＵ１０の単位時間当たりの処理量を少なくとも、タイムライン処理指数ＴＥとハードウェア・エンコーダ１５１による符号化処理速度ＨＦとの積ＴＥ×ＨＦに維持するとよい。従って、ＣＰＵ処理能力指数ＣＥから上記の積ＴＥ×ＨＦを除いた残りＲＥ＝ＣＥ−ＴＥ×ＨＦを、ソフトウェア・エンコーダ１５２に対して単位時間当たりに提供可能なＣＰＵ１０の処理量の上限とみなすことができる。割り振り割合設定部２２Ｂはその上限ＲＥをタイムライン処理指数ＴＥごとに求める。なお、この上限ＲＥは、編集処理速度の最高値ＭＦとハードウェア・エンコーダ１５１による符号化処理速度ＨＦとの間の差にタイムライン処理指数ＴＥを乗じた値に等しい：ＲＥ＝ＴＥ×（ＭＦ−ＨＦ）。従って、編集処理速度の最高値ＭＦがハードウェア・エンコーダ１５１による符号化処理速度ＨＦを超えているとき、上限ＲＥは“０”より大きい。
【００８８】
一方、割り振り割合設定部２２Ｂは、ソフトウェア・エンコーダ１５２による符号化処理に要するＣＰＵ１０の単位時間当たりの処理量、すなわちソフトウェアエンコード処理指数ＳＥを各タイムライン処理指数ＴＥに加えてその和ＱＥ＝ＳＥ＋ＴＥを求める。ここで、ソフトウェアエンコード処理指数ＳＥは符号化方式ごとに異なる。第１データベース２４には、符号化方式の種類ごとに評価されたソフトウェアエンコード処理指数ＳＥが記憶されている。図９の表には、符号化処理の種類ごとにＣＰＵ負荷指数の例が示されている。これらのＣＰＵ負荷指数がソフトウェアエンコード処理指数ＳＥとして利用される。割り振り割合設定部２２Ｂは、実際に使用される符号化方式の種類に対応するソフトウェアエンコード指数ＳＥを第１データベース２４から予め検索しておく。
【００８９】
上記の和ＱＥは、タイムライン処理指数ＴＥに対応する編集処理とソフトウェアエンコード処理指数ＳＥに対応する符号化処理との並列処理に要するＣＰＵ１０の単位時間当たりの処理量を表す。従って、割り振り割合設定部２２Ｂは、各タイムライン処理指数ＴＥから得られた和ＱＥで上限ＲＥを割り、その商ＲＥ／ＱＥを、そのタイムライン処理指数ＴＥに対応するタイムコードの示す編集処理期間中、ソフトウェア・エンコーダ１５２に単位時間当たりに割り振られるフレーム数ＳＦとして設定するとよい。それにより、ソフトウェア・エンコーダ１５２が編集部１３と並列に遅滞なく動作することが期待できる。
なお、上限ＲＥは“０”より大きいので、ソフトウェア・エンコーダ１５２に割り振られるフレーム数ＳＦも“０”より大きい。
【００９０】
ここで、単位時間がフレーム周期に等しい場合でも、上記のフレーム数ＳＦとハードウェア・エンコーダ１５１による符号化処理速度ＨＦとはいずれも整数とは限らない。従って、割り振り割合設定部２２Ｂは、各タイムライン処理指数ＴＥから得られたフレーム数ＳＦとハードウェア・エンコーダ１５１による符号化処理速度ＨＦとの比ＳＦ：ＨＦを整数比ＨＦＩ：ＳＦＩで近似する。例えば、そのタイムライン処理指数ＴＥに対応するタイムコードの示す編集処理期間で編集されるフレームの総数に比べ、整数比ＨＦＩ：ＳＦＩを表す２つの整数ＨＦＩ、ＳＦＩの和ＨＦＩ＋ＳＦＩを小さく設定する。
【００９１】
割り振り割合設定部２２Ｂはデータ割振部１４に対してフレーム数ＳＦ＝０又は整数比ＨＦＩ：ＳＦＩを次のように設定する。まず、編集部１３からメモリ部２０に符号化対象の１フレームが書き込まれるごとに、データ割振部１４がそのフレームからタイムコードを読み取って割り振り割合設定部２２Ｂに渡す。割り振り割合設定部２２Ｂはそのタイムコードを、ＣＰＵ負荷推定部２３から受け取った各タイムコードと比較する。データ割振部１４からのタイムコードが、ＣＰＵ負荷推定部２３からのタイムコードより所定量だけ小さい値に達したとき、割り振り割合設定部２２Ｂは、ＣＰＵ負荷推定部２３からのタイムコードに対応するタイムライン処理指数ＴＥから得られたフレーム数ＳＦ＝０又は整数比ＨＦＩ：ＳＦＩをデータ割振部１４に与える。フレーム数ＳＦ＝０が与えられた場合、データ割振部１４はそれ以降、符号化対象のフレームを全てハードウェア・エンコーダ１５１に割り振る。一方、整数比ＨＦＩ：ＳＦＩが与えられた場合、データ割振部１４はそれ以降、ＳＦＩ枚のフレームを連続してソフトウェア・エンコーダ１５２に割り振るごとに、それに続くＨＦＩ枚のフレームを連続してハードウェア・エンコーダ１５１に割り振る。割り振り割合設定部２２Ｂからフレーム数ＳＦ＝０又は整数比ＨＦＩ：ＳＦＩが新たに入力されるまで、データ割振部１４は元の割り振り動作を継続する。
【００９２】
ここで、上記の所定量は主に、編集部１３によってメモリ部２０に書き込まれた符号化対象のフレームのタイムコードと、その書き込みに並行して編集されるフレームのタイムコードとの間の一般的な差で決まる。すなわち、前者のタイムコードから後者のタイムコードが推定されるように、上記の所定量は調節される。
【００９３】
上記とは別に、割り振り割合設定部２２Ｂが、各タイムライン処理指数ＴＥから得られたフレーム数ＳＦとハードウェア・エンコーダ１５１による符号化処理速度ＨＦとの比α＝ＨＦ：ＳＦそのものをデータ割振部１４に与えてもよい。その場合、データ割振部１４は、編集部１３からメモリ部２０内の入力バッファ領域ＢＩに符号化対象の１フレームが書き込まれるごとに、そのフレームを確率α／（１＋α）でハードウェア・エンコーダ１５１に割り振り、確率１／（１＋α）でソフトウェア・エンコーダ１５２に割り振る。
【００９４】
こうして、割り振り割合設定部２２Ｂは、データ割振部１４によって両エンコーダ１５１、１５２に割り振られる単位時間当たりのフレーム数の比ＨＦ：ＳＦをタイムライン処理指数ＴＥごとに変化させる。それにより、編集部１３による編集処理の内容に応じてＣＰＵ１０の負荷が変動しても、各エンコーダ１５１、１５２の待ち時間が十分に短く維持されたまま、符号化部１１Ｂ全体による符号化処理速度がハードウェア・エンコーダ１５１のみによる符号化処理速度ＨＦより最大（ＨＦ＋ＳＦ）／ＨＦ倍まで上がる。従って、ビデオ編集システム２００全体による処理が高速化する。
【００９５】
例えば１フレーム周期を単位時間としたときのＣＰＵ処理能力指数ＣＥが“４００”であり、ソフトウェアエンコード処理指数ＳＥが“２００”である場合、タイムライン処理指数ＴＥが２００である編集処理期間では、ソフトウェア・エンコーダ１５２のみによる符号化処理速度ＣＥ／ＱＥが“１”に等しい。一方、編集処理速度の最高値ＭＦ＝ＣＥ／ＴＥは“２”に等しい。従って、ハードウェア・エンコーダ１５１による符号化処理速度ＨＦが“１”であるとき、その値は最高値ＭＦより小さいので、データ割振部１４が両エンコーダ１５１、１５２に符号化対象の映像データをフレーム数の比ＨＦ：ＳＦ＝１：０．５＝２：１で割り振る。その結果、符号化部１１Ｂ全体による符号化処理速度がハードウェア・エンコーダ１５１のみによる符号化処理速度より最大１．５倍まで上がる。
【００９６】
なお、もしハードウェア・エンコーダ１５１による符号化処理速度ＨＦが“２”であれば、その値は編集処理速度の最高値ＭＦに等しい。従って、データ割振部１４は符号化対象の映像データをハードウェア・エンコーダ１５１のみに割り当てるとよい。編集処理速度と符号化処理速度とのバランスを保ち、ビデオ編集システム２００全体を効率的に動作させることができる。
【００９７】
一方、タイムライン処理指数ＴＥが“１００”である編集処理期間では、ソフトウェア・エンコーダ１５２のみによる符号化処理速度ＣＥ／ＱＥが“１．３３”である。そのとき、編集処理速度の最高値ＭＦ＝ＣＥ／ＴＥは“４”に等しいので、ハードウェア・エンコーダ１５１による符号化処理速度ＨＦが“１”であるとき、その値は最高値ＭＦより小さい。従って、データ割振部１４が両エンコーダ１５１、１５２に符号化対象の映像データをフレーム数の比ＨＦ：ＳＦ＝１：１で割り振る。その結果、符号化部１１Ｂ全体による符号化処理速度が、ハードウェア・エンコーダ１５１のみによる符号化処理速度よりは最大２倍まで上がり、ソフトウェア・エンコーダ１５２のみによる符号化処理速度よりは最大１．５倍まで上がる。
【００９８】
その他の例として、ＣＰＵ処理能力指数ＣＥが“４００”であり、ソフトウェアエンコード処理指数ＳＥが“１０００”である場合、タイムライン処理指数ＴＥが“２００”である編集処理期間では、ソフトウェア・エンコーダ１５２のみによる符号化処理速度ＣＥ／ＱＥが“０．３３”である。そのとき、編集処理速度の最高値ＭＦ＝ＣＥ／ＴＥは“２”に等しいので、ハードウェア・エンコーダ１５１による符号化処理速度ＨＦが“１”であるとき、その値は最高値ＭＦより小さい。従って、データ割振部１４が両エンコーダ１５１、１５２に符号化対象の映像データをフレーム数の比ＨＦ：ＳＦ＝１：０．１７＝６：１で割り振る。その結果、符号化部１１Ｂ全体による符号化処理速度が、ハードウェア・エンコーダ１５１のみによる符号化処理速度よりは最大１．１７倍まで上がり、ソフトウェア・エンコーダ１５２のみによる符号化処理速度よりは最大３．５倍まで上がる。
【００９９】
図１０は、符号化部１１Ｂによる、映像データを割り振る割合の設定処理のフローチャートである。図１０のフローチャートに従って、ＣＰＵ負荷推定部２３は編集情報に基づいてタイムライン処理指数ＴＥの推移を予測し、割り振り割合設定部２２Ｂはその推移に基づき、両エンコーダ１５１、１５２に割り振られるフレーム数の比を設定する。以下、図１０を参照しながら、その予測処理と設定処理とについて説明する。符号化部１１Ｂは編集部１３から編集情報を受け取ると、以下の処理を開始する。
【０１００】
最初に、ステップＳ２１では、ＣＰＵ負荷推定部２３は編集部１３から編集情報を受け取り、それに基づき、編集部１３による編集処理期間の全体を、並行する編集処理の種類が共通する期間に分割する。
【０１０１】
次いで、ステップＳ２２では、ＣＰＵ負荷推定部２３はまず、分割された期間ごとに編集処理の種類を編集情報から特定する。ＣＰＵ負荷推定部２３は次に、特定された各種類に対応するＣＰＵ負荷指数を第１データベース２４から検索する。ＣＰＵ負荷推定部２３は続いて、検索されたＣＰＵ負荷指数を分割された期間ごとに足し合わせ、その和をその分割された期間のタイムライン処理指数ＴＥとして決定する。ＣＰＵ負荷推定部２３は最後に、分割された各期間の開始位置を示すタイムコードを編集情報から読み取り、その期間でのタイムライン処理指数ＴＥに対応させ、タイムライン処理指数ＴＥとタイムコードとの組み合わせを割り振り割合設定部２２Ｂに渡す。
【０１０２】
次いで、ステップＳ２３では、割り振り割合設定部２２Ｂは、ＣＰＵ負荷推定部２３から受け取ったタイムライン処理指数ＴＥごとに編集処理速度の最高値ＭＦ＝ＣＥ／ＴＥを求める。
【０１０３】
次いで、ステップＳ２４では、割り振り割合設定部２２Ｂは各最高値ＭＦをハードウェア・エンコーダ１５１による符号化処理速度ＨＦと比較する。最高値ＭＦが符号化処理速度ＨＦ以下である場合（ステップＳ２４で“Ｙｅｓ”の場合）、処理がステップＳ２５に進む。最高値ＭＦが符号化処理速度ＨＦよりも大きい場合（ステップＳ２４で“Ｎｏ”の場合）、処理がステップＳ２６に進む。
【０１０４】
ステップＳ２５では、割り振り割合設定部２２Ｂは、ソフトウェア・エンコーダ１５２に割り振られるフレーム数ＳＦを“０”に設定する。そして、処理はステップＳ２８に進む。
【０１０５】
ステップＳ２６では、割り振り割合設定部２２Ｂはまず、ソフトウェア・エンコーダ１５２に対して単位時間当たりに提供可能なＣＰＵ１０の処理量の上限ＲＥ＝ＣＥ−ＴＥ×ＨＦを計算する。割り振り割合設定部２２Ｂは次に、その上限ＲＥをソフトウェアエンコード処理指数ＳＥとタイムライン処理指数ＴＥとの和ＱＥ＝ＳＥ＋ＴＥで割った値ＲＥ／ＱＥを求め、ソフトウェア・エンコーダ１５２に単位時間当たりに割り振られるフレーム数ＳＦ＝ＲＥ／ＱＥとして設定する。
【０１０６】
次いで、ステップＳ２７では、割り振り割合設定部２２Ｂは、設定されたフレーム数ＳＦとハードウェア・エンコーダ１５１による符号化処理速度ＨＦとの比ＨＦ：ＳＦを求める。一般にその比ＨＦ：ＳＦは整数比ではないので、割り振り割合設定部２２Ｂはその比ＨＦ：ＳＦを整数比ＨＦＩ：ＳＦＩで近似する。そして、処理はステップＳ２８に進む。
【０１０７】
ステップＳ２８では、割り振り割合設定部２２Ｂは、ステップＳ２５で設定されたフレーム数ＳＦ＝０、又はステップＳ２７で設定された整数比ＨＦＩ：ＳＦＩを、最高値ＭＦの算定に利用されたタイムライン処理指数ＴＥに対応するタイムコードに対応させる。
【０１０８】
次いで、ステップＳ２９では、割り振り割合設定部２２Ｂは、ＣＰＵ負荷推定部２３から受け取ったタイムライン処理指数ＴＥの中に、ステップＳ２３〜Ｓ２８の処理を受けていないものの有無を調べる。未処理のタイムライン処理指数ＴＥが残っている場合（ステップＳ２９で“Ｙｅｓ”の場合）、処理がステップＳ２３に戻る。未処理のタイムライン処理指数ＴＥが残っていない場合（ステップＳ２９で“Ｎｏ”の場合）、処理が終了する。
【０１０９】
図１１は、符号化部１１Ｂによる映像データの割り振り処理のフローチャートである。割り振り割合設定部２２Ｂとデータ割振部１４とは図１１のフローチャートに従って、両エンコーダ１５１、１５２に符号化対象の映像データストリームを割り振る。以下、図１１を参照しながら、その割り振り処理について説明する。以下の処理は、例えば編集部１３が符号化対象の映像データストリームを出力し始めたときに開始することができる。
【０１１０】
最初のステップＳ３１では、割り振り割合設定部２２Ｂは、ＣＰＵ負荷推定部２３から受け取ったタイムコードのうち、再生時間の最も早いものを目標タイムコードＴｒとして設定する。
【０１１１】
次いで、ステップＳ３２では、編集部１３からメモリ部２０内の入力バッファ領域ＢＩに符号化対象の１フレームが書き込まれたとき、データ割振部１４はそのフレームからタイムコードＴｃを読み取って割り振り割合設定部２２Ｂに渡す。
【０１１２】
次いで、ステップＳ３３では、割り振り割合設定部２２Ｂは、データ割振部１４からのタイムコードＴｃを、目標タイムコードＴｒより所定量だけ小さい値と比較する。データ割振部１４からのタイムコードＴｃがその値（Ｔｒ−所定量）以上である場合（ステップＳ３３で“Ｙｅｓ”の場合）、処理がステップＳ３４に進む。データ割振部１４からのタイムコードＴｃが値（Ｔｒ−所定量）よりも小さい場合（ステップＳ３３で“Ｎｏ”の場合）、処理がステップＳ３２に戻る。
【０１１３】
次いで、ステップＳ３４では、割り振り割合設定部２２Ｂは、目標タイムコードＴｒに対応するフレーム数ＳＦ＝０又は整数比ＨＦＩ：ＳＦＩをデータ割振部１４に与える。フレーム数ＳＦ＝０が与えられた場合は処理がステップＳ３５に進み、整数比ＨＦＩ：ＳＦＩが与えられた場合は処理がステップＳ３６に進む。
【０１１４】
ステップＳ３５では、割り振り割合設定部２２Ｂからフレーム数ＳＦ＝０又は整数比ＨＦＩ：ＳＦＩが新たに入力されるまで、データ割振部１４は、メモリ部２０内の入力バッファ領域ＢＩに記憶された符号化対象のフレームを全てハードウェア・エンコーダ１５１に与える。そして、処理はステップＳ３７に進む。
【０１１５】
ステップＳ３６では、データ割振部１４には整数比ＨＦＩ：ＳＦＩが与えられる。従って、データ割振部１４はそれ以降、ＳＦＩ枚のフレームを連続してソフトウェア・エンコーダ１５２に割り振るごとに、それに続くＨＦＩ枚のフレームを連続してハードウェア・エンコーダ１５１に割り振る。割り振り割合設定部２２Ｂからフレーム数ＳＦ＝０又は整数比ＨＦＩ：ＳＦＩが新たに入力されるまで、データ割振部１４はその割り振り動作を継続する。そして、処理はステップＳ３７に進む。
【０１１６】
ステップＳ３７では、データ割振部１４は、割り振ったフレームが符号化対象の映像データストリームの最後のフレームか否かを判定する。そのフレームが最後でない場合、（ステップＳ３７で“Ｎｏ”の場合）は処理がステップＳ３１に戻り、最後である場合（ステップＳ３７で“Ｙｅｓ”の場合）は処理が終了する。処理がステップＳ３１から繰り返される場合、その繰り返しごとに、割り振り割合設定部２２ＢによってＣＰＵ負荷推定部２３から受け取られたタイムコードが、再生時間の早いものから順に目標タイムコードＴｒとして設定される。
【０１１７】
実施形態３の符号化装置１００は、ＣＰＵ負荷推定部２３によって編集情報に基づいてタイムライン処理指数ＴＥの推移を予測し、割り振り割合設定部２２Ｂによって、両エンコーダ１５１、１５２に割り振られる単位時間当たりのフレーム数の比ＨＦ：ＳＦを、予測されたタイムライン処理指数ＴＥの推移に基づいて設定する。それにより、編集部１３による編集処理の内容に応じてＣＰＵ１０の負荷が変動しても、符号化装置１００は、各エンコーダ１５１、１５２が符号化対象のフレームの入力を待つ時間を短縮しつつ、またはその時間の発生を抑制しつつ、両エンコーダ１５１、１５２による符号化処理を並行させることができる。その結果、符号化装置１００はその全体による符号化処理を、ハードウェア・エンコーダ１５１のみによる符号化処理よりも高速にできる。これにより、ビデオ編集システム２００の符号化処理速度が向上できる。
【０１１８】
《実施形態４》
本発明の実施形態４による符号化装置１００は、実施形態１によるものと同様、ノンリニアビデオ編集システム２００に組み込まれている。ビデオ編集システム２００は、符号化部を除いて実施形態１によるものと同様である。従って、それら同様な要素の詳細については実施形態１についての説明を援用する。
【０１１９】
図１２は、本発明の実施形態４による符号化部１１Ｃのブロック図である。図１２を参照するに、符号化部１１Ｃは、データ割振部１４、ハードウェア・エンコーダ１５１、ソフトウェア・エンコーダ１５２、合成部１６、出力部１７、ＣＰＵ負荷検出部２５、割り振り割合設定部２２Ｃ、及び第２データベース２６を含む。符号化部１１Ｃは、ＣＰＵ負荷検出部２５、割り振り割合設定部２２Ｃ、及び第２データベース２６を除き、図３に示されている要素と同様な要素を含む。図１２ではそれら同様な要素に対し、図３に示されている符号と同じ符号を付し、その詳細の説明を援用する。
【０１２０】
ＣＰＵ負荷検出部２５は、ＣＰＵ１０が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。ＣＰＵ負荷検出部２５はコンピュータ端末のＯＳ２７の提供するＡＰＩを利用してＣＰＵ１０の使用率を所定の時間間隔で計測する。ＣＰＵ負荷検出部２５は更に、ＣＰＵ１０の使用率からその負荷を評価し、リアルタイムに割り振り割合設定部２２Ｃに通知する。例えばＣＰＵ負荷検出部２５は、使用率の値が取り得る全範囲０〜１００％を数段階に分け、計測された使用率がいずれの段階に属するかでＣＰＵ１０の負荷を評価する。ＣＰＵ負荷検出部２５は更に、計測されたＣＰＵ１０の使用率の属する段階が変わったときに、その変化を変化後の段階の種類と共に割り振り割合設定部２２Ｃに通知する。例えば、０〜２０％、２０〜８０％、８０〜１００％の３段階にＣＰＵ１０の使用率の段階を分けた場合を考える。計測されたＣＰＵ１０の使用率が第１段階０〜２０％から第２段階２０〜８０％に変わったときに、ＣＰＵ負荷検出部２５は、その変化が生じたことと、その変化後の段階が第２段階２０〜８０％であることとを共に割り振り割合設定部２２Ｃに通知する。
【０１２１】
割り振り割合設定部２２Ｃは、ＣＰＵ負荷検出部２５から通知された変化後の段階に応じ、両エンコーダ１５１、１５２に単位時間当たりに割り振るフレーム数の比ＨＦ：ＳＦを決める。そのフレーム数の比ＨＦ：ＳＦは使用率の段階ごとに予め評価され、メモリ部２０に第２データベース２６として記憶されている。第２データベース２６ではフレーム数の比ＨＦ：ＳＦとして整数比ＨＦＩ：ＳＦＩが記憶されている。例えば、各整数比ＨＦＩ：ＳＦＩを構成する２つの整数の和ＨＦＩ＋ＳＦＩは、ＣＰＵ１０の使用率を計測する時間間隔で編集されるフレームの総数より小さい。ＣＰＵ１０の使用率が高い段階ほどフレーム数の比ＨＦ：ＳＦが高く設定されている。すなわち、ＣＰＵ１０の負荷が重いほど、ソフトウェア・エンコーダ１５２に単位時間当たりに割り振られるフレーム数ＳＦが抑えられている。割り振り割合設定部２２Ｃは、ＣＰＵ負荷検出部２５から通知された使用率の段階に対応するフレーム数の比を第２データベース２６から検索する。割り振り割合設定部２２Ｃは更に、検索されたフレーム数の比をデータ割振部１４に渡す。それにより、データ割振部１４はその新たなフレーム数の比に従って両エンコーダ１５１、１５２に符号化対象の映像データを割り振る。
【０１２２】
図１３は、符号化部１１Ｃによる映像データの割り振り処理のフローチャートである。ＣＰＵ負荷検出部２５、割り振り割合設定部２２Ｃ、及びデータ割振部１４は、図１３のフローチャートに従って、両エンコーダ１５１、１５２に単位時間当たりに割り振られるフレーム数の比をＣＰＵ１０の使用率に応じて変化させる。以下、図１３を参照しながら、フレーム数の比の設定処理について説明する。以下の処理は、例えば編集部１３が符号化対象の映像データストリームを出力し始めたときに開始することができる。
【０１２３】
最初に、ステップＳ４１では、ＣＰＵ負荷検出部２５はＯＳ２７のＡＰＩを利用してＣＰＵ１０の使用率を計測する。
【０１２４】
次いで、ステップＳ４２では、ＣＰＵ負荷検出部２５は、計測されたＣＰＵ１０の使用率の属する段階を特定し、以前の段階と同じか否かを判断する。段階が変わった場合（ステップＳ４２で“Ｙｅｓ”の場合）は処理がステップＳ４３に進み、段階が同じ場合（ステップＳ４２で“Ｎｏ”の場合）は処理がステップＳ４１に戻る。
【０１２５】
次いで、ステップＳ４３では、ＣＰＵ負荷検出部２５は、ＣＰＵ１０の使用率の属する段階が変化したことを変化後の段階の種類と共に割り振り割合設定部２２Ｃに通知する。割り振り割合設定部２２Ｃは、通知された使用率の段階に対応するフレーム数の比を第２データベース２６から検索する。割り振り割合設定部２２Ｃは更に、検索されたフレーム数の比をデータ割振部１４に渡す。
【０１２６】
次いで、ステップＳ４４では、データ割振部１４は、新たなフレーム数の比に従って両エンコーダ１５１、１５２に符号化対象の映像データを割り振る。
【０１２７】
次いで、ステップＳ４５では、データ割振部１４は、割り振ったフレームが符号化対象の映像データストリームの最後のフレームか否かを判定する。そのフレームが最後でない場合（ステップＳ４５で“Ｎｏ”の場合）は処理がステップＳ４１に戻り、最後である場合（ステップＳ４５で“Ｙｅｓ”の場合）は処理が終了する。
【０１２８】
ステップＳ４１〜Ｓ４５のループは所定の時間間隔で繰り返される。それにより、両エンコーダ１５１、１５２に割り振られる映像データの割合が、ＣＰＵ１０の実際の負荷変動に応じて動的に調節される。
【０１２９】
実施形態４の符号化装置１００は、ＣＰＵ負荷検出部２５によってＣＰＵ１０の使用率の段階をリアルタイムで計測し、割り振り割合設定部２２Ｃによって、計測されたＣＰＵ１０の使用率の段階に合わせて、両エンコーダ１５１、１５２に割り振られる単位時間当たりのフレーム数の比ＨＦ：ＳＦを設定する。その結果、符号化装置１００は、ＣＰＵ１０の使用率、すなわち負荷の変動に関わらず、各エンコーダ１５１、１５２が符号化対象の映像データの入力を待つ時間を短縮しつつ、またはその時間の発生を抑制しつつ、両エンコーダ１５１、１５２による符号化処理を並行させることができる。従って、符号化装置１００はその全体による符号化処理を、ハードウェア・エンコーダ１５１のみによる符号化処理よりも高速にできる。これにより、ビデオ編集システム２００の符号化処理速度が向上できる。
【０１３０】
《実施形態５》
本発明の実施形態５による符号化装置１００は、実施形態１によるものと同様、ノンリニアビデオ編集システム２００に組み込まれている。そのビデオ編集システム２００は、符号化部を除いて実施形態１によるものと同様である。従って、それら同様な要素の詳細については実施形態１についての説明を援用する。
【０１３１】
図１４は、本発明の実施形態５による符号化部１１Ｄのブロック図である。図１４を参照するに、符号化部１１Ｄは、データ割振部１４、ハードウェア・エンコーダ１５１、ソフトウェア・エンコーダ１５２、合成部１６、出力部１７、ＣＰＵ負荷推定部２３、割り振り割合設定部２２Ｄ、第１データベース２４、ＣＰＵ負荷検出部２５、及び第２データベース２６を含む。符号化部１１Ｄは、図８の実施形態３の要素と、図１２の実施形態４の要素とを実質的に併せ持つ。図１４ではそれら同様な要素に対し、図８、図１２に示されている符号と同じ符号を付し、その詳細については図３、図８、及び図１２についての説明を援用する。
【０１３２】
割り振り割合設定部２２Ｄは実施形態３による割り振り割合設定部２２Ｂと同様、ＣＰＵ負荷推定部２３によって予測されたＣＰＵ１０の負荷の推移、すなわちタイムライン処理指数ＴＥの推移に基づき、データ割振部１４によって両エンコーダ１５１、１５２に単位時間当たりに割り振られる映像データの割合を設定する。
【０１３３】
割り振り割合設定部２２Ｄは更に実施形態３による割り振り割合設定部２２Ｂと同様、データ割振部１４からタイムコードが渡されるごとに、そのタイムコードをＣＰＵ負荷推定部２３から受け取った各タイムコードと比較する。その一方で、割り振り割合設定部２２ＤはＣＰＵ負荷検出部２５を通してＣＰＵ１０の使用率を監視する。ＣＰＵ１０の使用率の段階が変化するごとに、割り振り割合設定部２２Ｄは、変化後の段階に対応するＣＰＵ負荷指数を決定する。ここで、そのＣＰＵ負荷指数は使用率の段階ごとに予め評価され、第２データベース２６に記録されている。割り振り割合設定部２２Ｄは、変化後の使用率の段階に対応するＣＰＵ負荷指数を第２データベース２６から検索する。
【０１３４】
データ割振部１４からのタイムコードが、ＣＰＵ負荷推定部２３からのタイムコードより所定量だけ小さい値に達したとき、割り振り割合設定部２２Ｄは、ＣＰＵ負荷推定部２３からのタイムコードに対応するタイムライン処理指数ＴＥを、その時点でのＣＰＵ１０の使用率の段階に対応するＣＰＵ負荷指数ＬＥと比較する。タイムライン処理指数ＴＥがＣＰＵ負荷指数ＬＥより大きい場合、割り振り割合設定部２２Ｄは実施形態３による割り振り割合設定部２２Ｂと同様、そのタイムライン処理指数ＴＥから得られたフレーム数ＳＦ＝０又は整数比ＨＦＩ：ＳＦＩをデータ割振部１４に与える。一方、タイムライン処理指数ＴＥがＣＰＵ負荷指数ＬＥ以下である場合、割り振り割合設定部２２Ｄは実施形態４による割り振り割合設定部２２Ｄと同様、ＣＰＵ１０の使用率の段階に対応するフレーム数の比を第２データベース２６から検索して、データ割振部１４に渡す。こうして、ＣＰＵ１０の実際の負荷が編集情報から予測された負荷と同程度以上である場合は映像データが、編集情報に基づいて設定されたフレーム数の比ではなく、その実際の負荷に適したフレーム数の比で両エンコーダ１５１、１５２に割り振られる。それにより、ＣＰＵ１０の負荷の予測の誤りに起因するビデオ編集システム２００全体の処理速度の低下が防止される。
【０１３５】
図１５は、符号化部１１Ｄによる映像データの割り振り処理のフローチャートである。ＣＰＵ負荷推定部２３、ＣＰＵ負荷検出部２５、割り振り割合設定部２２Ｄ、及びデータ割振部１４は、図１５のフローチャートに従って、両エンコーダ１５１、１５２に単位時間当たりに割り振られるフレーム数の比を変化させる。以下、図１５を参照しながら、フレーム数の比の設定処理について説明する。なお、図１５は、図１１、図１３に示されているステップと同様なステップを含む。従って、図１５ではそれら同様なステップに対し、図１１、図１３に示されている符号と同じ符号を付す。更に、それら同様なステップの詳細については、図１１、図１３についての説明を援用する。以下の処理は、例えば編集部１３が符号化対象の映像データストリームを出力し始めたときに開始することができる。
【０１３６】
最初に、ステップＳ３１では、割り振り割合設定部２２Ｄは、ＣＰＵ負荷推定部２３から受け取ったタイムコードを再生時間の早い順に目標タイムコードＴｒとして設定する。
【０１３７】
次いで、ステップＳ３２では、割り振り割合設定部２２Ｄはデータ割振部１４からタイムコードＴｃを読み取る。
【０１３８】
次のステップＳ３３では、割り振り割合設定部２２ＤはタイムコードＴｃを、目標タイムコードＴｒより所定量だけ小さい値と比較する。タイムコードＴｃがその値（Ｔｒ−所定量）以上である場合（ステップＳ３３で“Ｙｅｓ”の場合）は処理がステップＳ５１に進む。タイムコードＴｃがその値（Ｔｒ−所定量）よりも小さい場合（ステップＳ３３で“Ｎｏ”の場合）は処理がステップＳ３２から繰り返される。
【０１３９】
ステップＳ５１では、割り振り割合設定部２２Ｄは、目標タイムコードＴｒに対応するタイムライン処理指数ＴＥを求める。
【０１４０】
次いで、ステップＳ５２では、ＣＰＵ負荷検出部２５はＯＳ２７のＡＰＩを利用してＣＰＵ１０の使用率を所定の時間間隔で計測する。ＣＰＵ負荷検出部２５は更に、計測されたＣＰＵ１０の使用率の属する段階を特定し、以前の段階と同じか否かを判断する。段階が変わった場合、ＣＰＵ負荷検出部２５は、ＣＰＵ１０の使用率の属する段階が変化したことを変化後の段階の種類と共に割り振り割合設定部２２Ｄに通知する。割り振り割合設定部２２Ｄは、通知された使用率の段階に対応するＣＰＵ負荷指数ＬＥを第２データベース２６から検索する。
【０１４１】
次いで、ステップＳ５３では、割り振り割合設定部２２Ｄはタイムライン処理指数ＴＥをＣＰＵ負荷指数ＬＥと比較する。タイムライン処理指数ＴＥがＣＰＵ負荷指数ＬＥより大きい場合（ステップＳ５３で“Ｙｅｓ”の場合）、処理がステップＳ３４に進む。それにより、実施形態３によるステップＳ３４〜Ｓ３７と同様、そのタイムライン処理指数ＴＥから得られたフレーム数ＳＦ＝０又は整数比ＨＦＩ：ＳＦＩで映像データが両エンコーダ１５１、１５２に割り振られる。一方、タイムライン処理指数ＴＥがＣＰＵ負荷指数ＬＥ以下である場合（ステップＳ５３で“Ｎｏ”の場合）、処理がステップＳ４３に進む。それにより、実施形態４によるステップＳ４３〜Ｓ４５と同様、ＣＰＵ１０の使用率の段階に対応するフレーム数の比で映像データが両エンコーダ１５１、１５２に割り振られる。
【０１４２】
実施形態５の符号化装置１００はまず、ＣＰＵ負荷推定部２３によって編集情報に基づいてタイムライン処理指数ＴＥの推移を予測し、割り振り割合設定部２２Ｄによって、両エンコーダ１５１、１５２に割り振られる単位時間当たりのフレーム数の比ＨＦ：ＳＦを、予測されたタイムライン処理指数ＴＥの推移に基づいて設定する。符号化装置１００は次に、ＣＰＵ負荷検出部２５によってＣＰＵ１０の使用率の段階をリアルタイムで計測し、割り振り割合設定部２２Ｄによって、計測されたＣＰＵ１０の使用率の段階からＣＰＵ１０の実際の負荷ＬＥを評価してタイムライン処理指数ＴＥと比較する。ＣＰＵ１０の実際の負荷ＬＥがタイムライン処理指数ＴＥよりも小さい場合、符号化装置１００は符号化対象の映像データを、タイムライン処理指数ＴＥに基づいて設定されたフレーム数の比ＨＦ：ＳＦで両エンコーダ１５１、１５２に割り振る。一方、ＣＰＵ１０の実際の負荷ＬＥがタイムライン処理指数ＴＥと同程度以上である場合、符号化装置１００は符号化対象の映像データを、ＣＰＵ１０の実際の負荷ＬＥに予め対応づけられているフレーム数の比で両エンコーダ１５１、１５２に割り振る。それにより、編集部１３による編集処理の内容から予測される負荷以上にＣＰＵ１０の負荷が変動しても、符号化装置１００は、各エンコーダ１５１、１５２が符号化対象のフレームの入力を待つ時間を短縮しつつ、またはその時間の発生を抑制しつつ、両エンコーダ１５１、１５２による符号化処理を並行させることができる。その結果、符号化装置１００はその全体による符号化処理を、ハードウェア・エンコーダ１５１のみによる符号化処理よりも高速にできる。これにより、ビデオ編集システム２００の符号化処理速度が向上できる。
【０１４３】
《実施形態６》
本発明の実施形態６による符号化装置１００は、実施形態１によるものと同様、ノンリニアビデオ編集システム２００に組み込まれている。そのビデオ編集システム２００は、符号化部を除いて実施形態１によるものと同様である。従って、それら同様な要素の詳細については実施形態１についての説明を援用する。
【０１４４】
図１６は、本発明の実施形態６による符号化部１１Ｅのブロック図である。図１６を参照するに、符号化部１１Ｅは、データ割振部１４、ハードウェア・エンコーダ１５１、ソフトウェア・エンコーダ１５２、合成部１６、出力部１７、処理速度測定部２８、及び割り振り割合設定部２２Ｅを含む。符号化部１１Ｅは、処理速度測定部２８と割り振り割合設定部２２Ｅとを除き、図３に示されている要素と同様な要素を含む。図１６ではそれら同様な要素に対し、図３に示されている符号と同じ符号を付し、その詳細については図３についての説明を援用する。
【０１４５】
処理速度測定部２８は、ＣＰＵ１０が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。処理速度測定部２８は、データ割振部１４によって各エンコーダ１５１、１５２に符号化対象のデータ単位が割り振られた時点から、そのデータ単位が符号化されて各エンコーダ１５１、１５２から合成部１６に出力された時点までの時間を計測する。具体的には、処理速度測定部２８はまず、その時間の計測を、データ割振部１４から合成部１６に、各エンコーダ１５１、１５２に割り振られたデータ単位の番号とそのデータ単位の符号化後の書き込み先のアドレスとが渡された時点から開始する。処理速度測定部２８は次にその時間の計測を、そのアドレスと同じアドレスがいずれかのエンコーダ１５１、１５２から合成部１６に出力された時点に終了する。処理速度測定部２８は更に、計測された時間から各エンコーダ１５１、１５２の符号化処理速度を算定し、割り振り割合設定部２２Ｅに渡す。処理速度測定部２８はその他に、各エンコーダ１５１、１５２から出力される映像データのビットレートを計測し、得られたビットレートから各エンコーダ１５１、１５２の符号化処理速度を算定してもよい。
【０１４６】
割り振り割合設定部２２Ｅは、ハードウェア・エンコーダ１５１による符号化処理速度ＨＦ１とソフトウェア・エンコーダ１５２による符号化処理速度ＳＦ１とに基づいて両エンコーダ１５１、１５２間での符号化処理速度の比ＨＦ１／ＳＦ１を求め、その時点で単位時間当たりにハードウェア・エンコーダ１５１とソフトウェア・エンコーダ１５２とに割り振られているフレーム数の比ＨＦ２／ＳＦ２と比べる。符号化処理速度の比ＨＦ１／ＳＦ１がフレーム数の比ＨＦ２／ＳＦ２とは異なる場合、割り振り割合設定部２２Ｅは両エンコーダ１５１、１５２に単位時間当たりに割り振るフレーム数の比として符号化処理速度の比ＨＦ１／ＳＦ１をデータ割振部１４に渡す。ここで、符号化処理速度の比は一般に整数比ではないので、割り振り割合設定部２２Ｅは符号化処理速度の比を予め整数比で近似しておく。
【０１４７】
図１７は、符号化部１１Ｅによる映像データの割り振り処理のフローチャートである。処理速度測定部２８、割り振り割合設定部２２Ｅ、及びデータ割振部１４は、図１７のフローチャートに従って、両エンコーダ１５１、１５２に単位時間当たりに割り振られるフレーム数の比を、各エンコーダ１５１、１５２による符号化処理速度の比に調節する。以下、図１７を参照しながら、その調節処理について説明する。以下の処理は、例えば編集部１３が符号化対象の映像データストリームを出力し始めたときに開始することができる。
【０１４８】
最初に、ステップＳ６１では、処理速度測定部２８は、データ割振部１４によって各エンコーダ１５１、１５２に符号化対象のデータ単位が割り振られた時点から、そのデータ単位が符号化されて各エンコーダ１５１、１５２から合成部１６に出力された時点までの時間を計測する。処理速度測定部２８は更に、計測された時間から各エンコーダ１５１、１５２の符号化処理速度を算定し、割り振り割合設定部２２Ｅに渡す。
【０１４９】
次いで、ステップＳ６２では、割り振り割合設定部２２Ｅは、処理速度測定部２８から受け取った符号化処理速度に基づいて両エンコーダ１５１、１５２間での符号化処理速度の比を求め、その比を整数比で近似する。割り振り割合設定部２２Ｅは更に、符号化処理速度の比を、その時点で両エンコーダ１５１、１５２に単位時間当たりに割り振られているフレーム数の比と比べる。符号化処理速度の比ＨＦ１／ＳＦ１がフレーム数の比ＨＦ２／ＳＦ２とは異なる場合（ステップＳ６２で“Ｙｅｓ”の場合）は処理がステップＳ６３に進む。符号化処理速度の比ＨＦ１／ＳＦ１がフレーム数の比ＨＦ２／ＳＦ２と等しい場合（ステップＳ６２で“Ｎｏ”の場合）は処理がステップＳ６１に戻る。
【０１５０】
ステップＳ６３では、割り振り割合設定部２２Ｅは、両エンコーダ１５１、１５２に単位時間当たりに割り振るフレーム数の比の新たな値として符号化処理速度の比をデータ割振部１４に渡す。
【０１５１】
次いで、ステップＳ６４では、データ割振部１４は、新たに設定されたフレーム数の比で両エンコーダ１５１、１５２に符号化対象の映像データを割り振る。
【０１５２】
次いで、ステップＳ６５では、データ割振部１４は、割り振ったフレームが符号化対象の映像データストリームの最後のフレームか否かを判定する。そのフレームが最後でない場合（ステップＳ６５で“Ｎｏ”の場合）は処理がステップＳ６１に戻り、最後である場合（ステップＳ６５で“Ｙｅｓ”の場合）は処理が終了する。ステップＳ６１〜Ｓ６５のループは所定の時間間隔で、各エンコーダ１５１、１５２から合成部１６に映像データが出力されるごとに繰り返される。
【０１５３】
実施形態６の符号化装置１００は、処理速度測定部２８によって、各エンコーダ１５１、１５２による実際の符号化処理速度を計測し、割り振り割合設定部２２Ｅによって、両エンコーダ１５１、１５２に割り振られるフレーム数の割合を、両エンコーダ１５１、１５２間での実際の符号化処理速度の比に調節する。それにより、符号化装置１００は、ＣＰＵ１０の負荷変動に伴うソフトウェア・エンコーダ１５２による符号化処理速度の変動に関わらず、合成部１６が各エンコーダ１５１、１５２によって符号化されたフレームの入力を待つ時間を短縮しつつ、またはその時間の発生を抑制しつつ、両エンコーダ１５１、１５２による符号化処理を並行させることができる。その結果、符号化装置１００はその全体による符号化処理を、ハードウェア・エンコーダ１５１のみによる符号化処理よりも高速にできる。これにより、ビデオ編集システム２００の符号化処理速度が向上できる。
【０１５４】
《実施形態７》
本発明の実施形態７による符号化装置１００は、実施形態１によるものと同様、ノンリニアビデオ編集システム２００に組み込まれている。そのビデオ編集システム２００は、符号化部を除いて実施形態１によるものと同様である。従って、それら同様な要素の詳細については実施形態１についての説明を援用する。
【０１５５】
図１８は、本発明の実施形態７による符号化部１１Ｆのブロック図である。図１８を参照するに、符号化部１１Ｆは、データ割振部１４、ハードウェア・エンコーダ１５１、ソフトウェア・エンコーダ１５２、合成部１６、出力部１７、ＣＰＵ負荷検出部２５、割り振り割合設定部２２Ｆ、処理速度測定部２８、及び第２データベース２６を含む。符号化部１１Ｆは、図１２の実施形態４による要素と図１６の実施形態６による要素を実質的に併せ持つ。図１８ではそれら同様な要素に対し、図１２及び図１６に示されている符号と同じ符号を付し、その詳細については、図３、図１２、及び図１６についての説明を援用する。
【０１５６】
割り振り割合設定部２２Ｆは、実施形態６による割り振り割合設定部２２Ｅと同様、処理速度測定部２８から受け取った符号化処理速度に基づいて両エンコーダ１５１、１５２間での符号化処理速度の比ＨＦ１／ＳＦ１を求め、その時点で両エンコーダ１５１、１５２に単位時間当たりに割り振られているフレーム数の比ＨＦ２／ＳＦ２と比べる。その一方で、割り振り割合設定部２２Ｆは、ＣＰＵ負荷検出部２５を通してＣＰＵ１０の使用率を監視する。
【０１５７】
符号化処理速度の比ＨＦ１／ＳＦ１がフレーム数の比ＨＦ２／ＳＦ２とは異なる場合、割り振り割合設定部２２Ｆは、ＣＰＵ１０の使用率の段階に対応するフレーム数の比ＨＦ３／ＳＦ３を第２データベース２６から検索する。割り振り割合設定部２２Ｆは更に、検索されたフレーム数の比ＨＦ３／ＳＦ３を符号化処理速度の比ＨＦ１／ＳＦ１と比較する。符号化処理速度の比ＨＦ１／ＳＦ１が検索されたフレーム数の比ＨＦ３／ＳＦ３より大きい場合、割り振り割合設定部２２Ｆは実施形態６による割り振り割合設定部２２Ｅと同様、両エンコーダ１５１、１５２に単位時間当たりに割り振るフレーム数の比として符号化処理速度の比ＨＦ１／ＳＦ１をデータ割振部１４に渡す。一方、符号化処理速度の比ＨＦ１／ＳＦ１が検索されたフレーム数の比ＨＦ３／ＳＦ３以下である場合、割り振り割合設定部２２Ｆは実施形態４による割り振り割合設定部２２Ｄと同様、両エンコーダ１５１、１５２に単位時間当たりに割り振るフレーム数の比として、ＣＰＵ１０の使用率の段階に対応するフレーム数の比ＨＦ３／ＳＦ３をデータ割振部１４に渡す。
【０１５８】
こうして、ＣＰＵ１０の使用率の示す負荷が両エンコーダ１５１、１５２間での符号化処理速度の比ＨＦ１／ＳＦ１の示す負荷と同程度以上である場合、割り振り割合設定部２２Ｆは符号化対象の映像データを、符号化処理速度の比ＨＦ１／ＳＦ１ではなく、使用率の示す負荷に適したフレーム数の比ＨＦ３／ＳＦ３で両エンコーダ１５１、１５２に割り振る。
【０１５９】
図１９は、符号化部１１Ｆによる映像データの割り振り処理のフローチャートである。処理速度測定部２８、ＣＰＵ負荷検出部２５、割り振り割合設定部２２Ｆ、及びデータ割振部１４は、図１９のフローチャートに従って、両エンコーダ１５１、１５２に単位時間当たりに割り振られるフレーム数の比を変化させる。以下、図１９を参照しながら、そのフレーム数の設定処理について説明する。なお、図１９は、図１７に示されているステップと同様なステップを含む。従って、図１９ではそれら同様なステップに対し、図１７に示されている符号と同じ符号を付す。更に、それら同様なステップの詳細については、図１７についての説明を援用する。以下の処理は、例えば編集部１３が符号化対象の映像データストリームを出力し始めたときに開始することができる。
【０１６０】
最初に、ステップＳ６１では、処理速度測定部２８は、各エンコーダ１５１、１５２に符号化対象のデータ単位が割り振られた時点から、符号化されたそのデータ単位が合成部１６に出力された時点までの時間に基づいて各エンコーダ１５１、１５２の符号化処理速度を算定し、割り振り割合設定部２２Ｆに渡す。
【０１６１】
次いで、ステップＳ６２では、割り振り割合設定部２２Ｆは、各エンコーダ１５１、１５２の符号化処理速度に基づいて両エンコーダ１５１、１５２間での符号化処理速度の比ＨＦ１／ＳＦ１を求め、その比を整数比で近似する。割り振り割合設定部２２Ｆは更に、符号化処理速度の比ＨＦ１／ＳＦ１が、その時点で両エンコーダ１５１、１５２に単位時間当たりに割り振られているフレーム数の比ＨＦ２／ＳＦ２とは異なる場合（ステップＳ６２で“Ｙｅｓ”の場合）は処理をステップＳ７１に進め、符号化処理速度の比ＨＦ１／ＳＦ１がフレーム数の比ＨＦ２／ＳＦ２と等しい場合（ステップＳ６２で“Ｎｏ”の場合）は処理をステップＳ６１に戻す。
【０１６２】
次いで、ステップＳ７１では、ＣＰＵ負荷検出部２５はＯＳ２７のＡＰＩを利用してＣＰＵ１０の使用率を所定の時間間隔で計測する。ＣＰＵ負荷検出部２５は更に、計測されたＣＰＵ１０の使用率の属する段階を特定し、以前の段階と同じか否かを判断する。段階が変わった場合、ＣＰＵ負荷検出部２５は、ＣＰＵ１０の使用率の属する段階が変化したことを変化後の段階の種類と共に割り振り割合設定部２２Ｆに通知する。割り振り割合設定部２２Ｆは、通知された使用率の段階に対応するフレーム数の比ＨＦ３／ＳＦ３を第２データベース２６から検索する。
【０１６３】
次いで、ステップＳ７２では、割り振り割合設定部２２Ｆは、検索されたフレーム数の比ＨＦ３／ＳＦ３を符号化処理速度の比ＨＦ１／ＳＦ１と比較する。符号化処理速度の比ＨＦ１／ＳＦ１が検索されたフレーム数の比ＨＦ３／ＳＦ３より大きい場合（ステップＳ７２で“Ｙｅｓ”の場合）、処理がステップＳ６３に進む。それにより、符号化処理速度の比ＨＦ１／ＳＦ１がデータ割振部１４に渡される。一方、符号化処理速度の比ＨＦ１／ＳＦ１が検索されたフレーム数の比ＨＦ３／ＳＦ３以下である場合（ステップＳ７２で“Ｎｏ”の場合）、処理がステップＳ７３に進む。それにより、検索されたフレーム数の比ＨＦ３／ＳＦ３がデータ割振部１４に渡される。従って、ステップＳ６４では実施形態６によるものと同様、データ割振部１４が、新たに設定されたフレーム数の比で映像データを両エンコーダ１５１、１５２に割り振る。
【０１６４】
実施形態７の符号化装置１００は、まず、処理速度測定部２８によって、各エンコーダ１５１、１５２による実際の符号化処理速度を計測し、割り振り割合設定部２２Ｆによって、両エンコーダ１５１、１５２に割り振られるフレーム数の割合を、両エンコーダ１５１、１５２間での実際の符号化処理速度の比ＨＦ１／ＳＦ１に設定する。符号化装置１００は次に、ＣＰＵ負荷検出部２５によってＣＰＵ１０の使用率の段階をリアルタイムで計測し、割り振り割合設定部２２Ｆによって、計測されたＣＰＵ１０の使用率の段階に対応するフレーム数の比ＨＦ３／ＳＦ３を符号化処理速度の比ＨＦ１／ＳＦ１と比較する。ＣＰＵ１０の使用率の段階に対応するフレーム数の比ＨＦ３／ＳＦ３が符号化処理速度の比ＨＦ１／ＳＦ１よりも小さい場合、符号化装置１００は符号化対象の映像データを符号化処理速度の比ＨＦ１／ＳＦ１で両エンコーダ１５１、１５２に割り振る。一方、ＣＰＵ１０の使用率の段階に対応するフレーム数の比ＨＦ３／ＳＦ３が符号化処理速度の比ＨＦ１／ＳＦ１と同程度以上である場合、符号化装置１００は符号化対象の映像データを、使用率の段階に対応するフレーム数の比ＨＦ３／ＳＦ３で両エンコーダ１５１、１５２に割り振る。それにより、符号化装置１００は、ＣＰＵ１０の負荷変動に伴うソフトウェア・エンコーダ１５２による符号化処理速度の変動に関わらず、合成部１６が各エンコーダ１５１、１５２によって符号化されたフレームの入力を待つ時間を短縮しつつ、またはその時間の発生を抑制しつつ、両エンコーダ１５１、１５２による符号化処理を並行させることができる。その結果、符号化装置１００はその全体による符号化処理を、ハードウェア・エンコーダ１５１のみによる符号化処理よりも高速にできる。これにより、ビデオ編集システム２００の符号化処理速度が向上できる。
【０１６５】
《実施形態８》
本発明の実施形態８による符号化装置１００は、実施形態１によるものと同様、ノンリニアビデオ編集システム２００に組み込まれている。そのビデオ編集システム２００は、符号化部を除いて実施形態１によるものと同様である。従って、それら同様な要素の詳細については実施形態１についての説明を援用する。
【０１６６】
図２０は、本発明の実施形態８による符号化部１１Ｇのブロック図である。図２０を参照するに、符号化部１１Ｇは、データ割振部１４、ハードウェア・エンコーダ１５１、ソフトウェア・エンコーダ１５２、合成部１６、出力部１７、及び切換位置検出部２９を含む。符号化部１１Ｇは、切換位置検出部２９を除き、図３に示されている要素と同様な要素を含む。図２０ではそれら同様な要素に対し、図３に示されている符号と同じ符号を付し、その詳細については図３についての説明を援用する。
【０１６７】
切換位置検出部２９は、ＣＰＵ１０が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。切換位置検出部２９は、編集部１３からメモリ部２０に書き込まれた符号化対象の映像データストリームの中からシーンの切換位置又は編集処理の種類の変更位置を検出し、その検出に応じて検出信号を生成する。
【０１６８】
切換位置検出部２９は編集部１３による編集処理に先立ち、編集部１３から編集情報を受け取る。切換位置検出部２９はその編集情報に基づき、編集部１３によって編集される映像データストリームの中から、シーンが切り替わるフレームのタイムコードを切換位置として設定し、編集対象の映像データの復号方式やエフェクト処理の内容など、編集処理の内容が切り替わるフレームのタイムコードを変更位置として設定する。
【０１６９】
編集部１３からメモリ部２０に符号化対象の１フレームが書き込まれるごとに、データ割振部１４はそのフレームからタイムコードを読み取って切換位置検出部２９に渡す。切換位置検出部２９はそのタイムコードを、各切換位置及び各変更位置を示すタイムコードと比較する。データ割振部１４からのタイムコードがいずれかの切換位置又は変更位置（以下、切換／変更位置と略記する）を示すタイムコードに一致したとき、切換位置検出部２９は検出信号をデータ割振部１４に出力する。データ割振部１４はその検出信号に応じてそのフレーム以降のフレームの出力先を、直前のフレームが出力されるエンコーダとは別のエンコーダに切り換える。
【０１７０】
なお、２つの連続する切換／変更位置の間に含まれる一連の映像データが大きい場合、切換位置検出部２９はその映像データの中から、いずれかのフレームの境目を新たな切換位置として設定してもよい。それにより、各エンコーダ１５１、１５２に割り振られる映像データ用のバッファ領域を小さく維持することができる。更に、両エンコーダ１５１、１５２の並行使用による符号化処理の高速化の確実性を高めるために、切換位置検出部２９は両エンコーダ１５１、１５２に割り振られる映像データの割合を調節するとよい。
【０１７１】
図２１は、符号化部１１Ｇによる映像データの割り振り処理のフローチャートである。切換位置検出部２９とデータ割振部１４とは、図２１のフローチャートに従って、符号化対象の映像データを切換／変更位置で両エンコーダ１５１、１５２に割り振る。以下、図２１を参照しながら、その割り振り処理について説明する。以下の処理は、例えば編集部１３が符号化対象の映像データストリームを出力し始めたときに開始することができる。
【０１７２】
最初に、ステップＳ８１では、切換位置検出部２９は編集部１３から編集情報を受け取り、その編集情報に基づき、編集部１３によって編集される映像データストリームについて、切換／変更位置を示すタイムコードを設定する。以下、各タイムコードＴｃに対し、再生時間の早い順に番号ｓｗ＝０、１、２、…、を振っておく。
【０１７３】
次いで、ステップＳ８２では、切換位置検出部２９は番号ｓｗを“０”に初期化する。
【０１７４】
次いで、ステップＳ８３では、データ割振部１４は符号化対象の映像データの出力先をハードウェア・エンコーダ１５１に初期化する。
【０１７５】
次いで、ステップＳ８４では、編集部１３がメモリ部２０に符号化対象の１フレームを書き込むごとに、データ割振部１４はそのフレームからタイムコードＴｃを読み取って切換位置検出部２９に渡す。
【０１７６】
次いで、ステップＳ８５では、切換位置検出部２９は、データ割振部１４から受け取ったタイムコードＴｃをｓｗ番目の切換／変更位置のタイムコードＴ（ｓｗ）と比較する。データ割振部１４からのタイムコードＴｃがｓｗ番目の切換／変更位置のタイムコードＴ（ｓｗ）以上である場合（ステップＳ８５で“Ｙｅｓ”の場合）、処理がステップＳ８６に進む。タイムコードＴｃがｓｗ番目の切換／変更位置のタイムコードＴ（ｓｗ）よりも小さい場合（ステップＳ８５で“Ｎｏ”の場合）、処理がステップＳ８４に戻る。その場合、データ割振部１４はタイムコードＴｃのフレームをハードウェア・エンコーダ１５１に割り振る。
【０１７７】
次いで、ステップＳ８６では、切換位置検出部２９は検出信号を生成する。データ割振部１４はその検出信号に応じ、タイムコードＴｃ以降のフレームをソフトウェア・エンコーダ１５２に割り振る。
【０１７８】
次いで、ステップＳ８７では、編集部１３がメモリ部２０に符号化対象の１フレームを書き込むごとに、データ割振部１４はそのフレームからタイムコードＴｃを読み取って切換位置検出部２９に渡す。
【０１７９】
次いで、ステップＳ８８では、切換位置検出部２９は、データ割振部１４から受け取ったタイムコードＴｃをｓｗ＋１番目の切換／変更位置のタイムコードＴ（ｓｗ＋１）と比較する。データ割振部１４からのタイムコードＴｃがｓｗ＋１番目の切換／変更位置のタイムコードＴ（ｓｗ＋１）以上である場合（ステップＳ８８で“Ｙｅｓ”の場合）、処理がステップＳ８９に進む。タイムコードＴｃがｓｗ＋１番目の切換／変更位置のタイムコードＴ（ｓｗ＋１）よりも小さい場合（ステップＳ８８で“Ｎｏ”の場合）、処理がステップＳ８７に戻る。その場合、データ割振部１４はタイムコードＴｃのフレームをソフトウェア・エンコーダ１５２に割り振る。
【０１８０】
次いで、ステップＳ８９では、切換位置検出部２９は検出信号を生成する。データ割振部１４はその検出信号に応じ、タイムコードＴｃ以降のフレームをハードウェア・エンコーダ１５１に割り振る。
【０１８１】
次いで、ステップＳ９０では、切換位置検出部２９は番号ｓｗを“２”だけインクリメントする。
【０１８２】
次いで、ステップＳ９１では、データ割振部１４は、割り振ったフレームが符号化対象の映像データストリームの最後のフレームか否かを判定する。そのフレームが最後でない場合（ステップＳ９１で“Ｎｏ”の場合）は処理がステップＳ８４から繰り返され、最後である場合（ステップＳ９１で“Ｙｅｓ”の場合）は処理が終了する。
【０１８３】
実施形態８の符号化装置１００は、切換位置検出部２９によって編集情報に基づき、符号化対象の映像データストリームについて切換／変更位置を示すタイムコードＴ（ｓｗ）を設定し、符号化対象のフレームのタイムコードＴｃが切換／変更位置のタイムコードＴ（ｓｗ）に達するごとに、そのフレームの出力先を両エンコーダ１５１、１５２に交互に切り換える。すなわち、実施形態８の符号化装置１００は符号化対象の映像データストリームを切換／変更位置で両エンコーダ１５１、１５２に割り振る。それにより、符号化装置１００は、一連のシーン、又は同じ編集処理が継続されている映像データの全体を同じエンコーダで符号化するので、その画質を実質的に均一にできる。その上、エンコーダ１５１、１５２の切換に起因する画質の変化は多少なりとも存在したとしても、切換／変更位置に限られるので、視聴者には感知されにくい。その結果、符号化装置１００は、視聴者が感じる映像データストリームの画質を均一に保ちつつ、両エンコーダ１５１、１５２による符号化処理を並行させて、符号化装置１００全体による符号化処理を、ハードウェア・エンコーダ１５１のみによる符号化処理よりも高速にできる。これにより、ビデオ編集システム２００の符号化処理速度が向上できる。
【０１８４】
本発明の実施形態による符号化部は上記の実施形態１〜実施形態８の他にも、実施形態１〜８の中から複数を組み合わせたものであってもよい。例えば、実施形態５と、実施形態７とを組み合わせてもよく、実施形態８と、実施形態２〜７のいずれかとを組み合わせてもよい。
【０１８５】
本発明の実施形態による符号化装置１００は上記のビデオ編集システム２００の他に、ビデオキャプチャーやディジタルビデオカメラにリアルタイムエンコーダとして実装されてもよい。その場合、符号化装置は、図３に示されている構成において、編集部１３に代えて入力部を含む。入力部は、ＤＶＤなどのリムーバブルディスク又はカメラから映像データを取り込む。入力部は、ネットワークインタフェースを通してネットワーク上のリソースから映像データを取り込んでもよい。入力部は、取り込まれた映像データをデータ割振部１４に渡す。なお、コンピュータ端末のＣＰＵはハードウェア・エンコーダと同じボードに実装されてもよい。
【０１８６】
なお、以上の説明に関してさらに以下の項目を開示する。
（項目１）
音声データおよび／または映像データを含むＡＶデータを符号化する符号化装置であって、
ＣＰＵと、
符号化処理用のハードウェアで構成され、前記ＡＶデータの一部を符号化するハードウェア・エンコーダと、
前記ＣＰＵを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して前記ＡＶデータの他の一部を符号化するソフトウェア・エンコーダと、
前記ＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るデータ割振部と、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたＡＶデータを所定の順序に配列して一連の符号化されたＡＶデータに合成する合成部と、
前記一連の符号化されたＡＶデータを出力する出力部と、
を備え、
前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でＡＶデータを符号化する、前記符号化装置。
（項目２）
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとによる符号化の方式は共通である、項目１に記載の符号化装置。
（項目３）
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたＡＶデータは互いに予測関係にない、項目１に記載の符号化装置。
（項目４）
前記データ割振部と前記ハードウェア・エンコーダとの間に接続され、前記データ割振部によって前記ハードウェア・エンコーダに割り振られるＡＶデータを記憶し、前記ハードウェア・エンコーダにＡＶデータを供給するバッファを更に備え、
前記データ割振部は、前記バッファの空き情報を取得し、その空き情報に基づいて前記ＡＶデータを前記ソフトウェア・エンコーダに割り振る、
項目１に記載の符号化装置。
（項目５）
前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を表すデータが前記データ割振部に供給され、
前記データ割振部が、前記データに基づいてＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目１に記載の符号化装置。
（項目６）
前記ＣＰＵは、前記ＡＶデータについて符号化処理以外の他の処理も行い、
前記他の処理による前記ＣＰＵの負荷を、前記ＡＶデータに対応させて予測するＣＰＵ負荷推定部と、
前記予測された前記ＣＰＵの負荷に応じて、前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
を更に備え、
前記データ割振部が、前記データに基づいてＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目１に記載の符号化装置。
（項目７）
前記割り振り割合設定部は、前記ＣＰＵの負荷を検出し、検出された負荷に基づいて前記割合を変更する、項目６に記載の符号化装置。
（項目８）
前記ＣＰＵの負荷を検出し、検出された負荷に応じて、前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部を更に備え、
前記データ割振部が、前記データに基づいてＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目１に記載の符号化装置。
（項目９）
前記ハードウェア・エンコーダによる符号化処理速度と前記ソフトウェア・エンコーダによる符号化処理速度とを測定する処理速度測定部と、
前記測定された符号化処理速度に応じて、前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
を更に備え、
前記データ割振部が、前記データに基づいてＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目１に記載の符号化装置。
（項目１０）
前記割り振り割合設定部は、前記ＣＰＵの負荷を検出し、検出された負荷に応じて前記割合を変更する、項目９に記載の符号化装置。
（項目１１）
前記ＡＶデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を検出し、その検出に応じて検出信号を生成する切換位置検出部を更に備え、
前記データ割振部は、前記検出信号に応じてＡＶデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換える、
項目１に記載の符号化装置。
（項目１２）
ＣＰＵと、
音声データおよび／または映像データを含むＡＶデータを編集する編集部と、
符号化処理用の回路で構成され、前記編集されたＡＶデータの一部を符号化するハードウェア・エンコーダと、
前記ＣＰＵを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して、前記編集されたＡＶデータの他の一部を符号化するソフトウェア・エンコーダと、
前記編集されたＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るデータ割振部と、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたＡＶデータを所定の順序に配列して一連の符号化されたＡＶデータに合成する合成部と、
前記一連の符号化されたＡＶデータを出力する出力部と、
を備え、
前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でＡＶデータを符号化するビデオ編集システム。
（項目１３）
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとによる符号化の方式は共通である、項目１２に記載のビデオ編集システム。
（項目１４）
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたＡＶデータは互いに予測関係にない、項目１２に記載のビデオ編集システム。
（項目１５）
前記データ割振部と前記ハードウェア・エンコーダとの間に接続され、前記データ割振部によって前記ハードウェア・エンコーダに割り振られるＡＶデータを記憶し、前記ハードウェア・エンコーダにＡＶデータを供給するバッファを更に備え、
前記データ割振部は、前記バッファの空き情報を取得し、その空き情報に基づいて前記ＡＶデータを前記ソフトウェア・エンコーダに割り振る、
項目１２に記載のビデオ編集システム。
（項目１６）
前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を表すデータが前記データ割振部に供給され、
前記データ割振部が、前記データに基づいてＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、項目１２に記載のビデオ編集システム。
（項目１７）
前記編集部は、編集対象のＡＶデータに対してユーザにより設定された編集情報を有し、
前記編集部が編集情報に基づいて編集処理を実行するときのＣＰＵの負荷を予測するＣＰＵ負荷推定部と、
前記予測された前記ＣＰＵの負荷に応じて、前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
を更に備え、
前記データ割振部は、前記データに基づいて前記ＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目１２に記載のビデオ編集システム。
（項目１８）
前記割り振り割合設定部は、前記ＣＰＵの負荷を検出し、検出された負荷に基づいて前記割合を変更する、項目１７に記載のビデオ編集システム。
（項目１９）
前記ＣＰＵの負荷を検出し、検出された負荷に応じて、前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部、
を更に備え、
前記データ割振部は、前記データに基づいて前記ＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目１２に記載のビデオ編集システム。
（項目２０）
前記ハードウェア・エンコーダによる符号化処理速度と前記ソフトウェア・エンコーダによる符号化処理速度とを測定する処理速度測定部と、
前記測定された符号化処理速度に応じて、前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
を更に備え、
前記データ割振部は、前記データに基づいて前記ＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目１２に記載のビデオ編集システム。
（項目２１）
前記割り振り割合設定部は、前記ＣＰＵの負荷を検出し、検出された負荷に応じて前記割合を変更する、項目２０に記載のビデオ編集システム。
（項目２２）
前記編集部が編集情報に基づいて編集処理を実行して得られるＡＶデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を前記編集情報から検出して、所定の検出信号を生成するフレーム切換位置検出部、を更に備え、
前記データ割振部は、前記検出信号に応じてＡＶデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換える、
項目１２に記載のビデオ編集システム。
（項目２３）
符号化処理用のハードウェアで構成され、ＡＶデータの一部を符号化するハードウェア・エンコーダと、ＣＰＵを利用して、前記ＡＶデータの他の一部を符号化するソフトウェア・エンコーダと、を使用して映像データを符号化する方法であって、
前記ＡＶデータを受信するステップと、
前記ＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るステップと、
前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダがそれぞれ割り振られたＡＶデータを符号化するステップと、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたＡＶデータを所定の順序に配列して一連の符号化されたＡＶデータに合成するステップと、
前記一連の符号化されたＡＶデータを出力するステップと、
を含み、
前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でＡＶデータを符号化する、前記方法。
（項目２４）
前記ＡＶデータを割り振るステップは、
前記ハードウェア・エンコーダに割り振られるデータをバッファに記憶させるステップと、
前記バッファから前記ハードウェア・エンコーダにＡＶデータを供給するステップと、
前記バッファの空き情報を取得するステップと、
前記バッファの空き情報に基づいて前記ＡＶデータを前記ソフトウェア・エンコーダに割り振るステップと、
を含む、項目２３に記載の方法。
（項目２５）
前記ＡＶデータを割り振るステップは、
前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を表すデータを受け取るステップと、
前記データに基づいてＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るステップと、
を含む、項目２３に記載の方法。
（項目２６）
前記符号化するステップ中に、前記ＣＰＵは前記ソフトウェア・エンコーダによる符号化以外の、前記ＡＶデータに関連づけられた他の処理も行い、
前記他の処理による前記ＣＰＵの負荷を、前記ＡＶデータに対応させて予測するステップと、
前記予測された前記ＣＰＵの負荷に応じて、前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを出力するステップと、
を更に含み、
前記ＡＶデータを割り振るステップは、前記データに基づいてＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、項目２３に記載の方法。
（項目２７）
前記ＡＶデータを割り振るステップは、前記ＣＰＵの負荷を検出し、検出された負荷に基づいて前記割合を変更するステップを更に含む、項目２６に記載の方法。
（項目２８）
前記ＡＶデータに対してユーザにより設定された編集情報に基づいて符号化対象の一連のＡＶデータに編集するステップであって、前記符号化するステップと並列して実行される、該ステップと、
前記編集するステップの編集情報に基づく編集処理を実行するときのＣＰＵの負荷を符号化対象の一連のＡＶデータに対応させて予測するステップと、
前記予測された前記ＣＰＵの負荷に応じて、前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを出力するステップと、
を更に含み、
前記ＡＶデータを割り振るステップは、前記データに基づいてＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、項目２３に記載の方法。
（項目２９）
前記ＣＰＵの負荷を検出し、検出された負荷に応じて、前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを供給するステップを更に含み、
前記ＡＶデータを割り振るステップは、前記データに基づいてＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、項目２３に記載の方法。
（項目３０）
前記ハードウェア・エンコーダによる符号化処理速度と前記ソフトウェア・エンコーダによる符号化処理速度とを測定するステップと、
測定された符号処理速度に応じて、前記ハードウェア・エンコーダに割り振られるＡＶデータと前記ソフトウェア・エンコーダに割り振られるＡＶデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを供給するステップと、
を更に備え、
前記ＡＶデータを割り振るステップは、前記データに基づいてＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るステップを含む、項目２３に記載の方法。
（項目３１）
前記ＡＶデータを割り振るステップは、前記ＣＰＵの負荷を検出し、検出された負荷に応じて前記割合を変更するステップを更に含む、項目３０に記載の方法。
（項目３２）
前記ＡＶデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を検出して、所定の検出信号を生成するステップを更に備え、
前記ＡＶデータを割り振るステップは、前記検出信号に応じてＡＶデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換えるステップを含む、項目２３に記載の方法。
（項目３３）
前記ＡＶデータに対してユーザにより設定された編集情報に基づいて符号化対象の一連のＡＶデータに編集するステップと、
前記符号化対象の一連のＡＶデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を検出して、所定の検出信号を生成するステップと、
を更に備え、
前記ＡＶデータを割り振るステップは、前記検出信号に応じてＡＶデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換えるステップを含む、項目２３に記載の方法。
（項目３４）
音声データおよび／または映像データを含むＡＶデータを符号化するプログラムであって、
ＣＰＵと、
符号化処理専用のハードウェアで構成され、ＡＶデータの一部を符号化するハードウェア・エンコーダと、
前記ＣＰＵを利用して、前記ＡＶデータの他の一部を符号化するソフトウェア・エンコーダと、
を備えた装置に、
前記ＡＶデータを受信するステップと、
前記ＡＶデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るステップと、
前記ＡＶデータに対する符号化処理を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとで並行させるステップと、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたＡＶデータを所定の順序に配列して一つの符号化ＡＶデータに合成するステップと、
前記符号化ＡＶデータを出力するステップと、
を実行させるためのプログラムであって、
前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でＡＶデータを符号化する、前記プログラム。
【図面の簡単な説明】
【０１８７】
【図１】本発明の実施形態１によるビデオ編集システム及び符号化装置の構成を示すブロック図である。
【図２】図１に示されているハードウェア・エンコーダが実装されたボードの概略的な平面図である。
【図３】本発明の実施形態によるビデオ編集システムのソフトウェア構成を示すブロック図である。
【図４】本発明の実施形態１によるビデオ編集システムに表示される編集ウィンドウの一例を示す図である。
【図５】本発明の実施形態１による符号化部のブロック図である。
【図６】図５に示されている符号化部による映像データの割り振り処理のフローチャートである。
【図７】本発明の実施形態２による符号化部のブロック図である。
【図８】本発明の実施形態３による符号化部のブロック図である。
【図９】図８に示されている第１データベースの示すＣＰＵ負荷指数の一例である。
【図１０】図８に示されている符号化部による、映像データを割り振る割合の設定処理のフローチャートである。
【図１１】図８に示されている符号化部による映像データの割り振り処理のフローチャートである。
【図１２】本発明の実施形態４による符号化部のブロック図である。
【図１３】図１２に示されている符号化部による映像データの割り振り処理のフローチャートである。
【図１４】本発明の実施形態５による符号化部のブロック図である。
【図１５】図１４に示されている符号化部による映像データの割り振り処理のフローチャートである。
【図１６】本発明の実施形態６による符号化部のブロック図である。
【図１７】図１６に示されている符号化部による映像データの割り振り処理のフローチャートである。
【図１８】本発明の実施形態７による符号化部のブロック図である。
【図１９】図１８に示されている符号化部による映像データの割り振り処理のフローチャートである。
【図２０】本発明の実施形態８による符号化部のブロック図である。
【図２１】図２０に示されている符号化部による映像データの割り振り処理のフローチャートである。
【符号の説明】
【０１８８】
１０  ＣＰＵ
１１、１１Ａ〜１１Ｇ  符号化部
１３  編集部
１４  データ割振部
１５１  ハードウェア・エンコーダ
１５２  ソフトウェア・エンコーダ
１６  合成部
１７  出力部
２２Ａ〜２２Ｆ  割り振り割合設定部
２３  ＣＰＵ負荷推定部
２５  ＣＰＵ負荷検出部
２８  処理速度測定部
１００  符号化装置
２００  ビデオ編集システム
【図１】
2011077564.tif 000003
【図２】
2011077564.tif 000004
【図３】
2011077564.tif 000005
【図４】
2011077564.tif 000006
【図５】
2011077564.tif 000007
【図６】
2011077564.tif 000008
【図７】
2011077564.tif 000009
【図８】
2011077564.tif 000010
【図９】
2011077564.tif 000011
【図１０】
2011077564.tif 000012
【図１１】
2011077564.tif 000013
【図１２】
2011077564.tif 000014
【図１３】
2011077564.tif 000015
【図１４】
2011077564.tif 000016
【図１５】
2011077564.tif 000017
【図１６】
2011077564.tif 000018
【図１７】
2011077564.tif 000019
【図１８】
2011077564.tif 000020
【図１９】
2011077564.tif 000021
【図２０】
2011077564.tif 000022
【図２１】
2011077564.tif 000023