(57)【要約】【課題】表示装置の処理を効率化する通信装置を提供すること。【解決手段】表示画像を更新するための更新画像を生成する更新画像生成部１１１ａと、更新画像と表示画像との差分領域を検出する差分領域検出部１１２と、複数の差分領域が検出された場合に、複数の差分領域の画像の伸張処理をソフトウェアにより実行したときのソフトウェア処理時間と、複数の差分領域を含む統合領域の画像の伸張処理をハードウェアにより実行したときのハードウェア処理時間とを算出する処理時間算出部１１５と、ハードウェア処理時間がソフトウェア処理時間より小さいか否かを判定する領域統合判定部１１４と、ハードウェア処理時間がソフトウェア処理時間より小さいと判定された場合に、統合領域の画像を圧縮した圧縮画像を生成する圧縮画像生成部１１３と、圧縮画像を表示装置に送信する送信部１１７ａと、を備えた。【選択図】        図２
2010109637.tif 000002
【特許請求の範囲】
【請求項１】
画像を表示可能な表示装置にネットワークを介して接続可能な通信装置であって、
前記表示装置に表示する表示画像を記憶する画像記憶部と、
前記表示画像を更新するための更新画像を生成する更新画像生成部と、
前記更新画像と前記表示画像との間で画素情報が一致しない領域を示す差分領域を検出する検出部と、
複数の前記差分領域が検出された場合に、複数の前記差分領域の画像を圧縮した各々の圧縮画像に対する伸張処理をソフトウェアにより実行したときの処理時間を表すソフトウェア処理時間と、複数の前記差分領域を含む１つの領域を表す統合領域の画像を圧縮した圧縮画像に対する伸張処理をハードウェアにより実行したときの処理時間を表すハードウェア処理時間とを算出する算出部と、
前記ハードウェア処理時間が前記ソフトウェア処理時間より小さいか否かを判定する判定部と、
前記ハードウェア処理時間が前記ソフトウェア処理時間より小さいと判定された場合に、前記統合領域の画像を圧縮した圧縮画像を生成する圧縮画像生成部と、
生成された圧縮画像を前記表示装置に送信する送信部と、
を備えたことを特徴とする通信装置。
【請求項２】
画像の画素数から前記ソフトウェア処理時間および前記ハードウェア処理時間を算出するための予め定められた条件を記憶する条件記憶部をさらに備え、
前記算出部は、複数の前記差分領域の画像それぞれの画素数から前記条件を用いて前記ソフトウェア処理時間を算出し、前記統合領域の画像の画素数から前記条件を用いて前記ハードウェア処理時間を算出すること、
を特徴とする請求項１に記載の通信装置。
【請求項３】
前記条件記憶部は、画像の画素数を入力した結果として前記ソフトウェア処理時間を出力する第１関数と、画像の画素数を入力した結果として前記ハードウェア処理時間を出力する第２関数とを前記条件として記憶し、
前記算出部は、複数の前記差分領域の画像の画素数を前記第１関数に入力することによって前記ソフトウェア処理時間を算出し、前記統合領域の画像の画素数を前記第２関数に入力した結果として出力される前記ハードウェア処理時間を算出すること、
を特徴とする請求項２に記載の通信装置。
【請求項４】
伸張処理をソフトウェアにより実行したかハードウェアにより実行したかを表す伸張方式と、伸張した画像の画素数と、伸張処理に要した処理時間とを対応づけた時間情報を前記表示装置から受信する受信部と、
伸張処理をソフトウェアにより実行したことを表す前記伸張方式を含む前記時間情報から前記第１関数を生成し、伸張処理をハードウェアにより実行したことを表す前記伸張方式を含む前記時間情報から前記第２関数を生成し、生成した前記第１関数および前記第２関数を前記条件として前記条件記憶部に保存するメッセージ解析部と、をさらに備えたこと、
を特徴とする請求項３に記載の通信装置。
【請求項５】
前記第１関数および前記第２関数を前記表示装置から受信する受信部と、
受信された前記第１関数および前記第２関数を前記条件として前記条件記憶部に保存するメッセージ解析部と、をさらに備えたこと、
を特徴とする請求項３に記載の通信装置。
【請求項６】
前記検出部は、前記更新画像と前記表示画像との間で一致しない矩形領域を表す前記差分領域を検出し、
前記算出部は、複数の前記差分領域が検出された場合に、前記ソフトウェア処理時間と、複数の前記差分領域を含む最小の矩形領域を表す前記統合領域に対する画像処理をハードウェアにより実行したときの前記ハードウェア処理時間とを算出すること、
を特徴とする請求項１に記載の通信装置。
【請求項７】
画像を表示可能な表示装置にネットワークを介して接続可能な通信装置で実行される画像送信方法であって、
前記通信装置は、前記表示装置に表示する表示画像を記憶する画像記憶部を備え、
更新画像生成部が、前記表示画像を更新するための更新画像を生成する更新画像生成ステップと、
検出部が、前記更新画像と前記表示画像との間で画素情報が一致しない領域を示す差分領域を検出する検出ステップと、
算出部が、複数の前記差分領域が検出された場合に、複数の前記差分領域の画像を圧縮した各々の圧縮画像に対する伸張処理をソフトウェアにより実行したときの処理時間を表すソフトウェア処理時間と、複数の前記差分領域を含む１つの領域を表す統合領域の画像を圧縮した圧縮画像に対する伸張処理をハードウェアにより実行したときの処理時間を表すハードウェア処理時間とを算出する算出ステップと、
判定部が、前記ハードウェア処理時間が前記ソフトウェア処理時間より小さいか否かを判定する判定ステップと、
圧縮画像生成部が、前記ハードウェア処理時間が前記ソフトウェア処理時間より小さいと判定された場合に、前記統合領域の画像を圧縮した圧縮画像を生成する圧縮画像生成ステップと、
送信部が、生成された圧縮画像を前記表示装置に送信する送信ステップと、
を備えたことを特徴とする画像送信方法。
【請求項８】
画像を表示可能な表示装置にネットワークを介して接続可能な通信装置で実行させるための画像送信プログラムであって、
前記通信装置は、前記表示装置に表示する表示画像を記憶する画像記憶部を備え、
前記通信装置を、
前記表示画像を更新するための更新画像を生成する更新画像生成部と、
前記更新画像と前記表示画像との間で画素情報が一致しない領域を示す差分領域を検出する検出部と、
複数の前記差分領域が検出された場合に、複数の前記差分領域の画像を圧縮した各々の圧縮画像に対する伸張処理をソフトウェアにより実行したときの処理時間を表すソフトウェア処理時間と、複数の前記差分領域を含む１つの領域を表す統合領域の画像を圧縮した圧縮画像に対する伸張処理をハードウェアにより実行したときの処理時間を表すハードウェア処理時間とを算出する算出部と、
前記ハードウェア処理時間が前記ソフトウェア処理時間より小さいか否かを判定する判定部と、
前記ハードウェア処理時間が前記ソフトウェア処理時間より小さいと判定された場合に、前記統合領域の画像を圧縮した圧縮画像を生成する圧縮画像生成部と、
生成された圧縮画像を前記表示装置に送信する送信部と、
として機能させるための画像送信プログラム。
【請求項９】
通信装置にネットワークを介して接続された表示装置であって、
更新された領域の画像を圧縮した圧縮画像と更新された領域の画像の画素数とを前記通信装置から受信する受信部と、
前記圧縮画像の伸張処理を実行可能な伸張回路と、
前記圧縮画像の伸張処理をソフトウェアにより実行可能なソフトウェア伸張部と、
前記画素数と予め定められた閾値とを比較し、前記画素数が前記閾値より小さい場合に前記ソフトウェア伸張部により前記圧縮画像を伸張して前記更新された領域に対応する更新画像を生成し、前記画素数が前記閾値以上の場合に前記伸張回路により前記圧縮画像を伸張して前記更新された領域に対応する表示画像を生成する画像生成部と、
前記表示画像を表示する表示部と、
前記ソフトウェア伸張部による伸張処理の処理時間を表すソフトウェア処理時間と前記伸張回路による伸張処理の処理時間を表すハードウェア処理時間とを計測する計測部と、
伸張処理を前記ソフトウェア伸張部により実行したか前記伸張回路により実行したかを表す伸張方式と、伸張した画像の画素数と、前記ソフトウェア処理時間および前記ハードウェア処理時間のいずれかと、対応づけた時間情報を生成する情報生成部と、
前記時間情報を前記通信装置に送信する送信部と、
を備えたことを特徴とする表示装置。
【請求項１０】
通信装置にネットワークを介して接続された表示装置で実行される通信方法であって、
前記表示装置は、前記圧縮画像の伸張処理を実行可能な伸張回路と、画像を表示可能な表示部と、を備え、
受信部が、更新された領域の画像を圧縮した圧縮画像と更新された領域の画像の画素数とを前記通信装置から受信する受信ステップと、
画像生成部が、前記画素数と予め定められた閾値とを比較し、前記画素数が前記閾値より小さい場合に、前記圧縮画像の伸張処理をソフトウェアにより実行可能なソフトウェア伸張部により前記圧縮画像を伸張して前記更新された領域に対応する更新画像を生成し、前記画素数が前記閾値以上の場合に前記伸張回路により前記圧縮画像を伸張して前記更新された領域に対応する表示画像を生成し、前記表示部に表示する画像生成ステップと、
計測部が、前記ソフトウェア伸張部による伸張処理の処理時間を表すソフトウェア処理時間と前記伸張回路による伸張処理の処理時間を表すハードウェア処理時間とを計測する計測ステップと、
情報生成部が、伸張処理を前記ソフトウェア伸張部により実行したか前記伸張回路により実行したかを表す伸張方式と、伸張した画像の画素数と、前記ソフトウェア処理時間および前記ハードウェア処理時間のいずれかと、対応づけた時間情報を生成する情報生成ステップと、
送信部が、前記時間情報を前記通信装置に送信する送信ステップと、
を備えたことを特徴とする通信方法。
【請求項１１】
通信装置にネットワークを介して接続された表示装置で実行させるための通信プログラムであって、
前記表示装置は、前記圧縮画像の伸張処理を実行可能な伸張回路と、画像を表示可能な表示部と、を備え、
前記表示装置を、
更新された領域の画像を圧縮した圧縮画像と更新された領域の画像の画素数とを前記通信装置から受信する受信部と、
前記圧縮画像の伸張処理をソフトウェアにより実行可能なソフトウェア伸張部と、
前記画素数と予め定められた閾値とを比較し、前記画素数が前記閾値より小さい場合に前記ソフトウェア伸張部により前記圧縮画像を伸張して前記更新された領域に対応する更新画像を生成し、前記画素数が前記閾値以上の場合に前記伸張回路により前記圧縮画像を伸張して前記更新された領域に対応する表示画像を生成し、前記表示部に表示する画像生成部と、
前記ソフトウェア伸張部による伸張処理の処理時間を表すソフトウェア処理時間と前記伸張回路による伸張処理の処理時間を表すハードウェア処理時間とを計測する計測部と、
伸張処理を前記ソフトウェア伸張部により実行したか前記伸張回路により実行したかを表す伸張方式と、伸張した画像の画素数と、前記ソフトウェア処理時間および前記ハードウェア処理時間のいずれかと、対応づけた時間情報を生成する情報生成部と、
前記時間情報を前記通信装置に送信する送信部と、
として機能させるための通信プログラム。
【請求項１２】
通信装置にネットワークを介して接続された表示装置であって、
更新された領域の画像を圧縮した圧縮画像と更新された領域の画像の画素数とを前記通信装置から受信する受信部と、
前記圧縮画像の伸張処理を実行可能な伸張回路と、
前記圧縮画像の伸張処理をソフトウェアにより実行可能なソフトウェア伸張部と、
前記画素数と予め定められた閾値とを比較し、前記画素数が前記閾値より小さい場合に前記ソフトウェア伸張部により前記圧縮画像を伸張して前記更新された領域に対応する更新画像を生成し、前記画素数が前記閾値以上の場合に前記伸張回路により前記圧縮画像を伸張して前記更新された領域に対応する表示画像を生成する画像生成部と、
前記表示画像を表示する表示部と、
前記ソフトウェア伸張部による伸張処理の処理時間を表すソフトウェア処理時間と前記伸張回路による伸張処理の処理時間を表すハードウェア処理時間とを計測する計測部と、
前記ソフトウェア伸張部により伸張した画像の画素数と前記ソフトウェア処理時間とに基づいて画素数から前記ソフトウェア処理時間を算出する第１関数を生成し、前記伸張回路により伸張した画像の画素数と前記ハードウェア処理時間とに基づいて画素数から前記ハードウェア処理時間を算出する第２関数を生成する情報生成部と、
前記第１関数および前記第２関数を前記通信装置に送信する送信部と、
を備えたことを特徴とする表示装置。
【請求項１３】
通信装置にネットワークを介して接続された表示装置で実行される通信方法であって、
前記表示装置は、前記圧縮画像の伸張処理を実行可能な伸張回路と、画像を表示可能な表示部と、を備え、
受信部が、更新された領域の画像を圧縮した圧縮画像と更新された領域の画像の画素数とを前記通信装置から受信する受信ステップと、
画像生成部が、前記画素数と予め定められた閾値とを比較し、前記画素数が前記閾値より小さい場合に、前記圧縮画像の伸張処理をソフトウェアにより実行可能なソフトウェア伸張部により前記圧縮画像を伸張して前記更新された領域に対応する更新画像を生成し、前記画素数が前記閾値以上の場合に前記伸張回路により前記圧縮画像を伸張して前記更新された領域に対応する表示画像を生成し、前記表示部に表示する画像生成ステップと、
計測部が、前記ソフトウェア伸張部による伸張処理の処理時間を表すソフトウェア処理時間と前記伸張回路による伸張処理の処理時間を表すハードウェア処理時間とを計測する計測ステップと、
情報生成部が、前記ソフトウェア伸張部により伸張した画像の画素数と前記ソフトウェア処理時間とに基づいて画素数から前記ソフトウェア処理時間を算出する第１関数を生成し、前記伸張回路により伸張した画像の画素数と前記ハードウェア処理時間とに基づいて画素数から前記ハードウェア処理時間を算出する第２関数を生成する情報生成ステップと、
送信部が、前記第１関数および前記第２関数を前記通信装置に送信する送信ステップと、
を備えたことを特徴とする通信方法。
【請求項１４】
通信装置にネットワークを介して接続された表示装置で実行させるための通信プログラムであって、
前記表示装置は、前記圧縮画像の伸張処理を実行可能な伸張回路と、画像を表示可能な表示部とを備え、
前記表示装置を、
更新された領域の画像を圧縮した圧縮画像と更新された領域の画像の画素数とを前記通信装置から受信する受信部と、
前記圧縮画像の伸張処理をソフトウェアにより実行可能なソフトウェア伸張部と、
前記画素数と予め定められた閾値とを比較し、前記画素数が前記閾値より小さい場合に前記ソフトウェア伸張部により前記圧縮画像を伸張して前記更新された領域に対応する更新画像を生成し、前記画素数が前記閾値以上の場合に前記伸張回路により前記圧縮画像を伸張して前記更新された領域に対応する表示画像を生成し、前記表示部に表示する画像生成部と、
前記ソフトウェア伸張部による伸張処理の処理時間を表すソフトウェア処理時間と前記伸張回路による伸張処理の処理時間を表すハードウェア処理時間とを計測する計測部と、
前記ソフトウェア伸張部により伸張した画像の画素数と前記ソフトウェア処理時間とに基づいて画素数から前記ソフトウェア処理時間を算出する第１関数を生成し、前記伸張回路により伸張した画像の画素数と前記ハードウェア処理時間とに基づいて画素数から前記ハードウェア処理時間を算出する第２関数を生成する情報生成部と、
前記第１関数および前記第２関数を前記通信装置に送信する送信部と、
として機能させるための通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、装置間でアプリケーションの画面を共有する機能を実現する通信装置、画像送信方法、画像送信プログラム、表示装置、通信方法、および通信プログラムに関する。
【背景技術】
【０００２】
ユーザビリティの向上を目的として、最低限の入出力インターフェースを有する端末装置をユーザ側に配し、複雑な演算処理は遠隔地に設置された通信装置（本体装置）上で実行するコンピューティングシステムが存在する。例えば、特許文献１では、本体装置（パーソナルコンピュータ、サーバコンピュータ等）の画面情報を、ネットワークを介して遠隔の表示装置（表示端末）に投影するシステムに関する技術が提案されている。
【０００３】
このようなシステムでは、表示端末からの入力情報（デジタイザによるペン入力等）は、同様にネットワークを介して本体装置に送信され、実際のアプリケーションプログラム処理は本体装置が実行する。その後、実行結果および画面更新情報が、ネットワークを介して表示端末に転送される。表示端末は、受信された画面更新情報により出力処理（描画処理）を実行する。
【０００４】
一方、遠隔ネットワーク上の本体装置からの画面情報を表示端末へ効率よく伝送するための技術として、ＶＮＣ（Virtual Network Computing）が知られている。このＶＮＣでは、画面の更新を検知した際、読み出した画素情報の値を前回表示端末に伝送した画素情報の値と比較し、前回から変化した更新画面領域を決定する。さらに更新画面領域を静止画圧縮した後、表示端末に対して、圧縮した画面の差分情報のみを伝送する。これにより、通信帯域の消費を抑えることができる。従って、ウィンドウの移動等、画面の変更が大きい場合には送信すべき画面情報量が増加し、反対に画面の変更が小さい場合には送信すべき画面情報量は減少する。
【０００５】
そこで、表示端末が本体装置から受信した圧縮画像の伸張処理を専用のハードウェアで行うことによって、更新画面の表示に関するレスポンス性を向上させることが考えられる。しかし、ハードウェアで処理する場合、一般的にハードウェアの初期化処理に要する時間、圧縮画像の伸張処理に要する時間、および処理完了の割り込み型通知までに要する待機時間などがオーバーヘッドとして必要となる。このため、伸張する画像の画素数の大きさによっては、ハードウェアで処理するよりもソフトウェアで処理する方が少ない時間で済む場合が存在し得る。
【０００６】
この問題に対しては、表示端末が、本体装置から受信した圧縮画像の画素数が予め定めた閾値よりも大きい場合にはハードウェアによる伸張処理を実行し、それ以外の場合にはソフトウェアによる伸張処理を実行するように、処理を切替える方法が考えうる。
【０００７】
なお、画像の情報に基づいて複数の処理の中から１つの処理を選択して実施する方法として、特許文献２では、静止画像の付加（ヘッダー）情報に基づいて、ハードウェアとソフトウェアのいずれかを選択して圧縮データを解凍する技術が提案されている。また、特許文献３では、画像の解像度情報に基づいて、可逆圧縮と非可逆圧縮のいずれかを選択して符号化する技術が提案されている。
【０００８】
【特許文献１】米国特許第６７８４８５５号公報
【特許文献２】特開２０００−５０２６３号公報
【特許文献３】特開２００８−４２６８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述のように画素数が閾値よりも大きい圧縮画像はハードウェアによる伸張処理を実行し、画素数が閾値以下の圧縮画像はソフトウェアによる伸張処理を実行するように処理を切り替える方法では、表示端末側での画像伸張処理を効率化できない場合があった。
【００１０】
例えば、圧縮画像の画素数が閾値より小さくなる更新領域が複数存在する場合、複数の更新領域を１つに統合した矩形領域に対応する圧縮画像をハードウェアにより伸張処理する方が、複数の更新領域に対応する圧縮画像それぞれに対して複数回ソフトウェアにより伸張処理するより処理時間が少なくなる場合がある。しかし、上記の方法では、圧縮画像の画素数が閾値より小さくなる更新領域が複数存在する場合は、複数の更新領域に対応する圧縮画像それぞれに対して複数回のソフトウェア伸張処理を実行することしかできない。
【００１１】
本発明は、上記に鑑みてなされたものであって、通信装置から送信された圧縮画像をソフトウェアおよびハードウェアにより伸張可能な表示装置の処理を効率化することができる通信装置、画像送信方法、画像送信プログラム、表示装置、通信方法、および通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明は、画像を表示可能な表示装置にネットワークを介して接続可能な通信装置であって、前記表示装置に表示する表示画像を記憶する画像記憶部と、前記表示画像を更新するための更新画像を生成する更新画像生成部と、前記更新画像と前記表示画像との間で画素情報が一致しない領域を示す差分領域を検出する検出部と、複数の前記差分領域が検出された場合に、複数の前記差分領域の画像を圧縮した各々の圧縮画像に対する伸張処理をソフトウェアにより実行したときの処理時間を表すソフトウェア処理時間と、複数の前記差分領域を含む１つの領域を表す統合領域の画像を圧縮した圧縮画像に対する伸張処理をハードウェアにより実行したときの処理時間を表すハードウェア処理時間とを算出する算出部と、前記ハードウェア処理時間が前記ソフトウェア処理時間より小さいか否かを判定する判定部と、前記ハードウェア処理時間が前記ソフトウェア処理時間より小さいと判定された場合に、前記統合領域の画像を圧縮した圧縮画像を生成する圧縮画像生成部と、生成された圧縮画像を前記表示装置に送信する送信部と、を備えたことを特徴とする。
【００１３】
また、本発明は、上記装置を実行することができる方法およびプログラムである。
【００１４】
また、本発明は、通信装置にネットワークを介して接続された表示装置であって、更新された領域の画像を圧縮した圧縮画像と更新された領域の画像の画素数とを前記通信装置から受信する受信部と、前記圧縮画像の伸張処理を実行可能な伸張回路と、前記圧縮画像の伸張処理をソフトウェアにより実行可能なソフトウェア伸張部と、前記画素数と予め定められた閾値とを比較し、前記画素数が前記閾値より小さい場合に前記ソフトウェア伸張部により前記圧縮画像を伸張して前記更新された領域に対応する更新画像を生成し、前記画素数が前記閾値以上の場合に前記伸張回路により前記圧縮画像を伸張して前記更新された領域に対応する表示画像を生成する画像生成部と、前記表示画像を表示する表示部と、前記ソフトウェア伸張部による伸張処理の処理時間を表すソフトウェア処理時間と前記伸張回路による伸張処理の処理時間を表すハードウェア処理時間とを計測する計測部と、伸張処理を前記ソフトウェア伸張部により実行したか前記伸張回路により実行したかを表す伸張方式と、伸張した画像の画素数と、前記ソフトウェア処理時間および前記ハードウェア処理時間のいずれかと、対応づけた時間情報を生成する情報生成部と、前記時間情報を前記通信装置に送信する送信部と、を備えたことを特徴とする。
【００１５】
また、本発明は、上記装置を実行することができる方法およびプログラムである。
【００１６】
また、本発明は、通信装置にネットワークを介して接続された表示装置であって、更新された領域の画像を圧縮した圧縮画像と更新された領域の画像の画素数とを前記通信装置から受信する受信部と、前記圧縮画像の伸張処理を実行可能な伸張回路と、前記圧縮画像の伸張処理をソフトウェアにより実行可能なソフトウェア伸張部と、前記画素数と予め定められた閾値とを比較し、前記画素数が前記閾値より小さい場合に前記ソフトウェア伸張部により前記圧縮画像を伸張して前記更新された領域に対応する更新画像を生成し、前記画素数が前記閾値以上の場合に前記伸張回路により前記圧縮画像を伸張して前記更新された領域に対応する表示画像を生成する画像生成部と、前記表示画像を表示する表示部と、前記ソフトウェア伸張部による伸張処理の処理時間を表すソフトウェア処理時間と前記伸張回路による伸張処理の処理時間を表すハードウェア処理時間とを計測する計測部と、前記ソフトウェア伸張部により伸張した画像の画素数と前記ソフトウェア処理時間とに基づいて画素数から前記ソフトウェア処理時間を算出する第１関数を生成し、前記伸張回路により伸張した画像の画素数と前記ハードウェア処理時間とに基づいて画素数から前記ハードウェア処理時間を算出する第２関数を生成する情報生成部と、前記第１関数および前記第２関数を前記通信装置に送信する送信部と、を備えたことを特徴とする。
【００１７】
また、本発明は、上記装置を実行することができる方法およびプログラムである。
【発明の効果】
【００１８】
本発明によれば、通信装置から送信された圧縮画像をソフトウェアおよびハードウェアにより伸張可能な表示装置の処理を効率化することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１９】
以下に添付図面を参照して、この発明にかかる装置、方法およびプログラムの最良な実施の形態を詳細に説明する。
【００２０】
本実施の形態にかかる通信システムは、アプリケーションを実行する本体装置（通信装置）と、アプリケーションの実行により更新された画面を表示する表示端末（表示装置）とを備える。本体装置は、アプリケーションプログラムの動作により発生する画像情報の差分領域が複数存在することを検出した場合に、当該複数の差分領域を１つの矩形領域に統合することによって、表示端末で実行される画像伸張処理の処理時間が短縮されるかを判定する。そして処理時間が短縮されると判定した場合、本体装置は複数の差分領域を統合した矩形領域に対応する画像情報を圧縮して表示端末に送信する。これにより、表示端末での画像伸張処理を効率化することができる。
【００２１】
図１は、本実施の形態にかかる通信システムの構成を示すブロック図である。本実施の形態にかかる通信システムは、本体装置の画面に生じたイベントによる更新部分の画像を表示端末に伝送するシステムである。以下では、このような通信システムを画面転送システムと呼ぶ。
【００２２】
図１に示すように、本実施の形態にかかる画面転送システム１０は、通信装置としての本体装置１００と、本体装置１００とネットワーク４００を介して接続されたアクセスポイントとしての無線基地局３００と、無線基地局３００と無線ＬＡＮにより無線通信する表示装置としての表示端末２００とを備えている。
【００２３】
画面転送システム１０は、本体装置１００上で動作するアプリケーションソフトウェアの画面を、無線基地局３００を介して表示端末２００へ無線転送し、各表示端末２００へ本体装置１００のアプリケーション画面を表示する機能を有している。画面転送システム１０では、本体装置１００の側で更新された画面をリアルタイムに表示端末２００へ転送するために、本体装置１００の画面内で更新された部分の画像情報のみを転送する。すなわち、本体装置１００は、画像情報を表示する表示端末２００に対して、無線基地局３００を介して画像情報を送信可能である。
【００２４】
表示端末２００は、本体装置１００から画像情報を受信し、受信した画像情報を伸張して画面内の対応する部分に表示する。
【００２５】
無線基地局３００は、ＩＥＥＥ８０２．１１などの無線通信プロトコルに準拠した無線通信の基地局である。ネットワーク４００は、例えば、ＩＥＥＥ８０２．３などの有線通信プロトコルに準拠したネットワークである。なお、ネットワーク形態はこれに限られず、他のプロトコルで接続するように構成してもよい。また、表示端末２００と本体装置１００とを有線ネットワークで接続するように構成してもよい。
【００２６】
次に、本体装置１００の詳細な構成について図２を用いて説明する。図２は、本実施の形態にかかる本体装置１００のブロック図である。同図に示すように、本体装置１００は、ディスプレイ１０１と、入力デバイス１０２と、画像バッファ１２１と、条件記憶部１２２と、セッション情報記憶部１２３と、イベント取得部１１１と、差分領域検出部１１２と、圧縮画像生成部１１３と、領域統合判定部１１４と、処理時間算出部１１５と、メッセージ解析部１１６と、通信処理部１１７と、セッションマネージャ１１８と、を備えている。
【００２７】
ディスプレイ１０１は、ＬＣＤ（Liquid Crystal Display）などで実現される表示装置である。入力デバイス１０２は、ディスプレイ１０１の画面に表示されたカーソルを移動操作するマウスなどで実現される。この他、入力デバイス１０２としては、キーボード、トラックボールなどを用いてもよい。
【００２８】
画像バッファ１２１は、画像を記憶する記憶部である。条件記憶部１２２は、画像の画素数から、圧縮画像を表示端末２００でソフトウェアで伸張処理した場合の処理時間（以下、ソフトウェア処理時間という）と、圧縮画像を表示端末２００でハードウェアで伸張処理した場合の処理時間（以下、ハードウェア処理時間という）を算出するための所定の条件を記憶する。例えば、条件記憶部１２２は、画素数を入力としてソフトウェア処理時間を出力する関数（第１関数）を導出するための関数情報、および、画素数を入力としてハードウェア処理時間を出力する関数（第２関数）を導出するための関数情報を条件として記憶する。
【００２９】
例えば、画素数とソフトウェア処理時間またはハードウェア処理時間との関係が一次関数で表される場合は、一次関数の傾き情報および切片情報が関数を導出するための関数情報に相当する。なお、関数は一次関数に限られるものではない。
【００３０】
セッション情報記憶部１２３は、本体装置１００とセッションを確立中の表示端末２００に関する情報を表すセッション情報を記憶する。例えば、セッション情報記憶部１２３は、ユーザを識別するユーザ識別情報などと、セッションが利用中か否かを示す状態情報、および伝送制御がＴＣＰ（Transmission ControlProtocol）であるかＵＤＰ（User Datagram Protocol）であるかを表す伝送制御情報などの情報とを対応づけたセッション情報を記憶する。
【００３１】
１台の本体装置１００に対して、複数の表示端末２００がセッションを確立している状態では、セッション情報記憶部１２３は、本体装置１００から送信するメッセージの宛先とする表示端末２００を識別する端末識別情報を含むセッション情報を記憶する。
【００３２】
なお、画像バッファ１２１、条件記憶部１２２およびセッション情報記憶部１２３は、ＨＤＤ（Hard Disk Drive）、光ディスク、メモリカード、ＲＡＭ（Random Access Memory）などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００３３】
イベント取得部１１１は、アプリケーションプログラム等の動作により発生するイベントを取得する。例えば、イベント取得部１１１は、コンピュータを統括制御するオペレーティングシステム（ＯＳ）と、このＯＳに組み込まれたディスプレイドライバと同等の機能を有する仮想ディスプレイドライバと、ＯＳ上で動作するアプリケーションソフトウェアなどのアプリケーションプログラムで実現される。
【００３４】
イベント取得部１１１は、アプリケーションソフトウェアにより画面が更新される場合や、マウス操作などでカーソルが移動操作されて画面内の任意の領域の画像が更新される場合に、画面（画像）が更新されたことをイベントとして取得する。
【００３５】
イベント取得部１１１は、詳細な構成として更新画像生成部１１１ａを備えている。更新画像生成部１１１ａは、例えばＯＳに組み込まれた仮想ディスプレイドライバとして実現できる。更新画像生成部１１１ａは、画面更新のイベントが取得された場合、ＯＳのグラフィックエンジンから描画命令を取得し、描画処理を行うことで表示端末２００に表示させる画像を表す表示画像を生成して画像バッファ１２１へ順次出力して記憶する。これにより、画像バッファ１２１には、表示画像が順次保持される。
【００３６】
なお、以下では、画像バッファ１２１に保持されている画像を表示画像といい、更新画像生成部１１１ａにより新たに生成され、画像バッファ１２１に保存する前の画像を更新画像という。このように、更新画像生成部１１１ａは、アプリケーションプログラムの動作により発生するイベントに従って表示端末２００に表示させる更新画像を生成する。
【００３７】
差分領域検出部１１２は、画像バッファ１２１に順次保持される新旧の表示画像で画素情報が一致しない領域を表す差分領域を検出する。すなわち、差分領域検出部１１２は、更新画像生成部１１１ａにより更新画像が生成されたことを通知された場合に、生成された新たな画像情報（更新画像）と画像バッファ１２１にバッファリングされた画像情報（表示画像）との間の差分領域を検出する。差分領域検出部１１２は、例えば、２つの画像情報間で一致しない部分を含む最小の矩形を、差分領域として検出する。なお、差分領域検出部１１２が、所定の時間間隔毎に差分の有無を確認するように構成してもよい。
【００３８】
圧縮画像生成部１１３は、差分領域検出部１１２により検出された差分領域の画像を送信用に圧縮処理した圧縮画像を生成する。圧縮画像は、ＪＰＥＧ（Joint Photographic Experts Group）のような不可逆圧縮を用いて生成してもよいし、可逆圧縮方式を用いて生成してもよい。
【００３９】
なお、圧縮画像生成部１１３および上述の差分領域検出部１１２は、画面転送用のアプリケーションプログラムなどにより実現される。
【００４０】
領域統合判定部１１４は、複数の差分領域が検出された場合に、当該複数の差分領域を統合する方が表示端末２００にとって効率的となるか否かを判定する。例えば、領域統合判定部１１４は、差分領域検出部１１２から差分領域によって示される画像の画素数を含む差分領域情報の通知を受け、通知された画素数と条件記憶部１２２に記憶された条件とから、複数の差分領域を統合する方が効率的か否かを判定する。
【００４１】
差分領域によって示される画像の画素数としては、例えば、差分領域の画像の縦幅と横幅とを掛け合わせた値を用いる。例えば、縦幅３２０画素、横幅２４０画素の矩形領域を差分領域として検出した場合、差分領域検出部１１２は、双方を掛け合わせた７６８００画素を差分領域によって示される画像の画素数として領域統合判定部１１４に通知する。
【００４２】
以下に、領域統合判定部１１４による判定処理の詳細について説明する。領域統合判定部１１４は、まず、処理時間算出部１１５を用いて複数の差分領域を１つに統合した領域（以下、統合領域という）に対するハードウェア処理時間と、複数の差分領域それぞれに対するソフトウェア処理時間とを算出する。
【００４３】
すなわち、処理時間算出部１１５は、統合領域の画像を圧縮した圧縮画像をハードウェアにより伸張処理したときのハードウェア処理時間と、複数の差分領域の画像を圧縮した圧縮画像それぞれをソフトウェアにより伸張処理したときのソフトウェア処理時間とを算出する。
【００４４】
具体的には、処理時間算出部１１５は、条件記憶部１２２に記憶した第１関数に、差分領域検出部１１２から通知された複数の差分領域の画像の画素数を入力し、ソフトウェア処理時間を算出する。また、処理時間算出部１１５は、条件記憶部１２２に記憶した第２関数に、差分領域検出部１１２が検出した複数の差分領域を統合した統合領域の画像の画素数を入力し、ハードウェア処理時間を算出する。
【００４５】
そして、領域統合判定部１１４は、算出したハードウェア処理時間がソフトウェア処理時間より小さいか否かを判定し、小さい場合に複数の差分領域を統合する方が効率的と判定して判定結果を差分領域検出部１１２に通知する。また、圧縮画像生成部１１３は、後述する領域統合判定部１１４により、複数の差分領域を統合した方が効率的と判定された場合に、複数の差分領域を統合した統合領域の画像を圧縮した圧縮画像を生成する。
【００４６】
以下に、領域統合判定部１１４による判定処理の詳細について図３を用いてさらに説明する。図３は、画像の画素数と伸張処理時間との関係の一例を示す図である。
【００４７】
同図の右上には、本体装置１００の表示画面で２つの矩形領域α、βが更新すべき差分領域として検出された状態が示されている。なお、矩形領域３０１は、矩形領域α、βを１つに統合した統合領域を表す。矩形領域３０１は、例えば矩形領域α、βを含む最小の矩形領域として求めることができる。また、領域γは、矩形領域３０１内で実際には更新が発生していない矩形領域を示している。
【００４８】
また、同図では、横軸を画像の画素数、縦軸を表示端末２００での圧縮画像の伸張処理時間とした場合の、ソフトウェア伸張処理による伸張処理時間と画素数との関係を表す関数（第１関数）と、ハードウェア伸張処理による診療処理時間と画素数との関係を表す関数（第２関数）の一例が併せて示されている。
【００４９】
なお、同図では、ソフトウェア伸張処理による伸張処理時間と画素数との関係を表す関数として、１つの矩形領域を処理する場合処理時間を表す関数式を実線（ＳＷ（１矩形））で、２つの矩形領域を別個に処理する場合の処理開始から完了までの総処理時間を表す関数式を点線（ＳＷ（２矩形））で示している。
【００５０】
例えば、表示端末２００が、矩形領域αとβをそれぞれソフトウェアで伸張処理する場合、ＳＷ（１矩形）の関数式における横軸「α」と「β」に該当する伸張処理時間の値それぞれが、各矩形領域に対する伸張処理時間となる。矩形領域αとβをそれぞれ別個に処理する場合は、関数の切片に該当するオーバーヘッドが処理ごとに必要となるため、同図のＳＷ（２矩形）の関数式における横軸「α＋β」に該当する伸張処理時間の値が、２つの矩形領域をソフトウェアで処理する場合の総処理時間となる。
【００５１】
一方、本体装置１００は、矩形領域αとβに対して、更新が発生していない領域γを加えることによって、表示画面内の１つの矩形領域３０１に統合することができる。そして、本体装置１００は、矩形領域３０１をハードウェアで伸張処理した場合の処理時間を、同図のＨＷ（１矩形）の関数式を用いて算出することができる。
【００５２】
同図では、ＨＷ（１矩形）の関数式における横軸「α+β+γ」に対応する伸張処理時間が、ＳＷ（２矩形）の関数式における横軸「α＋β」に対応する伸張処理時間よりも短くなる場合が例示されている。このような場合は、領域統合判定部１１４は、２つの矩形領域を含む１つの矩形領域を表示画面から切り出して圧縮画像を生成する方が、当該複数の矩形領域の圧縮画像を別個に生成するよりも、表示端末２００にとって効率的であると判定することができる。この結果、差分領域検出部１１２は、複数の矩形領域を含む１つの矩形領域を切り出し、圧縮画像を生成する対象領域として圧縮画像生成部１１３に通知する。
【００５３】
なお、同図では、２つの矩形領域が差分領域として検出された場合の例を示したが、より多くの矩形領域が検出された場合は、検出された差分領域数分のオフセットを加算した切片情報を持つ関数式から各領域を別個にソフトウェアで伸張処理した場合の総処理時間を算出する。そして、算出した総処理時間と、１つの矩形領域内に統合してハードウェアで伸張処理した場合の処理時間とを比較し、ハードウェアによる伸張処理時間の方が小さければ、当該複数の矩形領域を含む１つの矩形領域を表示画面から切り出して圧縮画像を生成する。
【００５４】
図２に戻り、メッセージ解析部１１６は、表示端末２００から受信したメッセージを解析する。例えば、メッセージ解析部１１６は、圧縮画像の伸張処理に要する時間を含む時間情報を表示端末２００から受信した場合に、時間情報から第１関数および第２関数を求め、条件記憶部１２２に保存する。このように、本実施の形態では、実際の伸張処理に要する時間を表示端末２００から取得し、取得した時間を元に処理時間を算出するための関数を動的に得ることができる。なお、メッセージ解析部１１６による上記処理を行わず、事前に関数を求めて条件記憶部１２２に記憶するように構成してもよい。
【００５５】
通信処理部１１７は、表示端末２００などの外部装置との間でメッセージを送受信する。通信処理部１１７は、メッセージを送信する送信部１１７ａと、メッセージを受信する受信部１１７ｂとを備えている。例えば、送信部１１７ａは、圧縮画像生成部１１３により生成された圧縮画像を含む送信画像メッセージを表示端末２００に送信する。
【００５６】
送信画像メッセージは、更新する矩形領域の圧縮画像と矩形情報とを含む。圧縮画像は、ＪＰＥＧなどの圧縮された静止画情報を示す。矩形情報は、更新する矩形領域の画像の描画位置を示す情報である。例えば、矩形情報は、（横方向始点座標、縦方向始点座標、横幅画素数、縦幅画素数）のような構成で画像の描画位置を示す。
【００５７】
なお、送信部１１７ａは、後述するセッションマネージャ１１８により特定された表示端末２００をあて先として、送信すべきメッセージを無線基地局３００を介して送信する。
【００５８】
また、受信部１１７ｂは、表示端末２００からメッセージを受信してメッセージ解析部１１６に渡す。例えば、受信部１１７ｂは、圧縮画像の伸張処理に要する時間を含む時間情報を表示端末２００から受信する。
【００５９】
セッションマネージャ１１８は、表示端末２００との間で確立した通信（セッション）を管理する。例えば、セッションマネージャ１１８は、ある表示端末２００とセッションを確立したときに、表示端末２００のユーザのユーザ識別情報、セッションの状態情報、および伝送制御情報などを対応づけたセッション情報を生成してセッション情報記憶部１２３に記憶する。そして、セッションマネージャ１１８は、メッセージの通信先とする表示端末２００をセッション情報を参照して特定し、特定した表示端末２００を通信先として通信処理部１１７によりメッセージを送受信する。
【００６０】
次に、表示端末２００の詳細な構成について図４を用いて説明する。図４は、本実施の形態にかかる表示端末２００のブロック図である。同図に示すように、表示端末２００は、ディスプレイ２０１と、入力デバイス２０２と、アンテナ２０３と、画像バッファ２２１と、生成時間記憶部２２２と、セッション情報記憶部２２３と、入出力インターフェース２１１と、ソフトウェア伸張部２１２と、ハードウェア伸張回路２１３と、画像生成部２１４と、生成時間計測部２１５と、メッセージ生成部２１６と、無線通信処理部２１７と、セッションマネージャ２１８と、を備えている。
【００６１】
ディスプレイ２０１は、ＬＣＤなどで実現される表示装置である。入力デバイス２０２は、ディスプレイ２０１の画面に表示されたカーソルを移動操作するデジタイザやタッチスクリーンなどで実現される。入力デバイス２０２が取得した入力情報は、入出力インターフェース２１１（後述）に渡される。
【００６２】
アンテナ２０３は、本体装置１００などの外部装置との間で無線通信するための電波を送受信する。
【００６３】
画像バッファ２２１は、画像を記憶する記憶部である。また、生成時間記憶部２２２は、後述する生成時間計測部２１５により計測された伸張画像の生成時間（伸張処理時間）をを記憶する。具体的には、生成時間記憶部２２２は、画像の伸張処理に用いた方式（ハードウェアによる伸張処理かソフトウェアによる伸張処理か）、画像の画素数（圧縮画像の縦幅と横幅を掛け合わせた値）、および伸張処理に実際に要した時間（伸張処理時間）を対応づけて記憶する。
【００６４】
セッション情報記憶部２２３は、セッションを確立中の本体装置１００に関する情報を表すセッション情報を記憶する。例えば、セッション情報記憶部２２３は、セッションの状態情報、および伝送制御情報などを含むセッション情報を記憶する。
【００６５】
なお、画像バッファ２２１、生成時間記憶部２２２およびセッション情報記憶部２２３は、ＨＤＤ、光ディスク、メモリカード、ＲＡＭなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００６６】
入出力インターフェース２１１は、ディスプレイ２０１および入力デバイス２０２に対する入出力のインターフェースであり、ＧＵＩ（Graphical User Interface）などのアプリケーションプログラムによって実現される。
【００６７】
例えば、入出力インターフェース２１１は、画像バッファ２２１から画像情報を取得し、ディスプレイ２０１に表示する。また、入出力インターフェース２１１は、本体装置１００から送られた画像情報を、画像生成部２１４を介して取得し、画像バッファ２２１に書き込む機能に加え、表示端末２００内で独自に生成されたＧＵＩ用の画像情報を画像バッファ２２１に書き込む機能を有する。
【００６８】
ソフトウェア伸張部２１２は、後述する画像生成部２１４の指示に応じて、本体装置１００から受信した圧縮画像の伸張処理をソフトウェアにより実行する。ハードウェア伸張回路２１３は、画像生成部２１４の指示に応じて、本体装置１００から受信した圧縮画像の伸張処理をハードウェアにより実行する。
【００６９】
画像生成部２１４は、本体装置１００から受信した圧縮画像を、ソフトウェア伸張部２１２またはハードウェア伸張回路２１３で伸張した後、伸張した画像情報を、描画用の画像バッファ２２１の指定描画位置へ書き込む。すなわち、画像生成部２１４は、本体装置１００から送信され無線通信処理部２１７により受信された圧縮画像を伸張して生成した部分画像をディスプレイ２０１の指定位置へ表示する。
【００７０】
なお、画像生成部２１４は、圧縮画像の画素数の大きさと予め定めた閾値に基づいて、ソフトウェアによる伸張処理（ソフトウェア伸張部２１２による伸張処理）とハードウェアによる伸張処理（ハードウェア伸張回路２１３による伸張処理）とを切替える。なお、画像生成部２１４は、送信画像メッセージ内の矩形情報、または、圧縮画像のヘッダ内の画素数（解像度）情報から圧縮画像の画素数を取得することができる。
【００７１】
例えば、閾値を縦幅１００画素、横幅１００画素を掛け合わせた１００００画素の矩形領域とする。そして、例えば受信した圧縮画像が縦幅３２０画素、横幅２４０画素を掛け合わせた７６８００画素であれば、画像数が閾値よりも大きいため、画像生成部２１４は、ハードウェア伸張回路２１３を用いてハードウェアにより圧縮画像を伸張する。
【００７２】
また、例えば受信した圧縮画像が縦幅３２画素、横幅３２画素を掛け合わせた１０２４画素であれば、画像数が閾値よりも小さいため、画像生成部２１４は、ソフトウェア伸張部２１２を用いてソフトウェアにより圧縮画像を伸張する。
【００７３】
ここで、画像生成部２１４による伸張処理の切替方法について図５を用いてさらに説明する。図５は、画像の画素数と伸張処理時間との関係の一例を示す図である。
【００７４】
同図は、解像度（画素数）を横軸、伸張処理時間を縦軸とした関数式を示している。「ＳＷ」がソフトウェアによる伸張処理を行った場合の画素数と伸張処理時間の関係を表している。また、「ＨＷ」がハードウェアによる伸張処理を行った場合の画素数と伸張処理時間の関係を表している。
【００７５】
ハードウェアによる伸張処理を行う場合は、ハードウェアの初期化処理や伸張処理完了通知をハンドリングするまでの待機時間、具体的にはハードウェアデバイスからオペレーティングシステムへの割り込み通知までの待機時間などが固定のオーバーヘッドとして存在する。このため、同図に示すように関数の切片値が大きくなる。一方、ソフトウェアによる伸張処理を行う場合は、そのようなオーバーヘッドの問題は解消されるため、関数の切片値は小さくなる。
【００７６】
また、圧縮画像を伸張する部分に焦点を当てた処理時間は、ハードウェアにて処理する方がソフトウェアにて処理するよりも小さい。このため、ハードウェアによる処理時間と画素数との関係を示す関数式の傾きは、ソフトウェアによる関数式の傾きよりも小さくなる。従って、画像の画素数が小さい場合にはソフトウェアで伸張処理を実行する方が効率がよく、画像の画素数が大きい場合にはハードウェアで伸張処理を実行する方が効率がよい。
【００７７】
このような状況を鑑み、画像生成部２１４は、双方の関数式が交わる交点部分に該当する画素値を、ソフトウェアによる伸張処理とハードウェアによる伸張処理を切替えて実施する際の閾値とすることが望ましい。
【００７８】
同図のような関数を導出するための情報は、表示端末２００にて圧縮画像の伸張を実際に行いながら、伸張処理の種別情報と、伸張した画像の画素数、伸張処理時間などを統計情報として取得し、生成時間記憶部２２２に記憶するように構成することができる。なお、予め定めた統計情報を表示端末２００の生成時間記憶部２２２や本体装置１００の条件記憶部１２２に記憶する方法を用いてもよい。
【００７９】
図２に戻り、生成時間計測部２１５は、画像生成部２１４による伸張処理時間を計測し、生成時間記憶部２２２に記憶する。具体的には、生成時間計測部２１５は、画像生成部２１４が圧縮画像の伸張処理に用いた方式（伸張方式）と、伸張した画像の画素数と、伸張処理時間とを対応づけて生成時間記憶部２２２に保存する。
【００８０】
メッセージ生成部２１６は、本体装置１００などの外部装置に送信するメッセージを生成する。例えば、メッセージ生成部２１６は、生成時間記憶部２２２に保存された情報から、伸張方式と、伸張した画像の画素数と、伸張処理時間とを対応づけた時間情報を、本体装置１００に送信するメッセージとして生成する。
【００８１】
図６は、時間情報を送信するための送信メッセージの一例を示す図である。図６は、表示端末２００で実際に計測した圧縮画像の伸張処理時間を含む送信メッセージの構成例を示している。同図に示すように、時間情報の送信メッセージは、ＩＰ（Internet Protocol）ヘッダと、ＵＤＰ／ＴＣＰヘッダと、メッセージ種別と、伸張方式と、領域情報と、伸張処理時間とを含んでいる。
【００８２】
ＩＰヘッダは、送受信端末の宛先アドレスを識別するために用いる。ＵＤＰ／ＴＣＰヘッダは、伝送制御プロトコルの情報を示す。メッセージ種別は、当該メッセージが表示端末２００が生成した時間情報を含むメッセージであることを識別するために用いる。伸張方式は、伸張処理時間がソフトウェア処理時間を示すか、ハードウェア処理時間を示すかを識別する情報である。領域情報は、伸張した画像の画素数を含む。伸張処理時間は、実際に計測した伸張処理の処理時間を例えばミリ秒単位で記載する。なお、伸張方式から伸張処理時間までの情報は、表示端末２００が計測したＮ個分だけ付加される。
【００８３】
上述のように、本体装置１００のメッセージ解析部１１６は、図６のような時間情報を含む送信メッセージを受信した場合、この送信メッセージを解析して得られる時間情報から、画素数と伸張処理時間との関係を示す関数式を求める。すなわち、同図のメッセージ構成を用いる場合は、関数式の導出を表示端末２００ではなく本体装置１００が行う。
【００８４】
これに対し、表示端末２００が、時間情報から関数式を求め、求めた関数式を表す関数情報を本体装置１００に送信するように構成することもできる。図７は、このように構成した場合に表示端末２００から本体装置１００に関数情報を送信するための送信メッセージの一例を示す図である。
【００８５】
図７は、画素数とソフトウェア処理時間との関係を表す第１関数を導出するための傾き情報および切片情報と、画素数とハードウェア処理時間との関係を表す第２関数を導出するための傾き情報および切片情報とを含む送信メッセージの構成例を示している。伸張方式は、伸張処理時間がソフトウェア処理時間を示すか、ハードウェア処理時間を示すかを識別する情報である。傾き情報は、図３のような画素数と伸張処理時間との関係を示す関数式の傾きを示す。切片情報は、関数式の切片を示す。図７に示すように、伸張方式から切片情報までの情報は、ソフトウェア処理とハードウェア処理とに対応する２個分が付加される。
【００８６】
なお、メッセージ生成部２１６は、例えば本体装置１００との通信セッションが開始された場合や、一定の時間間隔ごとに、生成した時間情報（または関数情報）を無線通信処理部２１７を介して本体装置１００に送信する。
【００８７】
図２に戻り、無線通信処理部２１７は、無線基地局３００との間でアンテナ２０３を介して信号を送受信する。無線通信処理部２１７は、メッセージを送信する送信部２１７ａと、メッセージを受信する受信部２１７ｂとを備えている。無線通信処理部２１７は、ＩＥＥＥ８０２．１１などに準拠した無線ＬＡＮ機能によって実現される。
【００８８】
例えば、無線通信処理部２１７の受信部２１７ｂは、受信した無線信号を復調してパケットを生成し、パケットのメッセージ種別に応じて画像生成部２１４へ該当データを渡す。例えば、パケットが圧縮画像を含む送信画像メッセージのパケットであった場合、そのパケットから抽出した圧縮画像および画素数などの情報が画像生成部２１４に渡される。
【００８９】
また、例えば入力デバイス２０２がユーザからの入力情報を取得した場合、入出力インターフェース２１１によって入力情報から座標情報などが解析された後、無線通信処理部２１７の送信部２１７ａを介して本体装置１００に送信される。この場合、本体装置１００は、表示端末２００より受信した入力情報を元に、アプリケーション処理を実行する。アプリケーション処理の結果として画面の領域内に更新が発生した場合、本体装置１００は、更新する画像情報を取得して送信画像メッセージを生成した後、表示端末２００に向けて送信する。なお、この場合も、本体装置１００側では、検出した画像の差分領域が複数存在する場合は、当該複数の差分領域を１つの矩形領域に統合する方が表示端末２００の伸張処理時に効率的となり得るかどうかの判定処理を行った上で、送信画像メッセージを生成する。
【００９０】
セッションマネージャ２１８は、本体装置１００との間で確立した通信（セッション）を管理する。例えば、セッションマネージャ２１８は、本体装置１００とセッションを確立したときに、セッションの状態情報、および伝送制御情報などを対応づけたセッション情報を生成してセッション情報記憶部２２３に記憶する。
【００９１】
次に、このように構成された本実施の形態にかかる本体装置１００による画像送信処理について図８を用いて説明する。図８は、本実施の形態における画像送信処理の全体の流れを示すフローチャートである。
【００９２】
まず、差分領域検出部１１２が、所定の時間間隔ごとに、画像バッファ１２１に記憶された画像情報（表示画像）と、更新画像生成部１１１ａにより生成された新たな画像情報（更新画像）との差分領域を検出する（ステップＳ８０１）。
【００９３】
差分領域が検出された場合、領域統合判定部１１４は、複数の差分領域が検出されたか否かを判断する（ステップＳ８０２）。複数の差分領域が検出された場合（ステップＳ８０２：ＹＥＳ）、処理時間算出部１１５が、複数の差分領域をそれぞれソフトウェアにより伸張処理する場合の伸張処理時間（ソフトウェア処理時間）を算出する（ステップＳ８０３）。例えば、２つの差分領域が検出された場合であれば、処理時間算出部１１５は、図３のＳＷ（２矩形）の関数式を用いることにより、複数の差分領域の画像の画素数に対応するソフトウェア処理時間を算出する。
【００９４】
次に、処理時間算出部１１５は、複数の差分領域を統合した１つの統合領域をハードウェアにより伸張処理する場合の伸張処理時間（ハードウェア処理時間）を算出する（ステップＳ８０４）。例えば、処理時間算出部１１５は、図３のＨＷ（１矩形）の関数式を用いることにより、統合領域の画像の画素数に対応するハードウェア処理時間を算出する。
【００９５】
次に、領域統合判定部１１４は、算出されたハードウェア処理時間が算出されたソフトウェア処理時間より小さいか否かを判定する（ステップＳ８０５）。ハードウェア処理時間がソフトウェア処理時間より小さい場合（ステップＳ８０５：ＹＥＳ）、差分領域検出部１１２は、複数の差分領域を統合した統合領域を、圧縮画像を生成する対象領域として圧縮画像生成部１１３に通知する（ステップＳ８０６）。
【００９６】
次に、圧縮画像生成部１１３は、統合領域の画像を圧縮した圧縮画像を生成する（ステップＳ８０７）。なお、ステップＳ８０２で、複数の差分領域が検出されなかった場合は（ステップＳ８０２：ＮＯ）、圧縮画像生成部１１３は、検出された１つの差分領域の画像を圧縮した圧縮画像を生成する。また、ステップＳ８０５で、ハードウェア処理時間がソフトウェア処理時間より小さくないと判定された場合は（ステップＳ８０５：ＮＯ）、圧縮画像生成部１１３は、検出された複数の差分領域をそれぞれ別個に圧縮して複数の圧縮画像を生成する。
【００９７】
次に、送信部１１７ａが、圧縮画像生成部１１３により生成された圧縮画像と圧縮画像の画素数とを含む送信画像メッセージを表示端末２００に送信し（ステップＳ８０８）、画像送信処理を終了する。
【００９８】
次に、このように構成された本実施の形態にかかる表示端末２００による画像表示処理について図９を用いて説明する。図９は、本実施の形態における画像表示処理の全体の流れを示すフローチャートである。
【００９９】
まず、無線通信処理部２１７の受信部２１７ｂが、本体装置１００から送られた圧縮画像と画素数とを含む送信画像メッセージを受信する（ステップＳ９０１）。受信部２１７ｂは、送信画像メッセージから圧縮画像と画素数とを抽出し、画像生成部２１４に通知する。
【０１００】
次に、画像生成部２１４が、通知された圧縮画像の画素数が所定の閾値より小さいか否かを判定する（ステップＳ９０２）。画素数が閾値より小さい場合（ステップＳ９０２：ＹＥＳ）、画像生成部２１４は、ソフトウェア伸張部２１２を用いてソフトウェアにより圧縮画像を伸張する（ステップＳ９０３）。画素数が閾値以上の場合（ステップＳ９０２：ＮＯ）、画像生成部２１４は、ハードウェア伸張回路２１３を用いてハードウェアにより圧縮画像を伸張する（ステップＳ９０４）。
【０１０１】
次に、画像生成部２１４は、入出力インターフェース２１１を介して、伸張処理で生成された画像情報を、画像バッファ２２１の指定位置に描画する（ステップＳ９０５）。これにより、ディスプレイ２０１に更新部分が反映されることになる。
【０１０２】
次に、表示端末２００と本体装置１００との間で通信される情報の流れを図１０のシーケンス図を用いて説明する。同図の例では、まず、表示端末２００のメッセージ生成部２１６が、通信セッションの開始時に、ソフトウェアおよびハードウェアによる圧縮画像の伸張処理時間を含む時間情報を本体装置１００に対して送信している（ステップＳ１００１）。
【０１０３】
本体装置１００のメッセージ解析部１１６は、表示端末２００から時間情報を受信すると、受信した時間情報から、伸張処理時間を算出するための一次関数の傾き情報および切片情報（関数情報）を求め、条件記憶部１２２に記憶されている関数情報を更新する。
【０１０４】
その後、本体装置１００の差分領域検出部１１２が、アプリケーション処理の結果に伴う表示画面内の更新部分（差分領域）を検出する（ステップＳ１００２）。領域統合判定部１１４は、複数の差分領域が検出された場合に、複数の差分領域の統合判定を行う（ステップＳ１００３）。その結果を元に、圧縮画像生成部１１３が、圧縮画像の生成と圧縮画像を含む送信画像メッセージの送信処理を行う（ステップＳ１００４）。これにより、差分領域の画像を圧縮した圧縮画像が表示端末２００に伝送される（ステップＳ１００５）。なお、時間情報は、通信セッションの開始時だけではなく、一定の時間間隔毎に実施してもよい。
【０１０５】
このように、本実施の形態にかかる通信装置（本体装置１００）によれば、本体装置１００が表示装置（表示端末２００）にとって最適な大きさの圧縮画像を生成して送信することができるため、圧縮画像のソフトウェアによる伸張処理とハードウェアによる伸張処理を切り替えて実施する表示端末２００側の処理を効率化することが可能となる。
【０１０６】
次に、本実施の形態にかかる通信装置（本体装置１００）および表示装置（表示端末２００）のハードウェア構成について図１１を用いて説明する。図１１は、本実施の形態にかかる通信装置および表示装置のハードウェア構成を示す説明図である。
【０１０７】
本実施の形態にかかる通信装置および表示装置は、ＣＰＵ（Central Processing Unit）５１などの制御装置と、ＲＯＭ（Read Only Memory）５２やＲＡＭ５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、ＨＤＤ（Hard Disk Drive）、ＣＤ（Compact Disc）ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス６１を備えている。
【０１０８】
本実施の形態にかかる通信装置で実行される画像送信プログラムおよび表示装置で実行される通信プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact Disk Recordable）、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１０９】
また、本実施の形態にかかる通信装置で実行される画像送信プログラムおよび表示装置で実行される通信プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施の形態にかかる通信装置で実行される画像送信プログラムおよび表示装置で実行される通信プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１１０】
また、本実施の形態の画像送信プログラムおよび通信プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１１１】
本実施の形態にかかる通信装置で実行される画像送信プログラムは、上述した各部（イベント取得部、差分領域検出部、圧縮画像生成部、領域統合判定部、処理時間算出部、メッセージ解析部、通信処理部、セッションマネージャ）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ５１（プロセッサ）が上記記憶媒体から画像送信プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
【０１１２】
また、本実施の形態にかかる表示装置で実行される通信プログラムは、上述した各部（入出力インターフェース、ソフトウェア伸張部、ハードウェア伸張回路、画像生成部、生成時間計測部、メッセージ生成部、無線通信処理部、セッションマネージャ）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ５１（プロセッサ）が上記記憶媒体から通信プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
【産業上の利用可能性】
【０１１３】
以上のように、本発明にかかる装置、方法およびプログラムは、装置間でアプリケーションの画面を共有する機能を実現する装置等に適している。
【図面の簡単な説明】
【０１１４】
【図１】本実施の形態にかかる通信システムの構成を示すブロック図である。
【図２】本実施の形態にかかる通信装置のブロック図である。
【図３】画像の画素数と伸張処理時間との関係の一例を示す図である。
【図４】本実施の形態にかかる表示装置のブロック図である。
【図５】画像の画素数と伸張処理時間との関係の一例を示す図である。
【図６】時間情報を送信するための送信メッセージの一例を示す図である。
【図７】関数情報を送信するための送信メッセージの一例を示す図である。
【図８】本実施の形態における画像送信処理の全体の流れを示すフローチャートである。
【図９】本実施の形態における画像表示処理の全体の流れを示すフローチャートである。
【図１０】表示装置と通信装置との間で通信される情報の流れを示すシーケンス図である。
【図１１】本実施の形態にかかる通信装置および表示装置のハードウェア構成を示す説明図である。
【符号の説明】
【０１１５】
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
５４  通信Ｉ／Ｆ
６１  バス
１０  画面転送システム
１００  本体装置
１０１  ディスプレイ
１０２  入力デバイス
１１１  イベント取得部
１１１ａ  更新画像生成部
１１２  差分領域検出部
１１３  圧縮画像生成部
１１４  領域統合判定部
１１５  処理時間算出部
１１６  メッセージ解析部
１１７  通信処理部
１１７ａ  送信部
１１７ｂ  受信部
１１８  セッションマネージャ
１２１  画像バッファ
１２２  条件記憶部
１２３  セッション情報記憶部
２００  表示端末
２０１  ディスプレイ
２０２  入力デバイス
２０３  アンテナ
２１１  入出力インターフェース
２１２  ソフトウェア伸張部
２１３  ハードウェア伸張回路
２１４  画像生成部
２１５  生成時間計測部
２１６  メッセージ生成部
２１７  無線通信処理部
２１７ａ  送信部
２１７ｂ  受信部
２１８  セッションマネージャ
２２１  画像バッファ
２２２  生成時間記憶部
２２３  セッション情報記憶部
３００  無線基地局
３０１  矩形領域
４００  ネットワーク
【図１】
2010109637.tif 000003
【図２】
2010109637.tif 000004
【図３】
2010109637.tif 000005
【図４】
2010109637.tif 000006
【図５】
2010109637.tif 000007
【図６】
2010109637.tif 000008
【図７】
2010109637.tif 000009
【図８】
2010109637.tif 000010
【図９】
2010109637.tif 000011
【図１０】
2010109637.tif 000012
【図１１】
2010109637.tif 000013