JP2005159787A - 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム - Google Patents

画像処理装置、および画像処理方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP2005159787A
JP2005159787A JP2003396645A JP2003396645A JP2005159787A JP 2005159787 A JP2005159787 A JP 2005159787A JP 2003396645 A JP2003396645 A JP 2003396645A JP 2003396645 A JP2003396645 A JP 2003396645A JP 2005159787 A JP2005159787 A JP 2005159787A
Authority
JP
Japan
Prior art keywords
processing
codec
queue
video codec
synchronization signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003396645A
Other languages
English (en)
Inventor
Takayuki Sato
貴之 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2003396645A priority Critical patent/JP2005159787A/ja
Publication of JP2005159787A publication Critical patent/JP2005159787A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】 高速で効率的なエンコード、デコード処理を実現する画像処理装置、および方法を提供する。
【解決手段】 コーデック手段における処理を開始することが可能な予備処理データが、並列動作可能な複数のハードウェア手段によって準備されたことを条件として、コーデック手段の処理待ち行列としてのキューを設定し、キューの設定情報順に従って、順次、コーデック手段に対して処理開始命令を出力する。本構成により、特定の同期信号やコーデック手段の処理とは無関係に各ハードウェアにおける予備処理データの生成処理を進行させることが可能となる。また、各タイムスロットにおいて複数のコーデック処理を実行させ、また、コーデック処理状況を監視し、破綻のない処理を可能とした。
【選択図】 図3

Description

