説明

表示制御装置、表示制御方法、及び、プログラム

【課題】 本発明は、下レイヤのウィンドウの描画データが上レイヤのウィンドウに透過表示されることによる視認性の低下を改善し、視認性を向上させることを目的とする。
【解決手段】 ウィンドウに描画データを描画する描画部と、第1のウィンドウと第1のウィンドウの下位レイヤに表示される第2のウィンドウとが重複する領域である重複領域において第1のウィンドウ上の領域である第1の領域に描画される描画データと重複領域において第1のウィンドウ上の領域である第2の領域に描画される描画データとが互いに類似する度合いを表す類似度を取得する取得部と、類似度が閾値より大きい場合には第2のウィンドウに描画する描画データを第1のウィンドウに透過して重複領域において表示させ、類似度が閾値以下である場合には第2のウィンドウに描画する描画データが重複領域において表示されないようにする表示制御部とを有することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のウィンドウを重ねて表示させる表示制御装置、表示制御方法、及び、プログラムに関する。
【背景技術】
【0002】
従来、パーソナルコンピュータ、デジタル家電、モバイル機器等の表示画面上に、複数の異なるアプリケーションがそれぞれ独立にウィンドウを描画するシステムが一般的に用いられている。近年では、グラフィックス描画性能の向上により、ウィンドウが下レイヤのウィンドウに描画される描画データを透過するシステムも用いられている。このようなシステムにおいては、複数のウィンドウが重複した場合に、下レイヤのウィンドウの描画データが上レイヤのウィンドウに透過して描画される。
【0003】
下レイヤのウィンドウの描画データが上レイヤのウィンドウに透過するシステムとして、複数のウィンドウの重複部分の描画データの種類に基づいて透過度を調整する技術が公開されている(例えば、特許文献1)。またウィンドウが重複する領域で、下レイヤのウィンドウに描画される内容を上レイヤのウィンドウの表示よりも薄く表示する技術も公開されている(例えば、特許文献2)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平10−177466
【特許文献2】特開平08−123652
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、ウィンドウ同士が重複する領域においては、独立に描画された複数の描画データが重なって表示されるため、ウィンドウの表示位置の関係、および描画された描画データの組み合わせ、大きさ等によって視認性が低下する場合がある。図10に、半透明ウィンドウの重畳例を示す。図10(a)の表示では、表示領域の一部で文字同士が重なり合い、メインで作業を行っている上レイヤのウィンドウ、およびその下に重なる下レイヤのウィンドウの両方で表示内容が視認しづらい領域が存在する。同様に図10(b)の表示では、上レイヤのウィンドウでCADや地図で用いるような微細なグラフィックスを編集する場合に、類似のグラフィックスデータが下レイヤのウィンドウに描画されると、パターンの混在による錯視により視認性が低下する恐れがある。
【課題を解決するための手段】
【0006】
上述の課題を解決するために本発明は、ウィンドウに描画データを描画する描画手段と、第1のウィンドウと前記第1のウィンドウの下位レイヤに表示される第2のウィンドウとが重複する領域である重複領域において前記第1のウィンドウ上の領域である第1の領域に描画される描画データと前記重複領域において前記第1のウィンドウ上の領域である第2の領域に描画される描画データとが互いに類似する度合いを表す類似度を取得する取得手段と、前記類似度が閾値より大きい場合には前記第2のウィンドウに描画する描画データを前記第1のウィンドウに透過して重複領域において表示させ、前記類似度が前記閾値以下である場合には前記第2のウィンドウに描画する描画データが前記重複領域において表示されないようにする表示制御手段とを有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、下レイヤのウィンドウの描画データが上レイヤのウィンドウに透過するように描画されることによる視認性の低下を改善し、視認性を向上させることができる。
【図面の簡単な説明】
【0008】
【図1】実施例1にかかる表示制御装置の構成例を示す図。
【図2】制御部103の構成例を示す図。
【図3】制御部103の動作を説明するためのフローチャート。
【図4】管理部102の動作を説明するためのフローチャート。
【図5】グローバル座標系におけるウィンドウの表示例を示す図。
【図6】ウィンドウ管理テーブル及びローカルウィンドウ管理テーブルを示す図。
【図7】ウィンドウ制御情報及び重複領域情報を示す図。
【図8】実施例1における描画部の動作を説明するためのフローチャート。
【図9】実施例2における描画部の動作を説明するためのフローチャート。
【図10】重複領域における描画データの重なりについて説明するための図。
【発明を実施するための形態】
【0009】
以下、図面を参照して本発明の実施の形態を説明する。
【0010】
<実施例1>
本実施例にかかる表示制御装置を実現するための構成を図1に示す。図1に示した各構成要素は、物理的に独立なハードウェアとして構成してもよいし、同等の機能を有するソフトウェアの1つ以上のインスタンスとして構成してもよい。
【0011】
入力制御部101は、不図示の入力装置から入力された描画データを後述の制御部103に出力する。ここで、描画データとは表示装置の表示画面に表示されたウィンドウ内に描画される文字や図形、自然画等のことをいう。
【0012】
管理部102は、表示装置の表示画面に表示されるウィンドウの位置とサイズ、複数のウィンドウが重複する重複領域の位置とサイズ、重複領域の数、ウィンドウの上下関係を表すZレベル、及び、ウィンドウの透過度を後述の制御部103から取得して管理する。これらの情報の管理については図5から図7を用いて詳細を後述する。
【0013】
描画部104及び描画部105(以下、これらの描画部を総称して描画部という)は、それぞれウィンドウ内に表示される文字や自然画、図形などの描画データを描画する。描画部104及び描画部105は、並列に動作する描画モジュールとして構成する方法のほかに、ソフトウェア的に複数のアプリケーションを1つの描画モジュールやプロセッサの上にインスタンスし、シーケンシャルに描画を行う方法をとってもよい。また、描画モジュールの数はアプリケーションの性質やウィンドウ数に応じて、任意の数としてよい。描画部によって描画された複数のウィンドウの描画データは、合成部106に入力される。
【0014】
合成部106は、描画部104、描画部105が描画した複数のウィンドウを合成する。合成部106によるウィンドウの合成結果は、表示制御部107に入力される。表示制御部107は、合成部106が合成した複数のウィンドウを表示部108に表示させる。
【0015】
制御部103は、入力制御部101から受信した入力データを用いて管理部102、描画部104、描画部105、合成部106の制御を行う。制御部103が行う制御については、詳細を後述する。
【0016】
次に、管理部102が管理する情報について図5および図6を用いて説明する。本実施例では、管理部102は表示画面におけるウィンドウの位置やサイズをグローバル座標系を用いて管理する。また、管理部102は各ウィンドウ領域内における重複領域の位置やサイズをローカル座標系を用いて管理する。
【0017】
グローバル座標系におけるウィンドウの表示例を図5に示す。本実施例では、ウィンドウ501およびウィンドウ502が不透明、ウィンドウ503が半透明であるものとする。本実施例では、背景にもっとも近いレイヤに描画されるウィンドウのZレベルを0と定義する。図5の表示例では、Zレベル0のレイヤとしてウィンドウ502、Zレベル1のレイヤとしてウィンドウ501、Zレベル2のレイヤとしてウィンドウ503が描画されている。
【0018】
管理部102が、図5を用いて説明した各ウィンドウの情報管理に用いるウィンドウ管理テーブルを図6(a)に示す。ウィンドウ管理テーブルは、各ウィンドウについて、ウィンドウの識別に用いられるID608、Zレベル601、グローバル座標系におけるウィンドウの座標602、サイズ603、透過度604の情報を持つ。ウィンドウの透過度は、そのウィンドウの下位レイヤ(以下、下レイヤという)のウィンドウに描画される描画データが、そのウィンドウに透過する度合いを示す。本実施例では、不透過の場合(描画データを描画しない場合)を透過度0、半透明の場合を透過度0.5として表す。また、ウィンドウ管理テーブルは、あるウィンドウ内の領域であって、そのウィンドウの上位レイヤ(以下、上レイヤという)に別のウィンドウが重複している領域である重複領域についての情報を持つ。例えばウィンドウ管理テーブルは、重複領域の座標605、サイズ606、上に重なるウィンドウの透過度である重複透過度609、重複領域数607の情報を持つ。
【0019】
例えば、図6(a)に示したウィンドウ管理テーブルにおいて、ウィンドウ501はIDが20のエントリとして表現される。本実施例においては、ウィンドウの左上の頂点の座標をウィンドウ座標として用いる。ウィンドウ501のウィンドウ座標は、(1,1)となる。また、ウィンドウサイズは(6,3)である。これは、グローバル座標において、ウィンドウ502の横幅が6目盛分であり、縦幅が3目盛分であることを表している。以下、ウィンドウのサイズについて同様に表記する。また、ウィンドウ501は上述の通り不透明であるため、ウィンドウ透過度は0である。また、ウィンドウ501は、半透明のウィンドウ503が上に重なるため、重複領域数は1である。ウィンドウ501と、ウィンドウ503の重複領域504は、グローバル座標系において(4,2)と表される。また、重複領域サイズは(3,2)と表される。また、ウィンドウ501の上レイヤに重複しているウィンドウ503の透過度が0.5であることから、重複透過度は0.5と表される。
【0020】
ウィンドウ502は、ウィンドウ管理テーブルにおいて、IDが30のエントリとして表現される。ウィンドウ502についてもウィンドウ501と同様にして各情報がウィンドウ管理テーブルに保持される。
【0021】
ウィンドウ503は、ウィンドウ管理テーブルにおいて、IDが10のエントリとして表現される。ウィンドウ503は半透明であり、ウィンドウ透過度は0.5である。ウィンドウ503は、最上位のウィンドウであり、上に重なる他のウィンドウがないため、ウィンドウ重複領域数は0である。
【0022】
次に、管理部102が各ウィンドウ領域内における重複領域の位置等を管理するために用いるローカルウィンドウ管理テーブルを図6(b)に示す。ローカルウィンドウ管理テーブルは、ID608、重複透過度609、ローカル重複領域座標703、ローカル重複領域サイズ704、重複領域数607についての情報を持つ。
【0023】
重複領域サイズ606、重複領域数607、重複透過度609、ID608については図6(a)のウィンドウ位置テーブルに記録される情報と同じ情報であるため同一の符号を付し説明を省略する。
【0024】
ローカル重複領域座標703は重複領域の位置を、ウィンドウごとのローカル座標系によって表現するものである。本実施例では、各ウィンドウのウィンドウ座標602がローカル座標の原点(0,0)であるとする。
【0025】
例えば本実施例において、ID20で表されるウィンドウ501のローカル座標系の原点はグローバル座標系における(1,1)である。また、ウィンドウ501上にウィンドウが重複している重複領域の座標はグローバル座標系における(4,2)である。そして、ウィンドウ501のローカル重複領域座標は、ローカル座標系では(4−1,2−1)=(3,1)として表される。
【0026】
また、ID30で表されるウィンドウ502のローカル座標系の原点はグローバル座標系における(2,3)である。また、ウィンドウ502上にウィンドウが重畳している重複領域の座標もグローバル座標系における(2,3)である。そして、ウィンドウ502のローカル重複領域座標はローカル座標系では(2−2、3−3)=(0,0)として表される。
【0027】
ローカル座標の原点の位置はウィンドウ座標602に限られない。ローカル座標の原点を任意に設定し、ウィンドウ管理テーブルにおいて各ウィンドウのエントリにローカル座標系の原点情報を持たせることとしてもよい。この場合、グローバル座標系における重複領域の座標値と原点情報とを用いてローカル座標系における重複領域の位置を導出することができる。以上のようにして、管理部102はウィンドウや重複領域についての上述の情報の管理を行う。以上のようにして管理部102は、ウィンドウの位置とサイズ、ウィンドウの重複領域の位置とサイズ、重複領域の数、ウィンドウの上下関係、及び、ウィンドウの透過度の管理を行う。
【0028】
次に、制御部103が行う描画指示制御の内容について説明する。制御部103の構成例を図2に示す。
【0029】
変更管理部201は、入力制御部101からの指示によるウィンドウ位置の変更やウィンドウのサイズ変更についての情報を管理し、これらの情報を管理部102にウィンドウ制御情報として通知する。ウィンドウ制御情報を受信した管理部102は、当該ウィンドウ制御情報に基づいて図6に示したウィンドウ管理テーブル及びローカルウィンドウ管理テーブルを更新する。ウィンドウ制御情報について図7(a)を用いて説明する。
【0030】
ウィンドウ制御情報は、ID608、Z制御フラグ901、変更後ウィンドウ座標902、変更後ウィンドウサイズ903、変更後ウィンドウ透過度904についての情報を持つ。Z制御フラグ901は、ウィンドウの表示位置を最前面に変更させるために用いる。Z制御フラグが1である場合に、ウィンドウを最前面に表示させる。制御部103は、変更先のウィンドウ座標として変更後ウィンドウ座標902を通知する。また、制御部103は、変更後のウィンドウサイズとして変更後ウィンドウサイズ903を通知する。さらに、制御部103は、変更後のウィンドウ透過度として変更後ウィンドウ透過度904を通知する。
【0031】
抽出部202は、複数のウィンドウ間の重なりを抽出する。抽出部202は、図6(b)のローカルウィンドウ管理テーブルに基づいてウィンドウ間の重なりを抽出する。また抽出部202は、重複領域に含まれる上レイヤの領域から第1の領域と第2の領域を選択する。抽出部202が、第1の領域と第2の領域を選択する方法については特に限定しない。例えば抽出部202は、重複領域に含まれ、隣接する2つの領域を第1の領域と第2の領域として選択することができる。または抽出部202は、重複領域に含まれ、所定の間隔を持つ2つの領域を第1の領域と第2の領域として選択してもよい。または抽出部202は、重複領域を複数の領域に分割した分割領域から第1の領域を選択し、第1の領域を選択した分割領域からさらに第2の領域を選択してもよい。ただし、第1の領域と第2の領域は重複しない領域とする。抽出部202は、各分割領域においてそれぞれ第1の領域と第2の領域を選択することができる。また、第1の領域と第2の領域の大きさについては特に限定しない。第1の領域と第2の領域の大きさは、例えば、1画素としてもよく、あるいは、それぞれ複数の画素からなる領域としてもよい。また、第1の領域と第2の領域の大きさをユーザが任意に設定できるようにしてもよい。
【0032】
解析部204は、第1の領域に描画される描画データと、第2の領域に描画される描画データとが互いに類似する度合を表す類似度を取得する。例えば解析部204は、第1の領域に描画される描画データの輝度と第2の領域に描画される描画データの輝度との輝度差を求めることにより類似度を取得することができる。この場合解析部204は、輝度差が小さいほど類似度が高いと判断することができる。また例えば解析部204は、第1の領域に描画される描画データの色度と第2の領域に描画される描画データの色度の色差を求めることにより類似度を取得することができる。この場合解析部204は、色差が小さいほど類似度が高いと判断することができる。
【0033】
判定部203は、解析部204が取得した類似度に基づいて重複領域の描画内容を後述の描画制御部205に指示する。第1の領域と第2の領域にそれぞれ描画される描画データの類似度が閾値よりも大きい場合、上レイヤのウィンドウに描画される描画データは領域どうしの輝度又は色度の違いが小さい単調な描画データであると判定部203は判定することができる。このような場合には、上レイヤのウィンドウに下レイヤのウィンドウの描画データを透過させても視認性が低下する可能性は低い。そこで本実施例において、類似度が閾値よりも大きい場合には、判定部203は重複領域において下レイヤのウィンドウに描画される描画データを上レイヤのウィンドウに透過して描画させるように描画制御部205に指示する。一方、第1の領域と第2の領域にそれぞれ描画される描画データの類似度が閾値以下である場合、上レイヤのウィンドウに描画される描画データは領域どうしの輝度又は色度の違いが大きい複雑な描画データであると判定部203は判定することができる。このような場合には、上レイヤに下レイヤの描画データを透過させると、上レイヤのウィンドウの描画データと下レイヤのウィンドウの描画データとが干渉し視認性が低下する。そこで、本実施例において、類似度が閾値以下である場合には、判定部203は重複領域において下レイヤのウィンドウに描画される描画データを重複領域において描画させないように描画制御部205に指示する。このようにして、判定部203は類似度が閾値より大きい場合には下レイヤのウィンドウに描画する描画データを上レイヤのウィンドウに透過して重複領域において表示させる表示制御を行う。また、判定部203は類似度が閾値以下である場合には下レイヤのウィンドウに描画する描画データが重複領域において表示されないようにする表示制御を行う。
【0034】
描画制御部205は判定部203の指示に従い、各ウィンドウに対する描画指示を変更する。描画指示の際に、描画制御部205は抽出部202が抽出した重複領域情報を描画部に通知する。重複領域情報の例を図7(b)に示す。制御部103は、重複領域情報として重複透過度801、重複領域座標802、重複領域サイズ803、および重複領域数804を通知する。制御部103の抽出部204は、図6(b)のローカルウィンドウ管理テーブルから描画データの描画を行うウィンドウについての重複領域数607、ローカル重複領域座標703、重複領域サイズ606、重複透過度702を読み出す。そして制御部103の描画制御部204は図7(b)の重複領域情報の通知を行う。また制御部103の描画制御部204は、描画部から描画が完了したことを示す通知を受信すると、合成部106に対してウィンドウの合成指示を行う。
【0035】
次に、本実施例における表示制御装置の動作について説明する。まず、管理部102の動作について図4のフローチャートを用いて説明する。プロセッサ及びメモリを用いて管理部102の機能を実現する形態では、図4の処理フローは、図4に示される手順をこのプロセッサに実行させるためのプログラムを示す。このプロセッサは、コンピュータであり、メモリから読み出したプログラムを実行する。メモリは、このプロセッサが読み出すことができるようにこのプログラムを記録した記録媒体である。
【0036】
まず管理部102は、制御部103からウィンドウの位置変更、又は、サイズ変更等に関する指示があるか否かを判断する(S401)。本実施例では、制御部103から図7(a)のウィンドウ制御情報を受信した場合に、管理部102はウィンドウの位置変更又はサイズ変更等があったと判断する。
【0037】
ウィンドウの位置変更、又は、サイズ変更等の指示がある場合(S401でyesの場合)、管理部102は、ウィンドウの位置又はサイズ等を更新する(S402)。更新する内容はウィンドウの位置やサイズに限られない。例えば、管理部102は、ウィンドウの重複順序の変更がZ制御フラグ901によって指示された場合は、図6(a)に示したウィンドウ管理テーブルのZレベルを更新し、ウィンドウの上下関係を変更する。ウィンドウの透過度が変更された場合は、ウィンドウ透過度604の値を更新する。
【0038】
一方、ウィンドウの位置変更、又は、サイズ変更等の指示がない場合(S401でnoの場合)、管理部102は、後述のステップS410の処理を行う。
【0039】
続いて管理部102は、ステップS403からステップS410において、図6(a)に示したウィンドウ管理テーブルのうち、重複領域座標605、重複領域サイズ606、重複領域座標605、及び、重複領域数607の更新を行う。
【0040】
管理部102は、Zレベル601が0のウィンドウをカレントとして指定する。(S403)。そして管理部102は、カレントに指定したウィンドウ(以下、「カレントウィンドウ」という。)より大きいZレベルを有するウィンドウが存在するか否かを判断する(S404)。
【0041】
カレントウィンドウより大きいZレベルを有するウィンドウが存在する場合(S404でnoの場合)、管理部102はカレントウィンドウとの重複領域が存在するか判断するための比較ウィンドウを設定する。ステップS405では、管理部102はカレントウィンドウよりも1レイヤ上にあるウィンドウを比較ウィンドウとして設定する。例えば、カレントウィンドウのZレベルが0の場合、比較ウィンドウとしてまずZレベル1のウィンドウが比較ウィンドウとして設定される。
【0042】
管理部102は、カレントウィンドウと比較ウィンドウに重複領域があるかどうかを判断する(S406)。重複領域があるかどうかの判断は、例えば、図6(a)のウィンドウ管理テーブルのウィンドウ座標602及びウィンドウサイズ603により特定されるカレントウィンドウの領域内に、比較ウィンドウの一部又は全部が含まれるか判断して行うことができる。
【0043】
ウィンドウの重複領域が存在する場合(S406でyesの場合)は、管理部102は、カレントのウィンドウの重複領域数607をインクリメントし、さらに、重複領域座標605、重複領域サイズ606を更新する(S407)。そして管理部102は、現在の比較ウィンドウよりもZレベルがひとつ大きいウィンドウを新たな比較ウィンドウとして設定する(S408)。重複領域がない場合は(S406でnoの場合)、管理部102はステップS407の処理を実行しないでステップS408の処理を行う。
【0044】
次に管理部102は、ステップS408において新たに設定した比較ウィンドウが実際に存在するか否かを判断する(S409)。新たに設定したZレベルの比較ウィンドウが存在する場合(S409でyesの場合)、管理部102はステップS406からステップS408を繰り返す。新たに設定したZレベルに対応するウィンドウが存在しない場合(S409でnoの場合)、管理部102はカレントウィンドウをZレベルが1つ大きいウィンドウに変更し、ステップS404からステップS409を繰り返す(S410)。
【0045】
カレントウィンドウが最上位のウィンドウになると(S404でyesの場合)、管理部102は、制御部103からのウィンドウ制御情報のリクエストを判断する(S411)。制御部103からウィンドウ制御情報をリクエストされた場合、管理部102は、図6(a)のウィンドウ管理テーブルの重複領域座標605から、ウィンドウ制御情報のローカル重複領域座標703を計算する。そして管理部102は、図7(b)の重複領域情報を生成して制御部103に送信する(S412)。
【0046】
次に、本実施例における制御部103の動作を図3のフローチャートを用いて説明する。プロセッサ及びメモリを用いて制御部103の機能を実現する形態では、図3の処理フローは、図3に示される手順をこのプロセッサに実行させるためのプログラムを示す。このプロセッサは、コンピュータであり、メモリから読み出したプログラムを実行する。メモリは、このプロセッサが読み出すことができるようにこのプログラムを記録した記録媒体である。
【0047】
まず制御部103の管理部201は、画面更新の開始タイミングを待つ(S301)。画面更新のタイミングとして例えば、図示しないアプリケーションプログラムからの画面更新指示の受信や、入力制御部101からのウィンドウ操作指示の受信等がある。画面の更新を行う場合(S301でyesの場合)、制御部103の管理部201は更新するウィンドウについて、図6(b)に示した管理部102のローカルウィンドウ管理テーブルに記憶された情報を取得する(S302)。
【0048】
そして制御部103の管理部201は、表示位置又はサイズの変更が指示されたウィンドウの描画を行う描画部を決定する(S303)。描画部の決定には任意の方法を用いることができる。描画部の決定方法については、発明の本質ではないので説明を省略する。
【0049】
続いて、制御部103の抽出部202は描画部を決定したウィンドウの領域内に重複領域があるか判定する(S304)。抽出部202は、図6(b)のローカルウィンドウ管理テーブルに基づいて重複領域があるか判定する。重複領域がない場合(S304でnoの場合)には、後述するステップS306に進む。ステップS304の処理において、抽出部202は描画部を決定したウィンドウに半透明ウィンドウとの重複領域があるか判定することとしてもよい。判定は、ステップS302で取得した図6(b)の重複領域数607と重複透過度609に基づいて行う。制御部103は、重複領域数607が0より大きく、かつ、重複透過度609が0より大きいウィンドウは半透明ウィンドウとの重複領域があると判定する。このようにすれば、半透明ウィンドウとの重複領域がある場合のみ、ステップS306において後述する図8に示す表示制御を行わせることができる。この場合、上レイヤのウィンドウを半透明とする設定がなされている場合でも、重複領域において視認性が低下する可能性がある場合には、下レイヤのウィンドウの描画データを透過させないようにすることができる。従って、重複領域における視認性の低下を防止することができる。
【0050】
重複領域があると判定された場合(S304でyesの場合)、制御部103の描画制御部205は、ステップS303において決定した描画部に対し、図7(b)に示した重複領域情報を通知する(S305)。
【0051】
次に制御部103は、ステップS303において決定した描画部に対してウィンドウの描画開始の指示を行う(S306)。ステップS306の処理については、図8を用いて詳細を後述する。そして制御部103は、表示位置又はサイズの変更が指示された全てのウィンドウについて描画開始処理が行われたか判断する(S311)。まだ描画開始処理が行われていないウィンドウがある場合(S311でnoの場合)は、ステップS303からステップS311までの処理を繰り返す。
【0052】
全てのウィンドウについて描画が開始された場合(S311でyesの場合)、制御部103は、描画開始の指示により起動されたすべての描画部がウィンドウの描画を完了したか判断する(S307)。ウィンドウの描画完了は、後述する描画部からの描画完了割り込みによって検出する。
【0053】
次に制御部103は、合成部106に合成パラメータを指定して合成開始を指示し、描画された複数のウィンドウを合成する(S308)。以上で1フレームの描画処理を完了する。
【0054】
制御部103は、入力制御部101から入力されたデータにウィンドウの位置の変更、およびサイズ変更の要求を含むものがあるか否かを判断する(S309)。ウィンドウの位置の変更、およびサイズ変更の要求がない場合は、ステップ301に戻り次の画面更新を待つ。制御部103は、ウィンドウの位置の変更、又は、サイズ変更の要求がある場合には、管理部102に対して、図7(a)に示したウィンドウ制御情報を出力する(S310)。
【0055】
制御部103の描画指示ステップS306における処理について図8のフローチャートを用いて詳細に説明する。プロセッサ及びメモリを用いて制御部103の機能を実現する形態では、図8の処理フローは、図8に示される手順をこのプロセッサに実行させるためのプログラムを示す。このプロセッサは、コンピュータであり、メモリから読み出したプログラムを実行する。メモリは、このプロセッサが読み出すことができるようにこのプログラムを記録した記録媒体である。
【0056】
制御部103の抽出部202は描画データの描画を指示するウィンドウについて、図7(b)に示した重複領域情報があるか判断する(S1001)。描画を指示するウィンドウのIDに対応する重複領域情報がない場合(S1001でnoの場合)、制御部103は描画部に描画データの描画を指示する(S1007)。描画するウィンドウのIDに対応する重複領域情報を受信している場合(1001でyesの場合)、制御部103の抽出部202は描画データが重複領域に含まれるか否かを判断する(S1002)。本実施例では、ステップS1002の判断は、図7(b)の重複領域情報に含まれる重複領域座標802、及び重複領域サイズ803の情報に基づいて行う。これらの情報と、ウィンドウにおける描画データのローカル座標とを比較することにより、ステップS1002の判断を行うことができる。描画データが重複領域に含まれない場合(S1002でnoの場合)、制御部103はステップS1007へ進み描画制御部205が描画データの描画を指示する。
【0057】
描画データが重複領域に含まれる場合(S1002でyesの場合)、制御部103の解析部204は第1の領域の輝度を取得する(S1003)。続いて解析部204は第2の領域の輝度を取得する(S1004)。本実施例では、描画部はステップS1003及びステップS1004において第1、第2の領域の輝度を取得する場合について説明したがこれに限られない。例えば、解析部204はステップS1003において第1の領域の色度を取得し、ステップS1004において第2の領域の色度を取得することとしてもよい。
【0058】
続いて制御部103の解析部204は第1の領域の輝度と第2の領域の輝度の輝度差を取得する(S1005)。ステップS1003及びステップS1004において第1の領域及び第2の領域の色度を解析部204が取得した場合には、ステップS1005において描画部は第1の領域と第2の領域の色度の色差を取得する。描画部は、ステップS1005において取得した輝度差または色差が小さい程、第1の領域と第2の領域の類似度が大きいと判断することができる。
【0059】
そして制御部103の判定部203は取得した輝度差が閾値より小さいか判定する(S1006)。ステップS1005において描画部が色差を取得した場合には、ステップS1006において取得した色差が閾値より小さいか判定する。
【0060】
ステップS1005において取得した輝度差又は色差が閾値より小さい場合(ステップS1006においてyesの場合)、制御部103の判定部203は重複領域において下レイヤの描画データの描画させるように描画制御部205に指示する(S1007)。制御部103は後述のステップS1008の処理を行う。ステップS1005で取得した輝度差が閾値以上である場合(ステップS1006においてnoの場合)、制御部103の判定部203はステップS1007の処理を行わずに後述のステップS1008の処理を行う。このようにして、描画部はステップS1003での判断結果に応じて、重複領域において、下レイヤのウィンドウの描画データを上レイヤのウィンドウに透過させるか否か決定する。
【0061】
ステップS1008では、制御部103は入力された描画データの処理が1フレーム分すべて終了したか否かを判断し、終了していない場合は、ステップS1001へ戻り、次の描画データの処理を行う。ステップS1008において1フレームの描画完了が検出されると、ステップS1009において描画指示を終了する。
【0062】
上記の例では、重複領域が存在する場合、制御部103は必ずステップS1002において描画データが重複領域に含まれるか判断することとしたがこれに限られない。例えば、重複領域が存在すると判断された場合(S1001でyesの場合)、制御部103は必ずステップS1003以降の処理を行うこととしてもよい。
【0063】
その後制御部103は、上述した様に、すべてのウィンドウの描画処理の終了を待ち(S307)、描画データを合成し画面へ表示する指示を合成部106に対して出力する(S308)。
【0064】
合成部106は、上述のようにして描画部が描画したカレントウィンドウと上レイヤのウィンドウとを合成する。合成部106によるウィンドウの合成結果は、表示制御部107に入力される。
【0065】
表示制御部107は、合成部106が合成した複数のウィンドウを表示装置に表示させる。このようにして、表示制御部107は、第1の領域と第2の領域にそれぞれ描画される描画データの類似度が閾値より大きい場合には重複領域においてカレントウィンドウの描画データを上レイヤのウィンドウに透過して表示させる。また表示制御部107は、第1の領域と第2の領域にそれぞれ描画される描画データの類似度が閾値以下である場合には、重複領域においてカレントウィンドウに描画される描画データが描画されないようにする。
【0066】
本実施例では、上レイヤのウィンドウにおいて第1の領域と第2の領域に描画される描画データの類似度が閾値よりも大きい場合、制御部103は下レイヤのウィンドウの描画データを上レイヤのウィンドウに透過させる。従って、不透過ウィンドウの表示のみのシステムと比較して画面に表示すべき情報量が増加し作業効率を向上させることができる。一方、上レイヤのウィンドウにおいて第1の領域と第2の領域に描画される描画データの類似度が閾値以下である場合には、制御部103は重複領域において下レイヤのウィンドウの描画データを描画させない。このようにして、上レイヤのウィンドウに複雑な描画データが描画される場合には描画データの表示を省略することができる。従って、重複領域における視認性の低下を改善し、視認性を向上させることができる。さらに、本実施例では、類似度が閾値以下である場合には、重複領域において、下レイヤのウィンドウの描画データを描画しない。従って、描画データを構成するために必要な画像処理や描画処理の負荷を低減させることができる。描画処理の付加低減により、画面の描画速度の向上が期待できる。
【0067】
また、描画データの類似度の判断はウィンドウ単位に行ってもよい。あるいは重複領域を複数の領域に区分し、区分した分割領域ごとに類似度の判断及び当該描画データの描画可否の決定を行ってもよい。制御部103は、類似度が閾値より大きい分割領域では下レイヤのウィンドウに描画する描画データを上レイヤのウィンドウに透過して表示させ、類似度が閾値以下である分割領域では下レイヤのウィンドウに描画する描画データが表示されないようにする。分割領域ごとに類似度の判断を行うことにより、重複領域に複数の描画データが存在する場合でも、描画データごとに描画させるか否かの判断を行うことができる。さらに、分割領域毎に描画データの描画可否を決定することにより、視認性を向上させつつ、描画データが干渉する恐れが小さい部分領域については描画データを透過させることができるので、分類領域ごとの判断を行わない場合よりも視認できる情報量が増加する。一方、ウィンドウ全体を単位として描画データの表示領域の大きさの判断を行うことにより、判断のための処理負荷を軽減し、描画速度を向上させることができる。
【0068】
また、本実施例において、制御部103の解析部204は第1の領域と第2の領域との輝度差または色差によって類似度を求める例について説明したが、これに限られない。例えば、解析部204は重複領域の空間周波数を求めてもよい。本実施例において、重複領域の空間周波数は、重複領域における画像の周期構造の細かさを表わす。制御部103の判定部203は解析部204から、重複領域において上レイヤのウィンドウに描画される画像の空間周波数を取得する。そして判定部203は重複領域の空間周波数と閾値とを比較する。例えば判定部203は、重複領域について取得される複数の空間周波数のうち最も高い空間周波数と閾値とを比較する。空間周波数が閾値より高い場合、重複領域において上レイヤのウィンドウに描画される描画データは細かく複雑な画像であると判定部203は判定する。この場合、上レイヤのウィンドウに下レイヤのウィンドウの描画データを透過して表示させると、重複領域の描画データの視認性の低下を招く可能性が高い。従って、判定部203は描画制御部205に対して、下レイヤのウィンドウの描画データを描画させないように指示する。空間周波数が閾値以下である場合、重複領域において上レイヤのウィンドウに描画される描画データは単調な画像であると判定部203は判定する。この場合、上レイヤのウィンドウに下レイヤのウィンドウの描画データを透過して表示させても、重複領域の描画データの視認性の低下を招く可能性が低い。そこで、判定部203は描画制御部205に対して、下レイヤのウィンドウの描画データを上レイヤに透過して描画させるように指示する。
【0069】
あるいは、制御部103は入力制御部101から符号化して圧縮された描画データを受信することができる。描画部は圧縮された描画データを伸長してウィンドウに描画を行う。制御部103の解析部204は重複領域において上レイヤのウィンドウに描画する描画データの圧縮率を取得する。ここで、圧縮率とは圧縮前描画データのデータサイズに対する圧縮後の描画データのデータサイズの割合のことをいう。判定部203は解析部204から圧縮率を取得し、閾値と比較する。重複領域において上レイヤのウィンドウに描画される描画データが同じデータが並んで構成されている場合には圧縮率は高くなる。一方、上レイヤのウィンドウに描画される描画データが異なるデータが並んで構成されている場合には圧縮率は低くなる。この圧縮率の変化は、ランレングス法等のデータ圧縮法を用いた場合に特に顕著である。圧縮率が所定の圧縮率より高い場合、重複領域において上レイヤのウィンドウに描画される描画データは、同じデータが並んで構成された単調な描画データであると判定部203は判定する。この場合、上レイヤのウィンドウに下レイヤのウィンドウの描画データを透過して表示させても、重複領域の描画データの視認性が低下する可能性は低い。そこで判定部203は描画制御部205に対して、下レイヤのウィンドウの描画データを上レイヤのウィンドウに透過して描画させるように指示する。一方、圧縮率が所定の圧縮率以下である場合、重複領域において上レイヤのウィンドウに描画される描画データは、異なるデータが並んで構成される複雑な描画データであると判定部203は判定する。この場合、上レイヤのウィンドウに下レイヤのウィンドウを透過して表示させると、重複領域の描画データの視認性が低下する可能性が高い。そこで、判定部203は描画制御部205に対して、下レイヤのウィンドウの描画データを描画させないように指示する。
【0070】
このようにして、上レイヤのウィンドウに複雑な描画データが描画される場合には描画データの表示を省略することができる。従って、重複領域における視認性の低下を改善し、視認性を向上させることができる。さらに、本実施例では、空間周波数が閾値より高い場合又は圧縮率が閾値以下である場合には、重複領域において、下レイヤのウィンドウの描画データを描画しない。従って、描画データを構成するために必要な画像処理や描画処理の負荷を低減させることができる。描画処理の付加低減により、画面の描画速度の向上が期待できる。
【0071】
さらに、判定部203が行う判断及び解析部204が行う解析を各描画部が行うこととしてもよい。各描画部はその描画部において描画する描画データについて、第1の領域と第2の領域の類似度、空間周波数、又は圧縮率について解析を行う。また、各描画部はその描画部において描画する描画データについて、描画を行うか否かを判定する。
【0072】
さらに、上述の空間周波数又は圧縮率についての解析および表示制御は上述の分割領域毎に行ってもよい。
【0073】
さらに、本実施例において、透過表示を行うと重複領域の視認性が低下する可能性がある場合には、下レイヤのウィンドウに描画された描画データを描画しないこととしたが、上レイヤのウィンドウの透過度を予め設定されている透過度よりも低くして、下レイヤのウィンドウの描画データを描画させる制御を行うこととしてもよい。
【0074】
<実施例2>
実施例2では、重複領域において下レイヤのウィンドウに描画される描画データと、上レイヤのウィンドウに描画される描画データの組み合わせに応じて下レイヤのウィンドウの描画データを描画するか否かを決定する場合について説明する。
【0075】
実施例2の表示制御装置の構成について、実施例1の表示制御装置の構成と異なる点について説明する。本実施例において、管理部102は、重複領域情報として、図7(b)に示した情報に加えて、重複領域の下レイヤのウィンドウに描画される描画データの種類についての情報を生成して制御部103に出力する。本実施例においては、描画データの種類として、文字と図形と自然画の種類があるものとする。また、本実施例において制御部103の解析部204は描画データの種類を解析する。
【0076】
さらに、本実施例において制御部103の判定部203は、重複領域の上レイヤのウィンドウに描画される描画データと下レイヤのウィンドウに描画される描画データとの種類の組み合わせを判定する。そして、判定部203は判定結果に応じて下レイヤのウィンドウの描画データを描画するか否か決定する。
【0077】
次に、実施例2における表示制御装置の動作について説明する。
【0078】
管理部102の動作については図4を用いて説明した動作と同じであるので説明を省略する。本実施例では、制御部103は描画データの種類の解析及びウィンドウに描画される描画データの組み合わせに応じて下レイヤのウィンドウの描画データを描画するか否かの判定を行う。制御部103の動作について、実施例1において図3を用いて説明した動作については実施例1と同じなので説明を省略する。続いて、実施例1において図8を用いて説明した、ウィンドウ描画開始指示についての処理について図9を用いて説明する。
【0079】
図9のステップS1001からステップS1002までの処理は実施例1において図8を用いて説明した処理と同じであるので同じ符号を付して説明を省略する。制御部103の解析部204は、重複領域に描画データが含まれると判断した場合(ステップS1002においてyesの場合)、上レイヤのウィンドウ、下レイヤのウィンドウそれぞれについて描画データの種類を解析する(S1100)。描画データの種類の判断とは、例えば、描画データが文字であるか、自然画であるか、又は、図形であるか判断することをいう。描画データの種類の判断は、制御部103から受信した重複領域情報のうちの描画データ種類についてのデータに基づいて行う。
【0080】
続いて制御部103の判定部203は、上レイヤのウィンドウの描画データと下レイヤのウィンドウの描画データを比較する(S1101)。上レイヤのウィンドウの描画データの種類と下レイヤのウィンドウの描画データの種類が同じである場合、描画部は実施例1で説明したステップS1003からステップS1009の処理を行う。一方、上レイヤの描画データの種類と下レイヤの描画データの種類とが異なる場合には、描画部は実施例1で説明したステップS1007の処理に進み、その後、実施例1で説明したステップS1008からステップS1009の処理を行う。
【0081】
このようにして、上レイヤのウィンドウの描画データの種類と下レイヤのウィンドウの描画データの種類が一致しているために視認性が低下する場合には、下レイヤのウィンドウの描画データを描画しないようにして視認性を向上させることができる。また、描画処理を省略することにより、画面の描画速度の向上が期待できる。
【0082】
また本実施例では、上レイヤのウィンドウの描画データの種類と下レイヤのウィンドウの描画データの種類が一致する場合でも、上レイヤのウィンドウの描画データが単調な描画データであると判定された場合には下レイヤのウィンドウの描画データを表示させる。従って、視認性が低下する可能性が低い場合には、下レイヤのウィンドウの描画データを透過して表示させ、閲覧することができる情報量を増やすことができる。
【0083】
本実施例では、上レイヤのウィンドウの描画データの種類と下レイヤのウィンドウの描画データの種類とが一致する場合に、ステップS1003以降の処理を行うこととしたがこれに限られない。例えば、上レイヤのウィンドウに文字が描画され、下レイヤのウィンドウにも文字が描画される場合には、下レイヤの文字を描画させないでステップS1008に進むようにしてもよい。上下のレイヤのウィンドウに文字が描画される場合には、下レイヤのウィンドウの文字を描画すると視認性が低下する可能性が高い。そこで、このような場合には、ステップS1003からステップS1007の処理を省略し、下レイヤのウィンドウの文字を描画しないようにすることができる。このようにして、描画処理を省略することにより、画面の描画速度の向上が期待できる。
【0084】
また、実施例1と同様に、例えば、解析部204は重複領域の空間周波数を求めてもよい。そして判定部203は重複領域の空間周波数と閾値とを比較し、重複領域において下レイヤのウィンドウの描画データを描画するか否かを決定してもよい。
【0085】
あるいは、制御部103は入力制御部101から符号化して圧縮された描画データを受信することができる。制御部103の解析部204は重複領域において上レイヤのウィンドウに描画する描画データの圧縮率を取得する。判定部203は解析部204から圧縮率を取得し、閾値と比較し、重複領域において下レイヤのウィンドウの描画データを描画するか否かを決定してもよい。
【0086】
このようにして、上レイヤのウィンドウに複雑な描画データが描画される場合には描画データの表示を省略することができる。従って、重複領域における視認性の低下を改善し、視認性を向上させることができる。さらに、本実施例では、類似度が閾値以下である場合には、重複領域において、下レイヤのウィンドウの描画データを描画しない。従って、描画データを構成するために必要な画像処理や描画処理の負荷を低減させることができる。描画処理の付加低減により、画面の描画速度の向上が期待できる。
【0087】
さらに、本実施例における判定部203が行う判断及び解析部204が行う解析を各描画部が行うこととしてもよい。各描画部はその描画部において描画する描画データについて、第1の領域と第2の領域の類似度、空間周波数、又は圧縮率について解析を行う。また、各描画部はその描画部において描画する描画データについて、描画を行うか否かを判定する。
【0088】
さらに、本実施例において、透過表示を行うと重複領域の視認性が低下する可能性がある場合には、下レイヤのウィンドウに描画された描画データを描画しないこととしたが、上レイヤのウィンドウの透過度を予め設定されている透過度よりも低くして、下レイヤのウィンドウの描画データを描画させる制御を行うこととしてもよい。
【0089】
<その他の実施例>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0090】
101 入力制御部
103 制御部
104 描画部
105 描画部
107 表示制御部

