(57)【要約】【課題】ＧＵＩを更新する際に更新判定の処理時間と不要な描画処理を抑制し、高速な描画処理を行う画像描画装置を提供する。【解決手段】画像データを生成するための描画パラメータ、ディスプレイリストを入力するホストインタフェース手段２と、ディスプレイリストを解析し、複数の描画命令を抽出するディスプレイリスト処理手段３と、描画パラメータ及びディスプレイリスト処理手段により抽出された各描画命令に基づいて画像データを生成する描画処理手段６と、各描画命令の描画処理時間を測定する描画処理時間測定手段４と、測定された描画処理時間を記憶する描画処理時間記憶手段５と、画像データ生成手段により生成された画像データを表示画像として出力する表示制御手段７とを備え、同一の表示画像に対応する描画命令が複数ある場合に、描画処理時間の短い描画命令を用いて画像データを生成する。【選択図】図１
2014115926.tif 000002
【特許請求の範囲】
【請求項１】
画像データを生成するための描画パラメータ及びディスプレイリストを入力する入力手段と、
前記ディスプレイリストを解析し、複数の描画命令を抽出するディスプレイリスト処理手段と、
前記描画パラメータ及び前記ディスプレイリスト処理手段により抽出された各描画命令に基づいて画像データを生成する画像データ生成手段と、
前記各描画命令の描画処理時間を測定する測定手段と、
前記測定手段により測定された描画処理時間を記憶する記憶手段と、
前記画像データ生成手段により生成された画像データを表示画像として出力する出力手段とを備え、
前記画像データ生成手段は、同一の表示画像に対応する描画命令が複数ある場合に、描画処理時間の短い描画命令に基づいて画像データを生成することを特徴とする画像描画装置。
【請求項２】
描画命令として再描画命令と矩形領域データ転送命令とを用いることを特徴とする請求項１記載の画像描画装置。
【請求項３】
前記画像データ生成手段は、前フレームと現フレームの表示画像が同一である場合に、処理時間の短い描画命令に基づいて画像データを生成することを特徴とする請求項１記載の画像描画装置。
【請求項４】
前記画像データ生成手段は、前フレームと現フレームの表示画像が同一である場合に、再描画命令と前フレームの画像データを用いる矩形領域データ転送命令のうち処理時間の短い描画命令に基づいて現フレームの画像データを生成することを特徴とする請求項１記載の画像描画装置。
【請求項５】
画像データを生成するための描画パラメータ及びディスプレイリストを入力する入力処理と、
前記ディスプレイリストを解析し、複数の描画命令を抽出するディスプレイリスト処理と、
前記描画パラメータ及び前記ディスプレイリスト処理により抽出された各描画命令に基づいて画像データを生成する画像データ生成処理と、
前記各描画命令の描画処理時間を測定する測定処理と、
測定された描画処理時間を記憶する記憶処理と、
前記画像データ生成処理により生成された画像データを表示画像として出力する出力処理と、
をコンピュータに実行させることを特徴とする画像描画プログラムであって、
前記画像データ生成処理は、同一の表示画像に対応する描画命令が複数ある場合に、描画処理時間の短い描画命令に基づいて画像データを生成することを特徴とする画像描画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィックス描画機能を備えた画像描画装置に関するものである。
【背景技術】
【０００２】
近年、家電、カーナビ、携帯端末、車載メータ、監視制御画面等のＧＵＩ（Ｇｒａｐｈｉｃａｌ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ）やデジタル掲示板、電子ポスター、並びに運行表示及び発車票等のデジタルサイネージ（電子看板）等、ユーザに対する情報表示の手段として、グラフィックス機能を搭載した画像描画装置が多用されている。
これらの画像描画装置では、従来のＣＰＵによるグラフィックス描画ではなく、ＣＰＵとは別に、例えばグラフィックスエンジンなどのグラフィックス描画専用のハードウェアによるグラフィックス描画が行われている。グラフィックスエンジンがＣＰＵの代わりに点／線／多角形の描画、塗りつぶし、ＢｉｔＢＬＴ（Ｂｉｔ Ｂｌｏｃｋ Ｔｒａｎｓｆｅｒ）、フォントおよびアニメーションなどのグラフィックス描画を行うことで描画性能の向上、およびＣＰＵの処理負荷の削減を行っている。
【０００３】
グラフィックス描画では、ディスプレイリスト方式と呼ばれる手法が用いられる。ディスプレイリスト方式では、描画したいグラフィックス及びグラフィックス等を構成する部品をコマンド形式のリスト（ディスプレイリスト）にまとめ、グラフィックスエンジン内のメモリや接続されたメモリ上に格納し、グラフィックスエンジンがそのディスプレイリスト内のコマンドを（ＣＰＵの介在なしに）直接読み出してコマンド（描画処理）を実行する。これによって、ＣＰＵとグラフィックスエンジンとの間のグラフィックス描画制御及びデータ転送を低減している。
【０００４】
グラフィックスエンジンによるＧＵＩ描画処理では、ＧＵＩを構成するプリミティブ（ボタン、スクロールバー、メニュー、グラフ、アイコン、テロップ、ブリンクなど）を１フレーム期間（例えば、１秒間に６０フレームの表示更新なら、１／６０秒）内で描画することで、滑らかなＧＵＩを実現している。ここで、複数のプリミティブを使用した動きのあるアニメーションによるＧＵＩを構成する場合、描画するプリミティブの更新タイミング（更新レート）が異なるため、更新レートの低いプリミティブも更新レートの高いプリミティブと同様に再描画が必要になり、無駄な描画処理が発生してしまう。この問題を解決するために、前フレームからの動きを判定し、変化のあったプリミティブのみを更新（再描画）することで、描画処理の低減を行っている。（例えば  特許文献１）
【０００５】
【特許文献１】特開平１１−３２８４４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、これらの画像描画装置では、画面を構成する最小単位の図形の頂点を用いて前フレームからの変化（移動）を元に更新（再描画）するか否かの判定を行うため、描画する図形の増加に伴い、判定処理に多くの時間が必要となり、描画処理に割り当てる時間が減少してしまう。また、更新レートに応じて描画するフレームメモリを分けているため、複数のフレームメモリと各フレームメモリからの描画データを合成するための別回路が後段に必要となり、回路規模が増大してしまうという課題があった。
【０００７】
この発明は、上記のような課題を解決するためになされたもので、ＧＵＩを更新する際に更新判定の処理時間と不要な描画処理を抑制し、高速な描画処理を行う画像描画装置および画像描画プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係る画像描画装置は、画像データを生成するための描画パラメータ及びディスプレイリストを入力する入力手段と、前記ディスプレイリストを解析し、複数の描画命令を抽出するディスプレイリスト処理手段と、前記描画パラメータ及び前記ディスプレイリスト処理手段により抽出された各描画命令に基づいて画像データを生成する画像データ生成手段と、前記各描画命令の描画処理時間を測定する測定手段と、この測定手段により測定された描画処理時間を記憶する記憶手段と、画像データ生成手段により生成された画像データを表示画像として出力する出力手段とを備え、画像データ生成手段は、同一の表示画像に対応する描画命令が複数ある場合に、描画処理時間の短い描画命令に基づいて画像データを生成することを特徴とするものである。
【０００９】
また、この発明に係る画像描画プログラムは、画像データを生成するための描画パラメータ及びディスプレイリストを入力する入力処理と、前記ディスプレイリストを解析し、複数の描画命令を抽出するディスプレイリスト処理と、前記描画パラメータ及び前記ディスプレイリスト処理により抽出された各描画命令に基づいて画像データを生成する画像データ生成処理と、前記各描画命令の描画処理時間を測定する測定処理と、測定された描画処理時間を記憶する記憶処理と、前記画像データ生成処理により生成された画像データを表示画像として出力する出力処理とをコンピュータに実行させることを特徴とするプログラムであって、前記画像データ生成処理は、同一の表示画像に対応する描画命令が複数ある場合に、処理時間の短い描画命令に基づいて画像データを生成することを特徴とするものである。
【発明の効果】
【００１０】
この発明は、更新レートの異なる複数のプリミティブを描画処理する際に、各プリミティブの描画処理時間に基づいて、過去のフレームのデータを使用するか、再描画をするかを判定し、画像データの生成を行うので、更新判定の処理時間と無駄な再描画処理に割り当てる時間を抑制し、必要な描画処理に割り当てる時間を増やすことで、描画性能を向上することができる。
【図面の簡単な説明】
【００１１】
【図１】この発明の実施の形態１における画像描画装置１の構成図である。
【図２】この発明の実施の形態１における画像描画装置１のメモリマップの一例である。
【図３】この発明の実施の形態１における表示画像であるＧＵＩ画面の描画処理の一例である。
【図４】この発明の実施の形態１における画像描画装置１のＧＵＩ画面を描画するためのディスプレイリストテーブルの一例である。
【図５】この発明の実施の形態１における画像描画装置１の処理の流れを示すフローチャートである。
【図６】この発明の実施の形態１における画像描画装置１の描画処理時間測定と保存の処理の流れを示すフローチャートである。
【図７】この発明の実施の形態１における画像描画装置１の描画処理の時間測定を示すタイミングチャートである。
【図８】この発明の実施の形態１における画像描画装置１の各ディスプレイリストの描画処理時間測定結果の保存内容の一例である。
【図９】この発明の実施の形態１における画像描画装置１のＢｉｔＢＬＴの描画処理時間測定結果の保存内容の一例である。
【図１０】この発明の実施の形態１における画像描画装置１のディスプレイリスト処理手段３の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１２】
実施の形態１．
図１は、この発明の実施の形態１における画像描画装置１の機能構成図である。
この図１に示すように、この発明に係る画像描画装置１は、グラフィックス描画及び表示の機能を持つ画像描画装置である。画像描画装置１は、上位装置である外部のホスト（例えば、ＣＰＵ）とＣＰＵバス９を介して接続され、外部の表示手段（図示せず）に対して表示画像を出力する。ここでは、ホストの例として、ＣＰＵを用いる場合として説明する。
【００１３】
画像描画装置１は、具体的には、ホストインタフェース手段２（以下、ホストＩ／Ｆ手段２）、ディスプレイリスト処理手段３、描画処理時間測定手段４、描画処理時間記憶手段５、描画処理手段６、表示制御手段７、およびデータ記憶手段８を備える。ホストＩ／Ｆ手段２が入力手段、描画処理時間測定手段４が測定手段、描画処理時間記憶手段５が記憶手段、描画処理手段６が画像データ生成手段、表示制御手段７が出力手段に相当する。なお、図１に示す画像描画装置１は、ハードウェアによって構成されていても良いし、コンピュータに所定のプログラムを実行させることによっても実現できる。
【００１４】
以下、実施の形態１における画像描画装置１の構成要素の各機能について説明する。
ホストＩ／Ｆ手段２は、ＣＰＵとの間のバスインタフェースであり、画像描画装置１の外部から描画パラメータ、描画用データ（参照用の画像データであり、フォントデータ、ベクターデータ、ビットマップデータ等）、ディスプレイリスト等を入出力する。
【００１５】
描画パラメータとは、例えば、メモリ空間の描画エリアのベースアドレス、形状情報（点、線、多角形、円等のパーツ種）、描画位置、描画した画像サイズ（幅、高さ）、カラーフォーマット（ＡＲＧＢ８８８８、ＲＧＢ８８８、ＲＧＢ５６５等）、シザー領域、属性情報（色、塗りつぶし、グラデーション有無）、アルファ値等が含まれるパラメータである。
【００１６】
図２は、この発明に係る画像描画装置１内のメモリマップ図である。
この図２に示すように、ＣＰＵのメモリマップ上には、画像描画装置１内のレジスタ空間およびメモリ空間がマッピングされる。ＣＰＵは、ホストＩ／Ｆ手段２を介して、画像描画装置１内部のレジスタ空間およびメモリ空間にアクセスし、画像描画装置１を制御する。
【００１７】
ホストＩ／Ｆ手段２は、ＣＰＵバス９を介してＣＰＵから入力されたアドレスをデコードし、内部レジスタバス１０を経由して、各手段３〜８内のレジスタに対する書込み又は読み出しを行う。またディスプレイリストをメモリバス１１を経由してデータ記憶手段８へ記憶する。また、グラフィックス描画に必要な、ユーザが作成した画像データなどグラフィック描画を行う際に参照する描画用データ（フォントデータ、ベクターデータ及びビットマップデータ等）をデータ記憶手段８に記憶する。
【００１８】
ディスプレイリスト処理手段３は、ＣＰＵからのディスプレイリストの実行開始命令により、データ記憶手段８に格納されたディスプレイリストを読み出し、ディスプレイリストに含まれる描画コマンド（以下、描画命令という）を描画コマンドバス１３を介して描画処理手段６へ出力する。また描画処理手段６の描画処理完了信号を描画コマンドバス１３を介して受信する。ディスプレイリスト処理手段３は、描画命令発行後、描画処理手段６より描画処理完了信号を受信したら、次の描画命令を発行する。ディスプレイリストの実行中、ディスプレイリスト処理手段３は、測定バス１４を介してディスプレイリスト実行中信号を描画処理時間測定手段４に出力する。さらに、ディスプレイリスト処理手段３は、描画処理時間測定手段４で測定された描画処理時間を受けて、測定結果バス１５を介して描画処理時間記憶手段５へ描画処理時間を出力する。
【００１９】
ディスプレイリストは描画するコマンド群のリストであり、ディスプレイリスト処理手段３では複数の描画命令が実行される。そこで、描画処理時間測定手段４は、ディスプレイリスト処理手段３で実行される描画命令毎の処理時間を測定する。処理時間の測定は、ディスプレイリスト処理手段３から入力されたディスプレイリスト実行中信号を用いて行われる。また、描画処理時間測定手段４は、処理時間の測定結果をディスプレイリスト処理手段３に出力する。
【００２０】
描画処理時間記憶手段５は、ディスプレイリスト処理手段３から入力される各描画命令の処理時間を描画命令単位で記憶する。
【００２１】
描画処理手段６は、内部レジスタバス１０経由で、ＣＰＵから描画パラメータが設定され、この描画パラメータに基づいて画像データを生成する。また、描画コマンドバス１３を介してディスプレイリスト処理手段３から描画パラメータが設定され、この描画パラメータに基づいて画像データを生成する。描画パラメータは、前述したように例えば形状情報、描画位置、画像サイズ、描画方法、色情報、画素フォーマット等を含むパラメータである。また、形状情報とは、例えば点、線、多角形、円等のことである。そして、描画処理手段６は、描画処理して生成した画像データを描画バス１６を介してデータ記憶手段８に書き込む。画像データの生成と書き込みが完了したら、ＣＰＵからの描画命令であればＣＰＵへ、ディスプレイリスト処理手段３からの描画命令であればディスプレイリスト処理手段３へ描画処理完了信号を出力する。
【００２２】
具体的には、描画処理手段６は、ＣＰＵからの描画命令である場合、内部レジスタバス１０経由でＣＰＵによって描画パラメータが設定される。そして、描画処理手段６は、ホストＩ／Ｆ手段２から入力される描画パラメータに基づいて、表示画像を構成する点、線、円、多角形をはじめ、ＢｉｔＢＬＴ、フィル（塗りつぶし）、テクスチャマップ、ベクターグラフィックス、フォント、ビットマップ及びアニメーション等の一般的なグラフィックス描画処理（以下、描画処理という）を行い、描画処理した結果の画像データを生成し、データ記憶手段８に書き込む。
【００２３】
表示制御手段７は、内部レジスタバス１０経由でＣＰＵによって表示パラメータが設定される。そして、表示制御手段７は、設定された表示用パラメータに基づいて、表示制御手段７が生成する表示タイミングに合わせて、データ記憶手段８から画像データを表示用メモリバス１７を介して読み出し、例えばディスプレイなど外部の表示手段（図示せず）へ表示画像として出力する。
【００２４】
表示制御手段７は、内部レジスタバス１０経由でＣＰＵによって設定された表示パラメータから表示タイミングを生成する。表示タイミングを生成するための表示パラメータには、表示データを格納している表示データ記憶手段８内の先頭アドレス、スクリーンサイズ（幅、高さ）、階調数、水平ブランク期間、垂直ブランク期間等の情報が含まれる。
【００２５】
データ記憶手段８は、描画処理手段６が行うグラフィックス描画処理の実行後の画像データを記憶する。また、データ記憶手段８は、ホストＩ／Ｆ手段２から入力されるディスプレイリストおよびグラフィックス描画処理の実行時に描画処理手段６から参照される前記描画用データを記憶する。
【００２６】
次に、この実施の形態１における画像描画装置１の処理の流れを説明する。
図３は、実施の形態１における表示画像であるＧＵＩ画面の描画処理の一例を示したものである。
図３に示すように、例えば、ディスプレイの解像度を１０２４（幅）×７６８（高さ）とし、画面を縦に３分割した、３つの更新レート（上段：６０フレーム／秒、中段：３０フレーム／秒、下段：１５フレーム／秒）を持つＧＵＩ画面の描画処理を行うとする。
【００２７】
図４は、この実施の形態１における画像描画装置１のＧＵＩ画面を描画するためのディスプレイリストテーブルの一例を示したものである。
図３に示すＧＵＩを描画するために、図４に示すディスプレイリストテーブルに従い、各フレームのディスプレイリストに含まれる描画命令を実行する。例えば、フレームＮｏ．１では、Ｆ１＿ＤＬ＿１、Ｆ１＿ＤＬ＿２、Ｆ１＿ＤＬ＿Ｎを実行する。続いて、フレームＮｏ．２では、Ｆ２＿ＤＬ＿１、Ｆ１＿ＤＬ＿２、Ｆ１＿ＤＬ＿Ｎ、フレームＮｏ．３では、Ｆ３＿ＤＬ＿１、Ｆ３＿ＤＬ＿２、Ｆ１＿ＤＬ＿Ｎを実行する。これをフレームＭまでを行う。なお、図３は、１〜４フレームまでのディスプレイリストを実行した場合を示す。また、上段画面が＊＊＿ＤＬ＿１、中段画面が＊＊＿ＤＬ＿２、下段画面が＊＊＿ＤＬ＿Ｎに対応する。
【００２８】
ディスプレイリストとしては、図４に示すもの以外に、ＢｉｔＢＬＴによる描画処理を実行するための描画命令であるＢｉｔＢＬＴ命令（データ転送命令）を含むものもある。以下、ＢｉｔＢＬＴ命令のリストをＢｉｔＢＬＴリストという。
【００２９】
ＣＰＵは、レジスタ空間にマッピングされた各手段のレジスタにアクセスして、各手段の動作を実行する。ＣＰＵからのアクセスは、ホストＩ／Ｆ手段２を介して行われる。ホストＩ／Ｆ手段２は、ＣＰＵより入力されたアドレスをデコードし、そのアドレスに該当する（マッピングされた）手段内のレジスタ空間に対する書込み又は読み出しを行う。
【００３０】
図５は、この実施の形態１における画像描画装置１の処理の流れを示すフローチャートである。図５に示すように、ＣＰＵは、ホストＩ／Ｆ手段２を介して、まず画像描画装置１の各手段を初期化する（ステップＳＴ１）。続いて、ＣＰＵは、グラフィックス描画の実行に必要な描画用データ（フォントデータ、ベクターデータ及びビットマップデータ等）をデータ記憶手段８に格納する（ステップＳＴ２）。同様に、ディスプレイリストおよびＢｉｔＢＬＴリストをデータ記憶手段８に格納する（ステップＳＴ３）。次に、描画処理時間の測定・保存を行う（ステップＳＴ４）。この描画処理時間の測定・保存は、画像描画装置１の最初の描画処理時に行う。画像描画装置１のメモリによっても描画内容によっても描画処理時間は異なるため、１つのシステムについて１回測定しておく。
【００３１】
図６は、この実施の形態１における画像描画装置１の描画処理時間測定と保存の処理の流れを示すフローチャートである。なお、この実施の形態１においては、ディスプレイリストによる描画処理時間の測定・保存（ステップＳＴ３２〜ステップＳＴ３５）と、ＢｉｔＢＬＴリストによる描画処理時間の測定・保存（ステップＳＴ３６〜ステップＳＴ３８）とを行う。まず、図６に示すように、ディスプレイリスト処理手段３は、データ記憶手段８からディスプレイリストおよびＢｉｔＢＬＴリストを読み込む（ステップＳＴ３１）。続いてディスプレイリストに含まれる描画命令を描画処理手段６に出力する。
【００３２】
描画処理手段６は、ディスプレイリスト処理手段３からの描画命令を受けて、描画処理を実行し画像データを生成する。描画処理手段６は生成した画像データをデータ記憶手段８に記憶する。描画更新中の画像データを表示画像として出力しないために、データ記憶手段８はダブルバッファ構成をとる。まず、データ記憶手段８の第１の描画領域Ａ（領域Ａ）に対して書込みを行う。１フレーム分の画像データの書き込みが完了したら、ディスプレイの垂直同期信号に合わせて、描画領域を切り替えて、次のフレームの画像データについてはデータ記憶手段８の第２の描画領域Ｂ（領域Ｂ）に対して書込みを行う。ディスプレイリスト処理手段３は、ディスプレイリスト処理実行中に、ディスプレイリスト実行中信号を描画処理時間測定手段４に出力する。描画処理時間測定手段４では描画処理時間の測定を行う。またその結果をディスプレイリスト処理手段３に返し、ディスプレイリスト処理手段３は、結果を描画処理時間記憶手段５に記憶する（ステップＳＴ３２、ステップＳＴ３３）。
【００３３】
図７は、この実施の形態１における画像描画装置１のディスプレイリストの描画処理時間測定を示すタイミングチャートの一例である。
図７に示すように、ディスプレイリスト処理手段３は、フレーム１のディスプレイリスト１（Ｆ１＿ＤＬ＿１）を実行し、その実行中を示すディスプレイリスト実行中信号を描画処理時間測定手段４に出力する。ディスプレイリストの描画処理時間は、ディスプレイリスト処理手段３がデータ記憶手段８からディスプレイリストを読み出す時間と、ディスプレイリスト処理手段３がディスプレイリストに従って描画処理手段６へ描画命令を出力する時間と、その描画命令に従い、描画処理手段６がデータ記憶手段８から描画用データを読み出して描画処理を実行する描画処理時間と、その描画処理の結果得られた画像データをデータ記憶手段８に記憶するための時間の合計である。
【００３４】
描画処理時間測定手段４は、入力されたディスプレイリスト実行中信号の開始から終了までの処理時間を測定し、ディスプレイリスト処理手段３へ結果を返す。ここで処理時間の測定は、ディスプレイリスト実行中信号を内部の動作クロックでサンプルしたサイクル数とする。
【００３５】
図６に戻り、ディスプレイリストによる描画処理時、その描画始点（Ｘ方向、Ｙ方向）および、描画サイズ（幅、高さ）を描画処理時間記憶手段５に保存する（ステップＳＴ３４）。ディスプレイリスト中のフレーム１のディスプレイリスト１（Ｆ１＿ＤＬ＿１）からフレームＭのディスプレイリストＮ(ＦＭ＿ＤＬ＿Ｎ)までの全ての描画命令について描画処理時間の測定と保存を行う。なお、その際、一度測定を実施したディスプレイリストについては、測定および保存は行わない。ディスプレイリストに含まれる全ての描画命令に対する描画処理が完了したかを判定し（ステップＳＴ３５）、完了したら次のステップに進む。
【００３６】
図８は、この実施の形態１における画像描画装置１のディスプレイリストの描画処理時間測定結果の保存内容の一例を示す。図８に示すように、描画処理時間記憶手段５には、ディスプレイリスト処理手段３から入力されたディスプレイリスト毎（描画命令毎）に描画処理時間（サイクル数）と描画始点（ｘ、ｙ）および描画サイズ（幅、高さ）が保存される。
【００３７】
次に、図６に戻り、ＢｉｔＢＬＴ命令の処理時間の測定・保存について説明する。ディスプレイリスト処理手段３は、ＢｉｔＢＬＴリストにより、描画処理手段６へ描画命令としてＢｉｔＢＬＴ命令を発行し、その実行中を示すＢｉｔＢＬＴ実行中信号を描画処理時間測定手段４に出力する。なお、ＢｉｔＢＬＴは、開始点と転送先、転送サイズ（幅、高さ）を指定し、矩形領域のデータ転送（データコピー）を行うものである。
【００３８】
図９は、この実施の形態１における画像描画装置１の実行するＢｉｔＢＬＴの種類とその処理時間の測定結果および保存内容の一例を示す。図９に示すように、処理測定を行うサイズは、基本的な矩形サイズ（１６ピクセル×１６ピクセル、３２ピクセル×３２ピクセル、１２８ピクセル×１２８ピクセル等）に加え、ＳＴ３４で保存した各ディスプレイリストの描画サイズ（例えば、図８に示す１０２４ピクセル×２５６ピクセル）について行う。ＳＴ３４で保存した各ディスプレイリストの描画サイズについて処理時間の測定・保存を行うことにより、描画内容に応じてより適切な矩形領域単位でのデータ転送を行うことができる。
【００３９】
描画処理時間測定手段４は、ＢｉｔＢＬＴ実行中信号を用いてＢｉｔＢＬＴ命令の処理時間（転送処理時間）を測定し、結果をディスプレイリスト処理手段３に返す。ディスプレイリスト処理手段３は、返送された結果を描画処理時間記憶手段５に記憶する（ステップＳＴ３６，３７）。ここで転送処理時間としては、ＢｉｔＢＬＴ実行中信号のサイクル数を測定する。具体的には、ディスプレイリスト処理手段３がデータ記憶手段８からＢｉｔＢＬＴリストを読み出す時間と、ディスプレイリスト処理手段３がＢｉｔＢＬＴリストに従って描画処理手段６へＢｉｔＢＬＴ命令を出力する時間と、その命令に従い、描画処理手段６がデータ記憶手段８の前フレームの記憶領域から画像データを読み出し、現フレームの記憶領域へ書き戻すための転送時間の合計である。
【００４０】
ＢｉｔＢＬＴ １（ＢＬ＿１）からＢｉｔＢＬＴ Ｎ（ＢＬ＿Ｎ）までの全ＢｉｔＢＬＴの処理時間測定が完了したかを判定し（ステップＳＴ３８）、完了したら、図５の処理フローに戻る。描画処理時間測定と保存の完了（ステップＳＴ４）後、ＧＵＩ画面を生成するためにディスプレイリストの描画処理の実行を開始する（ステップＳＴ５）。
【００４１】
図１０は、この実施の形態１における画像描画装置１のディスプレイリスト処理手段３の処理の流れを示すフローチャートである。図１０に示すように、ディスプレイリスト処理手段３は、データ記憶手段８からディスプレイリストを読み出す（ステップＳＴ５１）。ディスプレイリスト処理手段３は、図４のディスプレイリストテーブルに従い、各フレームのディスプレイリストを実行する。まず、フレームＮｏ．１では、ＧＵＩを構成する３つのディスプレイリスト（Ｆ１＿ＤＬ＿１、Ｆ１＿ＤＬ＿２、Ｆ１＿ＤＬ＿Ｎ）は全て実行される。
【００４２】
続いて、フレームＮｏ．２の描画処理を行う。ディスプレイリスト処理手段３は、前フレームで実行したディスプレイリスト番号と現ディスプレイリスト番号を比較する(ステップＳＴ５２)。上段画面は、６０フレーム／秒で更新されるため、現ディスプレイリスト番号（Ｆ２＿ＤＬ＿１）は前フレームのディスプレイリスト番号（Ｆ１＿ＤＬ＿１）と異なる。したがって、再描画命令であるＦ２＿ＤＬ＿１が実行される（ステップＳＴ５８）。
【００４３】
一方、中段画面は３０フレーム／秒、下段画面は１５フレーム／秒で更新されるため、表示画像は同一である。すなわち、現ディスプレイリスト番号は前フレームのディスプレイリスト番号と同じＦ１＿ＤＬ＿２、Ｆ１＿ＤＬ＿Ｎである。そこで、ディスプレイリスト処理手段３は、描画処理時間記憶手段５より、該当する前フレームのディスプレイリストの描画始点／描画サイズ／描画処理時間（例えば、中段画面については、図８のディスプレイリストＮｏ．Ｆ１＿ＤＬ＿２の描画始点（０，２５６）、描画サイズ（１０２４、２５６）、描画処理時間（Ｃｙｃｌｅ＿Ｆ１＿ＤＬ＿２））を読み出す（ステップＳＴ５３、ＳＴ５４）。ここで、読み出された描画処理時間は、図４に示すディスプレイリストに従って実行される再描画命令の処理時間に相当する。
【００４４】
続いて、ディスプレイリスト処理手段３は、読み出した描画サイズ（１０２４、２５６）に基づき、その画像サイズに対応するＢｉｔＢＬＴ命令の処理時間（図９のＢｉｔＢＬＴリストＮｏ．ＢＬ＿６の、Ｃｙｃｌｅ＿ＢＬ６）をデータ記憶手段８より読み出す（ステップＳＴ５５）。ステップＳＴ５４で読み出した再描画の処理時間（Ｃｙｃｌｅ＿Ｆ１＿ＤＬ＿２）とステップＳＴ５５で読み出したＢｉｔＢＬＴ処理時間（Ｃｙｃｌｅ＿ＢＬ６）とを比較し（ステップＳＴ５６）、再描画の処理時間がＢｉｔＢＬＴ処理時間よりも短い場合には、該当するディスプレイリスト（Ｆ１＿ＤＬ＿２）により、描画処理手段６へ再描画命令を発行し、再描画処理を実行する(ステップＳＴ５８)。例えば、単純な塗りつぶし等の場合、前フレームのデータを現フレームにコピーするＢｉｔＢＬＴ処理よりも、再描画処理を実行した方が処理時間は早くなる。
【００４５】
一方、再描画処理時間がＢｉｔＢＬＴ処理時間よりも長い場合には、再描画命令（Ｆ１＿ＤＬ＿２）ではなく、ＢｉｔＢＬＴ命令(ディスプレイリスト：ＢＬ＿６)を選択し、描画処理手段６へＢｉｔＢＬＴ命令を発行し、該当エリアの前フレームのデータを現フレームにコピーする（ステップＳＴ５７）。図３の例では、中段画面は、再描画命令の処理時間がＢｉｔＢＬＴ命令の処理時間よりも短いため、フレームＮｏ．２、フレームＮｏ．４の表示の際、再描画処理を行う。一方、下段画面は、描画命令の処理時間がＢｉｔＢＬＴ命令の処理時間よりも長いため、ＢｉｔＢＬＴ命令による描画処理を行う。すなわち、フレームＮｏ．２の表示の際はフレームＮｏ．１のデータを現フレームであるフレームＮｏ．２にコピーし、フレームＮｏ．３の表示の際はフレームＮｏ．２のデータを現フレームであるフレームＮｏ．３にコピーする。
【００４６】
ここで図５の処理フローに戻る。同様に全フレームの全ディスプレイリストによる描画実行が完了するまで処理を繰り返す（ステップＳＴ６）。全ディスプレイリストの実行が完了したら、新しいディスプレイリストが追加される場合（ステップＳＴ７）には、そのディスプレイリストの初回実行時に、処理時間測定と保存を行う（ステップＳＴ８）。全処理が完了したかを判定し（ステップＳＴ９）、完了したら全描画処理を終了する。
【００４７】
表示制御手段７は、表示制御手段７内で生成した表示タイミングに合わせて、描画処理手段６がデータ記憶手段８へ出力した画像データを読み出し、表示画像としてディスプレイなど外部の表示手段（図示せず）に出力する。
【００４８】
また、表示制御手段７は、描画処理手段６が画像データをデータ記憶手段８の第１の描画領域Ａ（領域Ａ）に対して書込みを行っている間は、データ記憶手段８の第２の描画領域Ｂ（領域Ｂ）に書込まれている画像データを読み出して表示画像としてディスプレイに出力する。また、表示制御手段７は、描画処理手段６が画像データをデータ記憶手段８の第２の描画領域Ｂに対して書込みを行っている間は、データ記憶手段８の第１の描画領域Ａに書込まれている画像データを読み出して表示画像としてディスプレイに出力する。
第１の画像領域Ａ、第２の画像領域Ｂの切り替えはフレーム単位での描画処理の完了通知とフレームの切り替わりを示す垂直同期信号に基づいて行われる。
【００４９】
表示制御手段７は、ＣＰＵからホストＩ／Ｆ手段２及び内部レジスタバス１０を経由して設定された表示パラメータを元に表示タイミングを生成する。具体的には、表示パラメータは、例えばＸＧＡ（１０２４×７６８＠６０Ｈｚ）表示の場合、ドットクロックを６５ＭＨｚとすると、水平トータル画素数：１３４４、垂直トータルライン数：８０６、有効水平画素数１０２４、水平ブランク画素数３２０、垂直有効ライン数：７６８、及び垂直ブランクライン数：３８などであり、これらの値から、表示タイミングを生成する。
【００５０】
上記説明では、描画処理時間記憶手段５、データ記憶手段８について、分離した構成で説明しているが、これらの記憶手段を１つにまとめて共通化した構成としても良い。また、内部レジスタで構成してもよい。
【００５１】
上記説明では、描画処理時間測定手段４は、入力されたディスプレイリスト実行中信号の開始から終了までの処理時間を測定する際、処理時間の測定は、ディスプレイリスト実行中信号を内部の動作クロックでサンプルしたサイクル数と説明しているが、内部の動作クロックではなく、動作クロックを基準に生成した信号を用いてサンプルしてもよい。
【００５２】
上記説明では、表示制御手段７への表示パラメータをＣＰＵから設定する構成で説明しているが、ＣＰＵからではなく、ディスプレイリストを用いて設定しても良い。
【００５３】
上記説明では、描画処理手段６が画処理結果をデータ記憶手段８にデータを記憶する際、データ記憶手段８内をダブルバッファ構成としたが、シングルバッファ構成やトリプルバッファ以上の構成にしても良い。
【００５４】
上記説明では、表示制御手段７の表示する画像サイズをＸＧＡとして説明しているが、画像サイズは、表示するディスプレイに応じて任意に変更しても良い。更に、描画する画像サイズと表示する画像サイズとは、異なっても良い。
【００５５】
上記説明では、描画命令の１つとして矩形領域のデータ転送を行うＢｉｔＢＬＴ命令を用いる場合を説明したが、他の描画命令を用いても良い。また、上記説明では、現フレームの表示画像が前フレームの表示画像と同じかどうかを比較したが、直前のフレームと比較する場合に限らず、ディスプレイリスト番号が同一である過去のフレームがある場合に図１０のステップＳＴ５３〜ステップＳＴ５８の描画処理を行い、過去のフレームの画像データを現フレームにコピーするＢｉｔＢＬＴ処理を行うようにしても良い。
【００５６】
以上説明した実施の形態１における画像描画装置１によれば、例えば、家電やカーナビ、携帯端末、車載メータ、監視画面等のＧＵＩやデジタル掲示板、電子ポスター、並びに運行表示及び発車票等のデジタルサイネージ等において、更新レートの異なる複数のプリミティブで構成されたＧＵＩを描画処理する際に、描画処理時間に基づいて、前フレームのデータを使用するか、再描画をするかを判定し、画像データの生成を行うので、無駄な再描画処理に割り当てる時間を抑制し、必要な描画処理に割り当てる時間を増やすことで、描画性能を向上することができる。
【符号の説明】
【００５７】
１  画像描画装置、２  ホストインタフェース手段、３  ディスプレイリスト処理手段、４  描画処理時間測定手段、５  描画処理時間記憶手段、６  描画処理手段、７  表示制御手段、８  データ記憶手段。
【図１】
2014115926.tif 000003
【図２】
2014115926.tif 000004
【図３】
2014115926.tif 000005
【図４】
2014115926.tif 000006
【図５】
2014115926.tif 000007
【図６】
2014115926.tif 000008
【図７】
2014115926.tif 000009
【図８】
2014115926.tif 000010
【図９】
2014115926.tif 000011
【図１０】
2014115926.tif 000012