本発明は、画像処理装置、および画像処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、画像データの符号化、復号処理、すなわちエンコード、デコード処理を効率的に実行することを可能とした画像処理装置、および画像処理方法、並びにコンピュータ・プログラムに関する。
画像データの転送あるいは格納の際には、例えばMPEG(Moving Picture Experts Group)などのフォーマットを適用した符号化(圧縮)が実行されるのが一般的であり、画像データの符号化(圧縮)、および復号化(伸張)処理の高速化、効率化を目的とした技術開発、研究が多くなされている。
例えば、特許文献1には、ビデオデータの符号化復号処理において適用するスカラー処理器、ベクトル処理器、ビットストリーム処理器などの異なる処理機能を持つハードウェアブロックを並列動作させることにより、ハードウェアレベルでの高速処理を可能としたシステムが開示されている。
一方、ソフトウェアレベルでの改善についても、いくつかの取り組みが既に行われている。特に、サーバ・クライアントモデルを採用するシステムの改善案は多く、特許文献2や特許文献3には、サーバから発行された画像処理イベントを、クライアント側でスケジューリングし、システムとしての一連の処理を効率的に行う構成を開示している。
これらのモデルに共通して言えるのは、並列動作可能なハードウェアを搭載するとともに、一定のデータ単位の処理を各ハードウェアにそれぞれ並列にかつ独立に実行させるためのスケジューリング処理を実行するリアルタイムOSを実装しているという点である。システム制御をリアルタイムOSに依存する部分は大きく、リアルタイムOSの分野としても様々な改善が提案されている。リアルタイム処理システムとして、特定の信号に同期させた命令発行処理機構を用いた構成が知られている。
しかし、画像データの符号化、復号処理を行うビデオコーデック(Video Codec)と、ビデオコーデック(Video Codec)に提供する予備処理データの生成処理を行なう並列動作可能なハードウェアブロックを備えたこれまでのシステムは、ビデオコーデック(Video Codec)において実行するデータ処理単位毎に必要となるデータを準備するための処理を、複数のハードウェアを並列に実行させて高速化を図る構成であり、このようなシステムでは、各ハードウェアにおける待機時間が発生し、効率的な処理が実現されない場合がある。
図1を参照して、従来の画像データの符号化、復号処理システムにおける処理シーケンスを説明する。
図1において、左から右に時間(t)が経過している。ハードウェアブロックA101、B102、C103は、ビデオコーデック(Video Codec)105において実行する画像データの符号化処理、復号処理に必要となるデータの生成を行なう並列処理可能なハードウェアブロックであり、例えば、スカラー処理器、ベクトル処理器、ビットストリーム処理器などの異なる処理機能を持つハードウェアブロックである。
A00〜A01,B00〜B01,C00〜C01は、それぞれのハードウェアブロックA〜Cで実行する処理単位毎の処理時間を示している。
例えば、1つのデータ処理単位(例えば1フレーム分のビデオコーデック(Video Codec)処理単位)の符号化または復号処理に必要となる予備処理データは、ハードウェアブロックA101、B102、C103において並列に実行されるA00,B00,C00に示すハードウェアブロック処理において生成される。
A00,B00,C00に示すハードウェアブロック処理が完了すると、実際にビデオコーデック(Video Codec)105での符号化/復号処理を実行するための準備が完了したことをCPU104が検出する。この時点が図に示す情報がQ00の時点である。
この準備完了時点以降に、システムクロックとは別に定義されている特定の同期信号S00の発生をトリガとして、CPU104は、ビデオコーデック(Video Codec)105へ処理開始命令を発行する。ビデオコーデック(Video Codec)105は、処理開始命令の受領を条件として、ビデオコーデック(Video Codec)105での処理、すなわち、ハードウェアブロックA101、B102、C103において生成された予備処理データを受領して単位データの符号化または復号処理を実行する。図に示すV00がビデオコーデック(Video Codec)105での処理期間を示している。
この従来の方法では、次のビデオコーデック(Video Codec)処理に適用する予備処理データを生成するハードウェアブロックA101、B102、C103における処理、すなわち図に示すA01,B01,C01に示すグループの処理は、ビデオコーデック(Video Codec)105での1ステップ前の処理単位の処理期間V00が完了したことをCPUが通知された以後にしか実行できない。
すなわち、図に示す時間[W00]以降にハードウェアブロックA101、B102、C103は、次のデータ処理単位に対応する予備処理データの生成処理を開始することが可能となる。
したがって、実際には、各ハードウェアブロックA101、B102、C103では、次のデータ処理単位に対応する予備処理データの生成処理を実行できる状態にあるにもかかわらず、待機時間(例えばハードウェアブロックA101の待機時間:T1)が発生する。
この結果、ビデオコーデック(Video Codec)105での次のデータ処理単位に対応する符号化または復号処理が、同期信号S02の発生後まで待たされ、図に示すように、ビデオコーデック(Video Codec)105においても処理期間[V01]までの待機時間(T2)が発生してしまう。
このように、従来型のシステムでは、全てのハードウェアの処理完了確認後に発生するシステムクロックとは別に定義されている同期信号(Snn)に応じて、ビデオコーデックの処理を開始させ、ビデオコーデックの処理の完了後に次のデータ処理単位の予備処理データの生成処理を各ハードウェアに開始させるという処理を繰り返すシーケンスである。
このようなシーケンスを実行すると、次のビデオコーデック(Video Codec)処理を実行するための予備処理データの生成が各ハードウェアで完了していたとしても、1つ前のデータ処理単位についてのビデオコーデック(Video Codec)からの処理完了通知がない場合、ビデオコーデック(Video Codec)命令処理が待たされるばかりか、さらに次のビデオコーデック(Video Codec)命令の準備もできず、上位システム側の各ハードウェアブロックに空き時間(待ち時間)が発生することになる。
上述のように、従来型のハードウェアの並列処理は、ビデオコーデック(Video Codec)における処理データ単位の処理開始および終了に依存して、処理時間制御を行っていたため、各ハードウェアブロックにおける待機時間の発生など、処理効率の低下を発生させてしまうという問題がある。複数のデータ処理単位、例えばフレーム単位の画像データの符号化または復号処理を連続的に実行するシステムにおいて、このような待機時間の累積による効率低下は多大なものとなる。
各ハードウェアブロックが独立に処理できるような機構を提案した従来技術としては、特許文献4がある。この手法では、符号化・復号化の両処理において、各処理の準備が各ハードウェアブロックにて独立のジョブとして実行され、最終的な出力段において、あらかじめ用意しておいた時間情報を用いて、つじつまを合わせるという方法である。しかし、この方法では、あらかじめ時間情報を管理する機構が別途必要であり、アルゴリズム的にも複雑になるという問題がある。また、特許文献5には、時間管理を行う特別なタグを用いて、処理時間の保証、および、パイプラインの動作保証を行っているが、前者の方法と同様な実装の難しさが問題として残る。
また、より高度なシステムにおいては、通常のビデオコーデック(Video Codec)処理命令(デコード(Decode),エンコード(Encode))とは別に、特殊命令が実装されていることが望ましい。特殊命令とは、取り消し(Cancel)、やり直し(Retry)、中断(Pause)などの命令である。これらの特殊命令を実現することができれば、画像処理システムの拡張につながる。従来技術においては、各タイムスロットで処理すべきビデオコーデック(Video Codec)命令は1つしか保持することはできない。したがって、例えば、ビデオコーデックで現在の処理中の処理を取り消す必要がある場合、取り消し後にやり直すビデオコーデック(Video Codec)処理用に、各ハードウェアで準備していた各種情報の再処理が必要となる。
従来の構成においては、図1を参照して説明したように、ビデオコーデック(Video Codec)処理の完了通知が無いと、各ハードウェアは次の処理に移れないため、各ハードウェアでの再処理の開始も、ビデオコーデック(Video Codec)処理の完了通知の待機後にずれこむことになる。
このように、従来のハードウェアの並列処理による処理高速化を図った画像処理システムでは、様々なポイントで無駄な待機時間を発生させており、各ハードウェア処理ブロックおよびビデオコーデックを適用した効率的なパイプライン処理が実現されていなかった。
特開平10−93961号公報 特開平5−35835号公報 特開平6−242907号公報 特開2003−23626号公報 特許公表平4−503582号公報
本発明は、上述の問題点に鑑みてなされたものであり、並列処理可能なハードウェアとビデオコーデックとの組み合わせによる符号化処理または復号処理を実行する画像処理システムにおいて、個々のハードウェアブロックまたはビデオコーデックにおける待機時間を削減し、高速かつ効率的な処理を可能とした画像処理装置、および画像処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
本発明の第1の側面は、
データのエンコード処理またはデコード処理を実行する画像処理装置であり、
コーデック手段におけるデータのエンコード処理またはデコード処理に適用する予備処理データを生成する並列動作可能な複数のハードウェア手段と、
前記複数のハードウェア手段の生成した予備処理データを入力し、データのエンコード処理またはデコード処理を実行するコーデック手段と、
前記コーデック手段に対する処理開始命令を出力し、エンコード処理またはデコード処理のシーケンス制御を実行する処理制御手段とを有し、
前記処理制御手段は、
前記コーデック手段における処理を開始することが可能な予備処理データが準備されたことを条件として、前記コーデック手段の処理待ち行列としてのキューを設定し、前記キューの設定情報順に従って、順次、前記コーデック手段に対する処理開始命令を出力する構成を有することを特徴とする画像処理装置にある。
さらに、本発明の画像処理装置の一実施態様において、前記処理制御手段は、同期信号の発生を条件として、前記コーデック手段に対する処理開始命令を出力する処理を実行する構成であることを特徴とする。
さらに、本発明の画像処理装置の一実施態様において、前記処理制御手段は、同期信号の発生を条件として、前記コーデック手段に対する処理開始命令を出力する処理を実行する構成であり、同期信号の間隔によって規定される1タイムスロット期間において、前記コーデック手段に対する処理開始命令を複数出力する処理を実行する構成であることを特徴とする。
さらに、本発明の画像処理装置の一実施態様において、前記処理制御手段は、同期信号の間隔によって規定される1タイムスロット期間において、前記コーデック手段からの処理完了通知を受領したことを条件として、前記コーデック手段に対して、前記キューに設定された情報に基づいて決定される後続の処理開始命令を出力する処理を実行する構成であることを特徴とする。
さらに、本発明の画像処理装置の一実施態様において、前記処理制御手段は、前記コーデック手段の処理態様の異なる処理に対応して、前記コーデック手段の処理待ち行列としての複数のキューを設定し、異なるキューを順次選択し、該選択キューに設定された設定情報に基づいて、順次、前記コーデック手段に対して処理開始命令を出力する構成であることを特徴とする。
さらに、本発明の画像処理装置の一実施態様において、前記コーデック手段の処理態様の異なる処理は、エンコード処理およびデコード処理であり、前記処理制御手段は、エンコード処理待ち行列としてのエンコード処理キューと、デコード処理待ち行列としてのデコード処理キューとを設定し、該2つの異なるキューを交互に選択し、選択キューに設定された設定情報に基づいて、順次、前記コーデック手段に対して処理開始命令を出力する構成であることを特徴とする。
さらに、本発明の画像処理装置の一実施態様において、前記処理制御手段は、同期信号の発生を条件として、同期信号の間隔によって規定される1タイムスロット期間において、前記コーデック手段が実行予定のデータ処理単位情報を、前記キューに基づいて決定し、該決定情報をエントリとして設定したビデオコーデックリストを生成し、前記コーデック手段からの処理完了通知の受領に基づいて、前記ビデオコーデックリストに設定された完了処理に対応するエントリの削除処理を実行する構成であることを特徴とする。
さらに、本発明の画像処理装置の一実施態様において、前記処理制御手段は、同期信号の発生を条件として、該同期信号発生前のタイムスロットに実行予定であったビデオコーデック処理が未完了であるか否かを前記ビデオコーデックリストのエントリ有無に基づいて判定する処理を実行し、前記ビデオコーデックリストにエントリが残っている場合は、前記同期信号発生前のタイムスロットに実行予定であったビデオコーデック処理が未完了であると判断し、前記同期信号によって規定される後続タイムスロットにおいて、前記ビデオコーデックに対する新たな処理命令の出力を中止する構成を有することを特徴とする。
さらに、本発明の画像処理装置の一実施態様において、前記処理制御手段は、同期信号の発生を条件として、該同期信号発生前のタイムスロットに実行予定であったビデオコーデック処理が未完了であるか否かを前記ビデオコーデックリストのエントリ有無に基づいて判定する処理を実行し、前記ビデオコーデックリストにエントリが残っている場合は、前記同期信号発生前のタイムスロットに実行予定であったビデオコーデック処理が未完了であると判断し、前記同期信号によって規定される後続タイムスロットにおける前記ビデオコーデックの実行予定処理として、前記未完了の処理に続く処理を前記キューに基づいて追加する再スケジューリング処理を実行し、追加した処理情報の対応エントリを前記ビデオコーデックリストに設定し、前記後続タイムスロットにおいて、前のタイムスロットの実行予定処理が完了した際に、前記ビデオコーデックリストに追加設定したエントリに対応する処理の開始命令を前記ビデオコーデックに出力する構成を有することを特徴とする。
さらに、本発明の第2の側面は、
データのエンコード処理またはデコード処理を実行する画像処理方法であり、
並列動作可能な複数のハードウェア手段において、コーデック手段におけるデータのエンコード処理またはデコード処理に適用する予備処理データを生成する予備処理データ生成ステップと、
コーデック手段において、前記予備処理データを入力し、データのエンコード処理またはデコード処理を実行するコーデックステップと、
前記コーデック手段に対する処理開始命令を出力するとともに、エンコード処理またはデコード処理のシーケンス制御を実行する処理制御ステップとを有し、
前記処理制御ステップは、
前記コーデック手段における処理を開始することが可能な予備処理データが準備されたことを条件として、前記コーデック手段の処理待ち行列としてのキューを設定するキュー設定ステップと、
前記キューの設定情報順に従って、順次、前記コーデック手段に対する処理開始命令を出力するステップと、
を有することを特徴とする画像処理方法にある。
さらに、本発明の画像処理方法の一実施態様において、前記処理制御ステップは、同期信号の発生を条件として、前記コーデック手段に対する処理開始命令を出力する処理を実行するステップを含むことを特徴とする。
さらに、本発明の画像処理方法の一実施態様において、前記処理制御ステップは、同期信号の間隔によって規定される1タイムスロット期間において、前記コーデック手段に対する処理開始命令を複数出力するステップを含むことを特徴とする。
さらに、本発明の画像処理方法の一実施態様において、前記処理制御ステップは、さらに、同期信号の間隔によって規定される1タイムスロット期間において、前記コーデック手段からの処理完了通知を受領したことを条件として、前記コーデック手段に対して、前記キューに設定された情報に基づいて決定される後続の処理開始命令を出力する処理を実行するステップを含むことを特徴とする。
さらに、本発明の画像処理方法の一実施態様において、前記処理制御ステップは、前記コーデック手段の処理態様の異なる処理に対応して、前記コーデック手段の処理待ち行列としての複数のキューを設定し、異なるキューを順次選択し、該選択キューに設定された設定情報に基づいて、順次、前記コーデック手段に対して処理開始命令を出力するステップを含むことを特徴とする。
さらに、本発明の画像処理方法の一実施態様において、前記コーデック手段の処理態様の異なる処理は、エンコード処理およびデコード処理であり、前記処理制御ステップは、エンコード処理待ち行列としてのエンコード処理キューと、デコード処理待ち行列としてのデコード処理キューとを設定し、該2つの異なるキューを交互に選択し、選択キューに設定された設定情報に基づいて、順次、前記コーデック手段に対して処理開始命令を出力するステップを含むことを特徴とする。
さらに、本発明の画像処理方法の一実施態様において、前記処理制御ステップは、さらに、同期信号の発生を条件として、同期信号の間隔によって規定される1タイムスロット期間において、前記コーデック手段が実行予定のデータ処理単位情報を、前記キューに基づいて決定し、該決定情報をエントリとして設定したビデオコーデックリストを生成するステップと、前記コーデック手段からの処理完了通知の受領に基づいて、前記ビデオコーデックリストに設定された完了処理に対応するエントリの削除処理を実行するステップと、を有することを特徴とする。
さらに、本発明の画像処理方法の一実施態様において、前記処理制御ステップは、さらに、同期信号の発生を条件として、該同期信号発生前のタイムスロットに実行予定であったビデオコーデック処理が未完了であるか否かを前記ビデオコーデックリストのエントリ有無に基づいて判定する処理を実行するステップと、前記ビデオコーデックリストにエントリが残っている場合は、前記同期信号発生前のタイムスロットに実行予定であったビデオコーデック処理が未完了であると判断し、前記同期信号によって規定される後続タイムスロットにおいて、前記ビデオコーデックに対する新たな処理命令の出力を中止するステップとを有することを特徴とする。
さらに、本発明の画像処理方法の一実施態様において、前記処理制御ステップは、同期信号の発生を条件として、該同期信号発生前のタイムスロットに実行予定であったビデオコーデック処理が未完了であるか否かを前記ビデオコーデックリストのエントリ有無に基づいて判定する処理を実行するステップと、前記ビデオコーデックリストにエントリが残っている場合は、前記同期信号発生前のタイムスロットに実行予定であったビデオコーデック処理が未完了であると判断するステップと、前記同期信号によって規定される後続タイムスロットにおける前記ビデオコーデックの実行予定処理として、前記未完了の処理に続く処理を前記キューに基づいて追加する再スケジューリング処理を実行し、追加した処理情報の対応エントリを前記ビデオコーデックリストに設定し、前記後続タイムスロットにおいて、前のタイムスロットの実行予定処理が完了した際に、前記ビデオコーデックリストに追加設定したエントリに対応する処理の開始命令を前記ビデオコーデックに出力するステップとを有することを特徴とする。
さらに、本発明の第3の側面は、
データのエンコード処理またはデコード処理制御を実行するコンピュータ・プログラムであり、
並列動作可能な複数のハードウェア手段において、コーデック手段におけるデータのエンコード処理またはデコード処理に適用する予備処理データを生成する予備処理データ生成ステップと、
コーデック手段において、前記予備処理データを入力し、データのエンコード処理またはデコード処理を実行するコーデックステップと、
前記コーデック手段に対する処理開始命令を出力するとともに、エンコード処理またはデコード処理のシーケンス制御を実行する処理制御ステップとを有し、
前記処理制御ステップは、
前記コーデック手段における処理を開始することが可能な予備処理データが準備されたことを条件として、前記コーデック手段の処理待ち行列としてのキューを設定するキュー設定ステップと、
前記キューの設定情報順に従って、順次、前記コーデック手段に対する処理開始命令を出力するステップと、
を有することを特徴とするコンピュータ・プログラムにある。
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の構成によれば、コーデック手段における処理を開始することが可能な予備処理データが、並列動作可能な複数のハードウェア手段によって準備されたことを条件として、コーデック手段の処理待ち行列としてのキューを設定し、キューの設定情報順に従って、順次、コーデック手段に対して処理開始命令を出力する構成としたので、特定の同期信号や、コーデック手段の処理とは無関係に、各ハードウェアにおける予備処理データの生成処理を進行させることが可能となり、効率的な高速処理が実現される。
さらに、本発明の構成によれば、同期信号区間として定義される各タイムスロットにおいて複数のコーデック処理を実行させることが可能であり、より高速な処理が実現される。
また、本発明の構成によれば、各タイムスロットにおいて実行予定のコーデック処理が予定タイムスロット期間に終了できなかった場合に、次のタイムスロットで継続実行させる構成としたので、破綻のない処理が実現される。さらに、本発明の構成によれば、各タイムスロットにおいて実行予定のコーデック処理が予定タイムスロット期間に終了できなかった場合に、次のタイムスロットで実行する処理を再スケジューリングする構成としたので、処理遅れを解消し、破綻を防止するとともに高速処理を実現することが可能となる。
本発明の構成では、ビデオコーデック(Video Codec)処理システムに実行させる命令群を、上位システム側にてキュー登録してスケジューリングしている。したがって、現在のタイムスロット以降で処理すべき命令についても、キューに登録されることが許容される。これにより、対象タイムスロット中の処理以外に影響する例えば、取り消し(Cancel)、やり直し(Retry)、中断(Pause)といった特殊なシステム制御系の命令が発生した場合にも、必要な予備処理データの取り出しが即座に実行可能であり、このような付加的な高度なデータ処理にも対応することが可能となる。
以下、図面を参照しながら本発明の画像処理装置、および画像処理方法、並びにコンピュータ・プログラムの詳細について説明する。
まず、図2を参照して本発明の画像処理装置の構成について説明する。本発明の画像処理装置は、ビデオコーデック(Video Codec)240で実行する符号化処理または復号処理に適用する予備処理データの生成を行なう複数のハードウェア処理ブロックA,211、B212,C213を備えるとともに、画像処理のシーケンス制御を実行する処理制御手段としてのCPU221と、特定の処理タイムスロットの定義のための同期信号を発生する同期信号発生部222と、割り込み処理制御部(INT)223を持つ上位システム200と、複数のハードウェア処理ブロックA,211、B212,C213において生成した予備処理データを適用したデータ符号化処理または復号処理を実行するビデオコーデック(Video Codec)240と、ハードウェア処理ブロックA,211、B212,C213において生成した予備処理データの格納、ビデオコーデック(Video Codec)240の生成したデータの格納に適用するメモリ(SDRAM)230を有する。
システム全般のスケジューリングは、組み込み型のリアルタイムOS(RTOS)が稼動する処理制御手段としてのCPU221が担当する。リアルタイムOSは、リアルタイム処理能力を持つマルチタスクOSであり、他処理の終了を待つことなく、予め決められた時間内(例えば10μsec〜10msec)に確実にイベントハンドラを起動させて高速処理を実現するOSである。
ハードウェア処理ブロックA,211、B212,C213は、ビデオコーデック(Video Codec)240で実行する符号化処理または復号処理に適用する予備処理データの生成を行なうハードウェアであり、並列動作可能なハードウェアである。
ハードウェア処理ブロックA,211、B212,C213は、例えば、マルチプレクサ/デマルチプレクサ(MUX/DEMUX)、フレームメモリマネージャ、スカラー処理器、ベクトル処理器、ビットストリーム処理器などである。本実施例では3つの並列動作可能なハードウェアブロックA〜Cを持つ構成を例として説明するが、これらのハードウェア処理ブロックは3つとは限らずシステム仕様によって異なる数に設定可能である。
並列動作可能なハードウェア処理ブロックA,211、B212,C213の生成した予備処理データは、メモリ230に格納される。ビデオコーデック(Video Codec)240は、上位システム200のCPU221から、割り込み処理制御部223を介して処理開始命令を受領し、処理開始命令の受領を条件として、メモリ230に格納されたハードウェア処理ブロックA,211、B212,C213の生成した予備処理データを取り出して、データの符号化または復号処理を実行し、実行結果をメモリ230に格納する。
なお、図2に示す画像処理装置における処理実行結果として取得される符号化データは、例えば図示しないハードディスク等の大容量記憶手段に格納されたり、あるいは通信手段を介して外部出力される。また、図2に示す画像処理装置における処理実行結果として取得される復号データは、例えば図示しないディスプレイに出力される。
図2に示す画像処理装置において、システム全般のスケジューリングは、前述したように組み込み型のリアルタイムOSが稼動するCPU221が担当する。図3を参照して、本発明の画像処理装置において実行するデータの符号化または復号処理シーケンスについて説明する。
図3において、左から右に時間(t)が経過している。ハードウェアブロックA211、B212、C213は、図2に示す上位システム200内の並列動作可能なハードウェアブロックに対応する。これらのハードウェアブロックA211、B212、C213は、ビデオコーデック(Video Codec)240において実行する画像データの符号化処理、復号処理に必要となるデータの生成を行なう。処理制御手段としてのCPU221は、処理タイムスロットの定義のための同期信号を発生する同期信号発生部222からの同期信号S10,S11,S12・・を受領し、同期信号Snnの受領を条件として、ビデオコーデック240に対する処理命令を出力する。同期信号S10とS11の間隔は、一定間隔であり、これを1タイムスロット期間と定義する。
A10〜A11,B10〜B11,C10〜C11は、それぞれのハードウェアブロックA〜Cで実行する処理を示しており、矩形部の左端が処理開始時間、矩形部の右端が処理終了時間に対応する。矩形の横方向の長さが処理時間を示している。
例えば、1フレーム分のビデオコーデック(Video Codec)処理単位など、1つのデータ処理単位の符号化または復号処理に必要となる1組の予備処理データは、ハードウェアブロックA211、B212、C213において並列に実行される処理[A10,B10,C10]の結果として得られるデータ、あるいは処理[A11,B11,C11]の結果として得られるデータであり、これらは、図2に示すメモリ230に一時的に格納される。
各ハードウェアブロックA〜Cにおいて実行する最初のデータ処理単位に対応する処理(A10,B10,C10)が完了すると、CPU221は、スケジューリング処理の一環として、各ハードウェアブロックA〜Cにおいて生成した予備処理データを適用したビデオコーデック(Video Codec)240における符号化または復号処理プロセスの処理待ち行列としてのキューを設定する。例えば図に示すキュー301のような構成を持つキューを設定する。CPU221は、ビデオコーデック(Video Codec)240における処理を開始することが可能な予備処理データが各ハードウェアブロックA〜Cによって準備されたことを条件として、前記コーデック手段の処理待ち行列としてのキューを設定する。
キュー301のQ10は、各ハードウェアブロックA〜Cにおいて実行された最初のデータ処理単位に対応する処理(A10,B10,C10)の結果としての予備処理データ、または予備処理データに対応するバス情報に対応付けられている。ビデオコーデック(Video Codec)240は、キューに従って、各ハードウェアの生成した予備処理データを、Q10→Q11→・・・のキュー設定順に取り出して、取り出した予備処理データに基づく符号化処理または復号処理を、順次実行する。
キュー301に設定されるキュー情報Q10,Q11・・は、各ハードウェアブロックA〜Cにおいて生成した予備処理データの生成順に対応付けられており、ビデオコーデック(Video Codec)240は、キュー301の先頭から順番に、キュー情報を取り出し、キュー情報に対応付けられた各ハードウェアの生成した予備処理データをメモリ230から取得して符号化または復号処理を実行する。ビデオコーデック(Video Codec)240によって処理の開始された予備処理データに対応するキュー情報は、ビデオコーデック(Video Codec)240からの処理終了通知をCPU221が受領した時点で削除される。例えば、キュー301の先頭から削除され、第2番目のキュー情報が先頭に繰り上がる。すなわち図3に示すキュー301のキュー情報Q10に対応する予備処理データ[A10,B10,C10]に基づく符号化あるいは復号処理がビデオコーデック(Video Codec)240において終了すると、キュー301からキュー情報Q10は削除され、Q11がキュー301の先頭に設定される。なお、このキュー更新処理は、CPU221が実行する。
このキュー設定および更新処理を実行することにより、従来の方法で発生していた、ビデオコーデック(Video Codec)240からの完了通知の待ち合わせ期間が不要となり、各ハードウェアブロックA〜Cにおける次のデータ処理単位に対応する予備処理データの生成処理、すなわち、図3に示すA11,B11,C11の各処理が各ハードウェアブロックA〜Cにおいて、ビデオコーデック(Video Codec)からの完了通知を待つことなく開始できる。
特に、図3に示す例では、ハードウェアブロックC213は、最初のデータ処理単位のビデオコーデック(Video Codec)240の処理である[V10]の完了通知を、CPU221が受領する前に、次の処理単位に対応する予備処理データの生成処理[C11]が完了する。
このようにキューの設定により、各ハードウェアブロックA〜Cは、ビデオコーデック(Video Codec)240からの完了通知を待機することなく、次のデータ処理単位に対する処理に移行することができる。
先に、図1を参照して説明した待ち合わせ期間を必要とするシーケンスと比較すると、本発明のシーケンスによりシステム全体の画像処理の効率化を実現していることが証明される。なお、従来の処理方法を示す図1と本発明の手法である図3において、各ハードウェアブロックA〜Cの担当する処理は全く同じであり、図1における同期信号S00〜S02と、図3における同期信号S10〜S12とは同一タイミングで発生しているという前提とする。
図1では、1つ目のデータ処理単位に対応するビデオコーデック(Video Codec)の処理[V00]が同期信号[S00]の後に設定された後、2つ目のデータ処理単位に対応するビデオコーデック(Video Codec)の処理[V01]は、同期信号[S01]の後ではなく、その後の同期信号[S02]の後に設定される。
本発明のキュー設定方式では、1つ目のデータ処理単位に対応するビデオコーデック(Video Codec)の処理[V10]が同期信号[S10]の後に設定された後、2つ目のデータ処理単位に対応するビデオコーデック(Video Codec)の処理[V11]は、同期信号[S11]の後、すなわち、同期信号[S12]の前に設定され、図1に示す従来方式に比較すると、2つ目のデータ処理単位のビデオコーデック(Video Codec)処理が1タイムスロット分早く処理されることになる。
データ処理単位は例えば1フレームの画像データであり、例えば映画データなど、多数のフレーム処理を必要とする場合、本発明の構成の適用による処理時間の削減効果は大きなものとなる。すなわち、より大規模な上位システムへの実装の際に、より多くのタイムスロット数削減につながる可能性を持つ。
本発明の構成では、上述したように、ビデオコーデック(Video Codec)に実行させる命令群を、上位システム側にてキュー登録してスケジューリングしている。したがって、現在のタイムスロット以降で処理すべき命令についても、キューに登録されることが許容される。これにより、対象タイムスロット中の処理以外に影響する例えば、取り消し(Cancel)、やり直し(Retry)、中断(Pause)といった特殊なシステム制御系の命令が発生した場合にも、必要な予備処理データの取り出しが即座に実行可能であり、このような付加的な高度なデータ処理にも対応することが可能となる。
図4を参照して、本実施例1における処理制御手段としてのCPU221の処理手順について説明する。ステップS101において、並列動作可能な各ハードウェアブロックの生成した予備処理データを受領すると、ステップS102において、CPUは、キューの設定を実行する。図3に示したキュー301である。
ステップS101、ステップS102の処理は、ビデオコーデック(Video Codec)240の処理の進行状況に関わらず、繰り返し実行される。
ステップS103において同期信号[Snn]が発生すると、ステップS104においてCPUは、設定キューに基づいて、符号化または復号処理開始命令をビデオコーデック(Video Codec)240に対して出力する。ビデオコーデック(Video Codec)240において実行する処理は、キューの先頭に設定されたキュー情報に対応付けられた予備データに基づく符号化または復号処理である。
ステップS105において、未処理データがあるか否かを判定する。これは、キューに設定されたキュー情報が存在するか否かの判定処理として実行する。キュー情報が存在する場合は、ステップS103において同期信号の発生を待ち、ステップS104において、キューの先頭に設定されたキュー情報に基づく符号化または復号処理の処理開始命令をビデオコーデック(Video Codec)に出力する。この処理をキューにキュー情報がなくなるまで繰り返し実行する。
実施例1では、効率的な処理を可能とするため、キューを設定した構成を説明したが、実施例2では、より拡張された機能により、さらに高速な処理を可能とする構成について説明する。なお、実施例2も実施例1で説明した図2の構成を持つ画像処理装置が適用される。
図5を参照して、本実施例の画像処理装置において実行する処理シーケンスを説明する。本実施例の画像処理装置のビデオコーデック240は、各タイムスロット期間で2つのデータ処理単位の符号化または復号処理を実行する。例えば1データ処理単位が1フレーム画像データである場合、2フレーム分の画像データに対応する符号化または復号処理を実行する。
図5に示すように、処理制御手段としてのCPU221は、例えば同期信号S20の発生を条件として、ビデオコーデック240に対して2つのデータ処理単位に対応するデータの符号化または復号処理の実行命令を出力する。ビデオコーデック240は、1つのタイムスロット期間で2つのデータ処理単位に対応する処理[V20]、[V21]を実行する。
この処理を実現するために、各ハードウェアブロックA211,B212,C213が、第1データ処理単位に対応する処理[A20],[B20],[C20]によって生成した予備処理データ1と、第2データ処理単位に対応する処理[A21],[B21],[C21]によって生成した予備処理データ2について、CPU221は、連続するキューQ20,Q21として設定し、CPU221は、連続するキューQ20,Q21に対応する2つのデータ処理単位の符号化または復号を実行するように、同期信号S20の発生をトリガとして、ビデオコーデック(Video Codec)240に対して処理開始命令を出力する。
この設定により、ビデオコーデック(Video Codec)240は、2つのデータ処理単位に対応する符号化または復号処理[V20],[V21]を同じタイムスロット期間中に実行する。
なお、次に処理されることになる各ハードウェアブロックの予備処理データ生成処理であるA22,B22,C22を含め、全てのハードウェアブロックにおける処理は、ビデオコーデック(Video Codec)240の処理(V20,V21,V22)の完了通知に依存することなく実行可能であり、待機時間が不要となることは、前述した実施例1と同様である。
本実施例の構成によれば、2つのデータ処理単位の符号化または復号処理を1つの同期信号期間(タイムスロット期間)において実行するので、より高速な処理が可能となる。なお、システム仕様によっては、1つの同期信号期間(タイムスロット期間)において実行する処理として2つのデータ処理単位に限らず3以上のデータ処理単位として設定することも可能である。
図6を参照して、本実施例2における処理制御手段としてのCPU221の処理手順について説明する。ステップS201において、並列動作可能な各ハードウェアブロックの生成した予備処理データを受領すると、ステップS202において、CPUは、キューの設定を実行する。図3に示したキュー301である。
ステップS201、ステップS202の処理は、ビデオコーデック(Video Codec)240の処理の進行状況に関わらず、繰り返し実行される。
ステップS203において同期信号[Snn]が発生すると、ステップS204において、CPUは、まずステップS204aにおいて設定キューに基づいて、符号化または復号処理開始命令をビデオコーデック(Video Codec)240に対して出力する。さらに、ステップS204bにおいて、ビデオコーデック(Video Codec)240からの処理完了通知を受領すると、ステップS203aに戻り、さらに次の処理命令をキューから取得してビデオコーデック(Video Codec)240に出力する。
すなわち、ビデオコーデック(Video Codec)240は、1タイムスロット期間において2つの処理単位の符号化または復号処理を実行する。なお、2つの処理に限らず、3以上の処理を行なう設定としてもよい。1タイムスロット期間が経過したことを同期信号の発生に基づいて検出すると、ステップS205に進む。
次に、ステップS205において、未処理データがあるか否かを判定する。これは、キューに設定されたキュー情報が存在するか否かの判定処理として実行する。キュー情報が存在する場合は、ステップS203において同期信号の発生を待ち、ステップS204において、キューの先頭に設定されたキュー情報に基づく符号化または復号処理の処理開始命令をビデオコーデック(Video Codec)に繰り返し出力する。
ステップS205において、キューに設定されたキュー情報が存在しないことが確認されると、処理が終了する。
次に、本発明の画像処理における第3の実施例について説明する。実施例3では、ビデオコーデック(Video Codec)240が、各タイムスロット期間で、複数の異なる態様のビデオデータのコーデック処理(符号化または復号処理)を実行する構成例を説明する。なお、実施例3も実施例1で説明した図2の構成を持つ画像処理装置が適用される。
図7を参照して、本実施例の画像処理装置において実行する処理シーケンスを説明する。この実施例3の画像処理では、各ハードウェアブロックA〜Cの処理結果データ、すなわち、各処理データ単位の予備処理データは処理系統ごとに管理される。なお、図7においては、ハードウェアブロックA〜Cを1つにまとめて示してあるが、これらは、それぞれが並列動作可能なハードウェアブロックであり、実施例1,2と同様に個別に予備処理データ生成処理を実行しているものである。
図7に示す「A20,B20,C20」は、あるデータ処理単位のハードウェアブロックA〜Cで実行するエンコード(Encode)に関する予備処理データ生成処理期間311を示している。「A21,B21,C21」は、あるデータ処理単位のハードウェアブロックA〜Cで実行するデコード(Decode)に関する予備処理データ生成処理期間312を示している。
処理制御手段としてのCPU221は、エンコード(Encode)用キュー351とデコード(Decode)用キュー352のキューを別々に設定する。
ビデオコーデック(Video Codec)240は、各タイムスロット期間において、エンコード(Encode)とデコード(Decode)を各々1命令ずつ実行可能なシステムである。第1エンコード処理単位に対応する予備処理データ「A20,B20,C20」は、エンコード(Encode)用キュー351にキューQ20として設定される。
第1デコード処理単位に対応する予備処理データ「A21,B21,C21」は、デコード(Decode)用キュー352にキューQ21として設定される。
次の第2エンコード処理単位に対応する予備処理データ「A22,B22,C22」は、エンコード(Encode)用キュー351にキューQ22として設定される。
このようなキューの設定状態において、CPU221は、各同期信号[S20],[S21]を受けた段階でスケジューリング処理を実行し、エンコード(Encode)用キュー351とデコード(Decode)用キュー352の各キューに設定された予備処理データを1つずつ適用した符号化(エンコード(Encode))と、復号化(デコード(Decode))を実行するように、処理開始命令をビデオコーデック(Video Codec)240に出力する。なお、エンコード(Encode)用キュー351と、デコード(Decode)用キュー352から情報を取り出し、1タイムスロット期間に処理する命令のスケジューリング処理は、CPU221が実行する。
CPU221のスケジューリングに基づいて、ビデオコーデック(Video Codec)240は、エンコード(Encode)用キュー351の設定順に、エンコード処理用予備処理データに対するエンコード処理を実行し、さらに、デコード(Decode)用キュー352の設定順に、デコード処理用予備処理データに対するデコード処理を実行する。
例えば、図に示す同期信号[S20]の発生を条件として、CPU221は、ビデオコーデック240に対してエンコードおよびデコード処理開始命令を発行する。この処理開始命令を受領したビデオコーデック(Video Codec)240は、エンコード(Encode)用キュー351の設定順に、エンコード処理用予備処理データに対するエンコード処理[V20]を実行し、さらに、デコード(Decode)用キュー352の設定順に、デコード処理用予備処理データに対するデコード処理[V21]を実行する。
なお、CPU221は、同期信号の発生を条件として、同期信号の間隔によって規定される1タイムスロット期間において、ビデオコーデック(Video Codec)240が実行予定のデータ処理単位情報を、キューに基づいて決定し、該決定情報をエントリとして設定したビデオコーデックリスト353を設定し、ビデオコーデック(Video Codec)240において実行されている処理の管理を行なう。
本実施例では、上述したように、複数の異なる処理に適用する予備処理データをそれぞれ対応付けた複数のキューを設定し、CPU221のスケジューリングに基づいて、ビデオコーデックが各キューの設定順に各処理を実行することにより、異なる処理を効率的に、順次実行することが可能となる。
なお、エンコード処理とデコード処理とを並列に実行する処理としては、例えばネットワークを介して受信するコンテンツデータを符号化(エンコード)してハードディスク等の記憶媒体に格納する処理と、記録した符号化データを読み出して復号(デコード)し、再生する処理を並列に行なう場合などが想定される。
図8を参照して、本実施例3における処理制御手段としてのCPU221の処理手順について説明する。ステップS301において、並列動作可能な各ハードウェアブロックの生成した予備処理データを受領すると、ステップS302において、CPUは、ビデオコーデック(Video Codec)240の処理態様に応じた複数のキューの設定を実行する。図7に示すエンコード(Encode)用キュー351とデコード(Decode)用キュー352である。
ステップS301、ステップS302の処理は、ビデオコーデック(Video Codec)240の処理の進行状況に関わらず、繰り返し実行される。
ステップS303において同期信号[Snn]が発生すると、ステップS304において、CPUは、まずステップS304aにおいて、エンコード(Encode)用キュー351とデコード(Decode)用キュー352のいずれかの設定キューに基づいて、符号化または復号処理開始命令をビデオコーデック(Video Codec)240に対して出力する。さらに、ステップS204bにおいて、ビデオコーデック(Video Codec)240からの処理完了通知を受領すると、ステップS203aに戻り、さらに別のキューの処理命令をキューから取得してビデオコーデック(Video Codec)240に出力する。
すなわち、ビデオコーデック(Video Codec)240は、1タイムスロット期間において1つの処理単位の符号化処理と、1つの処理単位の復号処理を実行する。なお、システム仕様によっては、1つの同期信号期間(タイムスロット期間)において実行する処理として2つのデータ処理単位に限らず3以上のデータ処理単位として設定することも可能である。1タイムスロット期間が経過したことを同期信号の発生に基づいて検出すると、ステップS305に進む。
次に、ステップS305において、未処理データがあるか否かを判定する。これは、キュー、すなわちエンコード(Encode)用キュー351とデコード(Decode)用キュー352に設定されたキュー情報が存在するか否かの判定処理として実行する。キュー情報が存在する場合は、ステップS303において同期信号の発生を待ち、ステップS304において、キューの先頭に設定されたキュー情報に基づく符号化または復号処理の処理開始命令をビデオコーデック(Video Codec)に繰り返し出力する。
ステップS305において、キューに設定されたキュー情報が存在しないことが確認されると、処理が終了する。
次に、本発明の画像処理における第4の実施例について説明する。実施例4は、先に図5を参照して説明した実施例2の改良版である。なお、実施例4も実施例1で説明した図2の構成を持つ画像処理装置が適用される。
先に説明したように、実施例2に係る画像処理装置のビデオコーデック(Video Codec)240が、各タイムスロット期間で2つのデータ処理単位の符号化または復号処理を実行する例である。例えば1データ処理単位が1フレーム画像データである場合、2フレーム分の画像データに対応する符号化または復号処理を実行する。
しかし、ビデオコーデック(Video Codec)240において、2つのデータ処理単位の符号化または復号処理を1タイムスロット期間で完了しないという事態が発生する場合がある。このような事態に対応する処理構成を実施例4として説明する。
2つのデータ処理単位の符号化または復号処理を1タイムスロット期間で完了しない例について、図9を参照して説明する。
図9に示すように、処理制御手段としてのCPU221は、例えば同期信号S30の発生を条件として、ビデオコーデック240に対して2つのデータ処理単位に対応するデータの符号化または復号処理の実行命令を出力する。ビデオコーデック240は、1つのタイムスロット期間[S30]で2つのデータ処理単位に対応する処理[V30]、[V31]を実行しようとするが、処理[V31]が終了する前にタイムスロット期間[S30]が終了し、次のタイムスロット期間[S31]が開始してしまっている。
ビデオコーデック(Video Codec)240が実行する符号化処理または復号処理において、画像サイズの影響や処理の複雑さにより、処理時間が長くなり、図に示すように、処理[V31]の処理中に次の同期信号[S31]が発生してしまうといったことは想定されるものである。
このような事態に対する対処構成を持つ実施例4の画像処理シーケンスについて、図10を参照して説明する。
図10に示す処理シーケンスは、ビデオコーデック(Video Codec)240が実行する符号化処理または復号処理が1つのタイムスロット内で完了しない場合に、その未完了の処理を次のタイムスロットで優先的に処理を行い、後続の処理を次のタイムスロットにずらすという「間引き処理」を実行する構成である。
図10において、ビデオコーデック(Video Codec)240は、同期信号[S40]によって規定される1タイムスロット期間において、ハードウェアブロックの処理(A40,B40,C40)によって生成した予備処理データを適用した処理[V40]と、ハードウェアブロックの処理(A41,B41,C41)によって生成した予備処理データを適用した処理[V41]とを実行する予定であったが、処理[V41]の実行中に次の同期信号[S41]が発生した。
この場合、処理制御手段としてのCPU221は、同期信号[S41]の発生を条件として発行するビデオコーデック(Video Codec)240に対する処理開始命令の出力前に、前回のタイムスロット期間にビデオコーデック(Video Codec)240に対して発行済みの処理命令に対応する処理が完了しているか否かを判定し、完了していない場合は、予定していた処理開始命令、すなわち、キュー[Q42]に対応する処理開始命令を停止し、この処理開始命令を後続のタイムスロット、すなわち同期信号[S42]によって規定されるタイムスロットにずらす処理を実行する。
この命令発行間引き処理によって、ビデオコーデック(Video Codec)240は、2つのタイムスロット、すなわち同期信号[S40],[S41]で規定される2つのタイムスロットを利用してキュー[Q40],[Q41]に対応する処理[V40],[V41]を実行することが可能となる。
この処理方法を実現するためには、各同期信号が発生した際に、直前のタイムスロット内でビデオコーデック(Video Codec)240において処理すべき処理が、全て完了しているかどうかをCPU221が検出する必要がある。
CPU221は、各ハードウェアブロックの処理結果を保持するキューとは別に、スケジューリングの段階で、タイムスロット期間で処理すべき命令のみからなるビデオコーデックリスト361を設定し、ビデオコーデックリスト361に設定されたキュー情報に基づいて、各同期信号をトリガとしてビデオコーデック(Video Codec)240に出力する処理開始命令を決定する。CPU221は、同期信号の発生を条件として、同期信号の間隔によって規定される1タイムスロット期間において、ビデオコーデック(Video Codec)240が実行予定のデータ処理単位情報を、キューに基づいて決定し、該決定情報をエントリとして設定したビデオコーデックリスト361を設定する。
CPU221は、同期信号を受けスケジューリング処理が発生すると、処理命令をシーケンシャルに設定したキュー、例えばエンコード(Encode)用キューとデコード(Decode)用キューの先頭に登録されたキュー情報をビデオコーデックリスト361に順番に登録する。
このビデオコーデックリスト361に登録する順序は、想定するシステムによって異なるが、例えばCPU221での書くハードウェアブロックからの予備処理データの受け取り順、あるいは、エンコード(Encode)とデコード(Decode)の依存関係順などの設定が可能である。
ビデオコーデックリスト361に登録された命令に対応するキュー情報は、ビデオコーデック(Video Codec)240からの処理完了通知をCPU221が受けた際に、CPU221においてビデオコーデックリスト361から削除される。このリスト更新処理により、CPU221は、次の同期信号を受けた際に、ビデオコーデックリスト361の設定情報を参照してビデオコーデック(Video Codec)240に出力する処理開始命令の態様を決定することができる。
例えば、CPU221は、同期信号を受けた際に、ビデオコーデックリスト361が空であれば、次の実行予定の処理に対応するキューをエンコード(Encode)用キューとデコード(Decode)用キューの先頭から取得して、そのキュー情報をビデオコーデックリスト361に登録するとともに、登録キューに対応する処理開始命令をビデオコーデック(Video Codec)240に出力する。
一方、同期信号を受けた際に、ビデオコーデックリスト361が空でなく、何らかのキュー情報が設定されたままである場合は、その設定状態にあるキュー情報に対応する処理が未完了であると判断し、その同期信号において規定されるタイムスロットでは、新たなキューに対応する処理命令のビデオコーデック(Video Codec)240に対する出力を中止し、ビデオコーデック(Video Codec)240において、未完了の処理をその同期信号において規定されるタイムスロットにおいて継続して実行させる。このときのビデオコーデックリストのエントリ状態は、図10に示すビデオコーデックリスト361−aからビデオコーデックリスト361−bの状態となる。
すなわち、同期信号[S41]の発生時点で、Q41に対応する処理が未完了である場合、同期信号[S41]によって規定されるタイムスロット期間で実行する処理を示すビデオコーデックリスト361−bには、Q41のみが設定され、ビデオコーデック(Video Codec)240は、同期信号[S41]によって規定されるタイムスロット期間において、Q41に対応する処理[V41]のみを実行する。
このように、CPU221が、ビデオコーデックリスト361に基づいて、ビデオコーデック(Video Codec)240における処理完了状況を確認し、確認に基づいてビデオコーデック(Video Codec)240に対する処理開始命令の発行または中止を行なう構成としたので、破綻することのない処理が実現される。
このビデオコーデックリスト361を使用することで、ビデオコーデック(Video Codec)240における処理の「やり直し」といった処理も実現可能である。すなわち、ビデオコーデック(Video Codec)240において実行する符号化処理または復号処理に必要な予備処理データは、ビデオコーデック(Video Codec)240における処理の完了通知後に削除されることになり、ビデオコーデック(Video Codec)240における処理完了通知前であれば、やり直し対象の処理を行うための予備処理データはメモリ230に格納されており、常に取得することが可能であるからである。
図11を参照して、本実施例4における処理制御手段としてのCPU221の処理手順について説明する。ステップS401において、並列動作可能な各ハードウェアブロックの生成した予備処理データを受領すると、ステップS402において、CPUは、キューの設定を実行する。なお、設定キューは、実施例3と同様、ビデオコーデック(Video Codec)240の処理態様に応じた複数のキューの設定として実行してもよい。例えば、図7に示すエンコード(Encode)用キュー351とデコード(Decode)用キュー352である。
ステップS401、ステップS402の処理は、ビデオコーデック(Video Codec)240の処理の進行状況に関わらず、繰り返し実行される。
ステップS403において同期信号[Snn]が発生すると、CPUは、ステップS404において、ビデオコーデック(Video Codec)240が1タイムスロットにおいて実行予定のキューに対応するエントリをビデオコーデックリストに設定し、キューおよびビデオコーデックリストに基づいて、符号化または復号処理開始命令をビデオコーデック(Video Codec)240に対して出力する。
ステップS405において、同期信号の発生を検出することなく、ステップS406において、ビデオコーデック(Video Codec)240からの処理完了通知を受領すると、ステップS407において、ビデオコーデックリストを更新、すなわち、完了した処理に対応するエントリをビデオコーデックリストから削除する。さらに、ステップS408において、1タイムスロットにおける実行予定処理が終了したか否かを判定する。これは、ステップS404で設定したビデオコーデックリストのエントリが全て削除されたか否かを判定する処理として実行可能である。まだ、ビデオコーデックリストのエントリが残っている場合は、ステップS404以降の処理を繰り返す。
ステップS405において、1タイムスロットにおいて実行予定の処理の完了通知を受領する前に、同期信号の発生を検出した場合は、ステップS410に進み、処理開始命令を出力することなく、現在の処理を継続させて、ステップS406において、ビデオコーデック(Video Codec)240からの処理完了通知を受領し、その後、ステップS407において、ビデオコーデックリストを更新、すなわち、完了した処理に対応するエントリをビデオコーデックリストから削除する。
ステップS408において、1タイムスロットにおける実行予定処理が終了したと判定すると、ステップS409において、未処理データがあるか否かを判定する。これは、設定キュー、例えばエンコード(Encode)用キュー351とデコード(Decode)用キュー352に設定されたキュー情報が存在するか否かの判定処理として実行する。キュー情報が存在する場合は、ステップS403において同期信号の発生を待ち、ステップS404以下の処理を繰り返し実行する。
ステップS409において、キューに設定されたキュー情報が存在しないことが確認されると、処理が終了する。
次に、本発明の画像処理における第5の実施例について説明する。実施例5は、上述の実施例4の改良版である。なお、実施例5も実施例1で説明した図2の構成を持つ画像処理装置が適用される。
実施例4において説明した間引き処理による破綻防止構成は、各タイムスロットにおいて予定していたビデオコーデック(Video Codec)240の処理を遅延させるものであるため、システム全体の処理効率が低下することになる。
遅延させる処理が、デコード(Decode)処理である場合は、デコード結果としての画像データの表示速度が遅くなるという影響のみと考えられ、出力画像の見かけ上の問題は少なく押さえることが可能であるが、エンコード(Encode)処理を遅延させると、エンコード(Encode)した情報が次のビデオコーデック(Video Codec)処理に再利用されることがあるため、許容できない影響が発生する場合がある。
そこで、ビデオコーデック(Video Codec)240の処理が予定された処理期間において完了できない場合の第2の対処構成について、実施例5として説明する。
実施例5の画像処理シーケンスについて、図12を参照して説明する。実施例5の画像処理装置は、処理制御手段としてのCPU221が、各同期信号発生時に、ビデオコーデック(Video Codec)240の処理状況を検出し、検出したビデオコーデック(Video Codec)240の処理状況に応じて、各同期信号発生時にビデオコーデック(Video Codec)240に出力する処理開始命令を再スケジューリングして、発行する処理構成を持つ。
図12に示すように、同期信号[S50]において規定される最初のタイムスロット期間で処理すべきビデオコーデック(Video Codec)240の処理[V51]の実行途中で、次の同期信号[S51]が発生すると、CPU221は、ビデオコーデックリスト371を参照し、未完了の処理が残存していること判定し、同期信号[S51]によって規定されるタイムスロットでビデオコーデック(Video Codec)240に実行させる処理の再スケジューリングを行なう。
先の実施例4では、ビデオコーデック(Video Codec)240において処理の完了していない状態で、次のタイムスロットが開始、すなわち、同期信号が発生した場合は、継続中の処理を次のタイムスロットにおいて実行させる構成としていたが、本実施例5では、さらに、継続中の処理を次のタイムスロットにおいて実行させるとともに、次の処理をそのタイムスロットで実行させるために、処理スケジューリングを変更し、次に予定された処理をキューの先頭から取得してビデオコーデックリスト371に設定し、ビデオコーデックリスト371の更新を実行する。
ビデオコーデックリスト371は、同期信号S50の時点で、ビデオコーデックリスト371−aのようにエントリQ50とQ51が設定され、ビデオコーデック(Video Codec)240において処理[V50]が完了して、CPU221が処理完了通知を受領すると、エントリQ50が削除され、一旦、エントリQ51のみが設定されるが、この時点で、同期信号S51が発生すると、ビデオコーデックリスト371−bのように、新たに次の処理[Q52]に対応する新規エントリをリストに追加設定する。すなわち、同期信号[S51]によって規定さるタイムスロット期間において、実行すべき処理として[Q51]、[Q52]が設定される。
CPUは、同期信号[S51]によって規定されるタイムスロット期間において、ビデオコーデック(Video Codec)240から処理[V51]についての処理完了通知381を受領すると、次の処理としてキューおよびビデオコーデックリスト371−bに設定されているQ52に対応する符号化または復号処理の開始命令をビデオコーデック(Video Codec)240に出力する。
これにより、ビデオコーデック(Video Codec)240では処理[V52]が処理[V51]の完了後にすぐに開始される。さらに、ビデオコーデック(Video Codec)240において最適な処理が行われた場合、次の同期信号[S52]が発生する前に、ビデオコーデック(Video Codec)240での処理[V52]が完了する場合もあり、同期信号[S52]以降のタイムスロット期間においては、さらに新たな2つのデータ処理単位の処理をビデオコーデック(Video Codec)240に実行させることが可能であり、処理の遅れを解消することが可能となる。この方法の実現には、CPUで管理するタイムスロット期間の状態拡張が必要ではあるが、画像処理システム全体の処理効率を含め、非常に有効な手法と言える。
図13を参照して、本実施例5における処理制御手段としてのCPU221の処理手順について説明する。ステップS501において、並列動作可能な各ハードウェアブロックの生成した予備処理データを受領すると、ステップS502において、CPUは、キューの設定を実行する。なお、設定キューは、実施例3と同様、ビデオコーデック(Video Codec)240の処理態様に応じた複数のキューの設定として実行してもよい。例えば、図7に示すエンコード(Encode)用キュー351とデコード(Decode)用キュー352である。
ステップS501、ステップS502の処理は、ビデオコーデック(Video Codec)240の処理の進行状況に関わらず、繰り返し実行される。
ステップS503において同期信号[Snn]が発生すると、CPUは、ステップS504に進む。ステップS504において、CPUは、ビデオコーデック(Video Codec)240が1タイムスロットにおいて実行予定のキューに対応するエントリをビデオコーデックリストに設定し、キューおよびビデオコーデックリストに基づいて、符号化または復号処理開始命令をビデオコーデック(Video Codec)240に対して出力する。
ステップS505において、同期信号の発生を検出することなく、ステップS506において、ビデオコーデック(Video Codec)240からの処理完了通知を受領すると、ステップS507において、ビデオコーデックリストを更新、すなわち、完了した処理に対応するエントリをビデオコーデックリストから削除する。さらに、ステップS508において、1タイムスロットにおける実行予定処理が終了したか否かを判定する。これは、ステップS504で設定したビデオコーデックリストのエントリが全て削除されたか否かを判定する処理として実行可能である。まだ、ビデオコーデックリストのエントリが残っている場合は、ステップS504以降の処理を繰り返す。
ステップS505において、1タイムスロットにおいて実行予定の処理の完了通知を受領する前に、同期信号の発生を検出した場合は、ステップS510に進み、ビデオコーデックリストの更新処理を実行する。ここでの更新は、次に予定される処理情報をキューから取得して、ビデオコーデックリストの新規エントリとして設定するエントリ追加処理である。具体的には、図12に示すビデオコーデックリスト371−bのように、新たに次の処理[Q52]に対応する新規エントリをリストに追加設定する処理である。図12に示した例では、同期信号[S51]によって規定さるタイムスロット期間において、実行すべき処理として[Q51]、[Q52]を設定する処理である。
ステップS506において、ビデオコーデック(Video Codec)240からの処理完了通知を受領し、その後、ステップS507において、ビデオコーデックリストを更新、すなわち、完了した処理に対応するエントリをビデオコーデックリストから削除する。ただし、システム仕様によっては、再スケジューリング時間のコストが大きくなり、ステップS510でコーデックリストの更新を行なうことが、必ずしも適切でない場合がある。従ってステップS510では、完了通知前に同期信号が発生したという情報のみを保持し、以下に説明するステップS508からステップS509へ遷移する途中において、保持情報から再スケジューリングが必要であれば、コーデックリストを更新するような設定としてもよい。
ステップS508において、1タイムスロットにおける実行予定処理が終了したと判定すると、ステップS509において、未処理データがあるか否かを判定する。これは、設定キュー、例えばエンコード(Encode)用キューとデコード(Decode)用キューに設定されたキュー情報が存在するか否かの判定処理として実行する。キュー情報が存在する場合は、ステップS503において同期信号の発生を待ち、ステップS504以下の処理を繰り返し実行する。
ステップS509において、キューに設定されたキュー情報が存在しないことが確認されると、処理が終了する。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本発明の構成によれば、コーデック手段における処理を開始することが可能な予備処理データが、並列動作可能な複数のハードウェア手段によって準備されたことを条件として、コーデック手段の処理待ち行列としてのキューを設定し、キューの設定情報順に従って、順次、コーデック手段に対して処理開始命令を出力する構成としたので、特定の同期信号や、コーデック手段の処理とは無関係に、各ハードウェアにおける予備処理データの生成処理を進行させることが可能となり、効率的な高速処理が実現される。従って、本発明は、例えばビデオデータの符号化による格納処理や、符号化データの復号再生処理を実行する画像処理装置において適用可能である。
さらに、本発明の構成によれば、同期信号区間として定義される各タイムスロットにおいて複数のコーデック処理を実行させることが可能であり、より高速な処理が実現される。また、本発明の構成によれば、各タイムスロットにおいて実行予定のコーデック処理が予定タイムスロット期間に終了できなかった場合に、次のタイムスロットで継続実行させる構成としたので、破綻のない処理が実現される。さらに、本発明の構成によれば、各タイムスロットにおいて実行予定のコーデック処理が予定タイムスロット期間に終了できなかった場合に、次のタイムスロットで実行する処理を再スケジューリングする構成としたので、処理遅れを解消し、破綻を防止するとともに高速処理を実現することが可能となる。従って、本発明は、例えばビデオデータの符号化による格納処理や、符号化データの復号再生処理を実行する画像処理装置において適用可能である。
本発明の構成では、ビデオコーデック(Video Codec)処理システムに実行させる命令群を、上位システム側にてキュー登録してスケジューリングしている。したがって、現在のタイムスロット以降で処理すべき命令についても、キューに登録されることが許容される。これにより、対象タイムスロット中の処理以外に影響する例えば、取り消し(Cancel)、やり直し(Retry)、中断(Pause)といった特殊なシステム制御系の命令が発生した場合にも、必要な予備処理データの取り出しが即座に実行可能であり、このような付加的な高度なデータ処理にも対応することが可能となる。従って、本発明は、例えばビデオデータの符号化による格納処理や、符号化データの復号再生処理を実行する画像処理装置であり、取り消し(Cancel)、やり直し(Retry)、中断(Pause)といった特殊なシステム制御系の命令を実行する画像処理装置において適用可能である。
従来の画像処理装置における処理シーケンスを説明する図である。 本発明の画像処理装置の構成を示す図である。 本発明の画像処理装置の実施例1の処理シーケンスを説明する図である。 本発明の画像処理装置の実施例1における制御手段としてのCPUにおける制御シーケンスを説明するフローチャートである。 本発明の画像処理装置の実施例2の処理シーケンスを説明する図である。 本発明の画像処理装置の実施例2における制御手段としてのCPUにおける制御シーケンスを説明するフローチャートである。 本発明の画像処理装置の実施例3の処理シーケンスを説明する図である。 本発明の画像処理装置の実施例3における制御手段としてのCPUにおける制御シーケンスを説明するフローチャートである。 1タイムスロットにおいて、ビデオコーデックが複数の処理データ単位の処理が完了できない場合の例を説明する図である。 本発明の画像処理装置の実施例4の処理シーケンスを説明する図である。 本発明の画像処理装置の実施例4における制御手段としてのCPUにおける制御シーケンスを説明するフローチャートである。 本発明の画像処理装置の実施例5の処理シーケンスを説明する図である。 本発明の画像処理装置の実施例5における制御手段としてのCPUにおける制御シーケンスを説明するフローチャートである。
符号の説明
101 ハードウェアブロックA
102 ハードウェアブロックB
103 ハードウェアブロックC
104 CPU
105 ビデオコーデック
200 上位システム
211 ハードウェアブロックA
212 ハードウェアブロックB
213 ハードウェアブロックC
221 CPU
222 同期信号発生部
223 割り込み処理制御部
230 メモリ(SDRAM)
240 ビデオコーデック
301 キュー
351 エンコードキュー
352 デコードキュー
371 ビデオコーデックリスト