【特許請求の範囲】
【請求項1】
ウィンドウに描画データを描画する描画手段と、
第1のウィンドウと前記第1のウィンドウの下位レイヤに表示される第2のウィンドウとが重複する領域である重複領域において前記第1のウィンドウ上の領域である第1の領域に描画される描画データと前記重複領域において前記第1のウィンドウ上の領域である第2の領域に描画される描画データとが互いに類似する度合いを表す類似度を取得する取得手段と、
前記類似度が閾値より大きい場合には前記第2のウィンドウに描画する描画データを前記第1のウィンドウに透過して重複領域において表示させ、前記類似度が前記閾値以下である場合には前記第2のウィンドウに描画する描画データが前記重複領域において表示されないようにする表示制御手段とを有することを特徴とする表示制御装置。
【請求項2】
前記取得手段は、前記重複領域を複数の領域に分割した分割領域に含まれる前記第1の領域に描画される描画データと当該第1の領域を含む前記分割領域に含まれる前記第2の領域に描画される描画データとが互いに類似する度合いを表す類似度を前記分割領域毎に取得し、
前記表示制御手段は、前記類似度が前記閾値より大きい分割領域では前記第2のウィンドウに描画する描画データを前記第1のウィンドウに透過して表示させ、前記類似度が前記閾値以下である分割領域では前記第2のウィンドウに描画する描画データが表示されないようにすることを特徴とする請求項1に記載の表示制御装置。
【請求項3】
前記取得手段は、前記第1の領域に描画される描画データの輝度と前記第2の領域に描画される描画データの輝度の輝度差を取得し、
前記表示制御手段は、前記輝度差が前記閾値より小さい場合には前記第2のウィンドウに描画する描画データを前記第1のウィンドウに透過して前記重複領域において表示させ、前記輝度差が前記閾値以上である場合には前記第2のウィンドウに描画する描画データが前記重複領域において表示されないようにすることを特徴とする請求項1に記載の表示制御装置。
【請求項4】
前記取得手段は、前記第1の領域に描画される描画データの色度と前記第2の領域に描画される描画データの色度の色差を取得し、
前記表示制御手段は、前記色差が前記閾値より小さい場合には前記第2のウィンドウに描画する描画データを前記第1のウィンドウに透過して前記重複領域において表示させ、前記色差が前記閾値以上である場合には前記第2のウィンドウに描画する描画データが前記重複領域において表示されないようにすることを特徴とする請求項1に記載の表示制御装置。
【請求項5】
前記第1のウィンドウに描画される第1の描画データの種類と前記第2のウィンドウに描画される第2の描画データの種類とを判断する判断手段を有し、
前記表示制御手段は、前記第1の描画データの種類と前記第2の描画データの種類とが異なる場合には前記第2の描画データを前記重複領域において表示させ、
前記第1の描画データの種類と前記第2の描画データの種類が同じである場合であって前記類似度が前記閾値より大きい場合には前記第2の描画データを前記第1のウィンドウに透過して重複領域において表示させ、前記第1の描画データの種類と前記第2の描画データの種類が同じである場合であって前記類似度が前記閾値以下である場合には前記第2の描画データが前記重複領域において表示されないようにすることを特徴とする請求項1に記載の表示制御装置。
【請求項6】
圧縮された描画データを伸長して第1のウィンドウに描画する描画手段と、
前記第1のウィンドウと前記第1のウィンドウの下位レイヤに表示される第2のウィンドウとが重複する領域である重複領域において前記描画手段が前記第1のウィンドウに描画する描画データの圧縮率を取得する取得手段と、
前記圧縮率が閾値よりも高い場合には前記第2のウィンドウに描画される描画データを前記第1のウィンドウに透過して前記重複領域において表示させ、前記圧縮率が前記閾値以下である場合には前記第2のウィンドウに描画される描画データが前記重複領域において表示されないようにする表示制御手段とを有することを特徴とする表示制御装置。
【請求項7】
前記描画手段は、前記第1のウィンドウの領域を複数の領域に分割した分割領域毎に圧縮された描画データを伸長して前記第1のウィンドウに描画し、
前記取得手段は、前記描画手段が前記第1のウィンドウに描画する前記描画データの前記分割領域毎の圧縮率を取得し、
前記表示制御手段は、前記重複領域において前記圧縮率が所定の圧縮率よりも高い分割領域では前記第2のウィンドウに描画される描画データを前記第1のウィンドウに透過して表示させ、前記圧縮率が所定の圧縮率以下である分割領域では前記重複領域において前記第2のウィンドウに描画される描画データが表示されないようにすることを特徴とする請求項6に記載の表示制御装置。
【請求項8】
描画手段が、ウィンドウに描画データを描画する描画ステップと、
取得手段が、第1のウィンドウと前記第1のウィンドウの下位レイヤに表示される第2のウィンドウとが重複する領域である重複領域において前記第1のウィンドウ上の領域である第1の領域に描画される描画データと前記重複領域において前記第1のウィンドウ上の領域である第2の領域に描画される描画データとが互いに類似する度合いを表す類似度を取得する取得ステップと、
表示制御手段が、前記類似度が閾値より大きい場合には前記第2のウィンドウに描画する描画データを前記第1のウィンドウに透過して重複領域において表示させ、前記類似度が前記閾値以下である場合には前記第2のウィンドウに描画する描画データが前記重複領域において表示されないようにする表示制御ステップとを有することを特徴とする表示制御方法。
【請求項9】
コンピュータに、
ウィンドウに描画データを描画する描画手順と、
第1のウィンドウと前記第1のウィンドウの下位レイヤに表示される第2のウィンドウとが重複する領域である重複領域において前記第1のウィンドウ上の領域である第1の領域に描画される描画データと前記重複領域において前記第1のウィンドウ上の領域である第2の領域に描画される描画データとが互いに類似する度合いを表す類似度を取得する取得手順と、
前記類似度が閾値より大きい場合には前記第2のウィンドウに描画する描画データを前記第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