(57)【要約】【課題】画像を正しく表示することを可能とする。【解決手段】コンピュータを備える画像処理装置であって、コンピュータが、図形を含む画像を分割した複数のブロックのそれぞれに対応する描画情報を受け、描画情報に基づいて、各ブロックの表示装置への表示に用いる画像データを順次に生成し、描画情報から画像データが生成される前に、描画情報に基づいて、各ブロックの画像データの生成にかかる処理時間を推定し、所定の基準時間よりも長い処理時間が推定されたブロックである第１ブロックよりも前に画像データの生成処理が行われるブロックの中から、基準時間よりも短い処理時間が推定された第２ブロックを探索し、第２ブロックの画像データの生成処理の際に、第１ブロックの画像データの生成処理の一部を実行する。【選択図】      図１
2015014944.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを備える画像処理装置であって、
前記コンピュータが、
図形を含む画像を分割した複数のブロックのそれぞれに対応する描画情報を受け、前記描画情報に基づいて、前記各ブロックの表示装置への表示に用いる画像データを順次に生成し、
前記描画情報から前記画像データが生成される前に、前記描画情報に基づいて、前記各ブロックの画像データの生成にかかる処理時間を推定し、
所定の基準時間よりも長い処理時間が推定されたブロックである第１ブロックよりも前に画像データの生成処理が行われるブロックの中から、前記基準時間よりも短い処理時間が推定された第２ブロックを探索し、
前記第２ブロックの画像データの生成処理の際に、前記第１ブロックの画像データの生成処理の一部を実行する
ことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記第２ブロックの画像データを生成した際に、前記第１ブロックに対応する描画情報の一部から生成した画像データを保持するバッファを有し、
前記コンピュータは、
前記バッファに保持された画像データと、前記第１ブロックに対応する描画情報の他の一部から生成した画像データとから、前記第１ブロックに対応する画像データを生成する
ことを特徴とする画像処理装置。
【請求項３】
請求項１または請求項２に記載の画像処理装置において、
前記コンピュータは、
前記第１ブロックよりも前に画像データが生成されるブロックのそれぞれについて推定された処理時間に基づいて、前記第１ブロックについて推定された処理時間と前記基準時間の差である超過分の処理を前記第２ブロックに割り当て可能か否かを判定し、
前記判定において割り当て可能と判定した場合に限って前記第２ブロックの探索を行い、
前記判定において前記超過分の処理の割り当てが可能でないと判定された第１ブロックについて、前記第１ブロックに含まれる前記所定数のラインのうち、一ラインおきに生成した画像データを補間する処理を実行することで、前記第１ブロックに対応する画像データを生成する
ことを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置において、
前記コンピュータは、更に、
前記判定において、前記超過分の処理の割り当てが可能でないと判定した場合に、前記第１ブロックに対応して推定された処理時間を前記基準時間に変更し、変更された処理時間を用いて以降の探索処理を実行する
ことを特徴とする画像処理装置。
【請求項５】
コンピュータを用いた画像処理方法であって、
前記コンピュータによって、図形を含む画像を分割した複数のブロックのそれぞれに対応する描画情報を受け、前記描画情報に基づいて、前記各ブロックの表示装置への表示に用いる画像データを順次に生成し、
前記コンピュータによって、前記描画情報から前記画像データが生成される前に、前記描画情報に基づいて、前記各ブロックの画像データの生成にかかる処理時間を推定し、
前記コンピュータによって、所定の基準時間よりも長い処理時間が推定されたブロックである第１ブロックよりも前に画像データの生成処理が行われるブロックの中から、前記基準時間よりも短い処理時間が推定された第２ブロックを探索し、
前記コンピュータによって、前記第２ブロックの画像データの生成処理の際に、前記第１ブロックの画像データの生成処理の一部を実行する
ことを特徴とする画像処理方法。
【請求項６】
図形を含む画像を分割した複数のブロックのそれぞれに対応する描画情報を受け、前記描画情報に基づいて、前記各ブロックの表示装置への表示に用いる画像データを順次に生成し、
前記描画情報から前記画像データが生成される前に、前記描画情報に基づいて、前記各ブロックの画像データの生成にかかる処理時間を推定し、
所定の基準時間よりも長い処理時間が推定されたブロックである第１ブロックよりも前に画像データの生成処理が行われるブロックの中から、前記基準時間よりも短い処理時間が推定された第２ブロックを探索し、
前記第２ブロックの画像データの生成処理の際に、前記第１ブロックの画像データの生成処理の一部を実行する
処理をコンピュータに実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【０００２】
コンピュータグラフィックス(ＣＧ：Computer Graphics)で作成された画像を表示する際に、画像を複数ライン毎に区切ることで複数のブロックに分割し、ブロック毎に、画像データの生成処理と画像データの表示処理とをパイプライン処理する場合がある。ここで、ラインとは、画像において表示画面の走査方向に並んだ１行分の画素の集合である。
【０００３】
画像データの生成と表示をブロック単位で同期させる手法では、１ブロック分の画像データの生成に用いることができる時間が、１ブロック分の画像データを表示画面に出力するためにかかる所定の基準時間に制限される。その一方、表示対象の画像に含まれる各ブロックの画像データを生成するための処理負荷は、一様でない場合が多く、一部のブロックに集中している場合もある。例えば、航空機などの操縦を模擬するシミュレーション装置で表示されるＣＧ画像では、地平線付近などの特定の領域に、画像データの生成処理の対象となる図形が集中して分布する場合がある。このように、特定の領域に図形が集中して分布する場合に、特定の領域を含むブロックの処理負荷は他のブロックよりも大きくなり、１ブロックの画像データの生成にかかる時間が上述の基準時間を超えてしまう場合がある。
【０００４】
特定の領域に図形が集中的に分布する画像を複数の表示装置を用いて表示する際に、少なくとも一つの表示装置に対応付ける画像の領域を垂直方向にずらすことで、画像データの生成処理の負荷を分散させる技術が提案されている(例えば、特許文献１参照)。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−２９７７９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、表示対象の画像において、画像データの生成処理の対象となる図形が多く分布する領域、即ち、処理負荷の大きい領域は、必ずしも特定されておらず、例えば、動画像に含まれる個々の画像で、図形の分布が異なっている場合もある。また、表示対象の画像を一つの表示装置を用いて表示させる場合に、上述した従来技術によって画像データの生成処理の負荷を分散することは困難である。
【０００７】
そして、上述の基準時間内に処理可能な限界の処理負荷よりも大きな処理負荷が集中しているブロックがあると、当該ブロックに含まれる一部の図形に対応する画像データが生成されないために、画像を正しく表示できず、表示された画像にちらつきが現れてしまう。
【０００８】
本件開示の画像処理装置、画像処理方法および画像処理プログラムは、画像を正しく表示することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの観点によれば、画像処理装置は、コンピュータを備える画像処理装置であって、コンピュータが、図形を含む画像を分割した複数のブロックのそれぞれに対応する描画情報を受け、描画情報に基づいて、各ブロックの表示装置への表示に用いる画像データを順次に生成し、描画情報から画像データが生成される前に、描画情報に基づいて、各ブロックの画像データの生成にかかる処理時間を推定し、所定の基準時間よりも長い処理時間が推定されたブロックである第１ブロックよりも前に画像データの生成処理が行われるブロックの中から、基準時間よりも短い処理時間が推定された第２ブロックを探索し、第２ブロックの画像データの生成処理の際に、第１ブロックの画像データの生成処理の一部を実行する。
【００１０】
また、別の観点によれば、画像処理方法は、コンピュータを用いた画像処理方法であって、コンピュータによって、図形を含む画像を分割した複数のブロックのそれぞれに対応する描画情報を受け、描画情報に基づいて、各ブロックの表示装置への表示に用いる画像データを順次に生成し、コンピュータによって、描画情報から画像データが生成される前に、描画情報に基づいて、各ブロックの画像データの生成にかかる処理時間を推定し、コンピュータによって、所定の基準時間よりも長い処理時間が推定されたブロックである第１ブロックよりも前に画像データの生成処理が行われるブロックの中から、基準時間よりも短い処理時間が推定された第２ブロックを探索し、コンピュータによって、第２ブロックの画像データの生成処理の際に、第１ブロックの画像データの生成処理の一部を実行する。
【００１１】
また、別の観点によれば、画像処理プログラムは、図形を含む画像を分割した複数のブロックのそれぞれに対応する描画情報を受け、描画情報に基づいて、各ブロックの表示装置への表示に用いる画像データを順次に生成し、描画情報から画像データが生成される前に、描画情報に基づいて、各ブロックの画像データの生成にかかる処理時間を推定し、所定の基準時間よりも長い処理時間が推定されたブロックである第１ブロックよりも前に画像データの生成処理が行われるブロックの中から、基準時間よりも短い処理時間が推定された第２ブロックを探索し、第２ブロックの画像データの生成処理の際に、第１ブロックの画像データの生成処理の一部を実行する、処理をコンピュータに実行させる。
【発明の効果】
【００１２】
本件開示の画像処理装置、画像処理方法および画像処理プログラムによれば、画像を正しく表示することができる。
【図面の簡単な説明】
【００１３】
【図１】画像処理装置、画像処理方法および画像処理プログラムの一実施形態を示す図である。
【図２】画像に含まれる各ブロックと図１に示した推定部１２で推定される処理時間との対応関係の例を示す図である。
【図３】図１に示した推定部１１に渡されるコマンドリストの例を示す図である。
【図４】図１に示した画像処理装置１０に含まれる推定部１２と探索部１３の動作を示す図である。
【図５】画像処理装置１０に含まれる生成部１１と制御部１４の動作を示す図である。
【図６】画像に含まれる各ブロックについて推定される処理時間の別例を示す図である。
【図７】画像処理装置１０、画像処理方法および画像処理プログラムの別実施形態を示す図である。
【図８】図７に示した生成部１１により、先行して生成した画像データを用いて１ブロック分の画像データを完成させる例を示す図である。
【図９】ブロック情報保持部１３１に保持されたブロック情報の例を示す図である。
【図１０】図７に示した画像処理装置１０のハードウェア構成例を示す図である。
【図１１】コマンドリストを解析する処理を示す図である。
【図１２】図１１に示した超過分の分散先を特定する処理を示す図である。
【図１３】画像データの生成を制御する処理の一例を示す図である。
【図１４】図１３においてステップＳ３５８で示した処理対象のブロックへの割り当てが示された処理負荷に対応する画像データを生成する処理図である。
【図１５】コマンドリストを解析する処理の別例を示す図である。
【図１６】コマンドリストを解析する処理の別例を示す図である。
【図１７】コマンドリストを解析する処理の別例を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面に基づいて、実施形態を説明する。
【００１５】
図１は、画像処理装置、画像処理方法および画像処理プログラムの一実施形態を示す。図１に示した画像処理装置１０は、生成部１１と、推定部１２と、探索部１３と、制御部１４とを含み、表示対象の画像に含まれる図形のそれぞれを単位図形であるポリゴンの集合として表すコマンドリストから、画像の表示に用いる画像データを生成する。また、画像処理装置１０は、生成した画像データを表示装置１０１に表示させる。
【００１６】
ここで、表示装置１０１は、例えば、自動車のダッシュボードに設置され、速度計などの計器を表示する液晶ディスプレイ装置や、測定装置などに組み込まれた表示用の液晶ディスプレイ装置などである。
【００１７】
以下では、例えば、画像処理装置１０により、表示装置１０１にｎ(ｎは正の整数)枚の画像を含む動画像を表示させる場合について説明する。また、ｎ枚の画像のそれぞれは、それぞれ所定数のラインを含むＭ(Ｍは正の整数)個のブロックを含んでおり、各画像に対応するコマンドリストは、各ブロックに含まれるポリゴンの形状とともにポリゴンの色などの属性を示す描画情報を含んでいる。例えば、表示装置１０１が速度計などの計器を表示する液晶ディスプレイ装置である場合に、ｎ枚の画像のそれぞれに含まれるブロック数Ｍは約１００程度であり、各ブロックは４〜６ラインを含んでいる。
【００１８】
図１に示したコマンドリストバッファ１０２は、上述した動画像に含まれるｎ枚の画像のそれぞれに対応するコマンドリストを順次に受ける。また、コマンドリストバッファ１０２は、受けたコマンドリストを保持した後に、次の画像のコマンドリストを受ける処理と同期して、保持したコマンドリストを画像処理装置１０に渡す。例えば、コマンドリストバッファ１０２は、ｎ枚の画像のうちｊ(ｊはｎ以下の正の整数)番目に表示させる画像に対応するコマンドリストＣＬ(ｊ)を画像処理装置１０に渡す処理と同期して、ｊ＋１番目の画像に対応するコマンドリストＣＬ(ｊ＋１)を受ける。なお、コマンドリストバッファ１０２は、画像１枚分のコマンドリストを保持可能な容量を持つ２つのバッファを含んでいてもよい。２つのバッファを切り替えて用いることにより、コマンドリストバッファ１０２は、一方のバッファに保持されたコマンドリストＣＬ(ｊ)を出力処理と並行して、次の画像に対応するコマンドリストＣＬ(ｊ＋１)を他方のバッファに書き込むことができる。
【００１９】
生成部１１は、上述のコマンドリストバッファ１０２から、ｎ枚の画像のそれぞれに対応するコマンドリストを順次に受け、受けたコマンドリストに含まれる各ブロックの描画情報から画像データを生成する。生成部１１は、各ブロックの描画情報から画像データを生成する処理と、当該ブロックの一つ前に生成した画像データを表示装置１０１に表示させる処理とをそれぞれ所定の基準時間内で実行することで、パイプライン化して処理する機能を有している。すなわち、生成部１１は、表示対象の画像に含まれる各ブロックを表示装置１０１に表示させる処理と同期して、次に表示させるブロックに対応する描画情報から、当該ブロックの表示に用いる画像データを生成する。ここで、上述の基準時間は、１ブロックに含まれる所定数ライン分の画像データを表示装置１０１に表示させる処理にかかる時間に基づいて予め設定されている。例えば、１つのブロックの画像データが４ライン分の画像データである場合に、基準時間は、表示装置１０１において１ライン分の画像データを表示する際にかかる走査時間の４倍の時間に対して、所定の猶予時間を見込んで設定される。
【００２０】
推定部１２は、上述の生成部１１により、例えば、ｊ番目の画像に対応するコマンドリストＣＬ(ｊ)についての処理が行われている間に、次に表示対象となるｊ＋１番目の画像に対応するコマンドリストＣＬ(ｊ＋１)を取得する。また、推定部１２は、取得したコマンドリストＣＬ(ｊ＋１)に含まれる各ブロックの描画情報に基づいて、各ブロックの描画情報から画像データを生成する際にかかる処理時間を推定する。即ち、推定部１２は、表示処理中の画像の後に表示対象となる画像に含まれる複数のブロックのそれぞれに対応する描画情報に基づいて、当該ブロックに対応する画像データを生成する処理にかかる処理時間を推定する。なお、各ブロックの描画情報から処理時間を推定する手法については、図２、図３を用いて後述する。
【００２１】
探索部１３は、推定部１２で得られた推定結果に基づいて、上述の基準時間よりも長い時間が処理時間として推定された第１ブロックを判別する。また、探索部１３は、判別した第１ブロックに対応して、当該第１ブロックよりも前に画像データの生成処理が行われるブロックの中から、推定部１２による推定結果として、上述の基準時間よりも短い処理時間が得られた第２ブロックを探索する。例えば、推定部１２により、ｊ＋１番目の画像に含まれるＬ(ＬはＭ以下の正の整数)番目のブロックについて上述の基準時間を超える処理時間が推定された場合に、探索部１３は、Ｌ番目のブロックを第１ブロックの一つとして判別する。また、探索部１３は、第１ブロックとして判別したＬ番目のブロックに対応して、画像の先頭からＬ−１番目までの範囲から処理時間が基準時間未満のブロックを探索し、探索で得られたブロックを第２ブロックとしてＬ番目のブロックに対応付ける。
【００２２】
制御部１４は、推定部１２による推定処理の対象となった各ブロックを含む画像が表示対象となった際に、上述の第２ブロックの画像データが生成部１１で生成される際に、対応する第１ブロックの画像データの一部を生成部１１に生成させる。例えば、制御部１４は、コマンドリストＣＬ(ｊ＋１)で示されるｊ＋１番目の画像が表示対象の画像となった際に、コマンドリストＣＬ(ｊ＋１)に対応して探索部１３で得られた探索結果に基づいて、生成部１１による画像データの生成処理を制御する。例えば、制御部１４は、上述のＬ番目のブロックに対応付けられた第２ブロックの画像データが生成された後に、Ｌ番目のブロックの画像データを生成するための処理の一部を、生成部１１に実行させることで、Ｌ番目のブロックにおける処理負荷を分散させる。
【００２３】
ここで、推定部１２によって推定される処理時間は、各ブロックの画像データを生成する処理負荷の大きさを示している。すなわち、上述の第１ブロックとして判別されるブロックは、基準時間内に生成部１１が完了させることができる処理量よりも、処理負荷が大きいブロックである。一方、上述の第２ブロックは、基準時間内に生成部１１が完了させることができる処理量よりも、処理負荷が小さいブロック、即ち、処理負荷に余裕があるブロックであり、かつ、第１ブロックよりも前に処理が行われるブロックである。
【００２４】
したがって、制御部１４が、第１ブロックの画像データを生成する処理の一部を、生成部１１が第２ブロックの画像データを生成する際に実行させることで、第１ブロックの画像データの一部を先行して生成させることができる。また、例えば、生成部１１内のメモリなどに先行して生成した画像データを保持しておき、第１ブロックの画像データを生成するタイミングで、残りの画像データを生成すれば、第１ブロックの画像データの生成を上述の基準時間内に完了させることができる。
【００２５】
つまり、図１に示した画像処理装置１０によれば、基準時間を超える処理時間が推定された第１ブロックの処理負荷を、当該第１ブロックに対応付けられた第２ブロックに分散させ、第１ブロックの画像データの生成を基準時間内に完了させられる。これにより、従来よりも多くのブロックについて、画像データの生成処理を基準時間内に完了させることができるので、処理負荷の大きいブロックがある場合にも、画像を正しく表示させることが可能である。
【００２６】
なお、表示対象の画像が静止画像である場合に、推定部１２および探索部１３によって最初に得られた情報を保持しておき、生成部１１により、各ブロックの画像データが生成される際の制御部１４による制御に用いることができる。
【００２７】
次に、図２及び図３を用いて、図１に示した推定部１２が処理時間を推定する処理及び探索部１３が第１ブロック及び第２ブロックを探索する処理について説明する。
【００２８】
図２は、画像に含まれる各ブロックと図１に示した推定部１２で推定される処理時間との対応関係の例を示す。また、図３は、図１に示した推定部１１に渡されるコマンドリストの例を示す。なお、説明の簡略のため、図２，図３の例では、１枚の画像が７つのブロックに区切られる場合を説明する。
【００２９】
図２(Ａ)は、図１に示したコマンドリストＣＬ(ｊ＋１)で示されるｊ＋１番目の画像の一例である。図２(Ａ)に示した画像において、図形Ｇ１は、ブロックＢ１〜ブロックＢ４の範囲に配置されており、図形Ｇ２は、ブロックＢ３〜ブロックＢ５の範囲に配置されている。また、図形Ｇ３は、ブロックＢ４〜ブロックＢ６の範囲に配置されている。
【００３０】
また、図２(Ｂ)は、図２(Ａ)に示した画像に含まれるブロックＢ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５，Ｂ６，Ｂ７について、図１に示した推定部１２によって推定された処理時間を示す棒グラフである。なお、図２(Ｂ)において、横軸ｔは、処理時間を示し、縦軸Ｂは、ブロックを示している。
【００３１】
図２(Ｂ)において、符号τ１，τ２，τ３，τ４，τ５，τ６，τ７のそれぞれは、図２(Ａ)に示したブロックＢ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５，Ｂ６，Ｂ７について、図１に示した推定部１１によって推定された処理時間を示している。また、符号Ｔｔｈは、図１に示した表示装置１０１により、１ブロック分の画像データを表示する処理にかかる時間、即ち、規準時間を示している。
【００３２】
図２(Ｂ)において、ブロックＢ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５，Ｂ６，Ｂ７に対応して示した処理時間τ１，τ２，τ３，τ４，τ５，τ６，τ７のそれぞれは、図３に示すようなコマンドリストＣＬ(ｊ＋１)に基づいて、次のようにして推定することができる。
【００３３】
図３に示したコマンドリストＣＬ(ｊ＋１)において、符号ＢＬ＿１及び符号ＢＬ＿３のそれぞれは、図２(Ａ)に示したブロックＢ１およびブロックＢ３のそれぞれの描画情報を示す。
【００３４】
ｊ＋１番目の画像において、図２(Ａ)のように図形Ｇ１〜Ｇ３が分布している場合に、ブロックＢ１の描画情報ＢＬ＿１は、図形Ｇ１のうちブロックＢ１に含まれる部分を表す複数のポリゴンを示す情報を含んでいる。同様に、コマンドリストＣＬ（ｊ＋１）に含まれるブロックＢ２の描画情報は、図形Ｇ１のうちブロックＢ２に含まれる部分を表す複数のポリゴンを示す情報を含んでいる。ブロックＢ３の描画情報ＢＬ＿３は、図形Ｇ１，Ｇ２のうちブロックＢ３に含まれる部分を表す複数のポリゴンを示す情報を含んでいる。ブロックＢ４に対応する描画情報は、図形Ｇ１，Ｇ２，Ｇ３のうちブロックＢ４に含まれる部分を表す複数のポリゴンを示す情報を含んでいる。また、ブロックＢ５に対応する描画情報は、図形Ｇ２、Ｇ３のうちブロックＢ５に含まれる部分を表す複数のポリゴンを示す情報を含んでいる。ブロックＢ６に対応する描画情報は、図形Ｇ３のうちブロックＢ６に含まれる部分を表す複数のポリゴンを示す情報を含んでいる。
【００３５】
なお、図３の例では、コマンドリストＣＬ（ｊ＋１）に含まれる描画情報のうち、ブロックＢ２及びブロックＢ４〜ブロックＢ７のそれぞれに対応する描画情報の図示を省略している。
【００３６】
図３に示した描画情報ＢＬ＿１は、ブロック番号Ｂ１とポリゴン数ｍ１(ｍ１は正の整数)とを示す情報とともに、ｍ１個のポリゴンのそれぞれに対応して形状および描画属性を示す情報を含む図形データＰ(１，１)〜Ｐ(１，ｍ１)とを含んでいる。同様に、描画情報ＢＬ＿３は、ブロック番号Ｂ３とポリゴン数ｍ３(ｍ３は正の整数)とを示す情報とともに、ｍ３個のポリゴンのそれぞれに対応して形状および描画属性を示す情報を含む図形データＰ(３，１)〜Ｐ(３，ｍ３)とを含んでいる。なお、各ポリゴンに対応する図形データにおいて、ポリゴンの形状を示す情報は、例えば、ポリゴンの頂点のそれぞれの座標を示す情報である。また、ポリゴンの描画属性を示す情報は、例えば、ポリゴンに適用するシェーディング処理の有無やテクスチャマッピングの有無を指定する情報である。
【００３７】
ここで、生成部１１によって、一つのポリゴンに対応する画像データを生成する処理にかかる時間は、例えば、生成対象のポリゴンの面積と、シェーディング処理の有無やテクスチャマッピングの有無などを含む描画属性とに基づいて推定することができる。
【００３８】
例えば、推定部１２は、１画素の画像データの生成にかかる時間とポリゴンの面積と、シェーディング処理やテクスチャマッピングの適用により処理時間が増大する割合のそれぞれを示す係数とを用いて、式(１)により、１ポリゴン分の処理時間を求めてもよい。なお、式(１)において、符号τは１つのポリゴンの生成にかかる処理時間を示し、符号ｄは１画素の画像データの生成にかかる時間を示し、符号Ｓはポリゴンの面積を示す。また、式(１)において、符号ｒ１はシェーディング処理の適用による処理時間の増大を示す係数を示し、符号ｒ２は、テクスチャマッピングの適用による処理時間の増大を示す係数を示す。なお、ポリゴンの面積は、対応する図形データに含まれる各頂点の座標に基づいて求めることができる。
τ＝ｄ×Ｓ×ｒ１×ｒ２          ・・・(１)
また、推定部１２は、ブロックに含まれるポリゴンのそれぞれについて推定された処理時間を足し合わせることにより、ブロックに対応する画像データを生成する処理にかかる処理時間を推定することができる。
【００３９】
図１に示した推定部１１は、上述の式(１)を用いて各ブロックの描画情報で示される個々のポリゴンの生成にかかる時間を推定し、得られた時間を足し合わせることで、各ブロックに対応する画像データの生成にかかる処理時間を推定してもよい。なお、推定部１１が各ブロックの画像データの生成にかかる処理時間を推定するために用いる手法は、上述の式(１)を用いる手法に限らず、描画情報に基づく推定手法であれば、どんな手法を用いてもよい。
【００４０】
以上に説明したように、個々のブロックの画像データを生成するためにかかる処理時間は、当該ブロックに含まれているポリゴンの面積の総和が大きいほど大きな値となる。一方、表示対象の画像において、ポリゴンの集合として表される図形は、画像の中央部分に集中する場合が多く、逆に、画像の上寄りや下寄りの位置に分布する図形は少ない場合が多い。
【００４１】
例えば、図２(Ｂ)の例のように、図２(Ａ)に示した画像の中央部に対応するブロックＢ３，Ｂ４，Ｂ５について上述の基準時間Ｔｔｈを超える処理時間τ３，τ４，τ５が推定され、これらのブロックが第１ブロックとして判別された場合について考える。
【００４２】
図２(Ｂ)の例において、ブロックＢ３について推定された処理時間のうち、上述の基準時間Ｔｔｈを超える部分φ３は、ブロックＢ３の画像データを生成するための処理負荷のうち、基準時間Ｔｔｈ内で処理可能な限界、即ち限界負荷を超えた超過分を示している。同様に、ブロックＢ４について推定された処理時間のうち、上述の基準時間Ｔｔｈを超える部分φ４は、ブロックＢ４の画像データを生成するための処理負荷のうち、上述の限界負荷を超えた超過分を示している。また、ブロックＢ５について推定された処理時間のうち、上述の基準時間Ｔｔｈを超える部分φ５は、ブロックＢ５の画像データを生成するための処理負荷のうち、上述の限界負荷を超えた超過分を示している。
【００４３】
ここで、図１に示した表示装置１０１により、表示対象の画像が上側に位置するブロックから順に表示される場合に、探索部１３は、例えば、図２(Ａ)に示したブロックＢ１から順に、推定された処理時間が基準時間Ｔｔｈ未満である第２ブロックを探索する。
【００４４】
図２(Ｂ)の例では、ブロックＢ１，Ｂ２について推定された処理時間τ１、τ２は、いずれも基準時間Ｔｔｈ未満である。したがって、図１に示した探索部１３は、例えば、先に推定結果を参照したブロックＢ１を、第１ブロックの一つであるブロックＢ３に対応する第２ブロックとして判別する。
【００４５】
また、図１に示した生成部１１は、上述のブロックＢ１の画像データを生成する処理を上述した処理時間τ１で完了することができる。したがって、制御部１４は、生成部１１に対して、処理時間τ１と基準時間Ｔｔｈとの差分に相当する余剰の時間に、ブロックＢ３に対応する超過分φ３の処理を実行させればよい。
【００４６】
例えば、ブロックＢ３に含まれるｍ３個のポリゴンのうち、基準時間Ｔｔｈ内にｋ個のポリゴンの画像データを生成可能である場合に、ｋ＋１番目以降のポリゴンの画像データを生成する処理が、図２(Ｂ)に示した超過分φ３に相当する。この場合に、制御部１４は、例えば、生成部１１によるブロックＢ１の画像データの生成を完了した後に、図３に示した描画情報ＢＬ＿３のうち、ｋ＋１番目以降のポリゴンに対応する図形データＰ(３，ｋ＋１)〜Ｐ(３，ｍ３)を生成部１１に処理させればよい。
【００４７】
同様にして、ブロックＢ４，Ｂ５に対応する超過分φ４，φ５についても、生成部１１がブロックＢ１，Ｂ２の画像データを生成する処理を完了した後の余剰の時間を利用して実行させることが可能である。
【００４８】
以上に説明したように、図１に示した画像処理装置１０によれば、任意のブロックの画像データを生成する際の生成部１１の処理負荷が限界負荷を超えた場合にも、処理負荷に余裕のあるブロックについて処理する際に超過分を先行して処理させることができる。
【００４９】
これにより、画像データの生成処理を完了させられるブロックを従来よりも多くすることができるので、画像を正しく表示させることが可能になる。また、画像データの生成処理を完了させられるブロックを従来よりも多くすることで、図形の一部に対応する画像データの生成が完了しないために発生するちらつきを少なくすることができ、画質を向上させることができる。
【００５０】
なお、図２，図３の例に限らず、図１に示した画像処理装置１０によれば、例えば、１枚の画像が１００個程度のブロックを含んでいる場合についても、上述した処理負荷の分散を実現することができる。
【００５１】
図１に示した画像処理装置１０に含まれる生成部１１、推定部１２、探索部１３及び制御部１４は、例えば、画像処理装置１０に搭載されたプロセッサにより、内部のメモリに格納されたプログラムを実行することによって実現してもよい。また、生成部１１の機能は、描画エンジンなどの画像データの生成処理に特化した専用ハードウェアによって実現してもよい。また、推定部１２、探索部１３及び制御部１４のそれぞれの機能は、例えば、シーケンサなどのハードウェアによって実現することも可能である。
【００５２】
図４は、図１に示した画像処理装置１０に含まれる推定部１２と探索部１３の動作を示す。また、図５は、画像処理装置１０に含まれる生成部１１と制御部１４の動作を示す。即ち、図４及び図５は、画像データの生成処理に先立って推定された処理時間に基づいて、画像データを生成する処理負荷の分散を図る画像処理方法および画像処理プログラムの一例を示す。
【００５３】
画像処理装置１０の推定部１２及び探索部１３による図４に示したステップＳ３０１〜ステップＳ３０７の各処理と、生成部１１及び制御部１４による図５に示したステップ３１０〜ステップＳ３２０の各処理とは並行して実行されることが望ましい。例えば、生成部１１及び制御部１４により、ｊ番目の画像に対応するコマンドリストＣＬ(ｊ)につき図５に示した各処理を行う過程と並行して、推定部１２及び探索部１３により、コマンドリストＣＬ(ｊ＋１)につき図４に示した各処理を実行することが望ましい。つまり、画像処理装置１０は、推定部１２及び探索部１３による処理と、生成部１１及び制御部１４による処理とを、画像１枚毎にパイプライン化して処理することが望ましい。
【００５４】
図４に示したステップＳ３０１において、図１に示した推定部１２は、次に表示対象となる画像に含まれる各ブロックの描画情報を受ける。例えば、図１に示したコマンドリストＣＬ(ｊ)に含まれる各ブロックの描画情報が生成部１１に渡されている間に、推定部１２は、次に表示対象となるｊ＋１番目の画像のコマンドリストＣＬ(ｊ＋１)に含まれる各ブロックの描画情報を受ける。
【００５５】
ステップＳ３０２において、推定部１２は、ステップＳ３０１の処理で受けた描画情報に基づいて、例えば、上述の式(１)を用いて各ブロックの画像データを生成する処理にかかる処理時間を推定する。
【００５６】
ステップＳ３０３において、探索部１３は、上述のステップＳ３０２の処理で、推定部１２によって得られた推定結果に基づいて、推定された処理時間が基準時間Ｔｔｈを超えている第１ブロックがあるか否かを判定する。
【００５７】
少なくとも一つのブロックについて基準時間Ｔｔｈを超える処理時間が推定された場合に(ステップＳ３０３の肯定判定(ＹＥＳ))、探索部１３は、ステップＳ３０４及びステップＳ３０５の処理を実行する。
【００５８】
ステップＳ３０４において、探索部１３は、図２及び図３を用いて説明したようにして、第１ブロックとして判別したブロックのそれぞれに対応して、第２ブロックを探索する。
【００５９】
ステップＳ３０５において、探索部１３は、第１ブロックのそれぞれと、ステップＳ３０４の処理で当該第１ブロックに対応して得られた第２ブロックとの対応関係を示す情報を、コマンドリストＣＬ(ｊ＋１)についての解析結果として出力する。
【００６０】
一方、各ブロックについて推定された処理時間の全てが上述の基準時間Ｔｔｈ以下である場合に(ステップＳ３０３の否定判定(ＮＯ))、探索部１３は、ステップＳ３０６の処理を実行する。
【００６１】
ステップＳ３０６において、探索部１３は、コマンドリストＣＬ(ｊ＋１)についての解析結果として、各ブロックの画像データの生成処理は、基準時間Ｔｔｈ内に完了可能である旨の情報を出力する。
【００６２】
ステップＳ３０３の肯定判定ルートの処理と否定判定ルートの処理とは、ステップＳ３０７において合流する。
【００６３】
ステップＳ３０７において、推定部１２は、動画像に含まれるｎ枚の画像に対応するコマンドリストの全てについての処理が完了したか否かを判定する。未処理のコマンドリストがある場合に(ステップＳ３０７の否定判定(ＮＯ))、推定部１２は、ステップＳ３０１の処理に戻り、次の画像に対応するコマンドリストについての処理を開始する。一方、全ての画像についての処理が終了した場合に(ステップＳ３０７の肯定判定(ＹＥＳ))、推定部１２及び探索部１３は、処理を終了する。
【００６４】
なお、推定部１２及び探索部１３は、以上に説明したステップＳ３０１〜ステップＳ３０７の処理を、生成部１１及び制御部１４による処理に、画像１枚分先行して実行することが望ましい。つまり、生成部１１及び制御部１４は、推定部１２及び探索部１３による最初の画像のコマンドリストについての処理が完了した後に、図５に示したステップＳ３１０〜ステップＳ３２０の処理を開始することが望ましい。推定部１２及び探索部１３の処理を画像一枚分先行させることで、制御部１４は、各画像についての処理を開始する時点で、当該画像に含まれる各ブロックの画像データを基準時間Ｔｔｈ内に生成可能か否かを示す情報を含む解析結果を取得することができる。
【００６５】
図５に示したステップＳ３１０において、制御部１４は、表示対象の画像について、推定部１２及び探索部１３による画像一枚分先行した処理で得られた解析結果を取得する。
【００６６】
ステップＳ３１１において、生成部１１は、図１に示したコマンドリストバッファ１０２に保持された表示対象の画像のコマンドリストから、表示装置１０１における表示順に、各ブロックの描画情報を取得する。
【００６７】
ステップＳ３１２において、制御部１４は、ステップＳ３１０の処理で取得した解析結果に基づいて、処理対象のブロックがいずれかのブロックに第２ブロックとして対応付けられているか否かを判定する。
【００６８】
上述の解析結果の中に、処理対象のブロックと第１ブロックとして判別されたブロックのいずれかとの対応関係を示す情報が含まれている場合に、制御部１４は、ステップＳ３１２の肯定判定(ＹＥＳ)として、ステップＳ３１３、ステップＳ３１４の処理を実行する。
【００６９】
ステップＳ３１３において、制御部１４は、ステップＳ３１１で取得した描画情報から１ブロック分の画像データを生成する旨を生成部１１に指示し、生成部１１は、上述の描画情報から画像データを生成し、生成した画像データを表示装置１０１に表示させる。
【００７０】
ステップＳ３１４において、制御部１４は、処理対象のブロックに対応付けられた第１ブロックの描画情報の一部を生成部１１に渡し、渡した描画情報の一部に対応する画像データを生成部１１に生成させる。例えば、制御部１４は、図２、図３を用いて説明した超過分に対応する描画情報をコマンドリストバッファ１０２から取得し、取得した描画情報から画像データを生成する処理を生成部１１に実行させればよい。また、制御部１４は、生成部１１内のメモリなどに、上述の描画情報の一部に基づいて生成された画像データを保持させる。
【００７１】
つまり、制御部１４からの指示に従って生成部１１がステップＳ３１４の処理を実行することにより、処理対象のブロックに対応付けられた第１ブロックの画像データの一部を、当該第１ブロックについての処理に先行して生成しておくことができる。また、制御部１４は、ステップＳ３１４の処理の過程で、先行して画像データの生成を行ったブロックのそれぞれに対応して、先行して生成された画像データに対応する描画情報の範囲を示す情報を保持しておくことが望ましい。
【００７２】
一方、ステップＳ３１２の否定判定(ＮＯ)の場合に、制御部１４は、ステップＳ３１５の処理に進む。
【００７３】
ステップＳ３１５において、制御部１４は、ステップＳ３１０の処理で取得した解析結果に基づいて、処理対象のブロックが第１ブロックとして判別されたブロックか否かを判定する。
【００７４】
処理対象ブロックが第１ブロックである場合に(ステップＳ３１５の肯定判定(ＹＥＳ))、制御部１４は、ステップＳ３１６及びステップＳ３１７の処理を実行する。
【００７５】
ステップＳ３１６において、制御部１４は、ステップＳ３１１で生成部１１が取得した描画情報のうち、まだ画像データが生成されていない描画情報から残りの画像データを生成する処理を生成部１１に実行させる。例えば、制御部１４は、処理対象のブロックに対応して保持された処理済みの描画情報の範囲を示す情報を参照し、参照した情報に基づいて、未処理の描画情報から画像データを生成する旨を生成部１１に指示すればよい。
【００７６】
ステップＳ３１７において、生成部１１は、ステップＳ３１６の処理で制御部１４からの指示に応じて生成した画像データと、先行して生成しておいた画像データとを合成することで、処理対象のブロックの画像データを完成させ、表示装置１０１に表示させる。
【００７７】
一方、処理対象ブロックが第２ブロックでも第１ブロックでもない場合に（ステップＳ３１５の否定判定(ＮＯ)）、制御部１４は、ステップＳ３１８の処理を実行する。
【００７８】
ステップＳ３１８において、制御部１４は、上述のステップＳ３１１で生成部１１が取得した描画情報から画像データを生成する旨を生成部１１に指示し、生成部１１は、上述の描画情報から画像データを生成し、生成した画像データを表示装置１０１に表示させる。
【００７９】
ステップＳ３１２の肯定判定ルートの処理と否定判定ルートの処理は、ステップＳ３１９において合流する。
【００８０】
ステップＳ３１９において、制御部１４は、表示対象の画像に含まれる全てのブロックについて、上述のステップＳ３１１〜ステップＳ３１８の処理を実行したか否かを判定する。
【００８１】
未処理のブロックがある場合に(ステップＳ３１９の否定判定(ＮＯ))、制御部１４は、ステップＳ３１１の処理に戻り、新たなブロックの描画情報についての処理を開始する。一方、全てのブロックについての処理が完了した場合に（ステップＳ３１９の肯定判定(ＹＥＳ)）、制御部１４は、ステップＳ３２０の処理に進む。
【００８２】
ステップＳ３２０において、制御部１４は、動画像に含まれるｎ枚の画像についての処理が完了したか否かを判定する。未処理の画像がある場合に（ステップＳ３２０の否定判定(ＮＯ)）、制御部１４は、ステップＳ３１０の処理に戻り、次の画像について、推定部１２及び探索部１３で得られた解析結果を取得し、新たな画像についての処理を開始する。一方、全ての画像についての処理が終了した場合に（ステップＳ３２０の肯定判定（ＹＥＳ））、生成部１１及び制御部１４は、処理を終了する。
【００８３】
以上に説明したように、画像１枚毎に同期して、推定部１２と探索部１３とによる処理と、生成部１１と制御部１４とによる処理とを実行させることにより、画像データの生成処理に先立って推定した処理時間に基づく画像データの生成処理の負荷分散を実現できる。
【００８４】
例えば、図２(Ｂ)において、ブロックＢ３，Ｂ４，Ｂ５に対応して示した処理負荷の超過分φ３，φ４，φ５を、ブロックＢ３〜Ｂ５に先立って表示対象となるブロックＢ１，Ｂ２の画像データを生成する際に、分散して処理させることができる。
【００８５】
なお、図５に示したステップＳ３１０〜ステップＳ３２０の各処理は、制御部１４により、第２ブロックの画像データが生成される過程で、第２ブロックに対応付けられた第１ブロックの画像データの一部を生成する処理を生成部１１に実行させる処理の一例である。制御部１４により、生成部１１の画像データ生成動作を制御する処理は、図５に示した例に限らず、画像データの生成処理に先立って推定した処理時間に基づいて、画像データの生成処理の負荷を分散する処理であればよい。
【００８６】
ところで、例えば、あるブロックに複雑な特徴を持つ図形が集中して分布している場合などに、そのブロックについて予想される処理負荷の超過分が大きくなり、どれか一つのブロックについて予想される余剰時間では処理しきれなくなる場合が考えられる。また、複数のブロックにわたって上述の基準時間Ｔｔｈよりもわずかに長い処理時間が推定される場合などに、これらのブロックについてそれぞれ予想された超過分を、一つのブロックについて予想される余剰の時間を用いて処理させる場合も考えられる。
【００８７】
その一方、複数のブロックにわたって複雑な特徴を持つ図形が集中して分布している場合には、超過分の発生が予想されたブロックのうちいくつかについて、超過分の処理負荷の分散先を見つけられない可能性もある。
【００８８】
図６は、画像に含まれる各ブロックについて推定される処理時間の別例を示す。なお、図６に示した要素のうち、図２に示した要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
【００８９】
図６(Ａ)は、１枚の画像に含まれるｎ個のブロックのうち、ブロック番号１〜１４で示される各ブロックについて、図１に示した推定部１２で推定された処理時間の例を示す棒グラフである。なお、図６(Ａ)において、ブロック番号１５以降のブロックについて推定された処理時間の図示は省略している。
【００９０】
図６(Ａ)の例では、ブロック番号３，４，５，６，１０，１１で示される各ブロックについて、上述の基準時間Ｔｔｈを超える処理時間が推定されている。また、図６(Ａ)において、符号φ３，φ４，φ５，φ６，φ１０及びφ１１のそれぞれは、ブロック番号３，４，５，６，１０，１１で示される各ブロックについて予想される処理負荷の超過分を示している。なお、図６(Ａ)に示した超過分φ１１は、２つの部分φ１１ａと，φ１１ｂとを含んでいる。
【００９１】
図６(Ｂ)は、図６(Ａ)に示した超過分φ３，φ４，φ５，φ１０及びφ１１のそれぞれに割り当てる分散先の例を示す。なお、図６(Ｂ)において、ブロック番号１５以降のブロックについての図示は省略している。
【００９２】
図６(Ｂ)の例のように、超過分φ３、φ４は、ブロック番号１のブロックについて予想される余剰時間に割り当てることができ、また、超過分φ５は、ブロック番号２のブロックについて予想される余剰時間に割り当てることができる。同様に、超過分φ１０は、ブロック番号７のブロックについて予想される余剰時間に割り当てることができる。また、超過分φ１１は、符号φ１１ａで示した部分と符号φ１１ｂで示した部分とに分割することで、ブロック番号８、９で示した２つのブロックのそれぞれについて予想される余剰時間に割り当てることができる。
【００９３】
図６(Ｂ)に示した超過分φ３、φ４、φ５についての割り当て方は、複数のブロックについてそれぞれ予想された超過分を一つのブロックについて予想された余剰時間に割り当てる場合の一例である。また、図６(Ｂ)に示した超過分φ１１についての割り当て方は、一つのブロックについて予想された超過分を、複数のブロックについて予想された余剰時間に振り分けて割り当てる場合の一例である。
【００９４】
一方、図６(Ａ)，(Ｂ)において、ブロック番号６のブロックに対応して示した超過分φ６は、分散先を見つけられない場合の例である。
【００９５】
次に、処理対象の画像において、処理負荷が様々な特徴で分布している場合に好適な画像処理装置１０の実施形態について説明する。
【００９６】
図７は、画像処理装置１０、画像処理方法および画像処理プログラムの別実施形態を示す。なお、図７に示した構成要素のうち、図１に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
【００９７】
図７に示した画像処理装置１０において、生成部１１は、ラインバッファ１１１ａ，１１１ｂと、ｔ(ｔは正の整数)個のバッファ１１２＿１，…，１１２＿ｔと、描画情報処理部１１３と、展開部１１４とを含んでいる。また、図７に示した探索部１３は、ブロック情報保持部１３１と、判定部１３２と、特定部１３３とを含んでいる。
【００９８】
ラインバッファ１１１ａ，１１１ｂのそれぞれは、１ブロック分の画像データを格納する容量を有しており、描画情報処理部１１３と表示装置１０１との間に配置されている。また、ラインバッファ１１１ａ，１１１ｂは、描画情報処理部１１３と表示装置１０１とに交互に接続され、一方が描画情報処理部１１３による画像データの書き込みを受けている間に、他方に保持された画像データを表示装置１０１に渡す機能を有している。
【００９９】
また、バッファ１１２＿１，…，１１２＿ｔのそれぞれは、１ブロック分の画像データを格納する容量を有している。これらのバッファ１１２＿１，…，１１２＿ｔは、基準時間Ｔｔｈ内に処理が完了しないことが予想される第１ブロックに対応する描画情報の一部から生成した画像データを、上述の第１ブロックに対応して保持するバッファの一例である。なお、以下の説明において、バッファ１１２＿１，…，１１２＿ｔを総称する際は、単にバッファ１１２と称する。
【０１００】
描画情報処理部１１３は、コマンドリストバッファ１０２から処理対象の描画情報を順次に取得し、取得した描画情報から画像データを生成するとともに、制御部１４からの指示に基づいて、指定されたブロックの描画情報の一部についての処理を先行して行う。また、描画情報処理部１１３は、順次に取得した描画情報から生成した画像データをラインバッファ１１１ａ，１１１ｂに交互に保持させる。一方、描画情報処理部１１３は、制御部１４からの指示で指定されたブロックに対応する描画情報の一部から画像データを生成した場合に、生成した画像データをバッファ１１２＿１，…，１１２＿ｔのいずれかに保持させる。描画情報処理部１１３は、例えば、制御部１４からの指示で指定されたブロックに対応して上述のバッファ１１２＿１，…，１１２＿ｔの一つを獲得し、獲得したバッファ１１２に、制御部１４からの指示に基づいて生成した画像データを格納する。
【０１０１】
上述のバッファ１１２＿１，…，１１２＿ｔのそれぞれと、先行して画像データの生成が行われるブロックとの対応関係は、例えば、バッファ管理テーブル１１５を用いて管理してもよい。バッファ管理テーブル１１５は、例えば、上述のバッファ１１２＿１，…，１１２＿ｔのそれぞれを示すバッファ番号に対応して、各バッファ１１２に保持される画像データに対応するブロック番号を保持するテーブルである。
【０１０２】
描画情報処理部１１３は、例えば、獲得したバッファ１１２のバッファ番号に対応して、制御部１４からの指示で指定されたブロック番号をバッファ管理テーブル１１５に格納することで、上述のバッファ１１２とブロック番号で示されるブロックとを対応付ける。
【０１０３】
展開部１１４は、制御部１４からの指示に基づいて、上述のバッファ管理テーブル１１５を参照し、指示で指定されたブロック番号に対応付けられたバッファ１１２を示すバッファ番号を取得する。また、展開部１１４は、取得したバッファ番号で示されるバッファ１１２から画像データを読み出し、ラインバッファ１１１ａ，１１１ｂのうち、描画情報処理部１１３による画像データの書き込み先となっている方に、読み出した画像データを展開する。その後、展開部１１４は、取得したバッファ番号に対応してバッファ管理テーブル１１５に保持されたブロック番号をクリアすることで、展開が完了したブロックに対応付けられたバッファ１１２を解放する。
【０１０４】
図７に示した生成部１１によれば、展開部１１４がバッファ１１２内の画像データを展開した後に、描画情報処理部１１３で生成された画像データをラインバッファ１１１に格納することで、当該ブロックの画像データを完成させることができる。
【０１０５】
図８は、図７に示した生成部１１により、先行して生成した画像データを用いて１ブロック分の画像データを完成させる例を示す。
【０１０６】
図８(Ａ)は、図７に示した描画情報処理部１１３により、例えば、図６(Ａ)に示したブロック番号３のブロックに対応して先行して生成され、バッファ１１２に保持された画像データの例である。図８(Ａ)に示した画像データは、例えば、上述のブロックに含まれるｍ個のポリゴンのうち、描画情報の先頭からｑ番目までの図形データから生成されたｑ個のポリゴンを１ブロック分の背景に重ね合わせることで生成されている。
【０１０７】
図８(Ｂ)は、上述のブロックが処理対象となった際に、図７に示した描画情報処理部１１３によって新たに生成される画像データの例である。図８(Ｂ)に示した画像データは、例えば、上述のブロックに含まれるｍ個のポリゴンのうち、描画情報のｑ＋１番目からｍ番目までの図形データから生成されるｍ−ｑ個のポリゴンで形成される図形を表している。
【０１０８】
図８(Ｃ)は、図８(Ａ)に示した画像データをラインバッファ１１１に展開した後に、図８(Ｂ)に示した画像データを同じラインバッファ１１１に格納させることによって完成させた１ブロック分の画像データを示している。
【０１０９】
即ち、図７に示したバッファ１１２及び展開部１１４を有する生成部１１によれば、簡易な制御により、先行して生成された画像データを用いて、処理対象のブロックの画像データを完成させ、表示装置１０１による表示処理に供することができる。
【０１１０】
また、図７に示した探索部１３において、ブロック情報保持部１３１は、１枚の画像に含まれる各ブロックを示すブロック番号に対応して、推定部１２によって推定された処理時間を含むブロック情報を保持する。ブロック情報保持部１３１は、例えば、推定部１２により、ブロック番号順に、各ブロックの処理時間が推定される毎に、得られた処理時間を推定部１２から受け受けた処理時間をブロック番号に対応して保持すればよい。
【０１１１】
また、判定部１３２は、上述のブロック情報保持部１３１に新たな処理時間が保持される毎に、新たに保持された処理時間と上述の基準時間Ｔｔｈとの差分を積算する。また、判定部１３２は、先頭からＬ番目のブロックの処理時間が得られた際に算出した積算値に基づいて、画像の先頭からＬ番目のブロックまでの範囲について推定した全ての処理量を、上述の範囲の表示にかかる時間内にまかなえるか否かを判定する。
【０１１２】
ここで、１枚の画像に含まれるｍ個のブロックのそれぞれについて推定された処理時間を符号ｔ(ｉ)(ｉ＝１〜ｍ)で表せば、Ｌ番目のブロックに対応して得られる積算値Ｒは、下に示す式(２)で表すことができる。
【０１１３】
【数１】
2015014944.tif 000003
【０１１４】
例えば、図６(Ａ)の例で、ブロック番号１，２のブロックについて推定された処理時間を基準時間Ｔｔｈから差し引いて得られる差分ｄ１、ｄ２はいずれも正の値であるので、上述の差分ｄ１、ｄ２を積算して得られる積算値Ｒは零以上の値となる。一方、図６(Ａ)の例で、ブロック番号３のブロックについて推定された処理時間を基準時間Ｔｔｈから差し引いて得られる差分ｄ３は負の値である。したがって、３番目のブロックについて推定された超過分φ３に対応する時間よりも上述の差分ｄ１、ｄ２の和が大きいか等しい場合に、３番目のブロックまでの積算値Ｒは零以上の値となる。その一方、上述の超過分φ３に対応する時間よりも上述の差分ｄ１、ｄ２の和が小さい場合に、３番目のブロックまでの積算値Ｒは零未満の値、即ち、負の値となる。
【０１１５】
つまり、Ｌ番目のブロックまでの範囲に含まれる第１ブロックのそれぞれについて推定された超過分の全てが、上述の範囲に含まれるブロックの処理に利用できる時間内に処理可能である場合に、上述の範囲における積算値Ｒは零以上となる。一方、Ｌ番目のブロックまでの範囲に含まれる第１ブロックのそれぞれについて推定された超過分の少なくとも一部が、上述の範囲に含まれるブロックの処理に利用できる時間内に処理できない場合に、上述の範囲における積算値Ｒは零未満となる。すなわち、Ｌ番目のブロックまでの範囲について上述の式(２)を用いて算出した積算値Ｒが零以上であるか否かは、上述の範囲に含まれる第１ブロックについて予想される超過分の全てを分散処理可能であるか否かを示している。
【０１１６】
判定部１３２は、Ｌ番目のブロックまでの各ブロックについて推定された処理時間と基準時間Ｔｔｈとの差分を積算することで得られた積算値が零以上である場合に、先頭からＬ番目のブロックまでの範囲に割り当て可能な余剰時間があると判定する。一方、上述の積算値が零未満である場合に、判定部１３２は、先頭からＬ番目のブロックまでの範囲に割り当て可能な余剰時間がない可能性があると判定する。
【０１１７】
更に、判定部１３２は、各ブロックについて推定された処理時間と、上述の積算値とに基づいて、当該ブロックが次に述べる３つの種別のどれに属するかを判別し、判別結果をブロック番号に対応してブロック情報保持部１３１に保持してもよい。判定部１３２は、推定された処理時間が基準時間Ｔｔｈよりも長い処理時間が推定された第１ブロックのうち、対応する積算値が零以上であるブロックを、他のブロックに処理負荷を分散させる分散元となる種別「分散元」に属するブロックとして判別する。一方、上述の第１ブロックのうち、対応する積算値が零未満であるブロックを、判定部１３２は、一ラインおきに生成した画像データを補間する処理であるライン補間処理の対象となる種別「ライン補間」に属するブロックとして判別する。また、判定部１３２は、推定された処理時間が基準時間Ｔｔｈ以下であるブロックを、処理負荷の分散先として割り当て可能な第２ブロックとなる種別「分散先」に属するブロックとして判別する。
【０１１８】
なお、判定部１３２は、あるブロックを種別「ライン補間」に属すると判別した場合に、当該ブロックについて推定された処理時間を基準時間Ｔｔｈに置き換えて、上述した式(２)を用いて積算値を再計算し、再計算結果を以降の処理に用いることが望ましい。例えば、図６(Ａ)に示した６番目のブロックについて種別「ライン補間」を判別した場合に、判定部１３２は、判別結果をブロック情報保持部１３１に保持する際に、ブロック番号６に対応して保持された処理時間を基準時間Ｔｔｈに書き換えてもよい。また、併せて、判定部１３２は、ブロック番号６のブロックの処理時間として基準時間Ｔｔｈを用いて積算値の再計算を行い、新たに得られた積算値を以降の判定処理に用いる。
【０１１９】
上述の積算値の再計算を行うことにより、判定部１３２は、以降の処理において、ライン補間処理が適用されるブロックについて予想される処理負荷の超過分を除外して、余剰時間の有無を判定することができる。
【０１２０】
これにより、例えば、図６(Ａ)においてブロック番号６に対応して示した超過分φ６よりも小さい余剰時間が５番目のブロックまでの範囲にある場合に、この余剰時間をブロック番号７以降のブロックについて予想される超過分に割り当てることが可能となる。つまり、ライン補間処理が適用されるブロックより前の範囲に残っている割り当て可能な余剰時間を、当該ブロックより後のブロックについて予想される超過分に割り当てることで、余剰時間を有効に利用することができる。
【０１２１】
図７に示したブロック情報保持部１３１は、推定部１２により、１枚の画像に含まれる各ブロックについての処理時間が順次に推定される毎に、推定された処理時間をブロック番号に対応して保持する。また、ブロック情報保持部１３１は、推定部１２で得られた新たなブロックについての処理時間に基づいて、判定部１３２で得られる判定結果を保持する。また、ブロック情報保持部１３１は、判定部１３２により、種別「分散元」が判別されたブロックを示すブロック番号に対応して、当該ブロックの処理負荷のうち他のブロックに分散させる処理負荷を示す情報を保持することが望ましい。
【０１２２】
図９は、ブロック情報保持部１３１に保持されたブロック情報の例を示す。なお、図９に示した要素のうち、図６に示した要素と同等のものについては、同一の符号を付して示し、その説明は省略する。図９の例は、図７に示した推定部１２により、ブロック番号１４までの各ブロックについて処理時間の推定結果が得られた段階までに得られたブロック情報を示している。
【０１２３】
図９において、ブロック番号１〜１４に対応して示した符号ｔ１，ｔ２，ｔ３，ｔ４，ｔ５，ｔ６，ｔ７，ｔ８，ｔ９，ｔ１０，ｔ１１，ｔ１２，ｔ１３，ｔ１４は、図７に示した推定部１２により各ブロックについて推定された処理時間を示す。なお、所持時間ｔ１〜ｔ１４のそれぞれの値は、図６(Ａ)に示した棒グラフにおいて、各ブロックの処理時間を示す矩形の長さに相当している。即ち、ブロック番号１，２，７，８，９，１２，１３，１４について推定された処理時間ｔ１，ｔ２，ｔ７，ｔ８，ｔ９，ｔ１２，ｔ１３，ｔ１４は、上述の基準時間Ｔｔｈよりも短い。一方、ブロック番号３，４，５，６，１０，１１について推定された処理時間ｔ３，ｔ４，ｔ５，ｔ６，ｔ１０，ｔ１１は、基準時間Ｔｔｈよりも長い。
【０１２４】
また、図９の例では、ブロック番号１，２，７，８，９，１２，１３，１４に対応するブロック情報は、図７に示した判定部１３２による判定結果として、種別「分散先」とを含んでいる。なお、ブロック番号１，２，７，８，９，１２，１３，１４に対応するブロック情報に含まれる「割り当てられる処理負荷」を示す情報については、図７に示した特定部１３３の説明の中で後述する。
【０１２５】
また、図９において、ブロック番号３，４，５，１０，１１に対応して示したブロック情報は、判定部１３２による判定結果として、種別「分散元」と、「分散させる処理負荷」を示す情報を含んでいる。図９において、ブロック番号３に対応して示したブロック情報は、「分散させる処理負荷」を示す情報として、図６(Ａ)に示した超過分φ３に相当する時間を示す情報を保持している。同様に、ブロック番号４に対応して示したブロック情報は、「分散させる処理負荷」を示す情報として、図６(Ａ)に示した超過分φ４に相当する時間を示す情報を保持している。また、ブロック番号５に対応して示したブロック情報は、「分散させる処理負荷」を示す情報として、図６(Ａ)に示した超過分φ５に相当する時間を示す情報を保持している。また、ブロック番号１０に対応して示したブロック情報は、「分散させる処理負荷」を示す情報として、図６(Ａ)に示した超過分φ１０に相当する時間を示す情報を保持している。同様に、ブロック番号１１に対応して示したブロック情報は、「分散させる処理負荷」を示す情報として、図６(Ａ)に示した超過分φ１１に相当する時間を示す情報を保持している。
【０１２６】
一方、図９において、ブロック番号６に対応して示したブロック情報は、判定部１３２による判定結果として、種別「ライン補間」を含んでいる。
【０１２７】
なお、ブロック番号６に対応する処理時間として示した情報「ｔ６→Ｔｔｈ」は、当該ブロックについて判定部１３２が種別「ライン補間」を判別した際に、推定部１２によって推定された処理時間ｔ６を基準時間Ｔｔｈに置き換えたことを示している。
【０１２８】
図７に示した特定部１３３は、判定部１３２により、種別「分散元」に属するブロックが判別される毎に、ブロック情報保持部１３１に保持されたブロック情報に基づいて、当該ブロックについて予想される処理負荷の超過分を割り当てる第２ブロックを特定する。
【０１２９】
ここで、上述の判定部１３２は、推定部１２によって基準時間Ｔｔｈを超える処理時間が推定されたブロックである第１ブロックのうち、当該第１ブロックまでの範囲に割り当て可能な余剰時間があると判定したブロックを種別「分散元」と判別する。したがって、特定部１３３を有する探索部１３によれば、余剰時間があると判定された場合に、上述の範囲に含まれるブロックの中から、処理対象の第１ブロックに対応付ける第２ブロックを探索することができる。
【０１３０】
特定部１３３は、例えば、判定部１３２から、種別「分散元」と判別されたブロックを示すブロック番号を受け、受けたブロック番号に対応してブロック情報保持部１３１に保持されたブロック情報から分散させる処理負荷を示す情報を取得する。また、特定部１３３は、受けたブロック番号よりも若い番号に対応するブロック情報の中で、種別「分散先」を含むブロック情報を参照し、参照したブロック情報に含まれる処理時間を取得する。また、特定部１３３は、取得した処理時間のそれぞれについて、基準時間Ｔｔｈとの差分、即ち、割当先の候補となるブロックごとの余剰時間を求める。次いで、特定部１３３は、求めた余剰時間のそれぞれと、取得した分散させる処理負荷を示す情報で示される時間とを比較し、比較結果に基づいて、分散させる処理負荷を示す情報で示される時間よりも長い余剰時間が得られたブロックを特定すればよい。
【０１３１】
例えば、ブロック番号３に基づいてブロック情報保持部１３１を参照することで、特定部１３３は、図９においてブロック番号３に対応して示した「分散させる処理負荷」を示す情報として、図６(Ａ)に示した超過分φ３に相当する時間を取得する。また、特定部１３３は、ブロック情報保持部１３１から、ブロック番号１，２に対応する処理時間ｔ１、ｔ２を取得し、取得した処理時間ｔ１、ｔ２と基準時間Ｔｔｈとの差分ｄ１、ｄ２として得られる余剰時間と超過分φ３に相当する時間とを順次に比較する。
【０１３２】
例えば、図６(Ａ)に示した例のように、超過分φ３に相当する時間に比べて、ブロック番号１に対応する処理時間ｔ１と基準時間Ｔｔｈとの差分ｄ１の方が長い場合に、特定部１３３は、ブロック番号１のブロックを超過分φ３の割当先として特定してもよい。
【０１３３】
同様にして、特定部１３３は、ブロック番号４，５，１０，１１のブロックについて予想される超過分φ４，φ５，φ１０，φ１１の割当先のブロックを特定することができる。なお、判定部１３２から受けたブロック番号よりも若い番号で示されるブロックの中に、既に超過分の割り当てを受けたブロックがある場合に、特定部１３３は、当該ブロックの余剰時間を割り当て済みの超過分に応じて減じてから比較することが望ましい。
【０１３４】
また、特定部１３３は、上述の手順で特定したブロックに対応するブロック情報の「割り当てられる処理負荷」を示す情報として、分散元を示すブロック番号と割り当てられた超過分に相当する時間を示す情報をブロック情報保持部１３１に格納してもよい。
【０１３５】
図９の例では、ブロック番号１に対応するブロック情報は、「割り当てられる処理負荷」を示す情報として、分散元を示すブロック番号３，４と、ブロック番号３，４のブロックについて予想される処理負荷の超過分φ３，φ４に相当する時間を示す情報を含んでいる。また、ブロック番号２に対応するブロック情報は、「割り当てられる処理負荷」を示す情報として、分散元を示すブロック番号５と、ブロック番号５のブロックについて予想される処理負荷の超過分φ５に相当する時間を示す情報を含んでいる。同様に、ブロック番号７に対応するブロック情報は、「割り当てられる処理負荷」を示す情報として、分散元を示すブロック番号１０と、ブロック番号１０のブロックについて予想される処理負荷の超過分φ１０に相当する時間を示す情報を含んでいる。一方、ブロック番号８に対応するブロック情報は、「割り当てられる処理負荷」を示す情報として、分散元を示すブロック番号１１と、ブロック番号１１のブロックについて予想される処理負荷の超過分の一部φ１１ａに相当する時間を示す情報を含んでいる。また、ブロック番号９に対応するブロック情報は、「割り当てられる処理負荷」を示す情報として、分散元を示すブロック番号１１と、ブロック番号１１のブロックについて予想される処理負荷の超過分の一部φ１１ｂに相当する時間を示す情報を含んでいる。
【０１３６】
上述の判定部１３２及び特定部１３３を有する探索部１３によれば、判定部１３２で処理負荷の分散元となるブロックを判別した順に、それまでにブロック情報保持部１３１に保持されたブロック情報に基づいて、分散先となる第２ブロックを探索することができる。
【０１３７】
したがって、推定部１２により、１枚の画像においてブロックが表示対象となる順序を示すブロック番号順に処理時間を推定する場合に、処理時間の推定の完了とともに、処理負荷が超過しているブロックについて、超過分の割当先の探索を完了させることができる。
【０１３８】
なお、探索部１３において、処理負荷が超過しているブロックについて、超過分の割当先を探索する順序は、ブロック番号順に限らず、例えば、超過分の大きい順序や、画像において中央に近い順序などでもよい。ブロック番号順以外の順序で、超過分の割当先となる第２ブロックを探索する処理については、図１５〜図１７を用いて後述する。
【０１３９】
また、図７に示した制御部１４は、上述したブロック情報保持部１３１を参照することで、生成部１１による画像データの生成処理の対象となるブロックについて判別された種別を含む解析結果を取得し、取得した解析結果を生成部１１の制御に用いることができる。
【０１４０】
制御部１４は、処理対象のブロックが種別「分散先」に分類されている場合に、生成部１１の描画情報処理部１１３に、処理対象のブロックに対応する画像データに加えて、当該ブロックに対応付けられた第１ブロックの画像データの一部を先行して生成させる。
【０１４１】
また、制御部１４は、処理対象のブロックが種別「分散元」に分類されている場合に、先行して生成された画像データを展開部１１４に展開させた後、描画情報処理部１１３に残りの画像データを生成させることで、１ブロック分の画像データを完成させる。
【０１４２】
一方、制御部１４は、処理対象のブロックが種別「ライン補間」に分類されている場合に、描画情報処理部１１３に対して、一ラインおきに生成した画像データを補間する処理により、１ブロック分の画像データを生成させる。すなわち、図７に示した制御部１４は、探索部１３の処理過程で得られた情報に基づいて、超過分の処理負荷を分散させられないことが分かったブロックについて、生成部１１にライン補間処理を実行させる。例えば、制御部１４は、描画情報処理部１１３に、処理対象のブロックに含まれる偶数ラインの画像データを生成させ、得られた画像データを複写することで奇数ラインの画像データを生成させてもよい。
【０１４３】
ここで、図２、図３を用いて説明したように、画像データの生成処理にかかる時間は、生成される画像データに含まれる画素数におおよそ比例する。したがって、ライン補間処理で画像データを生成する場合には、画像データの生成対象を偶数ラインに絞ることで、全ての画素に対応する画像データを生成する場合に比べて、処理時間が短縮することができる。
【０１４４】
つまり、図７に示した画像処理装置１０によれば、超過分の処理負荷を分散させられないことが分かったブロックについてライン補間処理を適用することで、基準時間Ｔｔｈ内に画像データの生成処理を完了させられるブロックを更に増やすことが可能である。
【０１４５】
また、図７に示した推定部１２と、判定部１３２及び特定部１３３を含む探索部１３と、制御部１４とは、プロセッサなどにより、メモリに格納されたプログラムを実行するにより実現できる。上述のプロセッサは、例えば、自動車のエンジンなどの制御を行う車両制御装置と、ダッシュボードに装着された液晶表示部とを接続するインタフェースユニットに搭載されるプロセッサなどのように小規模のプロセッサでもよい。
【０１４６】
また、図７に示した生成部１１において、先行して生成される画像データを保持させるバッファ１１２は、一枚の画像が１００個のブロックを含んでいる場合に、例えば、１５ブロック分の記憶容量を用意することで実現することができる。つまり、図７に示したバッファ１１２は、１枚分の画像データを保持することが可能なフレームメモリを用意する場合に比べて、小規模のハードウェアで実現することができる。
【０１４７】
小規模のハードウェアで実現可能であることは、上述のインタフェースユニットなどのように、部品のコストの低減が重視される装置への実装を考える場合に、有用な特徴である。したがって、図７に示した画像処理装置１０は、上述のインタフェースユニットなどへの実装に好適である。
【０１４８】
図１０は、図７に示した画像処理装置１０のハードウェア構成例を示す。なお、図１０に示した構成要素のうち、図７に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
【０１４９】
図１０に示したインタフェースユニット２０は、コマンドリストバッファ１０２ａ，１０２ｂと、プロセッサ２１と、メモリ２２と、描画エンジン２３と、転送回路２４と、ラインバッファ１１１ａ，１１１ｂと、バッファ１１２＿１〜１１２＿ｔとを含んでいる。
【０１５０】
なお、図１０に示したバッファ１１２の数ｔは、上述した１５個の限らず、例えば、１枚の画像において、基準時間Ｔｔｈ以上の処理時間が推定されるブロックが含まれる頻度などに基づいて、予め決定しておくことが望ましい。
【０１５１】
上述のプロセッサ２１と、メモリ２２と、描画エンジン２３と、転送回路２４とは、バスを介して互いに接続されている。また、インタフェースユニット２０は、コマンドリストバッファ１０２ａ，１０２ｂを介して車両制御装置ＣＵに接続されており、また、ラインバッファ１１１ａ，１１１ｂを介して液晶ディスプレイＬＣＤに接続されている。
【０１５２】
上述のプロセッサ２１、メモリ２２、描画エンジン２３、転送回路２４、ラインバッファ１１１およびバッファ１１２は、画像処理装置１０に含まれている。また、プロセッサ２１は、例えば、コマンドリストバッファ１０２ａ，１０２ｂを参照することにより、車両制御装置ＣＵから順次に渡されるコマンドリストを取得する。
【０１５３】
上述のコマンドリストバッファ１０２ａ，１０２ｂは、図７に示したコマンドリストバッファ１０２に相当するものである。図１０に示したインタフェースユニット２０の例では、車両制御装置ＣＵから渡されるコマンドリストを、コマンドリストバッファ１０２ａ，１０２ｂに交互に格納させることで、コマンドリストの読み出しと格納とを並行して実行可能としている。
【０１５４】
また、描画エンジン２３は、図７に示した描画情報処理部１１３に相当するものであり、コマンドリストバッファ１０２ａ，１０２ｂを介して車両制御装置ＣＵに接続されており、また、ラインバッファ１１１ａ，１１１ｂを介して液晶表示部ＬＣＤに接続されている。
【０１５５】
更に、描画エンジン２３は、プロセッサ２１からの指示に基づいて、指定されたブロックの画像データの一部を先行して生成し、生成した画像データを上述のバッファ１１２のいずれかに保持する。
【０１５６】
転送回路２４は、図７に示した展開部１１４に相当するものであり、プロセッサ２１からの指示に基づいて、指定されたブロックについて先行して生成された画像データをバッファ１１２から読み出し、ラインバッファ１１１に転送する。
【０１５７】
図１０に例示したメモリ２２は、インタフェースユニット２０の制御プログラムとともに、プロセッサ２１により、描画エンジン２３の処理負荷を分散させるための処理を実行するためのアプリケーションプログラムを格納している。
【０１５８】
そして、プロセッサ２１は、メモリ２２に格納されたアプリケーションプログラムを実行することにより、図１または図７に示した推定部１２、探索部１３及び制御部１４の機能を果たしてもよい。また、図７に示したブロック情報保持部１３１とバッファ管理テーブル１１５とのそれぞれは、メモリ２２の一部の記憶領域を用いて実現することができる。
【０１５９】
つまり、本件開示の画像処理装置１０は、例えば、上述したインタフェースユニット２０に含まれるプロセッサ２１と、メモリ２２と、描画エンジン２３と、転送回路２４と、ラインバッファ１１１及びバッファ１１２の協働によって実現することができる。
【０１６０】
描画エンジン２３の処理負荷を分散させる処理のためのアプリケーションプログラムは、コマンドリストを解析することで処理負荷の分散のための情報を収集する処理をプロセッサ２１に実行させるアプリケーションプログラムを含んでいる。また、描画エンジン２３の処理負荷を分散させる処理のためのアプリケーションプログラムは、コマンドリストの解析結果に基づいて、画像データの生成を制御する処理をプロセッサ２１に実行させるアプリケーションプログラムを含んでいる。
【０１６１】
プロセッサ２１は、コマンドリストを解析する処理のためのアプリケーションプログラムと、画像データの生成を制御する処理のためのアプリケーションプログラムとを、並行して実行する。また、プロセッサ２１は、コマンドリストを解析する処理のためのアプリケーションプログラムと、画像データの生成を制御する処理のためのアプリケーションプログラムとを、動画像に含まれる個々の画像毎に同期して実行することが望ましい。更に、プロセッサ２１は、コマンドリストを解析する処理のためのアプリケーションプログラムを、画像データの生成を制御する処理のためのアプリケーションプログラムに対して、画像１枚分先行して実行することが望ましい。つまり、プロセッサ２１は、ｊ番目の画像に対応するコマンドリストＣＬ(ｊ)から描画エンジン２３が画像データを生成する際の動作を制御する処理と並行して、ｊ＋１番目の画像に対応するコマンドリストＣＬ(ｊ＋１)の解析処理を実行する。
【０１６２】
図１１は、コマンドリストを解析する処理を示す。図１１に示したステップＳ３２１〜ステップＳ３３１の各処理は、コマンドリストを解析する処理のためのアプリケーションプログラムに含まれる処理の一例である。また、これらのステップＳ３２１〜ステップＳ３３１の各処理は、プロセッサ２１によって実行される。
【０１６３】
ステップＳ３２１において、プロセッサ２１は、処理対象の画像のコマンドリストに含まれる描画情報を、ブロック番号順に取得する。プロセッサ２１は、例えば、図１０に示した車両制御装置ＣＵからインタフェースユニット２０が各画像のコマンドリストを画像番号順に受け取る過程で、車両制御装置ＣＵからコマンドリストバッファ１０２にブロック番号順に渡される描画情報を取得する。
【０１６４】
ステップＳ３２２において、プロセッサ２１は、ステップＳ３２１の処理で取得した描画情報から、処理対象のブロックの画像データを生成する処理にかかる処理時間ｔを推定する。プロセッサ２１は、図２、図３を用いて説明したように、取得した描画情報に含まれる全ての図形データから画像データを生成する処理にかかる時間を推定する際に、式(１)を用いてもよい。即ち、プロセッサ２１がステップＳ３２１，Ｓ３２２の処理を実行することは、図１、図７に示した推定部１２の実施形態の一つである。
【０１６５】
ステップＳ３２３において、プロセッサ２１は、それまでにステップＳ３２２の処理で得られた処理時間ｔのそれぞれを基準時間Ｔｔｈから減じて得られる差分の積算値Ｒを算出する。例えば、プロセッサ２１は、図７を用いて説明したように、上述の式(２)を用いて、積算値Ｒを求めてもよい。また、プロセッサ２１は、ステップＳ３２２の処理で新たな処理時間ｔが得られる毎に、新たな処理時間と基準時間Ｔｔｈとの差分を順次に積算することで、積算値Ｒを求めてもよい。
【０１６６】
ステップＳ３２４において、プロセッサ２１は、ステップＳ３２２の処理で得られた処理時間ｔが上述の基準時間Ｔｔｈよりも長いか否かを判定する。
【０１６７】
上述の処理時間ｔが、基準時間Ｔｔｈ以下である場合に(ステップＳ３２４の否定判定(ＮＯ））、プロセッサ２１は、処理対象のブロックには、他のブロックの処理に割り当て可能な余剰時間があると判断し、ステップＳ３２５の処理を実行する。
【０１６８】
ステップＳ３２５において、プロセッサ２１は、図１０に示したメモリ２２に設けたブロック情報保持部１３１に、処理対象のブロックのブロック番号に対応して、処理負荷の分散先となれる旨の種別「分散先」を示す情報と処理時間ｔを含むブロック情報を格納する。なお、メモリ２２には、２つのブロック情報保持部１３１ａ，１３１ｂを設けることが望ましい。また、この場合に、一方のブロック情報保持部１３１に、画像番号が奇数である画像に対応するコマンドリストの解析過程で得られる情報を保持し、他方に画像番号が偶数である画像に対応して得られる情報を保持することが望ましい。
【０１６９】
一方、上述の処理時間ｔが、基準時間Ｔｔｈよりも大きい場合、即ち、処理対象のブロックの画像データを生成する処理負荷が上述の限界負荷を超えている場合に(ステップＳ３２４の肯定判定(ＹＥＳ））、プロセッサ２１は、ステップＳ３２６の処理に進む。
【０１７０】
ステップＳ３２６において、プロセッサ２１は、上述のステップＳ３２３の処理で得られた積算値Ｒの値が零以上であるか否かを判定する。
【０１７１】
積算値Ｒの値が零未満である場合に(ステップＳ３２６の否定判定(ＮＯ））、プロセッサ２１は、処理対象のブロックの処理負荷のうち、上述の限界負荷を超えた分である超過分を分散できないと判断し、ステップＳ３２７，Ｓ３２８の処理を実行する。
【０１７２】
ステップＳ３２７において、プロセッサ２１は、上述のブロック情報保持部１３１に、処理対象のブロックのブロック番号に対応して、ライン補間処理を適用する旨の種別「ライン補間」を示す情報を含むブロック情報を格納する。また、プロセッサ２１は、ステップＳ３２２の処理で推定された処理時間ｔの代わりに、上述の基準時間Ｔｔｈを処理対象のブロックの処理時間を示すブロック情報の一部としてブロック情報保持部１３１に格納する。
【０１７３】
ステップＳ３２８において、プロセッサ２１は、処理対象のブロックについてステップＳ３２２の処理で推定された処理時間ｔの代わりに上述の基準時間Ｔｔｈを用いて、積算値Ｒを再計算する。
【０１７４】
一方、積算値Ｒの値が零以上である場合に(ステップＳ３２６の肯定判定(ＹＥＳ））、プロセッサ２１は、処理対象のブロックについて予想される処理負荷の超過分を分散させることができると判断し、ステップＳ３２９，Ｓ３３０の処理を実行する。
【０１７５】
ステップＳ３２９において、プロセッサ２１は、上述のブロック情報保持部１３１に、処理対象のブロックのブロック番号に対応して、処理負荷の分散元である旨の種別「分散元」を示す情報と処理時間ｔを含むブロック情報を格納する。
【０１７６】
ステップＳ３３０において、プロセッサ２１は、それまでに種別「分散先」と判別されたブロックの中から、処理対象のブロックについて予想される処理負荷の超過分の分散先を特定する。プロセッサ２１は、例えば、図１２に示すステップＳ３４１〜ステップＳ３４８の処理を実行することにより、第２ブロックを特定する処理を実現してもよい。
【０１７７】
ステップＳ３２６の肯定判定ルートの処理と否定判定ルートの処理と、上述のステップ３２４の否定判定ルートの処理とは、ステップＳ３３１において合流する。
【０１７８】
ステップＳ３３１において、プロセッサ２１は、全てのブロックの描画情報について、上述のステップＳ３２１〜ステップＳ３３０の処理が完了したか否かを判定する。
【０１７９】
未処理のブロックが残っている場合に(ステップＳ３３１の否定判定(ＮＯ））、プロセッサ２１は、ステップＳ３２１の処理に戻り、次のブロック番号で示されるブロックの描画情報についての処理を実行する。
【０１８０】
処理対象の画像に対応するコマンドリストに含まれる描画情報の全てについての処理が完了した場合に（ステップＳ３３１の肯定判定(ＹＥＳ））、プロセッサ２１は、画像一枚分のコマンドリストを解析する処理を終了する。
【０１８１】
なお、プロセッサ２１は、上述のステップＳ３２６の処理で、積算値Ｒの値をゼロよりも大きい所定値βと比較し、積算値Ｒが所定値β以上であるか否かに基づいて、処理対象のブロックの超過分を分散させることができるか否かを判断してもよい。例えば、所定値βとして、上述のステップＳ３２２によって推定される処理時間と実際の処理時間との間の誤差に相当する時間を示す値を設定すれば、上述の誤差を考慮した判断を行うことができる。
【０１８２】
図１１に示した流れ図では、プロセッサ２１がステップＳ３２３〜ステップＳ３２９の処理を実行することにより、図７に示した判定部１３２の機能を実現することができる。また、プロセッサ２１が、ステップＳ３３０の処理、即ち、図１２に示すステップＳ３４１〜ステップＳ３４８の処理を実行することにより、図７に示した特定部１３３の機能を実現することができる。
【０１８３】
図１２は、図１１に示した超過分の分散先を特定する処理を示す。図１２に示したステップＳ３４１〜ステップＳ３４８の各処理は、コマンドリストを解析する処理のためのアプリケーションプログラムに含まれる処理の一例である。また、これらのステップＳ３４１〜ステップＳ３４８の各処理は、プロセッサ２１によって実行される。
【０１８４】
ステップＳ３４１において、プロセッサ２１は、処理対象のブロックに対応してブロック情報保持部１３１に保持されたブロック情報を参照することで、当該ブロックについて推定された処理時間ｔを取得する。また、プロセッサ２１は、取得した処理時間ｔから上述の基準時間Ｔｔｈを減じることで、超過分を示す時間を取得する。
【０１８５】
ステップＳ３４２において、プロセッサ２１は、処理対象のブロックを示すブロック番号よりも若い番号に対応するブロックのうち、種別「分散先」と判別されたブロックにつき、ブロック番号順に余剰時間を算出する。プロセッサ２１は、例えば、処理対象のブロックよりも若いブロック番号に対応してブロック情報保持部１３１に保持されたブロック情報のうち、種別「分散先」が設定されたブロック情報をブロック番号順に参照し、ブロック情報に含まれる処理時間を取得する。また、プロセッサ２１は、取得した処理時間を上述の基準時間Ｔｔｈから減じることで、取得した処理時間が推定されたブロックについての余剰時間を求めてもよい。
【０１８６】
ステップＳ３４３において、プロセッサ２１は、ステップＳ３４２で算出した余剰時間が処理対象のブロックに対応する超過分に相当する時間以上であるか否かを判定する。ここで、最初にステップＳ３４３の処理を実行する際に、プロセッサ２１は、ステップＳ３４２で算出した余剰時間とステップＳ３４１で取得した超過分を示す時間とを比較する。一方、処理対象のブロックについて予想された超過分が、複数のブロックに分散して割り当てられる場合に、プロセッサ２１は、後述するステップＳ３４８の処理で更新された超過分を示す時間とステップＳ３４２で算出した余剰時間とを比較する。
【０１８７】
ステップＳ３４３の肯定判定(ＹＥＳ)の場合に、プロセッサ２１は、ステップＳ３４２の処理で余剰時間を算出したブロックに、処理対象のブロックについて予想される処理負荷の超過分の全てを割り当て可能であると判断する。この場合に、プロセッサ２１は、ステップＳ３４４，Ｓ３４５の処理を実行する。
【０１８８】
ステップＳ３４４において、プロセッサ２１は、ステップＳ３４２の処理で余剰時間を算出したブロックを、超過分の全てを割り当てる分散先として特定する。また、プロセッサ２１は、特定したブロックを示すブロック番号に対応するブロック情報の一部として、処理対象のブロックについて予想された超過分の全てに対応する時間を示す情報をブロック情報保持部１３１に保持する。
【０１８９】
ステップＳ３４５において、プロセッサ２１は、ステップＳ３４４の処理で特定されたブロックに対応する処理時間に、上述の超過分に対応する時間を加算し、加算結果を用いて、上述のブロックに対応するブロック情報を更新する。例えば、図６(Ａ)に示したブロック番号１のブロックが、ブロック番号３のブロックについて予想される超過分の処理の分散先として特定された場合に、プロセッサ２１は、ブロック番号１のブロックに対応する処理時間を上述の超過分に応じて更新する。これにより、次に、ブロック番号４のブロックについて予想される超過分の処理の分散先を特定する処理を行う際には、ブロック番号１のブロックの余剰時間を、更新後の処理時間に基づいて算出することができる。
【０１９０】
一方、ステップＳ３４３の否定判定(ＮＯ)の場合に、プロセッサ２１は、ステップＳ３４２で余剰時間を算出したブロックに、処理対象のブロックに対応する超過分の全てを割り当てることはできないと判断し、ステップＳ３４６〜Ｓ３４８の処理を実行する。
【０１９１】
ステップＳ３４６において、プロセッサ２１は、ステップＳ３４２の処理で余剰時間を算出したブロックを、超過分の一部を割り当てる分散先として特定する。また、プロセッサ２１は、特定したブロックを示すブロック番号に対応するブロック情報の一部として、例えば、処理対象のブロックについて予想された超過分の一部に対応する時間を示す情報をブロック情報保持部１３１に保持する。
【０１９２】
ステップＳ３４７において、プロセッサ２１は、ステップＳ３４６の処理で特定されたブロックを示すブロック番号に対応してブロック情報保持部１３１に保持されたブロック情報の処理時間を上述の基準時間Ｔｔｈに置き換える。
【０１９３】
ステップＳ３４８において、プロセッサ２１は、処理対象のブロックに対応する超過分を示す時間から、ステップＳ３４６の処理で分散先として特定されたブロックについて得られた余剰時間を差し引いた値を用いて、上述の超過分を更新する。
【０１９４】
ステップＳ３４３の否定判定ルートの処理は、上述のステップＳ３４８の処理が終了した後に、ステップＳ３４２の処理に戻り、次に見つかった種別「分散先」が設定されたブロックについて算出した余剰時間に基づいて、ステップＳ３４３以降の処理を繰り返す。そして、更新された超過分よりも長い余剰時間を持つブロックが見つかった場合に、プロセッサ２１は、ステップＳ３４４及びステップＳ３４５の処理を実行する。
【０１９５】
以上のようにして、超過分の分散先を特定する処理が完了した場合に、プロセッサ２１は、図１１に示したステップＳ３３１の処理に進む。
【０１９６】
図１１、図１２を用いて説明したコマンドリストを解析する処理と画像単位で同期して、プロセッサ２１は、図１３、図１４に示す画像データの生成を制御する処理を実行する。
【０１９７】
図１３は、画像データの生成を制御する処理の一例を示す。図１３に示したステップＳ３５１〜ステップＳ３６２の各処理は、画像データの生成を制御する処理のためのアプリケーションプログラムに含まれる処理の一例である。また、これらのステップＳ３５１〜ステップＳ３６２の各処理は、プロセッサ２１によって実行される。
【０１９８】
ステップＳ３５１において、プロセッサ２１は、処理対象の画像のコマンドリストが格納されたコマンドリストバッファ１０２から、ブロック番号順に描画情報を取得する旨を指示することで、図１０に示した描画エンジン２３に描画情報を取得させる。
【０１９９】
ステップＳ３５２において、プロセッサ２１は、ステップＳ３５１で描画情報を取得したブロック、すなわち、処理対象のブロックに対応してブロック情報保持部１３１に保持されたブロック情報を参照する。
【０２００】
ステップＳ３５３において、プロセッサ２１は、ステップＳ３５２の処理で参照したブロックに含まれる種別を示す情報に基づいて、ブロックの種別が「ライン補間」であるか否かを判定する。
【０２０１】
ステップＳ３５２の処理で参照したブロック情報に、種別「ライン補間」を示す情報が含まれている場合に(ステップＳ３５３の肯定判定(ＹＥＳ))、プロセッサ２１は、ステップＳ３５４の処理を実行する。
【０２０２】
ステップＳ３５４において、プロセッサ２１は、ステップＳ３５１の処理で取得した描画情報に基づくライン補間処理の実行を指示することで、１ブロック分の画像データを描画エンジン２３に生成させる。描画エンジン２３は、例えば、描画情報に基づいて、ブロックに含まれる偶数ラインの画像データを生成し、生成した画像データの複写として奇数ラインの画像データを生成することで、１ブロック分の画像データを生成してもよい。
【０２０３】
一方、ステップＳ３５２の処理で参照したブロック情報に、種別「ライン補間」以外の種別を示す情報が含まれている場合に(ステップＳ３５３の否定判定(ＮＯ))、プロセッサ２１は、ステップＳ３５５の処理に進む。
【０２０４】
ステップＳ３５５において、プロセッサ２１は、ステップＳ３５２の処理で参照したブロック情報に、種別「分散先」を示す情報が含まれているか否かを判定する。
【０２０５】
ステップＳ３５５の肯定判定(ＹＥＳ)の場合に、プロセッサ２１は、ステップＳ３５６〜ステップＳ３５８の処理を実行する。
【０２０６】
ステップＳ３５６において、プロセッサ２１は、取得した描画情報の先頭から画像データを生成する旨を描画エンジン２３に指示することで、処理対象のブロックの画像データを生成させる。
【０２０７】
ステップＳ３５７において、プロセッサ２１は、ステップＳ３５２の処理で参照したブロック情報に、処理対象のブロックに割り当てられた処理負荷を示す情報が含まれているか否かを判定する。
【０２０８】
上述のブロック情報に、割り当てられた処理負荷を示す情報が含まれている場合に（ステップＳ３５７の肯定判定(ＹＥＳ)）、プロセッサ２１は、ステップＳ３５８の処理に進む。
【０２０９】
ステップＳ３５８において、プロセッサ２１は、上述のブロック情報に基づいて描画エンジン２３の動作を制御することで、処理対象のブロックへの割り当てが示された処理負荷のそれぞれに対応する画像データを生成させる。プロセッサ２１は、例えば、図１４に示すステップＳ３７０からステップＳ３７８の処理を実行することで、上述のステップＳ３５８の処理を実現してもよい。
【０２１０】
ここで、図１３に示したステップＳ３５９からステップＳ３６２の処理の説明に先立って、図１４を用いて、ステップＳ３５８の処理について説明する。
【０２１１】
図１４は、図１３においてステップＳ３５８で示した処理対象のブロックへの割り当てが示された処理負荷に対応する画像データを生成する処理を示す。図１４に示したステップＳ３７０〜ステップＳ３７８の各処理は、画像データの生成を制御する処理のためのアプリケーションプログラムに含まれる処理の一例である。また、これらのステップＳ３７０〜ステップＳ３７８の各処理は、プロセッサ２１によって実行される。
【０２１２】
ステップＳ３７０において、プロセッサ２１は、上述したステップＳ３５２で取得したブロック情報において、割り当てられた処理負荷を示す情報の中から、ブロック番号順に、処理負荷の割り当て分を示す情報を選択する。例えば、図９において、ブロック番号１に対応して示したブロック情報を参照した場合に、プロセッサ２１は、割り当てられた処理負荷を示す情報から、ブロック番号順に従って、まず、ブロック番号３に対応する超過分φ３を示す情報を選択する。
【０２１３】
ステップＳ３７１において、プロセッサ２１は、ステップＳ３７０の処理で選択したブロックに対応して、図１０に示したバッファ１１２＿１〜１１２＿ｔのいずれかが既に獲得されているかを判定する。プロセッサ２１は、例えば、メモリ２２に設けられたバッファ管理テーブル１１５により、各バッファ１１２に対応付けられたブロック番号の中に、選択したブロックを示すブロック番号があるか否かを調べることで、ステップＳ３７１の処理を実現してもよい。
【０２１４】
ステップＳ３７０の処理で選択したブロックが、まだ、いずれのバッファ１１２にも対応付けられていない場合に(ステップＳ３７１の否定判定(ＮＯ))、プロセッサ２１は、バッファは獲得済みでないと判断し、ステップＳ３７２の処理を実行する。
【０２１５】
ステップＳ３７２において、プロセッサ２１は、まだどのブロックにも獲得されていないバッファ１１２のいずれかを獲得し、獲得したバッファ１１２と選択したブロックとを対応付ける。例えば、プロセッサ２１は、獲得したバッファ１１２に対応して、選択したブロックを示すブロック番号をブロック管理テーブル１１５に格納することで、選択したブロックとバッファ１１２との対応付けを示してもよい。
【０２１６】
一方、バッファ管理テーブル１１５において、バッファ１１２のいずれかに対応して、選択したブロックを示すブロック番号が格納されていた場合に（ステップＳ３７１の肯定判定(ＹＥＳ)）、プロセッサ２１は、ステップＳ３７３の処理に進む。
【０２１７】
ステップＳ３７３において、プロセッサ２１は、コマンドリストバッファ１０２に選択したブロックに対応して保持された描画情報の中から、所定数の図形データを取得し、取得した図形データを描画エンジン２３に渡す。プロセッサ２１は、コマンドリストバッファ１０２において、ブロック毎に設定された読出ポインタの位置から所定数のポリゴンに対応する図形データを読み出すことで、所定数の図形データを取得すればよい。ここで、ブロックごとの読出ポインタは、図１３に示した画像データの生成を制御する処理を開始する毎に、各ブロックの描画情報の先頭に設定されることが望ましい。したがって、選択したブロックについて最初にステップＳ３７３の処理を実行する場合に、プロセッサ２１は、描画情報の先頭から所定数の図形データを取得する。なお、ステップＳ３７３の処理でプロセッサ２１が取得する図形データの数を示す所定数は、例えば、１でもよいし、２以上の数でもよい。
【０２１８】
ステップＳ３７４において、プロセッサ２１は、ステップＳ３７３で取得した図形データの数に基づいて、選択したブロックに対応する読出ポインタの位置を更新する。
【０２１９】
ステップＳ３７５において、プロセッサ２１は、ステップＳ３７３の処理で取得した図形データについての画像データの生成を描画エンジン２３に指示することで、所定数のポリゴンに対応する画像データを生成させる。また、プロセッサ２１は、生成した画像データの格納先として、選択したブロックに対応付けられたバッファ１１２を指定することで、描画エンジン２３で生成された画像データをバッファ１１２に格納させる。
【０２２０】
ステップＳ３７６において、プロセッサ２１は、図１３に示したステップＳ３５６の処理を開始してから、上述の基準時間Ｔｔｈが経過したか否かを判定する。
【０２２１】
図１３に示したステップＳ３５６の処理を開始してからの経過時間が基準時間Ｔｔｈ未満である場合に(ステップＳ３７６の否定判定(ＮＯ))、プロセッサ２１は、ステップＳ３７７の処理に進む。
【０２２２】
ステップＳ３７７において、プロセッサ２１は、上述のステップＳ３７５の処理により、選択したブロックから割り当てられた分の処理の実行が完了したか否かを判定する。プロセッサ２１は、例えば、選択したブロックについての処理を開始してからの経過時間と、割り当てられた処理負荷に相当する時間との比較に基づいて、ステップＳ３７７の判定処理を行ってもよい。例えば、上述のステップＳ３７０の処理において、ブロック番号１に対応するブロック情報から、ブロック番号３のブロックからの処理負荷の割り当てを示す情報を取得し、ブロック番号３のブロックについての処理を行う場合について説明する。この場合に、プロセッサ２１は、ブロック番号３とともに取得した超過分φ３に相当する時間と、ステップＳ３７０の処理を開始してからの経過時間とを比較することで、ブロック番号３のブロックからの割り当て分を処理したか否かを判定する。
【０２２３】
選択したブロックについての処理を開始してからの経過時間が、割り当てられた処理負荷に相当する時間未満である場合に(ステップＳ３７７の否定判定(ＮＯ))、プロセッサ２１は、ステップＳ３７３の処理に戻り、新たな図形データについての処理を開始する。
【０２２４】
ステップＳ３７３からステップＳ３７７の処理を繰り返して実行する過程で、上述の経過時間が割り当てられた処理負荷に相当する時間に到達した場合に（ステップＳ３７７の肯定判定(ＹＥＳ)）、プロセッサ２１は、ステップＳ３７８の処理に進む。
【０２２５】
ステップＳ３７８において、プロセッサ２１は、ステップＳ３７０の処理でまだ選択していない割り当て分があるか否かを判定する。
【０２２６】
未選択の割り当て分がある場合に(ステップＳ３７８の肯定判定(ＹＥＳ))、プロセッサ２１は、ステップＳ３７０の処理に戻り、次に大きいブロック番号で示されるブロックからの割り当て分を示す情報を選択し、選択したブロックについての処理を開始する。
【０２２７】
一方、未選択の割り当て分が無い場合(ステップＳ３７８の否定判定(ＮＯ))と、ステップＳ３７６の肯定判定(ＹＥＳ)の場合に、プロセッサ２１は、割り当てが示された処理負荷に対応する画像データを生成する処理を終了する。そして、プロセッサ２１は、図１３に示したステップＳ３６２の処理に進む。
【０２２８】
ここで、図１１，１２を用いて説明したように、種別「分散元」が設定されたブロックについて予想された処理負荷の超過分は、当該ブロックよりも若いブロック番号で示される種別「分散先」のブロックに割り当てられている。したがって、プロセッサ２１が、種別「分散先」が設定されたブロックについての処理の過程で、上述のステップＳ３５８の処理を実行することで、上述の超過分に対応する画像データの生成を、描画エンジン２４に先行して実行させることができる。
【０２２９】
図１３に示したステップＳ３５２の処理で参照したブロック情報に、種別「分散元」を示す情報が含まれていた場合に(ステップＳ３５５の否定判定(ＮＯ))の場合に、プロセッサ２１は、ステップＳ３５９〜ステップＳ３６１の処理を実行する。
【０２３０】
上述したように、種別「分散元」が設定されたブロックについて予想された処理負荷の超過分は、当該ブロックよりも若いブロック番号で示される種別「分散先」のブロックに割り当てられている。したがって、種別「分散元」が設定されたブロックが処理対象となった際には、既に当該ブロックに対応する描画情報の一部に基づく画像データの生成処理が行われており、生成された画像データが、当該ブロックに対応付けられたバッファ１１２に格納されている。
【０２３１】
ステップＳ３５９において、プロセッサ２１は、処理対象のブロックに対応付けられたバッファ１１２内の画像データの転送を転送回路２４に指示することで、先行して生成された画像データをラインバッファ１１１に展開させる。
【０２３２】
ステップＳ３６０において、プロセッサ２１は、ステップＳ３５９の処理で展開された画像データの展開が完了したバッファ１１２を解放する。プロセッサ２１は、例えば、上述したバッファ１１２に対応してバッファ管理テーブル１１５に保持されたブロック番号をクリアすることで、バッファ１１２について設定された対応付けを解除してもよい。
【０２３３】
ステップＳ３６１において、プロセッサ２１は、ステップＳ３５１の処理で取得した描画情報において、読出ポインタで示される位置から画像データを生成する旨を描画エンジン２３に指示することで、画像データの残りの部分を生成させる。
【０２３４】
即ち、プロセッサ２１が、ステップＳ３５９〜ステップＳ３６１の処理を実行することで、先行して生成された画像データと、処理対象のブロックとなった際に生成された画像データとから１ブロック分の画像データを完成させることができる。
【０２３５】
ステップＳ３５５の肯定判定ルートの処理及び否定判定ルートの処理と、ステップＳ３５３の肯定判定ルートの処理とは、ステップＳ３６２において合流する。
【０２３６】
ステップＳ３６２において、プロセッサ２１は、処理対象の画像に含まれる全てのブロックについての画像データ生成処理が終了したか否かを判定する。
【０２３７】
画像データの生成が完了していないブロックがある場合に（ステップＳ３６２の否定判定(ＮＯ)）、プロセッサ２１は、ステップＳ３５１の処理に戻り、新たなブロックについての処理を開始する。
【０２３８】
一方、処理対象の画像に含まれる全てのブロックについての処理が完了した場合に（ステップＳ３６２の肯定判定(ＹＥＳ)）、プロセッサ２１は、１枚分の画像データの生成を制御する処理を終了する。
【０２３９】
以上に説明したように、プロセッサ２１が、描画エンジン２３の処理負荷を分散させるための処理を実行するためのアプリケーションプログラムを実行することにより、従来よりも多くのブロックの画像データを基準時間Ｔｔｈ内に生成することが可能になる。これにより、従来よりも多くのブロックを正しく表示することができるので、ちらつきの少ない、見やすい画像を利用者に提示することができる。
【０２４０】
ところで、コマンドリストを解析する処理において、超過分の割当先となるブロックを探索する順序は、図１１に示したブロック番号順に限らず、図１５〜図１７に示すように、様々な変形が可能である。以下に、図１５〜図１７を用いて、コマンドリストを解析する処理の別例について説明する。
【０２４１】
図１５は、コマンドリストを解析する処理の別例を示す。なお、図１５に示したステップのうち、図１１に示したステップと同等のものについては、同一の符号を付して示し、その説明は省略する。
【０２４２】
図１５に示したステップＳ３８１〜ステップＳ３８７の各処理は、コマンドリストを解析する処理のためのアプリケーションプログラムに含まれる処理の一例である。また、これらのステップＳ３８１〜ステップＳ３８７の各処理は、プロセッサ２１によって実行される。
【０２４３】
ステップＳ３８１において、プロセッサ２１は、処理対象の画像に含まれる全てのブロックに対応する描画情報から、各ブロックの画像データを生成する際にかかる処理時間を推定する。プロセッサ２１は、図１０に示した車両制御装置ＣＵからコマンドリストバッファ１０２に各ブロックの描画情報が渡される毎に、コマンドリストバッファ１０２に渡される描画情報から、当該ブロックの画像データの生成にかかる時間を推定してもよい。
【０２４４】
ステップＳ３８２において、プロセッサ２１は、ステップＳ３８１の処理により、上述の基準時間Ｔｔｈ未満の処理時間が推定されたブロックに対応するブロック情報に、種別「分散先」を示す情報を設定する。
【０２４５】
ステップＳ３８３において、プロセッサ２１は、ステップＳ３８１の処理で推定された処理時間が長い順に、各ブロックの処理順を決定する。プロセッサ２１は、処理対象の画像に含まれる全てのブロックのうち、上述の基準時間Ｔｔｈよりも長い処理時間が推定されたブロックについて、処理順を決定してもよい。
【０２４６】
プロセッサ２１は、ステップＳ３８３の処理で決定された処理順に従って選択した処理対象のブロックについて、以下に述べる処理を実行する。
【０２４７】
ステップＳ３８４において、プロセッサ２１は、選択した処理対象のブロックについてステップＳ３８１の処理で推定された処理時間ｔが基準時間Ｔｔｈよりも長いか否かを判定する。
【０２４８】
選択したブロックについて推定された処理時間ｔが基準時間Ｔｔｈよりも長い場合に(ステップＳ３８４の肯定判定(ＹＥＳ))、プロセッサ２１は、ステップＳ３８５の処理に進む。
【０２４９】
ステップＳ３８５において、プロセッサ２１は、選択したブロックまでの範囲に含まれる種別「分散先」が設定されたブロックについて推定された余剰時間の総和Ｑを算出する。プロセッサ２１は、例えば、画像において、選択したブロックまでの範囲に含まれるブロックの中から、種別「分散先」が設定されたブロックを抽出する。また、プロセッサ２１は、抽出したブロックについて推定された処理時間を基準時間Ｔｔｈから減じて得られる余剰時間を足し合わせることで、余剰時間の総和Ｑを算出してもよい。
【０２５０】
ステップＳ３８６において、プロセッサ２１は、ステップＳ３８５の処理で算出した余剰時間の総和Ｑが、選択したブロックについて推定された処理時間ｔから基準時間Ｔｔｈを減じて得られる処理負荷の超過分以上であるか否かを判定する。
【０２５１】
選択したブロックについてステップＳ３８５の処理で算出した余剰時間の総和Ｑが処理負荷の超過分未満である場合に(ステップＳ３８６の否定判定(ＮＯ))、プロセッサ２１は、選択したブロックの処理負荷の超過分を分散させることができないと判断する。この場合に、プロセッサ２１は、図１１に示したステップＳ３２７の処理を実行する。
【０２５２】
一方、ステップＳ３８５の処理で算出した余剰時間の総和Ｑが、選択したブロックの処理負荷の超過分以上である場合に(ステップＳ３８６の肯定判定(ＹＥＳ))、プロセッサ２１は、選択したブロックの処理負荷の超過分を分散させることができると判断する。この場合に、プロセッサ２１は、図１１に示したステップＳ３２９、Ｓ３３０の処理を実行する。
【０２５３】
上述のステップＳ３８６の肯定判定ルートの処理と否定判定ルートの処理及びステップＳ３８４の否定判定ルートの処理は、ステップＳ３８７において合流する。
【０２５４】
ステップＳ３８７において、プロセッサ２１は、全てのブロックについて処理したか否かを判定する。
【０２５５】
処理対象の画像に含まれるブロックの中に、まだ、種別を示す情報が設定されていないブロックがある場合に(ステップＳ３８７の否定判定(ＮＯ))、プロセッサ２１は、ステップＳ３８４の処理に戻り、新たなブロックについての処理を開始する。
【０２５６】
一方、処理対象の画像に含まれる全てのブロックへの種別を示す情報の設定が完了した場合に(ステップＳ３８７の肯定判定(ＹＥＳ))、プロセッサ２１は、コマンドリストを解析する処理を終了する。
【０２５７】
図１５に示した手順は、推定された処理時間が長い順に、即ち、予想される処理負荷の超過分が大きい順に、超過分の処理負荷の割当先を特定する。
【０２５８】
ここで、予想される処理負荷の超過分が大きいブロックは、対応する画像データの一部の生成が間に合わなかった場合に表示される図形の一部が大きく欠けてしまうため、表示される画像に目立つちらつきを発生させる可能性がある。
【０２５９】
したがって、図１５に示した手順は、超過分の処理負荷に対応する画像データが生成されなかった場合に目立つちらつきを生じさせるブロック、即ち、画質を劣化させる度合いの大きいブロックについて、優先的に処理負荷を分散させることができる。
【０２６０】
これにより、画質を劣化させる度合いにかかわらない順序で超過分の処理負荷の割当先を特定した場合に比べて、生成された画像データを表示させた際に、画質が高い印象を利用者に与えることができる。
【０２６１】
図１６は、コマンドリストを解析する処理の別例を示す。なお、図１６に示したステップのうち、図１１、図１５に示したステップと同等のものについては、同一の符号を付して示し、その説明は省略する。
【０２６２】
図１６に示した流れ図は、図１５に示した流れ図に示したステップＳ３８３の処理の代わりに、ステップＳ３９１、ステップＳ３９２の処理を含んでいる。
【０２６３】
ステップＳ３９１において、プロセッサ２１は、超過分の処理負荷があることが予想されるブロックの中から、画像において連続した領域に含まれているブロック列を検出する。例えば、図６(Ａ)を用いて説明すると、プロセッサ２１は、ブロック番号３〜ブロック番号６で示される４つのブロックを含むブロック列と、ブロック番号１０，１１の２つのブロックを含むブロック列を検出する。
【０２６４】
ステップＳ３９２において、プロセッサ２１は、検出したブロック列におけるブロックの連続数が大きいほど、また、ブロックのそれぞれについて推定された処理時間が長いほど早い処理順となるように、処理順を決定する。例えば、プロセッサ２１は、ブロックの連続数が大きい順にブロック列を選択し、選択したブロック列に含まれる各ブロックに処理時間が長い順に処理順を設定してもよい。なお、プロセッサ２１は、超過分の処理負荷があることが予想されるブロックのうち、ブロック列のいずれにも含まれていないブロックについて、例えば、最も短いブロック列に含まれるブロックに設定された処理順よりも遅い処理順を設定することが望ましい。
【０２６５】
図１６に示した手順は、超過分の処理負荷があることが予想されるブロックが連続している箇所について、先に、超過分の処理負荷の割当先を特定する処理を実行することができる。
【０２６６】
ここで、超過分の処理負荷があることが予想されるブロックが連続している箇所は、対応する画像データの一部の生成が間に合わなかった場合に、表示画面の広い範囲に図形の欠けが生じてしまうため、表示される画像に目立つちらつきを発生させる可能性がある。
【０２６７】
したがって、図１６に示した手順は、超過分の処理負荷に対応する画像データが生成されなかった場合に目立つちらつきを生じさせるブロック、即ち、画質を劣化させる度合いの大きいブロックについて、優先的に処理負荷を分散させることができる。
【０２６８】
これにより、画質を劣化させる度合いにかかわらない順序で超過分の処理負荷の割当先を特定した場合に比べて、生成された画像データを表示させた際に、画質が高い印象を利用者に与えることができる。
【０２６９】
図１７は、コマンドリストを解析する処理の別例を示す。なお、図１７に示したステップのうち、図１１、図１５に示したステップと同等のものについては、同一の符号を付して示し、その説明は省略する。
【０２７０】
図１７に示した流れ図は、図１５に示した流れ図に示したステップＳ３８３の処理の代わりに、ステップＳ３９３、ステップＳ３９４の処理を含んでいる。
【０２７１】
ステップＳ３９３において、プロセッサ２１は、超過分の処理負荷があることが予想されるブロックのそれぞれについて、画像の中央からの距離を算出する。例えば、プロセッサ２１は、画像の中央に対応するブロックを基準として、基準となるブロックと距離の算出対象のブロックとの間に含まれるブロックの数を、画像の中央までの距離として求めてもよい。
【０２７２】
ステップＳ３９４において、プロセッサ２１は、ステップＳ３９３の処理で得られた距離が小さい順に、即ち、画像の中央に近い順に早い処理順となるように、超過分の処理負荷があることが予想されるブロックのそれぞれに設定する処理順を決定する。
【０２７３】
図１７に示した手順によれば、超過分の処理負荷があることが予想されるブロックのうち、画像の中央に近いブロックについて、先に、超過分の処理負荷の割当先を特定する処理を実行することができる。
【０２７４】
ここで、画像の中央部分は、画像の提示を受ける利用者によって最も注視される可能性が高い部分であるため、ちらつきが発生した場合に、高い確率で利用者に画質が劣化したと認識される可能性がある。
【０２７５】
したがって、図１７に示した手順は、超過分の処理負荷に対応する画像データが生成されなかった場合に利用者に画質が劣化した印象を与える可能性が高いブロックについて、優先的に処理負荷を分散させることができる。
【０２７６】
これにより、画質が劣化した印象を与える度合いにかかわらない順序で超過分の処理負荷の割当先を特定した場合に比べて、生成された画像データを表示させた際に、画質が高い印象を利用者に与えることができる。
【０２７７】
更に、本件開示の画像処理装置１０は、複数枚の画像に対応するコマンドリストについて、画像の生成処理に先行して、以上に説明したコマンドリストの解析処理を行い、解析結果に基づいて、超過分の処理負荷の分散処理を行うことも可能である。
【０２７８】
複数枚の画像に対応するコマンドリストについての解析を先行して行うことにより、例えば、図２(Ａ)に示したブロックＢ７について予想される余剰時間を、次に表示される画像に含まれるブロックについて予想される超過分の分散先として用いることができる。
【０２７９】
以上の詳細な説明により、実施形態の特徴点及び利点は明らかになるであろう。これは、特許請求の範囲が、その精神および権利範囲を逸脱しない範囲で、前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更を容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【０２８０】
以上の説明に関して、更に、以下の各項を開示する。
(付記１)
コンピュータを備える画像処理装置であって、
前記コンピュータが、
図形を含む画像を分割した複数のブロックのそれぞれに対応する描画情報を受け、前記描画情報に基づいて、前記各ブロックの表示装置への表示に用いる画像データを順次に生成し、
前記描画情報から前記画像データが生成される前に、前記描画情報に基づいて、前記各ブロックの画像データの生成にかかる処理時間を推定し、
所定の基準時間よりも長い処理時間が推定されたブロックである第１ブロックよりも前に画像データの生成処理が行われるブロックの中から、前記基準時間よりも短い処理時間が推定された第２ブロックを探索し、
前記第２ブロックの画像データの生成処理の際に、前記第１ブロックの画像データの生成処理の一部を実行する
ことを特徴とする画像処理装置。
(付記２)
付記１に記載の画像処理装置において、
前記第２ブロックの画像データを生成した際に、前記第１ブロックに対応する描画情報の一部から生成した画像データを保持するバッファを有し、
前記コンピュータは、
前記バッファに保持された画像データと、前記第１ブロックに対応する描画情報の他の一部から生成した画像データとから、前記第１ブロックに対応する画像データを生成する
ことを特徴とする画像処理装置。
(付記３)
付記１または付記２に記載の画像処理装置において、
前記コンピュータは、
前記第１ブロックよりも前に画像データが生成されるブロックのそれぞれについて推定された処理時間に基づいて、前記第１ブロックについて推定された処理時間と前記基準時間の差である超過分の処理を前記第２ブロックに割り当て可能か否かを判定し、
前記判定において割り当て可能と判定した場合に限って前記第２ブロックの探索を行い、
前記判定において前記超過分の処理の割り当てが可能でないと判定された第１ブロックについて、前記第１ブロックに含まれる前記所定数のラインのうち、一ラインおきに生成した画像データを補間する処理を実行することで、前記第１ブロックに対応する画像データを生成する
ことを特徴とする画像処理装置。
(付記４)
付記３に記載の画像処理装置において、
前記コンピュータは、更に、
前記判定において、前記超過分の処理の割り当てが可能でないと判定した場合に、前記第１ブロックに対応して推定された処理時間を前記基準時間に変更し、変更された処理時間を用いて以降の探索を実行する
ことを特徴とする画像処理装置。
(付記５)
付記１乃至付記４のいずれか一に記載の画像処理装置において、
前記コンピュータは、
前記推定において処理時間が推定された複数のブロックの中に複数の第１ブロックが含まれている場合に、
前記表示装置による表示処理の順序が早い順に選択した第１ブロックについて、前記第１ブロックに対応する第２ブロックを探索する
ことを特徴とする画像処理装置。
(付記６)
付記１乃至付記４のいずれか一に記載の画像処理装置において、
前記コンピュータは、
前記推定において処理時間が推定された複数のブロックの中に複数の第１ブロックが含まれている場合に、
前記複数の第１ブロックのそれぞれに、前記第１ブロックの前記画像における位置と所定の位置との距離が小さい順に、前記第１ブロックに対応する第２ブロックを探索する
ことを特徴とする画像処理装置。
(付記７)
付記１乃至付記４のいずれか一に記載の画像処理装置において、
前記コンピュータは、
前記推定において処理時間が推定された複数のブロックの中に複数の第１ブロックが含まれている場合に、
前記複数の第１ブロックのそれぞれに、前記第１ブロックについて推定された処理時間と前記基準時間との差の大きい順に、前記第１ブロックに対応する第２ブロックを探索する
ことを特徴とする画像処理装置。
(付記８)
付記１乃至付記４のいずれか一に記載の画像処理装置において、
前記コンピュータは、
前記推定において処理時間が推定された複数のブロックの中に複数の第１ブロックが含まれている場合に、
前記画像において連続した領域に対応付けられた複数の第１ブロックを含むブロック列を検出し、
前記ブロック列のいずれかに含まれる第１ブロックについて、前記ブロック列のいずれにも含まれていない第１ブロックよりも先に第２ブロックを探索する
ことを特徴とする画像処理装置。
(付記９)
付記１乃至付記８のいずれか一に記載の画像処理装置において、
前記基準時間は、前記生成において、前記各ブロックの画像データのそれぞれを前記表示装置に表示させる処理にかかる時間以下の時間に設定される
ことを特徴とする画像処理装置。
(付記１０)
コンピュータを用いた画像処理方法であって、
前記コンピュータによって、図形を含む画像を分割した複数のブロックのそれぞれに対応する描画情報を受け、前記描画情報に基づいて、前記各ブロックの表示装置への表示に用いる画像データを順次に生成し、
前記コンピュータによって、前記描画情報から前記画像データが生成される前に、前記描画情報に基づいて、前記各ブロックの画像データの生成にかかる処理時間を推定し、
前記コンピュータによって、所定の基準時間よりも長い処理時間が推定されたブロックである第１ブロックよりも前に画像データの生成処理が行われるブロックの中から、前記基準時間よりも短い処理時間が推定された第２ブロックを探索し、
前記コンピュータによって、前記第２ブロックの画像データの生成処理の際に、前記第１ブロックの画像データの生成処理の一部を実行する
ことを特徴とする画像処理方法。
(付記１１)
図形を含む画像を分割した複数のブロックのそれぞれに対応する描画情報を受け、前記描画情報に基づいて、前記各ブロックの表示装置への表示に用いる画像データを順次に生成し、
前記描画情報から前記画像データが生成される前に、前記描画情報に基づいて、前記各ブロックの画像データの生成にかかる処理時間を推定し、
所定の基準時間よりも長い処理時間が推定されたブロックである第１ブロックよりも前に画像データの生成処理が行われるブロックの中から、前記基準時間よりも短い処理時間が推定された第２ブロックを探索し、
前記第２ブロックの画像データの生成処理の際に、前記第１ブロックの画像データの生成処理の一部を実行する、
処理をコンピュータに実行させることを特徴とする画像処理プログラム。
【符号の説明】
【０２８１】
１０…画像処理装置；１１…生成部；１２…推定部；１３…探索部；１４…制御部；１０１…表示装置；１０２，１０２ａ，１０２ｂ…コマンドリストバッファ；１１１ａ，１１１ｂ…ラインバッファ；１１２＿１，…，１１２＿ｔ…バッファ；１１３…描画情報処理部；１１４…展開部；１１５…バッファ管理テーブル；１３１…ブロック情報保持部；１３２…判定部；１３３…特定部；２０…インタフェースユニット；２１…プロセッサ；２２…メモリ；２３…描画エンジン；２４…転送回路；ＣＵ…車両制御装置；ＬＣＤ…液晶ディスプレイ
【図１】
2015014944.tif 000004
【図２】
2015014944.tif 000005
【図３】
2015014944.tif 000006
【図４】
2015014944.tif 000007
【図５】
2015014944.tif 000008
【図６】
2015014944.tif 000009
【図７】
2015014944.tif 000010
【図９】
2015014944.tif 000011
【図１０】
2015014944.tif 000012
【図１１】
2015014944.tif 000013
【図１２】
2015014944.tif 000014
【図１３】
2015014944.tif 000015
【図１４】
2015014944.tif 000016
【図１５】
2015014944.tif 000017
【図１６】
2015014944.tif 000018
【図１７】
2015014944.tif 000019
【図８】
2015014944.tif 000020