Claims (19)

  1. データのエンコード処理またはデコード処理を実行する画像処理装置であり、
    コーデック手段におけるデータのエンコード処理またはデコード処理に適用する予備処理データを生成する並列動作可能な複数のハードウェア手段と、
    前記複数のハードウェア手段の生成した予備処理データを入力し、データのエンコード処理またはデコード処理を実行するコーデック手段と、
    前記コーデック手段に対する処理開始命令を出力し、エンコード処理またはデコード処理のシーケンス制御を実行する処理制御手段とを有し、
    前記処理制御手段は、
    前記コーデック手段における処理を開始することが可能な予備処理データが準備されたことを条件として、前記コーデック手段の処理待ち行列としてのキューを設定し、前記キューの設定情報順に従って、順次、前記コーデック手段に対する処理開始命令を出力する構成を有することを特徴とする画像処理装置。
  2. 前記処理制御手段は、
    同期信号の発生を条件として、前記コーデック手段に対する処理開始命令を出力する処理を実行する構成であることを特徴とする請求項1に記載の画像処理装置。
  3. 前記処理制御手段は、
    同期信号の発生を条件として、前記コーデック手段に対する処理開始命令を出力する処理を実行する構成であり、
    同期信号の間隔によって規定される1タイムスロット期間において、前記コーデック手段に対する処理開始命令を複数出力する処理を実行する構成であることを特徴とする請求項1に記載の画像処理装置。
  4. 前記処理制御手段は、
    同期信号の間隔によって規定される1タイムスロット期間において、前記コーデック手段からの処理完了通知を受領したことを条件として、前記コーデック手段に対して、前記キューに設定された情報に基づいて決定される後続の処理開始命令を出力する処理を実行する構成であることを特徴とする請求項3に記載の画像処理装置。
  5. 前記処理制御手段は、
    前記コーデック手段の処理態様の異なる処理に対応して、前記コーデック手段の処理待ち行列としての複数のキューを設定し、異なるキューを順次選択し、該選択キューに設定された設定情報に基づいて、順次、前記コーデック手段に対して処理開始命令を出力する構成であることを特徴とする請求項1に記載の画像処理装置。
  6. 前記コーデック手段の処理態様の異なる処理は、エンコード処理およびデコード処理であり、
    前記処理制御手段は、
    エンコード処理待ち行列としてのエンコード処理キューと、デコード処理待ち行列としてのデコード処理キューとを設定し、該2つの異なるキューを交互に選択し、選択キューに設定された設定情報に基づいて、順次、前記コーデック手段に対して処理開始命令を出力する構成であることを特徴とする請求項5に記載の画像処理装置。
  7. 前記処理制御手段は、
    同期信号の発生を条件として、同期信号の間隔によって規定される1タイムスロット期間において、前記コーデック手段が実行予定のデータ処理単位情報を、前記キューに基づいて決定し、該決定情報をエントリとして設定したビデオコーデックリストを生成し、
    前記コーデック手段からの処理完了通知の受領に基づいて、前記ビデオコーデックリストに設定された完了処理に対応するエントリの削除処理を実行する構成であることを特徴とする請求項1に記載の画像処理装置。
  8. 前記処理制御手段は、
    同期信号の発生を条件として、該同期信号発生前のタイムスロットに実行予定であったビデオコーデック処理が未完了であるか否かを前記ビデオコーデックリストのエントリ有無に基づいて判定する処理を実行し、
    前記ビデオコーデックリストにエントリが残っている場合は、前記同期信号発生前のタイムスロットに実行予定であったビデオコーデック処理が未完了であると判断し、前記同期信号によって規定される後続タイムスロットにおいて、前記ビデオコーデックに対する新たな処理命令の出力を中止する構成を有することを特徴とする請求項7に記載の画像処理装置。
  9. 前記処理制御手段は、
    同期信号の発生を条件として、該同期信号発生前のタイムスロットに実行予定であったビデオコーデック処理が未完了であるか否かを前記ビデオコーデックリストのエントリ有無に基づいて判定する処理を実行し、
    前記ビデオコーデックリストにエントリが残っている場合は、前記同期信号発生前のタイムスロットに実行予定であったビデオコーデック処理が未完了であると判断し、
    前記同期信号によって規定される後続タイムスロットにおける前記ビデオコーデックの実行予定処理として、前記未完了の処理に続く処理を前記キューに基づいて追加する再スケジューリング処理を実行し、追加した処理情報の対応エントリを前記ビデオコーデックリストに設定し、前記後続タイムスロットにおいて、前のタイムスロットの実行予定処理が完了した際に、前記ビデオコーデックリストに追加設定したエントリに対応する処理の開始命令を前記ビデオコーデックに出力する構成を有することを特徴とする請求項7に記載の画像処理装置。
  10. データのエンコード処理またはデコード処理を実行する画像処理方法であり、
    並列動作可能な複数のハードウェア手段において、コーデック手段におけるデータのエンコード処理またはデコード処理に適用する予備処理データを生成する予備処理データ生成ステップと、
    コーデック手段において、前記予備処理データを入力し、データのエンコード処理またはデコード処理を実行するコーデックステップと、
    前記コーデック手段に対する処理開始命令を出力するとともに、エンコード処理またはデコード処理のシーケンス制御を実行する処理制御ステップとを有し、
    前記処理制御ステップは、
    前記コーデック手段における処理を開始することが可能な予備処理データが準備されたことを条件として、前記コーデック手段の処理待ち行列としてのキューを設定するキュー設定ステップと、
    前記キューの設定情報順に従って、順次、前記コーデック手段に対する処理開始命令を出力するステップと、
    を有することを特徴とする画像処理方法。
  11. 前記処理制御ステップは、
    同期信号の発生を条件として、前記コーデック手段に対する処理開始命令を出力する処理を実行するステップを含むことを特徴とする請求項10に記載の画像処理方法。
  12. 前記処理制御ステップは、
    同期信号の間隔によって規定される1タイムスロット期間において、前記コーデック手段に対する処理開始命令を複数出力するステップを含むことを特徴とする請求項10に記載の画像処理方法。
  13. 前記処理制御ステップは、さらに、
    同期信号の間隔によって規定される1タイムスロット期間において、前記コーデック手段からの処理完了通知を受領したことを条件として、前記コーデック手段に対して、前記キューに設定された情報に基づいて決定される後続の処理開始命令を出力する処理を実行するステップを含むことを特徴とする請求項12に記載の画像処理方法。
  14. 前記処理制御ステップは、
    前記コーデック手段の処理態様の異なる処理に対応して、前記コーデック手段の処理待ち行列としての複数のキューを設定し、異なるキューを順次選択し、該選択キューに設定された設定情報に基づいて、順次、前記コーデック手段に対して処理開始命令を出力するステップを含むことを特徴とする請求項10に記載の画像処理方法。
  15. 前記コーデック手段の処理態様の異なる処理は、エンコード処理およびデコード処理であり、
    前記処理制御ステップは、
    エンコード処理待ち行列としてのエンコード処理キューと、デコード処理待ち行列としてのデコード処理キューとを設定し、該2つの異なるキューを交互に選択し、選択キューに設定された設定情報に基づいて、順次、前記コーデック手段に対して処理開始命令を出力するステップを含むことを特徴とする請求項14に記載の画像処理方法。
  16. 前記処理制御ステップは、さらに、
    同期信号の発生を条件として、同期信号の間隔によって規定される1タイムスロット期間において、前記コーデック手段が実行予定のデータ処理単位情報を、前記キューに基づいて決定し、該決定情報をエントリとして設定したビデオコーデックリストを生成するステップと、
    前記コーデック手段からの処理完了通知の受領に基づいて、前記ビデオコーデックリストに設定された完了処理に対応するエントリの削除処理を実行するステップと、
    を有することを特徴とする請求項10に記載の画像処理方法。
  17. 前記処理制御ステップは、さらに、
    同期信号の発生を条件として、該同期信号発生前のタイムスロットに実行予定であったビデオコーデック処理が未完了であるか否かを前記ビデオコーデックリストのエントリ有無に基づいて判定する処理を実行するステップと、
    前記ビデオコーデックリストにエントリが残っている場合は、前記同期信号発生前のタイムスロットに実行予定であったビデオコーデック処理が未完了であると判断し、前記同期信号によって規定される後続タイムスロットにおいて、前記ビデオコーデックに対する新たな処理命令の出力を中止するステップと、
    を有することを特徴とする請求項16に記載の画像処理方法。
  18. 前記処理制御ステップは、
    同期信号の発生を条件として、該同期信号発生前のタイムスロットに実行予定であったビデオコーデック処理が未完了であるか否かを前記ビデオコーデックリストのエントリ有無に基づいて判定する処理を実行するステップと、
    前記ビデオコーデックリストにエントリが残っている場合は、前記同期信号発生前のタイムスロットに実行予定であったビデオコーデック処理が未完了であると判断するステップと、
    前記同期信号によって規定される後続タイムスロットにおける前記ビデオコーデックの実行予定処理として、前記未完了の処理に続く処理を前記キューに基づいて追加する再スケジューリング処理を実行し、追加した処理情報の対応エントリを前記ビデオコーデックリストに設定し、前記後続タイムスロットにおいて、前のタイムスロットの実行予定処理が完了した際に、前記ビデオコーデックリストに追加設定したエントリに対応する処理の開始命令を前記ビデオコーデックに出力するステップと、
    を有することを特徴とする請求項16に記載の画像処理方法。
  19. データのエンコード処理またはデコード処理制御を実行するコンピュータ・プログラムであり、
    並列動作可能な複数のハードウェア手段において、コーデック手段におけるデータのエンコード処理またはデコード処理に適用する予備処理データを生成する予備処理データ生成ステップと、
    コーデック手段において、前記予備処理データを入力し、データのエンコード処理またはデコード処理を実行するコーデックステップと、
    前記コーデック手段に対する処理開始命令を出力するとともに、エンコード処理またはデコード処理のシーケンス制御を実行する処理制御ステップとを有し、
    前記処理制御ステップは、
    前記コーデック手段における処理を開始することが可能な予備処理データが準備されたことを条件として、前記コーデック手段の処理待ち行列としてのキューを設定するキュー設定ステップと、
    前記キューの設定情報順に従って、順次、前記コーデック手段に対する処理開始命令を出力するステップと、
    を有することを特徴とするコンピュータ・プログラム。
