(57)【特許請求の範囲】
【請求項１】
所定のフレームレートの画面データを入力し、その画面データを処理してから送信する画面データ送信装置であって、
入力した前記画面データに含まれる第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと差分があるか否かを検出する差分検出手段と、
前記差分検出手段の検出結果が肯定的であるブロックのデータを送信するためのフレームレートを前記所定のフレームレートよりも低く設定するフレームレート低減手段と、
前記差分検出手段の検出結果が肯定的であるブロックであって、前記フレームレート低減手段により設定されたフレームレートに従えば、送信することが許可されているブロックを送信する送信手段と、
前記差分検出手段の検出結果が肯定的であるブロックを基に、差分存在領域とその差分存在領域のサイズを検出する差分存在領域サイズ検出手段とを備え、
前記フレームレート低減手段は、前記差分存在領域が広ければ広いほど、その差分存在領域に含まれるブロックであって、前記差分検出手段の検出結果が肯定的であるブロックのデータを送信するためのフレームレートを、より低くすることを特徴とする画面データ送信装置。
【請求項２】
所定のフレームレートの画面データを入力し、その画面データを処理してから送信する画面データ送信装置であって、
入力した前記画面データに含まれる第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと差分があるか否かを検出する差分検出手段と、
前記差分検出手段の検出結果が肯定的であるブロックのデータを送信するためのフレームレートを前記所定のフレームレートよりも低く設定するフレームレート低減手段と、
前記差分検出手段の検出結果が肯定的であるブロックであって、前記フレームレート低減手段により設定されたフレームレートに従えば、送信することが許可されているブロックを送信する送信手段と、
前記差分検出手段の検出結果が肯定的であるブロックを基に、差分存在領域とその差分存在領域のサイズを検出する差分存在領域サイズ検出手段とを備え、
前記フレームレート低減手段は、前記差分存在領域に含まれる各ブロックの差分が出現した頻度を示す量を基にした量である動き量履歴が大きければ大きいほど、その差分存在領域に含まれるブロックであって、前記差分検出手段の検出結果が肯定的であるブロックのデータを送信するためのフレームレートを、より低くすることを特徴とする画面データ送信装置。
【請求項３】
請求項１又は２に記載の画面データ送信装置において、
前記差分検出手段の検出結果が肯定的であるブロックであって、前記フレームレート低減手段により設定されたフレームレートに従えば、送信することが禁止されているブロックに対応する位置にある対応ブロックであって、前記第２の画面フレームに含まれる対応ブロックのデータを、前記第２の画面フレームを記憶しているフレームメモリから前記第１の画面を記憶するべきフレームメモリにコピーする手段を更に備え、
前記第１の画面フレームに含まれるブロックであって、前記差分検出手段の検出結果が肯定的であるブロックに対応する位置にある対応ブロックであって、前記第２の画面フレームに含まれる対応ブロックのデータを前記差分検出手段が、後に、差分検出のために用いられるようにしたことを特徴とする画面データ送信装置。
【請求項４】
所定のフレームレートの画面データを入力し、その画面データを処理してから送信する画面データ送信方法であって、
入力した前記画面データに含まれる第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと差分があるか否かを検出する差分検出ステップと、
前記差分検出ステップの検出結果が肯定的であるブロックのデータを送信するためのフレームレートを前記所定のフレームレートよりも低く設定するフレームレート低減ステップと、
前記差分検出ステップの検出結果が肯定的であるブロックであって、前記フレームレート低減ステップにより設定されたフレームレートに従えば、送信することが許可されているブロックを送信する送信ステップと、
前記差分検出ステップの検出結果が肯定的であるブロックを基に、差分存在領域とその差分存在領域のサイズを検出する差分存在領域サイズ検出ステップとを備え、
前記フレームレート低減ステップでは、前記差分存在領域が広ければ広いほど、その差分存在領域に含まれるブロックであって、前記差分検出ステップの検出結果が肯定的であるブロックのデータを送信するためのフレームレートを、より低くすることを特徴とする画面データ送信方法。
【請求項５】
所定のフレームレートの画面データを入力し、その画面データを処理してから送信する画面データ送信方法であって、
入力した前記画面データに含まれる第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと差分があるか否かを検出する差分検出ステップと、
前記差分検出ステップ検出結果が肯定的であるブロックのデータを送信するためのフレームレートを前記所定のフレームレートよりも低く設定するフレームレート低減ステップと、
前記差分検出ステップの検出結果が肯定的であるブロックであって、前記フレームレート低減ステップにより設定されたフレームレートに従えば、送信することが許可されているブロックを送信する送信ステップと、
前記差分検出ステップの検出結果が肯定的であるブロックを基に、差分存在領域とその差分存在領域のサイズを検出する差分存在領域サイズ検出ステップとを備え、
前記フレームレート低減ステップでは、前記差分存在領域に含まれる各ブロックの差分が出現した頻度を示す量を基にした量である動き量履歴が大きければ大きいほど、その差分存在領域に含まれるブロックであって、前記差分検出ステップの検出結果が肯定的であるブロックのデータを送信するためのフレームレートを、より低くすることを特徴とする画面データ送信方法。
【請求項６】
所定のフレームレートの画面データを入力し、その画面データを処理してから送信する画面データ送信プログラムであって、
入力した前記画面データに含まれる第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと差分があるか否かを検出する差分検出ステップと、
前記差分検出ステップの検出結果が肯定的であるブロックのデータを送信するためのフレームレートを前記所定のフレームレートよりも低く設定するフレームレート低減ステップと、
前記差分検出ステップの検出結果が肯定的であるブロックであって、前記フレームレート低減ステップにより設定されたフレームレートに従えば、送信することが許可されているブロックを送信する送信ステップと、
前記差分検出ステップの検出結果が肯定的であるブロックを基に、差分存在領域とその差分存在領域のサイズを検出する差分存在領域サイズ検出ステップとを備え、
前記フレームレート低減ステップでは、前記差分存在領域が広ければ広いほど、その差分存在領域に含まれるブロックであって、前記差分検出ステップの検出結果が肯定的であるブロックのデータを送信するためのフレームレートを、より低くすることを特徴とする画面データ送信方法をコンピュータ実行させるための画面データ送信プログラム。
【請求項７】
所定のフレームレートの画面データを入力し、その画面データを処理してから送信する画面データ送信プログラムであって、
入力した前記画面データに含まれる第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと差分があるか否かを検出する差分検出ステップと、
前記差分検出ステップ検出結果が肯定的であるブロックのデータを送信するためのフレームレートを前記所定のフレームレートよりも低く設定するフレームレート低減ステップと、
前記差分検出ステップの検出結果が肯定的であるブロックであって、前記フレームレート低減ステップにより設定されたフレームレートに従えば、送信することが許可されているブロックを送信する送信ステップと、
前記差分検出ステップの検出結果が肯定的であるブロックを基に、差分存在領域とその差分存在領域のサイズを検出する差分存在領域サイズ検出ステップとを備え、
前記フレームレート低減ステップでは、前記差分存在領域に含まれる各ブロックの差分が出現した頻度を示す量を基にした量である動き量履歴が大きければ大きいほど、その差分存在領域に含まれるブロックであって、前記差分検出ステップの検出結果が肯定的であるブロックのデータを送信するためのフレームレートを、より低くすることを特徴とする画面データ送信方法をコンピュータ実行させるための画面データ送信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面データを送信する画面データ送信装置、画面データ送信方法及び画面データ送信プログラムに関し、特に、サーバ装置に備わり、シンクライアント(thin client)に画面を送信する画面データ送信装置、画面データ送信方法及び画面データ送信プログラムに関する。
【背景技術】
【０００２】
近年、シンクライアント及びそれに対応したサーバを有するシンクライアントシステムが普及してきている。シンクライアントシステムにおいては、サーバがアプリケーションプログラムやデータファイルを保有し、シンクライアントは、必要最低限の機能を有する。
【０００３】
画面転送型のシンクライアントシステムにおいては、シンクライアントの画面に表示する画面データもサーバが保有する。そして、変化のあった画面データをサーバからシンクライアントに送信し、シンクライアントは、サーバから送られてきた画面データを基に、表示画面データを再構築する。
【０００４】
次に、変化のあった画面データをサーバからシンクライアントに送信するための基本的な画面データ送信装置について説明する。
【０００５】
図１を参照すると、基本的な画面データ送信装置は、書込部９０１、偶数フレームメモリ９０３、奇数フレームメモリ９０５、差分存在領域検出部９０７及び差分存在部分送信部９０９を備える。
【０００６】
書込部９０１は、シンクライアントで表示するべき画面データと同一の画面データよりなる出力フレームを入力し、出力フレームのうち偶数フレームを偶数フレームメモリ９０３に書き込み、奇数フレームを奇数フレーム９０５に書き込む。
【０００７】
差分存在領域検出部９０７は、例えば、図２に示すような３２画素×３２画素のブロックを単位として、偶数フレームメモリ９０３に書き込まれている画面データと奇数フレームメモリ９０５に書き込まれている画面データとを比較し、差分存在領域を検出する。差分存在領域は（３２×ｎ）画素×（３２×ｍ）画素の矩形の領域であってもよいし、図３の差分存在領域で示すような領域であってもよい。
【０００８】
差分存在領域送信部９０９は、差分存在領域検出部９０７で検出された差分存在領域の画面データを符号化し、符号化された画面データをシンクライアントに送信する。符号化のためには、例えば、ウェーブレット変換、ハフマン符号化などが用いられる。
【０００９】
次に、図４を参照して、図１に示す基本的な画面データ送信装置の動作を説明する。
【００１０】
まず、書込部９０１が、最初の出力フレームを入力する（ステップＳ９５１）。
【００１１】
次に、入力した出力フレームは、偶数フレームであるのか又は奇数フレームであるのかを判断する（ステップＳ９５３）。
【００１２】
偶数フレームである場合には、入力した出力フレームの画面データを偶数フレームメモリ９０３に書き込む（ステップＳ９５５）。他方、奇数フレームである場合には、入力した出力フレームの画面データを奇数フレームメモリ９０５に書き込む（ステップＳ９５７）。
【００１３】
ステップＳ９５５又はステップＳ９５７の次に、差分存在領域検出部９０７は、差分存在領域を検出する（ステップＳ９５９）。
【００１４】
次に、差分存在領域送信部９０９は、全ての差分存在領域について、差分存在領域のデータの送信（ステップＳ９６３）を、繰り返す（ステップＳ９６１）。
【００１５】
次に、書込部９０１は、次の出力フレームの画面データを入力し（ステップＳ９６５）、ステップＳ９５３に戻る。
【００１６】
差分存在領域は、図５に示すように、第ｎフレームになかったウィンドウ７０１が第（ｎ＋１）フレームで現れた場合には、符号７０３で示す領域である。また、差分存在領域は、図６に示すように、自動車７０５が第ｎフレームで図７（ａ）に示すような位置にあり、第（ｎ＋１）フレームで図７（ｂ）に示すような位置にある場合には、図７（ｃ）に示すような、自動車７０５が走り去った後の背景を含む領域７０７と新たに自動車７０５を含むこととなった領域７０９である。
【００１７】
図７にシンクライアントのうち表示画面に関連する部分を示す。
【００１８】
復号部８２１は、差分存在領域送信部８０９により符号化された画面データを復号する。
【００１９】
フレームメモリ８２３は、復号された画面データを格納する。
【００２０】
表示部８２５は、フレームメモリ８２３に格納されている画面データを読み出して、表示装置に出力する。
【特許文献１】特開平１１−２８５００１号公報
【非特許文献１】クライアント統合ソリューション、画面転送型、平成２０年２月１５日検索、  インターネット<URL: http://www.nec.co.jp/clsol/gamentenso.html>
【発明の開示】
【発明が解決しようとする課題】
【００２１】
シンクライアント１台当たりの画面送信のためのビットレートは予め定められている。そして、所定の差分以上の差分がある画面ブロックのデータは全て送信される。従って、所定の差分以上の差分がある画面ブロックが多い場合には、１ブロック当たりの割当ビット数が少なくなり、画面が劣化する。これは、特に、画面に動画の広いウィンドウが存在する場合に顕著である。
【００２２】
ところで、マウスカーソルも画面データとして送信される。図８（ａ）に示すように、マウスカーソルが動かない場合には、そのマウスカーソルを含むブロックのブロックデータは伝送されない。
【００２３】
図８（ｂ）に示すように、マウスカーソルが動いた場合には、移動後のマウスカーソルを含むブロックのブロックデータが伝送される。マウスカーソルがあるブロックから他のブロックに移動した場合には、移動前のマウスカーソルを含むブロックのブロックデータも伝送される。
【００２４】
図８（ｃ）に示すように、マウスカーソルが、４つのブロックに跨る領域に動いた場合には、移動後のマウスカーソルを含む４つのブロックのブロックデータが伝送される。
【００２５】
このように、マウスカーソルも画面データとして送信されるため、画面に動画が含まれる場合、特に、広い領域を占める動画が含まれる場合には、マウスカーソルの画質が劣化する。ところが、マウスカーソルは、画面中でユーザが最も注目している領域の中心であるため、マウスカーソルの画質を維持する必要がある。
【００２６】
マウスカーソルについて上記したことは、キャラクタカーソルについても同様である。
【００２７】
そこで、本発明は、広い領域を占める動画が画面に含まれる場合であっても、カーソルの画質を維持することを可能とする画面データ送信装置及びその方法を提供することを目的とする。
【課題を解決するための手段】
【００２８】
本発明によれば、所定のフレームレートの画面データを入力し、その画面データを処理してから送信する画面データ送信装置であって、入力した前記画面データに含まれる第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと差分があるか否かを検出する差分検出手段と、前記差分検出手段の検出結果が肯定的であるブロックのデータを送信するためのフレームレートを前記所定のフレームレートよりも低く設定するフレームレート低減手段と、前記差分検出手段の検出結果が肯定的であるブロックであって、前記フレームレート低減手段により設定されたフレームレートに従えば、送信することが許可されているブロックを送信する送信手段と、前記差分検出手段の検出結果が肯定的であるブロックを基に、差分存在領域とその差分存在領域のサイズを検出する差分存在領域サイズ検出手段とを備え、前記フレームレート低減手段は、前記差分存在領域が広ければ広いほど、その差分存在領域に含まれるブロックであって、前記差分検出手段の検出結果が肯定的であるブロックのデータを送信するためのフレームレートを、より低くすることを特徴とする画面データ送信装置が提供される。
また、本発明によれば、所定のフレームレートの画面データを入力し、その画面データを処理してから送信する画面データ送信装置であって、入力した前記画面データに含まれる第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと差分があるか否かを検出する差分検出手段と、前記差分検出手段の検出結果が肯定的であるブロックのデータを送信するためのフレームレートを前記所定のフレームレートよりも低く設定するフレームレート低減手段と、前記差分検出手段の検出結果が肯定的であるブロックであって、前記フレームレート低減手段により設定されたフレームレートに従えば、送信することが許可されているブロックを送信する送信手段と、前記差分検出手段の検出結果が肯定的であるブロックを基に、差分存在領域とその差分存在領域のサイズを検出する差分存在領域サイズ検出手段とを備え、前記フレームレート低減手段は、前記差分存在領域に含まれる各ブロックの差分が出現した頻度を示す量を基にした量である動き量履歴が大きければ大きいほど、その差分存在領域に含まれるブロックであって、前記差分検出手段の検出結果が肯定的であるブロックのデータを送信するためのフレームレートを、より低くすることを特徴とする画面データ送信装置が提供される。
【００２９】
また、本発明によれば、所定のフレームレートの画面データを入力し、その画面データを処理してから送信する画面データ送信方法であって、入力した前記画面データに含まれる第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと差分があるか否かを検出する差分検出ステップと、前記差分検出ステップの検出結果が肯定的であるブロックのデータを送信するためのフレームレートを前記所定のフレームレートよりも低く設定するフレームレート低減ステップと、前記差分検出ステップの検出結果が肯定的であるブロックであって、前記フレームレート低減ステップにより設定されたフレームレートに従えば、送信することが許可されているブロックを送信する送信ステップと、前記差分検出ステップの検出結果が肯定的であるブロックを基に、差分存在領域とその差分存在領域のサイズを検出する差分存在領域サイズ検出ステップとを備え、前記フレームレート低減ステップでは、前記差分存在領域が広ければ広いほど、その差分存在領域に含まれるブロックであって、前記差分検出ステップの検出結果が肯定的であるブロックのデータを送信するためのフレームレートを、より低くすることを特徴とする画面データ送信方法が提供される。
また、本発明によれば、所定のフレームレートの画面データを入力し、その画面データを処理してから送信する画面データ送信方法であって、入力した前記画面データに含まれる第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと差分があるか否かを検出する差分検出ステップと、前記差分検出ステップ検出結果が肯定的であるブロックのデータを送信するためのフレームレートを前記所定のフレームレートよりも低く設定するフレームレート低減ステップと、前記差分検出ステップの検出結果が肯定的であるブロックであって、前記フレームレート低減ステップにより設定されたフレームレートに従えば、送信することが許可されているブロックを送信する送信ステップと、前記差分検出ステップの検出結果が肯定的であるブロックを基に、差分存在領域とその差分存在領域のサイズを検出する差分存在領域サイズ検出ステップとを備え、前記フレームレート低減ステップでは、前記差分存在領域に含まれる各ブロックの差分が出現した頻度を示す量を基にした量である動き量履歴が大きければ大きいほど、その差分存在領域に含まれるブロックであって、前記差分検出ステップの検出結果が肯定的であるブロックのデータを送信するためのフレームレートを、より低くすることを特徴とする画面データ送信方法が提供される。
【００３０】
更に、本発明によれば、所定のフレームレートの画面データを入力し、その画面データを処理してから送信する画面データ送信プログラムであって、入力した前記画面データに含まれる第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと差分があるか否かを検出する差分検出ステップと、前記差分検出ステップの検出結果が肯定的であるブロックのデータを送信するためのフレームレートを前記所定のフレームレートよりも低く設定するフレームレート低減ステップと、前記差分検出ステップの検出結果が肯定的であるブロックであって、前記フレームレート低減ステップにより設定されたフレームレートに従えば、送信することが許可されているブロックを送信する送信ステップと、前記差分検出ステップの検出結果が肯定的であるブロックを基に、差分存在領域とその差分存在領域のサイズを検出する差分存在領域サイズ検出ステップとを備え、前記フレームレート低減ステップでは、前記差分存在領域が広ければ広いほど、その差分存在領域に含まれるブロックであって、前記差分検出ステップの検出結果が肯定的であるブロックのデータを送信するためのフレームレートを、より低くすることを特徴とする画面データ送信方法をコンピュータに実行させるための画面データ送信プログラムが提供される。
また、本発明によれば、所定のフレームレートの画面データを入力し、その画面データを処理してから送信する画面データ送信プログラムであって、入力した前記画面データに含まれる第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと差分があるか否かを検出する差分検出ステップと、前記差分検出ステップ検出結果が肯定的であるブロックのデータを送信するためのフレームレートを前記所定のフレームレートよりも低く設定するフレームレート低減ステップと、前記差分検出ステップの検出結果が肯定的であるブロックであって、前記フレームレート低減ステップにより設定されたフレームレートに従えば、送信することが許可されているブロックを送信する送信ステップと、前記差分検出ステップの検出結果が肯定的であるブロックを基に、差分存在領域とその差分存在領域のサイズを検出する差分存在領域サイズ検出ステップとを備え、前記フレームレート低減ステップでは、前記差分存在領域に含まれる各ブロックの差分が出現した頻度を示す量を基にした量である動き量履歴が大きければ大きいほど、その差分存在領域に含まれるブロックであって、前記差分検出ステップの検出結果が肯定的であるブロックのデータを送信するためのフレームレートを、より低くすることを特徴とする画面データ送信方法をコンピュータ実行させるための画面データ送信プログラムが提供される。
【発明の効果】
【００３１】
本発明によれば、動画に割り当てる符号量を低く抑えることができるため、広い領域を占める動画が画面に含まれる場合であっても、カーソルの画質を維持することができる。
【発明を実施するための最良の形態】
【００３２】
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。
【００３３】
［実施形態１］
図９は、本発明の実施形態１により送信される画面の例を示す図である。
【００３４】
図９を参照すると、マウスカーソル１０２を含むブロック１０１は、マウスカーソル１０２が動いている時には、６０ｆｐｓ(frame per second)で送信される。ウィンドウ１０３に含まれる小さな差分存在領域１０４も６０ｆｐｓで送信される。ウィンドウ１０５に含まれる中程度の広さの差分存在領域１０６は３０ｆｐｓで送信される。ウィンドウ１０７に含まれる中程度の広さの差分存在領域１０８は３０ｆｐｓで送信される。ウィンドウ１０７に含まれる広い差分存在領域１０９は２０ｆｐｓで伝送される。
【００３５】
このように、差分存在領域に含まれるブロックは、差分存在領域のサイズが広くなればなるほど遅いフレームレートで送信される。
【００３６】
図１０を参照すると、本発明の実施形態１による画面データ送信装置は、書込部１２１、偶数フレームメモリ１２３、奇数フレームメモリ１２５、コピー部１２７、差分存在領域検出部１２９、差分存在領域サイズ検出部１３１、フレーム番号カウンタ１３３、送信フレーム判断部１３５、送信／コピー判断部１３７及び差分存在領域送信部１３９を備える。
【００３７】
書込部１２１は、出力フレームの画面データを入力し、偶数フレームの画面データを偶数フレームメモリ１２３に書き込み、奇数フレームの画面データを奇数フレームメモリ１２５に書き込む。
【００３８】
偶数フレームメモリ１２３は、偶数フレームの画面データ及びコピー部１２７により書き込まれた差分存在領域のブロックのデータを格納する。
【００３９】
奇数フレームメモリ１２５は、奇数フレームの画面データ及びコピー部１２７により書き込まれた差分存在領域のブロックのデータを格納する。
【００４０】
コピー部１２７は、送信／コピー判断部１３７からの指示に従い、差分存在領域のブロックのうち送信されないブロックのデータを、直前のフレームの画面データを格納しているフレームメモリ（偶数フレームメモリ１２３又は奇数フレームメモリ１２５）から現在のフレームの画面データを格納しているフレームメモリ（奇数フレームメモリ１２５又は偶数フレームメモリ１２３）にコピーする。
【００４１】
差分存在領域検出部１２９は、差分存在領域検出部９０７と同様に、例えば、図２に示すような３２画素×３２画素のブロックを単位として、偶数フレームメモリ１２３に書き込まれている画面データと奇数フレームメモリ１２５に書き込まれている画面データとを比較し、差分存在領域を検出する。差分存在領域は（３２×ｎ）画素×（３２×ｍ）画素の矩形の領域であってもよいし、図３の差分存在領域で示すような領域であってもよい。
【００４２】
差分存在領域サイズ検出部１３１は、差分存在領域を、例えば、大領域、中領域、小領域などのように大きさに応じて分類する。例えば、差分存在領域である（３２×ｎ）画素×（３２×ｍ）画素の矩形の領域のｍ×ｎの値が第１の閾値よりも大きければ、その領域を大領域とし、ｍ×ｎの値が第１の閾値以下であるが、第１の閾値よりも小さい第２の閾値よりも大きければその領域を中領域とし、ｍ×ｎの値が第２の閾値以下であれば、その領域を小領域とする。
【００４３】
フレーム番号カウンタ１３３、フレーム毎にカウント値を１ずつ増加させる。
【００４４】
送信フレーム判断部１３５は、図１１に示すように、大領域、中領域、小領域毎に、各フレームで差分存在領域の画面データを送信するかどうか判断する。例えば、大領域については、フレーム番号を３で除算して得られる残余がゼロであれば、現在のフレームの差分存在領域の画面データを送信する。また、中領域については、フレーム番号を２で除算して得られる残余がゼロであれば、現在のフレームの差分存在領域の画面データを送信する。更に、小領域については、現在のフレームの全ての差分存在領域の画面データを送信する。こうすることにより、大領域については、３フレーム毎に１回、現在のフレームの差分存在領域の画面データを送信し、中領域については、２フレーム毎に１回、現在のフレームの差分存在領域の画面データを送信し、小領域については、毎フレーム、現在のフレームの差分存在領域の画面データを送信することとなる。
【００４５】
送信／コピー判断部１３７は、差分存在領域サイズ検出部１３１から入力した各差分存在領域の大きさの分類及び送信フレーム判断部１３５から入力した、差分領域の大きさの分類毎の送信の可否を基に、差分存在領域検出部１２９で検出した各差分存在領域を送信するのか、又は、偶数フレームメモリ１２３と奇数フレームメモリ１２５との間でコピーをするのかを判断する。
【００４６】
差分存在領域送信部１３９は、送信／コピー判断部１３７により送信するべきであると判断された差分存在領域に含まれる各ブロックのデータを符号化してシンクライアントに送信する。
【００４７】
次に、図１０に示す画面データ送信装置の動作について、図１２を参照して説明する。
【００４８】
まず、書込部１２１は、最初の出力フレームの画面データを入力する（ステップＳ１５１）。
【００４９】
次に、入力した出力フレームは、偶数フレームであるのか、又は、奇数フレームであるのかを判断する（ステップＳ１５３）。この判断のためには、フレーム番号カウンタ１３３のＬＳＢを用いてもよい。
【００５０】
偶数フレームである場合には、入力した出力フレームの画面データを偶数フレームメモリ１２３に書き込む（ステップＳ１５５）。他方、奇数フレームである場合には、入力した出力フレームの画面データを奇数フレームメモリ１２５に書き込む（ステップＳ１５７）。
【００５１】
次に、差分存在領域検出部１２９は、偶数フレームメモリ１２３に格納されている偶数フレームの画面データと奇数フレームメモリ１２５に格納されている奇数フレームの画面データとを比較することにより差分存在領域を検出する（ステップＳ１５９）。具体的には、例えば、図３に示すように、フレーム間の差分のある画素を少なくとも１つ含むブロック（○を付けてある差分存在ブロック）を中心とした３ブロック×３ブロックの領域を設け、これらを合わせたものを差分存在領域としてもよい。また、動画アプリケーションを検出し、そのアプリケーションの画面の位置情報により差分存在領域を検出してもよい。更に、マウスカーソルやキャラクタカーソルの位置を検出し、カーソルを含むブロックの集合を差分存在領域としてもよい。
【００５２】
次に、全ての差分存在領域について、ステップＳ１６３からの動作を繰り返す（ステップＳ１６１Ｓ〜ステップＳ１６１Ｅ）。なお、図示していないが、現在のフレームに差分存在領域が存在しないならば、ステップＳ１５９からステップＳ１７５に直接進む。
【００５３】
ステップＳ１６３では、差分存在領域サイズ検出部１３１は、差分存在領域の大きさを判断する。検出方法は、上述したとおりである。サイズが大である場合にはステップＳ１６５に進み、サイズが中である場合にはステップＳ１６７に進み、サイズが小である場合にはステップＳ１６９に進む。
【００５４】
ステップＳ１６５では、送信／コピー判断部１３７が、現在のフレームは、大の差分存在領域を送信するフレームであるのか否かの情報を送信フレーム判断部１３５から入力し、そうであれば、ステップＳ１７１に進み、そうでなければステップＳ１７３に進む。
【００５５】
同様に、ステップＳ１６７では、送信／コピー判断部１３７が、現在のフレームは、中の差分存在領域を送信するフレームであるのか否かの情報を送信フレーム判断部１３５から入力し、そうであれば、ステップＳ１７１に進み、そうでなければステップＳ１７３に進む。
【００５６】
更に同様に、ステップＳ１６９では、送信／コピー判断部１３７が、現在のフレームは、小の差分存在領域を送信するフレームであるのか否かの情報を送信フレーム判断部１３５から入力し、そうであれば、ステップＳ１７１に進み、そうでなければステップＳ１７３に進む。
【００５７】
ステップＳ１７１では、差分存在領域送信部１３９が、現在扱っている差分存在領域に含まれる各ブロックのデータを符号化して、シンクライアントに送信する。
【００５８】
ステップＳ１７３では、コピー部１２７が、現在扱っている差分存在領域の各ブロックのデータを１つ前のフレームの画面データを格納しているフレームメモリ（偶数フレームメモリ１２３又は奇数フレームメモリ１２５）から現在のフレームの画面データを格納しているフレームメモリ（奇数フレームメモリ１２５又は偶数フレームメモリ１２３）にコピーする。
【００５９】
ステップＳ１６１の繰り返しが終了したならば、次の出力フレームの画面データを入力し（ステップＳ１７５）、ステップＳ１５３に戻る。
【００６０】
次に、差分存在領域のうち送信しない差分存在領域をフレームメモリ間でコピーすることの意義について説明する。
【００６１】
例えば、図１３に示すように、中程度の大きさの差分存在領域を含む画面データがあったとする。第ｎフレームの中程度の大きさの差分領域の内容はＡであり、第（ｎ＋１）フレームの中程度の大きさの差分領域の内容はＢであり、第（ｎ＋２）フレームの中程度の大きさの差分領域の内容もＢであるとする。中程度の大きさの差分領域については、フレームレートを１／２に落とすので、２フレームにつき１フレームを送信する。そうすると、第ｎフレームの次に第（ｎ＋２）フレームのデータを送信する。従って、第ｎフレームでは、内容がＡである中程度の大きさの差分存在領域に含まれるブロックのデータを送信し、第（ｎ＋２）フレームでは、内容がＢである中程度の大きさの差分存在領域に含まれるブロックのデータを送信する必要がある。
【００６２】
ところが、図１４に示すように、フレームメモリ間で差分存在領域のコピーを行わない場合には、第（ｎ＋２）フレームで内容Ｂと内容Ｂとを比較することとなり、結果として、差分がないという判断がなされる。従って、第（ｎ＋２）フレームの内容がＢの中程度の大きさの差分存在領域が送信されないこととなってしまう。
【００６３】
これに対し、図１５に示すように、本発明に従って、フレームメモリ間で差分存在領域のコピーを行う場合には、第（ｎ＋２）フレームで内容Ａと内容Ｂとを比較することとなり、結果として、差分があるという判断がなされる。従って、第（ｎ＋２）フレームの内容がＢの中程度の大きさの差分存在領域が送信されることとなる。
【００６４】
［実施形態２］
実施形態１では、差分存在領域の送信レートを差分存在領域の大きさのみによって決めていたが、実施形態２では、差分存在領域の送信レートを差分存在領域の大きさ及び動き量履歴によって決める。
【００６５】
図１６は、実施形態２による本発明の実施形態２による画面データ送信装置の構成を示すブロック図である。図１０と図１６とを比較すると明らかなように、実施形態２では、実施形態１と比較し、動き量履歴計算部１４１が追加されている点が異なる。また、送信／コピー判断部１３７の動作が異なる。
【００６６】
動き量履歴は、画面の全ての３２画素×３２画素のブロックに対して存在する。図１７は、各ブロックについての動き量履歴計算部１４１の動作を説明するためのフローチャートである。
【００６７】
図１７を参照すると、まず、動き量履歴Ｍを初期値に設定する（ステップＳ２０１）。次に、偶数フレームメモリ１２３に格納されているブロックと奇数フレームメモリ１２５に格納されている同位置のブロックとの間に差分があるか否かを判断する（ステップＳ２０３）。差分がある場合には（ステップＳ２０３でＹＥＳ）、動き量履歴ＭにΔＡを加算する（ステップＳ２０５）。差分がない場合には（ステップＳ２０３でＮＯ）、動き量履歴ＭからΔＢを減算する（ステップＳ２０７）。
【００６８】
ステップＳ２０５又はステップＳ２０７の次に、動き量履歴Ｍが上限値を上回るか否かを判断し（ステップＳ２０９）、そうである場合には（ステップＳ２０９でＹＥＳ）、動き量履歴Ｍに上限値を設定する（ステップＳ２１１）。
【００６９】
ステップＳ２０９又はステップＳ２１１の次に、動き量履歴Ｍが下限値を下回るか否かを判断し（ステップＳ２１３）、そうである場合には（ステップＳ２１３でＹＥＳ）、動き量履歴Ｍに下限値を設定する（ステップＳ２１５）。
【００７０】
次のフレームが来たならば、ステップＳ２０３からの動作を繰り返す。
【００７１】
従って、動き量履歴Ｍは、各ブロックの差分が出現した頻度を示す量となる。
【００７２】
図１８は、レベルと送信フレームとの対応関係を示す。レベルは、差分存在領域のサイズから置き換わるものである。
【００７３】
レベル１では、毎フレーム差分存在領域のデータが送信される。レベル２では、２フレームにつき１フレームだけ差分存在領域のデータが送信される。レベル３では、３フレームにつき１フレームだけ差分存在領域のデータが送信される。レベル４では、４フレームにつき１フレームだけ差分存在領域のデータが送信される。レベル５では、５フレームにつき１フレームだけ差分存在領域のデータが送信される。
【００７４】
図１９は、サイズと差分存在領域についての動き量履歴との組合せとレベルとの対応関係を示す。ここで、差分存在領域についての動き量履歴とは、各差分存在領域に存在するブロックに跨る動き量履歴の算術平均値、幾何平均値、中央値、最大値又は最小値などである。
【００７５】
図１９を参照すると明らかなように、差分存在領域の大きさが同じ分類に属する場合であっても、動き量履歴が大きいほどレベルが大きくなる。従って、差分存在領域の大きさが同じ分類に属する場合であっても、動き量が大きいほどフレームレートが下がる。
【００７６】
また、図１９を参照すると明らかなように、動き量履歴が下限値である場合には、差分存在領域の大きさに関係なく、レベル１が選択される。従って、差分存在領域の大きさに関係なく、それまで動きがなかった領域に動きが生じたならば、遅延なく画面データが送られる。
【００７７】
図１６に示す画面データ送信装置の動作を図２０に示す。
【００７８】
図２０を図１２と比較すると明らかなように、実施形態２は、実施形態１と比較すると、ステップＳ１６３、Ｓ１６５、Ｓ１６７及びＳ１６９がステップＳ１８１、Ｓ１８３、Ｓ１８５、Ｓ１８７、Ｓ１８９及びＳ１９１に置き換わっている点のみが異なる。
【００７９】
ステップＳ１８１では、送信／コピー判断部１３７が、現在の差分存在領域がどのレベルのものであるのかを判断する。現在の差分存在領域がレベル１のものである場合にはステップＳ１８３に進み、現在の差分存在領域がレベル２のものである場合にはステップＳ１８５に進み、現在の差分存在領域がレベル３のものである場合にはステップＳ１８７に進み、現在の差分存在領域がレベル４のものである場合にはステップＳ１８９に進み、現在の差分存在領域がレベル５のものである場合にはステップＳ１９１に進む。
【００８０】
ステップＳ１８３では、現フレームはレベル１の差分領域を送るフレームであるのか否かを判断し、そうであればステップＳ１７１に進み、そうでなければステップＳ１７３に進む。
【００８１】
同様に、ステップＳ１８５では、現フレームはレベル２の差分領域を送るフレームであるのか否かを判断し、そうであればステップＳ１７１に進み、そうでなければステップＳ１７３に進む。
【００８２】
同様に、ステップＳ１８７では、現フレームはレベル３の差分領域を送るフレームであるのか否かを判断し、そうであればステップＳ１７１に進み、そうでなければステップＳ１７３に進む。
【００８３】
同様に、ステップＳ１８９では、現フレームはレベル４の差分領域を送るフレームであるのか否かを判断し、そうであればステップＳ１７１に進み、そうでなければステップＳ１７３に進む。
【００８４】
同様に、ステップＳ１９１では、現フレームはレベル５の差分領域を送るフレームであるのか否かを判断し、そうであればステップＳ１７１に進み、そうでなければステップＳ１７３に進む。
【００８５】
なお、本発明による画面データ送信装置は、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。
【産業上の利用可能性】
【００８６】
本発明は、画面転送型シンクライアントシステムなどの画面を転送するシステムに適用することができる。
【図面の簡単な説明】
【００８７】
【図１】本発明に関連した画面データ送信装置の構成を示すブロック図である。
【図２】画面を送信ブロックに分割した様子を示す図である。
【図３】差分存在領域を抽出する方法を説明するための図である。
【図４】図１に示す画面データ送信装置の構成を示すブロック図である。
【図５】画面転送型のシンクライアントに送信される画面領域の一例を示す図である。
【図６】画面転送型のシンクライアントに送信される画面領域の他の一例を示す図である。
【図７】シンクライアントの画面表示に関連した部分を示すブロック図である。
【図８】マウスカーソルと送信されるブロックとの関係を示す図である。
【図９】本発明の実施形態に従って、差分存在領域の大きさによって送信レートが異なる様子を説明するための図である。
【図１０】本発明の実施形態１による画面データ送信装置の構成を示すブロック図である。
【図１１】本発明の実施形態１に従って、差分存在領域のサイズによってフレームレートが異なる様子を示す図である。
【図１２】図１０に示す画面データ送信装置の動作を示すフローチャートである。
【図１３】本発明の実施形態において、差分存在領域のうち送信しない差分存在領域をフレームメモリ間でコピーすることの意義について説明する第１の図である。
【図１４】本発明の実施形態において、差分存在領域のうち送信しない差分存在領域をフレームメモリ間でコピーすることの意義について説明する第２の図である。
【図１５】本発明の実施形態において、差分存在領域のうち送信しない差分存在領域をフレームメモリ間でコピーすることの意義について説明する第３の図である。
【図１６】本発明の実施形態２による画面データ送信装置の構成を示すブロック図である。
【図１７】図１６に示す動き量履歴計算部の動作を示すフローチャートである。
【図１８】本発明の実施形態１に従って、レベルによってフレームレートが異なる様子を示す図である。
【図１９】差分検出領域の大きさと動き量履歴との組合せとレベルとの関係を示す表である。
【図２０】図１６に示す画面データ送信装置の動作を示すフローチャートである。
【符号の説明】
【００８８】
１２１  書込部
１２３  偶数フレームメモリ
１２５  奇数フレームメモリ
１２７  コピー部
１２９  差分存在領域検出部
１３１  差分存在領域サイズ検出部
１３３  フレーム番号カウンタ
１３５  送信フレーム判断部
１３７  送信／コピー判断部
１３９  差分存在領域送信部
１４１  動き量履歴計算部
【図１】
0005071727.tif 000002
【図２】
0005071727.tif 000003
【図３】
0005071727.tif 000004
【図４】
0005071727.tif 000005
【図５】
0005071727.tif 000006
【図６】
0005071727.tif 000007
【図７】
0005071727.tif 000008
【図８】
0005071727.tif 000009
【図９】
0005071727.tif 000010
【図１０】
0005071727.tif 000011
【図１１】
0005071727.tif 000012
【図１２】
0005071727.tif 000013
【図１３】
0005071727.tif 000014
【図１４】
0005071727.tif 000015
【図１５】
0005071727.tif 000016
【図１６】
0005071727.tif 000017
【図１７】
0005071727.tif 000018
【図１８】
0005071727.tif 000019
【図１９】
0005071727.tif 000020
【図２０】
0005071727.tif 000021