(57)【特許請求の範囲】
【請求項１】
オペレーティングシステムのＧＵＩ（グラフィカル・ユーザ・インターフェース）の動画像を画像表示装置に転送する転送手段と、
アクティブウィンドウ及びアクティブウィンドウとなったことのあるウィンドウを順に登録するウィンドウ管理テーブルを有し、前記ウィンドウ管理テーブルに登録されているウィンドウの領域を前記ＧＵＩにおけるユーザの作業領域として検出する作業領域検出手段と、
検出された前記作業領域に対して相対的に高い画質、前記作業領域を除く領域に対して相対的に低い画質で、前記転送手段が転送する動画像を生成する動画像生成手段と、
を有することを特徴とする、画像転送装置。
【請求項２】
前記動画像生成手段は、フレーム間予測を用いて動画像を生成し、
前記作業領域について、第１のタイミングで前記フレーム間予測に用いる差分を生成し、
前記作業領域を除く領域について、第２のタイミングで前記フレーム間予測に用いる差分を生成し、
前記第１のタイミングは、前記第２のタイミングよりも頻度が高いことを特徴とする、請求項１記載の画像転送装置。
【請求項３】
前記動画像生成手段は、
前記作業領域について、第１の圧縮率で圧縮し、
前記作業領域を除く領域について、第２の圧縮率で圧縮し、
前記第１の圧縮率は、前記第２の圧縮率よりも低率であることを特徴とする、請求項１又は２記載の画像転送装置。
【請求項４】
前記ウィンドウ管理テーブルは、登録されている各ウィンドウの範囲を特定する情報を有し、
前記作業領域検出手段は、前記ウィンドウの範囲を特定する情報に基づいて、前記ウィンドウ管理テーブルに登録された各ウィンドウの領域の和集合の範囲の領域を前記作業領域とすることを特徴とする、請求項１ないし３のいずれか１項記載の画像転送装置。
【請求項５】
アクティブウィンドウ及びアクティブウィンドウとなったことのあるウィンドウを順にウィンドウ管理テーブルに登録し、
前記ウィンドウ管理テーブルに登録されているウィンドウの領域をオペレーティングシステムのＧＵＩ（グラフィカル・ユーザ・インターフェース）におけるユーザの作業領域として検出し、
検出された前記作業領域に対して相対的に高い画質、前記作業領域を除く領域に対して相対的に低い画質で、前記ＧＵＩの動画像を生成し、
生成された前記動画像を画像表示装置に転送する
画像転送方法。
【請求項６】
コンピュータに、
アクティブウィンドウ及びアクティブウィンドウとなったことのあるウィンドウを順にウィンドウ管理テーブルに登録し、
前記ウィンドウ管理テーブルに登録されているウィンドウの領域をオペレーティングシステムのＧＵＩ（グラフィカル・ユーザ・インターフェース）におけるユーザの作業領域として検出し、
検出された前記作業領域に対して相対的に高い画質、前記作業領域を除く領域に対して相対的に低い画質で、前記ＧＵＩの動画像を生成し、
生成された前記動画像を画像表示装置に転送する処理
を実行させることを特徴とする、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像転送装置、方法及びプログラムに関し、特に、ＧＵＩ（グラフィカル・インターフェース）の画面を効率的に転送する技術に関する。
【背景技術】
【０００２】
本発明に関連する技術として、特許文献１ないし３に記載の技術がある。特許文献１では、画面をブロックごとに分割し、画面の変化の生じた回数に応じてブロックごとに優先度を設定し、画面の変化の生じた回数の少ないブロックの画面を優先して送信する方式について述べられている。
【０００３】
また、特許文献２には、マルチウィンドウ方式を採るＧＵＩにおいて（特許文献２は「マルチウィンドウ表示装置」と表現する）、アクティブウィンドウを除く領域の輝度を下げる輝度制御を行うことが記載されている。
【０００４】
画面の送信方法として、ＭＰＥＧのような動画像圧縮方式（フレーム間予測）を用いる方式がある（例えば、特許文献３）。この方式は、最新のフレーム（画面）全体を一つ前に送信したフレーム（つまり、一つ前のフレームを符号化し、さらにそれを復号した画像）と比較し、その差分を圧縮して送信するというものである。この方式では、フレーム間の差分のデータ量が送信用の帯域より大きい場合には、圧縮時の量子化ステップを大きくすることで画質を下げ、差分が小さく帯域が空いてくると、画質を上げるよう量子化ステップを小さくすることが行われる。この方式によると、画面転送に利用可能な帯域の制約によって実際の画面の更新頻度に比べて送信する画像データの更新頻度が大きく下がることはなく、かつ、画面の変化が小さくなると高い画質での画像送信が可能になる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−０８６５５０号公報
【特許文献２】特開平０３−２８２５８６号公報
【特許文献３】特開２００９−２２４８４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来、サーバ・クライアント・システム構成を採用するシンクライアントシステムにおいて、クライアントからサーバにアクセスし、サーバでの作業の内容を画面にキャプチャし、キャプチャされたデータをクライアントに転送して、クライアントでサーバの画面を表示する技術がある。これは、ＧＵＩの表示画面の画像を転送する画像転送技術である。この画像転送技術においては、サーバとクライアントの間の伝送路の帯域を効率的に使うことが求められる。そこで、キャプチャ画面中の動きが頻繁であるような部分には相対的に高いフレームレートで、頻繁でないような部分には相対的に低いフレームレートで圧縮して伝送することが考えられてきた。
【０００７】
しかしながら、このような方式では、ユーザがさほど注目していないにもかかわらず動きが頻繁であるような領域を高画質で伝送したりして、効率が落ち、逆にユーザビリティを損ねる結果になる可能性があった。図５を参照して説明する。一般に、ＧＵＩデスクトップ上のいわゆるガジェットと呼ばれるアプリケーションの一つに時計ガジェットがある（図５中右上）。時計ガジェットはデスクトップ上にアナログ時計を表示するアプリケーションであるが、秒針が１秒ごとに動きを見せるため、高画質で伝送されてしまい、伝送路の帯域を効率的に使うことができなくなる。
【０００８】
図５中のｗｉｎｄｏｗ−ｘはいわゆるアクティブウィンドウであるからほぼ間違いなくユーザが作業中のウィンドウである。一方、ｗｉｎｄｏｗ−ｙ，ｚはたまたま非アクティブウィンドウであるが、ユーザはｗｉｎｄｏｗ−ｘと見比べながら作業している可能性もある。したがって、本来ユーザが注目して見たいであろう領域を適切に検出する必要がある。
【０００９】
本発明は、上述した実情に鑑みてなされたものであって、本来ユーザが注目して見たいであろう領域に対して相対的に高画質を適用し、それ以外の領域に対しては相対的に低画質を適用して、効率的な画像転送を実現する画像転送装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために本発明は、第１の態様として、オペレーティングシステムのＧＵＩ（グラフィカル・ユーザ・インターフェース）の動画像を画像表示装置に転送する転送手段と、前記ＧＵＩにおけるユーザの作業領域を検出する作業領域検出手段と、検出された前記作業領域に対して相対的に高い画質、前記作業領域を除く領域に対して相対的に低い画質で、前記転送手段が転送する動画像を生成する動画像生成手段と、を有することを特徴とする、画像転送装置を提供するものである。
【００１１】
また、本発明は、第２の態様として、オペレーティングシステムのＧＵＩ（グラフィカル・ユーザ・インターフェース）におけるユーザの作業領域を検出する作業領域検出工程と、検出された前記作業領域に対して相対的に高い画質、前記作業領域を除く領域に対して相対的に低い画質で、前記ＧＵＩの動画像を生成する動画像生成工程と、生成された前記動画像を画像表示装置に転送する転送工程と、を含むことを特徴とする、画像転送方法を提供するものである。
【００１２】
また、本発明は、第３の態様として、コンピュータに、オペレーティングシステムのＧＵＩ（グラフィカル・ユーザ・インターフェース）におけるユーザの作業領域を検出する作業領域検出処理と、検出された前記作業領域に対して相対的に高い画質、前記作業領域を除く領域に対して相対的に低い画質で、前記ＧＵＩの動画像を生成する動画像生成処理と、生成された前記動画像を画像表示装置に転送する転送処理と、を実行させることを特徴とする、プログラムを提供するものである。
【発明の効果】
【００１３】
本発明によれば、本来ユーザが注目して見たいであろう領域に対して相対的に高画質を適用し、それ以外の領域に対しては相対的に低画質を適用して、効率的な画像転送を実現する画像転送装置、方法及びプログラムを提供することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明を好適に実施した一実施形態の構成を示すブロック図（その１）である。
【図２】本発明を好適に実施した一実施形態の構成を示すブロック図（その２）である。
【図３】本実施形態の作業領域検出部１０６が持つウィンドウ管理テーブルの一例を示す図である。
【図４】図３のウィンドウ管理テーブルを生成するために、作業領域検出部１０６が実行するウィンドウ変化検出処理の流れを示す図である。
【図５】従来技術の問題点を指摘するための図であり、デスクトップ画面の全領域を示す図である。
【発明を実施するための形態】
【００１５】
図１、図２に、本発明を好適に実施した一実施形態に係る画像転送・表示システム１の構成を示す。図１は、ユーザが作業中であると考えられる領域とそうではない領域とについて異なる圧縮率を適用する構成を示す図である。一方、図２は、ユーザが作業中であると考えられる領域とそうではない領域とについて異なるフレームレートでエンコードを行う構成を示す図である。
【００１６】
画像転送・表示システム１は、例えば、サーバ・クライアント・システム構成を採用するシンクライアントシステムに本発明を適用した実施形態である。本実施形態においては、クライアントからサーバにアクセスし、サーバでの作業の内容を画面にキャプチャし、キャプチャされたデータをクライアントに転送して、クライアントでサーバの画面を表示する。サーバに相当するのが、図中の画像転送装置１００であり、クライアントに相当するのが、画像表示装置２００である。
【００１７】
画像転送装置１００は、画面キャプチャ部１０１、前画面データ記憶部１０２、更新データ生成処理部１０３、画像圧縮処理部１０４、通信処理部１０５、作業領域検出部１０６を備える。
画面キャプチャ部１０１は、画像表示装置２００側に表示されている画面のキャプチャを行う。
前画面データ記憶部１０２は、動画像のデータ量を効率的に圧縮するために、前の画面データとの差分をとって、記憶しておく。
【００１８】
更新データ生成処理部１０３は、ある時点において、前回キャプチャした画像データと今回キャプチャした画像データとを比較して、その差分を抽出する処理を行う。この差分を更新データと呼び、差分を抽出する処理のことを更新データ生成処理と呼ぶ。本実施形態において、更新データ生成処理部１０３は、作業領域検出部１０６が指定するフレームレートで更新データ生成処理を行う。また、作業領域検出部１０６が画面全域を複数の領域に分け、領域毎に異なるタイミングで更新データ生成処理を行うよう指定した場合、更新データ生成処理部１０３は、領域毎に異なるフレームレートで更新データ生成処理を行う。
【００１９】
画像圧縮処理部１０４は、画面キャプチャ部１０１がキャプチャした画面の画像データ（キーフレーム）や、更新データ生成処理部１０３が生成した更新データを用いて、画像表示装置２００に転送する転送データのデータ量を圧縮する。本実施形態において、画像圧縮処理部１０４は、作業領域検出部１０６が指定する圧縮パラメータで圧縮処理を行う。また、作業領域検出部１０６が画面全域を複数の領域に分け、領域毎に異なる圧縮率でデータ量を圧縮するよう指定した場合、画像圧縮処理部１０４は、領域毎に異なる圧縮パラメータで圧縮処理を行う。
【００２０】
通信処理部１０５は、画像圧縮処理部１０４にて圧縮処理された動画像データを転送データとしてパケット化するなどして、画像表示装置２００に転送する通信処理を行う。通信路のアーキテクチャとしては、有線又は無線など種々のものが使える。いわゆる家庭内ＬＡＮを用いてもよい。
【００２１】
作業領域検出部１０６は、ユーザが作業を行っている領域を検出する処理（「作業領域検出処理」という）を行い、検出結果に基づいて、画面全域を複数の領域に分けたり、領域毎に異なるタイミングで更新データ生成処理を行うよう指定したり、また、領域毎に異なる圧縮率でデータ量を圧縮するよう指定したりする処理を行う。
【００２２】
画像表示装置２００は、通信処理部２０１、画像復号処理部２０２、画像合成処理部２０３、前画面データ記憶部２０４、画像表示部２０５を備える。
通信処理部２０１は、画像転送装置１００から転送データを受信してパケットから動画像データを取り出し、復号処理に渡すなどの処理を行う。
画像復号処理部２０２は、圧縮された動画像データを復号し伸長する処理を行う。復号されたデータは差分情報を用いているため、画像復号処理部２０２は、前回の画面のデータを前画面データ記憶部２０４にいったん記憶させておく。また、差分情報を画像合成処理部２０３に入力する。
【００２３】
画像合成処理部２０３は、前画面データ記憶部２０４に記憶されている前画面データと画像復号処理部２０２から入力された差分情報とを用いて合成することにより、表示するための画像を生成する処理を行う。
画像表示部２０５は、画像合成処理部２０３が合成した画像を表示する。
【００２４】
図１と図２について、再度要点をまとめる。
図１に示す構成においては、作業領域検出部１０６が抽出したユーザの作業領域に基づいて、ユーザの作業領域に関しては圧縮パラメータを第１の圧縮率として圧縮する一方で、ユーザの作業領域外に関しては圧縮パラメータを第２の圧縮率として圧縮する。ここで、第１の圧縮率は第２の圧縮率よりも低いものとする。
【００２５】
図２に示す構成においては、作業領域検出部１０６が抽出したユーザの作業領域に基づいて、ユーザの作業領域に関しては第１のタイミングで更新データ生成処理を行う一方、ユーザの作業領域外に関しては第２のタイミングで更新データ生成処理を行う。ここで、第１のタイミングは第２のタイミングよりも頻度が高いものとする。
具体的には、ユーザ作業領域に関しては、差分検出の処理（更新データ生成処理）をすべてのフレームで実施し、ユーザの作業領域外に関しては、差分検出の処理をフレーム数に対して間引いて行うとよい。例えば、単位時間あたりのフレーム数が３０ｆｐｓのとき、ユーザの作業領域外では差分検出の処理（更新データ生成処理）を１０フレームに１回だけ行う処理とする。この場合、ユーザの作業領域外は３ｆｐｓの周期で差分検出の処理（更新データ生成処理）を行うこととなる。
上述のように、更新データ生成処理部１０３と画像圧縮処理部１０４は、動画像生成手段として機能する。
【００２６】
次に、作業領域検出部１０６の処理（作業領域検出処理）について説明する。「作業領域」とは、ユーザが作業中であると考えられる領域のことをいう。
作業領域検出部１０６は、図３に示すウィンドウ管理テーブルを持つ。図３は、ウィンドウ管理テーブルの一例である。図３のウィンドウ管理テーブルは、ウィンドウ識別子、始点座標、終点座標から構成される。また、各レコード（各要素）の並び順は、ユーザが最後に作業したウィンドウから、最後から２番目に作業したウィンドウ、最後から３番目に作業したウィンドウ、・・・という並び順である。つまり、最上段に来ているウィンドウがいわゆる「アクティブウィンドウ」である。２段目以降が「アクティブウィンドウだったウィンドウの履歴」等である。
【００２７】
ウィンドウ識別子は、各ウィンドウを識別するための識別子である。例えば、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（登録商標）ではウィンドウハンドルなどを用いる。作業領域検出部１０６は、このウィンドウ識別子を用いて、ウィンドウに変化があったような場合にどのウィンドウに変化が生じているのかなどを検出する。
始点座標はウィンドウの左上の座標であり、終点座標は右下の座標である。つまり、表示可能な全領域（画面全域）におけるウィンドウの位置ないし範囲を特定するものであればよい。
【００２８】
作業領域検出部１０６は、ウィンドウ管理テーブルを用いて作業領域を検出する。作業領域検出部１０６は、ウィンドウ管理テーブルに登録されているウィンドウそれぞれの始点座標と終点座標によって示される領域を加え合わせた領域を作業領域と判断する。すなわち、作業領域は、各ウィンドウが画面全域に占める領域の和集合となる。つまり、ウィンドウ管理テーブルに登録されているウィンドウのいずれかの領域に属するような点の集まりを作業領域とする。他の実施例としては、作業領域を、各ウィンドウの最左端の座標、最右端の座標、最上端の座標、最下端の座標から決定することとしてもよい。図３に示す例でこの方法で作業領域を決定すると、始点座標が（０，０）、終点座標が（５２０，７８９）となる矩形の領域となる。
【００２９】
なお、ウィンドウ管理テーブルが空であって、ウィンドウが一つもない場合もある。この場合は、画面全域を作業領域と判断する。後段の更新データ生成処理部１０３や画像圧縮処理部１０４では画面全域に同じ画質を適用することになり、画像表示装置２００に画面が一様に送られることになる。
【００３０】
図４に、ウィンドウ管理テーブルを生成するために作業領域検出部１０６が実行するウィンドウ変化検出処理の流れを示す。図４に示す各処理ブロックの処理の主体は作業領域検出部１０６である。
図４に示すウィンドウ変化検出処理は、例えばウィンドウハンドルなどを用いて、ウィンドウの変化を検出した場合に始まる。作業領域検出部１０６がオペレーションシステムよりウィンドウの変化を検出する（ステップＳ１０１）。
【００３１】
アクティブウィンドウの変化を検出した場合（ステップＳ１０２／あり）、ウィンドウ管理テーブル内に変化したアクティブウィンドウがあるか検索する（ステップＳ１０３）。この検索は、同じウィンドウ識別子を持つウィンドウが存在するかを検索することで行う。
【００３２】
ウィンドウ管理テーブルに同じウィンドウが存在した場合（ステップＳ１０４／Ｙｅｓ）、そのウィンドウをウィンドウ管理テーブルの先頭に移動する（ステップＳ１０５）。ウィンドウ管理テーブルに同じウィンドウが存在しない場合（ステップＳ１０４／Ｎｏ）、新たに検出したウィンドウをウィンドウ管理テーブルの先頭に追加する（ステップＳ１０６）。このとき、ウィンドウ識別子や始点座標終点座標の情報も追加する。また、追加することにより、ウィンドウ管理テーブルの領域が足りなくなった場合、末尾のウィンドウの情報を削除する。
【００３３】
ウィンドウサイズ変更などでウィンドウの座標の変更があった場合（ステップＳ１０７／あり）、ウィンドウ管理テーブル内に座標が変化したウィンドウがあるか検索する（ステップＳ１０８）。この検索は、同じウィンドウ識別子を持つウィンドウが存在するかを検索することで行う。
【００３４】
ウィンドウ管理テーブルに同じウィンドウが存在した場合（ステップＳ１０９／Ｙｅｓ）、そのウィンドウの座標を変更する（ステップＳ１１０）。座標の変更は、変化後の始点座標、終点座標をウィンドウ管理テーブルに上書きすることで行う。なお、ウィンドウ管理テーブルに同じウィンドウが存在しない場合（ステップＳ１０９／Ｎｏ）、何も処理をしない。
【００３５】
ウィンドウのクローズを検出した場合（ステップＳ１１１／あり）、又は、ウィンドウの最小化を検出した場合（ステップＳ１１２／あり）、ウィンドウ管理テーブル内にクローズ又は最小化を検出したウィンドウがあるか検索する（ステップＳ１１３）。この検索は、同じウィンドウ識別子を持つウィンドウが存在するかを検索することで行う。
【００３６】
クローズ等されたウィンドウが存在した場合（ステップＳ１１４／Ｙｅｓ）、そのウィンドウに関する情報をウィンドウ管理テーブルから削除する（ステップＳ１１５）。なお、ウィンドウ管理テーブルに同じウィンドウが存在しない場合（ステップＳ１１４／Ｎｏ）、何も処理をしない。
【００３７】
アクティブウィンドウがなくなった場合（ステップＳ１１６／Ｙｅｓ）、ウィンドウ管理テーブルの情報をすべて削除する（ステップＳ１１７）。
【００３８】
以上で、作業領域検出部１０６による作業領域検出処理の説明を終える。
なお、作業領域は、ユーザの画質に対する要求水準や、伝送路の帯域の状態等に応じて、適切な作業領域に調節してもよい。調節は、ウィンドウ管理テーブルに追加するレコード（要素）の個数で行う。ウィンドウ管理テーブルに追加するレコード（要素）の数を１とすると、常にアクティブウィンドウだけを作業領域と見なし、アクティブウィンドウに高画質、それ以外の領域に低画質を適用して画像転送を行う。個数を２以上の数（ただし、有限個）とすると、アクティブウィンドウに加えてユーザが過去に作業したアプリケーションのウィンドウの履歴の中で比較的新しいもののみを作業領域と見なす。個数を無限個とすると、ユーザが過去に作業したアプリケーションのウィンドウ（過去にアクティブとなったことのあるウィンドウ）をすべて記憶しておき、それらを重ね合わせた領域を作業領域と見なす。
【００３９】
上述した本実施形態によれば、本来ユーザが注目して見たいであろう領域、つまり作業領域に対して相対的に高画質を適用し、それ以外の領域に対しては相対的に低画質を適用することができ、効率的な画像転送が実現する。
【００４０】
なお、画像転送装置１００、画像表示装置２００は、それぞれ汎用のコンピュータを用いて、上記実施形態において説明したような各処理をコンピュータに実行させるプログラムによっても実現することができる。
【符号の説明】
【００４１】
１    画像転送・表示システム
１００    画像転送装置
１０１    画面キャプチャ部
１０２    前画面データ記憶部
１０３    更新データ生成処理部
１０４    画像圧縮処理部
１０５    通信処理部
１０６    作業領域検出部
２００    画像表示装置
２０１    通信処理部
２０２    画像復号処理部
２０３    画像合成処理部
２０４    前画面データ記憶部
２０５    画像表示部
【図１】
0005471668.tif 000002
【図２】
0005471668.tif 000003
【図３】
0005471668.tif 000004
【図４】
0005471668.tif 000005
【図５】
0005471668.tif 000006