(57)【要約】  本発明の一態様としての画像生成装置は、複数のフレームバッファと、書き込みバッファを複数のフレームバッファから選択する選択部と、１フレームの単位領域毎に最新の画像が保持されているフレームバッファの識別情報を記憶する記憶部と、画像データを描画して書き込みバッファに書き込み、書き込み領域を包含する更新領域を算出する描画部と、前記書き込み領域の最新画像が前記書き込みバッファに保持されていることを示すように前記記憶部を更新する更新部と、前記更新領域のうち最新でない画像が含まれる領域の最新画像データを、前記領域の最新画像を記憶した他のフレームバッファから読み出し、読み出した最新画像データを前記書き込みバッファに書き込む修正部と、前記書き込みバッファから前記更新領域の画像データをすべて読み出して更新画像データを生成する画像生成部と、前記更新画像データを前記表示端末に送信する通信部と、を備える。
2012035632.tif 000002
【特許請求の範囲】
【請求項１】
画像を表示する表示端末と通信する画像生成装置であって、
それぞれ１フレームの画像データを記憶可能な複数のフレームバッファと、
書き込みを行うべきフレームバッファである書き込みバッファを前記複数のフレームバッファから選択する選択部と、
前記１フレームの単位領域毎に最新の画像が保持されているフレームバッファの識別情報を記憶する記憶部と、
アプリケーションからの描画命令に従って画像データを描画して前記書き込みバッファに書き込み、前記画像データの書き込み領域を包含する更新領域を算出する描画部と、
前記書き込み領域の最新画像が前記書き込みバッファに保持されていることを示すように前記記憶部を更新する更新部と、
前記更新領域のうち最新でない画像が含まれる領域の最新画像データを、前記複数のフレームバッファのうち前記領域の最新画像を記憶した他のフレームバッファから読み出し、読み出した最新画像データを前記書き込みバッファに書き込む修正部と、
前記書き込みバッファから前記更新領域の画像データをすべて読み出して更新画像データを生成する画像生成部と、
前記更新画像データを前記表示端末に送信する通信部と、
を備えた画像生成装置。
【請求項２】
前記描画部は、前記書き込み領域と前記更新領域が一致するか否かを判定し、一致するときは前記修正部の処理を省略することを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記描画部は、前記描画命令の種別を判定し、前記描画命令が、所定の第1の描画命令であるときは前記書き込み領域と前記更新領域が一致しないと判定し、前記所定の第1の描画命令と異なる第２の描画命令のときは前記書き込み領域と前記更新領域が一致すると判定することを特徴とする請求項２に記載の画像生成装置。
【請求項４】
前記修正部、前記描画部、前記更新部の順に処理が行われ、
前記更新部は、前記更新領域内の最新画像がすべて前記書き込みバッファに保持されていることを示すように前記記憶部を更新することを特徴とする請求項１に記載の画像生成装置。
【請求項５】
前記修正部は、前記更新領域から前記書き込み領域を除いた領域から、前記最新でない画像が含まれる領域を特定し、特定した領域の最新画像データを前記他のフレームバッファから読み出すことを特徴とする請求項１に記載の画像生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して接続された表示端末で表示する画像データを生成する画像生成装置に関する。
【背景技術】
【０００２】
最低限の入出力インタフェースを有する表示端末をユーザ側に配し、複雑な演算処理は遠隔地に位置するサーバ装置上で実行するコンピューティングシステムがある。サーバ装置では、表示端末からの入力情報に従い、画面情報を生成して表示端末に転送する。このようなシステムでは、特に大画面を扱う場合、サーバ装置におけるボトルネックは描画処理と画面転送処理であるため、描画と転送を効率的に並列処理することにより、画面転送性能が上がり、ユーザビリティが向上する。描画と転送を並列処理するためには、フレームバッファを２つのフレームバッファの２つに分けて、ダブルバッファと呼ばれる手法を用いる必要がある。【０００３】
非特許文献１に示される一般的なダブルバッファでは、２つのフレームバッファとしての描画用フレームバッファおよび転送用フレームバッファを用意し、描画用フレームバッファに対して画像データの描画が完了してから、描画データを転送用フレームバッファにコピーし、転送用フレームバッファから転送を行う。しかし、この手法では、同じ画像データが両方のフレームバッファに書き込まれるため、特に大画面を扱う場合、フレームバッファ間のコピー処理負荷が高いという問題がある。また、コピー中は描画処理および転送処理がブロックされるという問題がある。【０００４】
一方、特許文献１は、画像データの書き込みを1回に抑えるために、画面の部分領域毎にダブルバッファを行う。より詳細には、画面の部分領域毎に独立して読み出しフレームバッファを決定し、決定したフレームバッファから画像データの読み出しおよび転送を行う。一方、画像データの書き込みは、該当の読み出し期間において読み出しの行われていない方のフレームバッファに行う。これによりフレームバッファ間のコピーを行わずに済むようにしている。しかし、この画像生成装置では、専用のハードウェアを必要とする問題がある。【０００５】
そこで、描画用フレームバッファおよび転送用フレームバッファを交互に切り換えつつ、ソフトウェアで領域毎のダブルバッファを行うことを考える。この場合、描画用フレームバッファに画像データを書き込み、描画用および転送用フレームバッファの切り替え後、当該書き込んだ画像データを転送用フレームバッファから転送する。この場合、実際に書き込んだ画像データのみを転送するのなら問題は生じないが、一般的に画像の更新は矩形領域を単位として扱うため、たとえば円を描いた場合に、当該矩形領域において実際には描画が発生していない部分の背景画像も表示端末に送られ、背景画像が不正確になる（古い画像が表示される）問題が発生し得る。つまり、更新領域に古い画像が残っている方のフレームバッファ（描画用フレームバッファ）に円のような画像の書き込みが行われると、表示端末で表示される画像が不正確になってしまう。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国公開２００９−００１５５９１号公報
【非特許文献】
【０００７】
【非特許文献１】Ｊａｖａ  Ｔｕｔｏｒｉａｌ、“Ｄｏｕｂｌｅ Ｂｕｆｆｅｒｉｎｇ ａｎｄ Ｐａｇｅ Ｆｌｉｐｐｉｎｇ”
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、表示端末に表示する画像データを低負荷でかつ表示画像の破綻が生じないように生成することを可能にした画像生成装置を提供する。
【課題を解決するための手段】
【０００９】
本発明の一態様としての画像生成装置は、画像を表示する表示端末と通信する画像生成装置であって、それぞれ１フレームの画像データを記憶可能な複数のフレームバッファと、書き込みを行うべきフレームバッファである書き込みバッファを前記複数のフレームバッファから選択する選択部と、前記１フレームの単位領域毎に最新の画像が保持されているフレームバッファの識別情報を記憶する記憶部と、アプリケーションからの描画命令に従って画像データを描画して前記書き込みバッファに書き込み、前記画像データの書き込み領域を包含する更新領域を算出する描画部と、前記書き込み領域の最新画像が前記書き込みバッファに保持されていることを示すように前記記憶部を更新する更新部と、前記更新領域のうち最新でない画像が含まれる領域の最新画像データを、前記複数のフレームバッファのうち前記領域の最新画像を記憶した他のフレームバッファから読み出し、読み出した最新画像データを前記書き込みバッファに書き込む修正部と、前記書き込みバッファから前記更新領域の画像データをすべて読み出して更新画像データを生成する画像生成部と、  前記更新画像データを前記表示端末に送信する通信部と、を備える。
【発明の効果】
【００１０】
本発明により、表示端末に表示する画像データを低負荷でかつ表示画像の破綻が生じないように生成することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態１に係る画像生成装置を示す図。
【図２】実際の書き込み領域と更新領域とが一致しない可能性がある描画命令の例を示す図。
【図３】最新ＦＢ情報の一例を示す図。
【図４】本発明の実施形態１に係る画像生成装置の画像描画処理の流れを説明するためのフローチャート。
【図５】本発明の実施形態１に係る画像生成装置の画面転送処理の流れを説明するためのフローチャート。
【図６】本発明の実施形態１に係る領域毎のダブルバッファの動作例を説明するための図。
【図７】本発明の実施形態２に係る画像生成装置の画像描画処理の流れを説明するためのフローチャート。
【図８】本発明の実施形態２に係る画像生成装置の画面転送処理の流れを説明するためのフローチャート。
【図９】従来における領域毎のダブルバッファの動作例を説明するための図。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、本発明の実施形態について説明する。
【００１３】
図１に、本発明の実施形態１に係る画像生成装置を備えた画像生成システムを示す。この画像生成システムにおいては、画像データを表示する表示端末１０１と、表示端末１０１で表示する画像データを生成する画像生成装置１１とが、ネットワーク２０１を介して接続されている。
【００１４】
表示端末１０１は、ポインティングデバイスまたはキーボード等の入力装置からユーザにより入力された入力情報をネットワーク２０１を介して画像生成装置１１に送信する。表示装置１０１は、画像生成装置１１において当該入力情報に応じて生成された画面データを受信して表示する。
【００１５】
ネットワーク２０１は、ローカルエリアネットワーク、広域ネットワークまたはインターネットなどの任意の通信ネットワークである。
【００１６】
画像生成装置１１は、表示端末１０１からネットワーク２０１を介して受信される入力情報に基づき、表示端末１０１に表示する画像データを生成（画像データを更新）して表示端末１０１に転送する。
【００１７】
画像生成装置１１は、１フレームの画像データを記憶可能な２つのフレームバッファ(FB：Frame Buffer)１およびフレームバッファ２を備え、これらのフレームバッファ１およびフレームバッファ２を描画用フレームバッファ（書き込みバッファ）と転送用フレームバッファとして交互に切り換えて用いつつ、画像データの描画と転送を並列処理する。本実施形態１では、表示端末において背景画像の破綻が生じることのない新たなダブルバッファの仕組みを低負荷で実現したことを特徴とする。
【００１８】
図９は従来におけるソフトウェアで領域毎のダブルバッファを実施した場合の問題点を説明する図である。
【００１９】
まず、初期処理で、表示端末の画面全体の画像データを一方のフレームバッファ１に書き込み、書き込みが終わったらフレームバッファ１を転送用フレームバッファとして用いてフレームバッファ１内の全データを読み出して転送する（Ｓ１００１、Ｓ１００２）。転送時または転送後に表示端末から入力情報を受け、入力情報に応じて画像データを描画してフレームバッファ２（描画用フレームバッファ）に書き込む（Ｓ１００３）。ここでは菱形の図形データをフレームバッファ２の一領域に書き込む例を示す。
【００２０】
所定のトリガにより描画用フレームバッファと転送用フレームバッファが切り換えられ（Ｓ１００４）、転送用フレームバッファから描画領域（更新領域）の画像データを読み出して表示端末に転送する（Ｓ１００５，Ｓ１００６）。この際、一般に、描画領域（更新領域）は、実際に書き込まれた画像データの領域（書き込み領域）を包含する矩形領域２００１として検出され、矩形領域の画像データが送信される。このため、矩形領域のうち菱形の外側４隅の部分のデータ２００２は本来、フレームバッファ１に最新のデータが存在するにもかかわらず、フレームバッファ２の非最新のデータが転送されてしまう。このため表示端末では不正確な画像表示が行われる（Ｓ１００７）。すなわち菱形の背景画像が不正確になってしまう。
【００２１】
本実施形態１はこのような背景画像の不正確な表示を起こすことのないダブルバッファの手法を低負荷なものとして提供する。
【００２２】
画像生成装置１１は、ハードウェア２１と、アプリケーション３１と、ウィンドウサーバ４１とを備えている。
【００２３】
ハードウェア２１は、２つのフレームバッファ（ＦＢ）１，２と、通信部２２とを備えている。
【００２４】
フレームバッファ１およびフレームバッファ２は、それぞれ１フレーム分の画像データを記憶する。フレームバッファ１、２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、光ディスク、メモリカードなどの一般的に利用されているあらゆる記憶媒体により構成することができる。なお、本実施形態１ではフレームバッファを２つ備えるが、備えるフレームバッファの個数は３つ以上でもよい。その場合、２つ以上の複数のフレームバッファが描画用フレームバッファとして同時に用いられる。なお、同図では省略しているが、ハードウェア２１は、プロセッサおよびＲＯＭなどのコンピュータが一般的に備えるハードウェアリソースも備えている。
【００２５】
通信部２２は、表示端末１０１からネットワーク２０１を介して入力情報を受信し、入力情報をアプリケーション３１に渡す。また、通信部２２は、更新画像生成部４６（後述）で生成される更新画像データを表示端末１０１へネットワーク２０１を介して送信する。通信部２２の機能の一部または全部をソフトウェアモジュール（プログラム）で実現してもよい。ソフトウェアモジュールはＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、メモリ装置、ハードディスク装置等に代表される記録媒体に格納されてもよい。
【００２６】
アプリケーション３１は、表示端末１０１からの入力情報を通信部２２を介して受け取り（図１ではこの処理に関する線は図示せず）、画像生成装置１１上で動作する各種処理を提供するプログラムである。アプリケーション３１は、実行した処理に関連して画面データの更新などが発生した場合に、表示画面の画像データの描画を要求する描画命令を生成して、ウィンドウサーバ４１の描画部４３に出力する。描画命令は描画すべき画像の内容と、画像を書き込むべき座標情報（書き込み領域）の情報とを含む。座標情報とは、例えば、１０２４×７６８ピクセルの画面の場合、画面左上を（０、０）、画面右下を（１０２３、７６７）とするような座標系で表された情報をいう。
【００２７】
ウィンドウサーバ４１は、描画ＦＢ選択部４２と、描画部４３と、最新ＦＢ記録部４４と、背景画像修正部４５と、更新画像生成部４６、タイマ４７とを備えている。各要素４２〜４７はそれぞれソフトウェアモジュールとして実現されるとするが、これらのうちの一部をハードウェアで実現することも可能である。ソフトウェアモジュールはＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、メモリ装置、ハードディスク装置等に代表される記録媒体に格納されてもよい。
【００２８】
タイマ４７は一定期間毎に割り込み信号を出力する。
【００２９】
描画ＦＢ選択部４２は、タイマ４７からの割り込み信号に応じて、次に書き込むべきフレームバッファである描画用フレームバッファ（書き込みバッファ）をフレームバッファ１，２の中から選択する。本実施形態１では描画ＦＢ選択部４２はフレームバッファ１，２を交互に描画用フレームバッファとして選択し、選択されなかった方のフレームバッファは転送用フレームバッファとなる。つまり描画ＦＢ選択部４２は、フレームバッファ１とフレームバッファ２を交互に選択することにより、描画用フレームバッファと転送用フレームバッファを切り替える。また、描画ＦＢ選択部４２は選択した描画フレームバッファの識別情報を描画部４３に伝える。また、描画ＦＢ選択部４２は、更新画像生成部４６に更新画像データの生成を指示する。
【００３０】
描画部４３は、アプリケーション３１から描画命令を受け、当該描画命令に応じて実際に書き込みを行う書き込み領域と、当該書き込み領域を包含する、更新の単位となる描画領域（更新領域）とが一致するか否かを判定する。書き込み領域は、描画命令に含まれる座標情報から特定される。描画領域（更新領域）は当該座標情報と、事前に与えられた描画領域（更新領域）の特定方法とから計算可能である。描画領域（更新領域）の特定方法としては、書き込み領域を包含する矩形の領域を特定する方法がある。たとえば書き込まれる画像が塗りつぶしの円の場合は、この円を包含するような矩形領域を描画領域（更新領域）として特定する。当該円を包含する矩形領域は、当該円を包含可能な最小サイズでもよいし、それより大きいサイズでもよい。描画領域（更新領域）の決定方法は、上記に限定されず、任意の方法を用いることができる。
【００３１】
本実施形態では、アプリケーション３１からの描画命令が、所定の第1の描画命令であるときは、書き込み領域と描画領域（更新領域）が一致しないもしくは一致しない可能性があるとみなし、所定の第1の描画命令と異なる第２の描画命令のときは当該書き込み領域と描画領域（更新領域）が一致するとみなす。
【００３２】
たとえば図２（Ａ）〜図２（Ｄ）に示すような円、多角形、文字、点を描画する命令が所定の第1の描画命令に相当する。このような命令の場合、実際の書き込み領域と更新領域（矩形領域）とが一致しないため、図9に示した従来のダブルバッファを用いると、背景画像が最新の画像でない（古い画像である）場合が生じる。つまり、所定の第1の描画命令は、描画領域（更新領域）と、実際に書き込む画像データの領域とが一致しない可能性がある命令（換言すれば図９の従来のダブルバッファを用いた場合に背景画像が不正確になる可能性がある命令）である。一方、第２の描画命令は、描画領域（更新領域）と実際に書き込む画像データの領域が一致する命令である（換言すれば図９の従来のダブルバッファを用いた場合でも背景画像が不正確にならない命令である）。たとえば、描画命令が矩形の塗りつぶし画像の描画命令であり、かつ更新領域の特定方法が実際の書き込み画像を包含する最小サイズの矩形領域とする場合は、書き込んだデータの領域と描画領域（更新領域）が一致するため、従来のダブルバッファを用いた場合でも背景画像の破綻は生じない。
【００３３】
描画部４３は、実際の書き込み領域と更新領域（矩形領域）とが一致しない可能性があると判定した場合、すなわちアプリケーション３１からの描画命令が所定の第1の描画命令に合致する場合は、特定した描画領域（更新領域）を背景画像修正部４５に伝える。また、この場合、描画部４３は、当該描画命令に従って各種画像処理を行った画像データを描画し、描画した画像データを、後述する背景画像修正部４５による処理の完了後に、描画ＦＢ選択部４２に指定されたフレームバッファ（描画用フレームバッファ）の該当領域に書き込む。
【００３４】
また、描画部４３は、アプリケーション３１からの描画命令が第２の描画命令である場合は、背景画像修正部４５による処理を省略することを決定する。この場合、描画部４３は、アプリケーション３１からの描画命令に従って各種画像処理を行って画像データを描画し、当該画像データを描画ＦＢ選択部４２に指定されたフレームバッファ（描画用フレームバッファ）における該当領域に書き込む。
【００３５】
描画部４３は、アプリケーション３１からの描画命令が第1の所定の描画命令および第２の描画命令のいずれである場合も、最新ＦＢ記録部４４に描画領域（更新領域）の情報と、描画用フレームバッファの識別情報とを伝える。
【００３６】
また、描画部４３は、アプリケーション３１からの描画命令が所定の第1の描画命令および第２の描画命令のいずれである場合も、特定した描画領域（更新領域）を表す更新領域情報４９を描画用フレームバッファ毎に記録する。記録先はたとえばハードウェア２１が備えるメモリ装置またはハードディスク等の記憶装置でもよいし、画像生成装置１１に外部接続された記憶装置でもよい。なお、記録方法は、画面上の更新領域が分かるものであればどのようなものでもよい。例えば、「（０，０）から幅１０ピクセル、高さ１０ピクセルの矩形領域」と「（３０，３０）から幅２００ピクセル、高さ５ピクセルの矩形領域」のように、更新領域を矩形情報のリストとして記録してもよい。
【００３７】
最新ＦＢ記録部４４は、描画部４３から指定された描画領域と描画用フレームバッファの識別情報に従って、最新ＦＢ情報４８を更新する（後述する背景画像修正部４５の処理の後で更新する）。具体的に、描画部４３から指定された描画領域については、当該描画領域のすべての最新画像が現在の描画用フレームバッファに保持されていることを示すように、最新ＦＢ情報４８を更新する。ここで最新ＦＢ情報４８は、１フレームの画像の単位領域（たとえばピクセル単位）毎に最新画像を保持しているフレームバッファの識別情報を保持したものである。最新ＦＢ情報４８の一例を図３に示す。
【００３８】
最新ＦＢ情報４８はたとえばハードウェア２１が備えるメモリ装置またはハードディスク等の記憶装置、あるいは画像生成装置１１に外部接続された記憶装置に記憶される。
【００３９】
最新ＦＢ情報４８の形式は、各単位領域それぞれが１つのフレームバッファと対応づけられるものであればどのようなものでもよい。例えば、フレームバッファ１が最新画像を保持している領域のリストでもよい。この場合、リストに載っていない領域についてはフレームバッファ２に最新画像が保持されているとする。
【００４０】
背景画像修正部４５は、アプリケーション３１からの描画命令が所定の第1の描画命令である場合に描画部４３により特定された描画領域（更新領域）の情報を受けると、最新ＦＢ情報４８（前回更新されたもの）に基づいて、当該描画領域のうち現在の描画用フレームバッファに最新画像が保持されていない領域を特定する。そして、特定した領域の最新画像を、当該最新画像を保持しているフレームバッファから読み出して現在の描画用フレームバッファにおける該当領域に書き込む。すなわち、特定した領域の最新画像を、当該最新画像を保持しているフレームバッファから現在の描画用フレームバッファにコピーする。
【００４１】
なお、最新画像をコピーする代わりに、背景を透明化してもよい。この場合、表示端末１０１ですでに表示中の画面に、描画部４３により書き込まれた画像データのみを重ね合わせて表示することができる。
【００４２】
更新画像生成部４６は、描画ＦＢ選択部４２からのトリガにより、更新領域情報４９に従って、（直前まで描画用フレームバッファとして画像が描画されていた）転送用フレームバッファから更新領域（描画領域）の画像データをすべて読み出して、更新画像データを生成する。更新画像生成部４６は、生成した更新画像データを通信部２２に出力し、また更新領域情報４９を削除する。通信部２２は、更新画像生成部４６からの更新画像データをネットワーク２０１を介して表示端末１０１に送信する。
【００４３】
以下、画像生成装置１１による画像処理の動作フローを説明する。当該画像処理は、画像データを生成してフレームバッファに書き込む画像描画処理と、更新領域の画像データを表示端末１０１に転送する画面転送処理に分かれる。
【００４４】
図４は、実施形態１に係る画像生成装置１１の画像描画処理の流れを説明するためのフローチャートである。
【００４５】
まず、アプリケーション３１が、表示端末１０１からの入力情報に従って実行した処理に関連して画面データの更新が発生した場合に、画面の描画を要求する描画命令を出力する（Ｓ１０１）。
【００４６】
次に、描画部４３が、アプリケーション３１から出力された描画命令が所定の第1の描画命令（実際の書き込み領域と描画領域とが一致しない可能性があるとして事前に指定された命令）であるか否かを判断する（Ｓ１０２）。
【００４７】
描画命令が所定の第1の描画命令である場合は（Ｓ１０２のＹＥＳ）、描画部４３が背景画像修正部４５に描画領域（更新領域）を通知する。背景画像修正部４５は、当該描画領域のうち現在の描画用フレームバッファ以外に最新画像が存在する領域について、当該領域の最新画像を他のフレームバッファからコピーする（Ｓ１０３）。
【００４８】
コピーの後、または描画命令が第２の描画命令である場合は（Ｓ１０２のＮＯ）、描画部４３が、描画命令に応じて画像処理を行って画像データを生成し、生成した画像データを描画用フレームバッファに、描画命令に応じた領域に書き込む（Ｓ１０４）。
【００４９】
次に、描画部４３が最新ＦＢ記録部４４に描画領域の情報と描画用フレームバッファの識別情報を通知し、最新ＦＢ記録部４４は、通知された描画領域についてはすべての最新画像が描画用フレームバッファに保持されていることを示すように最新ＦＢ情報４８を更新する（Ｓ１０５）。
【００５０】
図５は、本実施形態１に係る画像生成装置１１の画面転送処理の流れを説明するためのフローチャートである。画面転送処理は、例えばタイマ４７からの定期的な割り込みにより、開始する。ただし、トリガはタイマでなくてもよい。例えば、描画回数に閾値を設け、一定回数描画を行う毎に開始してもよい。
【００５１】
まず、描画ＦＢ選択部４２が、描画用フレームバッファと転送用フレームバッファの切り替え処理を行う（Ｓ２０１）。
【００５２】
次に、更新画像生成部４６が、更新領域情報４９に従って、更新領域の画像データを転送用フレームバッファから読み出して、更新画像データを生成する（Ｓ２０２）。
【００５３】
次に、通信部２２が、更新画像データを表示端末１０１に送信する（Ｓ２０３）。
【００５４】
図６は本実施形態１に係る領域毎のダブルバッファにより背景画像の破綻無く画像転送を行うことができることを具体的に説明する図である。
【００５５】
まず、初期処理で、表示端末１０１の画面全体の画像データを一方のフレームバッファ１に書き込み、書き込みが終わったらフレームバッファ１を転送用フレームバッファとして用いてフレームバッファ１内の全データを読み出して転送する（Ｓ５０１、Ｓ５０２）。転送時または転送後に表示端末１０１から入力情報を受け、入力情報に応じてアプリケーション３１により描画命令が発行される。描画命令として菱形の図形データの描画が指示される。描画部４３はこの命令は所定の第1の描画命令に合致すると判定し、背景画像修正部４５は、実際の書き込み領域を含む描画領域（更新領域）のうち最新画像が描画用フレームバッファ（フレームバッファ２）にない領域の最新画像を他のフレームバッファ（フレームバッファ１）からフレームバッファ２にコピーする（なおここでは当該描画領域の最新画像はすべてフレームバッファ１に存在するため当該描画領域のすべての画像データがフレームバッファ１からフレームバッファ２にコピーされる）（Ｓ５０３）。描画部４２は、描画命令に従って菱形画像データを描画し、ステップＳ５０３でのコピーの後、当該菱形画像データをフレームバッファ２（描画用フレームバッファ）に書き込む（Ｓ５０４）。
【００５６】
この後、所定のトリガ（たとえばタイマーからの出力）により描画用フレームバッファと転送用フレームバッファとが切り換えられ（Ｓ５０５）、転送用フレームバッファから描画領域（更新領域）の画像データがすべて更新画像生成部４６により読み出されて表示端末１０１に転送される（Ｓ５０６，Ｓ５０７）。描画領域（更新領域）の背景画像は最新の画像であるため、表示端末１０１では背景画像の破綻無く、正しい画像表示が行われる（Ｓ５０８）。
【００５７】
上述した本実施形態１では最新ＦＢ情報４８の更新において、描画部４３で特定された描画領域のすべてについて描画用フレームバッファに最新画像が保持されていることを示すように最新ＦＢ情報４８を更新したが、描画部４３により実際に書き込まれた領域についてのみ描画用フレームバッファに最新画像が保持されていることを示すように更新しても良い。この場合、図４の動作フローにおいて更新ステップＳ１０５が最新画像のコピーステップＳ１０３より前に実行されてもよい。前者の場合（描画領域のすべてについて更新する場合）は実際の書き込み領域を計算する必要がないため処理を単純化できる利点がある。本段落で述べたことは後述する実施形態２についても同様に当てはまる。
【００５８】
以上、本実施形態１によれば、実際の書き込み領域を含む描画領域（更新領域）の背景画像を最新にした上で描画用フレームバッファに実際の画像データの書き込みを行うようにしたので、ソフトウェアで領域毎のダブルバッファを実行する場合において表示端末において背景画像が破綻することを防ぐことができる。
【００５９】
また本実施形態１では特許文献１の方法と比較して専用のハードウェアを必要としないため汎用性が高い利点がある。
【００６０】
また本実施形態１では最新画像のみコピーすればよくまた描画命令が所定の第1の描画命令に合致するときのみコピーすればよいため非特許文献１と比較してコピーの処理負荷が低い。
【００６１】
また本実施形態１では非特許文献１と比べて描画および転送処理のブロック期間も短い（図４に示した描画用フレームバッファへの画像描画処理と、図５に示した転送用フレームバッファからの画面転送処理は、並行実行され、描画処理および転送処理がブロックされる期間は、描画用フレームバッファと転送用フレームバッファの切り替えにかかる時間だけである）。
【００６２】
このように本実施形態１では、描画と転送の効率的な並列処理を、画像破綻を生じさせることなく低負荷で実現することができる。
【００６３】
（実施形態２）
前述した実施形態１では、描画部４３による描画の前にフレームバッファ間での最新画像のコピーを行っていたが、本実施形態２では、描画の後に最新画像のコピーを行う場合を述べる。本実施形態２のブロック図は実施形態１と同様である。以下では実施形態１との差分についてのみ説明する。
【００６４】
背景画像修正部４５は、描画部４３において所定の第1の描画命令が検知された場合、描画部４３から通知された描画領域（更新領域）を背景修正領域として扱い、当該背景修正領域の情報を保持する。
【００６５】
背景画像修正部４５は、背景修正領域のうち描画部４３により実際に書き込みが行われない部分（領域）を特定し、特定した領域のうち最新の画像が描画用フレームバッファに保持されていない領域を最新ＦＢ情報から算出し、当該領域の画像データを、最新画像を保持する他のフレームバッファから読み出して、描画用フレームバッファに書き込む。これによって、実際には描画が発生していない領域についての背景画像を最新に（正しく）する。背景画像修正部４５は、当該書き込みが完了したら、上記背景修正領域の情報を削除する。
【００６６】
ここで、背景修正領域のうち実際には描画が発生していない部分の検出方法は、例えば、描画部４３による描画前に描画用フレームバッファにおける背景修正領域の画像データを保存しておき、描画後の画像データと比較して変更のない部分を検出することで可能である。なお、前述の実施形態１と同様に、最新画像（正しい背景画像）をコピーする代わりに、背景を透明化してもよい。この場合、表示端末１０１ですでに表示中の最新画像（正しい背景）に重ね合わせて表示することにより、正しい画像の表示が得られる。
【００６７】
以下、実施形態２に係る画像生成装置の画像描画処理および画面転送処理の流れを説明する。
【００６８】
図７は、本実施形態２に係る画像描画処理の流れを説明するフローチャートである。
【００６９】
アプリケーション３１により描画命令が出力されると（Ｓ３０１）、描画部４３が、当該描画命令があらかじめ指定された描画命令に合致するか否かを判断する（Ｓ３０２）。
【００７０】
アプリケーション３１からの描画命令が所定の第1の描画命令に合致する場合は（Ｓ３０２のＹＥＳ）、描画部４３が背景画像修正部４５に描画領域（更新領域）を通知し、背景画像修正部４５が、これを背景修正領域として記録する（Ｓ３０３）。またこの際、背景画像修正部４５は、描画用フレームバッファにおいて当該背景修正領域の全画像データを一時的に記録しておく。
【００７１】
描画部４３は、描画命令に応じて画像処理を行って画像データを生成し、生成した画像データを描画用フレームバッファに、描画命令に含まれる座標情報に従って書き込む（Ｓ３０４）。
【００７２】
図８は、本実施形態２に係る画面転送処理の流れを説明するフローチャートである。
【００７３】
背景画像修正部４５が、描画用フレームバッファおよび転送用フレームバッファ間の切り替え処理前に、図７のステップＳ３０３で記録した背景修正領域の画像データと、描画部４３による描画後の当該背景修正領域の画像データとを比較して、実際に書き込みが行われていない領域を特定する（Ｓ４０１）。そして特定した領域のうち最新画像が描画用フレームバッファに保持されていない領域を最新ＦＢ情報４８により特定し、特定した領域の最新画像を保持しているフレームバッファを最新ＦＢ情報４８から求め、当該求めたフレームバッファから当該特定した領域の画像データを読み出して描画用フレームバッファにコピーする（Ｓ４０１）。
【００７４】
次に、最新ＦＢ記録部４４が前述の実施形態１と同様にして最新ＦＢ情報４８を更新する（Ｓ４０２）。
【００７５】
以降のステップＳ４０３〜Ｓ４０５は、前述の実施形態１における図５のＳ２０１〜Ｓ２０３と同様であるため、重複する説明を省略する。
【００７６】
以上、本実施形態２によれば、表示端末への転送時に、描画領域のうち、実際の書き込み領域以外の領域の背景画像を最新にして転送するようにしたので、ソフトウェアで領域毎のダブルバッファを実行する場合において表示端末において背景画像が破綻することを防ぐことができる。また本実施形態２によれば更新領域のうち実際の書き込み領域以外の領域がコピー処理の対象となるため、実施形態１に比べて、最新画像のコピー量が少なくて済む可能性が高くなり、処理時間および処理負荷を実施形態１よりも低く抑えることが期待できる。
【００７７】
尚、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
【００７８】
また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図１】
2012035632.tif 000003
【図２】
2012035632.tif 000004
【図３】
2012035632.tif 000005
【図４】
2012035632.tif 000006
【図５】
2012035632.tif 000007
【図６】
2012035632.tif 000008
【図７】
2012035632.tif 000009
【図８】
2012035632.tif 000010
【図９】
2012035632.tif 000011
【国際調査報告】
2012035632.tif 000012
2012035632.tif 000013