(57)【要約】【課題】符号化処理の中断および再開を制御する。【解決手段】上位制御レイヤから符号化開始フラグを有するENCコマンドが発行されたとき、ローカルＣＰＵは、BeginENCコマンドをコーディックプロセッサに発行する。コーディックプロセッサは、BeginENCコマンドの供給を受け、垂直同期信号が供給されていれば、垂直同期信号をトリガとしてコマンドを認識し、符号化処理を実行する。そして、上位制御レイヤからのENCコマンドの発行が中断されたとき、ローカルＣＰＵは、スイッチを制御して、コーディックプロセッサへの垂直同期信号の供給を停止させてコーディック処理を中断させる。そして、上位制御レイヤからのENCコマンドの発行が再開されたとき、ローカルＣＰＵは、スイッチを制御して、コーディックプロセッサへの垂直同期信号の供給を再開させてコーディック処理を再開させる。本発明は、情報処理装置に適用できる。【選択図】図５
2008085615.tif 000002
【特許請求の範囲】
【請求項１】
コーディック処理の開始と終了を制御する制御コマンドを発行する制御手段と、
前記制御手段により発行される前記制御コマンドに基づいて、コーディック処理を開始および終了するとともに、同期信号が供給されている状態において、コーディック処理を実行し、前記同期信号が供給されていない状態において、コーディック処理を中断するコーディック処理手段と、
前記制御手段の制御に基づいて、前記コーディック処理手段への前記同期信号の供給を制御する同期信号供給制御手段と
を備える情報処理装置。
【請求項２】
前記制御手段は、前記コーディック処理手段に、同期信号が供給されている状態において認識および実行される、コーディック処理の開始コマンド、および、第１のコーディック処理の終了コマンドを発行するとともに、同期信号が供給されていない状態においても認識および実行が可能な、第２のコーディック処理の終了コマンドを発行する
請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、
外部より、コーディック処理の実行を指令するコマンドを１フレームごとに供給され、
前記コーディック処理手段に、前記コーディック処理の開始コマンドを発行した後、外部より、前記コーディック処理の実行を指令するコマンドの供給を受けなかった場合、前記同期信号供給制御手段を制御して、前記コーディック処理手段への前記同期信号の供給を停止させる
請求項２に記載の情報処理装置。
【請求項４】
前記コーディック処理の実行を指令するコマンドには、必要に応じて、コーディック処理の開始を示す情報、または、コーディック処理の終了を示す情報のうちのいずれかが付加され、
前記制御手段は、
外部より、コーディック処理の開始を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、前記コーディック処理手段に、前記コーディック処理の開始コマンドを発行し、
外部より、コーディック処理の終了を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、前記同期信号供給制御手段を制御して、前記コーディック処理手段への前記同期信号の供給を停止させていない状態においては、前記コーディック処理手段に、前記第１のコーディック処理の終了コマンドを発行し、前記同期信号供給制御手段を制御して、前記コーディック処理手段への前記同期信号の供給を停止させている状態においては、前記第２のコーディック処理の終了コマンドを発行する
請求項３に記載の情報処理装置。
【請求項５】
前記制御手段は、前記コーディック処理手段への、コーディック処理されるデータの供給を更に制御する
請求項１に記載の情報処理装置。
【請求項６】
コマンドの供給に基づいて、同期信号が供給されている状態においてコーディックを実行し、前記同期信号が供給されていない状態においてコーディックを中断するコーディック処理手段によるコーディック処理を制御する情報処理装置の情報処理方法において、
コーディック処理の実行を指令するコマンドの供給を受けなかった場合、前記コーディック処理手段への前記同期信号の供給を停止させ、
コーディック処理の開始を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、前記コーディック処理手段に、前記同期信号が供給されている状態において認識および実行されるコーディック処理の開始コマンドを発行し、
コーディック処理の終了を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、
前記コーディック処理手段への前記同期信号の供給を停止させていない状態においては、前記コーディック処理手段に、前記同期信号が供給されている状態において認識および実行される第１のコーディック処理の終了コマンドを発行し、
前記コーディック処理手段への前記同期信号の供給を停止させている状態においては、前記コーディック処理手段に、前記同期信号が供給されていない状態においても認識および実行が可能な、第２のコーディック処理の終了コマンドを発行する
ステップを含む情報処理方法。
【請求項７】
コマンドの供給に基づいて、同期信号が供給されている状態においてコーディックを実行し、前記同期信号が供給されていない状態においてコーディックを中断するコーディック処理手段によるコーディック処理を制御する処理をコンピュータに実行させるためのプログラムであって、
コーディック処理の実行を指令するコマンドの供給を受けなかった場合、前記コーディック処理手段への前記同期信号の供給の停止を制御し、
コーディック処理の開始を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、前記コーディック処理手段への、前記同期信号が供給されている状態において認識および実行されるコーディック処理の開始コマンドの発行を制御し、
コーディック処理の終了を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、
前記コーディック処理手段への前記同期信号の供給を停止させていない状態においては、前記コーディック処理手段への、前記同期信号が供給されている状態において認識および実行される第１のコーディック処理の終了コマンドの発行を制御し、
前記コーディック処理手段への前記同期信号の供給を停止させている状態においては、前記コーディック処理手段への、前記同期信号が供給されていない状態においても認識および実行が可能な、第２のコーディック処理の終了コマンドの発行を制御する
ステップを含む処理をコンピュータに実行させるプログラム。
【請求項８】
請求項７に記載のプログラムが記録されている記録媒体。
【請求項９】
所定の処理の開始と終了を制御する制御コマンドを発行する制御手段と、
前記制御手段により発行された前記制御コマンドに基づいて前記所定の処理を開始および終了するとともに、同期信号が供給されている状態において、前記所定の処理を実行し、前記同期信号が供給されていない状態において、前記所定の処理の実行を中断する処理実行手段と、
前記制御手段の制御に基づいて、前記処理実行手段への前記同期信号の供給を制御する同期信号供給制御手段と
を備え、
前記制御手段は、前記処理実行手段に、同期信号が供給されている状態において認識および実行される、１つまたは複数の第１のコマンドを発行するとともに、同期信号が供給されていない状態においても認識および実行が可能な、１つまたは複数の第２のコマンドを発行する
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、並びに、記録媒体に関し、特に、一般的なＣＰＵを用いてコーディック処理とそれ以外の処理を制御させる場合に用いて好適な、プログラム、並びに、記録媒体に関する。
【背景技術】
【０００２】
従来、ＣＰＵ、ＲＯＭ、ＲＡＭなどを有する一般的なマイクロコンピュータ構成を用いてエンコードを制御する技術がある(例えば、特許文献１)。また、汎用ＣＰＵを用いて、複数種類の圧縮形式に対応したコーディック処理を行うことができるようになされている技術がある(例えば、特許文献２参照)。
【０００３】
【特許文献１】特開平１０−２２９７１号公報
【０００４】
【特許文献２】特開２００３−９１４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したように、コーディックの制御に一般的なＣＰＵ(または、マイクロコンピュータなど、以下同様)を用いた場合、コーディックを制御するＣＰＵに、コーディックの処理とともに、例えば、音声データや画像データの処理を行うことが求められる。このとき、上位制御レイヤが実行されているプラットフォーム、すなわち、コーディックを制御するＣＰＵに対する負荷は非常に高くなる。
【０００６】
また、コーディックの制御に一般的なＣＰＵを用いることができるようになされているということは、換言すれば、例えば、一般的なパーソナルコンピュータなどにコーディック処理を実行可能なH/Wアクセラレータを搭載することにより、一般的なパーソナルコンピュータなどでコーディック処理を実行させることが可能であるということである。
【０００７】
しかしながら、従来のH/Wアクセラレータに搭載されている符号化や復号の処理を実行するICは、非同期的（非連続的）に制御することはできなかった。そのために、従来のH/Wアクセラレータが用いられた場合、例えば、一般的なパーソナルコンピュータなどにコーディック処理を実行可能なH/Wアクセラレータを搭載してコーディック処理を実行させる場合などのように、コーディックの制御の上位レイヤを実行するものとして、一般的なＣＰＵが用いられた場合、H/Wアクセラレータを制御する上位制御レイヤは、H/Wアクセラレータを同期的（連続的）に制御する必要かあった。
【０００８】
すなわち、H/Wアクセラレータを使ったコーディック処理は、他の重い処理と排他的に実行させる必要があり、その制限を越えるような他の処理を並行して実行させることができなかった。このため、上位制御レイヤは、H/Wアクセラレータの同期制御が破綻しないように、オーディオや画像処理等のコーディック以外の処理の負荷が高いか否かを事前に判断して、その負荷を抑えるか、または、コーディックコーディック以外の処理を優先的に実行させるために、実行中のコーディックの処理を、そのつど、一旦終了させなければならなかった。
【０００９】
コーディックの処理が一旦終了された場合、連続したストリームまたはベースバンドデータのそれ以降のコーディックを再度開始させても、終了前に利用されていたパラメータや、動き補償のための参照画などを用いることができなかった。
【００１０】
なぜなら、H/Wアクセラレータは、コーディック処理が終了された場合、次に実行が制御されるコーディック処理が、前の処理の続きであるか、全く異なるデータに対する処理であるかを予め認識することができないため、コーディックの処理が一旦終了されたときに、常に、終了前に利用されていたパラメータや、動き補償のための参照画などを保存し、次の処理に利用するものとしてしまっては、次に実行が制御されるコーディック処理が、全く異なるデータに対する処理である場合に、コーディックが破綻してしまう。
【００１１】
そのため、コーディックの処理が一旦終了された場合、連続したストリームまたはベースバンドデータのそれ以降のコーディックを再度開始させても、終了前に利用されていたパラメータや、動き補償のための参照画などは、一般的には利用できないようになされているので、連続したストリームまたはベースバンドデータのそれ以降のコーディックが再度開始された場合、再開に時間がかかってしまったり、連続して実行されている状態におけるものと参照画やパラメータが異なるものとなってしまうことにより、コーディックの結果が異なるものとなってしまう可能性があった。
【００１２】
したがって、一般的なＣＰＵを用いてコーディック処理とそれ以外の処理を制御させ、それらの実行を、ユーザの操作入力や上位レイヤの負荷に基づいて頻繁に切り替えて実行させることは困難であった。
【００１３】
本発明はこのような状況に鑑みてなされたものであり、一般的なＣＰＵを用いてコーディック処理とそれ以外の処理を制御させ、複雑な制御を行うことなく、それらの実行を、ユーザの操作入力や上位レイヤの負荷に基づいて頻繁に切り替えた場合であっても、コーディック処理が破綻することがないようにすることができるものである。
【課題を解決するための手段】
【００１４】
本発明の第１の側面の情報処理装置は、コーディック処理の開始と終了を制御する制御コマンドを発行する制御手段と、前記制御手段により発行される前記制御コマンドに基づいて、コーディック処理を開始および終了するとともに、同期信号が供給されている状態において、コーディック処理を実行し、前記同期信号が供給されていない状態において、コーディック処理を中断するコーディック処理手段と、前記制御手段の制御に基づいて、前記コーディック処理手段への前記同期信号の供給を制御する同期信号供給制御手段とを備える。
【００１５】
前記制御手段には、前記コーディック処理手段に、同期信号が供給されている状態において認識および実行される、コーディック処理の開始コマンド、および、第１のコーディック処理の終了コマンドを発行させるとともに、同期信号が供給されていない状態においても認識および実行が可能な、第２のコーディック処理の終了コマンドを発行させるようにすることができる。
【００１６】
前記制御手段は、外部より、コーディック処理の実行を指令するコマンドを１フレームごとに供給され、前記制御手段には、前記コーディック処理手段に、前記コーディック処理の開始コマンドを発行した後、外部より、前記コーディック処理の実行を指令するコマンドの供給を受けなかった場合、前記同期信号供給制御手段を制御して、前記コーディック処理手段への前記同期信号の供給を停止させるようにすることができる
【００１７】
前記コーディック処理の実行を指令するコマンドには、必要に応じて、コーディック処理の開始を示す情報、または、コーディック処理の終了を示す情報のうちのいずれかが付加されるものとすることができ、前記制御手段には、外部より、コーディック処理の開始を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、前記コーディック処理手段に、前記コーディック処理の開始コマンドを発行させるようにすることができ、外部より、コーディック処理の終了を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、前記同期信号供給制御手段を制御して、前記コーディック処理手段への前記同期信号の供給を停止させていない状態においては、前記コーディック処理手段に、前記第１のコーディック処理の終了コマンドを発行させるようにすることができ、前記同期信号供給制御手段を制御して、前記コーディック処理手段への前記同期信号の供給を停止させている状態においては、前記第２のコーディック処理の終了コマンドを発行させるようにすることができる。
【００１８】
前記制御手段には、前記コーディック処理手段への、コーディック処理されるデータの供給を更に制御させるようにすることができる。
【００１９】
本発明の第１の側面の情報処理方法は、コマンドの供給に基づいて、同期信号が供給されている状態においてコーディックを実行し、前記同期信号が供給されていない状態においてコーディックを中断するコーディック処理手段によるコーディック処理を制御する情報処理装置の情報処理方法であって、コーディック処理の実行を指令するコマンドの供給を受けなかった場合、前記コーディック処理手段への前記同期信号の供給を停止させ、コーディック処理の開始を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、前記コーディック処理手段に、前記同期信号が供給されている状態において認識および実行されるコーディック処理の開始コマンドを発行し、コーディック処理の終了を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、前記コーディック処理手段への前記同期信号の供給を停止させていない状態においては、前記コーディック処理手段に、前記同期信号が供給されている状態において認識および実行される第１のコーディック処理の終了コマンドを発行し、前記コーディック処理手段への前記同期信号の供給を停止させている状態においては、前記コーディック処理手段に、前記同期信号が供給されていない状態においても認識および実行が可能な、第２のコーディック処理の終了コマンドを発行するステップを含む。
【００２０】
本発明の第１の側面のプログラムは、コマンドの供給に基づいて、同期信号が供給されている状態においてコーディックを実行し、前記同期信号が供給されていない状態においてコーディックを中断するコーディック処理手段によるコーディック処理を制御する処理をコンピュータに実行させるためのプログラムであって、コーディック処理の実行を指令するコマンドの供給を受けなかった場合、前記コーディック処理手段への前記同期信号の供給の停止を制御し、コーディック処理の開始を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、前記コーディック処理手段への、前記同期信号が供給されている状態において認識および実行されるコーディック処理の開始コマンドの発行を制御し、コーディック処理の終了を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、前記コーディック処理手段への前記同期信号の供給を停止させていない状態においては、前記コーディック処理手段への、前記同期信号が供給されている状態において認識および実行される第１のコーディック処理の終了コマンドの発行を制御し、前記コーディック処理手段への前記同期信号の供給を停止させている状態においては、前記コーディック処理手段への、前記同期信号が供給されていない状態においても認識および実行が可能な、第２のコーディック処理の終了コマンドの発行を制御するステップを含む処理をコンピュータに実行させる。
【００２１】
本発明の第１の側面においては、同期信号が供給されている状態においてコーディックが実行され、コーディック処理の実行を指令するコマンドの供給を受けなかった場合、コーディック処理手段への同期信号の供給が停止されて、同期信号が供給されていない状態においてコーディックが中断される。そして、コーディック処理の開始を示す情報が付加されたコーディック処理の実行を指令するコマンドが取得された場合、コーディック処理手段に、同期信号が供給されている状態において認識および実行されるコーディック処理の開始コマンドが発行され、コーディック処理の終了を示す情報が付加されたコーディック処理の実行を指令するコマンドが取得された場合、コーディック処理手段への同期信号の供給を停止させていない状態においては、コーディック処理手段に、同期信号が供給されている状態において認識および実行される第１のコーディック処理の終了コマンドが発行を制御され、コーディック処理手段への同期信号の供給を停止させている状態においては、コーディック処理手段に、同期信号が供給されていない状態においても認識および実行が可能な、第２のコーディック処理の終了コマンドが発行される。
【００２２】
本発明の第２の側面の情報処理装置は、所定の処理の開始と終了を制御する制御コマンドを発行する制御手段と、前記制御手段により発行された前記制御コマンドに基づいて前記所定の処理を開始および終了するとともに、同期信号が供給されている状態において、前記所定の処理を実行し、前記同期信号が供給されていない状態において、前記所定の処理の実行を中断する処理実行手段と、前記制御手段の制御に基づいて、前記処理実行手段への前記同期信号の供給を制御する同期信号供給制御手段とを備え、前記制御手段は、前記処理実行手段に、同期信号が供給されている状態において認識および実行される、１つまたは複数の第１のコマンドを発行するとともに、同期信号が供給されていない状態においても認識および実行が可能な、１つまたは複数の第２のコマンドを発行する。
【００２３】
本発明の第２の側面においては、所定の処理の開始と終了を制御する制御コマンドが発行され、同期信号の供給が制御され、制御コマンドに基づいて所定の処理が開始および終了されるとともに、同期信号が供給されている状態において、所定の処理が実行あれ、同期信号が供給されていない状態において、所定の処理の実行が中断され、発行されるコマンドは、同期信号が供給されている状態において認識および実行される、１つまたは複数の第１のコマンド、または、同期信号が供給されていない状態においても認識および実行が可能な、１つまたは複数の第２のコマンドである。
【００２４】
ネットワークとは、少なくとも２つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであっても良いし、１つの装置を構成している内部ブロックどうしであっても良い。
【００２５】
また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであっても良い。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであっても良い。
【００２６】
情報処理装置は、独立した装置であっても良いし、例えば、記録再生装置や画像処理装置などの１ブロックであっても良い。
【発明の効果】
【００２７】
以上のように、本発明の第１の側面によれば、コーディックを制御することができ、特に、コーディックの開始および終了を制御するコマンド以外のコマンドを用いることなく、コーディックの中断および再開を制御することができる。
【００２８】
また、本発明の第２の側面によれば、所定の処理を制御することができ、特に、所定の処理の開始および終了を制御するコマンド以外のコマンドを用いることなく、所定の処理の中断および再開を制御することができる。
【発明を実施するための最良の形態】
【００２９】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３０】
本発明の第１の側面の情報処理装置は、コーディック処理の開始と終了を制御する制御コマンドを発行する制御手段（例えば、図２のローカルＣＰＵ４１）と、前記制御手段により発行された前記制御コマンドを基に、コーディック処理を開始または終了するとともに、同期信号が供給されている状態において、コーディック処理を実行し、前記同期信号が供給されていない状態において、コーディック処理を中断するコーディック処理手段（例えば、図２のコーディックプロセッサ４４）と、前記制御手段の制御に基づいて、前記コーディック処理手段への前記同期信号の供給を制御する同期信号供給制御手段（例えば、図２のスイッチ４３）とを備える。
【００３１】
前記制御手段は、前記コーディック処理手段に、同期信号が供給されている状態において認識および実行される、コーディック処理の開始コマンド（例えば、BeginENCコマンド）、および、第１のコーディック処理の終了コマンド（例えば、ImmedTermENCコマンド）を発行することができるとともに、同期信号が供給されていない状態においても認識および実行が可能な、第２のコーディック処理の終了コマンド（例えば、ImmedTermENCコマンド）を発行することができる。
【００３２】
前記制御手段は、外部より、コーディック処理の実行を指令するコマンド（例えば、ＥＮＣコマンド）を１フレームごとに供給され、前記コーディック処理手段に、前記コーディック処理の開始コマンドを発行した後、外部より、前記コーディック処理の実行を指令するコマンドの供給を受けなかった場合、前記同期信号供給制御手段を制御して、前記コーディック処理手段への前記同期信号の供給を停止させることができる。
【００３３】
前記コーディック処理の実行を指令するコマンドには、必要に応じて、コーディック処理の開始を示す情報、または、コーディック処理の終了を示す情報のうちのいずれかが付加されるものとすることができ、前記制御手段は、外部より、コーディック処理の開始を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、前記コーディック処理手段に、前記コーディック処理の開始コマンドを発行することができ、外部より、コーディック処理の終了を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、前記同期信号供給制御手段を制御して、前記コーディック処理手段への前記同期信号の供給を停止させていない状態においては、前記コーディック処理手段に、前記第１のコーディック処理の終了コマンドを発行することができ、前記同期信号供給制御手段を制御して、前記コーディック処理手段への前記同期信号の供給を停止させている状態においては、前記第２のコーディック処理の終了コマンドを発行することができる。
【００３４】
前記制御手段は、前記コーディック処理手段への、コーディック処理されるデータの供給を更に制御することができる。
【００３５】
本発明の第１の側面の情報処理方法は、コマンドの供給に基づいて、同期信号が供給されている状態においてコーディックを実行し、前記同期信号が供給されていない状態においてコーディックを中断するコーディック処理手段（例えば、図２のコーディックプロセッサ４４）によるコーディック処理を制御する情報処理装置の情報処理方法であって、コーディック処理の実行を指令するコマンドの供給を受けなかった場合、前記コーディック処理手段への前記同期信号の供給を停止させ（例えば、図８のステップＳ１１の処理）、コーディック処理の開始を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、前記コーディック処理手段に、前記同期信号が供給されている状態において認識および実行されるコーディック処理の開始コマンド（例えば、BeginENCコマンド）を発行し（例えば、図８のステップＳ３の処理）、コーディック処理の終了を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、前記コーディック処理手段への前記同期信号の供給を停止させていない状態においては、前記コーディック処理手段に、前記同期信号が供給されている状態において認識および実行される第１のコーディック処理の終了コマンド（例えば、TermENCコマンド）を発行し（例えば、図８のステップＳ８の処理）、前記コーディック処理手段への前記同期信号の供給を停止させている状態においては、前記コーディック処理手段に、前記同期信号が供給されていない状態においても認識および実行が可能な、第２のコーディック処理の終了コマンド（例えば、ImmedTermENCコマンド）を発行する（例えば、図８のステップＳ７の処理）ステップを含む。
【００３６】
本発明の第１の側面のプログラムは、コマンドの供給に基づいて、同期信号が供給されている状態においてコーディックを実行し、前記同期信号が供給されていない状態においてコーディックを中断するコーディック処理手段（例えば、図２のコーディックプロセッサ４４）によるコーディック処理を制御する処理をコンピュータに実行させるためのプログラムであって、コーディック処理の実行を指令するコマンドの供給を受けなかった場合、前記コーディック処理手段への前記同期信号の供給の停止を制御し（例えば、図８のステップＳ１１の処理）、コーディック処理の開始を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、前記コーディック処理手段への、前記同期信号が供給されている状態において認識および実行されるコーディック処理の開始コマンド（例えば、BeginENCコマンド）の発行を制御し（例えば、図８のステップＳ３の処理）、
コーディック処理の終了を示す情報が付加された前記コーディック処理の実行を指令するコマンドが取得された場合、前記コーディック処理手段への前記同期信号の供給を停止させていない状態においては、前記コーディック処理手段への、前記同期信号が供給されている状態において認識および実行される第１のコーディック処理の終了コマンド（例えば、TermENCコマンド）の発行を制御し（例えば、図８のステップＳ８の処理）、前記コーディック処理手段への前記同期信号の供給を停止させている状態においては、前記コーディック処理手段への、前記同期信号が供給されていない状態においても認識および実行が可能な、第２のコーディック処理の終了コマンド（例えば、ImmedTermENCコマンド）の発行を制御する（例えば、図８のステップＳ７の処理）ステップを含む処理をコンピュータに実行させる。
【００３７】
本発明の第２の側面の情報処理装置は、所定の処理の開始と終了を制御する制御コマンドを発行する制御手段（例えば、図２のローカルＣＰＵ４１）と、前記制御手段により発行された前記制御コマンドに基づいて前記所定の処理を開始および終了するとともに、同期信号が供給されている状態において、前記所定の処理を実行し、前記同期信号が供給されていない状態において、前記所定の処理の実行を中断する処理実行手段（例えば、図２のコーディックプロセッサ４４）と、前記制御手段の制御に基づいて、前記処理実行手段への前記同期信号の供給を制御する同期信号供給制御手段（例えば、図２のスイッチ４３）とを備え、前記制御手段は、前記処理実行手段に、同期信号が供給されている状態において認識および実行される、１つまたは複数の第１のコマンド（例えば、BeginENCコマンド、または、ImmedTermENCコマンド）を発行するとともに、同期信号が供給されていない状態においても認識および実行が可能な、１つまたは複数の第２のコマンド（例えば、ImmedTermENCコマンド）を発行する。
【００３８】
以下、図を参照して、本発明の実施の形態について説明する。
【００３９】
図１に、コーディック処理を実行するH/Wアクセラレータとしてのコーディック処理部１４を組み込んだ情報処理装置１の構成を示す。
【００４０】
情報処理装置１は、例えば、一般的なワークステーションやパーソナルコンピュータである。情報処理装置１には、ＣＰＵ１１、チップセット１２、ＨＤＤ１３が備えられているとともに、内部のPCI-Expressスロットに、コーディック処理部１４、音声データ処理部１６、および、（Graphics Processing Unit）１５が組み込まれており、更に、内部バスに接続された入出力インタフェイス１７に、操作入力取得部１８、ネットワークインタフェイス１９、および、ドライブ２０が接続されている。
【００４１】
ＣＰＵ１１は、情報処理装置１全体を制御するものであり、上位制御レイヤを展開し、例えば、Windows(登録商標)に代表されるベストエフォートタイプのプラットフォームにて動作する。
【００４２】
チップセット１２は、タイマ、割り込み、DMA、メモリをコントロールする回路、RTC、バスインターフェイスなど、必要な機能がまとめられたものである。
【００４３】
ＨＤＤ１３は、ＳＣＳＩインタフェイスでチップセット１２と接続され、ハードディスクを起動することにより、例えば、動画や音声データなどをハードディスクに記録したり、ハードディスクから再生する。また、記録されているデータは、ＣＰＵ１１の制御に基づいて読み出されて、チップセット１２を介して、コーディック処理部１４、ＧＰＵ１５、または、音声データ処理部１６などに供給される。
【００４４】
コーディック処理部１４は、情報処理装置１で実行されるノンリニア編集システムにおいて使用されるペリフェラルであり、PCI-Expressバスを介して、または、外部から直接供給されたデータのコーディック処理を実行する。コーディック処理部１４の詳細な構成例については、図２を用いて後述する。
【００４５】
音声データ処理部１６は、ＣＰＵ１１の制御に基づいて、PCI-Expressバスを介して供給された音声データの処理を実行する。
【００４６】
ＧＰＵ１５は、ＣＰＵ１１の制御に基づいて、PCI-Expressバスを介して供給された画像データの処理を実行するものである。
【００４７】
そして、入出力インタフェイス１７には、操作入力取得部１８、ネットワークインタフェイス１９、および、ドライブ２０が接続されている。
【００４８】
操作入力取得部１８は、ユーザの操作入力を受け、入出力インタフェイス１７およびチップセット１２を介して、ＣＰＵ１１に、ユーザの操作入力を通知する。
【００４９】
ネットワークインタフェイス１９は、インターネットやＬＡＮをはじめとする外部のネットワーク、または、他の装置と直接接続され、情報を授受するものである。
【００５０】
ドライブ２０には、例えば、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM（Compact Disk-Read Only Memory），DVD（Digital Versatile Disk）を含む）、光磁気ディスク（ＭＤ(Mini-Disk)（商標）を含む）、もしくは半導体メモリなどのリムーバブルメディア３１を装着可能であり、装着されたリムーバブルメディア３１と情報を授受することができるようになされている。
【００５１】
情報処理装置１で実行されるノンリニア編集システムの中核を担う上位制御レイヤは、ＣＰＵ１１上に展開され、例えば、Windows(登録商標)に代表されるベストエフォートタイプのプラットフォームにて動作する。これに対して、コーディック処理部１４の制御レイヤは、コーディック処理部１４内部のローカルＣＰＵ４１(図２)に展開され、リアルタイム保証型のプラットフォームで動作する。上位制御レイヤはPCI-Expressバス経由でコーディック処理部１４の制御レイヤにアクセスし、コーディック処理部１４のコントロールを行う。
【００５２】
図２に、コーディック処理部１４の更に詳細な構成を示す。
【００５３】
コーディック処理部１４は、ローカルＣＰＵ４１、垂直同期信号生成部４２、スイッチ４３、コーディックプロセッサ４４、PCI-Expressインタフェイス４５、Ａ/Ｖ ＩＯインタフェイス４６、ローカルメモリインタフェイス４７、ローカルメモリ４８、シンプルビデオプロセッサ４９、および、フレームカウンタ５０で構成されている。
【００５４】
ローカルＣＰＵ４１は、PCI-Expressインタフェイス４５を介して供給された上位制御レイヤから発行されるコマンド、すなわち、ＣＰＵ１１において発行され、チップセット１２およびPCI-Expressインタフェイス４５を介して供給されたコマンドを基に、コーディック処理部１４の全体を制御するものである。
【００５５】
垂直同期信号生成部４２は、所定の周波数の垂直同期信号を生成する。生成された垂直同期信号は、ローカルＣＰＵ４１に供給されるとともに、スイッチ４３を介してコーディックプロセッサ４４にも供給され、更に、フレームカウンタ５０に供給される。
【００５６】
スイッチ４３は、ローカルＣＰＵ４１の制御に基づいて、垂直同期信号生成部４２により生成された垂直同期信号のコーディックプロセッサ４４への供給を必要に応じて停止または再開する。
【００５７】
コーディックプロセッサ４４は、ローカルＣＰＵ４１の制御に基づいて、すなわち、ローカルＣＰＵ４１から供給されるコマンドに基づいて、ローカルメモリインタフェイス４７を介して供給されたベースバンド画像データのエンコード、または、符号化ストリームのデコード処理を実行するものである。
【００５８】
コーディックプロセッサ４４は、スイッチ４３を介して垂直同期信号が供給されたときのみ、コーディックを実行することが可能なようになされている。また、ローカルＣＰＵ４１から供給されるコマンドの詳細については後述する。
【００５９】
PCI-Expressインタフェイス４５は、PCI-Expressバスとコーディック処理部１４との情報の授受を制御するインタフェイスである。PCI-Expressインタフェイス４５は、例えば、圧縮された、または非圧縮の画像データ、映像データ、もしくは、音声データの供給を受けたとき、ローカルメモリインタフェイス４７を介してローカルメモリ４８に供給する。また、PCI-Expressインタフェイス４５は、制御コマンドの供給を受けたとき、制御コマンドをローカルＣＰＵ４１に供給する。
【００６０】
Ａ/Ｖ ＩＯインタフェイス４６は、外部ＩＯコネクタを介して、画像、映像または音声データの授受を制御するインタフェイスであり、画像、映像または音声データの供給を受けたとき、ローカルメモリインタフェイス４７を介してローカルメモリ４８に供給し、ローカルメモリ４８に記録された処理済のデータを、ローカルメモリインタフェイス４７を介して取得し、外部に出力する。
【００６１】
ローカルメモリインタフェイス４７は、ローカルＣＰＵ４１の制御に基づいて、ローカルメモリ４８と、コーディックプロセッサ４４、シンプルビデオプロセッサ４９、PCI-Expressインタフェイス４５、または、Ａ/Ｖ ＩＯインタフェイス４６とのデータの授受を制御するものである。
【００６２】
ローカルメモリ４８は、ローカルメモリインタフェイス４７を介して供給された各種データを記憶する。
【００６３】
シンプルビデオプロセッサ４９は、ローカルＣＰＵ４１の制御に基づいて、コーディック処理以外の画像処理を実行するものである。
【００６４】
フレームカウンタ５０は、垂直同期信号生成部４２により生成された垂直同期信号の供給を受け、フレームカウンタを生成し、PCI-Expressインタフェイス４５、および、チップセット１２を介して、ＣＰＵ１１に供給する。ＣＰＵ１１は、供給されたフレームカウンタに基づいて、コーディック処理部１４の処理を制御する。
【００６５】
図２を用いて説明したコーディック処理部１４においては、符号化および復号処理が実行されるが、以下の説明では、実行可能な処理の一例として、特に、符号化(エンコード)処理について説明する。
【００６６】
ここで、コーディック処理部１４において実行される符号化のために、上位制御レイヤからローカルＣＰＵレイヤに対して発行されるコマンドは、Encodeコマンドの１種類のみであり、１フレームごとに供給される。そして、Encodeコマンドのオプションの中に、必要に応じて、符号化開始フラグ、符号化終了フラグ等の情報が付加されている。
【００６７】
そして、ローカルＣＰＵ４１は、Encodeコマンドに基づいて、コーディックプロセッサ４４を制御するための制御コマンドを生成し、供給する。また、ローカルＣＰＵ４１は、コーディックプロセッサ４４およびローカルメモリインタフェイス４７に、コーディックされるデータのＤＭＡ転送の開始または終了を指令するコマンドを発行する。ローカルＣＰＵ４１がコーディックプロセッサ４４により実行される符号化や、コーディックされるデータのＤＭＡ転送を制御するための制御コマンドについては、後述する。
【００６８】
図３は、ローカルＣＰＵ４１が有する機能を示す機能ブロック図である。
【００６９】
すなわち、ローカルＣＰＵ４１は、コマンド取得部８１、垂直同期信号取得部８２、コマンド実行制御部８３、データ取得制御部８４、コーディック制御部８５、データ出力制御部８６、および、スイッチ制御部８７の機能を有している。
【００７０】
コマンド取得部８１は、上位制御レイヤから発行されたコマンドを取得し、コマンド実行制御部８３に供給する。
【００７１】
垂直同期信号取得部８２は、垂直同期信号の供給を受け、コマンド実行制御部８３に供給する。
【００７２】
コマンド実行制御部８３は、上位制御レイヤから発行されたコマンドを基に、コーディックプロセッサ４４やローカルメモリインタフェイス４７を制御するためのコマンドの発行を制御するものである。コーディックプロセッサ４４やローカルメモリインタフェイス４７を制御するためのコマンドの詳細については後述する。
【００７３】
データ取得制御部８４は、ローカルメモリインタフェイス４７を介した、エンコードまたはデコードされるデータの取得およびローカルメモリ４８への蓄積と、ローカルメモリ４８へ蓄積されたデータの、ローカルメモリインタフェイス４７を介した、コーディックプロセッサ４４へのＤＭＡ転送を制御するものである。
【００７４】
コーディック制御部８５は、コマンド実行制御部８３により発行が制御されたコマンドに基づいて実行される、コーディックプロセッサ４４におけるエンコードまたはデコードの処理を制御するものである。
【００７５】
データ出力制御部８６は、コーディック済みのデータの、ローカルメモリインタフェイス４７を介したローカルメモリ４８への出力を制御するものである。
【００７６】
スイッチ制御部８７は、コマンド実行制御部８３において発行されたコマンドや、コーディック制御部８５により制御されているコーディックプロセッサ４４の処理状態に応じて、スイッチ４３のオンオフを制御することにより、コーディックプロセッサ４４への垂直同期信号の供給を制御する。
【００７７】
次に、図４乃至図７を参照して、具体的なコマンドの発行と、コーディックの実行または中断および再開、並びに、コーディックの終了について説明する。
【００７８】
なお、ここでは、コーディック処理として、符号化処理が実行される場合を例として説明するが、復号処理が実行されるときの具体的なコマンドの発行と、復号処理の実行または中断および再開、並びに、復号処理の終了についても、基本的に同様であることは言うまでもない。
【００７９】
図４を用いて、途中で符号化が中断されない場合について説明する。
【００８０】
ローカルＣＰＵレイヤは、上位制御レイヤから符号化開始フラグを有するEncodeコマンド(図中、ENCと示す)の供給を受けたときにBeginEncodeコマンド(図中BeginENCと示す)をコーディックプロセッサ４４に発行(図中T1のタイミング)し、コーディックプロセッサ４４へのベースバンド画像データ、すなわち、ビデオデータの供給を制御する(図中T2のタイミング)。ローカルＣＰＵレイヤは、上位制御レイヤから毎フレームEncodeコマンドが発行されている場合、符号化終了フラグが付加されたEncodeコマンドの供給を受けるまで、コーディックプロセッサ４４にコマンドを発行することはなく、符号化終了フラグが付加されたEncodeコマンドの供給を受けたときに、Terminate Encodeコマンド(図中TermENCと示す)をコーディックプロセッサ４４に発行(図中T4のタイミング)し、コーディックプロセッサ４４へのベースバンド画像データ、すなわち、ビデオデータの供給を停止させる(図中T5のタイミング)。
【００８１】
コーディックプロセッサレイヤにおいては、BeginEncodeコマンドの供給を受け(図中T1のタイミング)、垂直同期信号が供給されていれば、垂直同期信号をトリガとして符号化処理を実行する(図中T2乃至T4のタイミング)。そして、垂直同期信号の供給が続いている状態において、Terminate Encodeコマンドの供給を受けた時、符号化処理が終了される(図中T5のタイミング)。
【００８２】
ところで、情報処理装置１において、符号化処理とともに、例えば、画像処理、オーディオ処理等が同時並行で実行される場合、具体的には、例えば、ＣＰＵ１１が、コーディック処理部１４の制御と並行して、ＧＰＵ１５や音声データ処理部１６の制御も実行していた場合、上位制御レイヤにおいて処理が間に合わなくなり、Encodeコマンドを１フレーム毎に連続的に発行することができなくなる。
【００８３】
しかしながら、符号化終了フラグが付加されたEncodeコマンドの供給を受けていないローカルＣＰＵレイヤにおいては、Terminate Encodeコマンドなどを発行することはできず、また、Encodeコマンドの供給停止によってコーディックプロセッサ４４の符号化処理を終了させてしまった場合には、コーディックプロセッサ４４のコーディック再開時に、パラメータや、動き補償のための参照画などをそのまま利用することはできない。
【００８４】
そこで、ローカルＣＰＵ４１は、符号化終了フラグが付加されたEncodeコマンドの供給を受ける前に、Encodeコマンドの供給が中断された場合、スイッチ４３を制御して、コーディックプロセッサ４４への垂直同期信号の供給を停止させてコーディック処理を中断させ、再びEncodeコマンドの供給を受けたときに、スイッチ４３を制御して、コーディックプロセッサ４４への垂直同期信号の供給を再開させて、コーディック処理を再開させる。
【００８５】
図５を用いて、途中で符号化が中断される場合について説明する。
【００８６】
上位制御レイヤから符号化開始フラグを有するEncodeコマンドが発行されたとき、ローカルＣＰＵレイヤは、BeginEncodeコマンドをコーディックプロセッサ４４に発行する(図中T1のタイミング)とともに、コーディックプロセッサ４４へのベースバンド画像データ、すなわち、ビデオデータの供給を制御する(図中T2のタイミング)。コーディックプロセッサレイヤにおいては、BeginEncodeコマンドの供給を受け、垂直同期信号が供給されていれば、垂直同期信号をトリガとしてコマンドを認識し、符号化処理を実行する(図中T2のタイミング)。
【００８７】
そして、上位制御レイヤからのEncodeコマンドの発行が中断されたとき、ローカルＣＰＵ４１は、スイッチ４３を制御して、コーディックプロセッサ４４への垂直同期信号の供給を停止させてコーディック処理を中断させる(図中T3のタイミング)。垂直同期信号の供給が中断された場合、コーディックプロセッサ４４は、処理を中断する。この状態を、以下、間欠エンコード状態と称するものとする。
【００８８】
そして、上位制御レイヤからのEncodeコマンドの発行が再開されたとき、ローカルＣＰＵ４１は、スイッチ４３を制御して、コーディックプロセッサ４４への垂直同期信号の供給を再開させてコーディック処理を再開させる(図中T4のタイミング)。垂直同期信号の供給が再開された場合、コーディックプロセッサ４４は、処理を再開する。
【００８９】
そして、ローカルＣＰＵ４１は、符号化終了フラグが付加されたEncodeコマンドの供給を受け、Terminate Encodeコマンドを発行する。コーディックプロセッサ４４において、垂直同期信号の供給が続いている状態において、Terminate Encodeコマンドの供給を受けた時、符号化処理が終了される。
【００９０】
また、従来における場合のように、コーディックプロセッサ４４において、垂直同期信号の供給が続いている状態においてのみ、全てのコマンドが実行されるように、詳細には、入力される垂直同期信号をトリガとしてコマンドが認識され、コマンドを受信した次のフレームにて実際にコマンドが実行されるようになされていた場合、例えば、図６に示されるように、最終フレームの直前のフレームで、かつ、垂直同期信号の供給停止による符号化中断中にTerminate Encodeコマンドが発行されたときに、次に同期信号が入力されるまで符号化を終了することができず、上位制御レイヤが想定しているフレーム数より余分に符号化を実行してしまう恐れがある。
【００９１】
そこで、ローカルＣＰＵ４１は、符号化終了フラグが付加されたEncodeコマンドの供給を受けた場合、そのコマンドを実行するフレームにおいて非連続的な制御が実行されているか否か、すなわち、コーディックプロセッサ４４へ垂直同期信号が供給されている状態であるか否かを判断する。
【００９２】
コーディックプロセッサ４４への垂直同期信号の供給が中断されていない状態において、符号化終了フラグが付加されたEncodeコマンドの供給を受けたと判断された場合、ローカルＣＰＵ４１は、垂直同期信号をトリガとして認識および実行されるTerminate Encodeコマンドをコーディックプロセッサ４４へ供給する。
【００９３】
これに対して、コーディックプロセッサ４４への垂直同期信号の供給が中断された状態において、符号化終了フラグが付加されたEncodeコマンドの供給を受けたと判断された場合、ローカルＣＰＵ４１は、垂直同期信号をトリガとして認識および実行されるTerminate Encodeコマンドではなく、コーディックプロセッサ４４が垂直同期信号をトリガとせずに認識および実行可能なImmmediateTerminate Encodeコマンドをコーディックプロセッサ４４へ供給する。
【００９４】
コーディックプロセッサ４４は、垂直同期信号の供給が中断されていない状態においてTerminate Encodeコマンドの供給を受けたとき、または、垂直同期信号の供給が中断された状態においてImmmediateTerminate Encodeコマンドの供給を受けたとき、符号化処理を終了させる。
【００９５】
すなわち、ローカルＣＰＵ４１において発行されるコマンドには、コーディックプロセッサ４４において垂直同期信号をトリガとして認識および実行されるものと、垂直同期信号が供給されていなくても即時実行されるコマンドとがある。具体的には、符号化を開始させるコマンドであるBeginEncode、および、符号化を終了させる為のコマンドであるTerminate Encode、並びに、コーディックされるデータのＤＭＡ転送を開始または終了させるコマンドは、コーディックプロセッサ４４において、垂直同期信号をトリガとして認識され、実行されるものであるが、符号化を即時終了させる為のコマンドであるImmmediateTerminate Encodeコマンドは、垂直同期信号が供給されていなくても、コーディックプロセッサ４４において、即時実行されるコマンドである。
【００９６】
そして、コーディックプロセッサ４４は、BeginEncodeコマンドが実行された後、垂直同期信号が供給されている間のみ、コーディック処理を実行することができるが、垂直同期信号の供給が停止されている間は、コーディック処理を実行することができない（中断する）。コーディック処理の中断中は、コーディックにおけるパラメータや、動き補償のための参照画などは、そのまま保持され、処理が再開されたときに、そのまま利用可能なようになされている。そして、コーディックプロセッサ４４は、Terminate Encodeコマンドが供給されて垂直同期信号の供給を受けているとき、または、垂直同期信号の供給が停止されている状態でImmediate Terminate Encodeコマンドが供給されたとき、コーディック処理を終了する。
【００９７】
すなわち、ローカルＣＰＵ４１は、コマンドを発行することなく、コーディックプロセッサ４４への垂直同期信号の供給を制御することにより、コーディック処理の中断および再開を制御することができる。換言すれば、ローカルＣＰＵ４１は、コーディック処理の中断および再開を制御するためのコマンドを定義する必要がない。
【００９８】
次に、図８のフローチャートを参照して、ローカルＣＰＵ４１の処理について説明する。
【００９９】
ステップＳ１において、コマンド取得部８１は、ENCコマンドを受信したか否かを判断する。ステップＳ１において、ENCコマンドを受信していないと判断された場合、処理は、後述するステップＳ１０に進む。
【０１００】
ステップＳ１において、ENCコマンドを受信したと判断された場合、ステップＳ２において、コマンド取得部８１は、コマンド実行制御部８３にコマンドを供給するので、コマンド実行制御部８３は、受信したのは、符号化の開始を指令するENCコマンドであるか否かを判断する。
【０１０１】
ステップＳ２において、符号化の開始を指令するENCコマンドであると判断された場合、ステップＳ３において、コマンド実行制御部８３は、BeginENCコマンドをコーディックプロセッサ４４に発行し、コーディックプロセッサ４４のエンコード処理を開始させる。
【０１０２】
ステップＳ２において、符号化の開始を指令するENCコマンドではないと判断された場合、ステップＳ４において、コマンド実行制御部８３は、符号化の終了を指令するENCコマンドであるか否かを判断する。
【０１０３】
ステップＳ３の処理の終了後、または、ステップＳ４において、符号化の終了を指令するENCコマンドではないと判断された場合、ステップＳ５において、コマンド実行制御部８３は、ローカルメモリ４８とコーディックプロセッサ４４間のビデオデータのDMA転送開始コマンドを発行し、データ取得部によるコーディックデータのＤＭＡ転送の制御を開始させ、処理は、後述するステップＳ１２に進む。
【０１０４】
ステップＳ４において、符号化の終了を指令するENCコマンドであると判断された場合、ステップＳ６において、コマンド実行制御部８３は、現在、間欠エンコード中であるか否かを判断する。
【０１０５】
ステップＳ６において、現在、間欠エンコード中であると判断された場合、ステップＳ７において、コマンド実行制御部８３は、ImmedTermENCコマンドを発行し、コーディックプロセッサ４４のエンコード処理を即時終了させる。
【０１０６】
ステップＳ６において、現在、間欠エンコード中ではないと判断された場合、ステップＳ８において、コマンド実行制御部８３は、TermENCコマンドを発行し、コーディックプロセッサ４４のエンコード処理を、垂直同期信号をトリガとして終了させる。
【０１０７】
ステップＳ７、または、ステップＳ８の処理の終了後、ステップＳ９において、コマンド実行制御部８３は、ローカルメモリ４８とコーディックプロセッサ４４間のビデオデータのDMA転送終了コマンドを発行し、データ取得部によるコーディックデータのＤＭＡ転送の制御を終了させ、処理は、後述するステップＳ１２に進む。
【０１０８】
ステップＳ１において、ENCコマンドを受信していないと判断された場合、ステップＳ１０において、スイッチ制御部８７は、エンコード処理中であるか否かを判断する。
【０１０９】
ステップＳ１０において、エンコード処理中であると判断された場合、ステップＳ１１において、スイッチ制御部８７は、スイッチ４３を制御して、コーディックプロセッサ４４への垂直同期信号の供給を中止させる。
【０１１０】
ステップＳ５、ステップＳ９、または、ステップＳ１１の処理の終了後、もしくは、ステップＳ１０において、エンコード処理中ではないと判断された場合、ステップＳ１２において、コマンド取得部８１は、処理が終了されるか否かを判断する。
【０１１１】
ステップＳ１２において、処理が終了されないと判断された場合、処理は、ステップＳ１に戻り、それ以降の処理が繰り返される。ステップＳ１２において、処理が終了されると判断された場合、処理は終了される。
【０１１２】
このような処理により、上位制御レイヤからのコマンドの供給が非同期であった場合においても、例えば、多くのコマンドを定義したり、複雑な制御を行うことなく、コーディック処理が破綻することがないように、コーディック処理を中断させ、再開させることが可能となる。
【０１１３】
これにより、一般的なＣＰＵ(例えば、図１のＣＰＵ１１)を用いてコーディック処理とそれ以外の処理を制御させ、それらの実行を、ユーザの操作入力や上位レイヤの負荷に基づいて頻繁に切り替えても、複雑な制御を行うことなく、コーディック処理が破綻することがないようにすることができる。
【０１１４】
これにより、例えば、一般的なＣＰＵ(例えば、図１のＣＰＵ１１)を用いてコーディック処理とそれ以外の処理を制御させた場合、ＣＰＵには、コーディック以外の処理を主に実行させ、その処理の負荷が軽いタイミングを利用して、コーディック処理をバックグラウンドで実行させるように制御させることなども可能となる。この場合、コーディック処理は、ハードウェアが有する機能を集中して利用した場合と比較して、遅い処理しかできないが、例えば、バックグラウンドでコーディック処理を施して、後から、デコード済みのデータを再生させたり、エンコード済みのデータを記録媒体に記録させるような処理を実行させるようにすることができる。
【０１１５】
次に、図９のフローチャートを参照して、コーディックプロセッサ４４の処理について説明する。
【０１１６】
ステップＳ４１において、コーディックプロセッサ４４は、ローカルＣＰＵ４１から、BeginENCコマンドを受信したか否かを判断する。ステップＳ４１において、BeginENCコマンドを受信していないと判断された場合、受信したと判断されるまで、ステップＳ４１の処理が繰り返される。
【０１１７】
ステップＳ４１において、BeginENCコマンドを受信したと判断された場合、ステップＳ４２において、コーディックプロセッサ４４は、ローカルメモリ４８とコーディックプロセッサ４４間のビデオデータのDMA転送開始コマンドを受信したか否かを判断する。ステップＳ４２において、ローカルメモリ４８とコーディックプロセッサ４４間のビデオデータのDMA転送開始コマンドを受信していないと判断された場合、受信したと判断されるまで、ステップＳ４２の処理が繰り返される。
【０１１８】
ステップＳ４２において、ローカルメモリ４８とコーディックプロセッサ４４間のビデオデータのDMA転送開始コマンドを受信したと判断された場合、ステップＳ４３において、コーディックプロセッサ４４は、垂直同期信号は供給されているか否かを判断する。ステップＳ４３において、垂直同期信号は供給されていないと判断された場合、供給されたと判断されるまで、ステップＳ４３の処理が繰り返される。
【０１１９】
ステップＳ４３において、垂直同期信号は供給されたと判断された場合、ステップＳ４４において、コーディックプロセッサ４４は、ローカルメモリ４８とビデオデータのDMA転送を開始する。
【０１２０】
ステップＳ４５において、コーディックプロセッサ４４は、垂直同期信号は供給されているか否かを判断する。
【０１２１】
ステップＳ４５において、垂直同期信号は供給されていないと判断された場合、符号化処理は中断される。そして、ステップＳ４６において、コーディックプロセッサ４４は、ImmedTermENCコマンドを受信したか否かを判断する。ステップＳ４６において、ImmedTermENCコマンドを受信していないと判断された場合、処理は、ステップＳ４５に戻り、それ以降の処理が繰り返される。ステップＳ４６において、ImmedTermENCコマンドを受信したと判断された場合、処理は、後述するステップＳ５０に進む。
【０１２２】
ステップＳ４５において、垂直同期信号は供給されていると判断された場合、ステップＳ４７において、コーディックプロセッサ４４は、符号化を実行する。
【０１２３】
すなわち、垂直同期信号が供給されず、ImmedTermENCコマンドが発行されていなかった場合、ステップＳ４５およびステップＳ４６の処理が繰り返されて、符号化処理は、中断される。
【０１２４】
ここで、垂直同期信号は供給されていないと判断された場合、コーディックプロセッサ４４においては、符号化処理は終了されるのではなく、中断されるだけであるので、次に垂直同期信号が供給されるまで、例えば、動き保障に必要な参照画や、各種パラメータなどは、削除されることなくそのままの状態で保持される。すなわち、次に垂直同期信号が供給されたとき(例えば、ステップＳ４５において、垂直同期信号は供給されていると判断された場合)、コーディックプロセッサ４４は、符号化処理中断前の参照画や各種パラメータを利用して符号化処理を実行することができるので、最終的なコーディックの結果は、処理が中断されない場合と同一のものとすることができる。
【０１２５】
ステップＳ４８において、コーディックプロセッサ４４は、TermENCコマンドを受信したか否かを判断する。ステップＳ４８において、TermENCコマンドを受信していないと判断された場合、処理は、ステップＳ４５に戻り、それ以降の処理が繰り返される。
【０１２６】
ステップＳ４８において、TermENCコマンドを受信したと判断された場合、ステップＳ４９において、コーディックプロセッサ４４は、垂直同期信号は供給されているか否かを判断する。ステップＳ４９において、垂直同期信号は供給されていないと判断された場合、供給されたと判断されるまで、ステップＳ４９の処理が繰り返される。
【０１２７】
ステップＳ４６において、ImmedTermENCコマンドを受信したと判断された場合、または、ステップＳ４９において、垂直同期信号が供給されたと判断された場合、ステップＳ５０において、コーディックプロセッサ４４は、符号化を終了する。
【０１２８】
ステップＳ５１において、コーディックプロセッサ４４は、ローカルメモリ４８とコーディックプロセッサ４４間のビデオデータのDMA転送終了コマンドを受信したか否かを判断する。ステップＳ５１において、ビデオデータのDMA転送終了コマンドを受信していないと判断された場合、ビデオデータのDMA転送終了コマンドを受信したと判断されるまで、ステップＳ５１の処理が繰り返される。
【０１２９】
ステップＳ５１において、ビデオデータのDMA転送終了コマンドを受信したと判断された場合、ステップＳ５２において、コーディックプロセッサ４４は、垂直同期信号は供給されているか否かを判断する。ステップＳ５２において、垂直同期信号は供給されていないと判断された場合、供給されたと判断されるまで、ステップＳ５２の処理が繰り返される。
【０１３０】
ステップＳ５２において、垂直同期信号は供給されていると判断された場合、ステップＳ５３において、コーディックプロセッサ４４は、ローカルメモリ４８とビデオデータのDMA転送を終了し、処理が終了される。
【０１３１】
このような処理により、上位制御レイヤからのコマンドの供給が非同期であった場合においても、複雑な制御を行うことなく、コーディック処理が破綻することがないように、コーディック処理を中断させ、再開させることが可能となる。
【０１３２】
以上説明したように、本発明を適用することにより、コーディックプロセッサ４４に対する垂直同期信号の供給を制御することができ、さらに、コーディックプロセッサ４４に垂直同期信号が供給されていない状態においてもコーディックプロセッサ４４が認識可能なコマンドを定義し、ローカルＣＰＵレイヤが発行することが可能となる。
【０１３３】
これにより、上位制御レイヤは、このようなH/Wアクセラレータを用いたコーディック処理（例えば、HD Long GOP、および、MPEG IMXフォーマットの符号化などの処理）の制御を実行するにあたり、同期（連続的）、非同期（非連続的）制御を意識することなくコーディックをコントロールすることが可能となる。よって、上位制御レイヤでは、コーディックに特化した制御を行う必要がなくなるため、例えば、コーディックの実行中に他の処理をバックグラウンドで行うことができたり、または、他の処理を主として実行しているときにコーディックをバックグラウンドで行うことができるなど、よりフレキシブルなシステム構築が可能となる。
【０１３４】
また、このようなシステム構成を有することにより、上位制御プラットフォームのパフォーマンスに依存することなくコーディックを実行することが可能となる。
【０１３５】
なお、このコーディックプロセッサ４４は、例えば、ＭＰＥＧ（HD-LONG GOP、または、MPEG IMXフォーマットなどを含む）、ＪＰＥＧ(Joint Photographic Experts Group)2000、H.264／AVC(Advanced Video Coding)等のコーディックの役割を担い、コーディック処理に関する物理演算等を行うものである。
【０１３６】
更に、上位制御レイヤは、コーディック以外の処理を実行するH/Wアクセラレータを制御する場合においても、本発明を適用することにより、同様にして、同期（連続的）、非同期（非連続的）制御を意識することなく制御することが可能となることは言うまでもない。
【０１３７】
具体的には、一般的なＣＰＵ上で展開されている上位制御レイヤが、例えば、垂直同期信号や他の同期クロックなどに基づいて、同期（連続的）制御されるＩＣなどが搭載されたH/Wアクセラレータを制御するとともに、そのH/Wアクセラレータの処理以外の処理を並行して制御する場合、本発明を適用することにより、同様にして、同期（連続的）、非同期（非連続的）制御を意識することなく、H/Wアクセラレータの制御することが可能となり、好適である。
【０１３８】
特に、垂直同期信号や他の同期クロックなどに基づいて同期（連続的）制御されるＩＣなどが搭載されたH/Wアクセラレータが、時間的に継続して実行される処理を行い、その処理において、前の処理による生成物やパラメータが、あとの処理に利用されるようになされている場合、本発明を適用することにより、そのH/Wアクセラレータの処理以外の実行時に、処理が終了されることなく、前の処理による生成物やパラメータを残した状態で中断させて、その後、再開させることが可能となる。
【０１３９】
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０１４０】
この記録媒体は、図１に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM（Compact Disk-Read Only Memory），DVD（Digital Versatile Disk）を含む）、光磁気ディスク（ＭＤ(Mini-Disk)（商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア３１などにより構成される。
【０１４１】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１４２】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１４３】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１４４】
【図１】情報処理装置の構成を示すブロック図である。
【図２】図１のコーディック処理部の構成を示すブロック図である。
【図３】図２のローカルＣＰＵが有する機能について説明するための機能ブロック図である。
【図４】コマンドの発行と、コーディックの実行または中断および再開、並びに、コーディックの終了について説明するための図である。
【図５】コマンドの発行と、コーディックの実行または中断および再開、並びに、コーディックの終了について説明するための図である。
【図６】コマンドの発行と、コーディックの実行または中断および再開、並びに、コーディックの終了について説明するための図である。
【図７】コマンドの発行と、コーディックの実行または中断および再開、並びに、コーディックの終了について説明するための図である。
【図８】ローカルＣＰＵの処理について説明するためのフローチャートである。
【図９】コーディックプロセッサの処理について説明するためのフローチャートである。
【符号の説明】
【０１４５】
１  情報処理装置，  １１  ＣＰＵ，  １２  チップセット，  １３  ＨＤＤ，  １４  コーディック処理部，  １５  ＧＰＵ，  １６  音声データ処理部，  １７  入出力インタフェイス，  １８  操作入力取得部，  １９  ネットワークインタフェイス，  ２０  ドライブ，  ４１  ローカルＣＰＵ，  ４２  垂直同期信号生成部，  ４３  スイッチ，  ４４  コーディックプロセッサ，  ４５  PCI-Expressインタフェイス，  ４６  Ａ/Ｖ ＩＯインタフェイス，  ４７  ローカルメモリインタフェイス，  ４８  ローカルメモリ，  ４９  シンプルビデオプロセッサ，  ５０  フレームカウンタ，  ８１  コマンド取得部，  ８２  垂直同期信号取得部，  ８３  コマンド実行制御部，  ８４  データ取得制御部，  ８５  コーディック制御部，  ８６  データ出力制御部，  ８７  スイッチ制御部
【図１】
2008085615.tif 000003
【図２】
2008085615.tif 000004
【図３】
2008085615.tif 000005
【図４】
2008085615.tif 000006
【図５】
2008085615.tif 000007
【図６】
2008085615.tif 000008
【図７】
2008085615.tif 000009
【図８】
2008085615.tif 000010
【図９】
2008085615.tif 000011