説明

画像表示装置

【課題】ビデオメモリ8上に格納したディスプレイリストにビットエラーが発生した場合でも、表示画像の乱れを抑制し、誤動作及びハングアップを防止する画像表示装置を提供する。
【解決手段】ディスプレイリストをフレーム毎に保持するビデオメモリ8と、ビデオメモリ8が保持する1フレーム分のディスプレイリストから描画データを生成する描画処理手段5と、描画処理手段5が生成した描画データを表示画像として出力する表示制御手段6と、描画処理手段5が1フレーム分のディスプレイリストを入力した際に、ビットエラーを検出するエラー検出手段4とを備え、エラー検出手段4がビットエラーを検出した場合に、描画処理手段5は、ビットエラーが検出されたディスプレイリストに係るフレームの次のフレームの描画データを生成し、表示制御手段6は、1つ前のフレームの描画データに係る表示画像の出力を継続する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、画像表示装置に係る。
【背景技術】
【0002】
近年、家電、カーナビ、携帯端末、車載メータ等のGUI(Graphical User Interface)、デジタル掲示板、電子ポスター、並びに運行表示及び発車票等のデジタルサイネージ(電子看板)等、ユーザに対する情報表示の手段として、グラフィックス機能を搭載した画像表示装置が多用されている。これらの画像表示装置では、従来のCPUによるグラフィックス描画ではなく、CPUとは別にグラフィックス描画専用のハードウェア(グラフィックスエンジン)によるグラフィックス描画が行われている。グラフィックスエンジンがCPUの代わりに点/線/多角形の描画、塗りつぶし、BitBLT、フォント描画及びアニメーション描画等のグラフィックス描画を行うことでCPU負荷削減と描画性能の向上を目指している。
【0003】
グラフィックスエンジンによるグラフィックス描画処理において、ディスプレイリスト方式と呼ばれる手法が用いられる。ディスプレイリスト方式では、描画したいグラフィックス及びグラフィックス等を構成する部品をコマンド形式のリスト(ディスプレイリスト)にまとめ、グラフィックスエンジンに接続されたメモリ上に格納する。グラフィックスエンジンがそのディスプレイリスト内のコマンドを(CPUの介在なしに)直接読み出ししてコマンド(描画処理)を実行する。これによって、CPUとグラフィックスエンジンとの間のグラフィックス描画制御及びデータ転送を低減することを目指している(例えば、特許文献1)。
グラフィックス機能を搭載した画像表示装置には描画及び表示等の処理に必要なメモリ(グラフィックスメモリ又はビデオメモリ等)が搭載される。そのメモリには、グラフィックス専用の高速メモリ(GDDR等)、主記憶などに利用されるDRAM(SDR/DDR/DDR2/DDR3−SDRAM等)及びSRAM、並びに不揮発性のフラッシュメモリなどが使用されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−294991号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、これらのメモリ(ビデオメモリ)を使用する際、メモリセル自体の構造的な要因及びメモリ(ビデオメモリ)周辺の外的要因等に起因したメモリエラー(メモリビットエラー、ビットエラー)が発生する場合がある。ディスプレイリスト方式を用いた画像表示装置において、メモリ(ビデオメモリ)上に格納したディスプレイリストに、上記ビットエラーが発生するとディスプレイリスト内のコマンド及びパラメタ等がユーザの指定した値から変化して、グラフィックスエンジン(画像表示装置)内で誤動作が発生して、想定していないグラフィックス描画(描画処理)が実行された結果、表示画像が乱れ、グラフィックスエンジン又は画像表示装置等が誤動作又はハングアップしてしまうという課題があった。
【0006】
この発明は、上記のような課題を解決するためになされたもので、ビデオメモリ上に格納したディスプレイリストにビットエラーが発生した場合でも、表示画像の乱れを抑制し、誤動作及びハングアップを防止する画像表示装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
この発明に係る画像表示装置は、描画データを生成するコマンド群で構成されるディスプレイリストをフレーム毎に保持する保持手段と、保持手段が保持する1フレーム分のディスプレイリストから描画データを生成する描画処理手段と、描画処理手段が生成した描画データを表示画像として出力する表示制御手段と、描画処理手段が1フレーム分のディスプレイリストを入力した際に、保持手段がディスプレイリストを保持する間に当該ディスプレイリスト中に生じたビットエラーを検出するエラー検出手段とを備え、エラー検出手段がビットエラーを検出した場合に、描画処理手段は、ビットエラーが検出されたディスプレイリストに係るフレームの次のフレームの描画データを生成し、表示制御手段は、1つ前のフレームの描画データに係る表示画像の出力を継続することを特徴とするものである。
【発明の効果】
【0008】
この発明によれば、ビットエラーが検出され、当該ビットエラーが検出されたフレームについて処理を中止することとなり、ビデオメモリ上に格納したディスプレイリストにビットエラーが発生した場合でも、表示画像の乱れを抑制し、誤動作及びハングアップを防止する画像表示装置を提供することができる。
【図面の簡単な説明】
【0009】
【図1】この発明に係る画像表示装置の機能構成図である。
【図2】図1に記載の画像表示装置におけるメモリマップを示す図である。
【図3】図1に記載の画像表示装置におけるビデオメモリマッピング及びディスプレイリスト構造を示す図である。
【図4】図1に記載の画像表示装置において始めに実行される処理の流れを示すフローチャートである。
【図5】図1に記載の画像表示装置におけるエラーが検出されない場合の1フレーム分の処理の流れを示すフローチャートである。
【図6】図1に記載の画像表示装置における処理の流れを示すフローチャートである。
【図7】図1に記載の画像表示装置における処理の流れを示すフローチャートである。
【図8】図1に記載の画像表示装置における処理の流れを示すフローチャートである。
【図9】図1に記載の画像表示装置における動作を説明するための図である。
【図10】図1に記載の画像表示装置における画像表示動作の例を示す図である。
【図11】図1に記載の画像表示装置における画像表示動作の例を示す図である。
【図12】図1に記載の画像表示装置における画像表示動作の例を示す図である。
【図13】この発明の実施の形態2に係る画像表示装置における画像表示動作の例を示す図である。
【図14】この発明の実施の形態2に係る画像表示装置における動作を説明するための図である。
【図15】この発明の実施の形態2に係る画像表示装置における動作を説明するための図である。
【発明を実施するための形態】
【0010】
実施の形態1.
図1は、この発明に係る画像表示装置10の機能構成図である。この図1に示すように、この発明に係る画像表示装置10は、ディスプレイリスト方式によるグラフィックス描画及び表示の機能を持つ画像表示装置である。画像表示装置10は、上位装置である外部のホスト(例えば、CPU。以下の説明ではホストの例としてCPUを用いる場合を説明する)と接続し、外部の表示手段(図示せず)に対して表示画像を出力する。
【0011】
画像表示装置10は、具体的には、ホストインタフェース手段1、ディスプレイリスト制御手段2、ディスプレイリスト解析手段3、エラー検出手段4、描画処理手段5、表示制御手段6、メモリ制御手段7及びビデオメモリ(VRAM)8を備える。
【0012】
ホストインタフェース手段1は、CPU(ホスト)との間のバスインタフェースであり、画像表示装置10の外部から制御パラメタ及びディスプレイリストを入出力する。
【0013】
CPUのメモリマップ上には、画像表示装置10内のレジスタ空間およびビデオメモリ空間(VRAM空間)がマッピングされる。CPUは、ホストインタフェース手段1を介して、画像表示装置10内部のレジスタ空間およびビデオメモリ空間にアクセスし画像表示装置10を制御する。
【0014】
ホストインタフェース手段1は、CPUバス100を介して入力されたアドレスをデコードし、内部レジスタ空間へのアクセスならば、内部レジスタバス101−1を経由して、各手段内のレジスタに対する書込み又は読み出しを行う。ビデオメモリ空間へのアクセスならば、ビデオメモリバス101−2を経由して、メモリ制御手段7へメモリアクセス要求を行い、ビデオメモリ8に対する書込み又は読み出しを行う。
【0015】
ここで、図3を参照してディスプレイリストの構造を説明する。ディスプレイリストは、複数(図3の例ではL個)のフレーム毎の描画データを生成するコマンド群で構成されている。各フレームのコマンド群は、複数(図3の例では0〜M)のコマンドで構成される。複数のコマンドのうちコマンド0は各フレームのフレームヘッダである。コマンド0(フレームヘッダ)を除いたコマンド1からコマンドMは、各コマンドのコマンドヘッダと各コマンドの複数(図3の例ではN個)のパラメタとで構成される。
【0016】
コマンドヘッダには、コマンドの種類及びパラメタ数に関する情報が含まれる。例えば矩形領域の固定色塗りつぶしを行う場合には、コマンドの種類は「塗りつぶし」、パラメタ数は「3」、パラメタ1は矩形領域の左上座標(X1,Y1)、パラメタ2は右下座標(X2,Y2)、パラメタ3は塗りつぶす色となる。パラメタ数及びパラメタの内容は、実行するコマンドに応じて異なる。
【0017】
コマンドには、点、線、円、多角形の描画をはじめ、BitBLT転送(bit block transfer)、フィル(塗りつぶし)、テクスチャマップ、ベクターグラフィックス描画、フォント描画、ビットマップ描画及びアニメーション描画等一般的なグラフィックス描画で使用されるコマンドと、ディスプレイリストとして固有に定義したもの(例えば、終了コマンド及びジャンプコマンド等)とを含む。
数字L、M及びNは説明の便宜のためだけに用いられ、この発明の範囲を何ら限定するものではない。
【0018】
図1に戻り、ディスプレイリストは、最初CPUバス100を介して外部からホストインタフェース手段1に入力される。以後の説明では、ホストインタフェース手段1が外部からフレーム1〜L分のディスプレイリストを入力している場合の例を説明する。ホストインタフェース手段1は、入力したフレーム1〜L分のディスプレイリストを後述のビデオメモリ8のディスプレイリスト領域に書込む要求をメモリ制御手段7に出力する。
【0019】
ディスプレイリスト制御手段2は、内部レジスタバス101−1経由で設定されたパラメタ及び後述のディスプレイリスト解析手段3からのディスプレイリスト解析情報103−1に基づいて、メモリ制御手段7にディスプレイリストリード要求102−1を出力する。具体的には、各フレームのフレームヘッダ(コマンド0)又はコマンドヘッダ部分についてビットエラーが検出された場合、ディスプレイリストリード要求102−1は、再び同じフレームヘッダ又はコマンドヘッダの先頭から読み出す要求となる。各コマンドのパラメタ群にビットエラーが検出された場合、ディスプレイリストリード要求102−1は、エラーが検出されたフレームの次のフレームの先頭から読み出す要求となる。
【0020】
ディスプレイリスト制御手段2は、エラー検出手段4から、各コマンドのパラメタ群にビットエラーが検出された旨のエラー通知104−2を入力すると、ディスプレイリスト解析手段3に対してコマンド無効信号102−2を出力し、描画処理手段5に対してコマンド無効を通知し、表示制御手段6に対して表示画像の非更新を通知する。
【0021】
描画制御バス102−3は、描画処理手段5と接続される描画処理の制御用バスであり、ディスプレイリスト制御手段2は、描画処理手段5からこの描画制御バス102−3を介して描画完了信号を受け取る。また、ディスプレイリスト制御手段2は、描画処理手段5へこの描画制御バス102−3を介して描画バッファの切り替え信号及びコマンド無効等を通知する。
【0022】
表示制御バス102−4は、表示制御手段6と接続される表示制御用のバスであり、ディスプレイリスト制御手段2は、表示制御手段6からこの表示制御バス102−4を介して表示タイミングを得る。また、ディスプレイリスト制御手段2は、表示制御手段6へこの表示制御バス102−4を介して表示制御信号(表示画像の切り替え信号、描画データを格納しているビデオメモリ8内の先頭アドレス及びスクリーンサイズ(幅、高さ)等)を出力する。
【0023】
ディスプレイリスト解析手段3は、後述のエラー検出手段4からディスプレイリスト104−1を入力し、入力したディスプレイリスト104−1を内部レジスタバス101−1経由で設定されたパラメタに従って解析し、解析結果を描画パラメタおよび描画コマンド103−2として描画処理手段5に出力する。
【0024】
ディスプレイリスト解析手段3は、ディスプレイリスト解析情報103−1をディスプレイリスト制御手段2へ出力する。ディスプレイリスト解析情報103−1は、ディスプレイリストの解析結果であり、フレームヘッダ、コマンドヘッダ、コマンド種別及びコマンドパラメタ等を含む。
ディスプレイリスト解析手段3は、ディスプレイリスト制御手段2からコマンド無効信号102−2を入力すると、解析途中の状態を初期状態に戻す(初期化する)。
【0025】
エラー検出手段4は、メモリ制御手段7から入力されるエラーチェックビットおよびリードデータ107−2を用いて、メモリ制御手段7経由でビデオメモリ8から読み出したディスプレイリストについてビットエラーを検出する。
ここでビットエラーとは、後述のビデオメモリ8がディスプレイリストを保持する間に当該ディスプレイリスト中に生じるエラーを指す。
【0026】
ディスプレイリスト内にビットエラーが検出された場合、エラー検出手段4は、ディスプレイリスト制御手段2にエラー通知104−2を出力する。
エラー検出手段4は、ディスプレイリスト解析手段3にディスプレイリスト104−1を出力する。
【0027】
描画処理手段5は、内部レジスタバス101−1経由で設定されたパラメタと、ディスプレイリスト制御手段2(描画制御バス102−3)からの描画制御信号と、ディスプレイリスト解析手段3からの描画パラメタおよび描画コマンド103−2とを受けて、描画バス105−2を介したメモリ制御手段7へのビデオメモリ8に対するアクセス要求の出力と、描画データの生成と、当該描画データのメモリ制御手段7への入出力とを行う。
【0028】
具体的には、描画処理手段5は、ディスプレイリスト解析手段3から入力した描画パラメタおよび描画コマンド103−2を内部レジスタバス101−1経由で設定されたパラメタに従って処理することで描画データを生成する。描画処理手段5は、生成した描画データを、後述のビデオメモリ8に設けられた第1又は第2の描画領域に交互に書込む。この第1及び第2の描画領域の切り替えは描画制御バス102−3を介して入力した描画制御信号に含まれる描画バッファの切替に係る情報に基づいて行われる。
【0029】
描画処理手段5は、ディスプレイリスト制御手段2からコマンド無効の通知を受けると、その時点で行っている第1又は第2の描画領域への書込み処理を中止した後、次のフレームの描画データを生成し、生成した描画データをコマンド無効の通知を受けた時点で書込んでいた第1又は第2の描画領域へ書込む。
【0030】
表示制御手段6は、内部レジスタバス101−1経由で設定されたパラメタ及びディスプレイリスト制御手段2(表示制御バス102−4)からの表示制御信号を受けて、表示バス106−2を介して、リード要求をメモリ制御手段7に出力し、描画データをビデオメモリ8から読み出す。表示制御手段6は、読み出した描画データを表示タイミングに合わせて表示画像106−1として出力する。
【0031】
具体的には、表示制御手段6は、描画処理手段5が第1の描画領域に対して描画データの書込みを行っている間は、第2の描画領域に書込まれている描画データを読み込み、描画処理手段5が第2の描画領域に対して描画データの書込みを行っている間は、第1の描画領域に書込まれている描画データ読み込む。
【0032】
表示制御手段6は、ディスプレイリスト制御手段2から表示画像の非更新の通知を受けると、次の表示タイミングにおける表示領域の切り替えを行わない。
【0033】
メモリ制御手段7は、各手段からのメモリアクセス要求に基づいて、ビデオメモリ8への書込み及びビデオメモリ8からの読み出しを行う。ディスプレイリストの書込み中に、メモリ制御手段7は、ディスプレイリストから計算したエラーチェックビットをディスプレイリストと共にビデオメモリ8へ格納する。ディスプレイリストの読み出し中に、メモリ制御手段7は、ディスプレイリストと共にエラーチェックビットを読み出し、その両方をエラー検出手段4へ出力する。
【0034】
ビデオメモリ8は、描画データ及びディスプレイリストを格納するメモリである。また描画処理時のテンポラリ用メモリにも使用される。ビデオメモリ8は、メモリ制御手段7により、ライトアクセス、リードアクセスの制御が行われる。
【0035】
図3にビデオメモリ8内のマッピングを示す。この図3に示すように、ビデオメモリ8上には、ディスプレイリストが保持されるディスプレイリスト領域と、描画処理に必要なデータであるフォントデータ、ベクターデータ及びビットマップデータ等が格納される領域と、描画データが格納される第1及び第2の描画領域とが設けられる。
【0036】
次にこの実施の形態1に係る画像表示装置10の処理の流れを説明する。
図4は、この実施の形態に係る画像表示装置10において始めに実行される処理の流れを示すフローチャートである。
【0037】
描画処理及び表示等を制御するために、外部の上位装置もしくはホスト(CPU)がCPUバス100に接続される。そのCPUのメモリマップ(レジスタマップ)上に、各手段の動作を規定するレジスタ空間及びビデオメモリ空間等がマッピングされる。CPUからのアクセスは、ホストインタフェース手段1を介して行われる。ホストインタフェース手段1は、CPUより入力されたアドレスをデコードし、該当する(マッピングされた)手段内のレジスタ空間又はビデオメモリ空間に対する書込み又は読み出しを行う。
【0038】
CPUは、ディスプレイリスト及びディスプレイリストを格納するビデオメモリ空間のアドレスをCPUバス100を介してホストインタフェース手段1に出力する。ホストインタフェース手段1は、入力したアドレスのデコード結果から、ビデオメモリ空間へのアクセスと判断し、ビデオメモリバス101−2を経由して、ビデオメモリ8にディスプレイリストを格納する(ステップST110)。ホストインタフェース手段1は、その他にグラフィックス描画に必要なデータ(フォントデータ、ベクターデータ及びビットマップデータ等)を同様にビデオメモリ8に格納する。
【0039】
メモリ制御手段7は、ディスプレイリストをビデオメモリ8に格納する際にエラーチェックビットを付加する。(ステップST111)。
【0040】
CPUは、レジスタ空間に割り当てたディスプレイリスト制御手段2に対してディスプレイリスト実行の開始命令を出力する(ディスプレイリスト実行命令レジスタに起動設定を行う。ディスプレイリスト起動時のみCPUから行う)(ステップST112)。
【0041】
ホストインタフェース手段1は、描画及び表示等に使用するバッファ領域をビデオメモリ8に割り当てる(ステップST113)。
【0042】
CPUバス100上のメモリマップイメージの一例を図2に、ディスプレイリストの構造の一例を図3に示す。図2では、ディスプレイリストをビデオメモリ空間のdisplay list base_addressを先頭アドレスとして格納している。
【0043】
図5は、エラーが検出されない場合のこの実施の形態1に係る画像表示装置10における1フレーム分の処理の流れを示すフローチャートである。
【0044】
エラー検出手段4は、1フレーム分のディスプレイリストを読み出す(ステップST120)。
具体的には、ディスプレイリスト制御手段2は、ディスプレイリスト実行開始命令を受けて、メモリ制御手段7にディスプレイリストリード要求102−1を出力する。メモリ制御手段7は、ビデオメモリ空間のdisplay list base_addressからディスプレイリストを読み出し、エラー検出手段4へエラーチェックビット及びリードデータ(ディスプレイリスト)107−2を出力する。
【0045】
エラー検出手段4は、エラーチェックビット及びリードデータ(ディスプレイリスト)107−2からビット単位でビットエラーを検出する(ステップST121)。ここではビットエラーが検出されない場合を説明する。エラー検出手段4は、ディスプレイリスト解析手段3に対してリードデータ(ディスプレイリスト104−1)を出力する。
【0046】
ディスプレイリスト解析手段3は、エラー検出手段4から入力したリードデータ(ディスプレイリスト104−1)を解析する(ステップST122)。
ディスプレイリスト解析手段3は、解析された結果に基づき、描画処理手段5に対して描画パラメタの設定及び描画実行命令の通知を行う(ステップST123)。
【0047】
描画パラメタとは、例えば、ビデオメモリ空間の描画バッファ先頭アドレス、スクリーンサイズ(幅、高さ)、カラーフォーマット、シザー領域、描画位置、形状情報(点、線、多角形、円等)、属性情報(色、グラデーション有無)及びアルファ値等が含まれるパラメタである。
【0048】
描画処理手段5は、設定された描画パラメタに従い描画データを生成する(ステップST124)。描画処理手段5は、生成した描画データを描画バス105−2を介してメモリ制御手段7に対して出力する。メモリ制御手段7は、入力した描画データをビデオメモリ8内の第1又は第2の描画領域に交互に書込む(ステップST125)。
【0049】
表示制御手段6は、CPUからホストインタフェース手段1及び内部レジスタバス101−1を経由して入力した情報から表示パラメタを設定する。表示制御手段6は、設定した表示パラメタを元に表示タイミングを生成する(ステップST126)。
【0050】
具体的に、表示制御手段6は、例えばXGA(1024×768@60Hz)表示の場合、ドットクロックを65MHzとすると、水平トータル画素数:1344、垂直トータルライン数:806、有効水平画素数1024、水平ブランク画素数320、垂直有効ライン数:768、及び垂直ブランクライン数:38等の情報から表示パラメタを設定し、表示タイミングを生成する。
【0051】
表示制御手段6は、表示制御バス102−4を介して渡されるビデオメモリ8の表示アドレス及びスクリーンサイズ(幅及び高さ)から、表示バス106−2経由で、メモリ制御手段7にメモリリード要求を出力し、該当する描画データをスクリーンサイズ分読み出し、生成した表示タイミングに同期させて、表示画像106−1として出力する(ステップST127)。
【0052】
図2を用いて説明すると、描画処理手段5が第1の描画領域(ビデオメモリアドレス:A_buffer_base_address)に書込み中は、表示制御手段6は、第2の描画領域(ビデオメモリアドレス:B_buffer_base_address)から描画データを読み出す。描画処理手段5が第2の描画領域に書込み中は、表示制御手段6は、第1の描画領域から描画データを読み出す。
【0053】
これらの第1及び第2の描画領域の切り替えは、ディスプレイリスト制御手段2がディスプレイリスト解析手段3から出力されるディスプレイリスト解析情報103−1のディスプレイリストの実行状況(どのフレームを処理しているか)と、描画処理手段5から通知されるコマンド処理実行完了と、表示制御手段6から入力される表示タイミング(垂直同期信号:Vsync)とに基づいて行う。
【0054】
図3に示すように、ディスプレイリストは、1フレーム分の描画処理をコマンド0〜Mで定義している。よって、コマンド0〜Mの描画処理のすべてが完了すると1フレーム単位の描画処理の完了となる。
【0055】
現在、描画処理手段5が第1の描画領域に書込んでいる場合、画像表示装置10は、このフレーム単位の描画処理の完了後の次の表示タイミング垂直同期信号(Vsync)のタイミングで、描画処理手段5が描画データを書込む領域を第1の描画領域から第2の描画領域(表示制御手段6による読み出しは第2の描画領域から第1の描画領域)に変更する。これをフレーム0〜Lまで繰り返し実行することで、描画途中の画像を表示させることなくLフレーム分のグラフィックス表示(アニメーション表示)を行うことができる。仮に描画処理時間が1フレーム時間で完了しない場合は、描画するフレームレートが低下することになる。
【0056】
図6から図8は、この実施の形態に係る画像表示装置10における画像表示の処理の流れを示すフローチャートである。
CPU(上位装置)は、ホストインタフェース手段1を介して、ディスプレイリスト制御手段2に対してビデオメモリアドレスとしてディスプレイリストの先頭アドレスを設定する(ステップST201)。CPUは、ホストインタフェース手段1を介してディスプレイリストを起動する(ステップST202)。
【0057】
ディスプレイリスト制御手段2は、メモリ制御手段7にディスプレイリストリード要求102−1を出力する(ステップST203)。
【0058】
メモリ制御手段7は、ビデオメモリ8からディスプレイリストを読み出し、読み出したディスプレイリストをエラー検出手段4に出力する。ここでは、メモリ制御手段7は、各フレームの先頭にあるコマンド0(フレームヘッダ:コマンド数及びサイズに関する情報を含む)を読み出す(ステップST204)。
【0059】
エラー検出手段4は、入力したディスプレイリストのビットエラーを検出する(ステップST205)。ビットエラーが検出された場合(ステップST205;YES)、エラー検出手段4は、ディスプレイリスト制御手段2にエラー通知104−2を出力する(ステップST206)。エラー通知104−2を入力したディスプレイリスト制御手段2は、再度同じビデオメモリアドレスのディスプレイリストリード要求102−1を出力する(ステップST203)。
【0060】
ディスプレイリスト(ここでは、フレームヘッダ)が正常に読み出され、ビットエラーが検出されない場合(ステップST205;NO)、エラー検出手段4は、受信したディスプレイリスト104−1をディスプレイリスト解析手段3に出力する。ディスプレイリスト解析手段3は、入力したディスプレイリストから、コマンド種別(ここでは、フレームヘッダ)、このフレームで処理するコマンド数、及びサイズを解析する(ステップST207)。
【0061】
ディスプレイリスト解析手段3は、解析した結果をディスプレイリスト解析情報103−1としてディスプレイリスト制御手段2へ出力する。ディスプレイリスト解析情報103−1によりディスプレイリスト制御手段2は、ディスプレイリストの実行状況を把握する。
ディスプレイリスト制御手段2は、内部のコマンド数カウンタjを0にする(ステップST208)。
【0062】
ディスプレイリスト制御手段2は、次の読み出しビデオメモリアドレスとして次のコマンドの先頭アドレスを設定する(ステップST209)。
ディスプレイリスト制御手段2は、ディスプレイリスト(ここでは、コマンドjのコマンドヘッダ)のディスプレイリストリード要求102−1を出力する(ステップST210)。
【0063】
メモリ制御手段7は、ビデオメモリ8からディスプレイリストを読み出し、読み出したディスプレイリストをエラー検出手段4に出力する。ここでは、メモリ制御手段7は、コマンドjのコマンドヘッダ(コマンド種、パラメタ数及びサイズに関する情報を含む)を読み出す(ステップST211)。
【0064】
エラー検出手段4は、入力したディスプレイリストのビットエラーを検出する(ステップST212)。ビットエラーが検出された場合(ステップST212;YES)、エラー検出手段4は、ディスプレイリスト制御手段2にエラー通知104−2を出力する(ステップST213)。エラー通知104−2を入力したディスプレイリスト制御手段2は、再度同じビデオメモリアドレスのディスプレイリストリード要求102−1を出力する(ステップST210)。
【0065】
コマンドjのコマンドヘッダが正常に読み出され、ビットエラーが検出されない場合(ステップST212;NO)、エラー検出手段4は、受信したディスプレイリスト(コマンドヘッダ)をディスプレイリスト解析手段3に出力する。ディスプレイリスト解析手段3では、入力したディスプレイリストを解析して、コマンド種別が終了コマンドかどうか判定する(ステップST214)。コマンド種別が終了コマンドの場合(ステップST214;YES)は、処理を終了する。
【0066】
コマンド種別が終了コマンドでない場合(ステップST214;NO)、コマンド種別が(終了コマンドでなく)コマンドヘッダであることから、ディスプレイリスト解析手段3は、入力したディスプレイリストから、このコマンドで実行する描画コマンド種別、パラメタ数及びサイズを解析する(ステップST215)。ディスプレイリスト解析手段3は、解析結果を保持するとともに、ディスプレイリスト解析情報103−1としてディスプレイリスト制御手段2へ出力する。
【0067】
ディスプレイリスト解析手段3は、内部のパラメタ受信数カウンタiを0とする(ステップST216)。
【0068】
ディスプレイリスト制御手段2は、ディスプレイリスト解析情報103−1より、コマンド種別がコマンドjのコマンドヘッダであることを検知し、現在のビデオメモリアドレスに1ワード分を加算する(ステップST217)。ディスプレイリスト制御手段2は、1ワード分加算されたビデオメモリアドレスへのディスプレイリストリード要求102−1を出力する(ステップST218)。
【0069】
メモリ制御手段7は、ビデオメモリ8からディスプレイリスト(ここでは、コマンドパラメタ(i+1))を読み出す(ステップST219)。
【0070】
エラー検出手段4は、入力したディスプレイリスト(ここでは、コマンドパラメタ(i+1))のビットエラーを検出する(ステップST220)。ビットエラーが検出されない場合(ステップST220;NO)、エラー検出手段4は、入力したディスプレイリスト(コマンドパラメタ(i+1))をディスプレイリスト解析手段3に出力する。ディスプレイリスト解析手段3では、コマンドヘッダをすでに受信しているため、実行するコマンド種別とそれ以降入力されるコマンドがコマンドパラメタ1〜Nであること、またそのパラメタの数Nを認識している。ビットエラーが検出されない場合、ディスプレイリスト解析手段3は、コマンドパラメタ(i+1)を描画処理手段5に出力し、描画処理手段5は、入力したコマンドパラメタを設定する(ステップST221)。
【0071】
描画処理手段5は、パラメタ受信数カウンタiに1を加える(ステップST222)。描画処理手段5は、保持するパラメタ受信数カウンタがコマンド1のコマンドヘッダ入力時に設定したパラメタ数N未満であるか否か判断する(ステップST223)。保持するパラメタ受信数カウンタiがコマンドヘッダ入力時に設定したパラメタ数N未満である場合(ステップST223;YES)、ステップST217からステップST223までが繰り返される。
【0072】
保持するパラメタ受信数カウンタiがコマンドヘッダ入力時に設定したパラメタ数N以上である場合(ステップST223;NO)、ディスプレイリスト解析手段3は、描画処理手段5に描画コマンドを出力する。描画処理手段5は、設定されたパラメタ及び描画コマンドに従い、描画処理を実行する(ステップST224)。
【0073】
ディスプレイリスト制御手段2は、保持するコマンド数カウンタjに1を加える(ステップST225)。ディスプレイリスト制御手段2は、保持するコマンド数カウンタjがコマンド数M未満であるか否か判断する(ステップST226)。コマンド数カウンタjがコマンド数M未満である場合(ステップST226;YES)、ステップST209からステップST226の処理を繰り返す。
【0074】
コマンド数カウンタjがコマンド数M以上である場合(ステップST226;NO)、描画処理手段5は、ディスプレイリスト制御手段2へ描画完了通知を出力する(ステップST227)。
【0075】
ディスプレイリスト制御手段2は描画処理手段5からの描画完了通知を受けて、次に読み出すビデオメモリアドレスとして次のコマンドの先頭アドレスを設定する(ステップST228)。
その後処理がステップST203に戻り、次のフレームについて同様の処理が行われる。
【0076】
エラー検出手段4がコマンドパラメタ(i+1)を受信した時にビットエラーを検出した場合(ステップST220;YES)、エラー検出手段4は、ディスプレイリスト制御手段2にエラー通知104−2を出力する。ディスプレイリスト制御手段2は、ディスプレイリスト解析手段3及び描画処理手段5に対してコマンド無効を通知し、表示制御手段6に対して表示画像の非更新を通知する(ステップST229)。
【0077】
コマンド無効の通知を受けると、ディスプレイリスト解析手段3は、解析途中の状態を初期状態に戻す(初期化する)(ステップST230)。
【0078】
コマンド無効の通知を受けると、描画処理手段5は、その時点で行っている第1又は第2の描画領域への書込みを中止する(ステップST231)。これによって、エラーが発生したディスプレイリストの実行が中止され、想定していない描画処理の実行を抑止できるという効果がある。
【0079】
表示画像の非更新の通知を受けると、表示制御手段6は次の表示タイミングが経過しても表示領域の切り替えを行わず、1フレーム前の表示画像の表示を継続する(ステップST232)。これによって、描画処理手段5が画像データの書込みを中止した場合でも1フレーム前の表示画像を引き続き表示し続けることができるという効果がある。
【0080】
ディスプレイリスト制御手段2は、エラーが検出されたフレーム内の残っているコマンドを飛ばし、次に読み出すビデオメモリアドレスとして次のフレームの先頭アドレスを設定する(ステップST233)。
その後処理がステップST203に戻り、次のフレームについて同様の処理が行われる。
【0081】
これによって、ビットエラーが発生したフレームの残りのディスプレイリストを読み出さないために、想定していない描画処理の実行を抑止し、表示画像の乱れを抑制し、誤動作及びハングアップを防止することができるという効果がある。
【0082】
次に、図9を用いて、バッファ切り替えを説明する。ビデオメモリ8に対する読み出し及びコマンド処理実行が2フレーム目のコマンド0まで正常に実行されている。
【0083】
2フレーム目のコマンド1のビデオメモリ読み出し時にエラーが検出されたため、2フレーム目のコマンド2以降のコマンド読み出しおよびコマンド処理をスキップし、3フレーム目の先頭のビデオメモリアドレス(フレーム3のコマンド0)からビデオメモリ読み出し及びコマンド処理を開始する。
【0084】
2フレーム目では、描画処理手段5が第2の描画領域に対して描画データを書込み、表示制御手段6が第1の描画領域に既に書込まれている描画データを読み出している。2フレーム目の描画処理の途中でエラーが検出されたため、次の3フレーム目の処理において第1及び第2の描画領域の交代を行わず、描画処理手段5は、3フレーム目の描画データを第2の描画領域に書込み、表示制御手段6は、第1の描画領域に書込まれている前フレーム(1フレーム目)の描画データに係る表示画像の表示を継続する。
【0085】
3フレーム目の処理は、ビットエラーが検出されなかったため4フレーム目の描画処理前に、第1及び第2の描画領域を切り替える。以降、処理を継続する。
【0086】
ビットエラーが検出されなかった場合のディスプレイリストの動作及び表示動作の例を図10及び図11にそれぞれ示す。また、ビットエラーが検出された場合の表示動作を図12に示す。これら図10−12に示すように、ビットエラーが検出された時には、エラーが検出されたフレーム2においてコマンドの実行が停止され、1つ前のフレーム1の表示が継続される。
【0087】
上記説明では、ディスプレイリスト及びコマンドをビデオメモリ8上の連続領域に配置している場合について説明したが、どちらも次のコマンドへのアドレス(ジャンプ命令)等を追加することで不連続領域に配置しても良い。
【0088】
また、上記説明では、メモリ制御手段7がエラー検出用にエラーチェックビットを付加し、ビデオメモリ読み出し時に、エラー検出手段4は、エラーチェックビットを用いてエラー検出を行う場合について説明したが、メモリ制御手段7がエラー検出用にECC(Error Correction Code)等を付加し、エラー検出手段4は、エラーとなるビット数が訂正可能なビット数の場合にエラー訂正を行ってもよい。エラー訂正が可能である場合、エラー検出手段4は、ディスプレイリスト制御手段2に対するエラー通知104−2を出力せず、その後、ビットエラーを検出しなかった場合と同様の処理が行われても良い。
【0089】
また、上記説明では、ディスプレイリスト内のコマンドパラメタの読み出し時にエラー検出された場合、ディスプレイリスト制御手段2は、以降のコマンドパラメタを読み飛ばし、次のフレームの先頭アドレスのリード要求を出力する場合について説明したが、ディスプレイリスト制御手段2は、エラー検出されたコマンドパラメタを読み飛ばさずに、再度同じビデオメモリアドレスへのリード要求(最リード要求)を行ってもよい。
【0090】
その場合、ディスプレイリスト制御手段2は、ビットエラーを検出した回数をカウントし、再リード要求時にも繰り返しビットエラーが発生する場合カウント値が所定の閾値を超えた段階で、以降のコマンドパラメタを読み飛ばし、次のフレームの先頭アドレスのリード要求を出力しても良い。
【0091】
また、上記説明では、コマンドパラメタの読み出し時にエラーが検出された場合、ディスプレイリスト制御手段2は、次のフレームの先頭アドレスまでディスプレイリストの読み出しをスキップする場合について説明したが、ディスプレイリスト制御手段2は、コマンド種別に応じて、エラー検出されたコマンドのパラメタ群のみ(同一フレームの次コマンドまで)、ディスプレイリストの読み出しをスキップするように制御しても良い。
【0092】
また、上記説明では、画像サイズをXGAとして説明しているが、画像サイズは、表示するディスプレイに応じて任意に変更しても良い。更に、描画する画像サイズと表示する画像サイズとは、異なっても良い。
【0093】
以上より、実施の形態1に係る画像表示装置10は、描画データを生成するコマンド群で構成されるディスプレイリストをフレーム毎に保持するビデオメモリ8と、ビデオメモリ8が保持する1フレーム分のディスプレイリストから描画データを生成する描画処理手段5と、描画処理手段5が生成した描画データを表示画像として出力する表示制御手段6と、描画処理手段5が1フレーム分のディスプレイリストを入力した際に、ビデオメモリ8がディスプレイリストを保持する間に当該ディスプレイリスト中に生じたビットエラーを検出するエラー検出手段4とを備え、エラー検出手段4がビットエラーを検出した場合に、描画処理手段5は、ビットエラーが検出されたディスプレイリストに係るフレームの次のフレームの描画データを生成し、表示制御手段6は、1つ前のフレームの描画データに係る表示画像の出力を継続するように構成した。このため、ビットエラーが検出されたフレームについて処理が中止されることとなり、ビデオメモリ8上に格納したディスプレイリストにビットエラーが発生した場合でも、表示画像の乱れを抑制し、誤動作及びハングアップを防止する画像表示装置を提供することができる。
【0094】
また、実施の形態1に係る画像表示装置10は、描画データを生成するコマンド群で構成されるディスプレイリストをフレーム毎に保持するためのディスプレイリスト領域と、描画データをフレーム毎に保持するための第1及び第2の描画領域とで構成されるビデオメモリ8と、ビデオメモリ8が保持する1フレーム分のディスプレイリストから描画データを生成し、生成した描画データを第1又は第2の描画領域に交互に書込む描画処理手段5と、描画処理手段5が第1又は第2の描画領域への書込みを行っている間は、第2又は第1の描画領域に書込まれている描画データを読み出して表示画像として出力する表示制御手段6と、描画処理手段5が1フレーム分のディスプレイリストを入力した際に、ビデオメモリ8がディスプレイリストを保持する間に当該ディスプレイリスト中に生じたビットエラーを検出するエラー検出手段4とを備え、エラー検出手段4がビットエラーを検出した場合に、描画処理手段5は、ビットエラーが検出されたディスプレイリストに係るフレームの次のフレームの描画データを第1又は第2の描画領域に書込み、表示制御手段6は、第2又は第1の描画領域に書込まれている1つ前のフレームの描画データの読み出しと表示画像の出力とを継続するように構成した。このため、ビットエラーが検出されたフレームについて処理が中止されることとなり、ビデオメモリ8上に格納したディスプレイリストにビットエラーが発生した場合でも、表示画像の乱れを抑制し、誤動作及びハングアップを防止する画像表示装置を提供することができる。
【0095】
実施の形態2.
次に、この発明の実施の形態2について説明する。
上記実施の形態1では、1フレームにつき1つのウィンドウ描画処理を行い、エラー検出時には全画面に対して描画処理のスキップと表示画像の非更新(バッファ切り替えを行わない制御)を実行したが、この実施の形態2では、エラーが検出されたウィンドウの描画コマンドのみ描画処理のスキップ及び表示画像の非更新(バッファ切り替えを行わない制御)等を行う。
図1は、この実施の形態2に係る画像表示装置10の機能構成図である。以下、上記実施の形態1との相異点を中心に説明する。
【0096】
エラー検出手段4は、ビットエラーを複数の表示領域毎に検出する。
描画処理手段5は、描画データを複数の表示領域毎に生成し、生成した各表示領域の描画データを当該各表示領域の第1又は第2の描画領域に書込む。エラー検出手段4がビットエラーを検出した場合に、描画処理手段5は、ビットエラーが検出された各表示領域について、次のフレームの描画データを各表示領域の第1又は第2の描画領域に書込む。
【0097】
表示制御手段6は、描画処理手段5が各表示領域の第1の描画領域への書込みを行っている間は、各表示領域の第2の描画領域に書込まれている描画データを読み出す。表示制御手段6は、描画処理手段5が各表示領域の第2の描画領域への書込みを行っている間は、各表示領域の第1の描画領域に書込まれている描画データを読み出す。表示制御手段6は、読み出した描画データを各表示領域の表示画像として出力する。ビットエラーが検出された場合に、表示制御手段6は、ビットエラーが検出された各表示領域について、第2又は第1の描画領域に書込まれている1つ前のフレームの描画データの読み出しと表示画像の出力とを継続する。
【0098】
ビデオメモリ8は、第1及び第2の描画領域を複数の表示領域毎に備える。その他、各構成要素が備える機能は実施の形態1で説明した機能と同様である。
【0099】
図13は、画像表示装置10のエラー検出時の表示動作の例を示す図である。この図13に示すように、エラー発生時にエラーが発生したウィンドウ1に係るコマンドのみ実行がスキップされる。この処理は、ディスプレイリストの各コマンドにウィンドウ番号の属性情報を含ませて、どのウィンドウへのコマンドかを識別することで実現可能である。
【0100】
図14は、画像表示装置10のビデオメモリ内のマッピング及びディスプレイリストの構造を示す図である。この図に示すようにビデオメモリ8は、第1及び第2の描画領域を複数の表示領域毎に備える。
【0101】
図15は、画像表示装置10におけるバッファ切り替えを説明するための図である。この図15に示すようにビットエラーが検出されたウィンドウ1のコマンドのパラメタのみビデオメモリ8からの読み出しがスキップされる。フレーム3では、ウィンドウ1に係る第1及び第2の描画領域の内容の変更がなされない。
【0102】
以上より、実施の形態2に係る画像表示装置10は、ビデオメモリ8は、第1及び第2の描画領域を複数の表示領域毎に備え、描画処理手段5は、描画データを複数の表示領域毎に生成し、生成した各表示領域の描画データを当該各表示領域の第1又は第2の描画領域に書込み、表示制御手段6は、描画処理手段5が各表示領域の第1又は第2の描画領域への書込みを行っている間は、各表示領域の第2又は第1の描画領域に書込まれている描画データを読み出して各表示領域の表示画像として出力し、エラー検出手段4は、ビットエラーを複数の表示領域毎に検出し、エラー検出手段4がビットエラーを検出した場合に、描画処理手段5は、ビットエラーが検出された各表示領域について、次のフレームの描画データを各表示領域の第1又は第2の描画領域に書込み、表示制御手段6は、ビットエラーが検出された各表示領域について、第2又は第1の描画領域に書込まれている1つ前のフレームの描画データの読み出しと表示画像の出力とを継続するように構成した。このため、上記実施の形態1で説明した効果に加えて、画像処理のスキップ及び表示画像の非更新を必要な分だけに抑制する画像表示装置を提供することができる。
【0103】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【0104】
1 ホストインタフェース手段、2 ディスプレイリスト制御手段、3 ディスプレイリスト解析手段、4 エラー検出手段、5 描画処理手段、6 表示制御手段、7 メモリ制御手段、8 ビデオメモリ(保持手段)、10 画像表示装置。

