(57)【要約】【課題】アプリケーションからのリソース要求に応じてハードウェアリソースの割り当てを行うことができるようにリソース管理を効率よく行う。【解決手段】リソース管理部は、ＳＴ１でリソース割り当てが可能であると判別したときＳＴ２で処理速度を低下させてリソースを確保するか判別する。処理速度を低下させてリソースを確保するとき、ＳＴ３〜ＳＴ５では、キューイングされているコマンドを退避して、処理中のコマンド処理の終了後に、ＳＴ６のコンフィグレーションでハードウェアリソースを割り当てる。処理速度を低下させてリソースを確保する必要がないとき、例えば空きリソースがあるときは、ＳＴ６で空きリソースを割り当てる。ＳＴ７で、割り当てたリソースに対して識別情報を設定して、完了コールバックに識別情報を付加して、リソース要求を行ったアプリケーションに送信する。【選択図】        図５
2012032873.tif 000002
【特許請求の範囲】
【請求項１】
符号化処理または復号化処理の少なくとも何れかを行うハードウェアリソースと、
リソース確保要求を受信したとき、該要求に対してハードウェアリソースの割り当てを行い、該要求に対して割り当てるハードウェアリソースがない場合にリソースの再配分を行って前記要求に対してハードウェアリソースを割り当てるリソース管理部と
を有する情報処理装置。
【請求項２】
前記リソース管理部は、前記割り当てたハードウェアリソースに対する識別情報を設定して、該識別情報を付加したリソース確保完了の応答を、前記リソース確保要求の送信元に発行する
請求項１記載の情報処理装置。
【請求項３】
前記リソース管理部は、前記識別情報が付加されたリソース解放要求を受信したとき、該リソース解放要求に付加されている識別情報に対応するハードウェアリソースを解放する
請求項２記載の情報処理装置。
【請求項４】
前記リソース管理部は、前記ハードウェアリソースを解放したときリソースの再配分を行い、解放された前記ハードウェアリソースを他の符号化処理または復号化処理に割り当てる
請求項３記載の情報処理装置。
【請求項５】
前記リソース管理部は、前記符号化処理または復号化処理を実行させるコマンドをキューイングしているとき、該コマンドを退避させてから前記リソースの再配分を行い、再配分後に前記退避しているコマンドを復帰させる
請求項４記載の情報処理装置。
【請求項６】
前記リソース管理部は、前記リソース確保要求で示された優先重み付けパラメータに基づいて、優先度の高い前記リソース確保要求に対して多くのハードウェアリソースを割り当てるように前記リソースの再配分を行う
請求項４記載の情報処理装置。
【請求項７】
符号化処理または復号化処理の少なくとも何れかを行うハードウェアリソースを有する情報処理装置におけるリソース管理において、
リソース管理部でリソース確保要求を受信したとき、該要求に対して符号化処理または復号化処理を行うハードウェアリソースの割り当てを行い、該要求に対して割り当てるハードウェアリソースがない場合にリソースの再配分を行って前記要求に対してハードウェアリソースを割り当てる手順
を具備するリソース管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置とリソース管理方法に関する。詳しくは、アプリケーションからのリソース要求に応じてハードウェアリソースの割り当てを行うことができるようにリソース管理を効率よく行う。
【背景技術】
【０００２】
従来、情報信号例えば映像データや音声データ等の記録再生処理や通信処理等において、情報信号の符号化処理や復号化処理が種々の方式を用いて行われている。
【０００３】
情報信号の符号化処理や復号化処理を行う場合、例えば特許文献１では、コンテンツデータの復号化処理に必要とされるリソースに関する情報に基づき、記録再生装置において復号化処理が可能な最適なコーデックをサーバ装置で割り出すことが行われている。また、格納されているコンテンツデータから、このコーデックで処理されたコンテンツデータを選択して記録再生装置に送信する処理が行われる。さらに、割り出された最適なコーデックを記録再生装置が備えていないときは、デコードプログラムを情報信号と共にサーバ装置から記録再生装置に送信することが行われている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３１３３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、従来のシステムでは、例えばアプリケーションを実行するホスト部、コーデック処理を行うコーデック部、コーデック部を制御するコーデック制御部が設けられている。このシステムでは、ホスト部上のアプリケーションがコーデック部のリソース数や使用状況を管理して、コーデック処理を行うときは、使用するリソースを指定するコマンドをコーデック制御部に発行してコーデック部のコンフィグレーションを行っている。このため、複数のアプリケーションからコーデック部を制御する場合、各々のアプリケーションがリソースの管理を行わなければならない。また、各々のアプリケーションがリソースの管理を行うとしても、リソースが実際にどのような状況であるか把握するには、アプリケーション間で調停を行う必要がある。このため、リソース管理を簡単に効率よく行うことができない。
【０００６】
そこで、この発明では、アプリケーションからのリソース要求に応じてハードウェアリソースの割り当てを行うことができるように、リソース管理を効率よく行える情報処理装置とリソース管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明の第１の側面は、符号化処理または復号化処理の少なくとも何れかを行うハードウェアリソースと、リソース確保要求を受信したとき、該要求に対してハードウェアリソースの割り当てを行い、該要求に対して割り当てるハードウェアリソースがない場合にリソースの再配分を行って前記要求に対してハードウェアリソースを割り当てるリソース管理部とを有する情報処理装置にある。
【０００８】
この発明においては、リソース確保要求を受信したとき、この要求に対してハードウェアリソースの割り当てを行い、要求に対して割り当てるハードウェアリソースがない場合にリソースの再配分を行って要求に対してハードウェアリソースの割り当てが行われる。ハードウェアリソースの再配分では、リソース確保要求で示された優先重み付けパラメータに基づいて、優先度の高いリソース確保要求に対して多くのハードウェアリソースが割り当てられる。また、ハードウェアリソースの再配分は、符号化処理または復号化処理を実行させるコマンドをキューイングしているとき、このコマンドを退避させてから行われて、再配分後に退避しているコマンドが復帰される。ハードウェアリソースの割り当てが行われたとき、割り当てたハードウェアリソースに対する識別情報を設定して、識別情報を付加したリソース確保完了の応答が、リソース確保要求の送信元に発行される。その後、識別情報が付加されたリソース解放要求を受信したとき、リソース解放要求に付加されている識別情報に対応するハードウェアリソースが解放される。また、ハードウェアリソースを解放したときハードウェアリソースの再配分が行われる。
【０００９】
この発明の第２の側面は、符号化処理または復号化処理の少なくとも何れかを行うハードウェアリソースを有する情報処理装置におけるリソース管理において、リソース管理部でリソース確保要求を受信したとき、該要求に対して符号化処理または復号化処理を行うハードウェアリソースの割り当てを行い、該要求に対して割り当てるハードウェアリソースがない場合にリソースの再配分を行って前記要求に対してハードウェアリソースを割り当てる手順を具備するリソース管理方法にある。
【発明の効果】
【００１０】
この発明によれば、リソース管理部でリソース確保要求を受信したとき、この要求に対してハードウェアリソースの割り当てを行い、要求に対して割り当てるハードウェアリソースがない場合にハードウェアリソースの再配分を行って要求に対してハードウェアリソースが割り当てられる。このため、リソース確保の要求側で、それぞれハードウェアリソースの状態管理を行う必要がなく、リソース管理を簡単に効率よく行うことができるようになる。
【図面の簡単な説明】
【００１１】
【図１】情報処理装置の構成を示す図である。
【図２】メモリインタフェース部の構成を示す図である。
【図３】符号化処理を行う場合の構成を示す図である。
【図４】復号化処理を行う場合の構成を示す図である。
【図５】リソース割り当て動作を示すフローチャートである。
【図６】リソース解放動作を示すフローチャートである。
【図７】リソースの遷移状態を例示した図である。
【図８】リソースの他の遷移状態を例示した図である。
【発明を実施するための形態】
【００１２】
以下、発明を実施するための形態について説明する。なお、説明は以下の順序で行う。
１．情報処理装置の構成
２．情報処理装置の動作
【００１３】
＜１．情報処理装置の構成＞
図１は、本発明の情報処理装置の構成を例示している。情報処理装置１０は、ホスト部２０とコーデック制御部３０およびコーデック部４０を有している。
【００１４】
ホスト部２０は、システム制御部２１と記憶部２２が設けられており、バス例えばＰＣＩＥｘｐｒｅｓｓ（登録商標）バス２３を介して接続されている。コーデック制御部３０は、例えばバス２３に接続される増設ボードの形態とされている。コーデック制御部３０は、バスインタフェース（Ｉ／Ｆ）部３１、メモリ部３２、メモリインタフェース（Ｉ／Ｆ）部３３、セレクタ３４、拡張ポート３５、リソース管理部３６を有している。コーデック部４０は、拡張ポート３５に接続される増設ボードの形態とされている。コーデック部４０は、符号化処理または復号化処理の少なくとも何れかを行うハードウェアリソースであり、コーデック制御部３０に対して複数接続されている。例えば図１ではｎ個のコーデック部４０-1〜４０-nが接続されている。
【００１５】
ホスト部２０のシステム制御部２１は、例えば記憶部２２に記憶されているアプリケーションを実行して、コーデック制御部３０に対してリソース要求を行う。また、リソース要求に対してハードウェアリソースの割り当てが行われたとき、例えば記憶部２２に記憶されているコーデック処理前のデータをコーデック制御部３０に供給して、コーデック部４０でコーデック処理を実行させる。また、システム制御部２１は、コーデック制御部３０から供給されたコーデック処理後のデータを例えば記憶部２２に記憶させる。
【００１６】
記憶部２２は、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等を用いて構成されている。記憶部２２は、システム制御部２１で実行される種々のアプリケーションのソフトウェア、アプリケーションで用いられる種々のデータ、例えばコーデック処理前のデータを記憶する。また、記憶部２２は、アプリケーションを実行したことにより得られた種々のデータ、例えばコーデック処理後のデータを記憶する。
【００１７】
コーデック制御部３０のバスインタフェース部３１は、バス２３を介してホスト部２０とコーデック制御部３０を接続するためのインタフェースである。バスインタフェース部３１は、例えばシステム制御部２１とリソース管理部３６との間でコマンドの送受信や、記憶部２２とメモリ部３２との間でコーデック処理前のデータやコーデック処理後のデータの送受信を行えるようにする。
【００１８】
メモリ部３２は、ホスト部２０から供給されたコーデック処理前のデータや、コーデック部４０から供給されたコーデック処理後のデータを記憶する。
【００１９】
メモリインタフェース部３３は、リソース管理部３６の制御のもと、メモリ部３２からコーデック処理前のデータの読み出しと、メモリ部３２にコーデック処理後のデータを書き込む。メモリインタフェース部３３は、コーデック処理を高速化するため複数のコーデック部４０-1〜４０-nを用いて並列にコーデック処理を行うとき、メモリ部３２からコーデック処理前のデータを分割して読み出してセレクタ３４に供給する。また、メモリインタフェース部３３は、セレクタ３４から供給されたコーデック処理後のデータをメモリ部３２に書き込む。なお、メモリインタフェース部３３は、コーデック処理前のデータを分割して読み出す際に、リソース要求に応じて割り当てたコーデック部の数に対応させてデータの分割を行う。
【００２０】
セレクタ３４は、リソース管理部３６の制御のもと、複数のコーデック部４０-1〜４０-nからリソース要求に応じて割り当てたコーデック部を選択する。セレクタ３４は、メモリインタフェース部３３から供給されたコーデック処理前の分割後のデータを、選択したコーデック部に供給する。また、セレクタ３４は、選択したコーデック部で生成されたコーデック処理後のデータをメモリインタフェース部３３に供給する。
【００２１】
拡張ポート３５は、コーデック制御部３０に１または複数のコーデック部を接続するためのインタフェースである。
【００２２】
リソース管理部３６は、ＣＰＵ(Central Processing Unit)やメモリで構成されている。リソース管理部３６は、ＣＰＵでプログラムを実行して、システム制御部２１からのリソース要求コマンドに応じてハードウェアリソースの割り当てと、リソース解放コマンドに応じてハードウェアリソースの解放を行う。また、リソース管理部３６は、割り当てたハードウェアリソースを用いて、システム制御部２１からのコーデックコマンドに応じて符号化処理や復号化処理を行わせる。さらに、リソース管理部３６は、メモリを利用して、後述するようにテーブルの記憶とキューイングされているコマンドの退避等を行う。
【００２３】
コーデック部４０-1〜４０-nは、コーデックプロセッサ等を用いて構成されている。コーデック部４０-1〜４０-nにおいて、リソース要求に応じて割り当てられたコーデック部は、コーデック制御部３０から供給されたコーデック処理前のデータを用いてコーデック処理を行う。例えばコーデック部は、ビデオデータの符号化を行い圧縮ビデオデータを生成する処理や、圧縮ビデオデータの復号化を行いビデオデータを生成する処理を行う。
【００２４】
図２は、メモリインタフェース部３３の構成を示している。メモリインタフェース部３３は、符号化処理を行うときに用いられる第１モジュール３３１と、復号化処理を行うときに用いられる第２モジュール３３２を有している。ｎ個のコーデック部４０-1〜４０-nが設けられる場合、第１モジュール３３１は、ｎ個のビデオリードモジュール３３１Ｒ-1〜３３１Ｒ-nと、ｎ個の圧縮ビデオライトモジュール３３１Ｗ-1〜３３１Ｗ-nで構成されている。また、第２モジュール３３２は、ｎ個の圧縮ビデオリードモジュール３３２Ｒ-1〜３３２Ｒ-nと、ｎ個のビデオライトモジュール３３２Ｗ-1〜３３２Ｗ-nで構成されている。
【００２５】
ビデオリードモジュール３３１Ｒ-1〜３３１Ｒ-nは、メモリ部３２に記憶されている符号化処理前のビデオデータを分割して読み出すためのモジュールである。また、圧縮ビデオライトモジュール３３１Ｗ-1〜３３１Ｗ-nは、分割して読み出されたデータの符号化処理後の圧縮ビデオデータをメモリ部３２に書き込むためのモジュールである。ビデオリードモジュールと圧縮ビデオライトモジュールは、リソース要求に対して割り当てられたコーデック部と等しい数だけ用いられて符号化処理が行われる。なお、ビデオデータの分割は、フレーム単位またはスライス単位とすることで、分割単位で符号化処理におけるイントラ予測またはインター予測を行うことができる。
【００２６】
圧縮ビデオリードモジュール３３２Ｒ-1〜３３２Ｒ-nは、メモリ部３２に記憶されている復号化処理前の圧縮ビデオデータを分割して読み出すためのモジュールである。また、ビデオライトモジュール３３２Ｗ-1〜３３２Ｗ-nは、分割して読み出された圧縮ビデオデータの復号化処理後のビデオデータをメモリ部３２に書き込むためのモジュールである。圧縮ビデオリードモジュールとビデオライトモジュールは、リソース要求に対して割り当てられたコーデック部と等しい数だけ用いられて復号化処理が行われる。なお、圧縮ビデオデータの分割は、圧縮ビデオデータに含まれている画像サイズ情報や、マクロブロックの大きさ等を示すマクロブロック情報等からフレームの先頭位置やラインの先頭位置を判別して、判別結果に基づいて圧縮ビデオデータの分割を行う。このようにすれば、圧縮ビデオデータを予測単位で分割することができる。
【００２７】
図３は、符号化処理を行う場合の構成を示している。なお、図３では、２つのコーデック部４０-2，４０-3が割り当てられている場合を示している。コーデック部４０-1，４０-2を用いて符号化処理を行う場合、ビデオリードモジュール３３１Ｒ-1，３３１Ｒ-2と圧縮ビデオライトモジュール３３１Ｗ-1，３３１Ｗ-2を用いる。ビデオリードモジュール３３１Ｒ-1，３３１Ｒ-2は、メモリ部３２に記憶されている符号化対象のビデオデータをフレーム単位等で２分割して読み出してセレクタ３４に出力する。セレクタ３４は、ビデオリードモジュール３３１Ｒ-1で読み出されたビデオデータをコーデック部４０-1、ビデオリードモジュール３３１Ｒ-2で読み出されたビデオデータをコーデック部４０-2に供給する。また、セレクタ３４は、コーデック部４０-1で生成された符号化処理後の圧縮ビデオデータを圧縮ビデオライトモジュール３３１Ｗ-1、コーデック部４０-2で生成された符号化処理後の圧縮ビデオデータを圧縮ビデオライトモジュール３３１Ｗ-2に供給する。圧縮ビデオライトモジュール３３１Ｗ-1，３３１Ｗ-2は、セレクタ３４から供給された圧縮ビデオデータをメモリ部３２に書き込む。
【００２８】
図４は、復号化処理を行う場合の構成を示している。なお、図４においても、２つのコーデック部４０-1，４０-2が割り当てられている場合を示している。コーデック部４０-1，４０-2を用いて復号化処理を行う場合、圧縮ビデオリードモジュール３３２Ｒ-1，３３２Ｒ-2とビデオライトモジュール３３２Ｗ-1，３３２Ｗ-2を用いる。圧縮ビデオリードモジュール３３２Ｒ-1，３３２Ｒ-2は、メモリ部３２に記憶されている復号化対象の圧縮ビデオデータをフレーム単位等で２分割して読み出してセレクタ３４に出力する。セレクタ３４は、圧縮ビデオリードモジュール３３２Ｒ-1で読み出された圧縮ビデオデータをコーデック部４０-1、圧縮ビデオリードモジュール３３２Ｒ-2で読み出された圧縮ビデオデータをコーデック部４０-2に供給する。また、セレクタ３４は、コーデック部４０-1で生成された復号化処理後のビデオデータをビデオライトモジュール３３２Ｗ-1、コーデック部４０-2で生成された復号化処理後のビデオデータをビデオライトモジュール３３２Ｗ-2に供給する。ビデオライトモジュール３３２Ｗ-1，３３２Ｗ-2は、セレクタ３４から供給されたビデオデータをメモリ部３２に書き込む。
【００２９】
＜２．情報処理装置の動作＞
リソース管理部３６は、システム制御部２１上のアプリケーションからリソースの要求が行われたとき、リソースの状態を考慮してハードウェアリソースの割り当てを行う。なお、情報処理装置１０におけるハードウェアリソースとは、符号化処理または復号化処理の少なくとも何れかを行うコーデック部４０を示している。
【００３０】
システム制御部２１上のアプリケーションでは、リソース要求コマンド、リソース解放コマンド、コーデックコマンドが用意されている。リソース要求コマンドは、符号化処理のためのリソース要求である符号化リソース要求コマンド（以下「OpenEnc」と記述）と、復号化処理のためのリソース要求である復号化リソース要求コマンド（以下「OpenDec」と記述）の二種類のコマンドが用意されている。リソース解放コマンドは、符号化処理で用いたリソースを解放する符号化リソース解放コマンド（以下「CloseEnc」と記述）と、復号化処理で用いたリソースを解放する復号化リソース解放コマンド（以下「CloseDec」と記述）の二種類のコマンドが用意されている。コーデックコマンドは、符号化処理を行う符号化コマンド（以下「EncCmd」と記述）と、復号化処理を行う復号化コマンド（以下「DecCmd」と記述）の二種類のコマンドが用意されている。
【００３１】
システム制御部２１上のアプリケーションは、符号化処理または復号化処理を行うとき、ハードウェアリソースを確保するため、リソース要求コマンド（OpenEncまたはOpenDec）を発行する。次に、アプリケーションは、符号化処理や復号化処理を行うコーデックコマンド（EncCmdまたはDecCmd）を発行する。その後、割り当てられたハードウェアリソースでコーデックコマンドに応じた処理を完了したときは、ハードウェアリソースを解放するため、リソース解放コマンド（CloseEncまたはCloseDec）を発行する。
【００３２】
リソース要求コマンドでは、圧縮ビデオフォーマット、非圧縮ビデオフォーマット、符号化処理の優先度や復号化処理の優先度を表す優先重み付けパラメータの指定が可能とされている。例えば符号化リソース要求コマンド（OpenEnc）では、圧縮ビデオフォーマットと符号化処理の優先度の指定が可能とされている。また、復号化リソース要求コマンド（OpenDec）では、非圧縮ビデオフォーマットと復号化処理の優先度の指定が可能とされている。
【００３３】
リソース管理部３６は、システム制御部２１上のアプリケーションからリソース要求コマンドが発行されたとき、ビデオフォーマットや優先重み付けパラメータに基づいてハードウェアリソースの割り当てを行う。例えば、ビデオフォーマットは、１つのコーデック部を用いることで１倍速の符号処理または復号化処理が可能であり、６つのコーデック部を用いることで６倍速の符号処理または復号化処理が可能なフォーマットとする。また、優先重み付けパラメータが等しい符号化リソース要求コマンド（OpenEnc）と復号化リソース要求コマンド（OpenDec）が発行されたとする。この場合、リソース管理部３６は、３倍速の符号化処理と３倍速の復号化処理が可能になるようコンフィグレーションを行う。
【００３４】
また、リソース管理部３６は、優先重み付けパラメータが異なる場合、優先度が高い要求に対してハードウェアリソースを多く割り当てて、優先度の高い処理を高速に行えるようにする。さらに、リソース管理部３６は、ハードウェアリソースの下限は１倍速のコーデック処理として、１倍速未満（処理時間がリアルタイム未満）のコーデック処理とならないように、ビデオフォーマットに基づいてコンフィグレーションを行う。例えば、符号化処理や復号化処理の負荷が大きいビデオフォーマットであるため、１倍速のコーデック処理に２つのコーデック部を必要とする場合、２つ以上のコーデック部の割り当てを行う。
【００３５】
また、リソース管理部３６は、ハードウェアリソースの割り当てが可能であるか否かの判断時に必要なパラメータ、また割り当て後に管理するパラメータとして以下のようなパラメータＰ１，Ｐ２をテーブル化してリソース管理部３６のメモリに登録する。
【００３６】
Ｐ１．ハードウェアリソース全体を管理するためのパラメータ
ハードウェアリソースの処理能力
符号化／復号化の優先重み付け
Ｐ２．各ハードウェアリソースを管理するためのパラメータ
各符号化，復号化リソースのビデオフォーマット
割り当てたハードウェアリソースに対してユニークな識別情報
各ハードウェアリソースで使用するメモリインタフェース部のモジュール
【００３７】
図５は、リソース割り当て動作を示すフローチャートである。ステップＳＴ１でリソース管理部３６は、リソース割り当てが可能か否か判別する。リソース管理部３６は、例えばシステム制御部２１のアプリケーションからリソース要求コマンド（OpenEncまたはOpenDec）を受信したとき、ビデオフォーマットや優先重み付けパラメータに基づいてハードウェアリソースの割り当てを行ったときの処理速度から、リソース割り当てが可能か否か判別する。リソース管理部３６は、ビデオフォーマットや優先重み付けパラメータに基づいてハードウェアリソースの割り当てを行ったときの各コーデック処理が１倍速以上であるとき、ハードウェアリソースの割り当てが可能であると判断してステップＳＴ２に進む。また、リソース管理部３６は、コーデック処理が１倍速未満となるときハードウェアリソースを割り当てることができないと判別してステップＳＴ１０に進む。
【００３８】
ステップＳＴ２でリソース管理部３６は、処理速度を低下させてリソースを確保するか判別する。リソース管理部３６は、再度コンフィグレーションを行い、既に割り当てられているコーデック部の数を削減して処理速度を低下させることにより新たなリソース要求に対してハードウェアリソースの割り当てを行う場合（但し、処理速度は１倍速以上）ステップＳＴ３に進む。また、リソース管理部３６は、例えば使用していないハードウェアリソースがあるとき、このハードウェアリソースをリソース要求コマンドに応じて割り当てることで、処理速度を低下させる必要がない場合にステップＳＴ６に進む。
【００３９】
ステップＳＴ３でリソース管理部３６は、再度コンフィグレーションを行うハードウェアリソースに対して、コーデックコマンドがキューイングされているか否か判別する。リソース管理部３６は、コーデックコマンドがキューイングされているときステップＳＴ４に進み、キューイングされていないときはステップＳＴ５に進む。
【００４０】
ステップＳＴ４でリソース管理部３６は、コーデックコマンドを退避させる。リソース管理部３６は、キューイングされているコーデックコマンドをバッファに退避させてステップＳＴ５に進む。
【００４１】
ステップＳＴ５でリソース管理部３６は、コーデックコマンドの処理中であるか否か判別する。リソース管理部３６は、再度コンフィグレーションを行うハードウェアリソースがコーデックコマンドの処理中であるときステップＳＴ５に戻り、処理が終了したときステップＳＴ６に進む。
【００４２】
ステップＳＴ６でリソース管理部３６は、コンフィグレーションを実行する。リソース管理部３６は、再度コンフィグレーションを行う場合、ビデオフォーマットや優先重み付けパラメータに基づいて処理速度を低下させて、リソース要求コマンドに対するハードウェアリソースの割り当てを行う。また、リソース管理部３６は、使用されていないハードウェアリソースがあるとき、このハードウェアリソースの割り当てを行う。
【００４３】
リソース管理部３６は、リソース要求コマンドが符号化リソース要求コマンド（OpenEnc）であるとき、例えばハードウェアリソースの割り当てに対応させて以下の設定等を行う。
【００４４】
ＳＡ１．コーデック制御部３０とコーデック部４０のＩ／Ｏ設定
ＳＡ２．メモリインタフェース部３３におけるビデオリードモジュールと圧縮ビデオライトモジュールの設定
ＳＡ３．セレクタ３４の設定
ＳＡ４．コーデック部に対して符号化モードへの初期化コマンドを発行
ＳＡ５．複数のコーデック部を使った符号化処理が可能な場合、非圧縮ビデオにおいてどの部分を符号化処理するかを知らせるためのコマンドを各コーデック部へ発行
また、リソース管理部３６は、リソース要求コマンドが復号化リソース要求コマンド（OpenDec）であるとき、例えばハードウェアリソースの割り当てに対応させて以下の設定等を行う。
【００４５】
ＳＢ１．コーデック制御部３０とコーデック部４０のＩ／Ｏ設定
ＳＢ２．メモリインタフェース部３３における圧縮ビデオリードモジュールとビデオライトモジュールの設定
ＳＢ３．セレクタ３４の設定
ＳＢ４．コーデック部に対して復号化モードへの初期化コマンドを発行
ＳＢ５．複数のコーデック部を使った復号化処理が可能な場合、圧縮ビデオにおいてどの部分を復号化処理するかを知らせるためのコマンドを各コーデック部へ発行
【００４６】
このように、リソース管理部３６は、リソース要求コマンドに応じてコンフィグレーションを行ってハードウェアリソースの割り当てを行いステップＳＴ７に進む。
【００４７】
ステップＳＴ７でリソース管理部３６は、完了コールバックを行う。リソース管理部３６は、リソース要求に対する完了コールバックをシステム制御部２１に返してステップＳＴ８に進む。リソース管理部３６は、完了コールバックにリソースＩＤ（リソース要求コマンドに対してユニークなＩＤ）を付加してシステム制御部２１に送信する。また、リソース管理部３６は、リソースＩＤとコンフィグレーション情報を対として例えばテーブルに登録する。このため、システム制御部２１のアプリケーションからリソースＩＤを付加したコーデックコマンド（DecCmdまたはEncCmd）を発行することで、テーブルの情報に基づきリソースＩＤに対応したハードウェアリソースを用いて符号化処理や復号化処理が可能となる。また、リソースＩＤを付加したリソース解放コマンドを発行することで、リソースＩＤに対応したハードウェアリソースを解放することができる。
【００４８】
ステップＳＴ８でリソース管理部３６は、コーデックコマンドが退避されているか否か判別する。リソース管理部３６は、ステップＳＴ４でコーデックコマンドをバッファに退避させたときステップＳＴ９に進み、コーデックコマンドを退避させていないとき処理を終了する。
【００４９】
ステップＳＴ９でリソース管理部３６は、退避されているコーデックコマンドをコマンドキューに移動して処理を終了する。リソース管理部３６は、退避されているコーデックコマンド例えば符号化コマンド（EncCmd）や復号化コマンド（DecCmd）をコマンドキューに移動する。
【００５０】
また、ステップＳＴ１からステップＳＴ１０に進むと、リソース管理部３６は、コンフィグレーション失敗コールバックをシステム制御部２１に返して処理を終了する。
【００５１】
このようなリソース割り当て動作を行うと、リソース確保要求を受信したとき、要求に対して割り当てるハードウェアリソースがない場合にはリソースの再配分が行われて、要求に対してハードウェアリソースの割り当てが行われる。したがって、システム制御部２１のアプリケーションは、リソース管理を行う必要がなく、リソース確保要求を行うだけハードウェアリソースを確保できるようになる。
【００５２】
さらに、アプリケーションは、リソースの使用状況等を把握しなくても、リソース管理部３６でリソースの使用状況等が管理されるので、複数アプリケーションからのリソース要求に容易に対応できる。
【００５３】
システム制御部２１のアプリケーションでは、リソース管理部３６からのコールバックに応じて、その後の処理を行う。例えば、コンフィグレーション失敗コールバックがリソース管理部３６から供給されたとき、システム制御部２１のアプリケーションはハードウェアリソースが確保できないため符号化処理や復号化処理を終了する。また、リソースＩＤが付加された完了コールバックがリソース管理部３６から供給されたとき、システム制御部２１のアプリケーションは、リソースＩＤを符号化コマンドや復号化コマンドに付加して発行する。したがって、情報処理装置１０では、リソースＩＤに対応して割り当てられているハードウェアリソースを使用して符号処理や復号化処理が行われる。
【００５４】
符号化処理や復号化処理が完了してハードウェアリソースの解放を行う場合、システム制御部２１は、リソース解放コマンド（CloseEncまたはCloseDec）にリソースＩＤを付加して発行する。リソース管理部３６は、システム制御部２１から供給されたリソース解放コマンドに付加されているリソースＩＤに基づき、解放するハードウェアリソースを判別してリソース解放動作を行う。
【００５５】
図６は、リソース解放動作を示すフローチャートである。ステップＳＴ２１でリソース管理部３６は、テーブル情報の削除を行う。リソース管理部３６は、ハードウェアリソースの解放によって不要となるテーブル情報、すなわちリソース解放コマンドに付加されたリソースＩＤと、このリソースＩＤに対応するハードウェアリソースを示す情報をテーブルから削除してステップＳＴ２２に進む。
【００５６】
ステップＳＴ２２でリソース管理部３６は、解放するリソースの再割り当てを行うか判別する。リソース管理部３６は、システム制御部２１のアプリケーションからリソース解放コマンド（CloseEncまたはCloseDec）を受信した場合、解放するハードウェアリソースを除く他のリソースが、他のアプリケーションから要求されたリソース数であるとき、再割り当ての必要がないと判別してステップＳＴ２６に進む。また、リソース管理部３６は、再コンフィグレーションを行い解放するハードウェアリソースを他のコーデック処理のリソースとして使用するとき、例えば解放されたハードウェアリソースを利用することで処理速度を高めるとき、ステップＳＴ２３に進む。
【００５７】
ステップＳＴ２３でリソース管理部３６は、再コンフィグレーションを行うハードウェアリソースに対して、コーデックコマンドがキューイングされているか否か判別する。リソース管理部３６は、コーデックコマンドがキューイングされているときステップＳＴ２４に進み、キューイングされていないときはステップＳＴ２５に進む。
【００５８】
ステップＳＴ２４でリソース管理部３６は、キューイングされているコーデックコマンドをバッファに退避させてステップＳＴ２５に進む。
【００５９】
ステップＳＴ２５でリソース管理部３６は、再コンフィグレーションを行うハードウェアリソースがコーデックコマンドの処理中であるか否か判別する。リソース管理部３６は、処理中であるときステップＳＴ２５に戻り、処理が終了したときステップＳＴ２６に進む。
【００６０】
ステップＳＴ２６でリソース管理部３６は、コンフィグレーションを実行する。リソース管理部３６は、コンフィグレーションを行い、ビデオフォーマットや優先重み付けパラメータに基づいてハードウェアリソースの再割り当てやハードウェアリソースの解放を行う。また、リソース管理部３６は、例えばハードウェアリソースの再割り当てや解放に対応させて以下の設定等を行う。
【００６１】
ＳＣ１．コーデック制御部３０とコーデック部４０のＩ／Ｏ設定
ＳＣ２．メモリインタフェース部３３におけるビデオリードモジュール（圧縮ビデオリードモジュール）と圧縮ビデオライトモジュール（ビデオライトモジュール）の設定
ＳＣ３．おけるセレクタ３４の設定
ＳＣ４．コーデック部に対して符号化モード（復号化モード）への初期化コマンドを発行
ＳＣ５．複数のコーデック部を使った符号化処理（復号化処理）が可能な場合、非圧縮ビデオ（圧縮ビデオ）においてどの部分を符号化処理（復号化処理）するかを知らせるためのコマンドを各コーデック部へ発行
【００６２】
このように、リソース管理部３６は、コンフィグレーションを行ってステップＳＴ２７に進む。
【００６３】
ステップＳＴ２７でリソース管理部３６は、完了コールバックを行う。リソース管理部３６は、リソース要求に対する完了コールバックをシステム制御部２１に返してステップＳＴ２８に進む。
【００６４】
ステップＳＴ２８でリソース管理部３６は、コーデックコマンドが退避されているか否か判別する。リソース管理部３６は、ステップＳＴ２４でコーデックコマンドをバッファに退避させたときステップＳＴ２９に進み、コーデックコマンドを退避させていないとき処理を終了する。
【００６５】
ステップＳＴ２９でリソース管理部３６は、退避されているコーデックコマンドをコマンドキューに移動して処理を終了する。リソース管理部３６は、退避されているコーデックコマンド例えば符号化コマンド（EncCmd）や復号化コマンド（DecCmd）をコマンドキューに移動して処理を終了する。
【００６６】
このようなリソース解放動作を行うと、リソース解放コマンドを受信したとき、リソース解放コマンドで示された識別情報に対応したハードウェアリソースが解放される。したがって、他のアプリケーションで使用されているハードウェアリソースが解放されてしまうことがない。さらに、ハードウェアリソースが解放されたとき、リソースの再配分が行われるので、ハードウェアリソースを有効に利用してコーデック処理を行うことができるようになる。
【００６７】
次に、リソースの遷移状態について具体例を図７と図８に示す。図７および図８は、リソースとして６つのコーデック部４０-1〜４０-6が用いられる。また、１つのコーデック部を用いることで、１倍速の符号化処理または復号化処理が可能とする。さらに、受信したコマンドにおいて、（id1），（id2）はリソースＩＤを示している。また、（w2），（w4），（w6）は優先重み付けパラメータを示しており、数値が大きいほど優先度が高いことを示している。
【００６８】
図７において、リソース管理部３６は、システム制御部２１のアプリケーションから符号化処理のための符号化リソース要求コマンド（OpenEnc（w4））が供給されたとき、図５に示すリソース割り当て動作を行い、ハードウェアリソースを割り当てる。例えば、リソース管理部３６は、符号化リソース要求コマンド（OpenEnc（w4））に対して、ハードウェアリソースとしてコーデック部４０-1〜４０-6を割り当てて、リソースＩＤ（＝１）を付加した完了コールバックをシステム制御部２１に返す。したがって、システム制御部２１は、リソースＩＤを付加して符号化コマンド（EncCmd（id1））を発行することで、符号化処理Ｅｎｃ１を６倍速で行うことができる。
【００６９】
リソース管理部３６は、システム制御部２１のアプリケーションから復号化リソース要求コマンド（OpenDec（w2））が供給されたとき、リソース割り当て動作を行い、ハードウェアリソースを割り当てる。復号化リソース要求コマンド（OpenDec（w2））の優先重み付けパラメータは、先の符号化リソース要求コマンド（OpenEnc（w4））よりも優先度が低い。したがって、リソース管理部３６は、符号化リソース要求コマンド（OpenEnc（w4））に対するリソースよりもリソースを少なくして、ハードウェアリソースの割り当てを行う。例えば、リソース管理部３６は、符号化リソース要求コマンド（OpenEnc（w4））に対するハードウェアリソースを、コーデック部４０-1〜４０-4に変更する。また、リソース管理部３６は、復号化リソース要求コマンド（OpenDec（w2））に対して、ハードウェアリソースとしてコーデック部４０-5〜４０-6を割り当てて、リソースＩＤ（＝２）を付加した完了コールバックをシステム制御部２１に返す。したがって、システム制御部２１は、リソースＩＤを付加して復号化コマンド（DecCmd（id2））を発行することで、復号化処理Ｄｅｃ１を２倍速で行うことができる。また、符号化コマンド（EncCmd（id1））に応じて行われる符号化処理Ｅｎｃ１は、４倍速に変更される。
【００７０】
リソース管理部３６は、システム制御部２１のアプリケーションから符号化リソース要求コマンド（OpenEnc（w6））が供給されたとき、リソース割り当て動作を行い、ハードウェアリソースを割り当てる。符号化リソース要求コマンド（OpenEnc（w6））の優先重み付けパラメータは、先のリソース要求コマンド（OpenEnc（w4）），（OpenDec（w2））よりも優先度が高い。したがって、リソース管理部３６は、リソース要求コマンド（OpenEnc（w4）），（OpenDec（w2））に対して割り当てるリソースよりもリソースを多くして、ハードウェアリソースの割り当てを行う。例えば、リソース管理部３６は、符号化リソース要求コマンド（OpenEnc（w6））に対して、ハードウェアリソースとしてコーデック部４０-1〜４０-3を割り当てて、リソースＩＤ（＝３）を付加した完了コールバックをシステム制御部２１に返す。また、リソース管理部３６は、符号化リソース要求コマンド（OpenEnc（w4））に対するハードウェアリソースを、コーデック部４０-4〜４０-5に変更する。さらに、リソース管理部３６は、復号化リソース要求コマンド（OpenDec（w2））に対するハードウェアリソースを、コーデック部４０-6に変更する。したがって、システム制御部２１は、リソースＩＤを付加して符号化コマンド（EncCmd（id3））を発行することで、符号化処理Ｅｎｃ２を３倍速で行うことができる。また、符号化コマンド（EncCmd（id1））に応じて行われる符号化処理Ｅｎｃ１は、２倍速に変更される。さらに、復号化コマンド（DecCmd（id3））に応じて行われる復号化処理Ｄｅｃ１は、１倍速に変更される。
【００７１】
リソース管理部３６は、システム制御部２１のアプリケーションから復号化リソース解放コマンド（CloseDec（id2））が供給されたとき、図６に示すリソース解放動作を行う。リソースＩＤ＝２の処理に対しては、１つのコーデック部が割り当てられている。したがって、リソース管理部３６は、リソースＩＤ＝２に対する１つのコーデック部を解放して、６つのコーデック部４０-1〜４０-6で、符号化リソース要求コマンド（OpenEnc（w4））に対する符号化処理と、符号化リソース要求コマンド（OpenEnc（w6））に対する符号化処理を行わせる。また、符号化リソース要求コマンド（OpenEnc（w4））は、符号化リソース要求コマンド（OpenEnc（w6））よりも優先度が低い。このため、リソース管理部３６は、符号化リソース要求コマンド（OpenEnc（w6））に対するハードウェアリソースを、コーデック部４０-1〜４０-4に変更する。さらに、リソース管理部３６は、符号化リソース要求コマンド（OpenEnc（w4））に対するハードウェアリソースを、コーデック部４０-5，４０-6に変更する。したがって、システム制御部２１からの符号化コマンド（EncCmd（id3））に応じて行われる符号化処理Ｅｎｃ２は４倍速に変更される。また、符号化コマンド（EncCmd（id1））に応じて行われる符号化処理Ｅｎｃ１は２倍速に変更される。
【００７２】
リソース管理部３６は、システム制御部２１のアプリケーションから符号化リソース解放コマンド（CloseEnc（id1））が供給されたとき、リソース解放動作を行う。リソースＩＤ＝１の処理に対しては、２つのコーデック部が割り当てられていることから、リソース管理部３６は、２つのコーデック部を解放して、６つのコーデック部４０-1〜４０-6で、符号化リソース要求コマンド（OpenEnc（w6））に対する符号化処理を行わせる。したがって、システム制御部２１からの符号化コマンド（EncCmd（id3））に応じて行われる符号化処理Ｅｎｃ２は６倍速に変更される。
【００７３】
このように、ハードウェアリソースの解放後にリソースの再配分を行うことで、解放されたハードウェアリソースを他のコーデック処理で利用することが可能となり、コーデック処理を効率よく行うことができる。
【００７４】
ところで図７は、リソース要求コマンドやリソース解放コマンドが供給されたとき、常に再コンフィグレーションが行われる場合を例示したが、再コンフィグレーションが行われない場合を生じたリソースの遷移状態についての具体例を図８に示す。
【００７５】
図８において、リソース管理部３６は、システム制御部２１のアプリケーションから符号化処理のための符号化リソース要求コマンド（OpenEnc（w4））が供給されたとき、図５に示すリソース割り当て動作を行う。ここで、例えば符号化リソース要求コマンド（OpenEnc（w4））に対して割り当て可能なリソース数が最大４つとされているときに、リソース管理部３６は、ハードウェアリソースとして例えばコーデック部４０-1〜４０-4を割り当てる。さらに、リソース管理部３６は、リソースＩＤ（＝１）を付加した完了コールバックをシステム制御部２１に返す。したがって、システム制御部２１からの符号化コマンド（EncCmd（id1））に応じて行われる符号化処理Ｅｎｃ１は４倍速で行われる。
【００７６】
リソース管理部３６は、システム制御部２１のアプリケーションから復号化リソース要求コマンド（OpenDec（w2））が供給されたとき、リソース割り当て動作を行う。ここで、復号化リソース要求コマンド（OpenDec（w2））の優先重み付けパラメータは、先の符号化リソース要求コマンド（OpenEnc（w4））よりも優先度が低い。したがって、リソース管理部３６は、符号化リソース要求コマンド（OpenEnc（w4））に対して割り当てるリソースよりもリソースを少なくする。また、コーデック部４０-5，４０-6は、リソース要求コマンドに応じて割り当てたリソースではないので、リソース管理部３６は、復号化リソース要求コマンド（OpenDec（w2））に対して、ハードウェアリソースとしてコーデック部４０-5〜４０-6を割り当てる。さらに、リソース管理部３６は、リソースＩＤ（＝２）を付加した完了コールバックをシステム制御部２１に返す。したがって、システム制御部２１からの復号化コマンド（DecCmd（id2））に応じて行われる復号化処理Ｄｅｃ１は２倍速で行われる。
【００７７】
リソース管理部３６は、システム制御部２１のアプリケーションから符号化リソース要求コマンド（OpenEnc（w6））が供給されたときは、図７の場合と同様な処理を行う。したがって、符号化処理Ｅｎｃ２は３倍速、符号化処理Ｅｎｃ１は２倍速、復号化処理Ｄｅｃ１は１倍速で行われる。
【００７８】
リソース管理部３６は、システム制御部２１から符号化リソース解放コマンド（CloseEnc（id3））が供給されたとき、リソース解放動作を行う。ここで、リソースＩＤ＝３の処理に対しては、３つのコーデック部が割り当てられていたことから、リソース管理部３６は、リソースＩＤ＝３に対応する３つのコーデック部を解放する。また、リソース管理部３６は、６つのコーデック部４０-1〜４０-6で、符号化リソース要求コマンド（OpenEnc（w4））に対する符号化処理と、復号化リソース要求コマンド（OpenDec（w2））に対する符号化処理を行わせる。ここで、復号化リソース要求コマンド（OpenDec（w2））は、符号化リソース要求コマンド（OpenEnc（w6））よりも優先度が低い。したがって、リソース管理部３６は、符号化リソース要求コマンド（OpenEnc（w4））に対するリソースを、コーデック部４０-1〜４０-4に変更する。さらに、リソース管理部３６は、復号化リソース要求コマンド（OpenDec（w2））に対するリソースを、コーデック部４０-5，４０-6に変更する。したがって、システム制御部２１からの符号化コマンド（EncCmd（id1））に応じて行われる符号化処理Ｅｎｃ１は４倍速に変更される。また、復号化コマンド（DecCmd（id2））に応じて行われる復号化処理Ｄｅｃ１は２倍速に変更される。
【００７９】
リソース管理部３６は、システム制御部２１のアプリケーションから復号化リソース解放コマンド（CloseDec（id2））が供給されたとき、リソース解放動作を行う。ここで、リソースＩＤ＝２の処理に対しては、２つのコーデック部が割り当てられていたことから、リソース管理部３６は、２つのコーデック部を解放する。また、符号化リソース要求コマンド（OpenEnc（w4））に対して最大リソース数である４つのコーデック部が割り当てられている。したがって、リソース管理部３６は、再コンフィグレーションを行うことなく、既に割り当てられているコーデック部４０-1〜４０-4を用いて、符号化コマンド（EncCmd（id1））に応じて行われる符号化処理Ｅｎｃ１を、引き続き４倍速で行う。
【００８０】
また、例えば符号化リソース要求コマンド（OpenEnc（w6））に対して割り当て可能なリソース数の制限がないとする。この場合、符号化リソース解放コマンド（CloseEnc（id3））に替えて符号化リソース解放コマンド（CloseEnc（id1））が供給されたのち復号化リソース解放コマンド（CloseDec（id2））が供給されると、リソース管理部３６は、再コンフィグレーションを行う。したがって、符号化リソース要求コマンド（OpenEnc（w6））に対するハードウェアリソースとしてコーデック部４０-1〜４０-6が割り当てられて、符号化コマンド（EncCmd（id3））に応じて行われる符号化処理Ｅｎｃ２は６倍速に変更される。
【００８１】
なお、図７および図８ではリソースＩＤとして、符号化処理と復号化処理を含めて順番に番号を設定しているが、符号化処理と復号化処理のそれぞれで個々にリソースＩＤを順番に設定してもよい。
【００８２】
また、本発明は、上述した発明の実施の形態に限定して解釈されるべきではない。例えば、リソース要求等のコマンドはシステム制御部２１上のアプリケーションから発行されたコマンドだけでなく、他の機器から発行されたコマンドであってもよい。
【００８３】
この発明の実施の形態は、例示という形態で本発明を開示しており、本発明の要旨を逸脱しない範囲で当業者が実施の形態の修正や代用をなし得ることは自明である。すなわち、本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【産業上の利用可能性】
【００８４】
この発明の情報処理装置とリソース管理方法では、リソース管理部でリソース確保要求を受信したとき、この要求に対してハードウェアリソースの割り当てを行い、要求に対して割り当てるハードウェアリソースがない場合にリソースの再配分を行って要求に対してハードウェアリソースが割り当てられる。このため、リソース確保の要求側で、それぞれリソースの状態管理を行う必要がなく、リソース管理を簡単に効率よく行うことができるようになる。したがって、動画像データの記録や再生および編集等を行う機器に適している。
【符号の説明】
【００８５】
１０・・・情報処理装置、２０・・・ホスト部、２１・・・システム制御部、２２・・・記憶部、２３・・・バス、３０・・・コーデック制御部、３１・・・バスインタフェース部、３２・・・メモリ部、３３・・・メモリインタフェース部、３４・・・セレクタ、３５・・・拡張ポート、３６・・・リソース管理部、４０，４０-1〜４０-n・・・コーデック部、３３１・・・第１モジュール、３３１Ｒ-1〜３３１Ｒ-n・・・ビデオリードモジュール、３３１Ｗ-1〜３３１Ｗ-n ・・・圧縮ビデオライトモジュール、３３２・・・第２モジュール、３３２Ｒ-1〜３３２Ｒ-n・・・圧縮ビデオリードモジュール、３３２Ｗ-1〜３３２Ｗ-n・・・ビデオライトモジュール
【図１】
2012032873.tif 000003
【図２】
2012032873.tif 000004
【図３】
2012032873.tif 000005
【図４】
2012032873.tif 000006
【図５】
2012032873.tif 000007
【図６】
2012032873.tif 000008
【図７】
2012032873.tif 000009
【図８】
2012032873.tif 000010