(57)【要約】【課題】クライアント機器に画面を転送する際のサーバ機器における処理の負荷を低減する。【解決手段】所定のハードウェアを用いて描画を実行する第１の描画部と、該第１の描画部のハードウェアを用いずに描画を実行する第２の描画部と、を使用して画面を生成し、前記画面のうち、前記第１の描画部による描画部分である第１の画像データと、前記第２の描画部による描画部分である第２の画像データと、を別々にクライアント機器に転送する、処理をコンピュータが実行する画像転送方法が提供される。【選択図】図１１
2014135013.tif 000002
【特許請求の範囲】
【請求項１】
所定のハードウェアを用いて描画を実行する第１の描画部と、該第１の描画部のハードウェアを用いずに描画を実行する第２の描画部と、を使用して画面を生成し、
前記画面のうち、前記第１の描画部による描画部分である第１の画像データと、前記第２の描画部による描画部分である第２の画像データと、を別々にクライアント機器に転送する、
処理をコンピュータが実行する画像転送方法。
【請求項２】
前記転送する処理は、
前記第１の画像データの描画領域及び前記第２の画像データの描画領域が画面上で重なる場合、前記第１の画像データの画像は前記重なる部分を除外して前記クライアント機器に転送し、
前記重なる領域に前記第１の画像データ又は前記第２の画像データのいずれか一方が、いずれか他方から透けて見える透過表示領域がある場合、該透過表示領域の画像データを前記第１の画像データから取得して該透過表示領域の第２の画像データと合成した画像データを前記クライアント機器に転送する、
処理をコンピュータが実行する請求項１に記載の画像転送方法。
【請求項３】
前記転送する処理は、
前記第１の描画部により前記第１の画像データの生成とは非同期に前記第１の描画部から前記第１の画像データを取得する、
処理をコンピュータが実行する請求項１又は２に記載の画像転送方法。
【請求項４】
所定のハードウェアを用いて描画を実行する第１の描画部と、
前記第１の描画部のハードウェアを用いずに描画を実行する第２の描画部と、
前記第１の描画部と前記第２の描画部とを使用して生成された画面のうち、前記第１の描画部による描画部分である第１の画像データと、前記第２の描画部による描画部分である第２の画像データと、を別々にクライアント機器に転送する転送部と、
を有するサーバ機器。
【請求項５】
所定のハードウェアを用いて描画を実行する第１の描画部と、該第１の描画部のハードウェアを用いずに描画を実行する第２の描画部と、を使用して画面を生成し、
前記画面のうち、前記第１の描画部による描画部分である第１の画像データと、前記第２の描画部による描画部分である第２の画像データと、を別々にクライアント機器に転送する、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像転送方法、サーバ機器及びプログラムに関する。
【背景技術】
【０００２】
サーバ機器がデスクトップ画面の生成を実行し、クライアント機器に提供するシンクライアントシステム等のシステムが提案されている（特許文献１〜３を参照。）。
【０００３】
デスクトップ画面を生成する際、サーバ機器は、所定のハードウェア（例えば、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、以下、ＧＰＵを例に挙げて説明する。）を利用して画面の描画を実行する場合と、ＧＰＵを用いずに画面の描画を実行する場合がある。描画を実行した結果得られる画像データは、サーバ機器からクライアント機器に転送され、クライアント機器のデスクトップ画面として利用される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−３１１９５７号公報
【特許文献２】特開２０１１−５３７６９号公報
【特許文献３】特開２００９−１８７３７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記システムにおいて、サーバ機器は、ＧＰＵにより描画を実行した結果の画像データとＧＰＵを用いずに描画を実行した結果の画像データとを合成し、合成後の画像データをクライアント機器に転送する。よって、例えば、クライアント機器の台数が増えた場合、クライアント機器に画面を転送する際のサーバ機器における処理の負荷が高くなるという課題が生じる。
【０００６】
そこで、一側面では、クライアント機器に画面を転送する際のサーバ機器における処理の負荷を低減することを目的とする。
【課題を解決するための手段】
【０００７】
一つの案では、
所定のハードウェアを用いて描画を実行する第１の描画部と、該第１の描画部のハードウェアを用いずに描画を実行する第２の描画部と、を使用して画面を生成し、
前記画面のうち、前記第１の描画部による描画部分である第１の画像データと、前記第２の描画部による描画部分である第２の画像データと、を別々にクライアント機器に転送する、
処理をコンピュータが実行する画像転送方法が提供される。
【発明の効果】
【０００８】
一態様によれば、クライアント機器に画面を転送する際のサーバ機器における処理の負荷を低減することで、サーバに集約可能なクライアントの数を増加させることができる。
【図面の簡単な説明】
【０００９】
【図１】第１〜第３実施形態にかかるシステム構成例を示す図である。
【図２】ＧＰＵの利用例を示す図である。
【図３】第１実施形態に係るサーバ機器の機能構成図である。
【図４】第１実施形態に係るシンクライアントのサーバの動作を示したフローチャートである。
【図５】第１〜第３実施形態に係るＧＰＵ共有機構の動作を示したフローチャートである。
【図６】第１〜第３実施形態に係るシンクライアントのクライアントの動作を示したフローチャートである。
【図７】第１実施形態に係る画像転送の動作を説明するための図である。
【図８】生成された２つの画面に重なる領域がある場合の画面例を示した図である。
【図９】第２実施形態に係るサーバ機器の機能構成図である。
【図１０】第２実施形態に係るシンクライアントのサーバの動作を示したフローチャートである。
【図１１】第２実施形態に係る画像転送の動作を説明するための図である。
【図１２】第２実施形態に係る画像転送の動作を説明するための図である。
【図１３】第３実施形態に係るサーバ機器の機能構成図である。
【図１４】第３実施形態に係るシンクライアントサーバの動作を示したフローチャートである。
【図１５】第３実施形態に係る画像転送の動作を説明するための図である。
【図１６】第１〜第３実施形態にかかるサーバ機器のハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
（システム構成例）
初めに、第１〜第３実施形態にかかるシステム構成例について簡単に説明する。図１は、後程説明する第１〜第３実施形態のシステムの構成例を示す図である。各実施形態のシステムは、３台のクライアント機器１０とサーバ装置２０とを有し、各クライアント機器１０とサーバ装置２０とは、ネットワークＮＷを介して接続されている。クライアント機器１０は３台でなくても、１台以上であればよい。
【００１１】
本システムは、サーバ機器２０がデスクトップ画面の生成を実行し、クライアント機器１０に提供する。サーバ機器２０側にて描画を実行した結果得られる画像データは、サーバ機器２０からクライアント機器１０に転送され、クライアント機器１０のデスクトップ画面として利用される。
【００１２】
上記システムの運用例としては、仮想デスクトップシステムが挙げられる。仮想デスクトップシステムでは、物理的なＰＣに構築されていたデスクトップ環境を、仮想化されたサーバ機器２０上の仮想マシン（以下、ＶＭ（Virtual Machine）という）に仮想的なデスクトップ環境として構築する。そして、クライアント機器１０等は、その環境をネットワークＮＷを経由して利用する。
【００１３】
ここで、図２を参照して、仮想デスクトップシステムにおけるサーバ機器２０の基本構成について簡単に説明する。サーバ機器２０は、ＶＭ２３０ａ，２３０ｂ、ハイパーバイザ―２３５、ＧＰＵ(Graphics Processing Unit)２４０及びＧＰＵ共有機構２４５を有する。
【００１４】
ＶＭ２３０ａ，２３０ｂは、サーバ機器２０が持つＣＰＵやメモリ等の資源を分割して割り当てられ仮想的な計算機として動作するものである。ハイパーバイザ―２３５は、サーバ機器２０上でＶＭを動作させ、その管理を行うためのソフトウェアである。ＧＰＵ２４０は、グラフィックス描画をする際に必要な計算処理を実行する半導体チップ(グラフィックスボード)である。ＧＰＵ共有機構２４５は、複数のグラフィックスアプリケーションから単一のＧＰＵ２４０を共有して同時に利用するための機構である。
【００１５】
図２では、グラフィックスアプリケーション２２０ａ、２２０ｂは、ＶＭ２３０ａ，２３０ｂに組み込まれたＯＳ２１０ａ、２１０ｂ上でそれぞれ動作する。ＯＳ２１０ａ、２１０ｂは、デスクトップ画面の描画を実行し、グラフィックスアプリケーション２２０ａ、２２０ｂを用いて画面に表示する。また、グラフィックスアプリケーション２２０ａ、２２０ｂは、ＣＡＤアプリケーションのように高速な画面描画を実現するために、ＧＰＵ２４０のグラフィックスアクセラレータを使用するための命令（描画命令）を出力する。描画命令は、ＶＭ２３０ａ，２３０ｂの外部に設けられたＧＰＵ共有機構２４５に送られる。ＧＰＵ共有機構２４５は、同時に複数のＶＭ２３０ａ，２３０ｂでＧＰＵ２４０を利用できるようにＧＰＵ２４０を仮想化する機構である。よって、複数のグラフィックスアプリケーション２２０ａ、２２０ｂから出力された描画命令は、ＧＰＵ２４０で同時に実行される。
【００１６】
ＧＰＵによる描画結果は、ＧＰＵ２４０からＧＰＵ共有機構２４５を経由してグラフィックスアプリケーション２２０ａ、２２０ｂに送られ、ＶＭ２３０ａ，２３０ｂ上の描画領域にそれぞれ描画される。ＧＰＵ２４０のグラフィックスアクセラレータは、ビデオチップ又はビデオチップを搭載したビデオカード等のハードウェアにより構成される。ＧＰＵ２４０のグラフィックスアクセラレータは、ＶＭ２３０ａ、２３０ｂ上でソフトウェアを用いて実行される描画処理に比べて、高性能な描画処理を高速に行うことができる。
【００１７】
なお、ＧＰＵ２４０では、グラフィックスアプリケーションのモデルを描画する領域（例えば、図２の描画領域Ｂ０）のみを対象として描画が実行される。それ以外のデスクトップ画面やウィンドウ・メニュー等の領域（例えば、図２の描画領域Ａ０）は、ＧＰＵ２４０を用いずに、例えば、ＯＳ自体やＯＳ上のソフトウェアを用いて描画される。
【００１８】
グラフィックスアプリケーション２２０ａ、２２０ｂとＧＰＵ共有機構２４５（ＧＰＵ２４０）との間は、描画命令や描画結果の画像データの転送が大量に発生する。このため、サーバ機器２０上のＶＭ数が増加した場合にそのデータ転送がボトルネックとなって、グラフィックスアプリケーション２２０ａ、２２０ｂの操作応答性が悪化することが起こり得る。
【００１９】
また、サーバ機器２０が、ＧＰＵ２４０による描画結果の画像データとＯＳ自体やＯＳ上のソフトウェアを用いて描画した結果の画像データとを合成すると、クライアント機器に画面を転送する際のサーバ機器２０における処理の負荷が高くなる。
【００２０】
そこで、以下に説明する実施形態は、ＧＰＵ共有機構２４５とシンクライアントシステムとを連携させて、クライアント機器に画面を転送する際のサーバ機器２０における処理の負荷を低減するシステムを提案する。
【００２１】
なお、本実施形態にかかるシステムは、図２に示した仮想デスクトップシステムの構成に限られない。本実施形態にかかるシステムは、サーバ機器２０側でＧＰＵ２４０を用いて描画処理された画像と、ＧＰＵ２４０を用いずに描画処理された画像とを転送し、クライアント機器１０側で各画像を合成して描画可能なシステムであれば、どんな構成を有していてもよい。以下、第１実施形態のクライアント機器１０及びサーバ機器２０の構成及び動作について、図３を参照しながら説明する。
【００２２】
＜第１実施形態＞
［クライアント機器の機能構成］
まず、発明の第１実施形態に係るクライアント機器１０の機能構成について簡単に説明する。クライアント機器１０は、シンクライアントのクライアント１００、ディスプレイ１１及び入出力デバイス１２を有する。シンクライアントのクライアント１００は、シンクライアントのクライアントプログラムをコンピュータが実行することにより実現される。シンクライアントのクライアント１００は、シンクライアントのサーバ２００から画像データを含む画面更新情報を受信し、それを展開後、ディスプレイ１１へ描画する。また、シンクライアントのクライアント１００は、サーバ機器２０にて生成されるデスクトップ画面を遠隔的に操作するための入出力イベントを入出力デバイス１２から取得し、シンクライアントのサーバ２００へその内容を転送する。入出力デバイス１２は、キーボードやマウス等の入出力操作を行うためのデバイスである。入出力デバイス１２は、キーボードやマウスに限定されず、入出力操作が可能な機器であればよい。また、ディスプレイ１１は、クライアント機器１０の外部に有していてもよい。
【００２３】
［サーバ機器の機能構成］
次に、本発明の第１実施形態に係るサーバ機器の機能構成について、図３を参照しながら説明する。サーバ機器２０により提供されるＶＭ上の仮想的なデスクトップ環境では、シンクライアントのサーバ２００が提供するデスクトップ画面は、ネットワーク等を経由してシンクライアントのクライアント１００により利用される。シンクライアントのサーバ２００は、シンクライアントのサーバプログラムをコンピュータが実行することにより実現される。
【００２４】
サーバ機器２０は、第１の描画部２１、描画実行部２２及びシンクライアントのサーバ２００を有する。第１の描画部２１はＧＰＵ２４０に相当する。描画実行部２２は、第２の描画部２３を有する。
【００２５】
シンクライアントのサーバ２００は、シンクライアントのクライアント１００から受信した入力イベントを描画実行部２２へ渡し、描画処理させる。描画実行部２２は、描画命令を出力し、第１の描画部２１にＧＰＵ２４０を用いて描画を実行させるか、又は、第２の描画部２３によってＧＰＵ２４０を用いずに描画処理する。描画実行部２２は、ＶＭ上の機能である。第２の描画部２３は、ＶＭ上のＯＳで動作する。第２の描画部２３は、例えば、ＯＳ上で起動する描画用ソフトウェアであってもよい。
【００２６】
シンクライアントのサーバ２００は、受付部２０１、取得部２０２、更新領域決定部２０３、画像圧縮部２０４及び転送部２０５を有する。
【００２７】
受付部２０１は、シンクライアントのクライアント１００から送信された入力イベントを受け付ける。受け付けた入力イベントは、描画実行部２２に送信される。
【００２８】
取得部２０２は、第１の描画部２１による描画部分である画像データ（以下、第１の画像データという。）と、第２の描画部２３による描画部分である画像データ（以下、第２の画像データという。）と、を取得する。
【００２９】
更新領域決定部２０３は、デスクトップ画面の中の更新された領域を決定する。
【００３０】
画像圧縮部２０４は、描画処理された結果が反映されたデスクトップ画面の画像データ（差分情報等）を取得し、圧縮する。描画処理された結果が反映されたデスクトップ画面の画像データは、第１の画像データ及び第２の画像データである。
【００３１】
転送部２０５は、圧縮後のデータと描画先の位置情報とを有する画面更新情報をシンクライアントのクライアント１００へ送信する。
【００３２】
［シンクライアントのサーバの動作］
次に、第１実施形態に係るシンクライアントのサーバ２００の動作について、図４を参照しながら説明する。図４は、シンクライアントのサーバにより実行されるフローチャートである。
【００３３】
まず、受付部２０１は、クライアント機器１０からの入力イベントを受け付ける（Ｓ１１）。入力イベントは、描画実行部２２に送られる。描画実行部２２は、ＧＰＵ２４０を用いて描画処理するかを判定する（Ｓ１２）。ＧＰＵ２４０を用いて描画処理すると判定された場合、描画実行部２２は、描画命令をＧＰＵ共有機構２４５に出力する（Ｓ１３）。一方、ＧＰＵ２４０を用いずに描画処理すると判定された場合、描画実行部２２は、第２の描画部２３（ＯＳ上のアプリケーションソフトウェア）を用いて描画を実行し、第２の画像データを生成する（Ｓ１４）。
【００３４】
次に、取得部２０２は、一定時間が経過したかを判定する（Ｓ１５）。一定時間が経過していなければ、Ｓ１１に戻る。一定時間が経過していれば、取得部２０２は、描画結果取得要求をＧＰＵ共有機構２４５に送信する（Ｓ１６）。取得部２０２は、ＧＰＵ２４０を用いて描画処理された結果の第１の画像データを取得する（Ｓ１７）。取得部２０２は、第２の描画部２３により描画処理された結果の第２の画像データを取得する（Ｓ１８）。転送部２０５は、取得した第１の画像データと、第２の描画部２３を用いて描画された結果の第２の画像データとを別々にシンクライアントのクライアント２００に送信する（Ｓ１９）。シンクライアントのクライアント２００に送信される第１の画像データ及び第２の画像データは、デスクトップの画面更新情報としてディスプレイ１１に表示される。
【００３５】
［ＧＰＵ共有機構の動作］
次に、第１実施形態に係るＧＰＵ共有機構２４５の動作について、図５を参照しながら説明する。図５は、ＧＰＵ共有機構２４５により実行されるフローチャートである。
【００３６】
ＧＰＵ共有機構２４５は、描画命令を受信したかを判定する（Ｓ２１）。描画命令を受信した場合、ＧＰＵ共有機構２４５は、受信した描画命令を、ＧＰＵ２４０を用いて実行し（Ｓ２２）、描画命令等の待ち受け状態に戻る。また、Ｓ２１にて描画命令を受信しなかった場合、ＧＰＵ共有機構２４５は、描画結果取得要求を受信したかを判定する（Ｓ２３）。描画結果取得要求を受信した場合、ＧＰＵ共有機構２４５は、描画結果の第１の画像データをシンクライアントのサーバ２００へ送信し（Ｓ２４）、描画命令等の待ち受け状態に戻る。Ｓ２３にて描画結果取得要求を受信しなかった場合、描画命令等の待ち受け状態に戻る。
【００３７】
［シンクライアントのクライアントの動作］
次に、第１実施形態に係るシンクライアントのクライアント１００の動作について、図６を参照しながら説明する。図６は、シンクライアントのクライアントにより実行されるフローチャートである。
【００３８】
シンクライアントのクライアント１００は、クライアント機器１０に接続された入出力デバイス１２から入力イベントを取得する（Ｓ３１）。次に、シンクライアントのクライアント１００は、取得した入力イベントをシンクライアントのサーバ２００へ送信する（Ｓ３２）。また、シンクライアントのクライアント１００は、シンクライアントのサーバ２００から画面更新情報を受信する（Ｓ３３）。シンクライアントのクライアント１００は、画面更新情報に含まれる第１の画像データ及び第２の画像データを展開する（Ｓ３４）。シンクライアントのクライアント１００は、展開後の画像データを使用してクライアント機器１０のデスクトップ画面の表示内容を更新し（Ｓ３５）、入力イベントの取得処理へ戻る。
【００３９】
以上、第１実施形態の画像転送方法によれば、サーバ機器２０が実行する描画処理は、ＧＰＵ２４０を用いて描画を実行する第１の描画部２１と、ＧＰＵ２４０を用いずにＶＭ２３０のＯＳ２１０上で描画を実行する第２の描画部２３とが行う。例えば、図７に図示されたデスクトップ画面Ａのうち、第２の描画部２３は、斜線部分の領域Ｂ以外の領域についての画面の画像データ（第２の画像データ）を生成する。第１の描画部２１は、領域Ｂについての画面の画像データ（第１の画像データ）を生成する。このとき、第１の描画部２１は、描画命令に対してＧＰＵ２４０を用いて描画処理のみ実行し、実行された描画処理の結果の画像データをＶＭ２３０上のグラフィックスアプリケーション２２０に転送しない。よって、グラフィックスアプリケーション２２０の画面には、領域Ｂ以外の領域についての画像のみが表示される。
【００４０】
シンクライアントのサーバ２００は、第１の画像データを、第１の画像データが生成されるタイミングとは非同期に、クライアント機器１０への画像の転送のタイミングに、ＧＰＵ共有機構２４５から取得する。これにより、ＧＰＵ共有機構２４５とシンクライアントのサーバ２００との間で描画命令毎に実行されていた描画結果の転送回数が、クライアント機器１０への画像の転送回数に低減され、データ転送量を削減できる。これにより、サーバ機器２０における処理の負荷を軽減し、サーバ機器２０へ集約できるＶＭ数を増加させることによってコストを削減することができる。
【００４１】
また、サーバ機器２０は、第１及び第２の画像データの合成処理を行わない。第１及び第２の画像データは、別々に転送され、シンクライアントのクライアント１００により合成される。合成後のデスクトップ画面は、クライアント機器１０側のディスプレイ１１に表示される。これにより、クライアント機器１０に画面を転送する際のサーバ機器２０の処理の負荷を低減することができる。
【００４２】
＜第２実施形態＞
次に、本発明の第２実施形態のサーバ機器２０について説明する。第１実施形態では、サーバ機器２０は、デスクトップ画面の転送のタイミングに第１の画像データと第２の画像データとを別々にクライアント機器１０に転送した。
【００４３】
これによれば、図８に示されるように、第２の画像データ（デスクトップ画面Ａの描画結果）と第１の画像データ（ＧＰＵ２４０で描画された領域Ｂの描画結果）とは別々に転送される。このため、第２の画像データの描画領域（デスクトップ画面Ａ）と第１の画像データの描画領域（領域Ｂ）とが画面上で重なる場合であって、その重なる領域に第１の画像データ又は第２の画像データの一方が、他方から透けて見える透過表示領域がある場合、クライアント機器１０に表示される画像に不具合が生じる場合がある。
【００４４】
より具体的に説明すると、ＧＰＵ共有機構２４５は、ＧＰＵ２４０が描画した結果である第１の画像データのみを管理している。デスクトップ画面Ａ上に描画された任意のウィンドウに対し、シンクライアントのサーバ２００では、第１の画像データと第２の画像データとが重なる領域の上下関係に関する情報をＯＳ２１０から取得する。任意のウィンドウとは、例えば、他のアプリケーションで起動されているウィンドウをいう。図８では、「アプリ画面」として表示されている。シンクライアントのサーバ２００は、ウィンドウ部分を描画する第２の画像データが、ＧＰＵ２４０の描画結果の第１の画像データと重なっている場合、ウィンドウが重なっている部分とデスクトップ画面Ａ上で描画内容に更新があった部分を第１の画像データから除外した残りの領域Ｂ１の第１の画像データを転送する。このとき、第１の画像データは、第２の画像データとは別々にシンクライアントのクライアント１００に転送される。
【００４５】
シンクライアントのクライアント１００は、シンクライアントのサーバ２００から別々に送信された、重なりが存在する部分を除外した残りの領域Ｂ１の第１の画像データと、第２の画像データとをそのまま合成して表示する。よって、ＧＰＵの描画結果からウィンドウが重なっている部分のデータを消去した残りの領域Ｂ１の第１の画像データは、ウィンドウがＧＰＵの描画領域を背景として透過表示される領域（図８のＯＳ２１０に表示したＬ字状の領域Ｃ）がある場合、透過部分の領域Ｃの背景に描画される画像を含んでいない。
【００４６】
よって、シンクライアントのクライアント１００で第１及び第２の画像データを合成し、ディスプレイ１１に描画した場合、透過部分の領域Ｃに背景として透過して表示されるべき画像が描画されない。よって、ディスプレイ１１に描画した領域Ｃの斜線部分のように、描画内容に矛盾が生じた不自然な描画が表示される。以下に説明する第２の実施形態では、透過部分の領域においても描画内容に矛盾が生じない画像をクライアント機器１０に提供するサーバ機器２０について説明する。
【００４７】
［サーバ機器の機能構成］
まず、第２実施形態に係るサーバ機器２０の機能について、図９を参照しながら説明する。図９は、第２実施形態に係るサーバ機器２０の機能構成図である。
【００４８】
シンクライアントのサーバ２００は、受付部２０１、更新領域決定部２０３、画像圧縮部２０４、転送部２０５、重なりチェック部３０１、透過表示領域チェック部３０２、透過表示領域取得部３０３、背景描画内容取得部３０４、背景描画部３０５、透過表示領域画面内容取得部３０６、非透過表示領域取得部３０７、非透過表示領域画面内容取得部３０８、ＧＰＵ共有機構描画領域取得部３０９及びＧＰＵ共有機構描画内容取得部３１０を有する。
【００４９】
受付部２０１は、入出力デバイス１２から取得した入出力イベントをシンクライアントのクライアント１００から取得し、描画実行部２２に送信する。
【００５０】
更新領域決定部２０３は、定期的にデスクトップ画面の表示内容を取得し、その内容から更新のあった領域を決定する。
【００５１】
重なりチェック部３０１は、更新領域決定部２０３によって検出された更新領域の中でデスクトップ画面の描画領域（その他ウィンドウ）とＧＰＵ共有機構２４５（ＧＰＵ２４０）による描画領域に重なりがあるかどうかを判定する。
【００５２】
透過表示領域チェック部３０２は、重なりチェック部３０１で重なりがあると判定された場合にその重なりがあった領域の中で透過表示されている領域が存在するかどうかを判定する。
【００５３】
透過表示領域取得部３０３は、透過表示領域チェック部３０２で透過表示領域があると判定された場合に透過表示されている領域とそれ以外の透過表示されていない領域を別々に切り出す。
【００５４】
背景描画内容取得部３０４は、透過表示されている領域の画面描画内容をＧＰＵ共有機構２４５から取得する。
【００５５】
背景描画部３０５は、背景描画内容取得部３０４で取得した画面描画内容から透過表示されている領域の背景のみを描画する。透過表示領域画面内容取得部３０６は、透過表示されている領域の画面表示内容を取得する。これにより、第１の画像データのうち、重なっている領域であって透過表示領域の背景部分の画像データが取得され、その部分の表示内容が合成された、透過表示されている領域の画面表示内容が取得される。
【００５６】
非透過表示領域取得部３０７は、透過表示領域取得部３０３で切り分けられた透過表示されていない領域を取得する。非透過表示領域画面内容取得部３０８は、透過表示されていない領域の画面表示内容を取得する。これにより、第２の画像データが取得される。
【００５７】
ＧＰＵ共有機構描画領域取得部３０９は、更新が必要なＧＰＵ共有機構２４５の描画領域を更新領域と透過表示されている領域及び透過表示されていない領域とから算出する。
【００５８】
ＧＰＵ共有機構描画内容取得部３１０は、画面表示内容の更新が必要な領域のＧＰＵ共有機構２４５の画面描画内容をＧＰＵ共有機構２４５から取得する。これにより、第１の画像データのうちの重なっていない領域の画像が取得される。
【００５９】
画像圧縮部２０４は、透過表示領域画面内容取得部３０６や非透過表示領域画面内容取得部３０８、ＧＰＵ共有機構描画内容取得部３１０が取得した、画面の画像データを圧縮する。転送部２０５は、画像圧縮部２０４が処理した後のデータと描画先の位置情報とを有する画面更新情報をシンクライアントのクライアント１００へ送信する。
【００６０】
［シンクライアントのサーバの動作］
次に、第２実施形態に係るシンクライアントのサーバ２００の動作について、図１０を参照しながら説明する。図１０は、シンクライアントのサーバにより実行されるフローチャートである。なお、ＧＰＵ共有機構２４５及びシンクライアントのクライアント１００の動作は、第１実施形態と同様であるため、ここでは説明を省略する。
【００６１】
受付部２０１は、定期的な処理を行うために、所定時間だけ待機する（Ｓ１０１）。受付部２０１は、所定時間が経過したかを判定し（Ｓ１０２）、所定時間が経過するまで待機状態に戻る。所定時間が経過した場合、更新領域決定部２０３は、画面の中で更新された領域を決定する（Ｓ１０３）。重なりチェック部３０１は、更新領域においてデスクトップ画面の描画領域（その他ウィンドウを含む）とＧＰＵ共有機構２４５（ＧＰＵ２４０）の描画領域に重なる領域があるかを判定する（Ｓ１０４、Ｓ１０５）。例えば、図１１の例では、重なりチェック部３０１は、更新領域においてデスクトップ画面の描画領域Ａ（その他のアプリケーションで起動されたウィンドウを含む）とＧＰＵ共有機構２４５（ＧＰＵ２４０）の描画領域Ｂに重なる領域があるかを判定する。
【００６２】
重なる領域が無いと判定された場合、非透過表示領域取得部３０７により実行される処理Ｓ１１３へ進む。ここでは、図１１に示されるように、デスクトップ画面の描画領域Ａと描画領域Ｂとは、アプリ画面の一部で重なりが生じている。重なる領域があると判定された場合、透過表示領域チェック部３０２は、重なる領域に透過表示領域が存在するかを判定する（Ｓ１０６，Ｓ１０７）。透過表示領域が存在しないと判定された場合、非透過表示領域取得部３０７が実行するＳ１１３の処理へ進む。
【００６３】
図１１では、デスクトップ画面の描画領域Ａと描画領域Ｂとは、重なりが存在する部分に透過表示領域Ｃが存在する。このように透過表示領域が存在すると判定された場合、透過表示領域取得部３０３は、透過表示領域と非透過表示領域を別々に切り出す（Ｓ１０８）。背景描画内容取得部３０４は、透過表示領域の画面描画内容をＧＰＵ共有機構２４５に保持されている第１の画像データから取得する（Ｓ１０９）。背景描画部３０５は、ＧＰＵ共有機構２４５から取得した画面描画内容を使用して透過表示領域の背景のみを描画する（Ｓ１１０）。これにより、図１１の透過表示領域Ｃのうちの領域Ｂと重なる部分については、第１の画像データから切り出された背景部分の画像Ｃ１が描画される。
【００６４】
次に、透過表示領域画面内容取得部３０６は、デスクトップ画面Ａの透過表示領域の表示内容を第２の画像データから取得する（Ｓ１１１）。これにより、図１１のデスクトップ画面Ａの透過表示領域Ｃの表示内容が第２の画像データから取得される。
【００６５】
画像圧縮部２０４は、取得した画像データを圧縮し、その後、転送部２０５は、圧縮後のデータと描画先の位置情報とを有する画面更新情報をシンクライアントのクライアント１００へ送信する（Ｓ１１２）。
【００６６】
非透過表示領域取得部３０７は、切り出された非透過表示領域を取得する（Ｓ１１３）。非透過表示領域画面内容取得部３０８は、非透過表示領域のデスクトップ画面の表示内容を取得する（Ｓ１１４）。これにより、図１１のデスクトップ画面Ａの第２の画像データのうち、透過表示領域ＣとＧＰＵ共有機構２４５（ＧＰＵ２４０）の描画領域Ｂ以外の領域の画像データが取得される。
【００６７】
画像圧縮部２０４は、取得した画像データを圧縮し、その後、転送部２０５は、圧縮後のデータと描画先の位置情報とを有する画面更新情報をシンクライアントのクライアント１００へ送信する（Ｓ１１５）。
【００６８】
次に、ＧＰＵ共有機構描画領域取得部３０９は、更新が必要なＧＰＵ共有機構２４５の描画領域を更新領域と透過表示領域及び非透過表示領域とから算出する（Ｓ１１６）。ＧＰＵ共有機構描画内容取得部３１０は、更新が必要なＧＰＵ共有機構２４５の画面描画内容をＧＰＵ共有機構２４５から取得する（Ｓ１１７）。これにより、図１１の第１の画像データから描画領域Ｂの第１の画像データのうち、アプリ画面及び透過表示領域Ｃと重なっている部分以外の領域Ｂ１の画像データが取得される。
【００６９】
画像圧縮部２０４は、取得した画像データを圧縮し、その後、転送部２０５は、圧縮後のデータと描画先の位置情報とを有する画面更新情報をシンクライアントのクライアント１００へ送信する（Ｓ１１８）。そして、所定時間だけ待機する処理の先頭に戻る（Ｓ１０１）。
（実施例）
実施例では、以上に説明した第２実施形態を、図１２を参照しながら更に詳しく説明する。本実施例では、ＧＰＵ共有機構２４５の描画領域Ｂと、その他のアプリケーションのウィンドウを含む描画領域Ａとが重なった領域中で、ウィンドウの背景を透過して表示している領域Ｃが検出される。そして、その背景に含まれる領域の画像Ｃ１が、ＧＰＵ共有機構２４５から取得され、描画される。本実施例では、背景の画像Ｃ１は、ウィンドウとその背景のデスクトップ画面表示内容と合成され、合成後の画面表示内容がシンクライアントのクライアント１００へ転送される。
【００７０】
本実施例における処理の流れについて述べる。本実施例では、描画先の位置情報としてＸ座標ｘ、Ｙ座標ｙ、描画領域の幅ｗ、描画領域の高さｈを使用したデータ［ｘ，ｙ，ｗ，ｈ］を使用するものとする。このとき、データ［ｘ，ｙ，ｗ，ｈ］は、左から順に、領域左上のＸ座標ｘ、領域左上のＹ座標ｙ、座標（ｘ、ｙ）の位置からの幅ｗ、座標（ｘ、ｙ）の位置からの高さｈを表す。
【００７１】
また、領域を表す値として領域左上のＸ座標ｘ１、領域左上のＹ座標ｙ１、領域右下のＸ座標ｘ２、領域右下のＹ座標ｙ２を使用した座標（ｘ１、ｙ１）−（ｘ２、ｙ２）を使用するものとする。以降の実施例でも、同じものを使用することとする。
【００７２】
以下では、説明を容易にするために、便宜上、デスクトップ画面Ａの座標系とＧＰＵ２４０にて生成される描画領域の座標系とは同じとして扱う。しかしながら、デスクトップ画面Ａの座標系とＧＰＵ２４０の座標系とは異なる座標系であってもよい。その場合、所定の変換機構を介して一方の座標系を変換して他方の座標系と整合させる。
【００７３】
また、本実施例では、領域を表す値として（左上のX座標,左上のY座標）−（右下のX座標,右下のY座標）を使用しているが、この表現・情報に限定するものではなく、その他の表現を使用しても良い。また、描画先の位置情報として、描画先のX座標及びY座標、描画領域の幅及び高さを組み合わせたものを使用しているが、この位置情報に限ったものではなく、その他の位置情報を利用して表現しても良い。これらの点は、これ以降の実施例でも同様である。
【００７４】
なお、ＧＰＵ共有機構２４５及びシンクライアントのクライアント１００の動作は、第１実施形態と同様である。ＧＰＵ共有機構２４５の動作は、一部の処理において位置情報を明記するために以下に記載し、シンクライアントのクライアント１００の動作説明のみ省略する。
【００７５】
（ＧＰＵ共有機構の動作例）
本実施例のＧＰＵ共有機構２４５の動作について、図５を参照して説明する。
【００７６】
ＧＰＵ共有機構２４５は、描画命令を受信したかを判定する（Ｓ２１）。描画命令を受信した場合、ＧＰＵ共有機構２４５は、受信した描画命令を、ＧＰＵ２４０を用いて実行し（Ｓ２２）、描画命令等の待ち受け状態に戻る。また、Ｓ２１にて描画命令を受信しなかった場合、ＧＰＵ共有機構２４５は、描画結果取得要求を受信したかを判定する（Ｓ２３）。描画結果取得要求（図１２では、座標が[275,100,25,100],[100,175,175,25]の描画結果取得要求）を受信した場合、ＧＰＵ共有機構２４５は、描画結果の第１の画像データをシンクライアントのサーバ２００へ送信し（Ｓ２４）、描画命令等の待ち受け状態に戻る。Ｓ２３にて描画結果取得要求を受信しなかった場合、描画命令等の待ち受け状態に戻る。
【００７７】
（サーバの動作例）
次に、本実施例にかかるシンクライアントのサーバ２００の動作について、図１０及び図１２を参照して説明する。受付部２０１は、定期的な処理を行うために、所定時間（例えば、３３ｍｓ（１秒間に３０回という意味））だけ待機する（Ｓ１０１）。受付部２０１は、所定時間が経過したかを判定し（Ｓ１０２）、所定時間が経過するまで待機状態に戻る。所定時間が経過した場合、更新領域決定部２０３は、画面の中で更新された領域を決定する（Ｓ１０３）。図１２では、座標(100,100)-(500,300)の更新領域が決定されたとする。
【００７８】
重なりチェック部３０１は、更新領域においてデスクトップ画面の描画領域Ａ（その他ウィンドウを含む）とＧＰＵ共有機構２４５（ＧＰＵ２４０）の描画領域Ｂに重なりがあるか判定する。重なりがないと判定された場合、非透過表示領域取得部３０７により実行される処理Ｓ１１３へ進む。ここで、重なりがあると判定された場合、透過表示領域チェック部３０２は、図１２では、座標(100,100)-(300,200)で示される重なりのある領域に透過表示領域が存在するかを調べる（Ｓ１０６，Ｓ１０７）。透過表示領域が存在しないと判定された場合、非透過表示領域取得部３０７が実行するＳ１１３の処理へ進む。
【００７９】
透過表示領域が存在すると判定された場合、透過表示領域取得部３０３は、透過表示領域と非透過表示領域を別々に切り出す（Ｓ１０８）。本実施例では重なりのある領域に、座標(275,100)-(300,200),(100,175)-(275,200)で示される透過表示領域Ｃが存在すると判定される。よって、透過表示領域取得部３０３は、透過表示領域と非透過表示領域（図１２の座標(100,100)-(275,175)）を別々に切り出す。背景描画内容取得部３０４は、透過表示領域の画面描画内容をＧＰＵ共有機構２４５から取得する（Ｓ１０９）。背景描画部３０５は、ＧＰＵ共有機構２４５から取得した画面描画内容を使用して透過表示領域の背景のみを描画する（Ｓ１１０）。透過表示領域画面内容取得部３０６は、透過表示領域のデスクトップ画面の表示内容を取得する（Ｓ１１１）。画像圧縮部２０４は取得した画像データを圧縮する。その後、転送部２０５は圧縮後のデータと描画先の位置情報（図１２では、座標[275,100,25,100],[100,175,175,25]）を画面更新情報としてシンクライアントのクライアント１００へ送信する（Ｓ１１２）。
【００８０】
非透過表示領域取得部３０７は、切り出された非透過表示領域を取得する（Ｓ１１３）。非透過表示領域画面内容取得部３０８は、非透過表示領域のデスクトップ画面の表示内容を取得する（Ｓ１１４）。画像圧縮部２０４は取得した画像データを圧縮する。その後、転送部２０５は、圧縮後のデータと描画先の位置情報（図１２では、座標[100,100,175,75]）を画面更新情報としてシンクライアントのクライアント１００へ送信する（Ｓ１１５）。
【００８１】
次に、ＧＰＵ共有機構描画領域取得部３０９は、更新が必要なＧＰＵ共有機構２４５の描画領域（図１２では、座標(100,200)-(300,300),(300,100)-(500,300)）を更新領域と透過表示領域及び非透過表示領域とから算出する（Ｓ１１６）。ＧＰＵ共有機構描画内容取得部３１０は、更新が必要なＧＰＵ共有機構２４５の画面描画内容をＧＰＵ共有機構２４５から取得する（Ｓ１１７）。画像圧縮部２０４は、取得した画像データを圧縮する。その後、転送部２０５は、圧縮後のデータと描画先の位置情報（図１２では、座標[100,200,200,100],[300,100,200,200]）を画面更新情報としてシンクライアントのクライアント１００へ送信する（Ｓ１１８）。そして、所定時間だけ待機する処理の先頭に戻る（Ｓ１０１）。
【００８２】
以上、第２実施形態の画像転送方法によれば、サーバ機器２０が実行する描画処理は、ＧＰＵ２４０を用いて描画する第１の描画部２１と、ＧＰＵ２４０を用いずにＯＳ２１０上で描画する第２の描画部２３とにより行われる。そして、シンクライアントのサーバ２００は、ウィンドウ部分を描画する第２の画像データが、ＧＰＵ２４０の描画結果である第１の画像データと重なっている場合、ウィンドウが重なっている部分のデータを第１の画像データから除外する。除外された第１の画像データは、第２の画像データとは別々に転送される。
【００８３】
加えて、本実施形態では、ウィンドウとＧＰＵ２４０とに重なる領域があって、その重なる領域に透過表示される領域がある場合、透過部分の領域の背景に描画されるべき画像をＧＰＵ２４０により描画された第１の画像データから切り出す。切り出された第１の画像データは、透過部分の領域の画面表示内容と合成され、合成後の画面表示内容がシンクライアントのクライアント１００に転送される。これにより、描画内容の重ね合わせ時の不具合が解決され、クライアント機器１０は、正常な表示内容の画面を描画することが可能となる。
【００８４】
また、本実施形態においても、シンクライアントのサーバ２００は、第１の画像データを、第１の画像データが生成されるタイミングとは非同期に、クライアント機器１０への転送のタイミングに応じてＧＰＵ共有機構２４５から取得する。これにより、ＧＰＵ共有機構２４５とシンクライアントのサーバ２００との間でのデータ転送量を抑制できる。
【００８５】
＜第３実施形態＞
次に、本発明の第３実施形態のサーバ機器２０について説明する。第２実施形態では、ＧＰＵ２４０により描画された第１の画像データが重なり部分の透過表示領域の背景側に描画される場合についての描画対象の切り出し及び画像転送方法について説明した。これに対して、第３実施形態では、ＧＰＵ２４０により描画された第１の画像データが重なり部分の透過表示領域の前景側に描画される場合についての描画対象の切り出し及び画像転送方法について説明する。
【００８６】
具体的には、第３実施形態では、ＧＰＵ共有機構２４５の描画領域の背面に、一部ＧＰＵ共有機構２４５の画面表示を透過して描画する領域が存在する例を挙げて説明する。この例では、ＧＰＵ共有機構２４５の描画領域とその他のアプリケーションのウィンドウの描画領域が重なった領域の中で、ＧＰＵ共有機構２４５の描画領域を透過して表示している領域を検出し、その領域の前景をＧＰＵ共有機構２４５から取得して描画する。それにより、ＧＰＵ共有機構２４５の描画領域（前景）とウィンドウ（背景）のデスクトップ画面表示内容を合成し、その画面表示内容を取得後、シンクライアントのクライアント１００へ転送する。
【００８７】
［サーバ機器の機能構成］
第３実施形態に係るサーバ機器２０の機能構成について、図１３を参照しながら説明する。第３実施形態に係るサーバ機器２０は、図９に示した第２実施形態に係るサーバ機器２０の機能構成に加えて、被重なりチェック部４００を有する点のみ第２実施形態に係るサーバ機器２０の機能構成と異なる。被重なりチェック部４００は、更新領域においてウィンドウとＧＰＵ共有機構２４５の描画領域の下に重なりがあるかを調べる。
【００８８】
［シンクライアントのサーバの動作］
次に、第３実施形態に係るシンクライアントのサーバ２００の動作について、図１４を参照しながら説明する。図１４は、シンクライアントのサーバにより実行されるフローチャートである。なお、ＧＰＵ共有機構２４５及びシンクライアントのクライアント１００の動作は、第１及び第２実施形態と同様であるため、ここでは説明を省略する。
【００８９】
ただし、図５に示したＧＰＵ共有機構２４５の動作において、Ｓ２３にて受信する描画結果取得要求は、本実施形態では、座標が[100,100,200,100]の描画結果取得要求とする。描画結果取得要求を受信した場合、ＧＰＵ共有機構２４５は、描画結果の第１の画像データをシンクライアントのサーバ２００へ送信する。そして、描画命令等の待ち受け状態に戻る。Ｓ２３にて描画結果取得要求を受信しなかった場合であって、透過表示領域取得要求を受信した場合、ＧＰＵ共有機構２４５は、描画結果の画像データから透過表示領域の座標(100,100)-(300,200)を検出する。その後、ＧＰＵ共有機構２４５は、検出された透過表示領域をシンクライアントサーバ２００へ送信する。そして、描画命令等の待ち受け状態に戻る。
【００９０】
シンクライアントのサーバ２００の動作が開始されると、受付部２０１は、定期的な処理を行うために、所定時間だけ待機する（Ｓ１０１）。受付部２０１は、所定時間経過していない場合、待機状態に戻る（Ｓ１０２）。所定時間経過した場合、更新領域決定部２０３は、画面表示の中の更新領域を決定する（Ｓ１０３）。図１５では、画面表示の中の更新領域は、座標(100,100)-(500,300)の範囲と決定される。
【００９１】
重なりチェック部３０１は、更新領域においてウィンドウとＧＰＵ共有機構２４５の描画領域に重なる領域があるかを調べる（Ｓ１０４）。被重なりチェック部４００は、更新領域においてウィンドウとＧＰＵ共有機構２４５の描画領域の下に重なる領域があるかを調べる（Ｓ４００）。Ｓ１０５において重なる領域が無いと判定された場合、非透過表示領域取得部３０７により実行される処理Ｓ１１３へ進む。Ｓ１０５において重なる領域があると判定された場合、透過表示領域チェック部３０２は、重なる領域に透過表示領域が（ＧＰＵ共有機構２４５の描画領域の下に重なる領域がある場合も含めて）存在するかを判定する（Ｓ１０６，Ｓ１０７）。透過表示領域が存在しないと判定された場合、非透過表示領域取得部３０７が実行するＳ１１３の処理へ進む。
【００９２】
本実施形態では、図１５に示されるように、重なりのある領域に透過表示領域として座標(100,100)-(300,200)で示される領域があると判定される。透過表示領域が存在すると判定された場合、透過表示領域取得部３０３は、透過表示領域と非透過表示領域を別々に切り出す（Ｓ１０８）。本実施例では重なりのある領域に透過表示領域(=(100,100)-(300,200))が存在すると判定される。背景描画内容取得部３０４は、透過表示領域の画面描画内容をＧＰＵ共有機構２４５から取得する（Ｓ１０９）。背景描画部３０５は、ＧＰＵ共有機構２４５から取得した画面描画内容を使用して透過表示領域の背景、前景を描画する（Ｓ１１０）。
【００９３】
次に、透過表示領域画面内容取得部３０６は、透過表示領域のデスクトップ画面Ａの表示内容を取得する（Ｓ１１１）。画像圧縮部２０４は，取得した画像データを圧縮し、その後，転送部２０５は、圧縮後のデータと描画先の位置情報(=[100,100,200,100])を含む画面更新情報をシンクライアントのクライアント１００へ送信する（Ｓ１１２）。
【００９４】
次に、非透過表示領域取得部３０７は、切り出された非透過表示領域を取得する（Ｓ１１３）。非透過表示領域画面内容取得部３０８は、非透過表示領域のデスクトップ画面の表示内容を取得する（Ｓ１１４）。画像圧縮部２０４は、取得した画像データを圧縮し、その後、転送部２０５は、圧縮後のデータと描画先の位置情報（本実施形態ではなし）を画面更新情報としてクライアントへ送信する（Ｓ１１５）。
【００９５】
次に、ＧＰＵ共有機構描画領域取得部３０９は、更新が必要なＧＰＵ共有機構２４５の描画領域（図１５では座標(100,200)-(300,300),(300,100)-(500,300)）を更新領域と透過表示領域・非透過表示領域から算出する（Ｓ１１６）。ＧＰＵ共有機構描画内容取得部３１０は、更新が必要なＧＰＵ共有機構２４５の画面描画内容をＧＰＵ共有機構２４５から取得する（Ｓ１１７）。画像圧縮部２０４は、取得した画像データを圧縮する。その後、転送部２０５は、圧縮後のデータと描画先の位置情報（図１５では座標[100,200,200,100],[300,100,200,200]）を有する画面更新情報をクライアントへ送信する（Ｓ１１８）。そして、所定時間だけ待機する処理の先頭に戻る（Ｓ１０１）。
【００９６】
以上に説明したように、第３実施形態では、ＧＰＵ２４０により描画された第１の画像データが重なり部分の透過表示領域の前景側に描画される場合においても、その重なりのある領域に、ウィンドウがＧＰＵの描画領域を前景として透過表示される領域がある場合、透過部分の領域の前景に描画されるべき画像（図１５では領域Ｃ２の前景）をＧＰＵ２４０により描画された第１の画像データから切り出して、透過部分の領域の画面表示内容と合成され、合成後の画面表示内容がシンクライアントのクライアント１００に転送される。これにより、描画内容の重ね合わせ時の不具合が解決され、クライアント機器１０は、正常な表示内容の画面を描画することが可能となる。
【００９７】
また、本実施形態においても、シンクライアントのサーバ２００は、第１の画像データを、第１の画像データが生成されるタイミングとは非同期に、クライアント機器１０への転送のタイミングに応じて、ＧＰＵ共有機構２４５から取得する。これにより、ＧＰＵ共有機構２４５とシンクライアントのサーバ２００との間でのデータ転送量を抑制できる。
【００９８】
（ハードウェア構成例）
最後に、本実施形態に係るサーバ機器２０のハードウェア構成について、図１６を参照しながら簡単に説明する。図１６は、本実施形態にかかるサーバ機器２０のハードウェア構成例を示す図である。
【００９９】
図１６に示すように、サーバ機器２０は、入力装置１０１、表示装置１０２、外部Ｉ／Ｆ１０３、ＲＡＭ（Random Access Memory）１０４、ＲＯＭ（Read Only Memory）１０５、ＣＰＵ（Central Processing Unit）１０６、通信Ｉ／Ｆ１０７及びＨＤＤ（Hard Disk Drive）１０８を備え、それぞれがバスＢで相互に接続されている。
【０１００】
入力装置１０１は、キーボードやマウスなどを含み、サーバ機器２０に各操作を入力するのに用いられる。表示装置１０２は、ディスプレイなどを含み、デスクトップ画面等を表示する。
【０１０１】
通信Ｉ／Ｆ１０７は、サーバ機器２０をネットワークＮＷに接続するインタフェースである。これにより、サーバ機器２０は、通信Ｉ／Ｆ１０７を介して、クライアント機器１０と画像データ等のデータを送受信する。
【０１０２】
ＨＤＤ１０８は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、装置全体を制御する基本ソフトウェアであるＯＳ（Operating System）、及びＯＳ上において描画機能等の各種機能を提供するアプリケーションソフトウェアなどがある。また、ＨＤＤ１０８は、上記各実施形態の画像生成処理や画像転送処理を行うためにＣＰＵ１０６により実行されるプログラムを格納する。
【０１０３】
外部Ｉ／Ｆ１０３は、外部装置とのインタフェースである。外部装置には、記録媒体１０３ａなどがある。サーバ機器２０は、外部Ｉ／Ｆ１０３を介して、記録媒体１０３ａの読み取り及び／又は書き込みを行うことができる。記録媒体１０３ａとしては、ＣＤ（Compact Disk）、及びＤＶＤ（Digital Versatile Disk）、ならびに、ＳＤメモリカード（SD Memory card）やＵＳＢメモリ（Universal Serial Bus memory）等が挙げられる。
【０１０４】
ＲＯＭ１０５は、不揮発性の半導体メモリ（記憶装置）であり、起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ設定、及びネットワーク設定などのプログラムやデータが格納されている。ＲＡＭ１０４は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。ＣＰＵ１０６は、上記記憶装置（例えば「ＨＤＤ」や「ＲＯＭ」など）から、プログラムやデータをＲＡＭ上に読み出し、処理を実行することで、装置全体の制御や搭載機能を実現する演算装置である。
【０１０５】
第１の描画部２１によるＧＰＵの制御や、描画実行部２２、第２の描画部２３、シンクライアントサーバの各部は、ＨＤＤ１０８にインストールされたプログラムがＣＰＵ１０６に実行させる処理により実現される。デスクトップ画面の画像データ等は、例えば、ＲＡＭ１０４、ＨＤＤ１０８、又はサーバ機器２０にネットワークＮＷを介して接続される記憶装置を用いて実現可能である。
【０１０６】
シンクライアントのサーバ２００は、例えば、ＨＤＤ１０８にインストールされたシンクライアントのサーバプログラムをコンピュータが実行することによりその機能が実現される。
【０１０７】
同様に、シンクライアントのクライアント１００も、シンクライアントのクライアントプログラムをクライアント機器１０側のＨＤＤ等に記憶し、記憶されたシンクライアントのクライアントプログラムをコンピュータが実行することによりその機能が実現される。
【０１０８】
以上、画像転送方法、サーバ機器及びプログラムを上記各実施形態により説明したが、本発明は上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。また、上記第１〜第３の実施形態を矛盾しない範囲で組み合わせることができる。
【０１０９】
以上の説明に関し、更に以下の項を開示する。
（付記１）
所定のハードウェアを用いて描画を実行する第１の描画部と、該第１の描画部のハードウェアを用いずに描画を実行する第２の描画部と、を使用して画面を生成し、
前記画面のうち、前記第１の描画部による描画部分である第１の画像データと、前記第２の描画部による描画部分である第２の画像データと、を別々にクライアント機器に転送する、
処理をコンピュータが実行する画像転送方法。
（付記２）
前記転送する処理は、
前記第１の画像データの描画領域及び前記第２の画像データの描画領域が画面上で重なる場合、前記第１の画像データの画像は前記重なる部分を除外して前記クライアント機器に転送し、
前記重なる領域に前記第１の画像データ又は前記第２の画像データのいずれか一方が、いずれか他方から透けて見える透過表示領域がある場合、該透過表示領域の画像データを前記第１の画像データから取得して該透過表示領域の第２の画像データと合成した画像データを前記クライアント機器に転送する、
処理をコンピュータが実行する付記１に記載の画像転送方法。
（付記３）
前記転送する処理は、
前記第１の描画部により前記第１の画像データの生成とは非同期に前記第１の描画部から前記第１の画像データを取得する、
処理をコンピュータが実行する付記１又は２に記載の画像転送方法。
（付記４）
所定のハードウェアを用いて描画を実行する第１の描画部と、
前記第１の描画部のハードウェアを用いずに描画を実行する第２の描画部と、
前記第１の描画部と前記第２の描画部とを使用して生成された画面のうち、前記第１の描画部による描画部分である第１の画像データと、前記第２の描画部による描画部分である第２の画像データと、を別々にクライアント機器に転送する転送部と、
を有するサーバ機器。
（付記５）
前記転送部は、
前記第１の画像データの描画領域及び前記第２の画像データの描画領域が画面上で重なる場合、前記第１の画像データの画像は前記重なる部分を除外して前記クライアント機器に転送し、
前記重なる領域に前記第１の画像データ又は前記第２の画像データのいずれか一方が、いずれか他方から透けて見える透過表示領域がある場合、該透過表示領域の画像データを前記第１の画像データから取得して該透過表示領域の第２の画像データと合成した画像データを前記クライアント機器に転送する、
付記４に記載のサーバ機器。
（付記６）
前記転送部は、
前記第１の描画部により前記第１の画像データの生成とは非同期に前記第１の描画部から前記第１の画像データを取得する、
処理をコンピュータが実行する付記４又は５に記載のサーバ機器。
（付記７）
所定のハードウェアを用いて描画を実行する第１の描画部と、該第１の描画部のハードウェアを用いずに描画を実行する第２の描画部と、を使用して画面を生成し、
前記画面のうち、前記第１の描画部による描画部分である第１の画像データと、前記第２の描画部による描画部分である第２の画像データと、を別々にクライアント機器に転送する、
処理をコンピュータに実行させるプログラム。
（付記８）
前記転送する処理は、
前記第１の画像データの描画領域及び前記第２の画像データの描画領域が画面上で重なる場合、前記第１の画像データの画像は前記重なる部分を除外して前記クライアント機器に転送し、
前記重なる領域に前記第１の画像データ又は前記第２の画像データのいずれか一方が、いずれか他方から透けて見える透過表示領域がある場合、該透過表示領域の画像データを前記第１の画像データから取得して該透過表示領域の第２の画像データと合成した画像データを前記クライアント機器に転送する、
処理をコンピュータに実行させる付記７に記載のプログラム。
（付記９）
前記転送する処理は、
前記第１の描画部により前記第１の画像データの生成とは非同期に前記第１の描画部から前記第１の画像データを取得する、
処理をコンピュータに実行させる付記７又は８に記載のプログラム。
【符号の説明】
【０１１０】
１０：クライアント機器、１１：ディスプレイ、２０：サーバ機器、２１：第１の描画部、２３：第２の描画部、１００：シンクライアントのクライアント、２００：シンクライアントのサーバ、２０１：受付部、２０２：取得部、２０３：更新領域決定部、２０４：画像圧縮部、２０５：転送部、２１０：ＯＳ，２４０：ＧＰＵ、２４５：ＧＰＵ共有機構、３０１：重なりチェック部、４００：被重なりチェック部
【図１】
2014135013.tif 000003
【図３】
2014135013.tif 000004
【図４】
2014135013.tif 000005
【図５】
2014135013.tif 000006
【図６】
2014135013.tif 000007
【図９】
2014135013.tif 000008
【図１０】
2014135013.tif 000009
【図１３】
2014135013.tif 000010
【図１４】
2014135013.tif 000011
【図１６】
2014135013.tif 000012
【図２】
2014135013.tif 000013
【図７】
2014135013.tif 000014
【図８】
2014135013.tif 000015
【図１１】
2014135013.tif 000016
【図１２】
2014135013.tif 000017
【図１５】
2014135013.tif 000018