【特許請求の範囲】
【請求項1】
描画データを生成するコマンド群で構成されるディスプレイリストをフレーム毎に保持する保持手段と、
前記保持手段が保持する1フレーム分のディスプレイリストから描画データを生成する描画処理手段と、
前記描画処理手段が生成した描画データを表示画像として出力する表示制御手段と、
前記描画処理手段が前記1フレーム分のディスプレイリストを入力した際に、前記保持手段が前記ディスプレイリストを保持する間に当該ディスプレイリスト中に生じたビットエラーを検出するエラー検出手段とを備え、
前記エラー検出手段が前記ビットエラーを検出した場合に、
前記描画処理手段は、前記ビットエラーが検出されたディスプレイリストに係るフレームの次のフレームの描画データを生成し、
前記表示制御手段は、1つ前のフレームの描画データに係る表示画像の出力を継続する
ことを特徴とする画像表示装置。
【請求項2】
描画データを生成するコマンド群で構成されるディスプレイリストをフレーム毎に保持するためのディスプレイリスト領域と、前記描画データをフレーム毎に保持するための第1及び第2の描画領域とで構成される保持手段と、
前記保持手段が保持する1フレーム分のディスプレイリストから描画データを生成し、生成した描画データを前記第1又は第2の描画領域に交互に書込む描画処理手段と、
前記描画処理手段が前記第1又は第2の描画領域への書込みを行っている間は、前記第2又は第1の描画領域に書込まれている描画データを読み出して表示画像として出力する表示制御手段と、
前記描画処理手段が前記1フレーム分のディスプレイリストを入力した際に、前記保持手段が前記ディスプレイリストを保持する間に当該ディスプレイリスト中に生じたビットエラーを検出するエラー検出手段とを備え、
前記エラー検出手段が前記ビットエラーを検出した場合に、
前記描画処理手段は、前記ビットエラーが検出されたディスプレイリストに係るフレームの次のフレームの描画データを第1又は第2の描画領域に書込み、
前記表示制御手段は、前記第2又は第1の描画領域に書込まれている1つ前のフレームの描画データの読み出しと表示画像の出力とを継続する
ことを特徴とする画像表示装置。
【請求項3】
前記保持手段は、前記第1及び第2の描画領域を複数の表示領域毎に備え、
前記描画処理手段は、前記描画データを前記複数の表示領域毎に生成し、生成した各表示領域の描画データを当該各表示領域の前記第1又は第2の描画領域に書込み、
前記表示制御手段は、前記描画処理手段が前記各表示領域の第1又は第2の描画領域への書込みを行っている間は、前記各表示領域の第2又は第1の描画領域に書込まれている描画データを読み出して前記各表示領域の表示画像として出力し、
前記エラー検出手段は、前記ビットエラーを前記複数の表示領域毎に検出し、
前記エラー検出手段が前記ビットエラーを検出した場合に、
前記描画処理手段は、前記ビットエラーが検出された各表示領域について、前記次のフレームの描画データを前記各表示領域の第1又は第2の描画領域に書込み、
前記表示制御手段は、前記ビットエラーが検出された各表示領域について、前記第2又は第1の描画領域に書込まれている1つ前のフレームの描画データの読み出しと表示画像の出力とを継続する
ことを特徴とする請求項2記載の画像表示装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−233965(P2012−233965A)
【公開日】平成24年11月29日(2012.11.29)
【国際特許分類】
【出願番号】特願2011−101006(P2011−101006)
【出願日】平成23年4月28日(2011.4.28)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】