JP2015191630A - 情報処理装置、変更検出方法および変更検出プログラム - Google Patents

情報処理装置、変更検出方法および変更検出プログラム Download PDF

Info

Publication number
JP2015191630A
JP2015191630A JP2014070538A JP2014070538A JP2015191630A JP 2015191630 A JP2015191630 A JP 2015191630A JP 2014070538 A JP2014070538 A JP 2014070538A JP 2014070538 A JP2014070538 A JP 2014070538A JP 2015191630 A JP2015191630 A JP 2015191630A
Authority
JP
Japan
Prior art keywords
image
unit
update
area
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014070538A
Other languages
English (en)
Inventor
亮 宮本
Akira Miyamoto
亮 宮本
智大 今井
Tomohiro Imai
智大 今井
浩一 山崎
Koichi Yamazaki
浩一 山崎
健一 堀尾
Kenichi Horio
健一 堀尾
松井 一樹
Kazuki Matsui
一樹 松井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014070538A priority Critical patent/JP2015191630A/ja
Priority to US14/564,294 priority patent/US20150281699A1/en
Publication of JP2015191630A publication Critical patent/JP2015191630A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/507Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction using conditional replenishment

Abstract

【課題】変更の頻度の多い領域を速やかに検出できる情報処理装置、変更検出方法および変更検出プログラムを提供する。【解決手段】送信部47は、生成された画像をクライアント端末に対して送信する。取得部42は、送信部47による画像の送信タイミングとは異なるタイミングにおいて生成された画像を少なくとも1つ取得する。算出部は、送信部47から送信済みの画像および取得部42により取得された画像から画像を構成する複数の分割領域毎の変更頻度を算出する。【選択図】図2

Description

