(57)【要約】【課題】外部機器を監視制御する表示画面の画面データを描画する画像処理装置において、外部機器の障害時に表示する画面データの信頼性を保ちつつ、画面データのデータ容量を少なく抑える画像処理装置及び画像処理方法を提供する。【解決手段】本発明は、外部機器から設定されたディスプレイリストＩＤに基づいて画面データを描画する画像処理装置及びこの画像処理方法であって、障害発生時に表示した画面データを描画するため用いたディスプレイリストＩＤを記憶し、記憶したディスプレイリストＩＤに基づいて画面データを再描画することを特徴とする。【選択図】  図１
2014238630.tif 000002
【特許請求の範囲】
【請求項１】
画像を構成するオブジェクトを描画するためのパラメータからなる描画コマンドと、前記描画コマンドを識別するディスプレイリストＩＤとが対応づけられたディスプレイリストに基づいて、フレーム単位で画像を描画する画像処理装置において、
前記ディスプレイリストを記憶するデータ記憶手段と、
前記データ記憶手段の前記ディスプレイリストを参照し、外部ホストにより設定された前記ディスプレイリストＩＤに対応する描画コマンドを特定するディスプレイリスト処理手段と、
前記ディスプレイリスト処理手段が特定した描画コマンドに基づいて画像を描画する描画処理手段と、
前記ディスプレイリスト処理手段に設定されたディスプレイリストＩＤをフレーム単位で記憶するディスプレイリストＩＤ記憶手段と、
を備え、
前記ディスプレイリスト処理手段は、前記ディスプレイリストＩＤ記憶手段にフレーム単位で記憶されたディスプレイリストＩＤに基づいて、前記描画処理手段に画像を再描画させることを特徴とする画像処理装置。
【請求項２】
前記ディスプレイリスト処理手段は、前記描画処理手段によって１つのフレームの画像を描画させるのに用いたディスプレイリストＩＤに該フレームを識別するフレームＩＤを対応づけて前記ディスプレイリストＩＤ記憶手段に記憶させることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記描画処理手段が前フレームの画像にオブジェクトを追加して新たなフレームの画像を描画する場合において、
前記ディスプレイリストＩＤ記憶手段は、前記前フレームを識別するための前記フレームＩＤを前記新たなフレームの画像を再描画する際に参照される参照フレームとし、前記前フレームの画像に追加したオブジェクトに対応するディスプレイリストＩＤと前記参照フレームとを対応づけて記憶することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
画像を構成するオブジェクトを描画するためのパラメータからなる描画コマンドと、前記描画コマンドを識別するディスプレイリストＩＤとが対応づけられたディスプレイリストに基づいて、フレーム単位で画像を描画する画像処理方法において、
前記ディスプレイリストを記憶するステップと、
記憶した前記ディスプレイリストを参照し、外部ホストにより設定された前記ディスプレイリストＩＤに対応する描画コマンドを特定するステップと、
特定した前記描画コマンドに基づいて画像を描画するステップと、
特定した前記描画コマンドに対応する前記ディスプレイリストＩＤをフレーム単位で記憶するステップと、
を有し、
前記フレーム単位で記憶したディスプレイリストＩＤに基づいて、画像を再描画することを特徴とする画像処理方法。
【請求項５】
前記フレーム単位で記憶した前記ディスプレイリストＩＤに前記フレームを識別するフレームＩＤを対応づけて記憶することを特徴とする請求項４に記載の画像処理方法。
【請求項６】
前フレームの画像にオブジェクトを追加して新たなフレームの画像を描画する場合において、
前記前フレームを識別するための前記フレームＩＤを前記新たなフレームの画像を再描画する際に参照される参照フレームとし、前記前フレームの画像に追加したオブジェクトに対応するディスプレイリストＩＤと前記参照フレームとを対応づけて記憶することを特徴とする請求項５に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィックス描画機能を備えた画像処理装置及びこの画像処理方法に関するものである。
【背景技術】
【０００２】
カーナビ、携帯端末、車載メータ、及び監視制御や機器制御の表示画面に用いられるＧＵＩ（Ｇｒａｐｈｉｃａｌ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ）や、運行表示及び発車票等のデジタルサイネージ（電子看板）等、ユーザに対する情報表示の手段として、グラフィックス機能を搭載した画像表示装置が多用されている。これらの画像表示装置では、従来のＣＰＵによるグラフィックス描画ではなく、ＣＰＵとは別に、例えばグラフィックスエンジン等のグラフィックス描画専用のハードウェアによるグラフィックス描画が行われている。グラフィックスエンジンは、ＣＰＵの代わりに点、線、多角形の描画、塗りつぶし、ＢｉｔＢＬＴ（Ｂｉｔ Ｂｌｏｃｋ Ｔｒａｎｓｆｅｒ）、フォント及びアニメーションなどのグラフィックス描画を行うことで、画像表示装置の描画性能の向上、及びＣＰＵの処理負荷の削減を行っている。
【０００３】
グラフィックス描画では、ディスプレイリスト方式と呼ばれる手法が用いられる。ディスプレイリスト方式において、グラフィックスエンジンは、描画したいグラフィックス及びグラフィックス等を構成するオブジェクトを描画するためのコマンド（描画コマンド）と、これらのコマンドを識別するディスプレイリストＩＤ（ＤＩＤ）とをディスプレイリストとして、グラフィックスエンジン内のメモリや外部接続されたメモリ上に格納し、そのディスプレイリスト内の描画コマンドを直接読み出して実行する。これによって、ＣＰＵとグラフィックスエンジンとの間のグラフィックス描画制御及びデータ転送を低減している。
【０００４】
これらの画像処理装置は、工場等において工作機器や、工作機器のシーケンス制御を行うＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｃｏｎｔｒｏｌｌｅｒ）に接続され、これら外部機器の動作状態に関する情報を外部機器から受信して表示する。このような監視制御や機器制御に用いられる画像処理装置は、装置内部や接続された外部機器などで障害が発生した場合、障害の原因を解析・検証するために、自動もしくは手動で障害発生時に表示しているＧＵＩや画面全体のハードコピー（ビットマップ等）を保存する処理を行う。しかし、表示機器の高解像度化に伴い、画面データのデータ量が増大しているため、障害発生のたびに保存することでメモリ容量を圧迫してしまう。この問題を解決するために、全画面データの一部を切り出した画像や間引き処理した画像を生成し、保存することでデータの低減を行っている。（例えば  特許文献１）
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１８６５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、これらの画像処理装置では、障害時の表示画面を加工し、保存しているため、障害検証のための情報として信頼性が低くなってしまう。また、画面情報中の数値や文字情報などは障害検証に重要な情報となるが、間引き処理により数値や文字が劣化すると判読不能となり、障害検証に使用できなくなってしまうという課題があった。
【０００７】
本発明は、上記のような課題を解決するためになされたもので、画像表示装置が障害発生時に表示している画面全体の画像データ（画面データ）を保存する際に、画像データの蓄積のためのメモリ容量を低減しつつ、信頼性の高い画面データを記憶する画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の画像処理装置は、画像を構成するオブジェクトを描画するためのパラメータからなる描画コマンドと、前記描画コマンドを識別するディスプレイリストＩＤとが対応づけられたディスプレイリストに基づいて、フレーム単位で画像を描画する画像処理装置において、前記ディスプレイリストを記憶するデータ記憶手段と、前記データ記憶手段の前記ディスプレイリストを参照し、外部ホストにより設定された前記ディスプレイリストＩＤに対応する描画コマンドを特定するディスプレイリスト処理手段と、前記ディスプレイリスト処理手段が特定した描画コマンドに基づいて画像を描画する描画処理手段と、
前記ディスプレイリスト処理手段に設定されたディスプレイリストＩＤをフレーム単位で記憶するディスプレイリストＩＤ記憶手段と、を備え、前記ディスプレイリスト処理手段は、前記ディスプレイリストＩＤ記憶手段にフレーム単位で記憶されたディスプレイリストＩＤに基づいて、前記描画処理手段に画像を再描画させることを特徴とする。
【０００９】
本発明の画像処理方法は、画像を構成するオブジェクトを描画するためのパラメータからなる描画コマンドと、前記描画コマンドを識別するディスプレイリストＩＤとが対応づけられたディスプレイリストに基づいて、フレーム単位で画像を描画する画像処理方法において、前記ディスプレイリストを記憶するステップと、記憶した前記ディスプレイリストを参照し、外部ホストにより設定された前記ディスプレイリストＩＤに対応する描画コマンドを特定するステップと、特定した前記描画コマンドに基づいて画像を描画するステップと、特定した前記描画コマンドに対応する前記ディスプレイリストＩＤをフレーム単位で記憶するステップと、を有し、前記フレーム単位で記憶したディスプレイリストＩＤに基づいて、画像を再描画することを特徴とする。
【発明の効果】
【００１０】
本発明に係る画像処理装置は、外部機器から設定されたディスプレイリストＩＤに基づいて画面データを描画する画像処理装置であって、障害発生時に表示した画面データを描画するため用いたディスプレイリストＩＤを記憶し、記憶したディスプレイリストＩＤに基づいて画面データを再描画するので、画像データの蓄積のためのメモリ容量を低減しつつ、信頼性の高い画面データを提供することができる。
できる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係る画像処理装置の構成図である。
【図２】実施の形態１に係る画像処理装置のメモリマップの一例である。
【図３】実施の形態１に係る画像処理装置によって描画される画面データの一例である。
【図４】実施の形態１に係る画像処理装置によって描画される画面データを構成するための描画コマンドとオブジェクトの一例である。
【図５】実施の形態１に係る画像処理装置が用いるディスプレイリストの一例である。
【図６】実施の形態１に係る画像処理装置の動作フローチャートである。
【図７】実施の形態１に係る画像処理装置におけるディスプレイリスト処理手段の動作フローチャートである。
【図８】実施の形態１に係る画像処理装置の動作と画像処理装置によって描画される画面データの対応関係を示す図である。
【図９】実施の形態１に係る画像処理装置の画面描画時の動作タイミングを説明する図である。
【図１０】実施の形態１に係る画像処理装置の障害発生時の動作を説明する図である。
【図１１】実施の形態１に係る画像処理装置の画面描画時のフレームＩＤとディスプレイリストＩＤの保存状態の一例である。
【図１２】実施の形態１に係る画像処理装置の前フレームとの差分を用いた画面描画時の動作タイミングの一例である。
【図１３】実施の形態１に係る画像処理装置の前フレームとの差分を用いた画面描画時のフレームＩＤとディスプレイリストＩＤの保存結果の一例である。
【発明を実施するための形態】
【００１２】
実施の形態１．
以下、図１、図２を用いて実施の形態１に係る画像処理装置の構成について説明する。
【００１３】
実施の形態１に係る画像処理装置１は、例えばグラフィックスエンジン等のグラフィックス描画及び表示の機能を持つ装置である。画像処理装置１は、上位装置である外部ホスト（例えば、ＣＰＵ２）とＣＰＵバス１８ａを介して接続され、外部の表示装置３に対して表示バス１８iを介して画面データを出力する。なお、以下の説明において、ホストの例として、ＣＰＵ２を用いる。
【００１４】
画像処理装置１は、ホストインタフェース手段１２（以下、ホストＩ／Ｆ手段１２）、ディスプレイリスト処理手段１３、ディスプレイリストＩＤ記憶手段１４（第一のディスプレイリストＩＤ記憶手段）、描画処理手段１５、表示制御手段１６、及びデータ記憶手段１７を備える。ホストＩ／Ｆ手段１２が入力手段、ディスプレイリストＩＤ記憶手段１４が記憶手段、描画処理手段１５が画面データ生成手段、表示制御手段１６が出力手段に相当する。
【００１５】
ホストＩ／Ｆ手段１２は、ＣＰＵ２と画像処理装置１との間のバスインタフェースであり、画像処理装置１の外部から描画パラメータ、描画用データ（参照用の画像データであり、フォントデータ、ベクターデータ、ビットマップデータ等）、ディスプレイリスト等を入出力する。
【００１６】
描画パラメータとは、例えば、メモリ空間の描画エリアのベースアドレス、形状情報（点、線、多角形、円等のパーツ種）、描画位置、描画した画像サイズ（幅、高さ）、カラーフォーマット（ＡＲＧＢ８８８８、ＲＧＢ８８８、ＲＧＢ５６５等）、シザー領域、属性情報（色、塗りつぶし、グラデーション有無）、アルファ値等が含まれるパラメータである。
【００１７】
また、描画用データは、繰り返し使われる文字、数字、図形等をビットマップ形式等の画像データとしたものである。例えば、アルファベットの「Ａ」、数字の「０」等がこれに該当する。
【００１８】
ホストＩ／Ｆ手段１２は、ＣＰＵバス１８ａを介してＣＰＵ２から入力されたアドレスをデコードし、内部レジスタバス１８ｂ〜１８ｈを経由して、各構成内のレジスタに対する書込み又は読み出しを行う。
【００１９】
図２は、実施の形態１に係る画像処理装置のメモリマップの一例である。メモリマップはＣＰＵ２から見た画像処理装置１の各構成要素が有するメモリ及びレジスタにどのようなデータが記憶されているかを示す図である。
【００２０】
図２に示すように、ＣＰＵ２のメモリマップ上には、画像処理装置１内のレジスタ空間及びメモリ空間がマッピングされる。ＣＰＵ２は、ホストＩ／Ｆ手段１２を介して、メモリマップにマッピングされた画像処理装置１内部のレジスタ空間及びメモリ空間にアクセスし、画像処理装置１を制御する。
【００２１】
例えば、ホストＩ／Ｆ手段１２はＣＰＵ２から入力されたディスプレイリストをメモリバス１８ｂを介してデータ記憶手段１７へ記憶させる。また、グラフィックス描画に必要な、描画用データ、描画パラメータをデータ記憶手段１７に記憶させる。
【００２２】
ディスプレイリスト処理手段１３は、ＣＰＵ２からディスプレイリストの実行開始命令を受けて、ＩＤバス１８ｄを介してデータ記憶手段１７に格納されたディスプレイリストを読み出し、ディスプレイリストに含まれる描画コマンドを描画コマンドバス１８ｆを介して後述する描画処理手段１５へ出力する。ここで、実行開始命令とは、ユーザーの操作等により表示装置３に表示画像を表示させる際にＣＰＵ２から出力される信号である。この実行開始命令により、画像処理装置１は画面データの描画を開始する。また、描画コマンドは、描画パラメータ及び描画用データからなるパラメータ群であり、後述する描画処理手段１５はこの描画コマンドに基づいてオブジェクトを描画することが可能となる。ここでいうオブジェクトとは、画像表示装置１に表示される画面データを構成する要素のことをいう。例えば、線、点等がこれに該当し、線や点を複数組み合わせて１つの図形となったものを１つのオブジェクトとすることもできる。
【００２３】
また、ディスプレイリスト処理手段１３は、ＩＤバス１８ｄを介してデータ記憶手段１７から読み出したディスプレイリストＩＤをディスプレイリストＩＤ記憶手段１４へ出力する。さらに、描画処理手段１５から描画処理が完了したことを示す描画処理完了信号を描画コマンドバス１８ｆを介して受信し、次の描画コマンドを描画処理手段１５に出力する。また、１フレームの画面データが描画された場合に、フレームＩＤ（ＦＩＤ）をディスプレイリストＩＤ記憶手段１４へ出力する。フレームＩＤとは、１フレーム内で実行された描画コマンドに対応する複数のディスプレイリストＩＤに対して対応づけられるＩＤをいう。
【００２４】
ディスプレイリストＩＤ記憶手段１４は、ディスプレイリスト処理手段１３から入力されるディスプレイリストＩＤ及びフレームＩＤを記憶する。また、ディスプレイリストＩＤ記憶手段１４は、１フレームあたりの画像が描画されるのに必要な複数のディスプレイリストＩＤに対して１つのフレームＩＤを対応づけて記憶する。
【００２５】
描画処理手段１５は、描画コマンドバス１８ｆを介してディスプレイリスト処理手段１３から描画コマンドを受ける。また、描画処理手段１５は、描画パラメータに基づいて画面データを生成する。さらに、描画処理手段１５は、生成した画面データを描画バス１８ｇを介してデータ記憶手段１７に書き込む。描画処理手段１５は、画面データの生成と書き込みが完了したら、ディスプレイリスト処理手段１３へ描画処理完了信号を出力する。描画処理手段１５は、１フレームあたり１つの画面データを描画する。
【００２６】
具体的には、描画処理手段１５は、描画コマンドに含まれる描画パラメータ及び描画用データに基づいて、表示画像を構成する点、線、円、多角形をはじめ、ＢｉｔＢＬＴ転送、フィル（塗りつぶし）、テクスチャマップ、ベクターグラフィックス、フォント、ビットマップ及びアニメーション等の一般的なグラフィックス描画処理（以下、描画処理という）を行い、描画処理した結果の画面データを生成し、データ記憶手段１７に書き込む。
【００２７】
表示制御手段１６は、内部レジスタバス１８ｃを介してＣＰＵ２によって設定された表示パラメータに基づいて、表示装置３が画面データを生成する表示タイミングに合わせて、データ記憶手段１７から画面データを表示用メモリバス１８ｈを介して読み出し、表示装置３へ出力する。表示パラメータとは、表示装置３が画面データを表示するタイミングの情報をいう。すなわち、ＣＰＵ２によって予め表示制御手段１６に対して表示パラメータが設定されることによって、表示制御手段１６は決められたフレーム間隔で、表示装置３に画面データを出力することができる。また、表示パラメータには、表示する画面データを格納しているデータ記憶手段１７内の先頭アドレス、スクリーンサイズ（幅、高さ）、階調数、水平ブランク期間、垂直ブランク期間等の情報が含まれる。例えば、画像サイズをＸＧＡ（１０２４×７６８＠６０Ｈｚ）で表示する場合、ドットクロックを６５ＭＨｚとすると、水平トータル画素数：１３４４、垂直トータルライン数：８０６、有効水平画素数１０２４、水平ブランク画素数３２０、垂直有効ライン数：７６８、及び垂直ブランクライン数：３８などであり、これらの値から、表示タイミングを生成する。なお、表示制御手段１６の表示する画像サイズをＸＧＡとして説明しているが、画像サイズは、表示するディスプレイに応じて任意に変更しても良い。更に、描画する画像サイズと表示する画像サイズとは、異なっても良い。
【００２８】
データ記憶手段１７は、描画処理手段１５が描画した画面データを記憶する。また、データ記憶手段１７は、ホストＩ／Ｆ手段１２から入力されるディスプレイリスト、描画用データ、描画パラメータを記憶する。
【００２９】
次に、図３から図５を用いて、実施の形態１に係る画像処理装置１によって描画される画像とディスプレイリストの関係について説明する。図３は、実施の形態１に係る画像処理装置によって描画される画面データの一例である。図４は、実施の形態１に係る画像処理装置によって描画される画面データを構成するための描画コマンドとオブジェクトの一例である。図５は、実施の形態１に係る画像処理装置が用いるディスプレイリストの一例である。
【００３０】
図４に示すように、画面データは、複数の描画オブジェクトで構成され、画像処理装置１によってオブジェクトに対応する描画コマンドを順次実行されることで生成される。例えば、図３に示す画面データは、全画面クリア、背景Ａ、背景Ｂ、オブジェクトＡ、オブジェクトＢ、オブジェクトＣ、オブジェクトＤ、オブジェクトＥで構成され、描画処理手段１５によって図４に示す描画コマンドを順次実行されることで生成される。
【００３１】
図５に示すように、各オブジェクトを描画するための描画コマンドは、ディスプレイリストＩＤと１対１で対応づけられる。ＣＰＵ２は、描画するオブジェクトに対応するディスプレイリストＩＤをディスプレイリスト処理手段１３に設定し、オブジェクトの描画を行う。例えば、ＣＰＵ２がディスプレイリスト処理手段１３にＤＩＤ＝０を設定すると、ディスプレイリストＩＤ処理手段１３は、対応する描画コマンドである全画面クリア（固定色による塗りつぶし）を描画処理手段１５へ出力し、全画面クリアを描画処理手段１５に実行させる。同様に、ＤＩＤ＝１がディスプレイリスト処理手段１３に設定されると、ディスプレイリスト処理手段１３は描画処理手段１５に背景Ａの描画処理を実行させ、ＤＩＤ＝２が設定されると背景Ｂの描画処理を実行させる。ＣＰＵ２はディスプレイリストＩＤをＤＩＤ＝０からＤＩＤ＝７までディスプレイリスト処理手段１３に続けて設定することで、図３に示す画面データを生成することができる。
【００３２】
次に、図６から図１３を用いて実施の形態１に係る画像処理装置の動作について説明する。
【００３３】
図６は、実施の形態１に係る画像処理装置の動作フローチャートである。以下の説明において、実施の形態１に係る画像処理装置１の動作の説明として、（１）通常時の動作、（２）障害発生時の動作に分けて説明する。
【００３４】
（１）通常時の動作
【００３５】
ＳＴ１において、ＣＰＵ２は、ホストＩ／Ｆ手段１２を介して、まず画像処理装置１の各手段を初期化する。さらに、ＣＰＵ２は表示用パラメータを表示制御手段１６に設定する。
【００３６】
ＳＴ２において、ＣＰＵ２は、描画用データをデータ記憶手段１７に記憶させる。
【００３７】
ＳＴ３において、ＣＰＵ２は、ディスプレイリストをデータ記憶手段１７に記憶させる。以上のＳＴ１からＳＴ３までのステップで、画面データの描画を行うための準備が完了する。
【００３８】
ＳＴ４において、ＣＰＵ２は、画面データの保存要求が発生していないかを確認する。なお、画面データの保存要求とは、外部機器に何らかの障害が検知された際に、外部機器からＣＰＵ２へ出力される障害の発生を示す信号である。なお、（１）通常動作の説明においては、画面データの保存要求がないものとして、ＳＴ７へ移行する。
【００３９】
ＳＴ７において、ＣＰＵ２は、終了要求があれば、画像処理装置２に画面データを描画させる動作を終了させる。この説明において、終了要求は無かったものとしてＳＴ８へ進む。
【００４０】
ＳＴ８において、ＣＰＵ２は、画像処理装置１に画面データを描画させる動作を開始する。ＣＰＵ２は、ディスプレイリストＩＤをホストＩ／Ｆ手段１２を介して、ディスプレイリスト処理手段１３へ設定し、該当するディスプレイリストＩＤに対応する描画処理を実行させる。なお、ＳＴ８からＳＴ９の間に、ディスプレイリスト処理手段１３は、ＣＰＵ２によって設定されたディスプレイリストＩＤに基づいて描画処理手段１５に画面データを描画させる。ＣＰＵ２は、ディスプレイリスト処理手段１３の処理が完了するまで、待機する（ＳＴ９）。
【００４１】
ここで、図７を用いてＳＴ８からＳＴ９の間に実行されるディスプレイリスト処理手段１３の動作について詳細に説明する。図７は実施の形態１に係る画像処理装置におけるディスプレイリスト処理手段１３の動作フローチャートである。
【００４２】
ＳＴ２０において、ディスプレイリスト処理手段１３は、画面データ保存命令を受信したか否かを判定する。この例のＳＴ４において、ＣＰＵ２は画面データの保存要求が発生しておらず、後述する画面データ保存命令をディスプレイリスト処理手段１３へ出力していない。したがって、画面データ保存命令を受信していないものとして、ＳＴ２２へ進む。
【００４３】
ＳＴ２２において、ディスプレイリスト処理手段１３は、ディスプレイリストＩＤの設定確認を行う。すなわち、ディスプレイリスト処理手段１３は、ＣＰＵ２によってディスプレイリストＩＤが設定されたか否かを確認する。
【００４４】
ＳＴ２３において、ディスプレイリスト処理手段１３は、ＳＴ２２でディスプレイリストＩＤが設定されている場合には、データ記憶手段１７からＣＰＵ２によって設定されたディスプレイリストＩＤに該当する描画コマンドを読み込む。
【００４５】
ＳＴ２４において、ディスプレイリストＩＤ記憶手段１３は、設定されたディスプレイリストＩＤが表示更新命令(ＤＩＤ＝１００)か否かを判定する。表示更新命令でないなら、ＳＴ２５へ進む。
【００４６】
ＳＴ２５において、ディスプレイリスト処理手段１３は、描画処理手段１５にオブジェクトの描画を実行させる。具体的には、ディスプレイリスト処理手段１３は、ＣＰＵ２によって設定されたディスプレイリストＩＤに対応する描画コマンドを出力し、描画処理手段１５のオブジェクトの描画を実行させる。
【００４７】
このとき、描画処理手段１５は、ディスプレイリスト処理手段１３から描画コマンドを受けて、オブジェクトの描画処理を実行し、オブジェクトを生成する。また、描画処理手段１５は、オブジェクトの描画が完了した後、ディスプレイリスト処理手段１３に描画処理完了通知を出力する。
【００４８】
ＳＴ２６において、ディスプレイリスト処理手段１３は、描画処理手段１５から描画処理完了通知を受ける。
【００４９】
ＳＴ２７において、ディスプレイリスト処理手段１３は、描画処理完了通知をＣＰＵ２へ出力する。
【００５０】
ＳＴ２８において、ディスプレイリスト処理手段１３は、実行したディスプレイリストＩＤをディスプレイリストＩＤ記憶手段１４に記憶させる。以上の動作で、ＳＴ５からＳＴ６におけるディスプレイリスト処理手段１３の動作は終了する。
【００５１】
図６に戻り、ＳＴ９において、ＣＰＵ２は、ディスプレイリスト処理手段１３から描画処理完了通知を受けて次のディスプレイリストＩＤをディスプレイリスト処理手段１３に設定する準備を行う。
【００５２】
ＳＴ１０において、ＣＰＵ２は、ＳＴ２で転送したディスプレイリストの内容に追加・修正があるか否かを判定する。
【００５３】
ＳＴ１１において、ＣＰＵ２は、ＳＴ１０においてディスプレイリストの追加・修正が必要と判断した場合には、該当するディスプレイリストを画像処理装置１内のデータ記憶手段１７に転送する。なお、追加・修正を行わない場合にはステップＳＴ１２へ移る。
【００５４】
ＳＴ１２において、ＣＰＵ２は、１フレーム分の描画が完了したかを判定する。なお、画像処理装置１は、１フレーム分の描画処理が完了するまで、図６の動作フローのＳＴ４からＳＴ１２を繰り返し実行する。ＳＴ１２において、ＣＰＵ２は、１フレーム分の描画が完了したと判定した場合に、表示更新命令（ＤＩＤ＝１００）をディスプレイリスト処理手段１３に通知する。
【００５５】
ディスプレイリスト処理手段１３は、ＣＰＵ２により表示更新命令が設定された場合に、描画処理手段１５に対して垂直同期信号（Ｖｓｙｎｃ）を出力する。
【００５６】
描画処理手段１５は垂直同期信号を受けて、生成した画面データをデータ記憶手段１７に記憶させる。なお、データ記憶手段１７は、描画更新中の画面データを表示装置３に出力しないようにするため、ダブルバッファ構成をとる。具体的には、まず、描画処理手段１５は、図２に示したデータ記憶手段１７の第１の描画領域Ａ（Ａ−ｂｕｆｆｅｒ）に対して画面データの書込みを行う。描画処理手段１５は、１フレーム分の画面データの書き込みが完了したら、垂直同期信号に合わせて、描画領域を切り替えて、次のフレームの画面データをデータ記憶手段１７の第２の描画領域Ｂ（Ｂ−ｂｕｆｆｅｒ）に対して書込む。
【００５７】
ＳＴ１３において、表示制御手段１６は予め設定された表示パラメータの表示タイミングに基づいて、データ記憶手段１７に記憶された画面データを表示装置３へ出力する。表示装置３は画面データを受けて表示する。
【００５８】
その後、再度ＳＴ４に戻り、画像処理装置１は処理を継続する。
【００５９】
次に、上記のように１フレーム分の画面データの描画が完了した際のディスプレイリスト処理手段１３の動作を再び図７に戻り説明する。
【００６０】
ＳＴ２４において、ディスプレイリスト処理手段１３は表示更新命令を受けた場合、すなわち、１フレーム分の画面データが画像処理装置によって描画された場合、ディスプレイリスト処理手段１３は、描画された画面データのフレームに対応するフレームＩＤ（ＦＩＤ）をディスプレイリストＩＤ記憶手段１４へ記憶させる（ＳＴ２９）。このとき、ディスプレイリスト処理手段１３は、ディスプレイリストＩＤ記憶手段１４に記憶させた複数のディスプレイリストＩＤの先頭のフレームフラグに参照フレームＩＤを保存する。参照フレームＩＤは、外部機器に障害が発生した際の画面データを画像処理装置１が再描画する際にＣＰＵ２が参照するフレームＩＤを示す。例えば、ディスプレイリスト処理手段１３は、描画が完了したフレームの画面データが以前描画したフレームの画面データとの差分データで構成されている場合（以下、差分描画とする）には、描画が完了した画面データの参照フレームとして以前描画したフレームＩＤ（ＦＩＤ）をディスプレイリストＩＤ記憶手段１４に記憶させる。なお、１つのフレームＩＤのディスプレイリストＩＤで画面データの描画が完成する場合、ディスプレイリスト処理手段１３は、描画が完了した画面データのフレームＩＤをそのまま参照フレームとしてディスプレイリストＩＤ記憶手段１４に記憶させる。
【００６１】
ＳＴ３０において、ディスプレイリスト処理手段１３は、ディスプレイリストＩＤ記憶手段１４に予め設定された記憶最大フレーム数と、ディスプレイリストＩＤ記憶手段１４に現在保存されているフレーム数とを比較し、記憶最大フレーム数に達したかどうかの判定を行う。ディスプレイリスト処理手段１３は、記憶最大フレーム数に達していないと判断した場合、処理を終了する。なお、ディスプレイリスト処理手段１３は、ディスプレイリストＩＤ記憶手段１４の記憶最大フレーム数に達したと判断した場合、一番古いフレームＩＤ、ディスプレイリストＩＤを消去して処理を終了する。
【００６２】
ここで、図８、図９を用いて、ディスプレイリスト処理手段１３が描画処理手段１５に描画させる画面データとディスプレイリストＩＤ記憶手段１４に記憶させるディスプレイリストＩＤとの関係と、このディスプレイリストＩＤを記憶させるタイミングについて詳細に説明する。図８は、実施の形態１に係る画像処理装置の動作と画像処理装置によって描画される画面データの対応関係を示す図である。
【００６３】
図８に示すように、ＣＰＵ２は、初期化等完了後（ＳＴ１〜ＳＴ３の後でＳＴ７でＮＯと判断された後）、ディスプレイリスト処理手段１３にＤＩＤ＝０を設定する（ＳＴ８）。ディスプレイリスト処理手段１３は、描画処理手段１５へＤＩＤ＝０に該当する描画コマンド（全画面クリア処理）を出力する。描画処理手段１５によって全画面クリア処理が実行された後、ディスプレイリスト処理手段１３は、描画処理手段１５から描画処理完了通知を受けてＤＩＤ＝０をディスプレイリストＩＤ記憶手段１４に記憶させる。続いて、ＣＰＵ２は、ＤＩＤ＝１をディスプレイリスト処理手段１３に設定する。設定を受けてディスプレイリスト処理手段１３は、描画処理手段１５へＤＩＤ＝１に対応する描画コマンドである背景Ａの描画コマンドを出力し、背景Ａを描画させる。背景Ａの描画処理完了通知を受けて、ディスプレイリスト処理手段１３は、ＤＩＤ＝１をディスプレイリストＩＤ記憶手段１４に記憶させる。同様に、ディスプレイリスト処理手段１３は、背景Ｂ、オブジェクトＡ、オブジェクトＢ、オブジェクトＣ、オブジェクトＤ、オブジェクトＥの描画処理を描画処理手段１５に実行させ、ＤＩＤ＝２からＤＩＤ＝７をディスプレイリストＩＤ記憶手段１４に記憶させる。また、ディスプレイリスト処理手段１３は、ＣＰＵ２からの表示更新命令(ＤＩＤ＝１００)を受けて、ＤＩＤ＝１００、フレームＩＤ（ＦＩＤ）＝０をディスプレイリストＩＤ記憶手段１４に記憶させる。
【００６４】
また、図９は、実施の形態１に係る画像処理装置の画面描画時の動作タイミングを説明する図である。
【００６５】
図９に示すように、ディスプレイリスト処理手段１３は、ＤＩＤ＝０からＤＩＤ＝７に対応する描画処理を描画処理手段１５に実行させた後、ＣＰＵ２からの表示更新命令(ＤＩＤ＝１００)を受けて、１フレーム期間中に実行したディスプレイリストＩＤに対応付けて、ＤＩＤ＝１００、ＦＩＤ＝０をディスプレイリストＩＤ記憶手段１４に記憶させる。また、この例ではＤＩＤ＝０からＤＩＤ＝７までに対応する描画コマンドが１つのフレームで実行されるため、ディスプレイリスト処理手段１３は、現在のフレームＩＤ（ＦＩＤ＝０）を参照フレームとしてディスプレイリストＩＤ記憶手段１４に記憶させる。
【００６６】
（２）障害発生時の動作
【００６７】
次に、障害発生時の画像処理装置１の動作について、図６に戻り説明する。
【００６８】
まず、障害発生時には、外部機器から障害が発生したことを示す画面データの保存要求がＣＰＵ２へ出力される。
【００６９】
ＳＴ４において、ＣＰＵ２は、画面データ保存要求が発生していないかを確認する。この例において、ＣＰＵ２には外部機器から画面データ保存要求が出力されているため、ＣＰＵ２は、画面データ保存要求が発生したと判断してＳＴ５へ進む。
【００７０】
ＳＴ５において、ＣＰＵ２は、画面データ保存命令をディスプレイリスト処理手段１３へ通知する。ここで、画面データ保存命令とは、ＣＰＵ２に画面データ保存要求が発生した場合に、ＣＰＵ２からディスプレイリスト処理手段１３へ送信される信号である。
【００７１】
図７に移り、ＳＴ２０において、ディスプレイリスト処理手段１３は、ＣＰＵ２から画面データ保存命令を受信する。したがって、ＳＴ２１へ進む。
【００７２】
ＳＴ２１において、ディスプレイリスト処理手段１３は、ディスプレイリストID記憶手段１４に記憶されている最新のフレームＩＤ及びこのフレームＩＤに対応づけられたディスプレイリストＩＤをＣＰＵ２へ転送する。
【００７３】
再度、図６に戻り、ＳＴ６において、ＣＰＵ２は、ディスプレイリスト処理手段１３より転送されたフレームＩＤ、ディスプレイリストＩＤを受信し、ＣＰＵ２内部の記憶手段（第二のディスプレイリストＩＤ記憶手段）に記憶する。なお、第二のディスプレイリストＩＤ記憶手段は、ＣＰＵ２内にあるものとしたが、他の構成の内部にあるものとしてもよい。例えば、データ記憶手段１７内に設けられてもよい。
【００７４】
ここで、図１０を用いて、表示装置３がフレーム３において画像を表示している際に、外部機器に障害が発生した例を説明する。図１０は、実施の形態１に係る画像処理装置の障害発生時の動作を説明する図である。
【００７５】
図１０に示すように、ディスプレイリスト処理手段１３は、各フレームの描画の終了となる表示更新命令（ＤＩＤ＝１００）を受信後、画面データとしてフレームＩＤとディスプレイリストＩＤをディスプレイリストＩＤ記憶手段１４に記憶させる。図１０の各フレーム描画において、他のフレームのディスプレイリストＩＤを引用することなく、各フレーム内で処理が閉じており、描画処理手段１５は、１つのフレームの画面データを描画するために他のフレームを参照する必要がない。したがって、参照フレームの値は、各フレームのフレームＩＤとなる。例えば、描画処理手段１５がフレーム０の画面データを描画した場合には、ディスプレイリスト処理手段１３は、ＦＩＤ＝０を参照フレームとしてディスプレイリストＩＤ記憶手段１４に記憶させる。また、描画処理手段１５がフレーム１の画面データを描画した場合には、参照フレームはＦＩＤ＝１となる。同様にフレーム２では参照フレームはＦＩＤ＝２となる。
【００７６】
図１１は、実施の形態１に係る画像処理装置の画面描画時のフレームＩＤとディスプレイリストＩＤの保存状態の一例である。
【００７７】
図１１に示すように、ディスプレイリスト処理手段１３は、フレーム単位で実行したディスプレイリストをディスプレイリストＩＤ記憶手段１４に記憶させる。各ＦＩＤの先頭にあるフレームフラグには、参照するフレームのフレームＩＤを参照フレームとして挿入する。参照フレームが現フレームを示している場合、ディスプレイリスト処理手段１３は、フレームの描画において他のフレームを参照はせずに描画処理手段１５に画像データを描画させる。フレーム参照先が現フレームと異なる場合には、ディスプレイリスト処理手段１３は、参照先の画面データを描画後、現フレームで描画するディスプレイリストＩＤを実行し、画面データを生成する。
【００７８】
例えば、フレームＩＤ＝３の描画途中で障害が発生した場合、ＣＰＵ２は、画面データ保存命令をディスプレイリスト処理手段１３へ通知する。なお、ディスプレイリストＩＤ記憶手段１４に記憶されている画面データは、ＦＩＤ＝０、ＦＩＤ＝１、ＦＩＤ＝２である。この例の場合、参照フレームが現フレームを示している。よって、ディスプレイリスト処理手段１３は、ＦＩＤ＝２と、ＦＩＤ＝２に対応づけられた参照フレームＩＤ（ＦＩＤ＝２）及びＤＩＤ＝１００とをディスプレイリストID記憶手段１４より読み出しＣＰＵ２へ転送する。ＣＰＵ２は、記憶したフレームＩＤ、ディスプレイリストＩＤを参照フレームＩＤに基づいてディスプレイリスト処理手段１３に再転送し、再度図７のＳＴ２からＳＴ２５を繰り返し実行させることで、障害発生時の画面を再現できる。
【００７９】
また、図１２は、実施の形態１に係る画像処理装置の前フレームとの差分を用いた画面描画時の動作タイミングの一例である。
【００８０】
図１２に示すように、差分描画では、前フレームの画面データから変更された箇所のみを描画する。まず、フレーム０の描画において、描画処理手段１５は、全画面クリア（ＤＩＤ＝０）からＤＩＤ＝Ｎ−１まで実行する。一方、フレーム１の画面データの描画において、描画処理手段１５は、画面クリアは行わず、フレーム０で描画された画面データに追加したいオブジェクトの描画を実行する（ＤＩＤ＝ＮからＤＩＤ＝Ｍ−１まで）。また、同様にフレーム２の描画においても、描画処理手段１５は、画面クリアを行わず、フレーム１で描画された画面データに追加するオブジェクトの描画を実行する（ＤＩＤ＝ＭからＤＩＤ＝Ｐ−１まで）。
【００８１】
さらに、このような差分描画の場合における参照フレーム、ディスプレイリストＩＤ、フレームＩＤの保存状態を図１３を用いて説明する。
【００８２】
図１３は、実施の形態１に係る画像処理装置の前フレームとの差分を用いた画面描画時のフレームＩＤとディスプレイリストＩＤの保存結果の一例である。
【００８３】
図１３に示すように、フレーム０における画面データの描画において、ディスプレイリスト処理手段１３は、他のフレームを参照せずに、全画面クリアから描画を行う。したがって、ディスプレイリストＩＤ記憶手段１４は、参照フレームとフレームＩＤが一致するようにディスプレイリストＩＤを記憶する。一方、フレーム１において描画される画面データは、前フレームのフレーム０において描画された画面データとの差分データであるため、ディスプレイリスト処理手段１３は、ディスプレイリストＩＤ記憶手段１４に参照フレームとしてＦＩＤ＝０を記憶させ、続いて、追加・変更箇所に対応するディスプレイリストＩＤ（ＤＩＤ＝ＮからＤＩＤ＝Ｍ−１まで）を記憶させる。同様にフレーム２の描画ではフレーム１を参照する必要があるため、参照フレームにＦＩＤ＝１が記憶され、続いて、追加・変更箇所の描画（ＤＩＤ＝ＭからＤＩＤ＝Ｐ−１まで）が記憶される。このように、ディスプレイリストＩＤ記憶手段１４は、他フレームの画面データにオブジェクトを追加して画面データを描画するフレームに関しては、他フレームのフレームＩＤを参照フレームとしてディスプレイリストＩＤと対応づけて記憶するので、重複するディスプレイリストＩＤが共有されデータ容量を小さくすることができる。
【００８４】
なお、フレーム３、フレーム４、フレーム５は、フレーム２と同じ画面を描画する例を示している。この場合、ディスプレイリストＩＤ記憶手段１４は、参照フレームとしてＦＩＤ＝２を記憶するだけなので、記憶する画面データ量を特に削減できる。
【００８５】
図１２に戻り、差分描画において、フレームＩＤ＝３の描画途中で障害が発生した場合、ＣＰＵ２は、画面データ保存命令をディスプレイリスト処理手段１３へ通知する。ディスプレイリストID記憶手段１４には、ＦＩＤ＝０、ＦＩＤ＝１、ＦＩＤ＝２が記憶されている。よって、ディスプレイリスト処理手段１３は、ＦＩＤ＝０、ＦＩＤ＝１、ＦＩＤ＝２に対応づけられたディスプレイリストＩＤ及び参照フレームＩＤとをディスプレイリストID記憶手段１４より読み出しＣＰＵ２へ転送する。ＣＰＵ２は、参照フレームＩＤに基づいて、記憶したフレームＩＤ、ディスプレイＩＤを画像処理装置１に再転送・再実行することで、障害発生時の画面を再現できる。
【００８６】
例えば、フレーム２の画面データをユーザーの操作などにより再描画する場合、ＣＰＵ２は、フレーム２(ＦＩＤ＝２)の参照フレームをチェックする。ＣＰＵ２は、フレーム２の参照フレームがＦＩＤ＝１であるため、フレーム１（ＦＩＤ＝１）の画面描画を先に実行する。続いて、ＣＰＵ２は、フレーム１（ＦＩＤ＝１）の参照フレームをチェックする。参照フレームはＦＩＤ＝０であるため、ＣＰＵ２はフレーム０（ＦＩＤ＝０）の画面描画をさらに先に実行する。続いて、ＣＰＵ２はフレーム０（ＦＩＤ＝０）のフレームフラグをチェックする。フレーム０の参照フレームは、ＦＩＤ＝０であるため、参照するフレームはなく、ＣＰＵ２はフレーム０のディスプレイリスト（ＤＩＤ＝０〜Ｎ−１）を実行する。続いて、ＦＩＤ＝１の描画（ＤＩＤ＝Ｎ〜Ｍ−１）、ＦＩＤ＝２の描画（ＤＩＤ＝Ｍ〜Ｐ−１）を順次実行し、フレーム２の画面を画像処理装置１に再描画させる。
【００８７】
以上で、実施の形態１に係る画像処理装置１の動作は終了する。
【００８８】
なお、実施の形態１に係る画像処理装置１において、ディスプレイリストＩＤ記憶手段１４とデータ記憶手段１７は分離された構成としているが、１つの記憶手段として共通化しても良い。また、ディスプレイリストＩＤ記憶手段１４とデータ記憶手段１７とを内部レジスタで代用してもよい。
【００８９】
また、本実施の形態に係る画像処理装置１は、ＣＰＵ２によって表示制御手段１６へ表示パラメータを設定する構成としたが、ＣＰＵ２によるものに限らず、ディスプレイリストを用いて設定するよう構成されても良い。
【００９０】
さらに、本実施の形態に係る画像処理装置１において、データ記憶手段１７内をダブルバッファ構成としたが、シングルバッファ構成やトリプルバッファ以上の構成にしても良い。
【００９１】
なお、本実施の形態１に係る画像処理装置１において、ディスプレイリストＩＤ記憶手段１４は、保存する画面データの最大フレーム数をあらかじめ設定されるものとしたが、ＣＰＵ２から、その都度最大フレーム数を設定・変更できるように構成してもよい。
【００９２】
また、本実施の形態に係る画像処理装置１は、障害発生時、装置内部に保存したフレームＩＤ、ディスプレイリストＩＤを一度ＣＰＵ２に転送して、ＣＰＵ２側で保存後、画像処理装置１内のディスプレイリスト処理手段１３に再転送・再実行することで、障害発生時の画面を再現しているが、画像処理装置１からＣＰＵ２へフレームＩＤ、ディスプレイリストＩＤを転送せずに、装置内で直接ディスプレイリスト処理手段１３へ転送して障害発生時の画面を再描画しても良い。
【００９３】
さらに、本実施の形態に係る画像処理装置１は、障害発生時、装置内部に保存したフレームＩＤ、ディスプレイリストＩＤを一度ＣＰＵ２に転送して、ＣＰＵ２側で保存後、再度、画像処理装置１内のディスプレイリスト処理手段１３に再転送・再実行することで、障害発生時の画面を再描画しているが、ＣＰＵ２のソフトウェアによるエミュレーションで画面再生を行っても良い。
【００９４】
なお、本実施の形態１に係る画像処理装置１において、１つのディスプレイリストＩＤに含まれる描画コマンドを１つとして説明しているが、ディスプレイリストＩＤに含まれるコマンドは複数でも良い。例えば、ＤＩＤ＝０からＤＩＤ＝７まで一つのディスプレイリストＩＤとして設定することで、保存する画面データをさらに削減することができる。
【００９５】
また、本実施の形態１に係る画像処理装置１は、差分描画の使用時の例として１つの参照フレームを以降のフレームで使用しているが、定期的に差分描画用の参照フレームを複数使用するようにしても良い。
【００９６】
さらに、本実施の形態１に係る画像処理装置１は、フレームが変わる際に表示更新命令をその都度ＣＰＵ２から受信するが、これに限らず、表示更新命令をディスプレイリストに含めて、予めデータ記憶手段１７に転送しておき、ディスプレイリスト処理手段１３がＣＰＵ２を介さずに、自走で表示更新を行うよう構成されても良い。
【００９７】
なお、実施の形態１に係る画像処理装置１は、障害が発生した際に、外部機器から画面データ保存要求がＣＰＵ２送信され、これを受けたＣＰＵ２が画面データの保存命令をディスプレイリスト処理手段１３へ出力する構成としたが、これに限らず、外部機器から画面データ保存要求を直接ディスプレイリスト処理手段１３が受ける構成としてもよい。
【００９８】
以上説明したように、実施の形態１に係る画像処理装置１は、障害発生時に表示中の監視画面や機器制御画面等の画面データを保存する際、画面データそのものを保存するのではなく、画面データを生成するディスプレイリストＩＤを保存するので、画面データ蓄積のためのメモリ容量を低減することができる。
【符号の説明】
【００９９】
１  画像処理装置、１２  ホストインタフェース手段、１３  ディスプレイリスト処理手段、１４  ディスプレイリストＩＤ記憶手段、１５  描画処理手段、１６  表示制御手段、１７  データ記憶手段
【図１】
2014238630.tif 000003
【図２】
2014238630.tif 000004
【図３】
2014238630.tif 000005
【図４】
2014238630.tif 000006
【図５】
2014238630.tif 000007
【図６】
2014238630.tif 000008
【図７】
2014238630.tif 000009
【図８】
2014238630.tif 000010
【図９】
2014238630.tif 000011
【図１０】
2014238630.tif 000012
【図１１】
2014238630.tif 000013
【図１２】
2014238630.tif 000014
【図１３】
2014238630.tif 000015