(57)【特許請求の範囲】
【請求項１】
第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと第１の所定量以上の差分があるか否かを検出する差分検出手段と、
前記差分検出手段の検出結果が肯定的であるブロックのデータを送信する送信手段と、
画素レベル変更手段での変更の対象となるべきブロックを所定の方法により選択するレベル変更ブロック判定手段と、
前記第１の画面フレームが前記差分検出手段による検出にかけられる前に、前記レベル変更ブロック判定手段により選択された前記第１の画面フレームに含まれるブロックと、前記第２の画面フレームに含まれ、前記選択されたブロックと対応する位置にあるブロックとの間で前記第１の所定量以上の差分が発生するように、前記第１の画面フレームに含まれる前記選択されたブロックの少なくとも１つの画素のレベルを第２の所定量以上変更する前記画素レベル変更手段と、を備えることを特徴とする画面データ送信装置。
【請求項２】
請求項１に記載の画面データ送信装置であって、
前記第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと所定量以上の差分があるか否かを検出する第２の差分検出手段を更に備え、
前記レベル変更ブロック判定手段は、少なくとも前記第２の差分検出手段により検出された差分に基づいて、前記所定の方法による選択を行なうことを特徴とする画面データ送信装置。
【請求項３】
請求項１又は２に記載の画面データ送信装置において、
前記画素レベル変更手段により、或るフレームで少なくとも１つの画素のレベルが変更されたブロックは、前記画素レベル変更手段により、後のフレームでその変更がキャンセルされるように再変更されることを特徴とする画面データ送信装置。
【請求項４】
請求項１又は２に記載の画面データ送信装置において、
前記画素レベル変更手段により、或るフレームで少なくとも１つの画素のレベルが変更されたブロックは、前記画素レベル変更手段により、後のフレームで別の画素のレベルが変更されることを特徴とする画面データ送信装置。
【請求項５】
請求項１乃至４の何れか１項に記載の画面データ送信装置において、
前記レベル変更ブロック判定手段は、前記画素レベル変更手段での変更の対象となるべきブロックをフレーム毎に移動させることを特徴とする画面データ送信装置。
【請求項６】
請求項５に記載の画面データ送信装置において、
前記レベル変更ブロック判定手段は、前記画素レベル変更手段での変更の対象となるべきブロックをフレーム毎にブロック順次走査させることを特徴とする画面データ送信装置。
【請求項７】
請求項５に記載の画面データ送信装置において、
前記レベル変更ブロック判定手段は、前記画素レベル変更手段での変更の対象となるべきブロックをフレーム毎にマウスカーソルを含むブロックを中心として広がるように移動させることを特徴とする画面データ送信装置。
【請求項８】
請求項１乃至４の何れか１項に記載の画面データ送信装置において、
前記レベル変更ブロック判定手段は、前記画素レベル変更手段での変更の対象となるべきブロックをマウスカーソルを含むブロックとすることを特徴とする画面データ送信装置。
【請求項９】
請求項１乃至４の何れか１項に記載の画面データ送信装置において、
前記レベル変更ブロック判定手段は、前記画素レベル変更手段での変更の対象となるべきブロックをタスクバーを含むブロックとすることを特徴とする画面データ送信装置。
【請求項１０】
請求項１乃至９の何れか１項に記載の画面データ送信装置において、
前記レベル変更ブロック判定手段は、１つのフレームにつき、前記画素レベル変更手段での変更の対象となるべきブロックを１又は２以上とすることを特徴とする画面データ送信装置。
【請求項１１】
請求項１乃至１０のいずれか１項に記載の画面データ送信装置において、
前記レベル変更ブロック判定手段は、画面データの符号化パラメータが発生符号量がより多くなるように設定されているほど、少なくとも１つの画素レベルを変更するブロックの数がより少なくなるように、少なくとも１つの画素レベルを変更するブロックの数を調整することを特徴とする画面データ送信装置。
【請求項１２】
請求項１乃至１１のいずれか１項に記載の画面データ送信装置において、
前記レベル変更ブロック判定手段は、符号化されたデータの伝送レートがより高いほど、少なくとも１つの画素のレベルを変更するブロックの数がより少なくなるように、少なくとも１つの画素レベルを変更するブロックの数を調整することを特徴とする画面データ送信装置。
【請求項１３】
第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと第１の所定量以上の差分があるか否かを検出する差分検出ステップと、
前記差分検出ステップによる検出結果が肯定的であるブロックのデータを送信する送信ステップと、
画素レベル変更ステップでの変更の対象となるべきブロックを所定の方法により選択するレベル変更ブロック判定ステップと、
前記第１の画面フレームが前記差分検出ステップによる検出にかけられる前に、前記レベル変更ブロック判定ステップにより選択された前記第１の画面フレームに含まれるブロックと、前記第２の画面フレームに含まれ、前記選択されたブロックと対応する位置にあるブロックとの間で前記第１の所定量以上の差分が発生するように、前記第１の画面フレームに含まれる前記選択されたブロックの少なくとも１つの画素のレベルを第２の所定量以上変更する前記画素レベル変更ステップと、
を備えることを特徴とする画面データ送信方法。
【請求項１４】
第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと第１の所定量以上の差分があるか否かを検出する差分検出ステップと、
前記差分検出ステップによる検出結果が肯定的であるブロックのデータを送信する送信ステップと、
画素レベル変更ステップでの変更の対象となるべきブロックを所定の方法により選択するレベル変更ブロック判定ステップと、
前記第１の画面フレームが前記差分検出手段による検出にかけられる前に、前記レベル変更ブロック判定ステップにより選択された前記第１の画面フレームに含まれるブロックと、前記第２の画面フレームに含まれ、前記選択されたブロックと対応する位置にあるブロックとの間で前記第１の所定量以上の差分が発生するように、前記第１の画面フレームに含まれる前記選択されたブロックの少なくとも１つの画素のレベルを第２の所定量以上変更する前記画素レベル変更ステップと、
を備えることを特徴とする画面データ送信方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面データを送信する画面データ送信装置及び画面データ送信方法に関し、特に、サーバ装置に備わり、シンクライアント(thin client)に画面を送信する画面データ送信装置及びその画面データ送信装置で行われる画面データ送信方法に関する。
【背景技術】
【０００２】
近年、シンクライアント及びそれに対応したサーバを有するシンクライアントシステムが普及してきている。シンクライアントシステムにおいては、サーバがアプリケーションプログラムやデータファイルを保有し、シンクライアントは、必要最低限の機能を有する。
【０００３】
画面転送型のシンクライアントシステムにおいては、シンクライアントの画面に表示する画面データもサーバが保有する。そして、変化のあった画面データをサーバからシンクライアントに送信し、シンクライアントは、サーバから送られてきた画面データを基に、表示画面データを再構築する。
【０００４】
次に、変化のあった画面データをサーバからシンクライアントに送信するための基本的な画面データ送信装置について説明する。
【０００５】
図１を参照すると、基本的な画面データ送信装置は、ブロック化部８０１、フレームメモリ８０３、減算器８０５、ブロック間差分検出部８０７、送信ブロック判断部８０９、符号化部８１１及びバッファ８１３を備える。
【０００６】
ブロック化部８０１は、入力した画面データの順序を入れ替えることにより画面データをブロック化する。画面ブロックは例えば、図２に示すように３２画素×３２画素のサイズを有する。
【０００７】
フレームメモリ８０３は、画面データを１フレーム遅延させる。
【０００８】
減算器８０５は、現在の画素の値から１フレーム前の同一位置の画素の値を減算する。
【０００９】
ブロック間差分検出部８０７は、各ブロックに含まれる画素の減算器８０５による減算値を基に、現在のブロックと１フレーム前の同一位置のブロックとの間の差分を検出する。例えば、ブロック間差分検出部８０７は、ブロックに含まれる全ての画素についての減算値の絶対値の和をブロック間差分とする。また、例えば、ブロック間差分検出部８０７は、ブロックに含まれる全ての画素の減算値の絶対値のうち最大の絶対値をブロック間差分とする。
【００１０】
送信ブロック判断部８０９は、現在のブロックの画面データをシンクライアントに送信するべきか否かを判断する。例えば、送信ブロック判断部８０９は、ブロック間差分の値が所定の送信判断用のしきい値よりも大きければ、現在のブロックの画面データをシンクライアントに送信するべきであると判断する。所定の送信判断用のしきい値は、例えば、ゼロであるが、これよりも大きい値であってもよい。
【００１１】
符号化部８１１は、送信ブロック判断部８０９により画面データを送信するべきであると判断されたブロックの画面データを符号化し、符号化された画面データをシンクライアントに送信する。符号化のためには、例えば、ウェーブレット変換、ハフマン符号化などが用いられる。送信データのフレームあたりのビット数が目標ビットレートに対応するビット数から離れている場合には、符号化パラメータを変更して符号化をやり直す。符号化をやり直すためには、現フレームのブロックのデータをバッファ８１３に一時記憶する。符号化パラメータは、例えば、再量子化幅、周波数帯域幅などである。
【００１２】
図３にシンクライアントのうち表示画面に関連する部分を示す。
【００１３】
復号部８２１は、符号化部８１１により符号化された画面データを復号する。
【００１４】
フレームメモリ８２３は、復号された画面データを格納する。
【００１５】
表示部８２５は、フレームメモリ８２３に格納されている画面データを読み出して、表示装置に出力する。
【００１６】
図４に図１に示す基本的な画面データ送信装置の動作を説明するためのフローチャートを示す。
【００１７】
図４を参照すると、まず、ブロック化部８０１は、画面データをブロック化する（ステップＳ９０１）。
【００１８】
次に、現フレームの各ブロックについてステップＳ９０５〜Ｓ９１３を繰り返す（ステップＳ９０３）。
【００１９】
ステップＳ９０５では、前フレームの現ブロックデータをフレームメモリ８０３から読み出す。ここで、ブロックデータとは、ブロックを構成する画素の画面データの集合のことである。
【００２０】
次に、ステップＳ９０７では、現フレームの現ブロックデータをフレームメモリ８０３に書き込む。
【００２１】
次に、ステップＳ９０９では、減算器８０５が、現フレームの現ブロックの各画素について、前フレームの同位置の画素との差分を計算する。
【００２２】
次に、ステップＳ９１１では、ブロック間差分検出部８０７は、現フレームの現ブロックについてブロック間差分を検出する。
【００２３】
次に、ステップＳ９１３では、送信ブロック判断部８０９は、現フレームの現ブロックの画面データを符号化して送信するべきか否かを判断する。
【００２４】
ステップＳ９０３の繰り返しが終了したならば、現フレームの各ブロックについてステップＳ９１７又はステップＳ９１７及びステップＳ９１９を繰り返す（ステップＳ９１５）。
【００２５】
ステップＳ９１７では、現ブロックは符号化するべきブロックであるか否かのステップＳ９１３での判断の結果を取得する。このためには、ステップＳ９１３での判断結果をバッファ８１３に一時記憶する。
【００２６】
ステップＳ９１７で取得した判断結果が肯定的である場合には（ステップＳ９１７でＹＥＳ）、現ブロックを符号化する（ステップＳ９１９）。
【００２７】
ステップＳ９１５の繰り返しが終了したならば、現フレームの符号化するべきブロックを符号化して得られた符号の全ビット数が目標ビットレートに対応するビット数にほぼ等しいか否かを判断する（ステップＳ９２１）。この判断のためにも、現フレームの全符号をバッファ８１３に一時記憶する。
【００２８】
ステップＳ９２１の結果が肯定的である場合には（ステップＳ９２１でＹＥＳ）、バッファ８１３に一時記憶していた現フレームの全符号を送信する（ステップＳ９２３）。
【００２９】
ステップＳ９２５の結果が否定的である場合には（ステップＳ９２５でＮＯ）、符号化パラメータを変更し（ステップＳ９２５）、ステップＳ９１５に戻る。
【００３０】
上述した画面データ送信装置の構成と動作により、次に説明するような送信が行われる。
【００３１】
すなわち、例えば、第ｎフレームが図５（ａ）に示すようなものであり、第（ｎ＋１）フレームで図５（ｂ）に示すように新たなウィンドウ７０１が現れた場合、図５（ｃ）に示すようなウィンドウ７０１を含むブロック群７０３の画面データが符号化されて送信される。
【００３２】
また、例えば、自動車７０５が第ｎフレームで図６（ａ）に示すような位置にあり、第（ｎ＋１）フレームで図６（ｂ）に示すような位置にある場合には、図６（ｃ）に示すような、自動車７０５が走り去った後の背景を含むブロック群７０７と新たに自動車７０５を含むこととなったブロック群７０９の画面データが符号化されて送信される。
【特許文献１】特開２００６−１８６５２９号公報
【非特許文献１】クライアント統合ソリューション、画面転送型、平成２０年２月１５日検索、  インターネット<URL: http://www.nec.co.jp/clsol/gamentenso.html>
【発明の開示】
【発明が解決しようとする課題】
【００３３】
上述したように、シンクライアント１台当たりの画面送信のためのビットレートは予め定められている。そして、所定の差分以上の差分がある画面ブロックのデータは全て送信される。従って、所定の差分以上の差分がある画面ブロックが多い場合には、１ブロック当たりの割当ビット数が少なくなり、画面が劣化する。これは、特に、画面に動画の大きなウィンドウが存在する場合に顕著である。
【００３４】
所定の差分以上の差分がある画面ブロックを多く含む画面について差分を送信した後、画面データに変更がないと、その画面ブロックは劣化した状態のままシンクライアントの表示部に表示され続けることになる。これは、シンクライアントの使い勝手を損ない、問題である。
【００３５】
そこで本発明は、所定の差分以上の差分がある画面ブロックが多いために劣化した状態で送信された画面をシンクライアント側に高画質に送信しなおすことを可能とする画面送信装置を提供することを目的とする。
【課題を解決するための手段】
【００３６】
本発明によれば、第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと第１の所定量以上の差分があるか否かを検出する差分検出手段と、前記差分検出手段の検出結果が肯定的であるブロックのデータを送信する送信手段と、画素レベル変更手段での変更の対象となるべきブロックを所定の方法により選択するレベル変更ブロック判定手段と、前記第１の画面フレームが前記差分検出手段による検出にかけられる前に、前記レベル変更ブロック判定手段により選択された前記第１の画面フレームに含まれるブロックと、前記第２の画面フレームに含まれ、前記選択されたブロックと対応する位置にあるブロックとの間で前記第１の所定量以上の差分が発生するように、前記第１の画面フレームに含まれる前記選択されたブロックの少なくとも１つの画素のレベルを第２の所定量以上変更する前記画素レベル変更手段と、を備えることを特徴とする画面データ送信装置が提供される。
【００３７】
また、本発明によれば、第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと第１の所定量以上の差分があるか否かを検出する差分検出ステップと、前記差分検出ステップによる検出結果が肯定的であるブロックのデータを送信する送信テップと、画素レベル変更ステップでの変更の対象となるべきブロックを所定の方法により選択するレベル変更ブロック判定ステップと、前記第１の画面フレームが前記差分検出ステップによる検出にかけられる前に、前記レベル変更ブロック判定ステップにより選択された前記第１の画面フレームに含まれるブロックと、前記第２の画面フレームに含まれ、前記選択されたブロックと対応する位置にあるブロックとの間で前記第１の所定量以上の差分が発生するように、前記第１の画面フレームに含まれる前記選択されたブロックの少なくとも１つの画素のレベルを第２の所定量以上変更する前記画素レベル変更ステップと、を備えることを特徴とする画面データ送信方法が提供される。
【００３８】
更に、本発明によれば、第１の画面フレームに含まれる複数のブロックの各々について、前記第１の画面フレームよりも前の第２の画面フレームに含まれ、対応する位置にあるブロックと第１の所定量以上の差分があるか否かを検出する差分検出ステップと、前記差分検出ステップによる検出結果が肯定的であるブロックのデータを送信する送信ステップと、画素レベル変更ステップでの変更の対象となるべきブロックを所定の方法により選択するレベル変更ブロック判定ステップと、前記第１の画面フレームが前記差分検出手段による検出にかけられる前に、前記レベル変更ブロック判定ステップにより選択された前記第１の画面フレームに含まれるブロックと、前記第２の画面フレームに含まれ、前記選択されたブロックと対応する位置にあるブロックとの間で前記第１の所定量以上の差分が発生するように、前記第１の画面フレームに含まれる前記選択されたブロックの少なくとも１つの画素のレベルを第２の所定量以上変更する前記画素レベル変更ステップと、を備えることを特徴とする画面データ送信方法をコンピュータに実行させるためのプログラムが提供される。
【発明の効果】
【００３９】
本発明によれば、所定の差分以上の差分がない画面ブロックのデータも送信することが可能となるので、所定の差分以上の差分がある画面ブロックが多いために劣化した状態で送信された画面をシンクライアント側に高画質に送信しなおすことが可能になる。
【発明を実施するための最良の形態】
【００４０】
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。
【００４１】
図７を参照すると、本実施形態による画面データ送信装置は、ブロック化部１０１、第１のフレームメモリ１０３、第１の減算器１０５、第１のブロック間差分検出部１０７、レベル変更ブロック判断部１０９、レベル変更部１１１、第２のフレームメモリ１１３、第２の減算器１１５、第２のブロック間差分検出部１１７、送信ブロック判断部１１９、符号化部１２１及びバッファ１２３を備える。
【００４２】
ブロック化部１０１、第２のフレームメモリ１１３、第２の減算器１１５、第２のブロック間差分検出部１１７、送信ブロック判断部１１９、符号化部１２１及びバッファ１２３は、それぞれ、既に説明したブロック化部８０１、フレームメモリ８０３、減算器８０５、ブロック間差分検出部８０７、送信ブロック判断部８０９、符号化部８１１及びバッファ８１３と同様なものであるので、重複する説明は省略する。
【００４３】
また、第１のフレームメモリ１０３、第１の減算器１０５、第１のブロック間差分検出部１０７も、それぞれ、フレームメモリ８０３、減算器８０５、ブロック間差分検出部８０７と同様なものであるので、重複する説明は省略する。
【００４４】
レベル変更ブロック判断部１０９は、各フレームの各ブロックについて、少なくとも１つの画素のレベルを変更するべきであるか否かを判断する。ここで、画素のレベルとは、例えば、画面がＹＵＶで表されている場合には、Ｙの量子化レベルのことであり、また、例えば、画面がＲＧＢで表されている場合には、ＲＧＢそれぞれの量子化レベルのことである。従って、画素のレベルの変更とは、例えば、画面がＹＵＶで表されている場合には、Ｙの量子化レベルの変更（例えば、１００を１０１又は９９に変えるような変更）であり、また、例えば、画面がＲＧＢで表されている場合には、ＲＧＢそれぞれの量子化レベルの変更（例えば、４０を４１又は３９に変えるような変更）である。
【００４５】
レベル変更部１１１は、少なくとも１つの画素のレベルを変更するべきであると判断されたブロックに含まれる少なくとも１つの画素のレベルを変更する。
【００４６】
図８及び図９に図７に示す基本的な画面データ送信装置の動作を説明するためのフローチャートを示す。
【００４７】
図８を参照すると、まず、ブロック化部１０１は、画面データをブロック化する（ステップＳ２０１）。
【００４８】
次に、現フレームの各ブロックについてステップＳ２０５〜Ｓ２１５を繰り返す（ステップＳ２０３）。
【００４９】
ステップＳ２０５では、前フレームの現ブロックデータを第１のフレームメモリ１０３から読み出す。ここで、ブロックデータとは、ブロックを構成する画素の画面データの集合のことである。
【００５０】
次に、ステップＳ２０７では、現フレームの現ブロックデータを第１のフレームメモリ１０３に書き込む。
【００５１】
次に、ステップＳ２０９では、第１の減算器１０５が、現フレームの現ブロックの各画素について、前フレームの同位置の画素との差分を計算する。
【００５２】
次に、ステップＳ２１１では、第１のブロック間差分検出部１０７は、現フレームの現ブロックについてブロック間差分を検出する。
【００５３】
次に、ステップＳ２１３では、レベル変更ブロック判断部１０９は、現フレームの現ブロックに含まれる少なくとも１つの画素のレベルを変更するべきか否かを判断する。
【００５４】
ステップＳ２１５では、少なくとも１つの画素のレベルを変更するべきであると判断されたブロックに含まれる少なくとも１つの画素のレベルを変更する。ここで、この変更は、当該ブロックが送信するべきブロックであると送信ブロック判断部１１９が判断するようにするための変更である。
【００５５】
図９に進み、次に、現フレームの各ブロックについてステップＳ２１９〜Ｓ２２７を繰り返す（ステップＳ２１７）。
【００５６】
ステップＳ２１９では、前フレームの現ブロックデータを第２のフレームメモリ１１３から読み出す。
【００５７】
次に、ステップＳ２２１では、現フレームの現ブロックデータを第２のフレームメモリ１１３に書き込む。
【００５８】
次に、ステップＳ２２３では、第２の減算器１１５が、現フレームの現ブロックの各画素について、前フレームの同位置の画素との差分を計算する。
【００５９】
次に、ステップＳ２２５では、第２のブロック間差分検出部１１７は、現フレームの現ブロックについてブロック間差分を検出する。
【００６０】
次に、ステップＳ２２７では、送信ブロック判断部１１９は、現フレームの現ブロックの画面データを符号化して送信するべきか否かを判断する。
【００６１】
ステップＳ２１７の繰り返しが終了したならば、現フレームの各ブロックについてステップＳ２３１又はステップＳ２３１及びステップＳ２３３を繰り返す（ステップＳ２２９）。
【００６２】
ステップＳ２３１では、現ブロックは符号化するべきブロックであるか否かのステップＳ２２７での判断の結果を取得する。このためには、ステップＳ２２７での判断結果をバッファ１２３に一時記憶する。
【００６３】
ステップＳ２３１で取得した判断結果が肯定的である場合には（ステップＳ２３１でＹＥＳ）、現ブロックを符号化する（ステップＳ２３３）。
【００６４】
ステップＳ２２９の繰り返しが終了したならば、現フレームの符号化するべきブロックを符号化して得られた符号の全ビット数が目標ビットレートに対応するビット数にほぼ等しいか否かを判断する（ステップＳ２３５）。この判断のためにも、現フレームの全符号をバッファ１２３に一時記憶する。
【００６５】
ステップＳ２３５の結果が肯定的である場合には（ステップＳ２３５でＹＥＳ）、バッファ１２３に一時記憶していた現フレームの全符号を送信する（ステップＳ２３７）。
【００６６】
ステップＳ２３５の結果が否定的である場合には（ステップＳ２３５でＮＯ）、符号化パラメータを変更し（ステップＳ２３９）、ステップＳ２２９に戻る。
【００６７】
本発明によれば、図１０に示すように、或るブロックの１画素のレベルを変化させるだけで、そのブロック全体のデータが送信される。
【００６８】
ここで、上述したとおり、レベル変更ブロック判断部１０９は、現在のブロックに含まれる少なくとも１つの画素のレベルを変化させるか否かを判断する。例えば、レベル変更ブロック判断部１０９は、ブロック間差分の値が所定のレベル変更判断用のしきい値よりも小さければ、現在のブロックに含まれる少なくとも１つの画素のレベルを変更するべきであると判断する。ここで、ブロック間差分とは、例えば、ブロックに含まれる全ての画素についての第１の減算器１０５が得た差分の絶対値の和である。また、ブロック間差分とは、例えば、ブロックに含まれる全ての画素についての第１の減算器１０５が得た絶対値のうち最大の絶対値である。
【００６９】
レベル変更判断用のしきい値を符号化パラメータによって変動させることにより、元々送信するべきブロックの数が多いフレームについては、レベル変更部１１１で少なくとも１つの画素のレベルを変更するブロックに数を減らし、これに対し、元々送信するべきブロックの数が少ないフレームについては、レベル変更部で少なくとも１つの画素のレベルを変更するブロックの数を増加させることができる。例えば、再量子化幅が粗くなっていたり、周波数帯域幅が狭くなっている場合には、レベル変更判断用のしきい値を大きくして、再量子化幅細かくなっていたり、周波数帯域幅が広くなっている場合には、レベル変更判断用のしきい値を小さくする。また、再量子化幅が細かく、周波数帯域幅が広いにもかかわらず、発生符号量が少ない場合にも、レベル変更判断用のしきい値を小さくする。
【００７０】
元々送信するべきブロックの数が多いフレームの代表例は、動画ウィンドウを含むフレームである。動画ウィンドウを含むフレームでは、符号化パラメータは、発生符号量を少なくするように調整されている。例えば、再量子化ステップが粗くなっていたり、周波数帯域幅が狭くなっていたりする。従って、このようなフレームでは、レベル変更ブロック判断部１０９では、レベル変更判断用のしきい値を大きくして、レベルを変更させるべき画素を含むブロックの数を減らす。こうすることにより、動画は、本発明が適用されない場合と同程度の画質で送信される。
【００７１】
他方、動画ウィンドウであっても、その内容が常に動画であるというわけではなく、間欠的に、動画ウィンドウの内容が静止画に近くなるフレームもある。そのようなフレームでは、符号化パラメータは、発生符号量を多くするように調整されている。従って、このようなフレームでは、レベル変更ブロック判断部１０９では、レベル変更判断用のしきい値を小さくして、レベルを変更させるべき画素を含むブロックの数を増やす。こうすることにより、動画ウィンドウを含む画面であっても、そのウィンドウ以外の領域の画質を改善することができる。
【００７２】
また、レベル変更ブロック判断部１０９が上述したような動作をすると、一部のブロックの画面データのみが重複して送信されてしまい、他のブロックの画質が劣化したままとなることが生じ得る。
【００７３】
そこで、レベル変更ブロック判断部１０９は、図１１に示すように、少なくとも１つの画素のレベルを変更するべきブロックをブロック順次走査してもよい。そして、１フレーム当たりの少なくとも１つの画素のレベルを変更するべきブロックの数を符号化パラメータにより調整するようにしてもよい。すなわち、基本的には、ブロック順次走査して、符号化パラメータが発生符号量を少なくするような値である場合には、少なくとも１つの画素のレベルを変更するべきブロックの数を減らし、符号化パラメータが発生符号量を多くするような値である場合には、少なくとも１つの画素のレベルを変更するべきブロックの数を多くするようにしてもよい。
【００７４】
また、符号化パラメータの代わりに、又は、符号化パラメータを併用して、伝送レートもレベル変更ブロック判断用のしきい値を調整するための入力パラメータとしてもよい。例えば、実際の伝送レートが送信先のシンクライアントに割り当てられている伝送レートとほぼ等しい場合には、レベル変更ブロック判断用のしきい値を高くして、実際の伝送レートが送信先のシンクライアントに割り当てられている伝送レートよりも下回る場合には、レベル変更ブロック判断用のしきい値を低くするようにしてもよい。
【００７５】
他方、符号化パラメータの値に関係なく、１フレーム当たりｎ（ｎは自然数）ブロックのレートで、レベル変更するブロックをブロック順次走査してもよい。
【００７６】
また、レベル変更ブロック判定部１０９は、図１２に示すように、マウスカーソルを中心として、スパイラル状に広がる領域にあるｎ個のブロックを少なくとも１つの画素のレベルを変更するべきブロックとしてもよい。ｎの値を１以上の固定の自然数としてもよいが、ｎの値を符号化パラメータの値によって調整してもよい。
【００７７】
更に、レベル変更ブロック判定部１０９は、図１３に示すように、少なくとも１つの画素のレベルを変更するべきブロックをタスクバー３０１を含む領域をブロック順次走査するようにしてもよい。ここで、タスクバーとは、ウィンドウズ（登録商標）の場合を例にすれば、画面の一辺に沿って設けられた矩形の領域であり、ここには、スタートボタン、アプリケーションのクイック起動用のショートカットアイコン、動作中アプリケーションのバー、常駐アプリケーションのアイコン、日付、曜日、時刻などが表示される。そして、符号化パラメータが発生符号量を少なくするような値である場合には、少なくとも１つの画素のレベルを変更するべきブロックの数を減らし、符号化パラメータが発生符号量を多くするような値である場合には、少なくとも１つの画素のレベルを変更するべきブロックの数を多くするようにしてもよい。
【００７８】
更に、上述した方法を組み合わせてもよい。すなわち、例えば、ブロック順次走査してブロックを送信する方法とマウスカーソルを中心とした領域のブロックを送信する方法を同時に行うようにしてもよい。また、タスクバー３０１以外の領域をブロック順次走査してブロックを送信する方法とタスクバー３０１の領域をブロック順次走査してブロックを送信する方法とマウスカーソルを中心とした領域のブロックを送信する方法を同時に行うようにしてもよい。
【００７９】
図１４に示すように、レベルを変更するべき画素を、同一ブロックが選択される度に、１画素ずつずらしていくようにしてもよい。また、図１５に示すように、同一ブロックが２度選択される度に、１画素ずつずらし、各画素毎に１度目にレベルを増加させたならば、２度目にはレベルを戻すようにしてもよい。
【００８０】
また、変更するレベルは、送信ブロック判断部１１９で当該ブロックを送信するべきであると判断できるようにするレベルであるが、各部を調整して、変更するレベルを１とすることにより、変更が視覚的に認識することができないようにすることができる。
【００８１】
また、レベルを変更する画素を１ブロック当たり複数としてもよい。
【００８２】
なお、本発明による画面データ送信装置は、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。
【産業上の利用可能性】
【００８３】
本発明は、画面転送型シンクライアントシステムなどの画面を転送するシステムに適用することができる。
【図面の簡単な説明】
【００８４】
【図１】基本的な画面データ送信装置の構成を示すブロック図である。
【図２】画面ブロックを示す図である。
【図３】シンクライアントのうち表示画面に関連する部分を示すブロック図である。
【図４】図１に示す基本的な画面データ送信装置の動作を説明するためのフローチャートである。
【図５】画面転送型シンクライアントシステムにおいて転送される画面ブロックを説明するための第１の図である。
【図６】画面転送型シンクライアントシステムにおいて転送される画面ブロックを説明するための第２の図である。
【図７】本発明の実施形態による画面データ送信装置の構成を示すブロック図である。
【図８】図７に示す本発明の実施形態による画面データ送信装置の動作を説明するためのフローチャート（１／２）である。
【図９】図７に示す本発明の実施形態による画面データ送信装置の動作を説明するためのフローチャート（２／２）である。
【図１０】本発明の原理を示す図である。
【図１１】本発明の実施形態によるブロック順次走査を示す図である。
【図１２】本発明の実施形態によるマウスカーソルを中心とした領域のブロックを送信する方法を説明するための図である。
【図１３】本発明の実施形態によるタスクバーを含む領域のブロックを送信する方法を説明するための図である。
【図１４】本発明の実施形態による同一ブロックが１度選択される度にレベルが変更される画素が１つずつ移動していく様子を説明する図である。
【図１５】本発明の実施形態による同一ブロックが２度選択される度にレベルが変更される画素が１つずつ移動していく様子を説明する図である。
【符号の説明】
【００８５】
１０１  ブロック化部
１０３  第１のフレームメモリ
１０５  第１の減算器
１０７  第１のブロック間差分検出部
１０９  レベル変更ブロック判断部
１１１  レベル変更部
１１３  第２のフレームメモリ
１１５  第２の減算器
１１７  第２のブロック間差分検出部
１１９  送信ブロック判断部
１２１  符号化部
１２３  バッファ
【図１】
0004985492.tif 000002
【図２】
0004985492.tif 000003
【図３】
0004985492.tif 000004
【図４】
0004985492.tif 000005
【図５】
0004985492.tif 000006
【図６】
0004985492.tif 000007
【図７】
0004985492.tif 000008
【図８】
0004985492.tif 000009
【図９】
0004985492.tif 000010
【図１０】
0004985492.tif 000011
【図１１】
0004985492.tif 000012
【図１２】
0004985492.tif 000013
【図１３】
0004985492.tif 000014
【図１４】
0004985492.tif 000015
【図１５】
0004985492.tif 000016