以下、実施の形態について、図面を参照して説明する。
まず、図39を用いて、従来の画面転送システムの概要を説明する。
この画面転送システムは、画面データを送信する側の機器である送信端末1’と、画面を受信し表示する側の機器である受信端末2’とがネットワーク接続されてなる。画面データとは、表示画面上の各画素に表示する文字、画像、記号その他の表示情報および、これらの情報についての表示画面上での表示位置を示すデータである。ここで、ネットワーク接続とはLAN(Local Area Network)接続あるいはインターネット接続等であり、有線であっても無線であってもよい。
画面の送信、受信処理においては画面転送プロトコルを用いる。画面転送プロトコルはプル型とプッシュ型とがある。プル型の画面転送プロトコルは、画面受信側からの画面取得要求に応答する形で、画面送信側から画面受信側に画面データを送信するための画面転送プロトコルである。プッシュ型の画面転送プロトコルは、画面送信側は画面受信側からの画面取得要求を必要とせずに、画面送信側から画面受信側に画面データを送信するための画面転送プロトコルである。例えば、VNC(Virtual Network Computing)として知られる画面転送方法は、プル型の画面転送プロトコルを用いる。この方法では、画面受信側がFramebufferUpdateRequestという画面取得要求を画面送信側へ送信すると、画面送信側が画面受信側に画面データをFramebufferUpdateという応答として送信する。プル型の画面転送プロトコルとしてVNCを用いるときは、画面送信側をVNCサーバとし、画面受信側をVNCクライアントとする。
画面送信側は、VNCサーバのソフトウェアを起動させ、画面受信側では、VNCクライアントのソフトウェアを起動させる。例えば、送信端末1’にてVNCサーバのソフトウェアが起動していれば、受信端末2’側ではVNCクライアントのソフトウェアを起動させる。
なお、2台のPC(パーソナルコンピュータ)にて図39の画面転送システムを構築するときは、画面データを送信するPCが送信端末1’となり、画面データを受信して表示するPCが受信端末2’となる。
(第1の実施形態)
まず、第1の実施形態について説明する。
図1は、第1の実施形態における通信システムの画面送信端末1の機能構成例を示すブロック図である。但し、図1は、主要な機能を記した概略図である。
画面送信端末1は、領域分割部11、差分検出部12、圧縮部13、送信部14を備える。領域分割部11は、後述の方法に従い、画面100上の表示領域を分割する。図1では、画面100上の表示領域を画面領域#1、画面領域#2、画面領域#3でなる3つの領域に分割した例を示す。画面100の描画情報を画面送信端末1のフレームバッファ(図1では図示せず)に記憶しているとき、領域分割部11は、そのフレームバッファにおける描画情報の保存場所の情報を、分割した画面領域毎に差分検出部12に通知する。描画情報の保存場所とは、描画情報を表示させたときの表示領域の範囲である。
差分検出部12は、領域分割部11が分割した画面領域において発生した画面更新により変化した部分を、分割した画面領域毎に検出する。例えば、差分検出部12は、以前の画面データをバッファ(図1では図示せず)にて記憶しておく。差分検出部12は、以前の画面データの画素と現在の画面データの画素との比較を行うことで、以前の画面データと現在の画面データとの間の差分を検出する。差分検出部12は、この検出した差分を更新画面データとして圧縮部13へ出力する。
なお、図1では、画面100上の3つの画面領域に対し、3つの差分検出処理(差分検出#1、差分検出#2、差分検出#3)を並列に処理している例を示す。圧縮部13は、差分検出部12から更新画面データを入力すると、この更新画面データの圧縮を行い、この圧縮の結果である圧縮画面データを送信部14へ出力する。図1では、差分検出部12から圧縮部13へ入力される更新画面データが3つであり、これらの更新画面データに応じて3つの圧縮処理(圧縮#1、圧縮#2、圧縮#3)を並列に処理している例を示す。
なお、データ圧縮の方式は画面の特性に応じて異なる方式を用いてもよい。この方式は、例えば静止画に適したJEPG(Joint Photographic Experts Group)圧縮やZLib圧縮、および、動画に適したH.264圧縮やMPEG(Motion Picture Experts Group)圧縮等が挙げられる。
送信部14は、TCP/IPなどのネットワークプロトコルを用いてデータを送信する機能を備える。送信部14は、圧縮部13から入力された圧縮画面データをパケット化し、このパケット化したデータを、画面受信端末2との間で設定された通信路を用いて、3つの送信処理(送信#1、送信#2、送信#3)により送信する。図1では、画面100上の3つの画面領域に対し、3つの通信路(通信路#1、通信路#2、通信路#3)を用いて並列に画面データを送信している例を示す。
例えば画面領域#1に対応するデータは、差分検出部12の差分検出#1、圧縮部13の圧縮#1、送信部14の送信#1、および通信路#1を介して送信される。画面領域#2に対応するデータは、差分検出部12の差分検出#2、圧縮部13の圧縮#2、送信部14の送信#2、および通信路#2を介して送信される。また、画面領域#3に対応するデータは、差分検出部12の差分検出#3、圧縮部13の圧縮#3、送信部14の送信#3、および通信路#3を介して送信される。
なお、図1に示した3つの通信路は、同一の物理回線において3つの論理的なコネクションとして分離されていても良いし、物理回線自体が異なる3種類の通信路であっても良い。これら3種類の通信路は、例えば、有線LANと無線LANと3G回線(第3世代携帯電話の通信回線)等である。
図1では、画面の分割領域数(画面分割数)、差分検出処理の並列数、圧縮処理の並列数、送信処理の並列数、通信路数を全て3として説明したが、これらの数は3に限られない。更に、これらの数は同じ値でなくてもよく、異なる値であっても良い。例えば、画面の分割領域数を3とするのに対し、差分検出処理以降の並列数を2としても良いし、あるいは5としても良い。
また、画面の分割領域数に応じて、その他の数、すなわち差分検出処理の並列数、圧縮処理の並列数、送信処理の並列数、通信路数を定めても良い。あるいは、通信路数に応じて、その他の数、すなわち画面の分割領域数、差分検出処理の並列数、圧縮処理の並列数、送信処理の並列数を定めても良い。これらの数の決め方については後ほど説明する。
図2は、第1の実施形態における画面転送システムの画面送信端末1との間で通信可能な画面受信端末2の機能構成例を示すブロック図である。但し、図2は、主要な機能を記した概略図である。
図2に示すように、画面受信端末2は、受信部21、伸張部22、描画部23を備える。受信部21は、画面送信端末1との間の3つの通信路のそれぞれを介して画面データを受信する機能を備える。受信部21は、受信した画面データを伸張部22へ出力する。
伸張部22は、受信部21から入力した画面データに対しデータ伸張処理を行なうことで、画面送信端末1の差分検出部12で生成された更新画面データを生成する。伸張部22は、この生成した更新画面データを描画部23が管理するフレームバッファに書き込む。
描画部23は、フレームバッファに書き込まれた更新画面データの描画処理を行うことで、画面送信端末1の画面100を画面受信端末2の図示しないディスプレイ部に表示させる。なお、図2では、図1に示した画面送信端末1の処理に対応する形で、受信部21における受信処理の並列数、伸張部22における伸張処理の並列数をそれぞれ3にしている。
なお、画面受信端末2は、画面送信端末1で分割した画面領域の情報(図1に示した例では画面領域#1、画面領域#2、画面領域#3)を知るために、画面送信端末1との間で所定のやりとりを行う。このやりとりは、例えば、画面送信端末1と画面受信端末2との間で画面データを送受信するための通信路とは別の通信路を用意し、画面送信端末1と画面受信端末2が、その通信路を用いて画面領域の情報をやりとりすることである。このやりとりは、画面送信端末1と画面受信端末2との間で、画面データを送受するための通信路の1つを用いて、画面データの送受が発生していないタイミングで画面領域の情報をやりとりすることでも良い。
このように、画面領域の情報を画面送信端末1と画面受信端末2との間で共有することで、伸張部22は、生成した更新画面データを描画部23が管理するフレームバッファに書き込むときに、表示画面上における更新画面データの位置を事前に把握することができる。また、伸張部22は、更新画面データが表示画面上の適切な位置に表示されるように、更新画面データを描画部23が管理するフレームバッファに書き込むことが可能となる。
あるいは、先に示したように画面領域の情報を別途やりとりする代わりに、次に述べる方法を用いても良い。この方法では、画面送信端末1の差分検出部12は、生成した更新画面データに画面領域情報を付加する。また、画面受信端末2の伸張部22は、更新画面データを伸張したときに、その画面領域情報を検出する。伸張部22は、描画部23が管理するフレームバッファに更新画面データを書き込むときに、その都度に表示画面上の位置を確認して、更新画面データが表示画面上の適切な位置に表示されるように、更新画面データを描画部23が管理するフレームバッファに書き込む。
以下、第1の実施形態における各実施例について説明する。
(実施例1−1)
図3は、第1の実施形態における画面転送システムの画面送信端末1−1の機能構成例を示すブロック図である。図3に示した画面送信端末1−1における、図1に示した画面送信端末1との違いは、画面送信端末1−1が記録部15を備えている点である。記録部15は、不揮発性メモリなどの記憶媒体である。
次に、画面送信端末1−1の各部の動作を説明する。画面送信端末1−1の差分検出部12は、各差分検出処理で生成された更新画面データのそれぞれのデータサイズを記録部15に書き込む。また、画面送信端末1−1の圧縮部13は、各圧縮処理で生成した圧縮画面データのそれぞれのデータサイズを記録部15に書き込む。
図4は、処理Aでの更新画面データのサイズ、すなわち差分発生量を基に分割画面領域を変更する例を示す図である。
画面送信端末1−1の領域分割部11は、記録部15に書き込まれた各種のデータサイズを統計解析する。図3に示した3つの差分検出処理のうち、特定の1つの差分検出処理により生成した更新画面データのサイズが他の2つの更新画面データのサイズより大きいときは、領域分割部11は、前述した3つの差分検出処理能力が均等になる、または均等に近くなるように、その1つの差分検出処理に対応する画面領域のサイズを小さくし、他の2つの差分検出処理に対応する画面領域のサイズを大きくする(処理A)。
この処理Aの結果、処理前における画面領域#1,#2,#3のそれぞれに対応する画面領域のサイズが図4の上方に示すように大、小、小であったものが、処理後における新たな画面領域#1,#2,#3のそれぞれに対応する画面領域のサイズは図4の下方に示すように中、中、中となる。このように、複数の画面領域のそれぞれに対応する画面領域のサイズが処理Aにより平準化される。
図3に示した3つの圧縮処理のうち、特定の1つの圧縮処理により生成する圧縮画面データのサイズが他の2つの圧縮処理により生成する圧縮画面データのサイズより大きいときは、領域分割部11は、前述した3つの圧縮処理能力が均等になる、または均等に近くなるように、その1つの圧縮処理に対応する画面領域のサイズを小さくし、他の2つの圧縮処理に対応する画面領域のサイズを大きくする(処理B)。
図3に示した構成で3つの通信路(通信路#1、通信路#2、通信路#3)の通信容量が等しければ、3つの通信路で送信されるデータ量が処理Aや処理Bにより平準化され、特定の通信路に負担をかけずに効率のよい画面データの通信が可能となる。これにより、分割した各画面領域についての画面転送のスループットの偏りが図1の構成に比べて改善される。
なお、差分検出部12の差分検出#1で生成した更新画面データ#1のデータサイズが差分検出#2で生成した更新画面データ#2のデータサイズより大きいときに、更新画面データ#1を圧縮した圧縮画面データ#1のデータサイズが更新画面データ#2を圧縮した圧縮画面データ#2のデータサイズよりも大きいとは限らない。この理由は、データの特性により非常に高い圧縮効果が得られるときとそうでないときがあるからである。
よって、領域分割部11は、差分検出処理の負荷を均等にするか均等に近くするときは処理Aを行い、圧縮処理の負荷を均等にするか均等に近くするときは処理Bを行い、送信処理の負荷を均等にするか均等に近くするときは処理Bを行うことが望ましい。
最初は、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように分割画面領域を決定(例えば、3等分)する。このとき、画面データは複数の通信路(例えば、3本の通信路)で並列送信される。このような送信がなされていても、画面内容の状況によってそれぞれの領域で発生する画面変化は異なり、各通信路で送信すべきデータ量に大小が生じる。
本実施形態を適用することで、各通信路で送信すべきデータ量に明らかな差が生じているときなどに、その差を減らすように分割画面領域を再調整することができる。これにより、分割した各画面領域についての画面転送のスループットの偏りを改善させることが可能となる。
なお、この実施例1−1に関する処理の流れを図5に示す。
図5(a)は、差分検出処理の負荷を均等にする、または均等に近くするための処理の流れを示すフローチャートである。まず、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように分割画面領域を決定する(S101)。差分検出部12は、各差分検出処理で生成された更新画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。
領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の更新画面データのサイズを統計解析し、更新画面データの画面領域毎の平均サイズを計算する。この平均サイズとは、前述した所定時間毎にそれぞれ統計解析したデータサイズの平均である(S1021)。
領域分割部11は、平均サイズの計算結果に基づいて、複数の差分検出処理の負荷を均等にする、または均等に近くするために、分割画面領域を変更する(S1031)。
図5(b)は、圧縮処理の負荷を均等にする、または均等に近くするための処理の流れを示すフローチャートである。まず、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように分割画面領域を決定する(S101)。圧縮部13は、各圧縮処理で生成された圧縮画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。
領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の圧縮画面データのサイズを統計解析し、圧縮画面データの画面領域毎の平均サイズを計算する(S1022)。
領域分割部11は、平均サイズの計算結果に基づいて、複数の圧縮処理の負荷を均等にする、または均等に近くするために、分割画面領域を変更する(S1031)。
(実施例1−2)
図6は、第1の実施形態における画面転送システムの画面送信端末1−2の機能構成例を示すブロック図である。この画面送信端末1−2は、図3に示した画面送信端末1−1と比較して、差分検出部12の差分検出処理の数、圧縮部13の圧縮処理の数、送信部14の送信処理の数、および、通信路の数を可変としている点が異なる。
図6に示した例では、差分検出部12の差分検出処理の数、圧縮部13の圧縮処理の数、送信部14の送信処理の数、および、通信路の数が4まで対応できる状況において、領域分割部11は、最初は画面領域を3つに分割する。また、この例では、差分検出部12で最初に使用する差分検出処理の数、圧縮部13で最初に使用する圧縮処理の数、送信部14で最初に使用する送信処理の数、および、最初に使用する通信路の数をそれぞれ3つにしている。
次に画面送信端末1−2の各部について説明する。図3に示した画面送信端末1−1と同様に、画面送信端末1−2の差分検出部12は、各差分検出処理で生成された更新画面データのそれぞれのデータサイズを記録部15に書き込む。圧縮部13は、各圧縮処理で生成した圧縮画面データのそれぞれのデータサイズを記録部15に書き込む。領域分割部11は、記録部15に書き込まれたデータサイズを統計解析する。
図6に示した例では、領域分割部11は以下の処理を行う。図7は、後述する処理Cでの更新画面データのサイズを基に、画面の分割領域数および分割画面領域を領域分割部11が変更した例を示す図である。このデータサイズは、画面データの差分発生量を意味する。
差分検出部12の3つの差分検出処理のうち、特定の1つの差分検出処理により生成した更新画面データのサイズが他の2つ差分検出処理により生成した更新画面データのサイズより大きいときは、領域分割部11は、その1つの差分検出処理に対応する画面領域を2つに分割することで、1つあたりの更新画面データのサイズを小さくする。この結果、処理前の画面領域#1は、図7に示すように新たな画面領域#1,#2となる。また、処理前の画面領域#2,#3は、図7に示すように新たな画面領域#3,#4となる。
これらのデータのそれぞれは、4つの差分検出処理(差分検出#1,差分検出#2,差分検出#3,差分検出#4)、4つの圧縮処理(圧縮#1,圧縮#2,圧縮#3,圧縮#4)、4つの送信処理(送信#1,送信#2,送信#3,送信#4)、および、4つの通信路(通信路#1,通信路#2,通信路#3,通信路#4)を用いて送信される(処理C)。
図7に示した例では、処理Cの後は、新たな画面領域#1に対応するデータは、差分検出部12の差分検出#1、圧縮部13の圧縮#1、送信部14の送信#1、および通信路#1を介して送信される。新たな画面領域#2に対応するデータは、差分検出部12の差分検出#2、圧縮部13の圧縮#2、送信部14の送信#2、および通信路#2を介して送信される。新たな画面領域#3に対応するデータは、差分検出部12の差分検出#3、圧縮部13の圧縮#3、送信部14の送信#3、および通信路#3を介して送信される。また、画面領域#4に対応するデータは、差分検出部12の差分検出#4、圧縮部13の圧縮#4、送信部14の送信#4、および通信路#4を介して送信される。
処理Cの結果、図7に示すように、処理Cの前における画面領域#1,#2,#3のそれぞれに対応する画面領域のサイズが大、中、中であったものが、処理Cの後における新たな画面領域#1,#2,#3,#4のそれぞれに対応する画面領域のサイズは中、中、中、中となる。このように、複数の画面領域のそれぞれに対応する画面領域のサイズが処理Cにより平準化される。
また、圧縮部13の3つの圧縮処理のうち、特定の1つの圧縮処理により生成した圧縮画面データのサイズが他の2つの圧縮処理により生成する圧縮画面データより大きいときは、領域分割部11は、その1つの圧縮処理に対応する画面領域を2つに分割することで、1つあたりの圧縮画面データのサイズを小さくする。このデータは、前述した4つの差分検出処理、4つの圧縮処理、4つの送信処理、4つの通信路を用いて送信される(処理D)。
図6に示した例で、4つの通信路の通信容量が等しければ、ある1つの通信路で送信されるデータ量が他の通信路で送信されるデータ量より多い状況が処理A,Bにより解消され、特定の通信路に負担をかけずに画面データを効率よく通信する事が可能となる。これにより、分割した各画面領域についての画面転送のスループットの偏りが図1の構成に比べて改善される。
一方、領域分割部11は、記録部15に書き込まれたデータサイズを統計解析し、その結果によって、分割ではなく例えば以下の統合処理を行う。図8は、処理Eでの更新画面データのサイズである差分発生量を基に画面の分割領域数および分割画面領域を変更した例を示す図である。
4つの差分検出処理のうち、2つの差分検出処理により生成した更新画面データのサイズが他の2つの差分検出処理により生成した更新画面データのサイズより小さいときは、領域分割部11は、その小さい2つの差分検出処理に対応する画面領域を1つに統合する。この結果、処理前の画面領域#1,#2は、図8に示すように新たな画面領域#1となる。また、処理前の画面領域#3,#4は、図8に示すように新たな画面領域#2,#3となる。
これにより、領域分割部11は、1つあたりの更新画面データのサイズを大きくする。このデータは3つの差分検出処理、3つの圧縮処理、3つの送信処理、3つの通信路を用いて送信される(処理E)。
図8に示した例では、処理Eの後は、画面領域#1に対応するデータは、差分検出部12の差分検出#1、圧縮部13の圧縮#1、送信部14の送信#1、および通信路#1を介して送信される。画面領域#2に対応するデータは、差分検出部12の差分検出#3、圧縮部13の圧縮#3、送信部14の送信#3、および通信路#3を介して送信される。また、画面領域#3に対応するデータは、差分検出部12の差分検出#4、圧縮部13の圧縮#4、送信部14の送信#4、および通信路#4を介して送信される。ここでは、差分検出部12の差分検出#2、圧縮部13の圧縮#2、送信部14の送信#2、および通信路#2は用いられない。
処理Eの結果、図8に示すように、処理Eの前における画面領域#1,#2,#3,#4のそれぞれに対応する画面領域のサイズが小、小、中、中であったものが、処理Eの後における新たな画面領域#1,#2,#3のそれぞれに対応する画面領域のサイズは中、中、中となる。このように、複数の画面領域のそれぞれに対応する画面領域のサイズが処理Eにより平準化される。
4つの圧縮処理のうち、2つの圧縮処理により生成した圧縮画面データのサイズが他の2つの圧縮処理により生成した圧縮画面データのサイズより小さいときは、領域分割部11は、その小さい2つの圧縮処理に対応する画面領域を1つに統合する。これにより、領域分割部11は、1つあたりの圧縮画面データのサイズを大きくする。このデータは、3つの差分検出処理、3つの圧縮処理、3つの送信処理、3つの通信路を用いて送信される(処理F)。
この統合処理は、ある2つの通信路で送信されるデータ量が他の通信路で送信されるデータ量より極端に少ないときなどは1つの通信路でデータを送り、それに伴い4つの並列処理を3つの並列処理に変更することで画面送信端末1−2での並列処理の負荷軽減を図る処理である。
このような、画面領域のさらなる分割処理や統合処理を行うことにより、分割した各画面領域についての画面転送のスループットの偏りを改善させることが可能となる。
実施例1−2に関する処理の流れを図9に示す。
図9(a)は、差分検出処理の負荷を均等にする、または均等に近くするための処理の流れを示すフローチャートである。まず、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように分割画面領域を決定する(S101)。差分検出部12は、各差分検出処理で生成された更新画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。
領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の更新画面データのサイズを統計解析し、更新画面データの画面領域毎の平均サイズを計算する(S1021)。
領域分割部11は、平均サイズの計算結果に基づいて、複数の差分検出処理の負荷を均等にする、または均等に近くするために、画面の分割数や分割画面領域を変更する(S1032)。
また、領域分割部11は、必要に応じて、複数の通信路と送信部14との間の回線接続を切断したり、接続状態にしたりする(S104)。
図9(b)は、圧縮処理の負荷を均等にする、または均等に近くするための処理の流れを示すフローチャートである。まず、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように分割画面領域を決定する(S101)。圧縮部13は、各圧縮処理で生成された圧縮画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。
領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の圧縮画面データのサイズを統計解析し、圧縮画面データの画面領域毎の平均サイズを計算する(S1022)。
領域分割部11は、平均サイズの計算結果に基づいて、複数の圧縮処理の負荷を均等にする、または均等に近くするために、画面の分割領域数や分割画面領域を変更する(S1032)。
また、領域分割部11は、必要に応じて、複数の通信路と送信部14との間の回線接続を切断したり、接続状態にしたりする(S104)。
(実施例1−3)
図10は、画面送信端末1−3の機能構成例を示すブロック図である。画面送信端末1−3は、図3に示した画面送信端末1−1を改良したものであり、領域分割部11による画面の分割領域数と通信路数とが異なるときに対応できるようにしている。
画面送信端末1−3の領域分割部11は、記録部15に書き込まれたデータサイズを統計解析し、その結果によって分割領域や分割領域数を変化させる。さらに、領域分割部11は、圧縮部13に対し、画面領域に対応する複数の圧縮画面データを、どの通信路で送信するかを示す指示を行う。圧縮部13は、その指示に従い、圧縮画面データを送信部14に出力する。
図11は、画面分割は3分割としている一方で通信路が2つしかない例を示す図である。この例の初期状態では、画面100上の3つの画面領域である画面領域#1、画面領域#2、画面領域#3のうち画面領域#1と画面領域#2とに対応する画面データを通信路#1で送信し、画面領域#3に対応する画面データを通信路#2で送信している。
ここで、画面領域#1および画面領域#2に対応する更新画面データの平均サイズあるいは圧縮画面データの平均サイズが大きくなったと仮定する。ここで、便宜的に更新画面データサイズあるいは圧縮画面データサイズを数値で表し、この数値が大きいほど平均サイズが大きいとする。本実施形態では、データサイズの値の単位は特に定めない。また、このデータサイズの値はサイズそのものでなく、所定の値を用いて正規化した値であってもよい。
例えば、図11に示すように、初期状態の画面領域#1、画面領域#2、画面領域#3に対応する更新画面データあるいは圧縮画面データの平均サイズがそれぞれ100、50、10である例を考える。この例では、通信路#1で送信するデータの平均サイズが150、通信路#2で送信するデータの平均サイズが10となり、通信路間でデータの平均サイズに極端な差が生じている。
このとき、画面送信端末1−3の領域分割部11は、以下のような処理のいずれかを実行して、2つの通信路で送信するデータ量を適切なサイズにする。なお、ここでは2つの通信路の通信容量はほぼ等しいとする。
まず、画面の分割領域の変更処理について説明する。この処理のために、領域分割部11は、画面領域#1および画面領域#2に対応する更新画面データあるいは圧縮画面データの平均サイズが小さくなるように画面の分割領域を変更する。この変更により、処理前とは異なる新たな画面領域#1,#2,#3が生成される。
例えば、領域分割部11は、画面領域#1、画面領域#2、画面領域#3に対応する更新画面データあるいは圧縮画面データの平均サイズがそれぞれ60、20、80となるように画面の分割領域を変更することで、通信路#1でのデータの平均サイズを80とし、通信路#2でのデータの平均サイズを80とする(図11の右側上段参照)。
図10に示した例では、画面の分割領域の変更処理の後は、新たな画面領域#1に対応するデータは、処理前と同じく、差分検出部12の差分検出#1、圧縮部13の圧縮#1、送信部14の送信#1、および通信路#1を介して送信される。新たな画面領域#2に対応するデータは、処理前と同じく、差分検出部12の差分検出#2、圧縮部13の圧縮#2、送信部14の送信#2、および通信路#1を介して送信される。また、新たな画面領域#3に対応するデータは、処理前と同じく、差分検出部12の差分検出#3、圧縮部13の圧縮#3、送信部14の送信#2、および通信路#2を介して送信される。
次に、画面の分割領域数及び領域変更処理について説明する。この処理のために、領域分割部11は、画面の分割領域数と通信路の割り当てを変更する。例えば、領域分割部11は、画面領域を2分割にする。この処理により、処理前とは異なる新たな画面領域#1,#2が生成される。また、領域分割部11は、この2つの領域に対応する更新画面データあるいは圧縮画面データの平均サイズがともに80となるようにする(図11の右側中段参照)。
図10に示した例では、画面の分割領域数及び領域変更処理の後は、新たな画面領域#1に対応するデータは、差分検出部12の差分検出#1、圧縮部13の圧縮#1、送信部14の送信#1、および通信路#1を介して送信される。また、新たな画面領域#2に対応するデータは、差分検出部12の差分検出#2、圧縮部13の圧縮#2、送信部14の送信#2、および通信路#2を介して送信される。
次に、通信路の割り当て変更処理について説明する。この処理のために、領域分割部11は、画面の分割領域の変更は行わず、通信路の割り当て変更のみを行う。例えば、領域分割部11は、画面領域#1を通信路#1に割り当て、画面領域#2と画面領域#3とを通信路#2に割り当てるように変更することで、通信路#1でのデータの平均サイズを100とし、通信路#2でのデータの平均サイズを60とする(図11の右側下段参照)。この通信路#2でのデータの平均サイズは、差分検出部12の差分検出#2、圧縮部13の圧縮#2、送信部14の送信#2を経たデータの平均サイズ50、および差分検出部12の差分検出#3、圧縮部13の圧縮#3、送信部14の送信#2を経たデータの平均サイズ10の和である。
図10に示した例では、通信路の割り当て変更処理の後は、画面領域#1に対応するデータは、処理前と同じく、差分検出部12の差分検出#1、圧縮部13の圧縮#1、送信部14の送信#1、および通信路#1を介して送信される。画面領域#2に対応するデータは、処理前と異なり、差分検出部12の差分検出#2、圧縮部13の圧縮#2、送信部14の送信#2、および通信路#2を介して送信されるようになる。また、画面領域#3に対応するデータは、処理前と同じく、差分検出部12の差分検出#3、圧縮部13の圧縮#3、送信部14の送信#2、および通信路#2を介して送信される。
なお、画面の分割領域の変更処理や、画面の分割領域数の変更処理や、通信路の割り当て変更処理を一度だけ行っても、データの平均サイズの値が最適な値になるとは限らない。このため、領域分割部11は、これらの処理を繰り返し調整することで、データの平均サイズの値をより適切な値としていく。
このような、通信路ごとのデータサイズの変更を行うことにより、分割した各画面領域についての、画面転送のスループットの偏りを改善させることが可能となる。
実施例1−3に関する処理の流れは図9に示したとおりである。ただし、S1032の「画面の分割数と分割画面領域の決定」のための処理は、上記のように画面の分割領域の変更処理や、画面の分割領域数の変更処理や、通信路の割り当て変更処理であり、実施例1−2と異なる。
(実施例1−4)
図12は、画面送信端末1−4の機能構成例を示すブロック図である。画面送信端末1−4は、図3に示した画面送信端末1−1を改良したものであり、通信路品質測定部16を構成要素として備える。通信路品質測定部16は、画面送信端末1−4が画面受信端末2−4との間で設定した複数の通信路のそれぞれの通信路品質を測定する機能を備える。
例えば、画面送信端末1−4と画面受信端末2−4との間で有線LANと無線LANと3G回線とでなる3つの通信路を設定しているとき、通信路品質測定部16は、それぞれの通信路の伝送路遅延やパケットロス率を測定する。これらの測定方法は、例えば、PINGを利用してラウンドトリップタイム(RTT)(遅延時間)やパケットロス率を測定してもよい。PINGとはネットワークにおけるノードの到達性を測定するためのソフトウェアである。
3つの通信路を通信路#1,通信路#2,通信路#3とする。そして、通信路#1での遅延時間が10msでパケットロス率が0.1%であり、通信路#2での遅延時間が15msでパケットロス率が0.1%であり、通信路#3の遅延時間が40msでパケットロス率が0.1%であるとする。これら3つの中では通信路#1の品質が一番良く、通信路#3の品質が一番悪い。
通信路品質測定部16は、各通信路の品質を数値化して、領域分割部11に入力する。例えば、通信路品質測定部16は、通信路品質をQとし、遅延時間をT(ms)とし、パケットロス率をP(%)としたときに、Q=1/(αT+βP)というような関係式を用いて通信路品質を数値化してもよい。この式のα、βは係数である。
上述の式において、α=1、β=100とすると、通信路#1の品質Q1は0.05、通信路#2の品質Q2は0.05、通信路#2の品質Q2は0.04、通信路#3の品質Q3は0.02となる。これらの通信路の品質情報が領域分割部11に入力される。
この実施例では、各通信路の品質がほぼ均一と想定し、実施例1−1等で説明したように3つの分割画面での更新画面データあるいは圧縮画面データの平均サイズが均等になる、または均等に近くなるように調整していたと仮定する(図13(a)参照)。本実施例では、領域分割部11は通信路品質測定部16から、「通信路#1の品質Q1は0.05、通信路#2の品質Q2は0.04、通信路#3の品質Q3は0.02」という情報を入力すると、通信路品質を考慮した分割領域変更を行う。
この例における、通信路#1に対応する画面領域#1、通信路#2に対応する画面領域#2、通信路#3に対応する画面領域#3の更新画面データあるいは圧縮画面データの平均サイズの比を述べる。この比は、例えば、図13(b)に示すように、各通信路の品質である0.05、0.04、0.02に対応するサイズの比、つまり5:4:2となるように分割領域変更を行う。
この割り当て変更処理の結果、図13に示すように、処理の前における画面領域#1,#2,#3のそれぞれに対応する画面領域のサイズが中、中、中であったものが、処理の後における新たな画面領域#1,#2,#3のそれぞれに対応する画面領域のサイズは大、中、小となる。このように、処理により、複数の画面領域のそれぞれに対応する画面領域のサイズは異なるようになる。しかし、新たな画面領域#1に対応する画面領域のサイズは品質が高い通信路#1に対応するサイズで、新たな画面領域#2に対応する画面領域のサイズは品質が中程度の通信路#2に対応するサイズで、新たな画面領域#3に対応する画面領域のサイズは品質が低い通信路#3に対応したサイズである。このため、各画面領域のサイズは、この画面領域の画面データを送信するための通信路の品質の高さに相応するようになるので、各通信路にかかる負荷が平準化される。
なお、上述した例では、各通信路でのパケットロス率を同一の0.1%としたが、本実施例では、このパケット率が通信路間で異なるときも、この値を通信路の品質Qに反映させ、それに応じた分割領域変更を行う。また、本実施例では、通信路の品質として伝送路遅延やパケットロス率を扱う例を示したが、通信路の帯域(利用可能帯域)を測定できるのであれば、それを用いても良い。また、本実施例では、物理回線自体が異なる複数種類の通信路、例えば有線LANと無線LANと3G回線を示した。しかし、これに限らず、例えば複数の通信路がTCPコネクション等の論理的なコネクションとして設定されているときに、それぞれの論理的なコネクションの品質を測定し、その結果をもって分割領域変更を行うようにしても良い。
なお、図12には図示しないが、送信部14に対して各通信路で利用できる帯域(実効スループット)をユーザが設定できるようにしてもよい。例えば、通信速度の理論値が100Mbpsである有線LANと、通信速度の理論値が10Mbpsである無線LANとでなる2種類の物理回線を利用しているとき、有線LANでの利用帯域および無線LANでの利用帯域が同一の5Mbpsとなるようにユーザが設定してもよい。このとき、送信部14は、データの送信レートを調整する機能を有するものとする。
あるいは、有線LANの利用帯域を20Mbpsとし、無線LANの利用帯域を5Mbpsとして、有線LANの利用帯域を無線LANの整数倍に調整するようにしても良い。このように通信路の利用帯域を意図的に調整することで、通信路を占有させないという効果が得られる。また、実効スループットを制御可能範囲に置くことが可能となれば、通信路をベストエフォートで利用するときと比べて分割した各画面領域についての、画面転送のスループットの偏りをより正確に見積もることができる。
なお、実施例1−4に関する処理の流れを図14、図15、図16に示す。
図14(a)は、通信路品質に応じて分割画面領域を変更するための処理の流れを示すフローチャートである。まず、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように分割画面領域を決定する(S201)。通信路品質測定部16は、各通信路の品質を数値化して、領域分割部11に入力する(S202)。領域分割部11は、各通信路の品質の数値を考慮して、分割した複数の画面の転送にかかるスループットを均等にする、または均等に近くなるように、分割画面領域を変更する(S2031)。
図14(b)は、通信路品質に応じて画面分割数および分割画面領域を変更するための処理の流れを示すフローチャートである。まず、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように分割画面領域を決定する(S201)。通信路品質測定部16は、各通信路の品質を数値化して、領域分割部11に入力する(S202)。領域分割部11は、各通信路の品質の数値を考慮して、分割した複数の画面の転送にかかるスループットを均等にする、または均等に近くなるように、画面分割数および分割画面領域を変更する(S2032)。
図15(a)は、通信路品質および更新画面データサイズに応じて分割画面領域を変更するための処理の流れを示すフローチャートである。
まず、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように分割画面領域を決定する(S201)。通信路品質測定部16は、各通信路の品質を数値化して、領域分割部11に入力する(S202)。
差分検出部12は、各差分検出処理で生成された更新画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の更新画面データのサイズを統計解析し、更新画面データの画面領域毎の平均サイズを計算する(S2021)。
領域分割部11は、平均サイズの計算結果に基づいて、差分検出処理の負荷を均等にする、または均等に近くするために、分割画面領域を変更した上で、各通信路の品質の数値を考慮して、分割画面領域を再度決定する(S2031)。
図15(b)は、通信路品質および圧縮画面データサイズに応じて分割画面領域を変更するための処理の流れを示すフローチャートである。
まず、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように分割画面領域を決定する(S201)。通信路品質測定部16は、各通信路の品質を数値化して、領域分割部11に入力する(S202)。圧縮部13は、各圧縮処理で生成された圧縮画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。
領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の圧縮画面データのサイズを統計解析し、圧縮画面データの画面領域毎の平均サイズを計算する(S2022)。
領域分割部11は、平均サイズの計算結果に基づいて、圧縮処理の負荷を均等にする、または均等に近くするために、分割画面領域を変更した上で、各通信路の品質の数値を考慮して、分割画面領域を再度決定する(S2031)。
図16(a)は、通信路品質および更新画面データサイズに応じて画面分割数、分割画面領域を変更するための処理の流れを示すフローチャートである。
まず、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように画面分割数、分割画面領域を決定する(S201)。通信路品質測定部16は、各通信路の品質を数値化して、領域分割部11に入力する(S202)。
差分検出部12は、各差分検出処理で生成された更新画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の更新画面データのサイズを統計解析し、更新画面データの画面領域毎の平均サイズを計算する(S2021)。
平均サイズの計算結果に基づいて、差分検出処理の負荷を均等にする、または均等に近くするために、領域分割部11は、画面の分割数や分割画面領域を変更するとともに、各通信路の品質の数値を考慮して、画面分割数、分割画面領域を再度決定する(S2032)。
また、領域分割部11は、必要に応じて、複数の通信路と送信部14との間の回線接続を切断したり、接続状態にしたりする(S204)。
図16(b)は、通信路品質および圧縮画面データサイズに応じて画面分割数、分割画面領域を変更するための処理の流れを示すフローチャートである。
まず、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように画面分割数、分割画面領域を決定する(S201)。通信路品質測定部16は、各通信路の品質を数値化して、領域分割部11に入力する(S202)。
圧縮部13は、各圧縮処理で生成された圧縮画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の圧縮画面データのサイズを統計解析し、圧縮画面データの画面領域毎の平均サイズを計算する(S2022)。
平均サイズの計算結果に基づいて、圧縮処理の負荷を均等にする、または均等に近くするために、領域分割部11は、画面の分割数や分割画面領域を変更するとともに、各通信路の品質の数値を考慮して、画面分割数、分割画面領域を再度決定する(S2032)。また、領域分割部11は、必要に応じて、複数の通信路と送信部14との間の回線接続を切断したり、接続状態にしたりする(S204)。
(実施例1−5)
図17は、画面送信端末1−5の機能構成例を示すブロック図である。画面送信端末1−5は、図3に示した画面送信端末1−1を改良したものであり、画面変化量推定部17を構成要素として備える。画面変化量推定部17は、画面送信端末1−5において画面表示を行っているアプリケーションの種類と起動状態を観測する機能を備える。
例えば、画面送信端末1−5がWindows(登録商標)OSやLinux(登録商標)OSを搭載したPCであるとすると、画面変化量推定部17は、そのPC内で動作しているプログラムを確認し、そのプログラムによって生成されたウィンドウの表示位置を確認する。
例えば、動画アプリケーションが画面送信端末1−5で起動していることを画面変化量推定部17が検知し、また、図18に示すように動画アプリケーションが生成したウィンドウが画面の上側に表示されていることを画面変化量推定部17が把握したとする。このとき、画面変化量推定部17は、動画アプリケーションが表示される画面領域は更新画面データあるいは圧縮画面データの平均サイズが動画アプリケーションの起動前より大きくなると予測できる。
そこで、画面変化量推定部17は、時間経過にともなう、更新画面データあるいは圧縮画面データの平均サイズの変化量が大きいと予測される画面の領域情報を領域分割部11に入力する。領域分割部11は、画面変化量推定部17から入力された情報を利用して、例えば、図18に示すように動画アプリケーションが表示されている部分を含む部分の画面領域サイズを予め小さくし、動画アプリケーションが表示されていない部分の画面領域サイズを予め大きくするような分割領域変更を行うことが可能になる。
また、画面送信端末1−5が、図12に示した通信路品質測定部16を更に備えていれば、領域分割部11は、図19に示すように、動画アプリケーションが表示されている部分である画面領域#1を通信路の品質が良い通信路#1に予め割り当てるような分割領域変更を行うことが可能となる。
実施例1−5に関する処理の流れを図20、図21、図22、図23に示す。
図20(a)は、画面変化量の推定結果に基づいて差分検出処理の負荷を均等にする、または均等に近くするための処理の流れを示すフローチャートである。
まず、画面変化量推定部17は、更新画面データの平均サイズが大きくなると予測される画面の領域情報を領域分割部11に入力する(S300)。
領域分割部11は、更新画面データの平均サイズが大きくなると予測される画面の領域情報を考慮して、更新画面データのうち動画アプリケーションが表示されている部分が他の部分より小さくなるように分割画面領域を決定する(S301)。差分検出部12は、各差分検出処理で生成された更新画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。
領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の更新画面データのサイズを統計解析し、更新画面データの画面領域毎の平均サイズを計算する(S3021)。
領域分割部11は、平均サイズの計算結果に基づいて、差分検出処理の負荷を均等にする、または均等に近くするために、分割画面領域を変更する(S3031)。この変更の後はS301に戻る。
図20(b)は、画面変化量の推定結果に基づいて圧縮処理の負荷を均等にする、または均等に近くするための処理の流れを示すフローチャートである。
まず、画面変化量推定部17は、圧縮画面データの平均サイズが大きくなると予測される画面の領域情報を領域分割部11に入力する(S300)。
領域分割部11は、圧縮画面データの平均サイズが大きくなると予測される画面の領域情報を考慮して、動画アプリケーションが表示されている部分が他の部分より小さくなるように分割画面領域を決定する(S301)。
圧縮部13は、各圧縮処理で生成された圧縮画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の圧縮画面データのサイズを統計解析し、圧縮画面データの画面領域毎の平均サイズを計算する(S3022)。
領域分割部11は、平均サイズの計算結果に基づいて、圧縮処理の負荷を均等にする、または均等に近くするために、分割画面領域を変更する(S3031)。この変更の後はS301に戻る。
図21(a)は、画面変化量の推定結果に基づく、差分検出処理の負荷を均等にする、または均等に近くするための処理の流れを示すフローチャートである。
まず、画面変化量推定部17は、更新画面データの平均サイズが大きくなると予測される画面の領域情報を領域分割部11に入力する(S300)。
領域分割部11は、更新画面データの平均サイズが大きくなると予測される画面の領域情報を考慮して、動画アプリケーションが表示されている部分が他の部分より小さくなるように分割画面領域を決定する(S301)。差分検出部12は、各差分検出処理で生成された更新画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。
領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の更新画面データのサイズを統計解析し、更新画面データの画面領域毎の平均サイズを計算する(S3021)。
領域分割部11は、平均サイズの計算結果に基づいて、差分検出処理の負荷を均等にする、または均等に近くするために、画面の分割数や分割画面領域を変更する(S303)。
また、領域分割部11は、必要に応じて、複数の通信路と送信部14との間の回線接続を切断したり、接続状態にしたりする(S304)。この後はS301に戻る。
図21(b)は、画面変化量の推定結果に基づく、圧縮処理の負荷を均等にする、または均等に近くするための処理の流れを示すフローチャートである。
まず、画面変化量推定部17は、圧縮画面データの平均サイズが大きくなると予測される画面の領域情報を領域分割部11に入力する(S300)。
領域分割部11は、圧縮画面データの平均サイズが大きくなると予測される画面の領域情報を考慮して、動画アプリケーションが表示されている部分が他の部分より小さくなるように分割画面領域を決定する(S301)。
圧縮部13は、各圧縮処理で生成された圧縮画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の圧縮画面データのサイズを統計解析し、圧縮画面データの画面領域毎の平均サイズを計算する(S3022)。
領域分割部11は、平均サイズの計算結果に基づいて、圧縮処理の負荷を均等にする、または均等に近くするために、画面の分割数や分割画面領域を変更する(S303)。
また、領域分割部11は、必要に応じて、複数の通信路と送信部14との間の回線接続を切断したり、接続状態にしたりする(S304)。この後はS301に戻る。
図22(a)は、画面変化量の推定結果に基づく、差分検出処理の負荷を均等にする、または均等に近くするための処理の流れを示すフローチャートである。図22(a)において、図20(a)と異なる点は、画面の領域分割処理と画面変化量の推定処理の順番が逆になっている点である。
まず、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように分割画面領域を決定する(S301)。
次に、画面変化量推定部17は、更新画面データの平均サイズが大きくなると予測される画面の領域情報を領域分割部11に入力する(S302)。差分検出部12は、各差分検出処理で生成された更新画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。
領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の更新画面データのサイズを統計解析し、更新画面データの画面領域毎の平均サイズを計算する(S3021)。
領域分割部11は、平均サイズの計算結果に基づいて、差分検出処理の負荷を均等にする、または均等に近くするために、更新画面データの平均サイズが大きくなると予測される画面の領域情報を考慮して、動画アプリケーションが表示されている部分が他の部分より小さくなるように分割画面領域を変更する(S3031)。
図22(b)は、画面変化量の推定結果に基づく、圧縮処理の負荷を均等にする、または均等に近くするための処理の流れを示すフローチャートである。図22(b)において、図20(b)と異なる点は、画面の領域分割処理と画面変化量の推定処理の順番が逆になっている点である。
まず、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように分割画面領域を決定する(S301)。
次に、画面変化量推定部17は、圧縮画面データの平均サイズが大きくなると予測される画面の領域情報を領域分割部11に入力する(S302)。圧縮部13は、各圧縮処理で生成された圧縮画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。
領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の圧縮画面データのサイズを統計解析し、圧縮画面データの画面領域毎の平均サイズを計算する(S3022)。
領域分割部11は、平均サイズの計算結果に基づいて、圧縮処理の負荷を均等にする、または均等に近くするために、圧縮画面データの平均サイズが大きくなると予測される画面の領域情報を考慮して、動画アプリケーションが表示されている部分が他の部分より小さくなるように分割画面領域を変更する(S3031)。
図23(a)は、画面変化量の推定結果に基づく、差分検出処理の負荷を均等にする、または均等に近くするための処理の流れを示すフローチャートである。図23(a)において、図21(a)と異なる点は、画面の領域分割処理と画面変化量の推定処理の順番が逆になっている点である。
まず、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように分割画面領域を決定する(S301)。
次に、画面変化量推定部17は、更新画面データの平均サイズが大きくなると予測される画面の領域情報を領域分割部11に入力する(S302)。差分検出部12は、各差分検出処理で生成された更新画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。
領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の更新画面データのサイズを統計解析し、更新画面データの画面領域毎の平均サイズを計算する(S3021)。
領域分割部11は、平均サイズの計算結果に基づいて、差分検出処理の負荷を均等にする、または均等に近くするために、更新画面データの平均サイズが大きくなると予測される画面の領域情報を考慮して、動画アプリケーションが表示されている部分が他の部分より小さくなるように画面の分割数や分割画面領域を変更する(S3032)。
また、領域分割部11は、必要に応じて、複数の通信路と送信部14との間の回線接続を切断したり、接続状態にしたりする(S304)。
図23(b)は、画面変化量の推定結果に基づく、圧縮処理の負荷を均等にする、または均等に近くするための処理の流れを示すフローチャートである。図23(b)において、図21(b)と異なる点は、画面の領域分割処理と画面変化量の推定処理の順番が逆になっている点である。
まず、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように分割画面領域を決定する(S301)。
次に、画面変化量推定部17は、圧縮画面データの平均サイズが大きくなると予測される画面の領域情報を領域分割部11に入力する(S302)。差分検出部12は、各圧縮処理で生成された圧縮画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。
領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の圧縮画面データのサイズを統計解析し、圧縮画面データの画面領域毎の平均サイズを計算する(S3022)。
領域分割部11は、平均サイズの計算結果に基づいて、圧縮処理の負荷を均等にする、または均等に近くするために、圧縮画面データの平均サイズが大きくなると予測される画面の領域情報を考慮して、動画アプリケーションが表示されている部分が他の部分より小さくなるように画面の分割数や分割画面領域を変更する(S3032)。
また、領域分割部11は、必要に応じて、複数の通信路と送信部14との間の回線接続を切断したり、接続状態にしたりする(S304)。
(実施例1−6)
図24は、画面送信端末1−6の機能構成例を示すブロック図である。画面送信端末1−6は画面送信端末1−1を改良したものであり、送信端末リソース測定部18を構成要素として備える。
送信端末リソース測定部18は、画面送信端末1−6の有するリソース量を測定する機能を備える。リソース量とは、CPU数や、CPU負荷などの情報である。
例えば、画面送信端末1−6が4つのCPUを備えていることを送信端末リソース測定部18が検出すると、差分検出部12の差分検出処理、圧縮部13の圧縮処理等を4つのCPUで独立に処理することも可能となる。
そこで、画面分割数候補は4(あるいは、4の倍数である8)という情報を領域分割部11に入力する。領域分割部11は、画面分割数候補の情報が入力されると、それに応じる分割領域変更を行うことができ、その後の差分検出部12の差分検出処理、圧縮部13の圧縮処理等を効率的に行うことが可能となる。
また、送信端末リソース測定部18は、例えば、画面送信端末1−6がCPU負荷としてCPU使用率情報を検出すると、そのCPU使用率に応じた画面分割数候補の情報を領域分割部11に入力しても良い。これにより、例えば、CPU使用率が80%なら画面分割数候補を2にし、60%なら画面分割数候補を4にするなど、CPU使用率が高いときには差分検出部12の差分検出処理、圧縮部13の圧縮処理の並列数を少なくするような分割領域変更を行うことが可能となる。
また、リソース量として、送信端末リソース測定部18が利用可能な物理回線の種類を検出可能であれば、利用可能な回線数に応じた画面分割数候補の情報を送信端末リソース測定部18が領域分割部11に入力することで、利用可能な回線数に応じた分割領域変更を行うことが可能となる。
実施例1−6に関する処理の流れを図25、図26に示す。
図25(a)は、リソースの推定結果に基づく、差分検出処理の負荷を均等にする、または均等に近くするための処理の流れを示すフローチャートである。
まず、送信端末リソース測定部18は、画面送信端末1−6の有するリソース量を測定し、この測定結果から画面分割候補数を取得して、この情報を領域分割部11に入力する(S400)。
領域分割部11は、送信端末リソース測定部18から入力した画面分割候補数を考慮して、分割画面領域を決定する(S401)。
差分検出部12は、各差分検出処理で生成された更新画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の更新画面データのサイズを統計解析し、更新画面データの画面領域毎の平均サイズを計算する(S4021)。
領域分割部11は、平均サイズの計算結果に基づいて、差分検出処理の負荷を均等にする、または均等に近くするために、分割画面領域を変更する(S4031)。この変更の後はS401に戻る。
図25(b)は、リソースの推定結果に基づく、圧縮処理の負荷を均等にする、または均等に近くするための処理の流れを示すフローチャートである。
まず、送信端末リソース測定部18は、画面送信端末1−6の有するリソース量を測定し、この測定結果から画面分割候補数を取得して、この情報を領域分割部11に入力する(S400)。
領域分割部11は、送信端末リソース測定部18から入力した画面分割候補数を考慮して、分割画面領域を決定する(S401)。
圧縮部13は、各圧縮処理で生成された更新画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の圧縮画面データのサイズを統計解析し、圧縮画面データの画面領域毎の平均サイズを計算する(S4022)。
領域分割部11は、平均サイズの計算結果に基づいて、圧縮処理の負荷を均等にする、または均等に近くするために、分割画面領域を変更する(S4031)。この変更の後はS401に戻る。
図26(a)は、リソースの推定結果に基づく、差分検出処理の負荷を均等にする、または均等に近くするための処理の流れを示すフローチャートである。図26(a)において、図25(a)と異なる点は、画面の領域分割処理とリソースの測定処理の順番が逆になっている点である。
まず、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように分割画面領域を決定する(S401)。
次に、送信端末リソース測定部18は、画面送信端末1−6の有するリソース量を測定し、この測定結果から画面分割候補数を取得して、この情報を領域分割部11に入力する(S402)。
差分検出部12は、各差分検出処理で生成された更新画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。
領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の更新画面データのサイズを統計解析し、更新画面データの画面領域毎の平均サイズを計算する(S4021)。
領域分割部11は、平均サイズの計算結果に基づいて、差分検出処理の負荷を均等にする、または均等に近くするために、送信端末リソース測定部18から領域分割部11に入力された画面分割候補数を考慮して考慮して、分割画面領域を変更する(S4031)。
図26(b)は、リソースの推定結果に基づく、圧縮処理の負荷を均等にする、または均等に近くするための処理の流れを示すフローチャートである。図26(b)において、図25(b)と異なる点は、画面の領域分割処理とリソースの測定処理の順番が逆になっている点である。
まず、領域分割部11は、表示画面上の分割した各領域の面積が等しくなるように分割画面領域を決定する(S401)。
次に、送信端末リソース測定部18は、画面送信端末1−6の有するリソース量を測定し、この測定結果から画面分割候補数を取得して、この情報を領域分割部11に入力する(S402)。
圧縮部13は、各圧縮処理で生成された圧縮画面データのそれぞれのデータサイズを、所定時間毎に記録部15に書き込む。
領域分割部11は、記録部15に書き込まれた所定時間毎の所定数の圧縮画面データのサイズを統計解析し、圧縮画面データの画面領域毎の平均サイズを計算する(S4022)。
領域分割部11は、平均サイズの計算結果に基づいて、圧縮処理の負荷を均等にする、または均等に近くするために、送信端末リソース測定部18から領域分割部11に入力された画面分割候補数を考慮して、分割画面領域を変更する(S4031)。
本実施形態により、画面転送システムにおいて画面をN分割し、M本のコネクションで送信する方法を提供し、分割した各画面領域についての、画面転送のスループットの偏りを改善させることが可能となる。また、画面転送システムにおける表示にかかる遅延時間を短縮させることが可能となる。このとき、M本のコネクションのそれぞれにて送信する画面データを決定することが可能である。更には、画面をN分割するとしたときに、スループットの偏りが改善するように画面の分割領域を自動決定することが可能である。
(第2の実施形態)
以下、第2の実施形態について説明する。
図27は、画面送信端末1−7の機能構成例を示すブロック図である。画面送信端末1−7の構成要素は、画面送信端末1−1を拡張したものである。画面送信端末1−7は、通信路品質測定部16と画面変化量推定部17を備える。この画面送信端末1−7は通信路として、1本の物理回線内にTCPコネクションを複数本利用する。画面送信端末1−7は、分割した画面データをTCPコネクションを利用して送信する。
さて、画面送信端末1−7では、TCPコネクションを何本利用するかを決める必要がある。図28には領域分割処理として、TCPコネクション数の決め方と、また、画面分割数を決定する処理を示している。以下のいくつかの例を記す。
図28の例1では、通信路品質測定部16が測定した1本の物理回線の遅延(RTT)とパケットロス率を測定し、この測定結果を領域分割部11が入力する(S1)。領域分割部11が、その結果に応じて、予め保持している通信品質とコネクション数の対応表を利用して、この物理回線のコネクション数を決定している(S2)。
図28に示した例1では、RTTが10msでパケットロス率が0.1%のときにコネクション数が1本と決定され、RTTが20msでパケットロス率が0.1%のときにコネクション数が2本と決定される。このように、RTTが長くなったときにコネクション数を増やすことで、コネクション1つあたりにかかる負荷が軽減されるようにしている。
図28の例2では、領域分割部11が画面分割数を決定した後にコネクション数を決定する例を示している。この例では、領域分割部11は、画面分割数がNmax(例えばNmax=16)未満であれば、コネクション数をその値とする。一方、領域分割部11は、画面分割数がNmax以上であれば、コネクション数をNmaxにする。このように、画面分割数が増えたときにコネクション数を増やすことで、コネクション1つあたりにかかる負荷が軽減されるようにしている。
図28の例3では、画面変化量推定部17は、起動されているアプリケーション等の情報に基づいて送信データ量を推定する。そして、領域分割部11は、予め保持している送信データ量とコネクション数の対応表を利用してコネクション数を決定する。このように、送信データ量が増えたときにコネクション数を増やすことで、コネクション1つあたりにかかる負荷が軽減されるようにしている。
これらの例1、2、3は組み合わせて利用しても良い。また、通信品質の測定値や送信データ量の推定値は、利用状況によって変動するため、図28に示した画面分割数決定後の画面分割領域の決定処理(S3)は、例えば1分毎に繰り返し行っても良い。
本実施形態により、画面転送システムにおいて画面をN分割し、1つの物理回線内のM本のコネクションで送信する方法を提供し、分割した各画面領域についての、画面転送のスループットの偏りを改善させることが可能となる。また、画面転送システムにおける表示にかかる遅延時間を短縮させることが可能となる。このとき、M本のコネクションのそれぞれにて送信する画面データを決定することが可能であり、更には、画面をN分割するとした場合に、スループットの偏りを改善するように画面の分割領域を自動決定することが可能である。
(第3の実施形態)
以下、第3の実施形態について説明する。
図29は、第1の実施形態で示した画面送信端末1、あるいは第2の実施形態で示した画面送信端末1−7を利用したマルチディスプレイシステム(大画面表示システム)のシステム構成図である。
大画面送信端末3は、画面送信端末1あるいは画面送信端末1−7と同じ構成要素を有するが、大画面送信端末3側にはディスプレイは必要なく、また、マルチディスプレイに対応する大画面を内部で扱える点が異なる。図29に示した例では、大画面受信端末4は4つのモニタを有している。また、大画面送信端末3は、大画面を4つのモニタのそれぞれにあわせて4分割し、これら分割した画面のそれぞれを4本の通信路を用いて大画面受信端末4へ送信している。
図29に示した例では、画面領域#1に対応するデータは、大画面送信端末3から通信路#1を介して大画面受信端末4に送信されてモニタ#1に表示される。画面領域#2に対応するデータは、大画面送信端末3から通信路#2を介して大画面受信端末4に送信されてモニタ#2に表示される。画面領域#3に対応するデータは、大画面送信端末3から通信路#3を介して大画面受信端末4に送信されてモニタ#3に表示される。画面領域#4に対応するデータは、大画面送信端末3から通信路#4を介して大画面受信端末4に送信されてモニタ#4に表示される。
ここで、大画面送信端末3は、最初は図30の左図に示すように大画面を4つのモニタに応じた形で4分割して送信しているとする。この状態では、図30の左図に示すように、動画アプリケーションの画面が表示されている画面領域は画面領域#1,#2に偏っている。
そして、大画面送信端末3は、第1の実施形態で示したのと同様の方法を用いて、更新画面データあるいは圧縮画面データの平均サイズの情報に基づいて、大画面を4分割するときの領域を変更する。
例えば、図30の右図に示すように、大画面送信端末3は、動画アプリケーションの画面が表示されている画面領域は更新画面データあるいは圧縮画面データの平均サイズが大きいことにより、動画アプリケーションの画面が表示されている画面領域を#1,#2,#3の3つに分割し、動画アプリケーションの画面が表示されていない残りの画面領域が一つの画面領域#4となるように分割領域変更を行なう。
すなわち、大画面送信端末3は、最初はモニタ単位で分割領域を決定しているが、画面の表示内容に従い、送信されるデータ量等が均等にする、または均等に近くなるように分割領域変更を行うことが可能である。これにより、大画面転送時の、各画面領域についてのスループットの偏りの改善が期待できる。また、大画面転送システムにおける表示までの遅延時間を短縮させることが可能となる。
また、図31は、第1の実施形態で示した画面送信端末1あるいは、第2の実施形態で示した画面送信端末1−7を利用したマルチディスプレイシステム(大画面表示システム)のもう1つのシステム構成図である。
この図31に示した例では、大画面送信端末3は1台である一方で、大画面受信端末は大画面受信端末4−1、4−2、4−3でなる3台から構成される。大画面受信端末4−1はモニタ#1に接続され、大画面受信端末4−2はモニタ#2に接続され、大画面受信端末4−3はモニタ#3とモニタ#4とに接続されている。
図31に示した例でも、大画面送信端末3は、最初は、図32の左図に示すように大画面を4つのモニタに応じた形で画面領域#1,#2,#3,#4に分割して送信しているとする。そして、大画面送信端末3は、第1の実施形態で示したのと同様の方法を用いて、更新画面データあるいは圧縮画面データの平均サイズの情報に基づいて、大画面を4分割するときの領域を変更する。
例えば、図32の中央図は、大画面受信端末4−3が利用する通信路#3と通信路#4での送信データ量が均一となるように、大画面送信端末3により画面領域#3と画面領域#4を変更した例を示している。また、図32の右図は、画面の表示内容が更に変更になり、この変更に応じて、通信路#3と通信路#4での送信データ量が均一となるように大画面送信端末3により画面領域#3と画面領域#4を再度変更した例を示す。
すなわち、大画面送信端末3は、最初はモニタ単位で分割領域を決定している。本実施例では、大画面送信端末3は、画面の表示内容に従い、送信されるデータ量等が均等にする、または均等に近くなるように分割領域変更を行うことが可能である。ここでは、分割領域が変更できる領域は、複数種類のモニタに接続される大画面受信端末4−3で表示される画面領域に限られる。
これにより、大画面受信端末4−3への画面転送時における、各画面領域のスループットの偏りの改善が期待できる。また、モニタ#3とモニタ#4での表示領域においては画面転送システムにおける表示にかかる遅延時間を短縮させることが可能となる。
本実施形態により、大画面転送システムにおいて画面をN分割し、M本のコネクションで送信する方法を提供し、分割した各画面領域についての、画面転送のスループットの偏りを改善させることが可能となる。画面転送のスループットを改善すれば、大画面転送システムにおける表示までの遅延時間を短縮させることが可能となる。このとき、M本のコネクションのそれぞれにて送信する画面データを決定することが可能である。更には、画面をN分割するとした場合に、スループットの偏りを改善するように画面の分割領域を自動決定することが可能である。
(第4の実施形態)
以下、第4の実施形態について説明する。
図33は、第4の実施形態における情報転送システムの音声送信端末5および音声受信端末6の機能構成例を示すブロック図である。図33は、主要な機能を記した概略図である。
図33に示すように、音声送信端末5は、領域分割部51、圧縮部53、送信部54を備えている。領域分割部51は、後述の方法に従い、マイク等から入力された音声情報を分割する。図34では、領域分割部51が音声情報の周波数領域をバンドパスフィルタ(BPF)により3つの周波数領域(BPF#1、BPF#2、BPF#3)に分割した例を示す。
圧縮部53は、それぞれの分割した音声情報に対してデータ圧縮を行い、圧縮音声データを送信部54へ出力する。図33では、圧縮部53への音声データが3入力であり、それに応じて3つの圧縮処理を並列に処理している例を示す。なお、データ圧縮は音声の特性に応じて異なるものを用いてもよい。例えば圧縮部53はG.711、G.722、G.726、G.729等の符号化方式による圧縮処理を行う。
送信部54は、RTPなどのネットワークプロトコルを用いてデータを送信する機能を備える。送信部54は、圧縮部53から入力された圧縮音声データをパケット化し、このパケット化したデータを音声受信端末6との間で設定された通信路を用いて送信する。図33では、3つの周波数領域に対し、3つの通信路(通信路#1、通信路#2、通信路#3)を用いて並列に音声データを送信している例を示す。なお、図33に示した3つの通信路は、同一の物理回線において3つの論理的なコネクションとして分離されていても良いし、物理回線自体が異なる3種類の回線、例えば有線LANと無線LANと3G回線等であっても良い。
図33では、音声情報の分割数、圧縮処理の並列数、送信処理の並列数、通信路数を全て3として説明したが、これらの数は3に限られない。更に、これらの数は同じ値でなくてもよく、異なる値であっても良い。例えば、音声情報の分割数は3であるが、圧縮処理以降の並列数は2であっても良いし、あるいは5であっても良い。また、音声情報の分割数に応じて、その他の数、すなわち圧縮処理の並列数、送信処理の並列数、通信路数を決定しても良い。あるいは、通信路数に応じて、その他の数、すなわち音声情報の分割数、圧縮処理の並列数、送信処理の並列数を決定しても良い。
また、図33に示した音声受信端末6は、音声送信端末5から音声情報を受信し、この受信した音声情報を再生する。
音声受信端末6は、受信部61、伸張部62、領域合成部63、再生部64を備える。受信部61は音声送信端末5との間の3つの通信路のそれぞれから音声データを受信する機能を備えている。受信部61は、受信した音声データを伸張部62へ出力する。
伸張部62は、受信部61から入力された音声データに対しデータ伸張処理を行い、伸張した音声データを領域合成部63に出力する。
領域合成部63は、伸張部62の伸張#1,#2,#3からの音声データを同期合成することで音声情報を生成し、この情報を再生部64へ出力する。再生部64は、入力された音声情報をスピーカにて再生する。なお、図33に示した例では、音声送信端末5の処理に対応する形で、受信部61における受信処理の並列数、伸張部62における伸張処理の並列数をそれぞれ3にしている。
なお、音声受信端末6は、音声送信端末5で分割した周波数領域の情報(図34に示した例ではBPF#1、BPF#2、BPF#3)を音声受信端末6が知るために、音声送信端末5との間で所定のやりとりを行う。このやりとりは、例えば、音声送信端末5と音声受信端末6間で音声データを送受信する通信路とは別の通信路を用意し、音声送信端末5と音声受信端末6が、その通信路を用いて周波数領域の情報をやりとりすることである。このやりとりは、音声送信端末5と音声受信端末6の間で、音声データを送受するための通信路の1つを用いて、音声データの送受が発生していないタイミングで周波数領域の情報をやりとりすることでも良い。
また、音声送信端末5は、第1の実施形態で説明した記録部55を備える。圧縮部53は、各圧縮処理で生成した圧縮音声データのそれぞれのデータサイズを記録部55に書き込む。領域分割部51は、記録部に書き込まれたデータサイズを統計解析することで、第1の実施形態で示したのと同様の方法を用いて、周波数領域の分割形態を変更することができる。
さて、音声送信端末5の領域分割部51は、最初は、図34の右図に示すように、音声情報の周波数領域を3つの周波数領域(BPF#1、BPF#2、BPF#3)で分割しているとする。そして、領域分割部51は、圧縮データの平均サイズの情報に基づいて、3つの周波数領域でのデータ量がほぼ等しくなるように、周波数領域の分割形態を変更する。図34の右図に示した例では、領域分割部51は、バンドパスフィルタ(BPF)のパラメータを変更し、周波数領域の分割形態を3つの新たな周波数領域(BPF#1’、BPF#2’、BPF#3’)に変更する。
次に、複数の入力音声情報を扱う例について説明する。図35は、音声送信端末5−1と音声受信端末5−2の機能構成例を示すブロック図である。この音声送信端末5−1は、複数の入力音声情報を入力し、これらを合成して送信する。この例で示す装置は、例えば音声による会議装置を想定している。
図35に示した例では、複数の入力音声は、音声入力#1,#2,#3,#4,#5,#6でなる。図36は、Aさん、Bさん、Cさん、Dさん、Eさん、Fさんの6人の音声が音声入力#1,#2,#3,#4,#5,#6に対応して入力され、これらを3つの通信路#1,#2,#3で音声受信端末5−2に分割送信している例を示す。
音声送信端末5−1の領域分割部11は、最初は、図36の左図に示すように、2人ずつ3組のそれぞれに対応する音声情報を図35に示した3つの通信路#1,#2,#3を用いて送信している。ここでは、Aさん,Bさんの入力音声データは圧縮部53の圧縮#1により合成圧縮された上で送信部54の送信#1を介して通信路#1により送信される。Cさん,Dさんの入力音声データは圧縮部53の圧縮#2により合成圧縮された上で送信部54の送信#2を介して通信路#2により送信される。Eさん,Fさんの入力音声データは圧縮部53の圧縮#3により合成圧縮された上で送信部54の送信#3を介して通信路#3により送信される。このときは、図33に示したような周波数領域の分割は行われない。
ここで、AさんとFさんの発言がBさん、Cさん、Dさん、Eさんの発言と比較して多い、すなわち、音声入力#1に対応する入力音声データのサイズと、音声入力#6に対応する入力音声データのサイズが、音声入力#2〜#5に対応する入力音声データのサイズと比較して大きいことが領域分割部11により推測されたと仮定する。
このときは、領域分割部11は、3つの通信路での音声データ量を均一化するため3組の分け方を1人(Aさんのみ)、4人(B〜Eさん)、1人(Fさんのみ)に変更する。この変更後は、Aさんの入力音声データは、圧縮部53の圧縮#1により合成圧縮された上で送信部54の送信#1を介して通信路#1により送信される。B〜Eさんの入力音声データは、圧縮部53の圧縮#2により合成圧縮された上で送信部54の送信#2を介して通信路#2により送信される。Fさんの入力音声データは、圧縮部53の圧縮#3により合成圧縮された上で送信部54の送信#3を介して通信路#3により送信される。本実施形態においては詳細な記述は省略するが、第1の実施形態で記した方法を応用することにより、音声情報転送時の、分割した入力音声データのそれぞれについてのスループットの偏りの改善が期待できる。
また、音声送信端末5−1は、以下のように、領域分割部51から圧縮部53の#1〜#3へのデータの出力先の配分を変更しても良い。音声送信端末5−1の領域分割部51は、圧縮部53の圧縮#1から記録部55に記録された入力音声データ、圧縮部53の圧縮#2から記録部55に記録された入力音声データ、圧縮部53の圧縮#3から記録部55に記録された入力音声データのそれぞれのサイズを統計解析する。領域分割部51は、特定の1つの圧縮処理により生成した入力音声データのサイズが他の2つの圧縮処理により生成した入力音声データのサイズより大きいときは、前述した3つの圧縮処理能力が均等になる、または均等に近くなるように、その1つの圧縮処理に対応する入力音声データのサイズを小さくし、他の2つの圧縮処理に対応する入力音声データのサイズを大きくする。
例えば、圧縮部53の圧縮#1,#3から記録部55に記録された入力音声データのサイズが、圧縮部53の圧縮#2から記録部55に記録された入力音声データのサイズより大きいときは、領域分割部51は、圧縮部53の圧縮#1,#3から記録部55に記録された入力音声データのサイズが小さくなるように、AさんとBさんのうち1人の入力音声データのみを圧縮部53の圧縮#1に送り、もう1人の入力音声データを圧縮部53の圧縮#2に送る。同様に、領域分割部51は、EさんとFさんのうち1人の入力音声データのみを圧縮部53の圧縮#1に送り、もう1人の入力音声データを圧縮部53の圧縮#2に送る。
そして、領域分割部51は、圧縮部53の圧縮#1,#2,#3から記録部55に記録された入力音声データのサイズを再度解析し、圧縮部53の圧縮#1,#2,#3から記録部55に記録された入力音声データが均等または均等に近くなるまで、領域分割部51から圧縮部53の#1〜#3へのデータの出力先の配分の変更を繰り返す。
本実施形態によれば、音声転送システムにおいて音声情報をN分割し、M本のコネクションで送信する方法を提供するときに、音声情報のデータサイズに応じて分割の形態を変更することで、音声転送のスループットを改善させることが可能となる。
音声転送のスループットを改善すれば、音声転送システムにおける音声情報の再生までの遅延時間を短縮させることが可能となる。このとき、M本のコネクションのそれぞれにて送信する音声データを決定することが可能である。更には、音声情報をN分割するとした場合に、スループットを改善するように音声情報の分割領域を自動決定することが可能である。
(第5の実施形態)
以下、第5の実施形態について説明する。
第1の実施形態から第3の実施形態までは画面データを分割する例を示し、第4の実施形態では音声情報を分割する例を示したが、分割する情報はこれらに限られない。第5の実施形態では、図37に示すようにファイル送信端末7からファイル受信端末8に対し、コンピュータで取り扱うためのファイル(データファイル)を送信するファイル転送システムについて説明する。
図37に示すように、ファイル送信端末7は、領域分割部71、圧縮部73、送信部74を備える。領域分割部71は1つのファイルを分割し、この分割したファイルを圧縮部73へ出力する。圧縮部73は領域分割部71から入力されたファイル情報をデータ圧縮し、この圧縮したデータを送信部74へ出力する。送信部74は、圧縮部73から入力された圧縮データをパケット化し、このパケット化したファイルを、ファイル受信端末8との間で設定された通信路を用いて送信する。
ファイル受信端末8は、ファイル送信端末7からファイル情報を受信し、この受信したファイル情報を保存する。図37に示すように、ファイル受信端末8は、受信部81、伸張部82、領域合成部83、メモリ部85、アプリ部86を備える。
受信部81は、ファイル送信端末7との間の通信路のそれぞれから圧縮データを受信する機能を備えている。受信部81は、受信した圧縮データを伸張部82へ出力する。伸張部82は、受信部81から入力された圧縮データに対しデータ伸張処理を行い、伸張したファイル情報を領域合成部83に出力する。
領域合成部83は、伸張部82から入力されたファイル情報に基づいて1つのファイルを生成し、生成したファイルをメモリ部85に保存する。メモリ部85は、領域合成部83により生成したファイルを保存するメモリである。アプリ部86は、この保存したファイルを利用するソフトウェアである。
図38の左図は、ファイル情報を3分割して送信している例を示す図である。この例では、ファイル送信端末7は、最初は、ファイル情報においてページ#1からページ#33を通信路#1で送信し、ページ#34からページ#66を通信路#2で送信し、ページ#67からページ#100を通信路#3で送信する。
ここで、ファイル情報ページ#1からページ#33に画像ファイルが大量に含まれているときは、通信路#1での送信データ量が他の通信路での送信データ量と比べて多い。図38の右図は、例えば、ファイル送信端末7が、ファイル情報ページ#21からページ#27を通信路#1ではなく通信路#2で送信し、ファイル情報ページ#28からページ#33を通信路#1ではなく通信路#3で送信するように、割り当てを動的に変更した例を示す。本実施形態においては詳細な記述は省略するが、第1の実施形態で記した方法を応用することにより、ファイル転送時における、分割したファイルのそれぞれについてのスループットの偏りの改善が期待できる。
本実施形態によれば、ファイル転送システムにおいてファイル情報をN分割し、M本のコネクションで送信する方法を提供するときに、ファイル情報のデータサイズに応じて分割の形態を変更することで、ファイル転送のスループットを改善させることが可能となる。
このようにファイル転送のスループットを改善することにより、ファイル転送システムにおけるファイル情報の再生までの遅延時間を短縮させることが可能となる。このとき、M本のコネクションのそれぞれにて送信するファイルを決定することが可能である。更には、ファイル情報をN分割するとしたときに、スループットを改善するようにファイル情報の分割領域を自動決定することが可能である。
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
これらの各実施形態によれば、複数の通信路を用いた情報の送信にかかるスループットを改善することが可能な情報分割送信装置、情報分割送信方法および情報分割送信処理プログラムを提供することができる。
発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。