(58)【調査した分野】(Int.Cl.,DB名)
前記複数のコンテンツに応じたタスクを、前記目標完了時刻以内に完了できない場合は、前記スケジュール部が、予め定められた優先度に応じてスケジューリングを行う請求項1に記載の画像処理装置。
前記第1のタスクが前記第1の画像処理部に割り当てられてから実行開始されるまでの間に新たなリクエストが受け付けられた場合、前記新たなリクエストに対する第2のタスクの推定時間と、前記第1のタスクの推定時間を比較して、
前記推定時間の比較結果に応じて、前記第1のタスクを前記第2の画像処理部に割り当てるとともに、前記第2のタスクを前記第1の画像処理部に割り当てる請求項6に記載の画像処理装置。
【発明を実施するための形態】
【0011】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0012】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0013】
実施の形態1
本実施の形態に係る画像処理装置は、コンテンツに対して符号化又は復号化等の画像処理を行うプロセッサシステムである。画像処理装置は複数のプロセッサを備えたマルチプロセッサシステムである。複数のプロセッサは、並列に画像処理を行う。より具体的には、画像処理装置は、複数のコンテンツに対して、並列にビデオ符号化・復号化を行う。本実施の形態にかかる画像処理装置とその制御方法について、
図1を用いて説明する。
図1は、画像処理装置の全体構成を示すブロック図である。
【0014】
画像処理装置100は、リクエスト受付部11、リクエストキュー12、リクエスト選択部13、可変長符号処理部VLC、画像信号処理部CE0、画像信号処理部CE1、画像信号処理部CE2、推定部16、スケジュール部15、優先情報記憶部41と、データバス51、メモリコントローラ52、及びメモリ53を備えている。ここでは、画像処理装置100が、映像コンテンツをリアルタイムで再生するためのデコーダであるとして説明する。
【0015】
リクエスト受付部11は、リクエスト元31〜34からのリクエストを受け付ける。ここでは、リクエスト受付部11が、リクエスト元31〜34から、コンテンツA〜コンテンツDに対するリクエストをそれぞれ受け付けている。リクエスト元31からリクエストされたコンテンツをコンテンツAとし、リクエスト元32からリクエストされたコンテンツをコンテンツBとし、リクエスト元33からリクエストされたコンテンツをコンテンツCとし、リクエスト元34からリクエストされたコンテンツをコンテンツDとしている。コンテンスA〜Dは、それぞれ独立したコンテンツである。
【0016】
以下、説明の簡略化のため、コンテンツAのリクエストをリクエストAとする。同様に、コンテンツB、C、DのリクエストをそれぞれリクエストB、C、Dとする。さらに、リクエストAに応じて、画像処理装置100が実行するタスクをタスクAとする。同様に、リクエストB、C、Dに応じて、画像処理装置100が実行するタスクをそれぞれ、タスクB、C、Dとする。例えば、コンテンツAを再生するための処理がタスクAとなる。
【0017】
例えば、リクエスト元31は画像処理装置100に、コンテンツAの再生をリクエストする。そして、リクエスト元31は、リクエストAを画像処理装置100に順次送信する。すなわち、コンテンツAを再生させるために、リクエスト元31は、繰り返しリクエストAを画像処理装置100に送信する。例えば、リクエスト元31は、コンテンツAのピクチャ単位(フレーム単位もしくはフィールド単位)で送信する。そして、画像処理装置100は、リクエスト元31から送信されるコンテンツをリアルタイムで再生する。すなわち、リクエストが受け付けられたコンテンツデータに対して随時画像処理を行う。
【0018】
リクエスト元31〜34から送信されたリクエストには、所定の符号化方式で符号化されたコンテンツデータが含まれている。例えば、コンテンツデータは、ハフマン符号を用いて圧縮されている。符号化形式としては、例えば、H.264/MPEG−4 AVC等を用いることができる。
【0019】
リクエストキュー12は、リクエスト受付部11で受け付けられたリクエストを格納する。リクエストキュー12は複数のリクエストを格納できるようになっている。なお、リクエストキュー12に空きがない場合、リクエスト受付部11は、リクエストを受け付けない。また、リクエストキュー12は、リクエストに応じて、目標となる完了時刻(以下、目標完了時刻)をスケジュール部15に出力する。
【0020】
なお、目標完了時刻とは、コンテンツの再生などを遅滞なく行うためにタスクを完了しなければならない時刻を示す。目標完了時刻は、リクエストごとに設定されている。すなわち、あるリクエストに対して画像信号処理部CE0〜CE2が実行するタスクが、目標完了時刻までに完了すれば、当該コンテンツが遅滞なく再生される。一方、コンテンツに対応するタスクが目標完了時刻までに完了できなくなってしまった場合、コンテンツ再生時にコマ落ちなどが発生するおそれがある。
【0021】
リクエスト選択部13は、リクエストキュー12に格納されたリクエストに応じて、タスクを実行する画像信号処理部CE0〜CE2を選択する。例えば、リクエスト選択部13は、リクエストAに対するタスクAを実行するプロセッサとして、画像信号処理部CE0を選択する。また、リクエスト選択部13は、スケジュール部15で設定されたスケジュールに応じて、タスクを実行する画像信号処理部CEを選択している。
【0022】
可変長符号処理部VLCは、可変長符号デコードを行うコーデック処理部である。可変長符号処理部VLCは、リクエスト元31〜34からのコンテンツデータに対してデコード処理を行う。可変長符号処理部VLCは、例えばハフマン符号に対してデコード処理を行うことで、非圧縮データを生成する。そして、メモリコントローラ52は、非圧縮データとなったコンテンツデータをメモリ53にバッファする。可変長符号処理部VLCは、例えば、リクエストの受付順に、コンテンツデータをデコードする。あるいは、可変長符号処理部VLCは、ビットレートの高いコンテンツデータをビットレートの低いコンテンツデータよりも先にデコードしてもよい。
【0023】
さらに、可変長符号化処理部VLCは、推定用コーデックパラメータを推定部16に出力する。推定用コーデックパラメータは、推定部16における完了時間の推定に用いられる。例えば、符号化のタイプや、動きベクトルの本数が推定用コーデックパラメータとなる。
【0024】
画像信号処理部CE0〜CE2は、リクエストに応じたタスクを実行する画像処理プロセッサである。なお、以下の説明において、画像信号処理部CE0〜CE2を識別せずに説明する場合、画像信号処理部CEとして記載する。画像信号処理部CEは、可変長符号処理部VLCでデコード処理が行われたコンテンツデータに対して、画像処理を行う。画像信号処理部CE0〜CE2は、例えば、離散的逆コサイン変換(IDCT)等の数学的な信号処理を実行する。これにより、コンテンツデータが再生可能となる。
【0025】
画像信号処理部CE0〜CE2は、それぞれ並列に信号処理を行う。例えば、画像信号処理部CE0がコンテンツAに対する画像処理を行っている間、画像信号処理部CE1がコンテンツBに対する画像処理を行い、かつ、画像信号処理部CE2がコンテンツCに対する画像処理を行う。これにより、画像処理装置100が異なるコンテンツを並列に再生することができる。あるいは、リクエストAが連続した場合、画像信号処理部CE0〜CE2がタスクAを並行して処理していてもよい。画像信号処理部CE0〜CE2は、同等のプロセッサとなっている。
【0026】
画像信号処理部CEは、画像信号処理における補正用コーデックパラメータを推定部16に出力する。補正用コーデックパラメータは、推定部16における推定完了時間の補正に用いられる。例えば、符号化のタイプや、動きベクトルの本数が補正用コーデックパラメータとなる。あるいは、バスアクセス回数を補正用コーデックパラメータとしてもよい。さらに、画像信号処理部CEは、タスクの完了に要した処理時間を推定部16に出力する。画像信号処理部CEは、実際のタスク処理に要した処理時間を補正用コーデックパラメータに対応付けて、推定部16に出力する。画像信号処理CEは、リクエスト毎に、タスクの処理時間を推定部16に出力する。
【0027】
可変長符号処理部VLC、画像信号処理部CEは、ピクチャ単位(フレーム単位もしくはフィールド単位)で、コンテンツデータを処理する。可変長符号処理部VLC、画像信号処理部CEは、データバス51を介してメモリコントローラ52と接続されている。メモリコントローラ52は、メモリ53に対するデータの書き込み、及び読み出しを制御する。メモリ53は、例えば、DDR(Double Data Rate)メモリであり、コンテンツデータやコーデックパラメータ等をバッファする。
【0028】
例えば、可変長符号処理部VLC、及び画像信号処理部CEが処理を行うとき、コンテンツデータはメモリ53に書き込まれる。あるいは、可変長符号処理部VLC、及び画像信号処理部CEが処理を行うとき、メモリ53から必要なデータを読み出す。例えば、可変長符号処理部VLCが可変長符号処理を行うためのデータを、メモリコントローラ52は、メモリ53に書き込む、又はメモリ53から読み出す。また、画像信号処理部CEが画像信号処理を行うためのデータを、メモリコントローラ52は、メモリ53に書き込む、又はメモリ53から読み出す。すなわち、可変長符号処理部VLC、及び画像信号処理部CEがデータバス51にアクセスすることで、メモリ53へのデータの書き込み、及び読み出しが実行させる。
【0029】
推定部16は、補正用コーデックパラメータ、推定用コーデックパラメータ、及び処理時間に基づいて、画像信号処理部CEがタスク処理に要する時間を推定する。すなわち、推定部16は、リクエストに応じたタスクの実行にかかる処理時間を推定時間として推定する。推定部16は、推定時間をスケジュール部15に出力する。推定部16は、コンテンツの1処理(ピクチャ)単位に、推定時間を動的に推定する。推定部16は、可変長符号処理部VLC、及び画像信号処理部CEから出力されるパラメータや実際の処理時間を用いて、随時、推定時間を補正する。
【0030】
優先情報記憶部41は、コンテンツの優先情報を記憶している。優先情報は、どのコンテンツを優先して処理するかを示す情報である。すなわち、優先情報記憶部41は、コンテンツA〜Dのうち、どのコンテンツを優先して処理するかが設定されている。優先情報記憶部41は、優先情報をスケジュール部15に出力する。
【0031】
スケジュール部15は、目標完了時刻、優先情報、及び推定時間に基づいて、画像信号処理部CE0〜CE2が実行するタスクのスケジューリングを行う。すなわち、スケジュール部15は、リクエストキュー12に格納されているリクエストのそれぞれに対して、タスク実行先の画像信号処理部CEを指定する。例えば、リクエストA、Bがリクエストキューに格納されている場合、画像信号処理部CE0がタスクAを実行し、画像信号処理部CE1がタスクBを実行するように、スケジュール部15は、リクエストと画像信号処理部CEを対応付けていく。
【0032】
スケジュール部15は、各リクエストの実行開始と、実行先を動的に決定する。スケジュール部15は、推定時間を用いて、各リクエストの目標完了時刻を満たすように、実行順や実行先を決定する。全てのリクエストが目標完了時刻内にスケジューリングできない場合は、予め決められたコンテンツ間の優先順に従って決定する。すなわち、優先情報に従った順番で、タスクの実行順、及び実行先を決定する。例えば、コンテンツAがコンテンツB〜Dよりも優先度が高い場合、コンテンツAに対するタスクAを優先的に実行させる。
【0033】
そして、スケジュール部15は、リクエスト毎に、タスク実行先のプロセッサを指定する。リクエスト選択部13は、スケジュール部15で設定されたスケジュールに従って、タスク実行先の画像信号処理部CEを選択する。したがって、リクエスト選択部13は、画像信号処理部CE0〜CE2の中からタスクの実行先となる画像信号処理部CEを選択する。よって、タスクの実行先に選択された画像信号処理部CEは、当該タスクを実行する。
【0034】
次に、
図2を用いて、画像処理装置100の動作について、説明する。
図2は、画像処理装置100の全体動作を示すフローチャートである。
【0035】
まず、リクエスト受付部11がリクエスト元からのリクエストを受け付ける(S101)。すると、リクエストに対応するコンテンツデータに対して、可変長符号処理部VLCが符号化処理を実行する(S102)。可変長符号化処理部VLCは、例えば、リクエストが受け付けられた順番に、コンテンツデータをデコードする。さらに、可変長符号処理部VLCは、推定用コーデックパラメータを推定部16に出力する。
【0036】
推定部16が、画像信号処理部CEがリクエストに対応するタスクを完了する推定時間を推定する(S103)。推定部16は、可変長符号処理部VLCから出力された推定用コーデックパラメータ等に基づいて、推定時間を推定している。
【0037】
そして、スケジュール部15は、推定時間に基づいて、リクエストのスケジューリングを行う(S104)。スケジュール部15でのスケジュールに従って、画像信号処理部CEがタスクを実行する、あるいは、画像信号処理部CEに対する実行予約がなされる(S105)。そして、画像信号処理部CEがタスクの実行を終了したら、補正用コーデックパラメータを推定部16に出力する(S106)。すなわち、実際の処理時間に、動きベクトルの本数と符号化のタイプを対応付けて、推定部16に出力する。
【0038】
可変長符号処理部VLCと画像信号処理部CEは、それぞれ別個にリクエストを受ける。すなわち、あるリクエストについて、可変長符号処理部VLCがリクエストを受けた後、画像信号処理部CEがリクエストを受ける。
図3に可変長符号処理部VLCと画像信号処理部CEのデコーダ動作タイミング例を示す。可変長符号処理部VLCでの処理結果は一度メモリ53にバッファされる。そして、画像信号処理部CEがメモリ53から処理結果を読み出して、処理を行う。このように、あるリクエストについて、可変長符号処理部VLCが処理を行った後、画像信号処理部CEが処理を行う。
【0039】
次に、推定部16における推定処理について説明する。推定部16は、受け付けたリクエストのタスク実行にかかる画像信号処理部CEの処理時間を推定時間として推定する。推定部16は、可変長符号処理部VLCが出力するパラメータを用いたフィードフォワード推定値に基づいて、推定時間を求めている。すなわち、フィードフォワード推定値を基に、画像信号処理部CEが直前に出力した処理時間をフィードバック補正する。
【0040】
推定部16における推定時間の推定について、
図4を用いて詳細に説明する。
図4はバスアクセス回数と推定時間との関係の一例を示すグラフである。
図4では、横軸が画像信号処理部CEのバスアクセス回数を示し、縦軸が推定時間を示している。すなわち、
図4は、バスアクセス回数に対する推定時間の特性を示している。
【0041】
可変長符号処理部VLCでは、デコードのパラメータとして、符号化のタイプや動きベクトルの本数などが決まる。そして、推定部16は、符号化のタイプや動きベクトルの本数に基づいて、画像信号処理部CEがバスにアクセスする回数を求める。推定部16は、バスアクセス回数に応じて、推定時間を推定する。具体的には、符号化のタイプがフレーム間符号化の場合、フレーム内符号化に比べて、処理が複雑になるため、バスアクセス回数が増加する。また、動きベクトルの本数が多いほど、処理が複雑になるため、バスアクセス回数が増加する。例えば、推定部16は、予め設定されたテーブルを参照して、符号化のタイプ及び動きベクトルの本数からバスアクセス回数を求める。
【0042】
可変長符号処理部VLCは、あるリクエストに符号化のタイプ及び動きベクトルの本数をコーデックパラメータとして推定部16に出力する。推定部16は、符号化のタイプ及び動きベクトルの本数に応じて、当該リクエストにおける画像信号処理部CEのバスアクセス回数を算出する。そして、推定部16は、バスアクセス回数に基づいて、処理時間を推定する。
【0043】
図4では、バスアクセス回数に応じて推定時間が線形に増加する特性を示している。したがって、推定部16は、バスアクセス回数に基づいて、処理時間をフィードフォワード推定することができる。さらに、画像信号処理部CEで以前のリクエストの処理に要した処理時間を用いて、推定時間をフィードバック補正している。例えば、前回のリクエストの処理に要した処理時間を用いて、推定時間の増分の傾きや基準値(切片)を補正している。
図4では、処理時間の実績値を用いたフィードバック補正後の特性を実線で示し、フィードバック補正前の特性を破線で示している。推定部16は、フィードバック補正後の特性を参照して、バスアクセス回数に応じた推定時間を推定する。
【0044】
そして、スケジュール部15は、推定部16で推定した推定時間を用いて、リクエストのスケジューリングを行う。すなわち、スケジュール部15はリクエストを処理する画像信号処理部CEとその順番を決定する。スケジュール部15は、各タスクが目標完了時刻を越えないように、リクエストの順番入れ替えや、実行する画像信号処理部CEを決定する。
【0045】
図5にスケジュール部15におけるスケジューリングのフローチャートを示す。まず、リクエストがあるとi=0に設定する(S201)。なお、iは画像信号処理部CE0〜CE2を識別する数である。
図1の場合、すなわち、画像信号処理部CEが3個の場合、iは0、1、2となる。i=0の場合、画像信号処理部CE0を示し、i=1の場合の画像信号処理部CE1を示し、i=2の場合、画像信号処理部CE2を示す。
【0046】
i=0に設定した後、画像信号処理部CEiが実行中、かつ割り当て可能か否かを判定する(S202)。すなわち、他のタスクを実行中の画像信号処理CEi(ここでは、i=0のため画像信号処理部CE0)において、リクエストのタスクを実行した場合、そのタスクが目標完了時刻までに完了するか否かを判定する。画像信号処理部CEiが実行中、かつ割り当て可能な場合、スケジュール部15が画像信号処理部CEiに処理開始予約を行う(S203)。そして、スケジュール部15がタスクのスケジューリングを終了する。なお、処理開始予約がなされた場合、画像信号処理部CEiが現在実行しているタスクが終了したら、その後に該当リクエストのタスクを実行する。もちろん、画像信号処理部CEiに処理開始を予約する前に、既に画像信号処理部CEiに他のタスクの処理開始予約がなされていた場合、現在実行中のタスクと、既に処理開始予約済みのタスクの処理が完了したら、画像信号処理部CEiは、該当リクエストのタスクを実行する。
【0047】
一方、画像信号処理部CEiが実行中、かつ割り当て可能でない場合、iをインクリメントする(S204)。そして、iが(CE最大数−1)を超えているか否かいないかを判定する(S205)。iが(CE最大数−1)以下の場合(S205のNO)、ステップS202に戻る。すなわち、画像信号処理部CEi(ここでは、i=1)が実行中であり、かつ割り当て可能かを判定する。このように、ステップS202〜ステップS205の処理を繰り返すことで、実行中、かつ割り当て可能な画像信号処理部CEiを画像信号処理部CE0から順番に探索することができる。
【0048】
iが(CE最大数−1)を越えた場合(S205のYES)、すなわち、実行中、かつ割り当て可能な画像信号処理部CEiがない場合、i=0に設定する(S206)。すなわち、処理を実行中の画像信号処理部CEのうち、タスクを処理可能な画像信号処理部CEがない場合、ステップS206に移行する。そして、i=0に設定したら、画像信号処理部CEiが未実行であるか否かを判定する(S207)。すなわち、画像信号処理部CE0がタスクを処理中であるか否かを判定する。画像信号処理部CEiが未実行の場合(S207のYES)、画像信号処理部CEiで処理を開始する(S208)。そして、スケジュール部15がタスクのスケジューリングを終了する。すなわち、スケジュール部15がタスクを実行する画像信号処理部CEiを決定したら、即座に、画像信号処理部CEiがタスクの実行を開始する。
【0049】
一方、画像信号処理部CEiが未実行の場合(S207のNO)、iをインクリメントする(S209)。そして、ステップS205と同様に、iが(CE最大数−1)を超えているか否かいないかを判定する(S210)。iが(CE最大数−1)以下の場合(S210のNO)、ステップS207に戻る。すなわち、画像信号処理部CEi(ここでは、i=1)がタスクを処理中であるか否かを判定する。このように、ステップS207〜ステップS210の処理を繰り返すことで、タスクを未実行の画像信号処理部CEiを画像信号処理部CE0から順番に探索することができる。
【0050】
iが(CE最大数−1)を越えた場合、すなわち、未実行の画像信号処理部CEiがない場合(S210のYES)、ステップS211に移行する。ステップS211では、スケジュール部15が優先情報を参照して、リクエストのタスクが優先タスクであるか否かを判定する。リクエストのタスクが優先タスクでない場合(S211のNO)、そのタスクの処理開始を予約せずに終了する。リクエストのタスクが優先タスクであるか否かを判定する。リクエストのタスクが優先タスクである場合(S211のYES)、一番早く処理が完了する画像信号処理部CEに処理開始を予約する(S212)。すなわち、処理中のタスク、及び処理開始予約されているタスクの全てを完了する時刻が最も早い画像信号処理部CEにタスクの処理開始を予約する。そして、そのタスクに対するスケジューリングを終了する。
【0051】
なお、スケジュール部15は、優先タスクであるか否かは、優先情報記憶部41に記憶された優先情報に基づいて判定される。例えば、優先順位の高いコンテンツに関するタスクの場合、スケジュール部15は、優先タスクと判定する。
【0052】
このように、動作中の画像信号処理部CEiの目標完了時刻までの時間を使いきることを優先して、スケジュール部15は、タスクをスケジューリングしている。例えば、動作中の画像信号処理部CE0が、目標完了時刻内にタスクを完了できない場合、次の画像信号処理部CE1にタスクを割り当てている。このようにすることで、効率よくスケジューリングすることができる。さらに、いずれの画像信号処理部CEも、目標完了時刻までにタスクを完了できない場合、優先タスクが優先的に処理されるように、スケジュール部15がスケジューリングしている。こうすることで、優先順位の高いコンテンツを優先的に再生することができる。
【0053】
次に、コンテンツA→B→C→Dの順にリクエストを受け付けた例を説明する。
図6は、本実施の形態にかかるスケジューリング方法を用いずにスケジューリングした例である。すなわち、
図6では、推定部16が推定時間を推定していない例を示している。
図7は、本実施の形態にかかるスケジューリング方法を用いてスケジューリングした例を示す。
図6、
図7では、画像信号処理部CE0〜画像信号処理部CE2にコンテンツA〜Dのタスクを割り当てる例を示している。さらに、コンテンツA〜Dの目標完了時刻は同じになっている。
【0054】
図6では、1番目のタスクAを画像信号処理部CE0に割り当てている。そして、2番目のタスクBを画像信号処理部CE1に割り当て、3番目のタスクCを画像信号処理部CE2に割り当てている。リクエストCの後に、リクエストDを受け付けた場合、画像信号処理部CE0〜CE2のいずれもタスクDを目標完了時刻までに完了することができない。すなわち、リクエストDに対するタスク処理は目標完了時刻を越えてしまい、目標未達が発生してしまう。画像信号処理部CE1の動作スロットは半分近く残っており、動作効率が悪くなってしまう。
【0055】
本実施の形態に係るスケジュール方法では、リクエスト受付部11が1番目のリクエストAを受け付けると、推定部16がタスクAの推定時間を推定している。そして、推定時間に応じて、
図7に示すように、スケジュール部15がタスクAを画像信号処理部CE0に割り当てる。次に、2番目のリクエストBを受け付けると、推定部16がタスクBの推定時間を推定する。スケジュール部15は、タスクA、Bの推定時間により、画像信号処理部CE0がタスクAの処理後、タスクBを実行しても、タスクBの処理が目標完了時刻を越えないことと判定する。したがって、スケジュール部15は、タスクAの後に、タスクBの処理開始予約を行う。
【0056】
次に、リクエスト受付部11がリクエストCを受け付けると、推定部16がタスクCの推定時間を推定する。スケジュール部15は、タスクA〜Cの推定時間により、画像信号処理部CE0でタスクCを実行すると、タスクCの処理が、目標完了時刻を越えてしまうと判定する。したがって、スケジュール部15は、タスクCを画像信号処理部CE1に割り当てる。未実行の画像信号処理部CE1は、タスクCが割り当てられると、タスクCの処理を開始する。
【0057】
さらに、リクエスト受付部11がリクエストDを受け付けると、推定部16がタスクDの推定時間を推定する。なお、リクエストDの受付時には、画像信号処理部CE0がタスクAを処理しており、画像信号処理部CE1がタスクCを処理している。スケジュール部15は、タスクA〜Dの推定時間により、画像信号処理部CE0、又は画像信号処理部CE1がタスクDを実行すると、タスクDの処理が、目標完了時刻を越えてしまうと判定する。したがって、スケジュール部15は、タスクDを画像信号処理部CE2に割り当てる。未実行の画像信号処理部CE2は、タスクDが割り当てられると、タスクDの処理を開始する。
【0058】
このように、本実施の形態に係るスケジュール方法では、推定部16は、リアルタイムでタスクの推定時間を推定している。タスクBの割り当て前に、タスクBの推定時間を得ることができる。よって、画像信号処理部CE0でタスクAに続いてタスクBを実行開始予約することができる。これにより、全リクエストA〜Dの目標完了時刻内にタスクを完了でき、動作効率のよいスケジューリングを実現することができる。このように、推定部16が各リクエストの処理時間を推定している。そして、スケジュール部15は、推定時間を基に各リクエストのタスクの実行順の入れ替えや実行先の画像信号処理部CEを決定している。こうすることで、画像信号処理部CEの動作効率を改善することができ、高い実行効率を得ることができる。
【0059】
ここでは、可変長符号処理部VLCでのコーデックパラメータに基づいて、推定時間を推定している。これにより、推定精度を向上することができ、処理時間が変動する場合でも、目標完了時刻内にタスクを完了することができるよう、適切にスケジューリングすることができる。
【0060】
より具体的には、推定部16は、コーデックパラメータに基づいて、画像信号処理部CEのバスのアクセス回数を求めている。そして、推定部16は、バスのアクセス回数に基づいて、推定時間を推定している。これにより、簡便かつ正確に推定時間を求めることができる。さらに、推定部16は、画像信号処理部CEが前回のタスクの実行に要した処理時間により、推定時間を補正している。こうすることで、推定精度を向上することができる。
【0061】
また、目標完了時刻内にタスクが終了するようにスケジューリングできない場合、予め設定された優先度に基づいて、スケジューリングしている。これにより、適切にスケジューリングすることができる。すなわち、優先度の高いコンテンツを再生することができる。
【0062】
(推定時間の推定処理1)
次に、
図4に戻り、バスアクセス回数から、推定時間を求めるための推定処理についての1例について説明する。
図4は、バスアクセス回数と推定時間の関係を示すグラフである。
図4では、フィードバック補正前の直線(
図4中の破線)と、フィードバック補正後の直線(
図4中の実線)で傾きが異なっている。
【0063】
例えば、フィードバック補正前のバスアクセス回数と推定時間の関係が線形の場合、以下の式(1)が得られる。
t=ax+b ・・・(1)
【0064】
なお、tはフィードバック補正前の推定時間、xはバスアクセス回数、a及びbは任意の定数である。
図4において、式(1)のaは、傾きを示し、bは切片を示している。推定処理1では、定数bを一定にしている。そして、一つ前のタスクの処理にかかった時間を用いて、定数aを補正する。例えば、推定部16は、画像信号処理部CEが既に実行したタスクの処理時間をバスアクセス回数に対応付けて保存している。そして、推定部16は、画像信号処理部CEの推定時間を推定する場合、処理時間を用いて、傾きaを補正する。
【0065】
フィードバック補正後のバスアクセス回数と推定時間の関係は、以下の式(2)で示される。
t’=a’x+b ・・・(2)
【0066】
なお、t’は、フィードバック補正後の推定時間であり、a’は、補正後の傾きを示す定数である。このように、一つ前のタスクの処理時間に基づいて、補正前後で切片bを一定にして、傾きを補正している。そして、式(2)のxにバスアクセス回数を代入することで、推定部16は、推定時間t’を算出している。よって、より正確に推定時間を推定することができる。
【0067】
なお、上記の説明では、一つ前のタスクの処理時間を用いて、傾きa’を求めたが、複数のタスクの処理時間を用いて、傾きa’を求めてもよい。この場合、複数の処理時間を用いて、特性を示す近似式を求めることができる。さらには、タスクの処理順に重み付けを持たせて、近似してもよい。すなわち、新しいタスクの処理時間ほど重みを大きくして、近似式を求めればよい。これにより、より正確に推定時間を求めることができる。
【0068】
(推定時間の推定処理2)
次に、推定時間の推定処理の変形例について、
図8を用い説明する。
図8は、バスアクセス回数と推定時間の関係を示すグラフであり、
図4に対応するグラフを示している。
図8では、フィードバック補正前の直線(
図9中の破線)と、フィードバック補正後の直線(
図8中の実線)で切片が異なっている。
【0069】
フィードバック補正前のバスアクセス回数と推定時間の関係が上記の(1)式で示されるとすると、補正後の関係式は以下の式(3)のようになる。
t’=ax+b’ ・・・(3)
【0070】
なお、t’は、フィードバック補正後の推定時間であり、b’は、補正後の切片を示す定数である。このように、一つ前のタスクの処理時間に基づいて、補正前後で傾きaを一定にして、切片を補正している。そして、式(3)のxにバスアクセス回数を代入することで、推定部16は、推定時間t’を算出している。よって、より正確に推定時間を推定することができる。
【0071】
なお、上記の説明では、一つ前のタスクの処理時間を用いて、切片b’を求めたが、複数のタスクの処理時間を用いて、切片b’を求めてもよい。この場合、複数の処理時間を用いて、特性を示す近似式を求めることができる。さらには、タスクの処理順に重み付けを持たせて、近似してもよい。すなわち、新しいタスクの処理時間ほど重みを大きくして、近似式を求めればよい。これにより、より正確に推定時間を求めることができる。
【0072】
(推定時間の推定処理3)
推定時間の推定処理の別の変形例について、
図9を用い説明する。
図9は、バスアクセス回数と推定時間の関係を示すグラフであり、
図4に対応するグラフを示している。
図9では、フィードバック補正前の直線(
図9中の破線)と、フィードバック補正後の直線(
図9中の実線)で切片及び傾きが異なっている。
【0073】
フィードバック補正前のバスアクセス回数と推定時間の特性が上記の(1)式で示されるとすると、補正後の特性は以下の式(4)で示される。
t’=a’x+b’ ・・・(4)
【0074】
なお、t’は、フィードバック補正後の推定時間であり、a’は、補正後の傾きを示す定数である。b’は、補正後の切片を示す定数である。このように、実行済みのタスクの処理時間に基づいて、傾き及び切片を補正している。そして、式(4)にxの値を代入することで、推定部16は、推定時間t’を算出している。よって、より正確に推定時間を推定することができる。複数のタスクの処理時間を用いて、傾きa’ 切片b’を求めてもよい。この場合、複数の処理時間を用いて、特性を示す近似式を求めることができる。さらには、タスクの処理順に重み付けを持たせて、近似してもよい。すなわち、新しいタスクの処理時間ほど重みを大きくして、近似式を求めればよい。これにより、より正確に推定時間を求めることができる。
【0075】
(推定時間の推定処理4)
推定時間の推定処理の別の変形例について、
図10を用い説明する。
図10は、バスアクセス回数と推定時間の関係を示すグラフであり、
図4に対応するグラフを示している。
図10では、バスアクセス回数と閾値との大小関係に応じて、特性の傾きを変えている。例えば、バスアクセス回数が閾値よりも大きい場合、補正前の傾きaを一定にして、切片を補正する。一方、バスアクセス回数が閾値以下の場合、補正前の切片bを一定にして、傾きを補正する。このようにすることで、より正確に推定時間を推定することができる。複数のタスクの処理時間を用いて、
図10のようにフィードバック補正することができる。
【0076】
推定処理1〜4において、補正後の傾きa’、切片b’は、画像信号処理部CEに応じて、異なる値となっていてもよい。この場合、上記のフィードバック補正を画像信号処理部CE0〜CE2のそれぞれに対して行う。すなわち、画像信号処理部CE0〜CE2でのそれぞれの処理時間を用いて、画像信号処理部CE0〜CE2を独立してフィードバック補正してもよい。画像信号処理部CE0〜CE2に対して、異なる傾きa’又は切片b’が求められる。あるいは、画像信号処理部CE0〜CE2に対して、傾きa’又は切片b’を共通にしてもよい。すなわち、画像信号処理部CE0〜CE2をまとめてフィードバック補正してもよい。この場合、画像信号処理部CE0〜CE2のそれぞれに対して求められた傾きa’、切片b’の平均値を用いればよい。
【0077】
上記の説明では、バスアクセス回数と推定時間の関係が線形になっているものと説明したが、2次以上の多項式となっていてもよい。すなわち、バスアクセス回数と推定時間の関係を多項式で近似してもよい。
【0078】
実施の形態2.
本実施の形態にかかる画像処理装置100について、
図11を用いて説明する。
図11は、画像処理装置100の構成を示すブロック図である。本実施の形態では、実施の形態1に比べて、環境情報記憶部42が追加されている。なお、環境情報記憶部42以外の構成、及び処理については、実施の形態2と同様であるため、説明を省略する。
【0079】
本実施形態では、外部の環境情報を用いて、推定部16が推定する値を補正する。例えば、直前の画像信号処理部CEがアクセスしたバスの遅延時間(レイテンシ)の平均値を環境情報として用いている。そして、バスレイテンシを用いて、バスアクセス回数から推定時間を求める特性を補正する。
図12にバスレイテンシを補正に用いたときの特性例を示す。
【0080】
図12では、フィードバック補正した特性を、バスレイテンシを用いてさらに補正している。ここでは、バスレイテンシに基づいて、バスアクセス回数と推定時間の関係の傾き及び切片を補正している。例えば、バスレイテンシが大きいほど、タスクの処理時間が長くなるため、傾き、及び切片を大きくしている。もちろん、バスレイテンシによって、傾き、及び切片の一方のみを補正してもよい。
【0081】
バスレイテンシは、
図4に示されていないCPUや3Dグラフィックスの動作状況に応じて変化する。すなわち、データバス51におけるデータの粗密に応じて、バスレイテンシが変化する。
【0082】
例えば、バスレイテンシは、実際にメモリ53へのデータ書き込みが行われた書き込み時間又はデータ読み出しが行われた読み出し時間によって求めることができる。すなわち、画像信号処理部CEによるデータ書き込み又は読み出しのリクエストからレスポンスまでの時間に応じて、バスレイテンシを求めることができる。
【0083】
本実施の形態の制御方法によれば、バスレイテンシを用いて推定時間を推定している。より具体的には、バスレイテンシを用いて推定時間を補正している。よって、推定時間が外部要因で変動しても、推定精度を向上できる。例えばメモリバスのレイテンシは、データバス51の混雑度を表している。バスレイテンシを用いると、混雑度に比例して処理時間を見積もることができる。つまり、混雑度が小さいときは早くタスクが完了し、混雑度が大きい時は遅くタスクが完了するといったことを推定できる。また、バスレイテンシが時間とともに変動しても、それに追従して、精度のよい推定を行うことができる。
【0084】
実施の形態3.
本実施の形態では、処理開始予約済みで未実行のタスクを再スケジューリングする点で、実施の形態1、2と異なっている。なお、画像処理装置100の構成、及びその制御方法については、実施の形態1、2と同様であるため、説明を省略する。
【0085】
具体的には、本実施の形態では、実行予約済みだが、未実行のリクエストがある場合、そのリクエストを入れ替えることで、処理を行わない画像信号処理部CEを設けている。すなわち、一度ある画像信号処理部CEに割り当てられたタスクを、他の画像信号処理部CEに割り当てることで、画像信号処理部CEの動作スロットをより埋めるように、スケジュールを変更している。
【0086】
実施の形態3の処理について、
図13〜
図18を用いて説明する。
図13〜
図18は、本実施の形態におけるスケジューリングを説明するための図である。
図13は、リクエストの入れ替えを行わない場合の動作を示す図である。
図13に示すように、リクエストを入れ替えない場合、画像信号処理部CE0にタスクA、及びタスクBが割り当てられている。画像信号処理部CE0は、タスクAの後に、タスクBを実行する。画像信号処理部CE1には、タスクCが割り当てられ、画像信号処理部CE2には、タスクDが割り当てられている。
【0087】
図13では、画像信号処理部CE0〜CE2のいずれも動作スロットに空きが残っている。すなわち、画像信号処理部CE0〜CE2のいずれも、目標完了時刻まで余裕がある状態で、タスクA〜Dを完了することができる。動作スロットに空きが残っている状態で、全て画像信号処理部CEが動作している。そこで、本実施の形態では、スケジュール済みのタスクの割り当てを変更することで、動作しない画像信号処理部CEを設けている。
【0088】
以下、画像信号処理部CE2が動作しないように、タスクを再割り当てする処理について説明する。ここでは、リクエストがA、B、C、Dの順に受け付けられているとして説明する。リクエスト受付部11にリクエストAが受け付けられると、推定部16は、タスクAの推定時間を推定する。画像信号処理部CE0〜CE2のいずれにもタスクが割り当てられていないため、スケジュール部15は、タスクAを画像信号処理部CE0に割り当てる(
図14)。そして、画像信号処理部CE0はタスクAを実行する。
【0089】
次に、リクエスト受付部11がリクエストBを受け付けると、推定部16は、タスクBの推定時間を推定する。そして、タスクA、Bの推定時間から、スケジュール部15は、画像信号処理部CE0がタスクBにスケジュール可能であると判定する。すなわち、スケジュール部15は、画像信号処理部CE0がタスクAの後に、タスクBを処理したとしても、タスクBを目標完了時刻までに完了できると判断する。したがって、スケジュール部15は、画像信号処理部CE0にタスクBを割り当てる(
図15)。すなわち、画像信号処理部CE0にタスクBの処理開始予約がなされる。
【0090】
次に、リクエスト受付部11がタスクBの処理開始前に、リクエストCを受け付ける。すると、推定部16がタスクCの処理時間を推定する。ここで、実施の形態1のように、タスクの入れ替えを行わないと、
図16のように、タスクCは、画像信号処理部CE1に割り当てられる。すなわち、画像信号処理部CE0がタスクA、及びタスクBの後に、タスクCを実行すると、タスクCの目標完了時刻を越えてしまう。本実施形態に示す再スケジューリングを行わない場合に、スケジュール部15は、タスクA〜Cの推定時間に基づいて、
図16に示したように画像信号処理部CE1にタスクCを割り当てる。
【0091】
しかしながら、タスクBとタスクCの割り当てを入れ替えると、画像信号処理部CE0を有効に利用することができる。したがって、本実施形態では、
図17に示すように、タスクBの割り当て先を画像信号処理部CE0から画像信号処理部CE1に変更するとともに、タスクCを画像信号処理部CE0に割り当てる。すなわち、スケジュール部15は、画像信号処理部CE0にタスクCの処理開始予約を行うとともに、画像信号処理部CE1にタスクBを実行させる。このように、画像信号処理部CE0がタスクAの後に、タスクCを実行した場合、タスクAの後にタスクBを実行した場合よりも、画像信号処理部CEの空きスロットが小さくなる。よって、画像信号処理部CE0を有効に利用することができる。
【0092】
画像信号処理部CE0がタスクBの処理を開始する前に、リクエストCが受け付けられた場合、タスクBとタスクCの推定時間を比較する。そして、タスクBの推定時間とタスクCの推定時間を比較している。すなわち、タスクBが画像処理部CE1に割り当てられてから実行されるまでの間に新たなリクエストCが受け付けられた場合、新たなリクエストCに対するタスクCの推定時間をタスクBの推定時間と比較している。そして、画像信号処理部CE0がタスクBを処理した場合と、タスクCを処理した場合とで、どちらが効率的であるかを判定している。より効率よく画像信号処理部CE0を利用することできるように、スケジュール部15がスケジューリングを行う。
【0093】
画像信号処理部CE0がタスクCの処理を開始する前にリクエストDのリクエストが受け付けられると、推定部16がタスクDの推定時間を推定する。上記と同様に、タスクDの推定時間をタスクCの推定時間と比較する。そして、スケジュール部15が、処理時間の比較結果に基づいて、
図18に示すように、画像信号処理部CE1にタスクDを割り当てる。すなわち、タスクDの処理時間はタスクCの処理時間が短い。よって、タスクCの代わりにタスクDを画像信号処理部CE0に割り当てると、画像信号処理部CE0の空きスロットが増えてしまう。よって、タスクDとタスクCを入れ替えない。タスクBの後、タスクDを画像信号処理部CE1に割り当てても、タスクDの目標完了時刻を越えない。したがって、タスクDを画像信号処理部CE1に割り当てる。
【0094】
このようにすることで、画像信号処理部CE2にタスクが割り当てられなくなる。すなわち、画像信号処理部CE2が常に空きスロットになり、動作しなくなる。動作しない画像信号処理部CE2に対して、クロック停止や電源停止を適用することができる。こうすることで、消費電力を低減することができる。さらに、目標完了時刻以内に全てのタスクA〜Dの処理が完了する。よって、画像処理装置100は、コンテンツA〜Dをコマ落ち無く再生することができる。
【0095】
図19を用いて、本実施の形態にかかるスケジューリング方法を示す説明する。
図19は、本実施形態にかかるスケジューリング方法を示すフローチャートである。なお、実施の形態1の
図5で示したフローと重複する箇所については、適宜説明を省略する。
【0096】
新しいリクエストXを受け付けると(S301)、i=0に設定する(S302)。なお、以下の説明において、リクエストXのタスクをタスクXとして説明する。次に、iが画像信号処理部CEの個数以上であるか否かを判定する(S303)。iが画像信号処理部CEの個数以上である場合(S303のYES)、タスクXの処理を保留する(S304)。そして、タスクXの割り当てを終了する。なお、処理が保留された場合、新たなリクエストを受け付けた後、処理が保留されたタスクXがスケジュール可能かを確認してもよい。iが画像信号処理部CEの個数以上でない場合(S303のNO)、画像信号処理部CEiが未使用であるか否かを判定する(S305)。
【0097】
画像信号処理部CEiが未使用である場合(S305のYES)、画像信号処理部CEiがタスクXの処理を開始する(S306)。そして、タスクXの割り当てを終了する。画像信号処理部CEiが未使用でない場合(S305のNO)、画像信号処理部CEiに処理開始予約が有るか無いかを確認する(S307)。すなわち、画像信号処理部CEiにスケジュールされたタスクを確認する。スケジュール部15は、画像信号処理部CEiに未実行で、かつ処理開始予約がなされているタスクがあるか否かを判定する。
【0098】
画像信号処理部CEiに処理開始予約がなされたタスクがない場合(S307の無)、すなわち、画像信号処理部CEiに処理開始予約がない場合、スケジュール部15は、タスクXを画像信号処理部CEiにスケジュール可能か否かを判定する(S308)。すなわち、スケジュール部15は、画像信号処理部CEiにタスクXを割り当てた場合、目標完了時刻よりも前に、タスクXを実行できるか否かを判定する。
【0099】
タスクXを画像信号処理部CEiにスケジュール可能である場合(S308のYES)、すなわち、画像信号処理部CEiがタスクXを目標完了時刻までに完了できる場合、スケジュール部15は、画像信号処理部CEiにタスクXの処理開始予約を行う(S309)。そして、タスクXの割り当てを終了する。一方、タスクXを画像信号処理部CEiにスケジュール可能でない場合(S308のNO)、すなわち、画像信号処理部CEiがタスクXを目標完了時刻までに完了できない場合、iをインクリメントして(S310)、ステップS303に戻る。S303、S305、S307、S308、及びS310等の処理を繰り返すことで、画像信号処理部CE0〜CE2の中から、タスクXを実行可能な又は処理開始予約可能な画像信号処理部CEを探索することができる。
【0100】
画像信号処理部CEiに処理開始予約がある場合(S307の有)、すなわち、画像信号処理部CEiにスケジューリングされたタスクが有る場合、画像信号処理部CEiのキュー推定時間が、タスクXの推定時間よりも短いか否かを判定する(S311)。すなわち、スケジュール部15は、処理開始予約済みのタスク(以下、タスクYとする)の推定時間と、タスクXの推定時間を比較する。
【0101】
画像信号処理部CEiのキュー推定時間が、タスクXの推定時間よりも短くない場合(S311のNO)、iをインクリメントする(S313)。すなわち、タスクYの処理時間がタスクXの処理時間よりも長い場合、スケジュールを変更せずに、iをインクリメントする。そして、iをインクリメントした後、ステップS303に戻る。タスクYの処理時間が新しいタスクXの処理時間よりも長い場合、画像信号処理部CEiがタスクYを実行したほうが、画像信号処理部CEiのスロットを有効に利用することができる。よって、画像信号処理部CEiのスケジュールを変更せずに、iをインクリメントする。そして、ステップS303からの処理を実行することで、次の画像信号処理部CEにタスクXを割り当てることができるかを確認することができる。
【0102】
画像信号処理部CEiのキュー推定時間が、タスクXの推定時間よりも短い場合(S311のYES)、画像信号処理部CEiにタスクXをスケジュールできるか否かを判定する(S312)。すなわち、処理開始予約済みのタスクYの代わりに、タスクXを画像信号処理部CEiに割り当てた場合、スケジュール部15は、画像信号処理部CEiがタスクXを目標完了時刻までにタスクXを完了できるか否かを判定する。
【0103】
画像信号処理部CEiにタスクXをスケジュールできない場合(S312のNO)、iをインクリメントして(S313)、ステップS303に戻る。すなわち、画像信号処理部CEiにタスクXを処理開始予約すると、目標完了時刻を越えてしまうので、画像信号処理部CEiには、タスクXを割り当てない。換言すると、画像信号処理部CEiには、タスクYが処理開始予約されたままとなる。そして、iをインクリメントした後、ステップS303からの処理を実行することで、次の画像信号処理部CEにタスクXを割り当てることができるかを確認することができる。
【0104】
一方、画像信号処理部CEiにタスクXをスケジュールできる場合(S312のYES)、タスクXを画像信号処理部CEiに割り当てる(S314)。すなわち、スケジュール部15は、画像信号処理部CEiにタスクXの処理開始を予約する。さらに、タスクXの処理開始予約前に、画像信号処理部CEiにスケジュールされていたタスクYを要求する(S315)。そして、ステップS302に戻る。すなわち、スケジュール部15は、上記と同様の処理により、画像信号処理部CEiにタスクYの再割り当てを行う。これにより、画像信号処理部CEiに処理開始予約されていたタスクYが、他の画像信号処理部CEに割り当てられる。すなわち、タスクXの前にリクエストが受け付けられたタスクYに対して、ステップS302からの処理が実行されて、再度スケジューリングされる。
【0105】
本実施の形態では、処理開始予約済みで未実行のタスクに対して、画像信号処理部CEの再割り当てを行っている。このように、画像処理装置100を制御することで、動作しない画像信号処理部CE2を設けることができる。すなわち、タスクの再スケジュールを行わない場合、
図13に示すように、画像信号処理部CE2にタスクDが割り当てられるのに対して、タスクの再スケジュールを行う場合、
図18に示すように、画像信号処理部CE2にいずれのタスクも割り当てられなくなる。動作しない画像信号処理部CEに対して、クロック停止や電源停止を適用する。これにより、消費電力を低減することができる。さらに、目標完了時刻以内に全てのタスクA〜Dの処理が完了する。よって、コマ落ち無く、コンテンツA〜Dを再生することができる。
【0106】
上記のように、新たなリクエストが受け付けられた時に、再スケジューリングしている。これにより、リクエストが受け付けられる毎に、適切なスケジュールを設定することができる。よって、動作効率を維持しつつ、動作しない画像信号処理部CEを設けることが可能になる。
【0107】
本実施の形態1〜3にかかる画像処理装置の応用例について、
図20を用いて説明する。
図20は、画像処理装置100を適用した車載システムを模式的に示すブロック図である。車載システム500は、リクエスト元となる、Blu−Rayプレーヤ201、Webコンテンツ202、周辺カメラ203、メニュー画面204を備えている。さらに、車載システム500は、画像処理装置100、後席ディスプレイ301、助手席ディスプレイ302、画像認識処理部303、無線LAN304を備えている。
【0108】
Blu−Rayプレーヤ201、Webコンテンツ202、周辺カメラ203、メニュー画面204は、実施の形態〜3で示したコンテンツのリクエスト元となる。画像処理装置100は、ビデオデコーダ121〜123、及びビデオエンコーダ124を備えている。ビデオデコーダ121〜123、及びビデオエンコーダ124は、実施の形態1〜3で示した画像信号処理部CEに対応する。
【0109】
後席ディスプレイ301は、Blu−Rayプレーヤ201で再生された映像データを表示する。助手席ディスプレイ302は、Webコンテンツで再生された映像データを表示する。画像認識処理部303は、周辺カメラ203で取得された映像データに対して画像認識を行う。ビデオエンコーダ124は、メニュー画面をエンコードする。そして、無線LAN304は、エンコードされたデータを送信する。
【0110】
上記のように、ビデオデコーダ121〜123、及びビデオエンコーダ124は、画像信号処理部CEに対応している。よって、ビデオデコーダ121〜123、及びビデオエンコーダ124は、
図1に示したスケジュール部15で決定されたスケジュールで処理を実行する。すなわち、画像処理装置100は、推定時間に基づいて、スケジューリングを行っている。
【0111】
各処理の要求性能にばらつきがある場合、あるいは個々の処理においても時間方向に処理量がばらつく場合、上記のスケジュール方法は有効に作用する。
【0112】
実施の形態4.
本実施の形態4にかかる画像処理装置100について、
図21を用いて説明する。画像処理装置は、受付部111、コーデック処理部101、複数の画像処理部102、推定部116、スケジュール部115を備えている。
【0113】
受付部111は、複数のコンテンツからのリクエストを受け付ける。コーデック処理部101はコンテンツをデコード又はエンコードする。画像処理部102a、102bは、リクエストに応じたタスクを並列して実行する。推定部116は、コーデック処理部で用いられるデコード又はエンコードのパラメータに基づいて、それぞれの画像処理部102においてタスクの処理が完了する推定時間を推定する。スケジュール部115は、推定部116で推定された推定時間に基づいて、複数の画像処理部102が実行するタスクをスケジューリングする。なお、
図21では、画像処理部102の数は画像処理部102a、102bの2つであるが、画像処理部102の数は3以上であってもよい。
【0114】
受付部111は上記の実施の形態のリクエスト受付部11と同様の処理を行ってもよい。コーデック処理部101は、上記の実施の形態の可変長符号処理部VLCと同様の処理を行ってもよい。推定部116は、上記の実施の形態の推定部116と同様の処理を行ってもよい。画像処理部102は、上記の実施の形態の画像信号処理部CEと同様の処理を行ってもよい。スケジュール部115は、上記の実施の形態のスケジュール部15と同様の処理を行ってもよい。
【0115】
その他の実施形態.
上記の実施形態1〜3において、画像信号処理部CE0〜2は、それぞれ、同一コンテンツAの異なるフレームを並列処理する場合にも適用できる。実施形態において、信号処理部が1つの場合でも適用することができる。画像信号処理部CEの処理単位は、フレームだけでなく、マクロブロックや、複数フレームまとめたGOP(Group Of Pictures)単位となっていてもよい。また、画像信号処理部CEがデコーダである例について説明したが、エンコーダでも同様に適用できる。
【0116】
本実施の形態は、複数ビデオまたは同一ビデオの複数フレームの同時圧縮・伸長機能を備える半導体装置およびそれを用いたシステムに適している。複数ビデオまたは同一ビデオの複数フレームの同時処理を行う装置において、複数のハードウェアの効率的な動作方法を得ることができる。特にビデオ符号・復号処理のように、入力信号の内容によって、処理量が大きく変動する性質を持つ処理において、従来よりもハードウェアの動作効率を良くするスケジューリングを実現することができる。
【0117】
実施形態1〜4のうち、2以上の実施形態を適宜組み合わせて用いることも可能である。例えば、実施形態1の環境情報と実施形態2の優先情報の両方を用いて、スケジューリングを行ってもよい。あるいは、実施の形態3で示した画像処理装置の制御方法において、実施の形態1で示した優先情報や、実施の形態2で示した環境情報を用いてもよい。また、画像信号処理部CEや画像処理部102の数は、複数であればよく、例えば、4以上であってもよい。また、上記の説明では、リクエストA〜Dの目標完了時刻を同じとして説明したが、異なっていても同様の効果を得ることができる。
【0118】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。