JP2003396645A 2003-11-27 2003-11-27 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム Pending JP2005159787A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003396645A JP2005159787A (ja) 2003-11-27 2003-11-27 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003396645A JP2005159787A (ja) 2003-11-27 2003-11-27 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム

Publications (1)

Publication Number Publication Date
JP2005159787A true JP2005159787A (ja) 2005-06-16

Family

ID=34722019

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003396645A Pending JP2005159787A (ja) 2003-11-27 2003-11-27 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP2005159787A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010041352A (ja) * 2008-08-05 2010-02-18 Panasonic Corp 画像復号装置及び画像復号方法
JP2010252069A (ja) * 2009-04-16 2010-11-04 Panasonic Corp 画像復号装置及び画像復号方法
CN110096624A (zh) * 2019-04-26 2019-08-06 深圳前海微众银行股份有限公司 一种编解码方法、装置、计算机设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010041352A (ja) * 2008-08-05 2010-02-18 Panasonic Corp 画像復号装置及び画像復号方法
JP2010252069A (ja) * 2009-04-16 2010-11-04 Panasonic Corp 画像復号装置及び画像復号方法
CN110096624A (zh) * 2019-04-26 2019-08-06 深圳前海微众银行股份有限公司 一种编解码方法、装置、计算机设备及存储介质
CN110096624B (zh) * 2019-04-26 2023-03-21 深圳前海微众银行股份有限公司 一种编解码方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
JP5698156B2 (ja) 復号装置、復号方法、および編集装置
TW200540634A (en) Processor system, dma control circuit, dma control method, control method for DMA controller, graphic processing method, and graphic processing circuit
JP3802521B2 (ja) 符号化装置、符号化制御方法及び符号化制御プログラム
JP2008282150A (ja) 信号処理装置及び信号処理システム
JP5002849B2 (ja) 信号処理装置、遊技機
JP2006268377A (ja) プログラム起動制御装置及びプログラム起動制御方法
JP4281720B2 (ja) データ処理装置、データ処理方法、データ処理システム、プログラムおよび記録媒体
JP2005159787A (ja) 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム
US20060179180A1 (en) Signal processing apparatus, signal processing system and signal processing method
JP2011066843A (ja) 並列符号化装置及びプログラム並びに画像データの符号化方法
JP2006157873A (ja) データ処理システム、再生装置、コンピュータ、再生方法、プログラムおよび記録媒体
JP4362480B2 (ja) レジューム再生システム
JP4878054B2 (ja) 映像解析装置,映像解析方法および映像解析プログラム
US7729591B2 (en) Data processing apparatus, reproduction apparatus, data processing system, reproduction method, program, and storage medium
KR101085393B1 (ko) 복수의 프로세스를 멀티태스킹하기 위한 명령 실행 방법 및장치
US10908975B2 (en) Computer system architecture
JP2010011125A (ja) 画像形成装置、制御方法及び制御プログラム
JPH11353291A (ja) マルチプロセッサシステム及びタスク交換プログラムを記録した媒体
JP2009100206A (ja) 画像符号化データ復号化装置
US7627232B2 (en) Reproduction apparatus, data processing system, reproduction method, program, and storage medium
JP5589654B2 (ja) 映像音声再生装置、および映像音声再生方法
JP4385913B2 (ja) 編集装置、編集方法及びプログラム並びにファイル管理装置及びファイル管理方法
KR20240124330A (ko) 가속 프로세싱 유닛의 인라인 중단
JP2004135067A (ja) 動画像再生処理方法、動画像再生装置および動画像再生処理プログラム
JP2006024124A (ja) 制御システム、制御装置および方法、記録媒体、並びにプログラム