本発明は、情報処理装置、変更検出方法および変更検出プログラムに関する。
従来より、サーバ上でクライアントのデスクトップを仮想化する仮想デスクトップが知られている。この仮想デスクトップでは、サーバ上にクライアントを仮想化した環境を構築してクライアントからリモートでの操作を受付け、サーバが所定のフレームレートでデスクトップ画面の画像をクライアントに送信してクライアントに画像を表示させる。
ところで、サーバがデスクトップの画像を全て静止画の画像データで送信すると、ネットワークを伝送される画像データのデータ量が多くなり、クライアントでの操作性が悪化する場合がある。例えば、サーバとクライアント間のネットワークの通信帯域が狭い場合に、伝送されるデータ量が多くなると、クライアントでの画像の表示に遅延が発生して操作性が悪化する場合がある。
そこで、伝送されるデータ量を減らす技術として、送信するフレームの画像を複数の領域に分割して領域ごとにフレームの画像間の変更の頻度を判別し、変更の頻度がしきい値を超えた領域に対して動画の圧縮処理を行って送信する技術がある。
特開2011−238014号公報 特開2012−14533号公報 特開2004−213418号公報
しかしながら、上記の技術は、フレームの画像間の変更の頻度がしきい値を超えるまで画像が静止画として送信されてしまい、変更の頻度の多い領域の検出に時間がかかる。このように変更の頻度の多い領域の検出に時間がかかると、伝送される画像データのデータ量が多くなり、クライアントでの操作性が悪化する場合がある。
一側面では、変更の頻度の多い領域を速やかに検出できる情報処理装置、変更検出方法および変更検出プログラムを提供することを目的とする。
本発明の一側面によれば、情報処理装置は、送信部と、取得部と、算出部とを有する。送信部は、生成された画像をクライアントに対して送信する。取得部は、前記送信部による画像の送信タイミングとは異なるタイミングにおいて生成された画像を少なくとも1つ取得する。算出部は、前記送信部から送信済みの画像および前記取得部により取得された画像から画像を構成する複数の分割領域毎の変更頻度を算出する。
本発明の一側面によれば、変更の頻度の多い領域を速やかに検出できる。
図1は、実施例1に係るシステムの全体の概略構成の一例を示す図である。 図2は、実施例1に係るサーバの機能的な構成の一例を示す図である。 図3は、画像の分割した分割領域を説明するための図である。 図4Aは、デスクトップ画面の変更頻度の判別要領を説明するための図である。 図4Bは、デスクトップ画面の変更頻度の判別要領を説明するための図である。 図5Aは、連結領域の補正要領を説明するための図である。 図5Bは、連結領域の補正要領を説明するための図である。 図5Cは、連結領域の補正要領を説明するための図である。 図6は、端末の機能的な構成の一例を示す図である。 図7は、実施例1に係る高頻度更新領域を検出する流れの一例を模式的に示した図である。 図8は、実施例1に係る変更頻度を算出する動作の流れの一例を模式的に示した図である。 図9は、送信フレームの画像のみで高頻度更新領域を検出する流れの一例を模式的に示した図である。 図10は、実施例1に係る高頻度更新領域を検出する流れの他の一例を模式的に示した図である。 図11は、実施例1に係る変更検出処理の手順の一例を示すフローチャートである。 図12は、実施例2に係る変更頻度を算出する動作の流れの一例を模式的に示した図である。 図13は、実施例3に係るサーバの機能的な構成の一例を示す図である。 図14は、速度別設定情報テーブルの一例を示す図である。 図15は、高頻度更新領域を検出する流れの一例を模式的に示した図である。 図16は、高頻度更新領域を検出する流れの一例を模式的に示した図である。 図17は、実施例3に係る設定更新処理の手順の一例を示すフローチャートである。 図18は、変更検出プログラムを実行するコンピュータを示す図である。
以下に、本発明に係る情報処理装置、変更検出方法および変更検出プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[システムの構成]
実施例1に係るシステム10について説明する。図1は、実施例1に係るシステムの全体の概略構成の一例を示す図である。図1に示すように、システム10は、サーバ上でクライアントのデスクトップを仮想化するシステムである。システム10は、サーバ11と、クライアント端末12とを有する。サーバ11とクライアント端末12は、各種の情報を交換することが可能とされている。例えば、サーバ11とクライアント端末12は、ネットワーク13を介して通信可能に接続され、各種の情報を交換することが可能とされている。かかるネットワーク13の一態様としては、有線または無線を問わず、携帯電話などの移動体通信、インターネット(Internet)、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網を採用できる。
サーバ11は、クライアントのデスクトップを仮想化した仮想デスクトップを提供する装置である。サーバ11は、例えば、サーバコンピュータなどのコンピュータなどである。サーバ11は、情報処理装置に対応する。サーバ11は、1台のコンピュータとして実装してもよく、また、複数台のコンピュータによるクラウドとして実装することもできる。なお、本実施例では、サーバ11を1台のコンピュータとした場合を例として説明する。サーバ11は、クライアントを仮想化した環境が構築され、クライアントからリモートでの操作を受付ける。例えば、サーバ11は、クライアントの仮想的なデスクトップ画面の画像を周期的にクライアントへ送信しており、クライアントからリモートでの操作を受付ける。サーバ11には、クライアントを仮想化した仮想環境を構築するサーバ向けのリモート画面制御用のアプリケーションがインストールまたはプリインストールされる。なお、以下では、サーバ向けのリモート画面制御用のアプリケーションをサーバ側リモート画面制御用アプリと呼ぶ。
このサーバ側リモート画面制御用アプリは、基本機能として、リモート画面制御サービスを提供する機能を有する。一例としては、サーバ側リモート画面制御用アプリは、クライアント端末12から操作を受け付け、受け付けた操作により要求された処理を自装置で動作するアプリケーションに実行させる。そして、サーバ側リモート画面制御用アプリは、アプリケーションにより実行された処理結果を表示するための画面を生成した上でその画面をクライアント端末12へ送信する。このとき、サーバ側リモート画面制御用アプリは、今回の画面生成の前にクライアント端末12へ送信して表示させた画像との間で変更があった部分の画素が集まった領域、すなわち更新領域の画像を送信する。なお、以下では、一例として、更新部分の画像が矩形の画像で形成される場合を説明するが、開示の装置は更新部分の画像が矩形以外の形状で形成される場合にも適用できる。
このほか、サーバ側リモート画面制御用アプリは、フレーム間で動きが大きい部分のデータを動画向けの圧縮方式のデータに圧縮してクライアント端末12へ送信する機能も有する。一例としては、サーバ側リモート画面制御用アプリは、アプリケーションにより実行された処理結果から生成した画面を複数の領域に分割し、分割した領域ごとに変更の頻度を検出する。このとき、サーバ側リモート画面制御用アプリは、変更の頻度がしきい値以上の領域、すなわち高頻度更新領域の属性情報をクライアント端末12へ送信する。これとともに、サーバ側リモート画面制御用アプリは、高頻度更新領域の画像をMPEG−2やMPEG−4などのMPEG(Moving Picture Experts Group)方式のデータにエンコードした上でクライアント端末12へ送信する。なお、ここでは、MPEG方式のデータへ圧縮する場合を例示したが、これに限定されない。例えば、動画向けの圧縮方式であれば任意の圧縮符号化方式、例えば、Motion−JPEG(Joint Photographic Experts Group)などを採用できる。
クライアント端末12は、ユーザが用いるコンピュータである。クライアント端末12は、例えば、デスクトップ型PC(Personal Computer)、ノート型PCなどの情報処理装置であってもよい。また、クライアント端末12は、例えば、タブレット端末、スマートフォン、PDA(Personal Digital Assistant)などの携帯端末装置であってもよい。また、クライアント端末12は、例えば、シンクライアント(thin client)であってもよい。シンクライアントは、最低限の入出力装置しか持っていない端末装置である。例えば、シンクライアントは、ハードディスクを持たず、資源がサーバ側で一元管理される。なお、図1の例では、クライアント端末12を1つとした場合を例示したが、開示のシステムはこれに限定されず、クライアント端末12を任意の数とすることができる。
クライアント端末12は、サーバ11によるリモート画面制御サービスの提供を受ける。クライアント端末12には、リモート画面制御サービスの提供を受けるクライアント向けのリモート画面制御用アプリケーションがインストールまたはプリインストールされる。なお、以下では、クライアント向けのリモート画面制御用のアプリケーションをクライアント側リモート画面制御用アプリと呼ぶ。
このクライアント側リモート画面制御用アプリは、マウスやキーボードなどの各種の入力デバイスを介して受け付けた操作情報をサーバ11へ通知する機能を有する。一例としては、クライアント側リモート画面制御用アプリは、マウスの左右のクリックを始め、ダブルクリックやドラッグ、マウスの移動操作を介して得られたマウスカーソルの位置や移動量などを操作情報として通知する。他の一例としては、マウスホイールの回転量、キーボードのうち押下されたキーの種別なども操作情報として通知する。
さらに、クライアント側リモート画面制御用アプリは、サーバ11から受信した画像を所定の表示部に表示させる機能を有する。一例として、クライアント側リモート画面制御用アプリは、サーバ11から更新領域の画像を受信する。クライアント側リモート画面制御用アプリは、更新領域の画像を受信した場合、更新領域の画像を前回の画像から変更のあった位置に合わせて表示する。他の一例として、クライアント側リモート画面制御用アプリは、サーバ11から高頻度更新領域の属性情報および動画向けの圧縮方式のデータを受信する。クライアント側リモート画面制御用アプリは、属性情報および動画向けの圧縮方式のデータを受信した場合、属性情報に含まれる位置に対応する表示画面上の領域に、動画向けの圧縮方式のデータをデコードした画像を合成して表示する。
システム10は、仮想デスクトップ上でクライアントの業務に関するアプリケーションを実行させ、そのアプリケーションの処理結果をクライアント端末12に表示させることより、様々なサービスを提供する。例えば、システム10は、サーバ11の仮想デスクトップ上で資料作成やメールなどの業務に関するアプリケーションを動作させて仮想デスクトップ上でリモートでの文書作成環境を提供する。このような業務アプリの他にも、システム10は、例えば、サーバ11の仮想デスクトップ上でCAD(Computer Aided Design)プログラムを動作させて仮想デスクトップ上でリモートでの設計環境を提供する。
[サーバの構成]
次に、実施例1に係るサーバ11について説明する。図2は、実施例1に係るサーバの機能的な構成の一例を示す図である。図2に示すように、サーバ11は、通信I/F(interface)部20と、記憶部21と、制御部22とを有する。
通信I/F部20は、他の装置との間で通信制御を行うインタフェースである。通信I/F部20は、ネットワーク13を介して他の装置と各種情報を送受信する。例えば、通信I/F部20は、クライアント端末12から仮想化されたデスクトップに対する操作情報を受信する。また、通信I/F部20は、クライアント端末12に表示させるデスクトップ画面に関するデータをクライアント端末12に送信する。通信I/F部20としては、LANカードなどのネットワークインタフェースカードを採用できる。
記憶部21は、各種のデータを記憶する記憶デバイスである。記憶部21の一態様としては、フラッシュメモリなどの半導体メモリ素子、ハードディスク、光ディスクなどの記憶装置が挙げられる。なお、記憶部21は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)であってもよい。また、記憶部21は、物理的に複数の記憶デバイスに分かれていてもよい。
記憶部21は、制御部22で実行されるOS(Operating System)や各種プログラムを記憶する。例えば、記憶部21は、上述のサーバ側リモート画面制御用アプリのプログラムを記憶する。さらに、記憶部21は、制御部22で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部21は、デスクトップ画面情報30と、蓄積画像情報31と、設定情報32とを記憶する。
デスクトップ画面情報30は、クライアント端末12の仮想的なデスクトップ画面の画像が記憶されたデータである。デスクトップ画面情報30には、クライアント端末12の生成された最新のデスクトップ画面の画像データが記憶されており、デスクトップ画面に書き換えが発生すると随時更新される。例えば、デスクトップ画面情報30は、クライアント端末12から受け付けた操作や、OS、実行中のプログラムの処理によりデスクトップ画面に書き換えが発生すると更新される。
蓄積画像情報31は、所定のタイミングにおけるデスクトップ画面の画像を記憶したデータである。例えば、蓄積画像情報31には、クライアント端末12へ送信された送信フレームの画像および送信フレームの間でのデスクトップの画像が所定の期間分記憶されている。
設定情報32は、リモート画面制御サービスに関する各種の設定を記憶したデータである。例えば、設定情報32には、デスクトップ画面の画像をクライアント端末12へ送信するフレームレートや、高頻度更新領域の判定に用いるしきい値、送信フレームの間に取得すべきデスクトップ画面の取得枚数などが記憶されている。
なお、デスクトップ画面情報30、蓄積画像情報31および設定情報32は、複数の記憶デバイスに分かれて記憶されていてもよい。例えば、デスクトップ画面情報30がビデオメモリに記憶され、蓄積画像情報31がメインメモリに記憶され、設定情報32がハードディスクに記憶されていてもよい。
制御部22は、サーバ11を制御するデバイスである。制御部22としては、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路を採用できる。制御部22は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部22は、各種のプログラムが動作しており、各種の処理部として機能する。例えば、制御部22は、サーバ側リモート画面制御用アプリが動作する。制御部22は、受付部40と、画面制御部41と、取得部42と、検出部43と、算出部44と、識別部45と、変換部46と、送信部47と、格納部48とを有する。
受付部40は、クライアント端末12の仮想環境に対する操作を受け受ける処理部である。例えば、受付部40は、仮想環境に対する操作として、クライアント端末12から仮想的なデスクトップ画面に対する操作情報を受け付ける。
画面制御部41は、仮想的なデスクトップ画面の更新を制御する処理部である。例えば、画面制御部41は、受付部40により操作情報を受け付けた場合、受け付けた操作情報に応じてデスクトップ画面情報30を書き換える更新を行う。なお、デスクトップ画面情報30の更新は、画面制御部41が直接行ってもよい。また、デスクトップ画面情報30の更新は、OSやグラフィックドライバを介して行ってもよい。例えば、画面制御部41は、受け付けた操作情報をOSに通知し、OSが通知された操作情報に応じた描画要求をグラフィックドライバに行い、グラフィックドライバが描画要求に応じてデスクトップ画面情報30を更新してもよい。
取得部42は、所定のタイミングのデスクトップ画面の画像データを取得する処理部である。取得部42は、所定のタイミングで記憶部21に記憶されたデスクトップ画面情報30を読み出して、デスクトップ画面の画像データを取得する。例えば、取得部42は、設定情報32に記憶された送信フレームレートに応じたクライアント端末12への画像の送信タイミングでデスクトップ画面の画像データを取得する。また、取得部42は、送信タイミングの間のタイミングでもデスクトップ画面の画像データを取得する。例えば、取得部42は、設定情報32に記憶された取得枚数が各送信フレームレートの間で得られるようにタイミングを求め、求めたタイミングでデスクトップ画面の画像データを取得する。例えば、取得枚数が2枚とされている場合、取得部42は、送信タイミングの間の期間を均等に3等分するタイミングを求め、それぞれのタイミングでデスクトップ画面の画像データを取得する。よって、例えば、送信フレームレートが24枚/秒であり、送信タイミングの間の取得枚数が2枚である場合、取得部42は、72枚/秒で周期的に画像を取得する。なお、取得部42は、送信タイミングの間の期間でデスクトップ画面の画像データを取得するタイミングは、必ずしも均等なタイミングでなくもてよい。
検出部43は、クライアント端末12へ送信される画像間で変更された更新領域を検出する処理部である。検出部43は、クライアント端末12へ送信する画像を、当該画像より前に送信された画像と比較して更新領域を検出する。例えば、検出部43は、送信タイミングとなって取得部42によりデスクトップ画面の画像データが取得されると、蓄積画像情報31から1つ前の送信された送信フレームの画像を読み出す。そして、検出部43は、取得部42により取得された画像データの画像と、蓄積画像情報31から読み出した1つ前の送信フレームの画像とを比較する。そして、検出部43は、1つ前の送信フレームの画像から変更があった部分の画素をつなぎ合わせた上で矩形に整形して、画像が変化した更新領域を特定する。検出部43は、特定した更新領域の画像内の位置を示す位置情報を生成する。例えば、検出部43は、画像内での矩形状の更新領域の左上の頂点など特定の頂点の座標と、更新領域の幅および高さを位置情報として生成する。
算出部44は、画像の領域毎の変更頻度を算出する処理部である。例えば、算出部44は、画像のメッシュ状に分割した分割領域毎に変更頻度を算出する。
図3は、画像の分割した分割領域を説明するための図である。図3に示すように、画像50は、複数の分割領域51に分割されている。図3の例では、画像50が縦×横で5×8の分割領域51にメッシュ状に分割されている。なお、画像を分割する縦×横の分割数は、一例であり、これに限定されるものではない。
算出部44は、蓄積画像情報31に蓄積された画像を比較し、検出部43により検出された更新領域の分割領域毎に、分割領域の変更頻度として変更回数をカウントする。例えば、算出部44は、蓄積画像情報31に蓄積された所定の期間分の画像を順に読み出し、検出部43で検出された更新領域を画像間で比較して、更新領域内での画素値が変化した画素を特定する。そして、算出部44は、分割領域毎に、分割領域内に画素値が変化した画素が含まれる場合、分割領域の変更回数を1つ加算する。なお、算出部44は、分割領域内に画素値が変化した画素が所定数以上含まれる場合に変更回数をカウントするものとしてもよい。
図4Aおよび図4Bは、デスクトップ画面の変更頻度の判別要領を説明するための図である。図4Aおよび図4Bは、画像50を縦×横で5×8の分割領域51に分けて変更回数をカウントした一例を示している。図4Aの例は、更新領域52の画素が変化している場合を示している。この場合、算出部44は、更新領域52が重複する網掛け部分の分割領域51の変更回数を1とカウントする。図4Bの例は、さらに更新領域53の画素が変化している場合を示している。更新領域53の画素がさらに変化している場合、算出部44は、更新領域53が含まれる分割領域51の変更回数を1つ加算する。この場合、網掛け部分の分割領域51は、元の変更回数が1であるため、変更回数が1から2に加算される。なお、数字が図示されていない分割領域51は、変更回数がゼロであるものとする。
識別部45は、クライアント端末12に表示されるデスクトップ画面のうち変更頻度の高い領域を識別する処理部である。例えば、識別部45は、算出部44による変更回数のカウントが終了した場合に、所定の期間における変更回数、すなわち、変更頻度が設定情報32に記憶されたしきい値以上の分割領域を特定する。例えば、しきい値を「2」としたとき、図4Bの例では、網掛け部分の分割領域51が特定される。かかるしきい値は、その値を高く設定するほどデスクトップ画面で動画が表示されている可能性が高い部分を後述の変換部46によりエンコードできる。なお、上記の「しきい値」は、サーバ側リモート画面制御用アプリの開発者が段階的に設定した値をエンドユーザに選択させたり、また、エンドユーザが値を直接設定することができる。
識別部45は、変更回数がしきい値以上の分割領域が特定された場合に、特定された分割領域のうち隣接する分割領域同士を連結して連結領域に補正する。一例としては、識別部45は、辺を共有する分割領域同士、すなわち、画面内の上下左右で隣接する分割領域同士を連結して矩形の連結領域に補正する。
図5A〜図5Cは、連結領域の補正要領を説明するための図である。図5Aに示すように、2つの分割領域51A、51Bが左右で隣り合う場合、識別部45は、分割領域51A、51Bを連結して矩形の連結領域55に補正する。一方、図5Bに示すように、2つの分割領域51A、51Bが斜めに隣り合う場合、識別部45は、分割領域51A、51Bを連結しない。なお、本実施例では、上下左右で隣接する分割領域同士を連結して連結領域に補正する場合について説明したが、これに限定されない。例えば、識別部45は、距離などが所定の条件を満たす複数の分割領域がある場合、領域を補間する補間領域を導出した上で、変更回数がしきい値以上の分割領域と補間領域を足し合わせて、変更回数がしきい値以上の分割領域を内包する連結領域を求めてもよい。領域の距離とは、領域間の最短距離を指すものとする。また、例えば、識別部45は、変更回数がしきい値以上の分割領域を含むように連結領域を求めてもよい。図5Cに示すように、2つの分割領域51A、51Bが斜めに隣り合う場合、識別部45は、分割領域51A、51Bが内接する矩形の連結領域56を求めてもよい。
図2に戻り、識別部45は、連結領域を、変更の頻度の多い高頻度更新領域と識別する。なお、識別部45は、連結領域が複数ある場合、それぞれを高頻度更新領域と識別してもよい。また、識別部45は、連結領域が複数ある場合、所定サイズ以上の連結領域、または、最もサイズが大きい連結領域を高頻度更新領域と識別してもよい。また、識別部45は、連結領域が複数ある場合、連結領域の間の領域を補間する補間領域を導出した上で、連結領域と補間領域を足し合わせた領域を高頻度更新領域と識別してもよい。
変換部46は、デスクトップ画面の画像データの変換を行う処理部である。例えば、変換部46は、送信タイミングで取得部42により取得されたデスクトップ画面の画像データの高頻度更新領域の部分の画像を動画形式のデータに変換する。一例としては、変換部46は、取得部42により取得されたデスクトップ画面がストリーム(stream)を形成可能なフレーム数に到達した段階で高頻度更新領域のビットマップ画像をエンコードする。なお、エンコード方式の一態様としては、MPEG−2やMPEG−4などのMPEG方式やMotion−JPEG方式が挙げられる。
また、変換部46は、送信タイミングで取得部42により取得されたデスクトップ画面の画像データの更新領域部分の画像を静止画形式のデータに変換する。変換部46は、高頻度更新領域が識別され、更新領域に高頻度更新領域以外の部分がある場合、デスクトップ画面の更新領域の高頻度更新領域以外の部分の画像を静止画形式のデータに変換する。例えば、変換部46は、デスクトップ画面の更新領域のうち、高頻度更新領域の以外の部分の画像を複数の矩形部分に分割し、矩形部分毎の画像データに変換する。すなわち、変換部46は、デスクトップ画面の更新領域に高頻度更新領域以外の部分がある場合、高頻度更新領域を除いた更新領域部分の画像を、複数の矩形部分の画像の組み合わせで表示するように分割する。変換部46は、矩形部分の画像の配置関係を示す配置情報も生成する。本実施例では、更新領域に高頻度更新領域が含まれない場合でも、更新領域に配置する画像を対応させた配置情報を生成する。なお、変換部46は、デスクトップ画面の更新領域の高頻度更新領域の部分をブランクまたは透過領域とした画像データに変換してもよい。
送信部47は、クライアント端末12へデータの送信を行う処理部である。例えば、送信部47は、クライアント端末12へのデスクトップ画面に関するデータの送信を行う処理部である。例えば、送信部47は、更新領域の位置情報、デスクトップ画面の高頻度更新領域部分の画像の画像データおよび配置情報を送信する。また、送信部47は、デスクトップ画面に高頻度更新領域が含まれる場合、高頻度更新領域の部分の動画データおよび画像内での高頻度更新領域の位置および大きさを示す属性情報をさらに送信する。これにより、クライアント端末12では、位置情報に基づいて、画像内での更新領域の位置を求め、配置情報に基づいて画像を配置してデスクトップ画面を復元する。また、クライアント端末12では、属性情報に基づいて、デスクトップ画面の高頻度更新領域の部分に、動画データの画像を合成して表示する。
格納部48は、取得部42により取得されたデスクトップ画面の画像データの格納を行う処理部である。例えば、格納部48は、取得部42により取得されたデスクトップ画面の画像データを蓄積画像情報31に格納する。この際、格納部48は、画像の取得時刻など時刻やシーケンス番号などの順番を示す情報、送信フレームであるか否かを示す情報を付加して蓄積画像情報31に画像データを格納する。また、格納部48は、所定の期間を経過した画像データを蓄積画像情報31から削除する。これにより、蓄積画像情報31には、直近の所定の期間の間のデスクトップ画面の画像データが蓄積される。画像データを蓄積させる期間は、高頻度更新領域を識別する精度と相関関係があり、期間を長くするほど高頻度更新領域の誤検出が低減される。なお、ここでは、一例として、1秒間にわたってデスクトップ画面の画像データを蓄積する場合を想定する。
[端末の構成]
次に、実施例1に係る端末について説明する。図6は、端末の機能的な構成の一例を示す図である。図6に示すように、クライアント端末12は、通信I/F部70と、表示部71と、入力部72と、制御部73とを有する。
通信I/F部70は、他の装置との間で通信制御を行うインタフェースである。通信I/F部70は、ネットワーク13を介して他の装置と各種情報を送受信する。例えば、通信I/F部70は、サーバ11からデスクトップ画面に関するデータを受信する。また、通信I/F部70は、サーバ11へデスクトップに対する操作情報を送信する。通信I/F部70としては、LANカードなどのネットワークインタフェースカードを採用できる。
表示部71は、各種情報を表示する表示デバイスである。表示部71としては、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)などの表示デバイスが挙げられる。表示部71は、各種情報を表示する。例えば、表示部71は、サーバから送信された仮想デスクトップのデスクトップ画面を表示する。
入力部72は、各種の情報を入力する入力デバイスである。例えば、入力部72としては、マウスやキーボードなどの入力デバイスが挙げられる。入力部72は、ユーザからの操作入力を受付け、受付けた操作内容を示す操作情報を制御部73に入力する。例えば、入力部72は、デスクトップ画面に対する、マウスやキーボードなどによる各種の操作を受付ける。
制御部73は、クライアント端末12を制御するデバイスである。制御部73としては、CPU、MPU等の電子回路や、ASIC、FPGA等の集積回路を採用できる。制御部73は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部73は、各種のプログラムが動作しており、各種の処理部として機能する。例えば、制御部73は、クライアント側リモート画面制御用アプリが動作する。制御部73は、受信部75と、表示制御部76と、操作情報送信部77とを有する。
受信部75は、サーバ11から仮想デスクトップに関するデータを受信する処理部である。例えば、受信部75は、サーバ11からデスクトップ画面に関するデータを受信する。例えば、受信部75は、更新領域の位置情報、デスクトップ画面の高頻度更新領域部分の画面の画像データおよび配置情報を受信する。また、受信部75は、デスクトップ画面に高頻度更新領域が含まれる場合、高頻度更新領域の部分の動画データおよび画像内での高頻度更新領域の位置および大きさを示す属性情報をさらに受信する。
表示制御部76は、表示部71の画像の表示を制御する処理部である。表示制御部76は、受信部75により受信された仮想デスクトップに関するデータに基づき、表示部71にデスクトップ画面を表示させる。例えば、表示制御部76は、位置情報に基づいて、画像内での更新領域の位置を求め、配置情報に基づいて画像を配置してデスクトップ画面を復元する。これにより、デスクトップ画面に高頻度更新領域が含まれる場合には、高頻度更新領域の部分を除いたデスクトップ画面が復元される。表示制御部76は、動画データおよび属性情報の受信が無い場合、復元したデスクトップ画面の画像を表示部71に表示させる。一方、表示制御部76は、動画データおよび属性情報が受信される場合、復元したデスクトップ画面の画像に動画データの動画を合成して表示部71に表示させる。例えば、表示制御部76は、属性情報に基づいて、デスクトップ画面の高頻度更新領域の部分に、動画データの画像を合成し、動画を合成したデスクトップ画面の画像を表示部71に表示させる。
操作情報送信部77は、サーバ11へ仮想デスクトップに対する操作情報を送信する処理部である。操作情報送信部77は、入力部72による操作情報をサーバ11へ送信する。例えば、操作情報送信部77は、マウスの左右のクリックを始め、ダブルクリックやドラッグ、マウスの移動操作を介して得られたマウスカーソルの移動量などを操作情報として送信する。他の一例としては、操作情報送信部77は、マウスホイールの回転量、キーボードのうち押下されたキーの種別なども操作情報として送信する。
[システムの動作]
次に、実施例1に係るサーバ11がデスクトップ画面の画像から高頻度更新領域を検出する動作の一例について説明する。図7は、実施例1に係る高頻度更新領域を検出する流れの一例を模式的に示した図である。図7の例では、送信タイミングで、更新領域の検出および高頻度更新領域の検出を続けて行う場合を示している。
図7には、時間の経過に沿って各時刻のデスクトップ画面の画像が示されている。サーバ11は、送信フレームレートに応じた送信タイミングでデスクトップ画面情報30からデスクトップ画面の画像データを取得し、仮想デスクトップに関するデータをクライアント端末12へ送信する。時刻t、t、tの画像は、クライアント端末12へ送信される送信フレームの画像である。
また、サーバ11は、送信タイミングの間のタイミングでもデスクトップ画面情報30からデスクトップ画面の画像データを取得する。図7の例では、送信タイミングの間で2つの画像を取得している。図7の例では、時刻tとtの間の時刻t’、t’’、時刻tとtの間の時刻t’、t’’、時刻tの後の時刻t’、t’’にそれぞれデスクトップ画面の画像データを取得している。この時刻t’、t’’、t’、t’’、t’、t’’の画像は、クライアント端末12へ送信されない画像である。
図7の例では、サーバ11は、各送信タイミングでクライアント端末12へ送信される画像間で変更された更新領域を検出する。以下では、更新領域の検出するタイミングを更新領域検出タイミングと呼ぶ。図7の例では、時刻t、t、tが、更新領域検出タイミングである。例えば、サーバ11は、送信される画像を、当該画像より1つ前に送信された画像と比較して更新領域を検出する。例えば、サーバ11は、時刻tのタイミングでは、時刻tの画像と、時刻tより1つ前に送信された時刻tの画像を比較して更新領域を検出する。図7の例では、比較の結果、更新領域80が検出されている。
また、図7の例では、サーバ11は、更新領域80を検出した後、続けて高頻度更新領域を検出する。以下では、高頻度更新領域を検出するタイミングを高頻度更新領域検出タイミングと呼ぶ。図7の例では、時刻t、t、tが、高頻度更新領域検出タイミングでもある。サーバ11は、更新領域80が検出された時刻tの画像から時系列の順に画像を遡って更新領域80を順に比較して変更頻度を算出する。図7の例では、比較の結果、更新領域80が検出された時刻tの画像から時刻t’’、時刻t’、時刻tと順に遡って画像の更新領域80を比較して変更頻度を算出する。
サーバ11が変更頻度を算出する動作についてより詳細に説明する。図8は、実施例1に係る変更頻度を算出する動作の流れの一例を模式的に示した図である。図8の例では、4つの画像81〜84を順に比較して変更頻度を算出している。例えば、画像81は、図7の時刻tの画像に対応する。画像82は、図7の時刻t’’の画像に対応する。画像83は、図7の時刻t’の画像に対応する。画像84は、図7の時刻tの画像に対応する。更新領域80は、画像81と画像84との比較から検出されている。
サーバ11は、時系列の順に画像81〜84を遡って更新領域を順に比較し、分割領域毎に、更新領域80の変更回数をカウントする。図8の例では、画像81と画像82の更新領域80を比較した結果、更新領域80内の全ての分割領域85で変更があるため、更新回数が1にカウントアップされている。また、画像82と画像83の更新領域80を比較した結果、更新領域80内の全ての分割領域85で変更があるため、更新回数が2にカウントアップされている。また、画像83と画像84の更新領域80を比較した結果、更新領域80内の全ての分割領域85で変更があるため、更新回数が3にカウントアップされている。
サーバ11は、変更回数が設定情報32に記憶されたしきい値以上の分割領域を特定する。例えば、しきい値を「3」とした場合、図8の例では、範囲87に示した網掛け部分の分割領域85が特定される。サーバ11は、この範囲87を高頻度更新領域と識別する。
次に、図7の例を用いて、高頻度更新領域の検出について推定される処理量および送信データ量を定量的に説明する。最初に、推定に用いるパラメータについて説明する。
例えば、デスクトップ画面の画像は、横方向の画素数をWとし、縦方向の画素数をHとする。また、更新領域は、横方向の画素数をWupdateとし、縦方向の画素数をHupdateとする。この場合、デスクトップ画面の画面全体の解像度および更新領域の大きさは以下のようなる。
画面全体の解像度: W×H
更新領域の大きさ: Wupdate×Hupdate
また、更新領域に対する静止画の圧縮率と、動画の圧縮率を以下とする。
静止画の圧縮率: Imgrate
動画の圧縮率 : Movrate
また、1つの分割領域あたりの更新検出処理量と、1つの分割領域あたりの高頻度更新検出処理量を以下とする。
更新検出処理量 : UM
高頻度更新検出処理量: DM
また、デスクトップ画面の画像の横方向の分割領域数をMWとし、デスクトップ画面の画像に縦方向の分割領域数をMHとする。更新領域の横方向の分割領域数をMWupdateとし、更新領域の縦方向の分割領域数をMHupdateとする。この場合、デスクトップ画面の画像全体での分割領域数MWHおよび更新領域の分割領域数MWHupdateは以下のようなる。
画面全体: MWH=MW×MH
更新領域: MWHupdate=MHupdate×MWupdate
この場合、デスクトップ画面の画像全体に対する更新検出処理量は、以下の(1)となる。更新領域に対する更新検出処理量は、以下の(2)となる。
画面全体: UM×MWH=(UMWH) (1)
更新領域: UM×MWHupdate=(UMWHupdate) (2)
また、デスクトップ画面の画像全体に対する高頻度更新領域検出処理量は、以下の(3)となる。更新領域に対する高頻度更新領域検出処理量は、以下の(4)となる。
画面全体: DM×MWH=(DMWH) (3)
更新領域: DM×MWHupdate=(DMWHupdate) (4)
また、デスクトップ画面の画像全体の静止画での圧縮データ量Dataimgは、以下の(5)となる。更新領域の静止画での圧縮データ量UpdateDataimgは、以下の(6)となる。更新領域の動画での圧縮データ量UpdateDatamovは、は、以下の(7)となる。
画面全体: Dataimg=W×H×Imgrate (5)
更新領域静止画圧縮: UpdateDataimg
update×Hupdate×Imgrate (6)
更新領域動画圧縮: UpdateDatamov
update×Hupdate×Movrate (7)
なお、本実施例の推定では、画面の取得にかかるキャプチャ時間は十分に小さいものとし、0とする。
この場合、図7の例の時刻tおいて、図8に示したような高頻度更新領域の検出を行う場合、更新領域80の検出が1回行われる。また、画像間の更新領域80を比較して画像の変化を検出する更新検出と、分割領域毎に変更回数をカウントする高頻度更新検出処理がそれぞれ3回行われる。よって、処理量は、上述の(1)、(2)、(4)から以下の(8)ようになる。
MWH+3(UMWHupdate+DMWHupdate) (8)
また、図7の例の時刻tにおいて、更新領域80を動画として送信される。このデータ量は、上述の(7)から以下のようになる。
UpdateDatamov
次に、比較のため、例えば、サーバ11が、クライアント端末12へ送信する送信フレームの画像のみで高頻度更新領域の検出を行う場合を説明する。図9は、送信フレームの画像のみで高頻度更新領域を検出する流れの一例を模式的に示した図である。図9の例は、送信フレームレートに応じた送信タイミングで仮想デスクトップのデスクトップ画面の画像データを取得してクライアントへ送信する場合を示している。この時刻t〜tの画像は、クライアントへ送信される送信フレームの画像である。図9の例は、各送信タイミングで、送信フレームの画像間の変更の頻度を判別し、変更の頻度がしきい値を超えた領域に対して動画の圧縮処理を行って送信するものとする。図9の例では、時刻tの画像の時点では、1つ前の画像と変更箇所がなく全ての分割領域の変更回数がゼロであり、時刻t〜tの画像でそれぞれ1つ前の画像との画面の変更回数がカウントするものとする。高頻度更新領域の判定に用いるしきい値は、図7、8と同様に「3」とする。この場合、時刻t、tの送信タイミングでは、それぞれ1つ前の画像と変更があっても画面の変更回数が3未満であるため、高頻度更新領域が識別されず、画像全体が静止画として送信される。時刻tの送信タイミングでは、画面の変更回数が3となるため、高頻度更新領域が識別され、高頻度更新領域の画像が動画として送信される。なお、高頻度更新領域は、図7の例と同じであるものとする。
この場合、時刻t、tでは、デスクトップ画面の画像全体に対する更新検出処理が行われる。この処理量は、上述の(1)からUMWHとなる。また、時刻t、tでは、更新領域が静止画として送信される。このデータ量は、上述の(6)からUpdateDataimgとなる。
一方、時刻tでは、デスクトップ画面の画像全体に対する更新検出処理および高頻度更新領域検出処理が行われる。この処理量は、上述の(1)、(4)からUMWH+DMWHとなる。また、時刻tでは、更新領域が動画として送信される。このデータ量は、上述の(7)からUpdateDatamovとなる。
ここで、図7の例と図9の例の転送データ量を比較する。図7の例は、時刻tで高頻度更新領域が識別され、高頻度更新領域の画像が動画として送信される。この高頻度更新領域についての伝送データ量は、UpdateDatamovである。また、時刻tまでの高頻度更新領域についての伝送データ量は、3×UpdateDatamovである。一方、図9の例は、時刻tで高頻度更新領域が識別され、高頻度更新領域の画像が動画として送信されるため、時刻tまでの高頻度更新領域についての伝送データ量は、2×UpdateDataimg+UpdateDatamovである。同じサイズの領域の画像を送信する場合、一般的に、動画の画像データの方が静止画の画像データよりデータ量が抑えられる。よって、図7の例の方が、伝送データ量を少なく抑えることができる。
また、図7の例と図9の例の処理量を比較する。図7の例では、時刻tにおいて、高頻度更新領域が識別する際の処理量は、UMWH + 3(UMWHupdate +DMWHupdate)である。一方、図9の例では、時刻tにおいて、高頻度更新領域が識別する際の処理量は、UMWH +DMWHである。
本実施例では、更新領域についてのみ画像間で比較して高頻度更領域を検出する。よって、画像内の更新領域のサイズが小さいほど処理量は、小さくなる。
どのようなケースで処理量が低くなるか一例を試算する。
MWH +DMWH > UMWH + 3(UMWHupdate +DMWHupdate
MWH > 3(UMWHupdate +DMWHupdate
ここで、例えば、W=1200、H=900、分割領域のサイズが30×30画素、UM=5、DM=10、MWH=40×30画素とする。この場合、更新領域の分割領域数MWHupdate≦267と求まる。例えば、動画領域が20×13メッシュ程度より小さい場合に処理量が減少する。
このように、本実施例に係るサーバ11は、画像の更新領域を順に比較して変更頻度を算出する。これにより、サーバ11は、更新領域の分割領域数が小さい場合、画像全体を順に比較して変更頻度を算出するより処理量を軽減できる。
次に、実施例1に係るサーバ11がデスクトップ画面の画像から高頻度更新領域を検出する動作の別の例について説明する。図10は、実施例1に係る高頻度更新領域を検出する流れの他の一例を模式的に示した図である。図10の例では、送信タイミングで、更新領域の検出を行い、送信タイミングの間で高頻度更新領域の検出を行う場合を示している。
図10には、時間の経過に沿って各時刻のデスクトップ画面の画像が示されている。サーバ11は、送信フレームレートに応じた送信タイミングでデスクトップ画面情報30からデスクトップ画面の画像データを取得し、仮想デスクトップに関するデータをクライアント端末12へ送信する。時刻t、t、tの画像は、クライアント端末12へ送信される送信フレームの画像である。
また、サーバ11は、送信タイミングの間のタイミングでもデスクトップ画面情報30からデスクトップ画面の画像データを取得する。図10の例では、送信タイミングの間で2つの画像を取得している。図10の例では、時刻tとtの間の時刻t’、t’’、時刻tとtの間の時刻t’、t’’、時刻tの後の時刻t’、t’’にそれぞれデスクトップ画面の画像データを取得している。この時刻t’、t’’、t’、t’’、t’、t’’の画像は、クライアント端末12へ送信されない画像である。
図10の例では、サーバ11は、各送信タイミングを更新領域検出タイミングとして、クライアント端末12へ送信される画像間で変更された更新領域を検出する。図10の例では、時刻t、t、tが、更新領域検出タイミングである。例えば、サーバ11は、送信される画像を、当該画像より1つ前に送信された画像と比較して更新領域を検出する。例えば、サーバ11は、時刻tのタイミングでは、時刻tの画像と、時刻tより1つ前に送信された時刻tの画像を比較して更新領域を検出する。図10の例では、比較の結果、更新領域80が検出されている。
また、図10の例では、サーバ11は、送信タイミングの間で高頻度更新領域を検出する。図10の例では、時刻t’’、t’’、t’’のタイミングで高頻度更新領域を検出する。図10の例では、時刻t’’、t’’、t’’が、高頻度更新領域検出タイミングでもある。図10の例では、比較の結果、時刻t’’の画像から時刻t’、時刻t、時刻t’’と順に遡って画像の更新領域80を比較して変更頻度を算出する。
これにより、サーバ11は、時刻t、t、tのタイミングで更新検出までしか行わないため、処理量がUMWHとなる。また、サーバ11は、時刻t’’、t’’、t’’のタイミングで高頻度更新領域の検出を行なうため、処理量が3(UMWHupdate+DMWHupdate)となる。
時刻t、t、tは、送信タイミングであるため、クライアント端末12へ仮想デスクトップに関するデータの送信が行われる。よって、サーバ11は、高頻度更新領域の検出を別なタイミングで行うことにより、送信タイミングでの処理負荷を低下させることができる。
[処理の流れ]
次に、実施例1に係るサーバ11が、画像の変更頻度を算出し、変更頻度に基づいて高頻度更新領域を識別する変更検出処理の流れについて説明する。図11は、実施例1に係る変更検出処理の手順の一例を示すフローチャートである。この変更検出処理は、所定のタイミング、例えば、取得部42が画像の取得を行うタイミングで実行される。
図11に示すように、取得部42は、記憶部21に記憶されたデスクトップ画面情報30を読み出して、デスクトップ画面の画像データを取得する(S10)。検出部43は、更新領域を検出する更新検出タイミングであるか否かを判定する(S11)。図7および図10の例では、時刻t、t、tが、更新領域検出タイミングである。更新検出タイミングではない場合(S11否定)、処理は、後述のS16へ移行する。一方、更新検出タイミングである場合(S11肯定)、検出部43は、蓄積画像情報31から1つ前の送信された送信フレームの画像を読み出す(S12)。検出部43は、S10にて取得した画像と、S12にて読み出した画像を比較する(S13)。そして、検出部43は、1つ前の送信フレームの画像から変更があった部分の画素をつなぎ合わせた上で矩形に整形して、画像が変化した更新領域を検出する(S14)。検出部43は、検出した更新領域を図示しない作業用の内部メモリに格納して一時的に記憶させる(S15)。
算出部44は、高頻度更新領域を検出する高頻度更新領域検出タイミングであるか否かを判定する(S16)。図7の例では、時刻t、t、tが、高頻度更新領域検出タイミングである。一方、図10の例では、時刻t’’、t’’、t’’が、高頻度更新領域検出タイミングである。高頻度更新領域検出タイミングではない場合(S16否定)、処理は、後述のS25へ移行する。一方、高頻度更新検出タイミングである場合(S16肯定)、算出部44は、S10にて取得した画像を比較元の画像とする(S17)。算出部44は、蓄積画像情報31に蓄積された画像を直近のものから順に1つ読み出す(S18)。算出部44は、図示しない作業用の内部メモリに格納された内部メモリに格納された更新領域を読み出し、比較元の画像と、S10にて読み出した画像の更新領域を比較する(S19)。算出部44は、分割領域毎に、分割領域内に画素値が変化した画素が含まれる場合、分割領域の変更回数を1つ加算する(S20)。算出部44は、蓄積画像情報31に蓄積された画像の全ての読み出しが完了したか否かを判定する(S21)。全ての読み出しが完了していない場合(S21否定)、算出部44は、S18にて読み出した画像を比較元画像と更新して(S22)、S18へ移行する。これにより、蓄積画像情報31に蓄積された画像の比較が順に行われる。
一方、全ての読み出しが完了した場合(S21肯定)、識別部45は、変更頻度が設定情報32に記憶されたしきい値以上の分割領域があるか否か判定する(S23)。変更頻度がしきい値以上の分割領域がない場合(S23否定)、処理は、後述のS25へ移行する。一方、変更頻度がしきい値以上の分割領域がある場合(S23肯定)、識別部45は、変更回数がしきい値以上の分割領域を補正して高頻度更新領域を特定する(S24)。
格納部48は、S10にて取得したデスクトップ画面の画像データを蓄積画像情報31に格納する(S25)。
変換部46は、更新領域を検出する更新検出タイミングであるか否かを判定する(S26)。本実施例では、画像の送信タイミングである場合、更新検出タイミングであると判定する。更新検出タイミングではない場合(S26否定)、処理を終了する。一方、更新検出タイミングである場合(S26肯定)、変換部46は、S10にて取得したデスクトップ画面の画像の更新領域のうち、高頻度更新領域を動画の領域とし、その他の領域を静止画の領域として、画像データを変換する(S27)。送信部47は、変換された画像データをクライアント端末12へ送信し(S28)、処理を終了する。
[効果]
上述してきたように、本実施例に係るサーバ11は、生成された画像をクライアント端末12に対して送信する。サーバ11は、画像の送信タイミングとは異なるタイミングにおいて生成された画像を少なくとも1つ取得する。例えば、サーバ11は、画像の送信タイミングの間に生成された画像を少なくとも1つ取得する。サーバ11は、送信済みの画像および取得された画像から画像を構成する複数の分割領域毎の変更頻度を算出する。これにより、サーバ11は、変更の頻度の多い領域を速やかに検出できる。
また、本実施例に係るサーバ11は、送信される画像を、当該画像より前に送信された画像と比較して、前記複数の分割領域のうち変更があった領域を更新領域として検出する。サーバ11は、更新領域が検出された画像から時系列の順に遡って、送信済みの画像および取得された画像の更新領域を順に比較して変更頻度を算出する。これにより、サーバ11は、更新領域のサイズが小さい場合、画像全体を順に比較して変更頻度を算出するより処理量を軽減できる。
また、本実施例に係るサーバ11は、更新領域のうち、変更頻度が所定のしきい値以上の領域を動画の領域とし、その他の領域を静止画の領域として、画像データを変換する。これにより、サーバ11は、クライアント端末12へ伝送するデータ量を減らすことができる。
次に、実施例2について説明する。実施例2では、変更頻度がしきい値となった分割領域については比較を終了する場合について説明する。実施例2に係るサーバ11の構成は、図2と同様であるため、主に異なる部分について説明する。
算出部44は、画像の更新領域を順に比較して分割領域ごと、変更頻度として変更回数をカウントし、変更頻度が設定情報32に記憶されたしきい値となった分割領域については比較を終了する。
[システムの動作]
次に、実施例2に係るサーバ11が変更頻度を算出する動作についてより詳細に説明する。図12は、実施例2に係る変更頻度を算出する動作の流れの一例を模式的に示した図である。図12の例では、図7と同様に、4つの画像81〜84を順に比較して変更頻度を算出している。なお、しきい値は「2」とする。
算出部44は、時系列の順に画像81〜84を遡って更新領域を順に比較し、分割領域毎に、更新領域80の変更回数をカウントし、変更回数がしきい値となった分割領域については比較を終了する。図12の例では、画像81と画像82の更新領域80を比較した結果、更新領域80内の全ての分割領域で変更があるため、更新回数が1にカウントアップされている。また、画像82と画像83の更新領域80を比較した結果、更新領域80内の全ての分割領域85で変更があるため、更新回数が2にカウントアップされている。ここで、更新回数が2としきい値となっている。このため、画像83と画像84の更新領域80を比較は、省略されている。
[効果]
上述してきたように、本実施例に係るサーバ11は、画像を分割した分割領域ごとに変更頻度として変更回数をカウントし、変更回数が所定のしきい値となった分割領域については比較を終了する。これにより、サーバ11は、変更頻度が所定のしきい値となった分割領域について比較が行われなくなるため、処理量を減少させることができる。
次に、実施例3について説明する。実施例3では、利用可能な通信帯域に応じて設定情報32を更新する場合について説明する。
[サーバの構成]
実施例3に係るサーバ11について説明する。図13は、実施例3に係るサーバの機能的な構成の一例を示す図である。なお、図2に示した実施例1に係るサーバと同一部分については同一の符号を付し、主に異なる部分について説明する。
図13に示す、サーバ11の記憶部21は、帯域別設定テーブル90が記憶されている。帯域別設定テーブル90には、利用可能な通信帯域毎に、画像を取得する取得頻度としきい値が記憶されており、利用可能な通信帯域が低いほど、取得頻度が大きく、しきい値が小さく設定されている。
図14は、速度別設定情報テーブルの一例を示す図である。図14に示すように、帯域別設定テーブル90は、「利用可能帯域」、「取得頻度」、「しきい値」の各項目を有する。利用可能帯域の項目は、クライアント端末12との通信で利用可能な通信帯域を記憶する領域である。取得頻度の項目は、取得部42が送信タイミングの間でデスクトップ画面の画像データを取得する頻度を記憶する領域である。しきい値は、変更頻度の高い領域と識別するしきい値を記憶する領域である。
図14の例では、帯域Aは、取得頻度C、しきい値Eが設定されている。帯域Bは、取得頻度D、しきい値Fが設定されている。この図14の例では、帯域A>帯域B、取得頻度C<取得頻度D、しきい値E>しきい値Fであるものとする。すなわち、利用可能な通信帯域が低いほど、取得頻度およびしきい値が大きく設定されている。
図13に戻り、サーバ11の制御部22は、特定部91と、更新部92とをさらに有する。
特定部91は、クライアント端末12との通信で利用可能な通信帯域を特定する。例えば、特定部91は、所定のタイミングでクライアント端末12へ所定量のデータを送信し、所定量のデータの送信にかかった送信時間を計測する。そして、特定部91は、送信したデータ量を送信時間で除算して利用可能な通信帯域を特定する。この場合、利用可能な通信帯域とは、通信速度を意味する。なお、利用可能な通信帯域の特定手法は、一例であり、他の手法を用いてもよい。
更新部92は、設定情報32を更新する処理部である。例えば、更新部92は、特定部91により特定された利用可能な通信帯域が低いほど、しきい値を低くする更新する。また、更新部92は、利用可能な通信帯域が低いほど、取得部42が送信される画像間で画像を取得する取得頻度を多くする。例えば、更新部92は、帯域別設定テーブル90から、特定部91により特定された利用可能な通信帯域に対応する取得頻度、および、しきい値を読み出す。そして、更新部92は、読み出した取得頻度、および、しきい値で、設定情報32に記憶された取得頻度、および、しきい値を更新する。これにより、設定情報32は、更新された取得頻度でデスクトップ画面情報30からデスクトップ画面の画像データを取得する。また、識別部45は、変更回数が更新されたしきい値以上の分割領域から高頻度更新領域を識別する。
[システムの動作]
次に、実施例3に係るサーバ11がデスクトップ画面の画像から高頻度更新領域を検出する動作の一例について説明する。図15は、高頻度更新領域を検出する流れの一例を模式的に示した図である。図15の例では、送信タイミングで、更新領域の検出および高頻度更新領域の検出を続けて行う場合を示している。なお、しきい値は、「3」とする。また、送信される画像間で画像を取得する取得頻度は、「2」とする。
図15には、時間の経過に沿って各時刻のデスクトップ画面の画像が示されている。サーバ11は、送信フレームレートに応じた送信タイミングでデスクトップ画面情報30からデスクトップ画面の画像データを取得し、仮想デスクトップに関するデータをクライアント端末12へ送信する。時刻t、t、tの画像は、クライアント端末12へ送信される送信フレームの画像である。
また、サーバ11は、送信タイミングの間のタイミングでもデスクトップ画面情報30からデスクトップ画面の画像データを取得する。図15の例では、送信タイミングの間で2つの画像を取得している。図15の例では、時刻tとtの間の時刻t’、t’’、時刻tとtの間の時刻t’、t’’、時刻tの後の時刻t’、t’’にそれぞれデスクトップ画面の画像データを取得している。この時刻t’、t’’、t’、t’’、t’、t’’の画像は、クライアント端末12へ送信されない画像である。
ここで、図15の例では、時刻t’’からデスクトップ画面に動画が表示されて更新頻度の多い領域が発生したものとする。図15の例では、時刻t、t、tが、更新領域検出タイミングである。例えば、サーバ11は、送信される画像を、当該画像より1つ前に送信された画像と比較して更新領域を検出する。この場合、時刻tの送信タイミングでは、それぞれ1つ前の画像と変更があっても画面の変更回数が3未満であるため、高頻度更新領域が識別されず、画像全体が静止画として送信される。そして、時刻tの送信タイミングで高頻度更新領域が識別される。サーバ11とクライアント端末12間の利用可能な通信帯域が狭い場合に、高頻度更新領域が静止画として伝送されるとデータ量が多くなり、クライアント端末12での画像の表示に遅延が発生して操作性が悪化する場合がある。
そこで、サーバ11は、利用可能な通信帯域が低いほど、しきい値を低く更新する。また、サーバ11は、利用可能な通信帯域が低いほど、取得部42が送信される画像間で画像を取得する取得頻度を多くする。これにより、サーバ11は、利用可能な通信帯域が低い場合に、変更の頻度の多い領域を速やかに検出できる。
図16は、高頻度更新領域を検出する流れの一例を模式的に示した図である。図16の例は、図15において、しきい値を「2」に更新し、取得頻度を「3」に更新していた場合を示している。図16の例では、送信タイミングの間で3つの画像を取得している。図16の例では、時刻tとtの間の時刻t’、t’’ 、t’’’、時刻tとtの間の時刻t’、t’’ 、t’’’、時刻tの後の時刻t’、t’’、t’’’にそれぞれデスクトップ画面の画像データを取得している。この時刻t’、t’’、t’’’、t’、t’’ 、t’’’、t’、t’’、t’’’の画像は、クライアント端末12へ送信されない画像である。図16の例では、時刻t’’からデスクトップ画面に動画が表示されて更新頻度の多い領域が発生したものとする。図16の例では、時刻t、t、tが、更新領域検出タイミングである。例えば、サーバ11は、送信される画像を、当該画像より1つ前に送信された画像と比較して更新領域を検出する。この場合、時刻tの送信タイミングで、それぞれ1つ前の画像との変更の変更回数が2となり、更新されたしきい値以上となるため、高頻度更新領域が識別されて、高頻度更新領域が動画として送信される。
[処理の流れ]
次に、実施例3に係るサーバ11が、利用可能な通信帯域に応じて設定情報32を更新する設定更新処理の流れについて説明する。図17は、実施例3に係る設定更新処理の手順の一例を示すフローチャートである。この設定更新処理は、所定のタイミング、例えば、日時などの所定時間毎のタイミング、あるいは管理者から指示されたタイミングで実行される。
図17に示すように、特定部91は、クライアント端末12との通信で利用可能な通信帯域を特定する(S50)。更新部92は、帯域別設定テーブル90から、特定部91により特定された利用可能な通信帯域に対応する取得頻度およびしきい値を読み出す(S51)。そして、更新部92は、読み出した取得頻度およびしきい値で、設定情報32に記憶された取得頻度およびしきい値を更新し(S52)、処理を終了する。
[効果]
上述してきたように、本実施例に係るサーバ11は、クライアント端末12との通信で利用可能な通信帯域を特定する。そして、サーバ11は、特定された利用可能な通信帯域が低いほど、しきい値を低くする更新、および、画像間で画像を取得する取得頻度を多くする更新の何れか一方または両方を行う。これにより、サーバ11は、利用可能な通信帯域が低い場合に、変更の頻度の多い領域を速やかに検出できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
例えば、上記の実施例では、サーバ11がクライアント端末12の仮想的なデスクトップ画面の画像を記憶する場合について説明したが、開示の装置はこれに限定されない。例えば、仮想的なデスクトップ画面の画像は、他のサーバに記憶され、他のサーバから取得してもよい。
また、上記の実施例では、クライアント端末12へ仮想的なデスクトップ画面の画像を送信する場合について説明したが、開示の装置はこれに限定されない。例えば、クライアント端末12へ送信する画像は、仮想的なデスクトップ画面の画像に限定されるものではない。
また、上記の実施例では、送信される画像を、1つ前の送信フレームの画像と比較して更新領域を検出する場合について説明したが、開示の装置はこれに限定されない。例えば、2つ以上前の所定の送信フレームの画像と比較して更新領域を検出してもよい。
また、上記の実施例では、所定の期間を経過した画像データを蓄積画像情報31から削除することにより、蓄積画像情報31に所定の期間分の画像を蓄積し、蓄積された全ての画像を読み出して比較する場合について説明したが、開示の装置はこれに限定されない。例えば、所定の期間分以上の画像データを蓄積画像情報31に蓄積し、直近所定の期間分の画像を読み出して比較してもよい。また、蓄積画像情報31に所定個の画像を蓄積し、蓄積された全ての画像を読み出して比較してもよい。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、サーバ11の受付部40と、画面制御部41、取得部42、検出部43、算出部44、識別部45、変換部46、送信部47、格納部48、特定部91および更新部92の各処理部が適宜統合されてもよい。また、各処理部の処理が適宜複数の処理部の処理に分離されてもよい。また、各装置は各処理部の一部または全部を適宜統合してもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[変更検出プログラム]
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図18は、変更検出プログラムを実行するコンピュータを示す図である。
図18に示すように、コンピュータ300は、CPU(Central Processing Unit)310、HDD(Hard Disk Drive)320、RAM(Random Access Memory)340を有する。これら300〜340の各部は、バス400を介して接続される。
HDD320には上記のサーバ11の各処理部と同様の機能を発揮する変更検出プログラム320aが予め記憶される。なお、変更検出プログラム320aについては、適宜分離しても良い。
また、HDD320は、各種情報を記憶する。例えば、HDD320は、OSや処理に用いる各種データを記憶する。
そして、CPU310が、変更検出プログラム320aをHDD320から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、変更検出プログラム320aは、クライアント端末12の各処理部およびサーバ11の各処理部と同様の動作を実行する。
なお、上記した変更検出プログラム320aについては、必ずしも最初からHDD320に記憶させることを要しない。
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
10 システム
11 サーバ
12 クライアント端末
21 記憶部
22 制御部
30 デスクトップ画面情報
31 蓄積画像情報
32 設定情報
40 受付部
41 画面制御部
42 取得部
43 検出部
44 算出部
45 識別部
46 変換部
47 送信部
48 格納部
91 特定部
92 更新部

Claims (7)

  1. 生成された画像をクライアント端末に対して送信する送信部と、
    前記送信部による画像の送信タイミングとは異なるタイミングにおいて生成された画像を少なくとも1つ取得する取得部と、
    前記送信部から送信済みの画像および前記取得部により取得された画像から画像を構成する複数の分割領域毎の変更頻度を算出する算出部と、
    を有することを特徴とする情報処理装置。
  2. 前記送信部により送信される画像を、当該画像より前に送信された画像と比較して、前記複数の分割領域のうち変更があった領域を更新領域として検出する検出部をさらに有し、
    前記算出部は、前記検出部により更新領域が検出された画像から時系列の順に遡って、送信済みの画像および前記取得部により取得された画像の前記更新領域を順に比較して変更頻度を算出する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記算出部は、前記分割領域ごとに前記変更頻度として変更回数をカウントし、変更回数が所定のしきい値となった分割領域については比較を終了する
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記更新領域のうち、前記算出部により算出される変更頻度が所定のしきい値以上の領域を動画の領域とし、その他の領域を静止画の領域として、画像データを変換する変換部をさらに有し、
    前記送信部は、前記変換部により変換された画像データを送信する
    ことを特徴とする請求項2または3に記載の情報処理装置。
  5. 前記クライアント端末との通信で利用可能な通信帯域を特定する特定部と、
    前記特定部により特定された利用可能な通信帯域が低いほど、前記しきい値を低くする更新、および、前記取得部が送信される画像間で画像を取得する取得頻度を多くする更新の何れか一方または両方を行う更新部と、
    をさらに有することを特徴とする請求項4に記載の情報処理装置。
  6. コンピュータに、
    生成された画像をクライアント端末に対して送信し、
    画像の送信タイミングとは異なるタイミングにおいて生成された画像を少なくとも1つ取得し、
    送信済みの画像および取得された画像から画像を構成する複数の分割領域毎の変更頻度を算出する
    処理を実行させることを特徴とする変更検出プログラム。
  7. コンピュータが、
    生成された画像をクライアント端末に対して送信し、
    画像の送信タイミングとは異なるタイミングにおいて生成された画像を少なくとも1つ取得し、
    送信済みの画像および取得された画像から画像を構成する複数の分割領域毎の変更頻度を算出する
    処理を実行することを特徴とする変更検出方法。
JP2014070538A 2014-03-28 2014-03-28 情報処理装置、変更検出方法および変更検出プログラム Pending JP2015191630A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014070538A JP2015191630A (ja) 2014-03-28 2014-03-28 情報処理装置、変更検出方法および変更検出プログラム
US14/564,294 US20150281699A1 (en) 2014-03-28 2014-12-09 Information processing device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014070538A JP2015191630A (ja) 2014-03-28 2014-03-28 情報処理装置、変更検出方法および変更検出プログラム

Publications (1)

Publication Number Publication Date
JP2015191630A true JP2015191630A (ja) 2015-11-02

Family

ID=54192239

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014070538A Pending JP2015191630A (ja) 2014-03-28 2014-03-28 情報処理装置、変更検出方法および変更検出プログラム

Country Status (2)

Country Link
US (1) US20150281699A1 (ja)
JP (1) JP2015191630A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10976985B2 (en) 2019-04-26 2021-04-13 Fujitsu Limited Recording medium recording data display program, data display method, and electronic apparatus for displaying received data by delaying an adjustment time
US11557018B2 (en) 2020-09-02 2023-01-17 Fujitsu Limited Image processing apparatus and computer-readable recording medium storing screen transfer program

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10600245B1 (en) 2014-05-28 2020-03-24 Lucasfilm Entertainment Company Ltd. Navigating a virtual environment of a media content item
US10437239B2 (en) * 2016-06-13 2019-10-08 Brigham Young University Operation serialization in a parallel workflow environment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008539449A (ja) * 2005-03-14 2008-11-13 サイトリックス システムズ, インコーポレイテッド 分散処理環境における図形表示を更新する方法および装置
JP2013131866A (ja) * 2011-12-20 2013-07-04 Fujitsu Ltd 情報処理装置、画像送信方法及び画像送信プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5040060A (en) * 1987-12-01 1991-08-13 Canon Kabushiki Kaisha Image information transmission system with compression based on still-image redundancy
US6222881B1 (en) * 1994-10-18 2001-04-24 Intel Corporation Using numbers of non-zero quantized transform signals and signal differences to determine when to encode video signals using inter-frame or intra-frame encoding
JP4198608B2 (ja) * 2004-01-15 2008-12-17 株式会社東芝 補間画像生成方法および装置
US8711083B2 (en) * 2009-05-20 2014-04-29 Marvell World Trade Ltd. Liquid crystal display backlight control
CN103221993B (zh) * 2010-09-13 2017-02-15 巴里·林恩·詹金斯 传输和控制包括渲染的几何、纹理和光照数据的流交互媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008539449A (ja) * 2005-03-14 2008-11-13 サイトリックス システムズ, インコーポレイテッド 分散処理環境における図形表示を更新する方法および装置
JP2013131866A (ja) * 2011-12-20 2013-07-04 Fujitsu Ltd 情報処理装置、画像送信方法及び画像送信プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10976985B2 (en) 2019-04-26 2021-04-13 Fujitsu Limited Recording medium recording data display program, data display method, and electronic apparatus for displaying received data by delaying an adjustment time
US11557018B2 (en) 2020-09-02 2023-01-17 Fujitsu Limited Image processing apparatus and computer-readable recording medium storing screen transfer program

Also Published As

Publication number Publication date
US20150281699A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
US9223534B1 (en) Client side detection of motion vectors for cross-platform display
US9716907B2 (en) Updating thin-client display based on a thin-out rate
US20130155075A1 (en) Information processing device, image transmission method, and recording medium
US8819270B2 (en) Information processing apparatus, computer-readable non transitory storage medium storing image transmission program, and computer-readable storage medium storing image display program
JP4384242B1 (ja) 情報処理装置および画像処理方法
US8982135B2 (en) Information processing apparatus and image display method
US9300818B2 (en) Information processing apparatus and method
JP2015502120A (ja) 非局所的超解像再構成の方法及び装置
EP3952312A1 (en) Method and apparatus for video frame interpolation, and device and storage medium
US20140375648A1 (en) Image display system, image display method, image display program, and computer-readable recording medium storing said program
US20190114989A1 (en) Systems and methods for image optimization
US20220383637A1 (en) Live streaming sampling method and apparatus, and electronic device
JP2015191630A (ja) 情報処理装置、変更検出方法および変更検出プログラム
WO2022179045A1 (zh) 图像处理方法、装置、存储介质、程序及程序产品
CN113657518B (zh) 训练方法、目标图像检测方法、装置、电子设备以及介质
JPWO2011077550A1 (ja) 画面中継装置
US20160155429A1 (en) Information processing apparatus and terminal device
GB2528870A (en) Managing display data for display
US20150235621A1 (en) Image Processing Method and Device
US20170372681A1 (en) Method, apparatus, and storage medium
US20120005587A1 (en) Performing Remoting Operations For Different Regions Of A Display Surface At Different Rates
US9571600B2 (en) Relay device, relay method and thin client system
US9367931B1 (en) Motion vectors for cross-platform display
US20150106733A1 (en) Terminal device, thin client system, display method, and recording medium
US20150249722A1 (en) Content providing apparatus and method, and computer program product

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171031

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180424