JP5720211B2 - 情報処理装置、情報処理方法および情報処理プログラム - Google Patents

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

Info

Publication number
JP5720211B2
JP5720211B2 JP2010269899A JP2010269899A JP5720211B2 JP 5720211 B2 JP5720211 B2 JP 5720211B2 JP 2010269899 A JP2010269899 A JP 2010269899A JP 2010269899 A JP2010269899 A JP 2010269899A JP 5720211 B2 JP5720211 B2 JP 5720211B2
Authority
JP
Japan
Prior art keywords
area
image
region
displayed
update
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.)
Active
Application number
JP2010269899A
Other languages
English (en)
Other versions
JP2012120066A (ja
Inventor
健一 堀尾
健一 堀尾
松井 一樹
一樹 松井
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 JP2010269899A priority Critical patent/JP5720211B2/ja
Priority to US13/303,956 priority patent/US8411972B2/en
Publication of JP2012120066A publication Critical patent/JP2012120066A/ja
Application granted granted Critical
Publication of JP5720211B2 publication Critical patent/JP5720211B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • G06F3/1462Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay with means for detecting differences between the image stored in the host and the images displayed on the remote displays
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/127Updating a frame memory using a transfer of data from a source area to a destination area
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/022Centralised management of display operation, e.g. in a server instead of locally

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は情報処理装置、情報処理方法および情報処理プログラムに関する。
近年、クライアント(Client)装置に搭載する機能を可及的に抑え、サーバ(Server)装置側でアプリケーション(Application)やファイル(File)等のリソース(Resource)を管理するシンクライアント(Thin Client)というシステム(System)が知られている。
シンクライアントシステムでは、実際にはサーバ装置が処理を実行した処理結果やサーバ装置が保持するデータをクライアントに表示させ、あたかもクライアントが主体となって処理を実行したり、データを保持しているかのように振る舞う。
シンクライアントシステムにて実行する業務の実行方法の一例としては、サーバ装置で資料作成業務やメール管理業務等に関するアプリケーションを実行させ、そのアプリケーションの処理結果をクライアントに表示させる方法等が挙げられる。
近年、資料作成業務やメール管理業務の他にも、シンクライアントシステムに実行させる業務を、CAD(Computer-Aided Design)作成業務等のように精細な画像を扱う業務や、動画再生・編集業務等まで拡充することが求められている。
特表2007−505580号公報
しかしながら、CAD作成業務や、動画を取り扱う業務等、精細な画像を扱う業務を実行させる場合は、サーバ装置からクライアント装置に転送する情報量が増大するため、クライアント装置で実行される操作に対する応答が遅延するという問題がある。
なお、応答の遅延は、シンクライアントシステムでクライアント装置とサーバ装置間で画面更新時に転送する情報量が増大する場合に共通するものであり、画像や動画を扱う場合に限定して生じるものではない。
本発明はこのような点に鑑みてなされたものであり、送信する情報量を低減する情報処理装置、情報処理方法および情報処理プログラムを提供することを目的とする。
上記目的を達成するために、開示の情報処理装置が提供される。この情報処理装置は、記憶部と、識別部と、判断部と、送信部とを有している。
記憶部は、動画圧縮して送信した第1の領域を示す情報を記憶する。
識別部は、画像の更新量が閾値以上の第2の領域を識別する。
判断部は、第1の領域と第2の領域との重複関係に基づいて、第2の領域の画像を、第1の領域の動画と関連して送信するか否かを判断する。
送信部は、第2の領域と第1の領域とを関連して送信すると判断した場合、第2の領域の少なくとも一部を包含する領域の画像を、第1の領域の画像に続けて動画圧縮して送信すると共に、該動画圧縮した画像の表示位置を示す情報を送信する。
送信する情報量を低減することができる。
第1の実施の形態の情報処理装置の概要を示す図である。 第2の実施の形態の情報処理システムを示す図である。 第2の実施の形態のサーバ装置およびクライアント装置の機能を示すブロック図である。 表示デバイスに表示させる画面の分割要領を説明する図である。 表示デバイスに表示させる画面の更新頻度の判別要領を説明する図である。 メッシュ連結体の補正要領を説明する図である。 高頻度更新領域の候補の合成要領を説明する図である。 領域位置識別データを説明する図である。 領域管理データ格納部に格納される領域位置識別データの内容を説明する図である。 前回領域管理データ格納部に格納される前回領域管理データの内容を説明する図である。 移動検出部の動作を説明する図である。 式(2)と式(3)との関係を示す図である。 第2の実施の形態のクライアント装置が備える領域管理データ格納部に格納される領域管理データの一例を示す図である。 サーバ装置の全体処理を示すフローチャートである。 第2の実施の形態のサーバ装置が行う移動検出処理を示すフローチャートである。 第2の実施の形態のデータ反映処理を示すフローチャートである。 第2の実施の形態の画像送信処理を示すフローチャートである。 第2の実施の形態のデータ反映処理の具体例を示す図である。 第2の実施の形態のクライアント装置が行う移動検出処理を示すフローチャートである。 第3の実施の形態のサーバ装置が備える領域管理テーブルの一例を示す図である。 第3の実施の形態のデータ反映処理を示すフローチャートである。 第3の実施の形態の画像送信処理の手順を示すフローチャートである。 第4の実施の形態のサーバ装置が行う移動検出処理の一例を示す図である。 第4の実施の形態の領域管理テーブルを示す図である。 第4の実施の形態のサーバ装置が行う移動検出処理を示すフローチャートである。 第4の実施の形態のサーバ装置が行う移動検出処理を示すフローチャートである。 第4の実施の形態のサーバ装置の高頻度更新領域の統合処理の手順を示すフローチャートである。
以下、実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態の情報処理装置について説明し、その後、実施の形態をより具体的に説明する。
<第1の実施の形態>
図1は、第1の実施の形態の情報処理装置の概要を示す図である。
実施の形態の情報処理装置(コンピュータ)1は、クライアント装置2が有する表示部2aへの画像の表示要求に際し、画像を表示する位置をクライアント装置2に送信する機能を有している。
この情報処理装置1は、記憶部1aと、識別部1bと、判断部1cと、送信部1dとを有している。
記憶部1aは、動画圧縮して送信した第1の領域を示す情報を記憶する。図1では、一例として表示部2aに表示された画像を所定のフレーム間にて比較した結果、領域3が、動画圧縮して送信した第1の領域であることを記憶している。このとき、記憶部1aは、領域3を識別する識別子「S1」に領域3の表示部2aでの表示箇所を識別する情報(図1では座標x1、座標y1、幅w1、高さh1)を関連づけて記憶している。なお、座標x1、座標y1は、例えば、表示部2aの左上を原点(0,0)としたときのxy座標であり、幅w1は、領域3の図1中左右方向の長さであり、高さh1は、領域3の図1中上下方向の長さである。
ここで、情報処理装置1は、比較対象の複数の画像を記憶する画像記憶部1eと、更新頻度判別部1fとを有することができる。画像記憶部1eは、クライアント装置2の表示部2aに表示された画像を所定のフレーム数分記憶する。更新頻度判別部1fは、複数の画像を所定のフレーム間にて比較し、画像内の更新された回数が一定以上の箇所を判別する。そして、判別した箇所を第1の領域に設定する。一定以上の箇所の判別方法としては、例えば、更新頻度判別部1fは、画像記憶部1eに記憶された画像を複数の領域に分割する。そして、領域毎にフレーム間の更新の頻度を判別する。そして、更新の頻度が予め用意した閾値を超えた箇所を更新された回数が一定以上の箇所であると判別する。
識別部1bは、次に送信する画像のうち、所定期間内における画像の更新量が閾値以上の第2の領域を識別する。
図1の表示部2aには、クライアント装置2のユーザが領域3に表示されている画像を領域4に移動させた様子を示している。図1の点線で囲った矩形は、領域3と同じ大きさの矩形を示している。このとき、識別部1bは、領域4を第2の領域に特定し、領域4を識別する情報(図1では座標x2、座標y2、幅w2、高さh2)を識別する。
判断部1cは、第1の領域と第2の領域との重複関係に基づいて、第2の領域内の画像を、第1の領域の動画と関連して送信するか否かを判断する。この判断は、例えば以下のようにして行うことができる。
図1では、判断部1cは、記憶部1aに記憶されている領域3を識別する情報と識別部1bが識別した領域4を識別する情報とを比較し、位置座標とサイズ(幅と高さ)が一致するか否かを判断する。そして一致すれば、第2の領域内の画像を、第1の領域の動画と関連して送信すると判断する。また、他の判断方法として、判断部1cは、サイズ(幅と高さ)が一致し、かつ、領域3と領域4が重複する領域(図1では、領域S3)が存在するか否かを判断する。そして、存在すれば、第2の領域内の画像を、第1の領域の動画と関連して送信すると判断する。さらに他の判断方法として、判断部1cは、サイズ(幅と高さ)は領域4の方が領域3よりも小さく、かつ、第1の領域の画像を継続して送信した方が、画像データの通信量が少なくなるか否かを判断する。そして、画像データの通信量が少なくなると判断すれば、第2の領域内の画像を、第1の領域の動画と関連して送信すると判断する。
送信部1dは、第2の領域の画像を第1の領域の動画と関連して送信すると判断した場合、第2の領域の少なくとも一部を包含する領域の画像を、第1の領域の画像に続けて動画圧縮して送信すると共に、該動画圧縮した画像の表示位置を示す情報を送信する。図1では、領域3にて表示されていた画像を領域4の画像として継続して送信すると判断した場合に領域4の画像の表示位置を示す情報(座標x2、座標y2、幅w2、高さh2)を動画圧縮データに付加してクライアント装置2に送信する。
クライアント装置2は、送信部1dが送信した第2の領域の画像の表示位置を示す情報と動画圧縮データを受信すると、第2の領域の画像の表示位置を示す情報により特定される第2の領域の画像の表示位置に、送信部1dが送信した動画圧縮データを伸長した画像を再生する。
この情報処理装置1によれば、例えば動画像の再生時やCADアプリケーション利用時等のように第1の領域が任意の個所で頻繁に発生するような状況において、ある条件を満たす場合に更新領域の画像を継続して利用するようにした。これにより、データ圧縮効率を高めることが可能なため、結果としてクライアント装置2のユーザの操作に対する応答時間を早めることができる。
また、情報処理装置1には、前述した機能の他にも以下の機能を含ませることができる。
例えば、情報処理装置1には、幅と高さは第1の領域よりも第2の領域の方が小さいが、第1の領域に表示していた動画ストリームを第2の領域に継続利用した方がデータ通信量が少なくなると予想される組み合わせを探す機能、および、組み合わせが見つかれば継続利用するよう設定したうえで継続利用した方がデータ通信量が少なくなるフレーム数(n)を算出する機能を含ませることができる。さらに、情報処理装置1には、継続利用した動画ストリームの中で送信した送信フレーム数をカウントしておき、送信フレーム数がnを超えた場合は、第1の領域のサイズに適した動画ストリームを作成し、その動画ストリームの中でデータ送信を行うように変更する機能を含ませることができる。
これにより、転送する情報量の増大を抑制することができる。
なお、前述した各機能については後述する第3の実施の形態にて詳細に説明する。
また、情報処理装置1には、幅または高さが第1の領域よりも第2の領域の方が大きい組み合わせにおいても動画ストリームを継続利用した方がデータ通信量が少なくなると予想される組み合わせを探す機能、および、組み合わせが見つかれば動画ストリームを継続利用する機能を含ませることができる。さらに、第2の領域の中で第1の領域だけではカバーできない領域については、新しく動画ストリームを作成し、その動画ストリームの中でデータ送信を行う機能、また、継続利用したストリームの中でデータを送信する期間が一定時間を超えた場合に、第1の領域のサイズに適した動画ストリームを作成し、その動画ストリームの中でデータ送信を行うように変更する機能を含ませることができる。
これにより、転送する情報量の増大を抑制することができる。
なお、前述した各機能については後述する第4の実施の形態にて詳細に説明する。
なお、識別部1b、判断部1c、送信部1d、および更新頻度判別部1fは、情報処理装置1が有するCPU(Central Processing Unit)が備える機能により実現することができる。また、記憶部1aおよび画像記憶部1eは、情報処理装置1が有するRAM(Random Access Memory)やハードディスクドライブ(HDD:Hard Disk Drive)等が備えるデータ記憶領域により実現することができる。
また、送信部1dがクライアント装置2に画像データを送信する際には、例えばRDP(Remote Desktop Protocol)や、VNC(Virtual Network Computing)で用いられているRFB(Remote Frame Buffer)プロトコル等で、画像や動画等の大容量のデータを扱う場合にも適用することができる。
以下、実施の形態をより具体的に説明する。
<第2の実施の形態>
図2は、第2の実施の形態の情報処理システムを示す図である。
図2に示すように、情報処理システム5は、サーバ装置10と、クライアント装置20とを有する。
これらサーバ装置10およびクライアント装置20は、所定のネットワーク(Network)50を介して、相互に通信可能に接続される。かかるネットワーク50には、有線または無線を問わず、インターネット(Internet)、LAN(Local Area Network)やVPN(Virtual Private Network)等の任意の種類の通信網を採用できる。なお、サーバ装置10およびクライアント装置20間の通信プロトコル(Protocol)には、一例として、VNCにおけるRFBプロトコルを採用する場合を想定する。
なお、図2では、1つのサーバ装置10に対し、1つのクライアント装置を接続する場合を図示したが、1つのサーバ装置10に対し、2以上のクライアント装置が接続されていてもよい。
サーバ装置10は、クライアント装置20に表示させる画面をリモートで制御するサービスを提供するコンピュータ(Computer)である。
クライアント装置20は、サーバ装置10によるリモート画面制御サービスの提供を受ける側のコンピュータである。かかるクライアント装置20の一例としては、パーソナルコンピュータ(Personal Computer)等固定端末の他、携帯電話機、PHS(Personal Handyphone System)やPDA(Personal Digital Assistant)等の移動体端末を適用することもできる。
以下、サーバ装置10およびクライアント装置20のハードウェア構成を説明する。サーバ装置10は、CPU101によって装置全体が制御されている。CPU101には、バス108を介してRAM102と複数の周辺機器が接続されている。
RAM102は、サーバ装置10の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に用いる各種データが格納される。
バス108に接続されている周辺機器としては、ハードディスクドライブ103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および通信インタフェース107がある。
ハードディスクドライブ103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ハードディスクドライブ103は、サーバ装置10の二次記憶装置として使用される。ハードディスクドライブ103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ104aが接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ104aの画面に表示させる。モニタ104aとしては、CRT(Cathode Ray Tube)を用いた液晶表示装置等が挙げられる。
入力インタフェース105には、キーボード105aとマウス105bとが接続されている。入力インタフェース105は、キーボード105aやマウス105bから送られてくる信号をCPU101に送信する。なお、マウス105bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等が挙げられる。
光学ドライブ装置106は、レーザ光等を利用して、光ディスク200に記録されたデータの読み取りを行う。光ディスク200は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク200には、Blu−Ray(登録商標)、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等が挙げられる。
通信インタフェース107は、ネットワーク50に接続されている。通信インタフェース107は、ネットワーク50を介して、クライアント装置20との間でデータの送受信を行う。
クライアント装置20は、CPU201によって装置全体が制御されている。CPU201には、バス207を介してRAM202、Flashメモリ203、グラフィック処理装置204、入力インタフェース205および通信インタフェース206が接続されている。
RAM202、グラフィック処理装置204、入力インタフェース205および通信インタフェース206の機能は、それぞれRAM102、グラフィック処理装置104、入力インタフェース105および通信インタフェース107と同様である。
また、クライアント装置20は、ハードディスクドライブ103を搭載せず、Flashメモリ203を有している。
表示デバイス204aは、各種の情報、例えばサーバ装置10から送信されたデスクトップ画面等を表示するデバイスであり、一例としては、モニタ(monitor)、ディスプレイ(display)やタッチパネル(touch panel)等が挙げられる。図2では、携帯端末型のクライアント装置20を例示しており、表示デバイス204aは、クライアント装置20に搭載されている。
入力デバイス205aは、ユーザの指示入力を受け付けるデバイスであり、一例としては、キーボード(keyboard)やマウス等が挙げられる。なお、表示デバイス204aも、マウスと協働して、ポインティングデバイス(pointing device)機能を実現する。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
図3は、第2の実施の形態のサーバ装置およびクライアント装置の機能を示すブロック図である。
サーバ装置10には、サーバ向けのリモート画面制御用のアプリケーション(Application)がインストール(Install)またはプリインストール(Preinstall)される。なお、以下では、サーバ向けのリモート画面制御用のアプリケーションを「サーバ側リモート画面制御用アプリ」と呼ぶ。
このサーバ側リモート画面制御用アプリは、基本機能として、リモート画面制御サービスを提供する機能を有する。一例としては、サーバ側リモート画面制御用アプリは、クライアント装置20における操作情報を取得した上でその操作により要求された処理を自装置で動作するアプリケーションに実行させる。そして、サーバ側リモート画面制御用アプリは、アプリケーションにより実行された処理結果を表示する画面を生成した上で、その画面を、ネットワーク50を介してクライアント装置20に送信する。このとき、サーバ側リモート画面制御用アプリは、今回の画面生成の前にクライアント装置20で表示させていたビットマップ(bitmap)画像との間で変更があった部分の画素(pixel)が集まった領域、すなわち更新矩形の画像を送信する。なお、以下では、一例として、更新部分の画像が矩形の画像で形成される場合を説明するが、開示の装置は更新部分の画像が矩形以外の形状で形成される場合にも適用できる。
このほか、サーバ側リモート画面制御用アプリは、フレーム(frame)間で動きが大きい部分のデータを動画向けの圧縮方式のデータに圧縮してクライアント装置20へ送信する機能も有する。一例としては、サーバ側リモート画面制御用アプリは、アプリケーションにより実行された処理結果から生成した画面を複数の領域に分割し、分割した領域毎に更新の頻度を監視する。このとき、サーバ側リモート画面制御用アプリは、更新の頻度が閾値を超えた領域、すなわち高頻度更新領域の領域識別位置データをクライアント装置20へ送信する。これとともに、サーバ側リモート画面制御用アプリは、高頻度更新領域のビットマップ画像をMPEG−2やMPEG−4等のMPEG方式のデータにエンコード(encode)した上でクライアント装置20へ送信する。なお、ここでは、MPEG(Moving Picture Experts Group)方式のデータへ圧縮する場合を例示したが、これに限定されない。例えば、動画向けの圧縮方式であれば任意の圧縮符号化方式、例えばMotion−JPEG(Joint Photographic Experts Group)等を採用できる。
クライアント装置20には、クライアント向けのリモート画面制御用アプリケーションがインストールまたはプリインストールされる。なお、以下では、クライアント向けのリモート画面制御用のアプリケーションを「クライアント側リモート画面制御用アプリ」と言う。
このクライアント側リモート画面制御用アプリは、入力デバイス205aを介して受け付けた操作情報をサーバ装置10へ通知する機能を有する。一例としては、クライアント側リモート画面制御用アプリは、マウスの左右のクリック(click)を始め、ダブルクリック(double click)やドラッグ(drag)、マウスの移動操作を介して得られたマウスカーソルの移動量等を操作情報として通知する。他の一例としては、マウスホイールの回転量、キーボードのうち押下されたキーの種別等も操作情報として通知する。
さらに、クライアント側リモート画面制御用アプリは、サーバ装置10から受信した画像をクライアント装置20が有する表示デバイスに表示させる機能を有する。一例としては、クライアント側リモート画面制御用アプリは、サーバ装置10から更新矩形のビットマップ画像を受信した場合には、更新矩形の画像を前回のビットマップ画像から変更のあった位置に合わせて表示する。
他の一例としては、クライアント側リモート画面制御用アプリは、サーバ装置10から高頻度更新領域の領域識別位置データを受信した場合には、その領域識別位置データに含まれる位置に対応する表示画面上の領域をビットマップ画像の表示対象外のブランク(blank)領域とする。その上で、クライアント側リモート画面制御用アプリは、動画向けの圧縮方式のデータを受信した場合にそのデータをデコード(decode)した上でブランク領域に表示する。
以下、サーバ装置10およびクライアント装置20が有する各機能を詳しく説明する。
サーバ装置10は、OS実行制御部11aと、アプリ実行制御部11bと、グラフィックドライバ(Graphic Driver)12と、フレームバッファ(Frame Buffer)13と、リモート画面制御部14とを有している。なお、図3の例では、図3に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや表示デバイス等の機能を有するものとする。
OS実行制御部11aは、OSの実行を制御する。例えば、OS実行制御部11aは、後述する操作情報取得部14aにより取得された操作情報からアプリケーションの起動指示やアプリケーションに対するコマンドを検出する。例えばOS実行制御部11aは、アプリケーションのアイコン(Icon)上でダブルクリックを検出した場合に、そのアイコンに対応するアプリケーションの起動をアプリ実行制御部11bへ指示する。他の例としては、起動中のアプリケーションの操作画面、いわゆるウィンドウ(Window)上でコマンド(Command)の実行を要求する操作を検出した場合に、OS実行制御部11aは、そのコマンドの実行をアプリ実行制御部11bへ指示する。
アプリ実行制御部11bは、OS実行制御部11aの指示に基づいて、アプリケーションの実行を制御する。例えば、アプリ実行制御部11bは、OS実行制御部11aによりアプリケーションの起動が指示された場合や起動中のアプリケーションにコマンドの実行が指示された場合にアプリケーションを動作させる。そして、アプリ実行制御部11bは、アプリケーションを実行することにより得られた処理結果の表示用イメージ(Image)のフレームバッファ13への描画をグラフィックドライバ12に要求する。このようにグラフィックドライバ12へ描画を要求する場合には、アプリ実行制御部11bは、表示用イメージとともに表示用イメージの描画位置をグラフィックドライバ12に通知する。なお、アプリ実行制御部11bが実行するアプリケーションは、プリインストールされたものであってもよく、サーバ装置10の出荷後にインストールされたものであってもかまわない。また、JAVA(登録商標)等のネットワーク環境で動作するアプリケーションであってもよい。
グラフィックドライバ12は、フレームバッファ13に対する描画処理を実行する。例えばグラフィックドライバ12は、アプリ実行制御部11bからの描画要求を受け付けた場合に、アプリケーションの処理結果の表示用イメージをアプリケーションにより指定されたフレームバッファ13上の描画位置ヘビットマップ形式で描画する。なお、ここでは、アプリケーションにより描画要求を受け付ける場合を説明したが、OS実行制御部11aからの描画要求を受け付けることもできる。一例としては、グラフィックドライバ12は、OS実行制御部11aからマウスカーソルの描画要求を受け付けた場合に、マウスカーソルの表示用イメージをOSにより指定されたフレームバッファ13上の描画位置に例えばビットマップ形式で描画する。
フレームバッファ13は、グラフィックドライバ12により描画された画像データを記憶する。かかるフレームバッファ13の一態様としては、VRAM(Video Random Access Memory)を始めとするRAM、ROM(Read Only Memory)やフラッシュメモリ(Flash Memory)等の半導体メモリ素子が挙げられる。なお、フレームバッファ13は、ハードディスクドライブ、光ディスク等の記憶装置を採用することとしてもかまわない。
リモート画面制御部14は、サーバ側リモート画面制御用アプリを通じて、リモート画面制御サービスをクライアント装置20へ提供する。
このリモート画面制御部14は、操作情報取得部14aと、画面生成部14bと、更新頻度判別部14cと、更新領域識別部14dと、領域管理データ格納部14eと、エンコーダ141f、142f、143fと、第1の送信部14gと、第2の送信部14hと移動検出部14iと、前回領域管理データ格納部14jとを有する。なお、本実施の形態では、3つのエンコーダ141f、142f、143fを有する場合を例示するが、エンコーダの数は3つに限定されない。
操作情報取得部14aは、クライアント装置20から操作情報を取得する。かかる操作情報の一例としては、マウスの左右のクリックを始め、ダブルクリックやドラッグ、マウスの移動操作を介して得られたマウスカーソルの移動量等が挙げられる。操作情報の他の一例としては、マウスホイールの回転量、キーボードのうち押下されたキーの種別等も挙げられる。
画面生成部14bは、クライアント装置20の表示デバイス204aに表示させる画面の画像データを生成する。一例としては、画面生成部14bは、グラフィックドライバ12によりフレームバッファ13に画像データが格納される度に、次のような処理を起動する。すなわち、画面生成部14bは、前回のフレーム生成時にクライアント装置20で表示させていたデスクトップ画面を構成する画像データと、今回のフレーム生成時にフレームバッファ13へ書き込まれた画像データとを比較する。そして、画面生成部14bは、前回のフレームから変更があった部分の画素をつなげ合わせた上で矩形に整形した更新矩形の画像を生成する。
更新頻度判別部14cは、フレームバッファ13に記憶された画像データの画像を分割した領域毎にフレーム間の更新の頻度を判別する。一例としては、更新頻度判別部14cは、画面生成部14bにより生成された更新矩形を図示しない作業用の内部メモリへ所定の期間にわたって記憶する。
このとき、更新頻度判別部14cは、更新矩形の位置および大きさを特定可能な属性情報を記憶する。この属性情報は、例えば更新矩形の左上の頂点の座標と更新矩形の幅および高さの情報を含んでいる。かかる更新矩形を記憶する期間は、高頻度更新領域を設定する精度と相関関係があり、期間を長くするほど高頻度更新領域の誤検出が低減される。なお、ここでは、一例として、1秒間にわたって更新矩形の画像を記憶する場合を想定する。このとき、更新頻度判別部14cは、更新矩形の画像を記憶してから所定の期間が経過した場合に、表示デバイス204aに表示させる画面をメッシュ(mesh)状に分割したマップ(map)を用いて、デスクトップ画面の更新頻度を判別する。
図4は、表示デバイスに表示させる画面の分割要領を説明する図である。
図4は、更新頻度判別用のマップ30を示している。図4の円で囲った部分は、メッシュ31の詳細を示している。図4では、更新頻度判別部14cがマップ30を占める画素のうち8画素×8画素のブロックを1つのメッシュ31として分割する場合を想定している。このため、1つのメッシュ31には64個の画素32が含まれている。
ここで、更新頻度判別部14cは、作業用の内部メモリに蓄積した更新矩形の位置および大きさにしたがって更新矩形の画像を更新頻度判別用のマップに順次展開する。そして、更新頻度判別部14cは、更新矩形をマップに展開する度に、マップ上で更新矩形と重なり合った部分のメッシュの更新回数を累積して加算する。このとき、更新頻度判別部14cは、マップ上に展開された更新矩形がメッシュに含まれる画素との間で所定数にわたって重なり合った場合に、そのメッシュの更新回数を1つ加算する。なお、ここでは、更新矩形がメッシュに含まれる画素と1つでも重なり合った場合に、メッシュの更新回数を加算する場合を想定して説明を行う。
図5は、表示デバイスに表示させる画面の更新頻度の判別要領を説明する図である。
ここで、図5(a)に示す更新頻度判別用のマップ30の9つのメッシュ31、31、・・・それぞれに図示した数字は、更新矩形31aが展開された時点におけるメッシュ31の更新回数を示す。また、図5(b)マップ30のメッシュ31内に図示した数字は、更新矩形31bが展開された時点におけるメッシュ31の更新回数を示す。さらに、図5(c)のマップ30のメッシュ31内に図示した数字は、作業用の内部メモリに蓄積した更新矩形が全て展開された時点におけるメッシュ31の更新回数を示す。なお、図5(a)〜図5(c)において数字が図示されていないメッシュ31は、更新回数がゼロであるものとする。
図5(a)に示すように、更新矩形31aがマップ30に展開された場合には、網掛け部分のメッシュ31が更新矩形31aと重なり合う。このため、更新頻度判別部14cは、網掛け部分のメッシュ31の更新回数を1つずつ加算する。この場合には、各メッシュ31の更新回数はゼロであるため、網掛け部分の更新回数は0から1に加算される。
さらに、図5(b)に示すように、更新矩形31bがマップ30に展開された場合には、網掛け部分のメッシュ31が更新矩形31bと重なり合う。このため、更新頻度判別部14cは、網掛け部分のメッシュ31の更新回数を1つずつ加算する。この場合には、各メッシュの更新回数は1であるため、網掛け部分の更新回数は1から2に加算される。
図5(c)は、全ての更新矩形がマップに展開されたマップ30の一例を示している。
そして、更新頻度判別部14cは、作業用の内部メモリに蓄積した更新矩形を全てマップ30に展開し終えた場合に、所定の期間における更新回数、すなわち更新頻度が閾値を超えるメッシュ31を取得する。図5(c)の例で言えば、閾値を「4」としたとき、網掛け部分のメッシュ31が取得されることになる。かかる閾値は、その値を高く設定するほどデスクトップ画面で頻繁に更新されている部分を抽出でき、その部分をエンコーダ141f〜143fによりエンコードすることができる。なお、上記の「閾値」は、サーバ側リモート画面制御用アプリの開発者が段階的に設定した値をエンドユーザに選択させたり、また、エンドユーザが値を直接設定することができる。
再び図3に戻って説明する。
更新領域識別部14dは、クライアント装置20に表示されるデスクトップ画面のうち高頻度で更新される領域を高頻度更新領域に設定する。
更新領域識別部14dは、更新頻度判別部14cにより更新回数が閾値を超えるメッシュが取得された場合に、隣接するメッシュ同士を連結したメッシュ連結体を矩形に補正する。例えば更新領域識別部14dは、メッシュ連結体に補間する補間領域を導出した上でメッシュ連結体に補間領域を足し合わせることによりメッシュ連結体を矩形に補正する。この補間領域の導出には、メッシュの連結体が最小の補間で矩形に整形される領域を導出するアルゴリズム(algorithm)が適用される。
図6は、メッシュ連結体の補正要領を説明する図である。
図6に示すように、更新領域識別部14dは、補正前のメッシュ連結体51に補間領域52を足し合わせることにより、メッシュ連結体51を矩形53に補正する。この段階では、後述する矩形の合成が完了しておらず、矩形53が未だ高頻度更新領域と確定していないので、補正後の矩形53を「高頻度更新領域の候補」と呼ぶこととする。
更新領域識別部14dは、高頻度更新領域の候補が複数存在する場合には、複数の高頻度更新領域の候補の距離が所定の値以下である高頻度更新領域の候補同士を含む矩形に合成する。ここで言う高頻度更新領域の候補の距離とは、補正後の矩形の最短距離を指すものとする。一例としては、更新領域識別部14dは、高頻度更新領域の候補を合成するにあたって各候補の問を埋める補間領域を導出した上で高頻度更新領域の候補に補間領域を足し合わせることにより、高頻度更新領域の候補同士を含む矩形に合成する。この補間領域の導出には、高頻度更新領域の候補の間が最小の補間で合成体に整形される領域を導出するアルゴリズム(algorithm)が適用される。
図7は、高頻度更新領域の候補の合成要領を説明する図である。
図7に示すように、更新領域識別部14dは、高頻度更新領域の候補61aおよび高頻度更新領域の候補61bに補間領域62を足し合わせることにより、高頻度更新領域の候補61aおよび高頻度更新領域の候補61bを含む合成体63を作成する。そして、更新領域識別部14dは、このようにして得た合成体63を高頻度更新領域に設定する。
このようにして高頻度更新領域を設定すると、更新領域識別部14dは、識別した高頻度更新領域の位置および大きさを識別する情報と高頻度更新領域を識別するID(領域ID)とを含む領域位置識別データをクライアント装置20へ送信する。これにより、クライアント装置20で表示されるデスクトップ画面のビットマップデータのうち高頻度更新領域に対応する部分をブランク表示させる。その後、更新領域識別部14dは、作業用の内部メモリにマッピングされたメッシュの更新回数をクリア(clear)する。なお、更新領域識別部14dは、領域位置識別データにより識別された位置に表示する画像をエンコードするエンコーダ(動画圧縮コーデック)141f、142f、143fを識別するIDを領域位置識別データに加えた領域管理データを領域管理データ格納部14eに格納する。なお、領域管理データ格納部14eは、CPUのキャッシュメモリ等により実現することができる。
図8(a)〜図8(c)は、領域位置識別データを説明する図である。
図8(a)に示すように、フレームバッファ13に描画されたデスクトップ画面70Aには、ブラウザ(browser)画面71および動画再生画面72が含まれる。このデスクトップ画面70Aから経時的な変化を追った場合には、図8(b)の画面70Bに示すように、静止画であるブラウザ画面71の更新矩形は検出されず、マウスの移動軌跡73およびアプリケーションによる動画再生領域74に関する更新矩形が検出される。
このうち、動画再生領域74で更新回数が閾値を超えるメッシュ、すなわち図示の網掛け部分が更新領域識別部14dにより識別されたものとする。この場合には、更新領域識別部14dは、図8(c)の画面70Cに示す網掛け部分の高頻度更新領域の左上の頂点の座標(x,y)、高頻度更新領域の幅w(width)、高さh(height)を含む領域位置識別データにエンコーダを識別するIDを加えた領域管理データを作成する。そして、作成した領域管理データを領域管理データ格納部14eに格納する。
さらに、更新領域識別部14dは、作成した領域管理データを移動検出部14iに送る。
また、更新領域識別部14dは、必要に応じて領域管理データをクライアント装置20に送信する。なお、ここでは、高頻度更新領域の位置を特定する点として左上の頂点の座標を採用する場合を説明したが、他の頂点を採用することとしてもかまわない。
また、高頻度更新領域の位置を特定することができる点であれば、頂点以外の任意の点、例えば重心等を採用できる。また、ここでは、画面上の左上を座標軸XYの原点とする場合を説明したが、画面内および画面外の任意の点を原点とすることができる。
図9は、領域管理データ格納部に格納される領域管理データの内容を説明する図である。
本実施の形態では、領域管理データ格納部14eには、情報がテーブル化して記憶されている。領域管理テーブル141には、領域ID、x、y、w、h、エンコーダの欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
領域IDの欄には、領域を識別するIDが格納される。
xの欄には、高頻度更新領域の左上の頂点のx座標が格納される。
yの欄には、高頻度更新領域の左上の頂点のy座標が格納される。
wの欄には、高頻度更新領域の幅の値(単位:ピクセル)が格納される。
hの欄には、高頻度更新領域の高さの値(単位:ピクセル)が格納される。
エンコーダの欄には、x、y、w、hの欄に格納された情報により特定される高頻度更新領域に表示させる画像をエンコードするエンコーダを識別するIDが格納される。
ところで、更新領域識別部14dは、画面生成部14bにより更新矩形が生成される度に、その更新矩形が、作業用の内部メモリに記憶された高頻度更新領域、すなわち第2の送信部14hにより動画として送信中の領域に含まれるか否かを判定する。このとき、更新領域識別部14dは、更新矩形が高頻度更新領域に含まれない場合には、更新矩形の画像および領域管理データを第1の送信部14gに送信させる。一方、更新領域識別部14dは、更新矩形が高頻度更新領域に含まれる場合には、原則として、第1の送信部14gに更新矩形の画像および領域管理データを送信させない。なお、更新矩形がOS実行制御部11aにより描画されたマウスのものである場合には、マウスに関する更新矩形の画像および領域管理データを例外的に送信させることにしてもよい。
また、更新領域識別部14dは、フレームバッファ13にビットマップデータが描画される度に、領域管理データ格納部14eに高頻度更新領域の領域管理データが登録されているか否かを判定する。そして、更新領域識別部14dは、高頻度更新領域の領域管理データが登録されている場合に、フレームバッファ13に描画されたビットマップデータのうち高頻度更新領域に対応する部分のビットマップ画像を切り出す。そして、更新領域識別部14dは、切り出したビットマップ画像をエンコーダ141f、142f、143fのいずれかへ出力する。
エンコーダ141f、142f、143fは、それぞれ更新領域識別部14dから入力される高頻度更新領域のビットマップ画像をエンコードする。例えば、エンコーダ141f、142f、143fは、それぞれ更新領域識別部14dから入力された高頻度更新領域のビットマップ画像がストリーム(Stream)を形成可能なフレーム数に到達した段階で高頻度更新領域のビットマップ画像をエンコードする。なお、エンコード方式の一態様としては、MPEG−2やMPEG−4等のMPEG方式やMotion−JPEG方式が挙げられる。
第1の送信部14gは、画面生成部14bにより生成された更新矩形の画像および領域管理データをクライアント装置20へ送信する。この更新矩形を送信する場合の通信プロトコルには、一例としてVNCにおけるRFBプロトコルが採用される。
第2の送信部14hは、エンコーダ141f、142f、143fによりエンコードされた高頻度更新領域のエンコード画像群(以下、「動画ストリーム」と言う)を対応する領域管理データとともにクライアント装置20へ送信する。この動画ストリームを送信する場合の通信プロトコルには、一例として、RTP(Realtime Transport Protocol)を採用できる。
移動検出部14iは、更新領域識別部14dから受け取った領域管理データを前回領域管理データ格納部14jに一時的に格納する。以下、移動検出部14iが一時的に格納する領域管理データを「前回領域管理データ」と言う。その後、移動検出部14iは、領域管理データを更新領域識別部14dから受け取ると、前回領域管理データ格納部14jに格納された前回領域管理データと、今回受け取った領域管理データとを比較する。そして、移動検出部14iは、今回受け取った領域管理データにより特定される高頻度更新領域に対し、クライアント装置20の表示デバイス204aに現在表示している動画ストリームを継続して利用するか、それとも別個に動画ストリームを生成するか否かを判断する。そして、現在表示している動画ストリームを今回の領域位置識別データにより特定される高頻度更新領域に移動する処理を行った方が効率的にデータの通信が可能となる組み合わせを検出する。そして、組み合わせを検出した場合、移動検出部14iは、現在表示している動画ストリームを継続して利用させる情報を前回領域管理データ格納部14jに格納されている前回領域管理データに追加する。
図10は、前回領域管理データ格納部に格納される前回領域管理データの内容を説明する図である。
本実施の形態では、前回領域管理データ格納部14jには、情報がテーブル化して記憶されている。前回領域管理テーブル142には、領域ID、x、y、w、h、エンコーダ、継続利用先領域ID、nxおよびnyの欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
領域IDの欄には、領域を識別するIDが格納される。
xの欄には、高頻度更新領域の左上の頂点のx座標が格納される。
yの欄には、高頻度更新領域の左上の頂点のy座標が格納される。
wの欄には、高頻度更新領域の幅の値が格納される。
hの欄には、高頻度更新領域の高さの値が格納される。
エンコーダの欄には、x、y、w、hの欄に格納された情報により特定される高頻度更新領域に表示させる動画ストリームをエンコードするエンコーダを識別するIDが格納される。
継続利用先領域IDの欄には、エンコーダを継続利用させる領域を識別するIDが格納される。新しく設定された高頻度更新領域が、エンコーダを継続利用する予定がない場合には、「なし」が格納される。
nxの欄には、移動先の高頻度更新領域の左上の頂点のx座標が格納される。
nyの欄には、移動先の高頻度更新領域の左上の頂点のy座標が格納される。
例えば、図9の1行目のデータは、領域を識別するIDとして1が割り当てられた座標(0,0)の位置から幅200ピクセル、高さ200ピクセルの領域が高頻度更新領域として登録されており、エンコーダ141fを識別する情報としてID:0x012fafaが割り当てられたことを示している。また、新しく設定された高頻度更新領域の中で領域ID=1である高頻度更新領域にエンコーダを継続して利用させることが決まっていることを示しており、その際表示位置が(50,50)の位置に変わることを示している。2番目と3番目のデータも同様に領域が設定されたことを示しているが、2番目のデータは新しく設定された高頻度更新領域ではエンコーダを継続利用する予定がなく、エンコーダを破棄する必要があることを示している。
図11は、移動検出部の動作を説明する図である。
表示デバイス204aには、領域A1と領域B1と領域C1とが図示されている。
領域A1は、前回領域位置識別データにより特定される高頻度更新領域である。領域B1は、今回新たに設定された高頻度更新領域の領域位置識別データにより特定される領域である。領域C1は、領域A1のうち領域B1に重複しない領域を抽出し、領域B1が領域A1に全て含まれるように領域A1を最小限移動させたときの領域である。なお、領域C1は、破線で表現されている。
以下、前回領域位置識別データにより特定される高頻度更新領域を「前回の高頻度更新領域」と言い、今回新たに設定された高頻度更新領域を「今回の高頻度更新領域」と言う。また、領域A1の表示面積をSa、領域B1の表示面積をSb、領域A1と領域C1の重複領域(斜線であらわされた領域)の面積をSxとする。
ここで、領域A1に割り当てられている動画ストリームとは別個に、領域B1に表示する動画ストリームを作成すると、新たに作成した動画ストリームの圧縮データ量は、継続利用する動画ストリームの圧縮データ量よりも大きくなる場合がある。例えば、面積Sxが大きい場合、後述する式(1)により、領域A1に割り当てられていた動画ストリームを領域B1に割り当てた方が、別個に動画ストリームを作成するよりデータ量が減少する場合がある。
両者の関係を考慮すると、別個に動画ストリームを生成する代わりに、前回の高頻度更新領域に現在割り当てられている動画ストリームを今回の高頻度更新領域に割り当てる方がデータ送信量を抑制できる可能性が高まる組み合わせは、以下の2パターンが考えられる。
(パターン1)Sa>Sbかつ次式(1)でエンコード回数nが1以上
(パターン2)Sa=SbかつSx>0
言い換えると、パターン1は、今回の動画ストリームの表示面積が前回の動画ストリームの表示面積より小さく、かつ、前回の高頻度更新領域に割り当てられていた動画ストリームのエンコードを少なくとも1回行った時点では、今回の高頻度更新領域の動画ストリームを新たに生成したときのデータ量より小さくなる場合である。
また、パターン2は、前回の動画ストリームの表示面積と今回の動画ストリームの表示面積とが同じ大きさで、かつ、前回の動画ストリームの表示位置と今回の動画ストリームの表示位置とに重複する部位が存在する場合である。
ここで、エンコード回数nは、以下の式(1)から算出することができる。
n=(Sb+Sx−Sa)・(EI−EP)/(Sa−Sb)EP・・・(1)
ここで、EIは、高頻度更新領域を圧縮する動画コーデックのフレーム内圧縮の圧縮率(例えば1/10)を示している。EPは、フレーム間圧縮の圧縮率(例:1/100)を示している。
以下、式(1)の作成方法を説明する。
高頻度更新領域を継続利用したときに、n回エンコードした場合のデータ量は、次式(2)で表される。
xP+(Sa−Sx)EI+(n−1)SaP・・・(2)
ここで、SxP+(Sa−Sx)EIは、1枚目のフレームのデータ量を示し、(n−1)SaPは、2枚目以降のフレームのデータ量を示している。
また、高頻度更新領域を継続利用しなかったときにn回エンコードした場合のデータ量は、次式(3)で表される。
bI+(n−1)SbP・・・(3)
ここでSbIは、1枚目のフレームのデータ量を示し、(n−1)SbPは、2枚目以降のフレームのデータ量を示している。
従って、式(2)と式(3)のデータ量が等しくなるnが式(1)のnとなるため、式(2)と式(3)を等号で結び、nについて整理すると式(1)が得られる。
ここで、式(1)に示すnは、領域Bを領域Aの移動として扱ってnフレームの画面を送信した場合のデータ量と、領域Bを領域Aの移動として取り扱わずにnフレームの画面を送信した場合のデータ量が等しくなるフレーム数として算出している。
図12は、式(2)と式(3)との関係を示す図である。
ここで算出したn以下のフレーム数の画面を送信する場合は、領域Bを領域Aの移動として扱った方が、データ量が少なくなると予想される。例えばエンコード回数nが1以上(例えば「2」)であれば、2回エンコードしたときに式(2)と式(3)との値が同じになる。すなわち、少なくとも1回エンコードした時点では、式(2)データ量の方が式(3)のデータ量よりも小さくなるので、現在割り当てられている動画ストリームを今回の高頻度更新領域に割り当てる方が、データ量が小さいと判断することができる。
また、本実施の形態では、フレーム内圧縮の圧縮率EIや、フレーム間圧縮の圧縮率EPを固定で予めサーバ装置20が保持しておくことを想定している。しかし、これらの圧縮率は例えば前回までのフレームを実際に圧縮したことで算出した圧縮率を用いるようにしてもよい。
また、本実施の形態では、パターン1にてnが1以上であることを調べて領域A1を継続利用するかどうか決定しているが、1より大きな値であってもよい。例えば、nが5以上であることを調べて領域A1を継続利用するようにしてもよい。この場合、継続利用の条件が厳しくなり継続利用されなくなる場合が出てくるが、継続利用することでデータ量が増えてしまう可能性は低減させることができる。
なお、OS実行制御部11a、アプリ実行制御部11b、グラフィックドライバ12、リモート画面制御部14には、各種の集積回路や電子回路を採用できる。また、リモート画面制御部14に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等が挙げられる。また、電子回路としては、CPUやMPU(Micro Processing Unit)等が挙げられる。
再び図3に戻ってクライアント装置の機能を説明する。
<クライアント装置の機能>
クライアント装置20は、リモート画面制御部21を有している。なお、図3の例では、図3に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば音声出力部等の機能を有するものとする。
リモート画面制御部21は、クライアント側リモート画面制御用アプリを通じて、サーバ装置10によるリモート画面制御サービスの提供を受ける。このリモート画面制御部21は、操作情報通知部21aと、第1の受信部21bと、第1の表示制御部21cと、第2の受信部21dと、デコーダ211e、212e、213eと、第2の表示制御部21fと、表示位置変更検出部21gと、領域管理データ格納部21hとを有している。
操作情報通知部21aは、入力デバイス205aによる操作情報をサーバ装置10に通知する。例えば操作情報通知部21aは、マウスの左右のクリックを始め、ダブルクリックやドラッグ、マウスの移動操作を介して得られたマウスカーソルの移動量等を操作情報として通知する。他の例としては、操作情報通知部21aは、マウスホイールの回転量、キーボードのうち押下されたキーの種別等も操作情報として通知する。
第1の受信部21bは、サーバ装置10の第1の送信部14gにより送信された更新矩形の画像および属性情報を受信する。また、第1の受信部21bは、サーバ装置10の更新領域識別部14dにより送信された高頻度更新領域の領域管理データも受信する。
第1の表示制御部21cは、第1の受信部21bにより受信された更新矩形の画像を表示デバイス204aに表示させる。例えば第1の表示制御部21cは、第1の受信部21bにより受信された更新矩形の領域管理データに含まれる位置および大きさに対応する表示デバイス204aの画面領域に更新矩形のビットマップ画像を表示させる。
また、第1の表示制御部21cは、第1の受信部21bにより高頻度更新領域の領域管理データが受信された場合には、次のような処理を行う。すなわち、第1の表示制御部21cは、高頻度更新領域の領域管理データに含まれる高頻度更新領域の位置および大きさに対応する表示デバイス204aの画面領域をビットマップ画像の表示対象外のブランク領域とする。
第2の受信部21dは、サーバ装置10の第2の送信部14hにより送信された高頻度更新領域の動画ストリームと、動画ストリームとともに送信される領域管理データを受信する。
デコーダ211e、212e、213eは、それぞれ第2の受信部21dにより受信された高頻度更新領域の動画ストリームをデコードする。なお、デコーダ211e、212e、213eには、サーバ装置10に搭載されるエンコード方式に適合するデコード方式のデコーダが搭載される。なお、本実施の形態では、3つのデコーダ211e、212e、213eを有する場合を例示するが、デコーダの数は3つに限定されない。
第2の表示制御部21fは、第1の受信部21bにより受信した高頻度更新領域の領域管理データに基づき、デコーダ211e、212e、213eのいずれかによりデコードされた高頻度更新領域のデコード画像を表示デバイス204aに表示させる。例えば第2の表示制御部21fは、高頻度更新領域の領域管理データに含まれる高頻度更新領域の位置および大きさに対応する表示デバイス204aの画面領域に高頻度更新領域のデコード画像を表示させる。
表示位置変更検出部21gは、第2の受信部21dが動画ストリームとともに領域管理データを取得すると、取得した領域管理データに含まれる領域IDに一致する領域IDが領域管理データ格納部21hに格納されている領域管理データに存在するか否かを判断する。
そして、存在しない場合は、取得した領域管理データを領域管理データ格納部21hに格納する。また、存在する場合は、領域管理データ格納部21hに格納されている領域管理データと比較し、領域IDとサイズが同じであるのにかかわらず位置だけが異なる画像データを検出することで、高頻度更新領域の移動を検出し、領域管理データ内の位置情報を変更する。
図13は、第2の実施の形態のクライアント装置が備える領域管理データ格納部に格納される領域管理データの一例を示す図である。
本実施の形態では、領域管理データ格納部21hは、情報をテーブル化して記憶している。
領域管理テーブル231には、領域ID、x、y、w、h、デコーダの欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
領域IDの欄には、領域を識別するIDが格納される。
xの欄には、取得した領域管理データに含まれる高頻度更新領域のx座標が格納される。yの欄には、取得した領域管理データに含まれる高頻度更新領域のy座標が格納される。wの欄には、取得した領域管理データに含まれる高頻度更新領域の幅が格納される。
hの欄には、取得した領域管理データに含まれる高頻度更新領域の高さが格納される。
デコーダの欄には、取得した領域管理データに含まれるエンコーダ141f、142f、143fを識別するIDにより特定される動画ストリームをデコードするデコーダ(動画伸長コーデック)を識別するIDが格納される。
図示の例では、1番目のデータは、領域を識別するIDとしてID=1が割り当てられた座標(0,0)の位置から幅200ピクセル、高さ200ピクセルの領域が高頻度更新領域として登録されており、デコーダ231eを識別するID:0x012fafaが割り当てられたことを示している。2番目と3番目のデータも同様に登録されたことを示している。
なお、リモート画面制御部21には、各種の集積回路や電子回路を採用できる。また、リモート画面制御部21に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ASICやFPGA等が挙げられる。また、電子回路としては、CPUやMPU等が挙げられる。
次に、サーバ装置10の全体処理を説明する。
図14は、サーバ装置の全体処理を示すフローチャートである。
この画像送信処理は、サーバ装置10により実行される処理であり、フレームバッファ13にビットマップデータが描画された場合に起動する。
[ステップS1] 画面生成部14bは、フレームバッファ13にビットマップデータが描画されると、フレームバッファ13のデータを作業用の内部メモリに保存する。その後、ステップS2に遷移する。
[ステップS2] 画面生成部14bは、前回のフレームから変更があった部分の画素をつなげ合わせた上で矩形に整形した更新矩形の画像を生成する。その後、ステップS3に遷移する。
[ステップS3] 更新頻度判別部14cは、画面生成部14bにより生成された更新矩形を図示しない作業用の内部メモリへ蓄積する。このとき、更新矩形の蓄積を開始してから所定の期間が経過しているか否かを判断する。更新矩形の蓄積を開始してから所定の期間が経過していない場合(ステップS3のNo)、ステップS11に遷移する。更新矩形の蓄積を開始してから所定の期間が経過した場合(ステップS3のYes)、ステップS4に遷移する。
[ステップS4] 更新頻度判別部14cは、作業用の内部メモリに蓄積した更新矩形の位置および大きさにしたがって更新矩形の画像を更新頻度判別用のマップ30に順次展開する。その後、ステップS5に遷移する。
[ステップS5] 更新頻度判別部14cは、マップ30に含まれるメッシュ31のうち更新頻度が閾値を超えるメッシュ31を取得する。その後、ステップS6に遷移する。
[ステップS6] 更新領域識別部14dは、更新頻度判別部14cが取得したメッシュ31のうち、更新頻度が閾値を超えるメッシュ31が存在するか否かを判断する。更新頻度が閾値を超えるメッシュ31が存在しない場合(ステップS6のNo)、高頻度更新領域がデスクトップ画面に存在しないので、ステップS11に遷移する。一方、更新頻度が閾値を超えるメッシュ31が存在する場合(ステップS6のYes)、ステップS7に遷移する。
[ステップS7] 更新領域識別部14dは、隣接するメッシュ31同士を連結したメッシュ連結体を矩形に補正する。その後、ステップS8に遷移する。
[ステップS8] 更新領域識別部14dは、補正後の矩形、すなわち高頻度更新領域の候補が複数存在か否かを判断する。高頻度更新領域の候補が複数存在する場合(ステップS8のYes)、ステップS9に遷移する。高頻度更新領域の候補が複数存在しない場合(ステップS8のNo)、ステップS10に遷移する。
[ステップS9] 更新領域識別部14dは、複数の高頻度更新領域の候補の距離が所定の値以下である高頻度更新領域の候補同士を含む矩形に合成する。その後、ステップS10に遷移する。
[ステップS10] 移動検出部14iは、移動検出処理を実行する。なお、移動検出処理については後に詳述する。移動検出処理が終了すると、ステップS11に遷移する。
[ステップS11] 更新領域識別部14dは、画像送信処理を実行する。なお、画像送信処理については後に詳述する。継続利用中止処理が終了すると、全体処理を終了する。
以上で全体処理の説明を終了する。
次に、ステップS10の移動検出処理を詳しく説明する。
図15は、第2の実施の形態のサーバ装置が行う移動検出処理を示すフローチャートである。図15には更新領域識別部14dが新たに高頻度更新領域を設定した際に、前回の高頻度更新領域と比較し、高頻度更新領域の移動を検出する手順を図示してある。
[ステップS21] 更新領域識別部14dが、1つまたは複数の高頻度更新領域を新たに設定すると、ステップS22に遷移する。
[ステップS22] 更新領域識別部14dは、高頻度更新領域の領域管理データを移動検出部14iに送り、高頻度更新領域の移動を検出するよう依頼する。
移動検出部14iは、前回領域管理テーブル142に格納されている前回領域管理データの一覧と、今回新しく受け取った領域管理データとを比較する。そして、移動検出部14iは、位置とサイズ(幅と高さ)が一致する領域管理データを特定する。そして、特定した全ての前回領域管理データに対応する継続利用先領域IDの欄に、一致した領域管理データの領域IDを設定する。その後、ステップS23に遷移する。
[ステップS23] 移動検出部14iは、ステップS22で前回領域管理テーブル142の継続利用先領域IDの欄に領域IDが設定されなかった残りの前回領域管理データについて、継続利用するか否かを確認する。具体的には、移動検出部14iは、残りの前回領域管理データについてステップS25以降の処理が完了したか否か判断する。残りの全ての前回領域管理データについてステップS25以降の処理が完了した場合(ステップS23のYes)、ステップS24に遷移する。ステップS25以降の処理が完了していない(未確認の)前回領域管理データが存在する場合(ステップS23のNo)、ステップS25に遷移する。
[ステップS24] 移動検出部14iは、継続利用が決まった動画ストリームを今回の高頻度更新領域に反映させるデータ反映処理を行う。その後、移動検出処理を終了する。
[ステップS25] 移動検出部14iは、未確認の前回領域管理データを抽出する。その後、ステップS26に遷移する。
以下、ステップS25にて抽出した前回領域管理データにより特定される高頻度更新領域を「領域A」と言う。
[ステップS26] 移動検出部14iは、ステップS25で特定した領域Aに対して、継続利用が決まっていない今回の高頻度更新領域の全ての継続利用の確認が完了したか否か調べる。全ての継続利用の確認が完了している場合(ステップS26のYes)、ステップS23に遷移する。全ての継続利用の確認が完了していない場合(ステップS26のNo)、ステップS27に遷移する。
[ステップS27] 移動検出部14iは、ステップS22にて前回領域管理テーブル142の継続利用先領域IDに領域IDが設定されなかった今回の領域管理データを抽出する。その後、ステップS28に遷移する。以下、ステップS27にて抽出した今回の領域管理データにより特定される高頻度更新領域を「領域B」と言う。
[ステップS28] 移動検出部14iは、ステップS25で特定した領域Aの幅とS7で特定した領域Bの幅とを比較する。そして、移動検出部14iは、領域Aの幅は領域Bの幅以上か否かを判断する。領域Aの幅が領域Bの幅より小さい場合(ステップS28のNo)、ステップS26に戻る。領域Aの幅が、領域Bの幅より大きい、または、等しい場合(ステップS28のYes)、ステップS29に遷移する。
[ステップS29] 移動検出部14iは、領域Aと領域Bの高さを比較し、領域Aの高さは領域Bの高さ以上か否かを判断する。領域Aの高さが領域Bの高さより小さい場合(ステップS29のNo)、ステップS26に戻る。領域Aの高さが領域Bの高さより大きい、または、等しい場合(ステップS29のYes)ステップS30に遷移する。
[ステップS30] 移動検出部14iは、領域Aと領域Bの幅と高さが完全に一致するか否か判断する。領域Aと領域Bの幅と高さが完全に一致する場合(ステップS30のYes)、ステップS34に遷移する。領域Aと領域Bの幅と高さが完全に一致しない場合(ステップS30のNo)、ステップS31に遷移する。
[ステップS31] 移動検出部14iは、領域Aのうち領域Bと重複しない領域を抽出し、非重複領域がなくなるように領域Aを最小限移動させたときの領域Cを設定する。その後、ステップS32に遷移する。
[ステップS32] 移動検出部14iは、前述した式(1)からnを算出する。その後、ステップS33に遷移する。
[ステップS33] 移動検出部14iは、ステップS32で算出したnが1以上であるか否か判断する。nが1より小さい場合(ステップS33のNo)、ステップS26に戻る。nが1以上の場合(ステップS33のYes)、ステップS35に遷移する。
[ステップS34] 移動検出部14iは、領域Aと領域Bが重複するか否か判断する。領域Aと領域Bが重複しない場合(ステップS34のNo)、ステップS26に戻る。領域Aと領域Bが重複する場合(ステップS34のYes)、ステップS35に遷移する。
[ステップS35] 移動検出部14iは、領域Aに現在割り当てられている動画ストリームを領域Bに割り当てることを決定する。具体的には、領域Aの前回領域管理データに対応する継続利用先領域IDの欄に領域Bに対応する今回の領域管理データの領域IDを格納する。さらに、領域Aの前回領域管理データに対応するnx、nyの欄に領域Cの位置を特定する座標を格納する。その後、ステップS23に遷移する。
以上で移動検出処理の説明を終了する。
次に、ステップS24の管理データ反映処理を詳しく説明する。
図16は、第2の実施の形態のデータ反映処理を示すフローチャートである。
[ステップS24a] 移動検出部14iは、継続利用が決定した、すなわち、継続利用先領域ID、nxおよびnyの欄に設定された値を、領域管理テーブル141に反映させたか否かを判断する。具体的には、移動検出部14iは、前回領域管理テーブル142に格納されている全ての前回領域管理データについてステップS24b以降の処理を行ったか否かを判断する。全ての前回領域管理データについてステップS24b以降の処理が完了した場合(ステップS24aのYes)、ステップS24iに遷移する。ステップS24b以降の処理が完了していない(未確認の)前回領域管理データが存在する場合(ステップS24aのNo)、ステップS24bに遷移する。
[ステップS24b] 移動検出部14iは、その未確認の前回領域管理データを抽出する。その後、ステップS24cに遷移する。以下、ステップS24bにて抽出した前回領域管理データを「前回領域管理データD」と言う。
[ステップS24c] 移動検出部14iは、ステップS24bにて抽出した領域管理データDに対応する継続利用先領域IDの欄にIDが格納されているか確認する。継続利用先領域IDの欄にIDが格納されていない場合(ステップS24cのNo)、ステップS24aに戻る。継続利用先領域IDの欄にIDが格納されている場合(ステップS24cのYes)、ステップS24dに遷移する。
[ステップS24d] 移動検出部14iは、継続利用先領域IDの欄に設定されているIDにより特定される領域管理テーブル141の領域管理データを抽出する。その後、ステップS24eに遷移する。以下、ステップS24dにて抽出した領域管理データを「領域管理データE」と言う。
[ステップS24e] 移動検出部14iは、領域管理データEの領域IDの欄のIDを、前回領域管理データDの領域IDに変更する。その後、ステップS24fに遷移する。
[ステップS24f] 移動検出部14iは、領域管理データEのエンコーダを前回領域管理データDのエンコーダに変更する。その後、ステップS24gに遷移する。
[ステップS24g] 移動検出部14iは、前回領域管理データDに対応するnx,nyの欄に値が格納されているか否かを判断する。nx,nyの欄に値が格納されていない場合(ステップS24gのNo)、ステップS24aに戻る。nx,nyの欄に値が格納されている場合(ステップS24gのYes)、ステップS24hに遷移する。
[ステップS24h] 移動検出部14iは、領域管理データEのx、yの欄の値を、前回領域管理データDに対応するnx,nyの欄の値で上書きする。その後、ステップS24aに戻る。
[ステップS24i] 移動検出部14iは、前回領域管理テーブル142に格納されている全ての内容をクリアする。そして、領域管理テーブル141に格納されている領域管理データの内容を前回領域管理テーブル142に格納する。その後、データ反映処理を終了する。
以上で、データ反映処理の説明を終了する。
次に、ステップS11の画像送信処理を説明する。
図17は、第2の実施の形態の画像送信処理を示すフローチャートである。
[ステップS41] 更新領域識別部14dは、マップ30にマッピングされたメッシュ31の更新回数をクリアする。その後、ステップS42に遷移する。
[ステップS42] 更新領域識別部14dは、画面生成部14bにより生成された更新矩形が、領域管理データ格納部14eに格納されたいずれかの領域管理データ、すなわち生成された更新矩形が、第2の送信部14hにより動画ストリームを送信中のいずれかの領域に含まれるか否かを判断する。更新矩形が高頻度更新領域に含まれる場合(ステップS42のYes)、ステップS43に遷移する。更新矩形が高頻度更新領域に含まれない場合(ステップS42のNo)、ステップS46に遷移する。
[ステップS43] 更新領域識別部14dは、フレームバッファ13に描画されたビットマップデータのうち高頻度更新領域に対応する部分のビットマップ画像を切り出した上でエンコーダ141f〜143fのうち対応するエンコーダにエンコードさせる。その後、ステップS44に遷移する。
[ステップS44] 更新領域識別部14dは、エンコーダがエンコードしたエンコード画像を受け取ると、対応する領域IDを付して第2の送信部14hに送る。その後、ステップS45に遷移する。
[ステップS45] 第2の送信部14hはエンコードされた高頻度更新領域のエンコード画像をクライアント装置20に送信する。その後、画像送信処理を終了する。
[ステップS46] 第1の送信部14gは、更新矩形の画像および属性情報をクライアント装置20に送信する。その後、画像送信処理を終了する。
以上で画像送信処理の説明を終了する。
図18は、第2の実施の形態のデータ反映処理の具体例を示す図である。
図示の例では、前回の高頻度更新領域と新しい高頻度更新領域から継続利用可能な高頻度更新領域が抽出され、前回領域管理テーブル142の継続利用先領域ID、nx、nyの欄に、継続利用可能な高頻度更新領域の位置を特定する座標が記録されている。具体的には、前回領域管理テーブル142の領域ID=1の欄の前回領域管理データは、継続利用先領域ID=1であるため、前回領域管理データが、新しい高頻度更新領域の領域ID=1で継続利用されることが決まっている。また、nx、nyの欄には、それぞれ50が格納されているため、座標(0,0)から座標(50,50)への移動が必要であることを示している。
領域IDが「2」の欄の前回領域管理データは、継続利用する予定はない。
領域IDが「3」の欄の前回領域管理データは、継続利用先領域ID=2であるため、新しい高頻度更新領域の領域ID=2で継続利用されることが決まっている。また、nx、nyの欄には、値が格納されていないため、座標の移動は不要であることを示している。
これらの継続利用に関する情報が、図18の上側の領域管理テーブル141に反映された後の領域位置識別データの状態が、図18の下側の領域管理テーブル141である。図18の下側の領域管理テーブル141は、領域IDと幅、高さ、エンコーダに関する情報が前回領域管理データによって更新されており、領域ID=1のデータについては、位置情報(x,y)も更新されていることが分かる。
その後、前回領域管理テーブル142に格納されている全ての内容がクリアされる。そして、領域管理テーブル141に格納されている領域管理データの内容が前回領域管理テーブル142に格納される。
以上の処理により、サーバ装置10は高頻度更新領域の移動を検知し、高頻度更新領域を継続利用可能となるため、データ送信量を軽減させることが可能となる。
次に、クライアント装置20が行う移動検出処理を説明する。
図19は、第2の実施の形態のクライアント装置が行う移動検出処理を示すフローチャートである。
図19にはクライアント装置20が第2の受信部21dから新しく画像データ(動画データ)を受信した際に、受信した画像データを領域管理データ格納部21hに格納されている領域管理データの内容と比較し、高頻度更新領域の移動を検出する手順を図示してある。
[ステップS51] クライアント装置20は、エンコード画像(動画ストリーム)を新しく受信すると、表示位置変更検出部21gに高頻度更新領域の移動を検出するよう依頼する。
[ステップS52] 表示位置変更検出部21gは、領域管理データ格納部21hに格納されている領域管理データ(以下、クライアント側領域管理データと言う)の領域IDと、今回受信したエンコード画像に付されている領域IDとを比較する。そして、表示位置変更検出部21gは、エンコード画像に付されている領域IDに一致する領域IDを有するクライアント側領域管理データが存在するか否かを判断する。一致する領域IDを有するクライアント側領域管理データが存在する場合(ステップS52のYes)、ステップS53に遷移する。一致する領域IDを有するクライアント側領域管理データが存在しない場合(ステップS52のNo)、ステップS56に遷移する。
[ステップS53] 表示位置変更検出部21gは、領域IDが一致したクライアント側領域管理データが備えるサイズ情報(幅と高さ)と、今回受信したエンコード画像に含まれるサイズ情報とを比較する。そして、表示位置変更検出部21gは、クライアント側領域管理データが備えるサイズ情報が、エンコード画像に含まれるサイズ情報と一致するか否かを判断する。クライアント側領域管理データが備えるサイズ情報が、エンコード画像に含まれるサイズ情報と一致する場合(ステップS53のYes)、ステップS54に遷移する。クライアント側領域管理データが備えるサイズ情報が、エンコード画像に含まれるサイズ情報と一致しない場合(ステップS53のNo)、ステップS56に遷移する。
[ステップS54] 表示位置変更検出部21gは、領域IDが一致したクライアント側領域管理データに含まれる位置情報と、新しく受信したエンコード画像に含まれる位置情報を参照し、エンコード画像に含まれる位置情報と一致するか否か判断する。クライアント側領域管理データに含まれる位置情報がエンコード画像に含まれる位置情報と一致する場合(ステップS54のYes)、ステップS57に遷移する。エンコード画像に含まれる位置情報と一致しない場合(ステップS54のNo)、高頻度更新領域が移動したと判定し、ステップS55に遷移する。
[ステップS55] 表示位置変更検出部21gは、クライアント側領域管理データの位置情報を受信したエンコード画像に含まれる位置情報に変更する。その後、ステップS57に遷移する。
[ステップS56] 表示位置変更検出部21gは、新しく高頻度更新領域を作成する。そして、表示位置変更検出部21gは、クライアント側領域管理データにエンコード画像に含まれる領域IDと位置、サイズをコピーしたうえでデコーダ211e〜213eからデコーダを選択し、作成した高頻度更新領域に割り当てる(クライアント側領域管理データのデコーダ欄に記入する)。その後、ステップS57に遷移する。
[ステップS57] 表示位置変更検出部21gは、受信したエンコード画像を、割り当てられたデコーダを使ってデコードし、デコードした画像データをクライアント側領域管理データに設定されている表示位置に表示する。その後、表示位置変更検出処理を終了する。
以上の処理により、クライアント装置20は高頻度更新領域の移動を検知し、適正な位置に画像を表示可能となるため、サーバ装置10側で高頻度更新領域を継続利用した場合も適正な画面を表示可能となる。
以上述べたように、情報処理システム5によれば、サーバ装置10が移動検出処理を実行するようにした。これにより、動画像の再生時やCADアプリケーション利用時等のように画面更新がランダムな個所で頻繁に発生するような状況において、高頻度更新領域の変化を適切な場合に移動として検出し、動画ストリームを継続して利用することが可能となる。従って、データ圧縮効率を高めることが可能なため、結果として操作に対する応答時間を早めることができる。
<第3の実施の形態>
次に、第3の実施の形態の情報処理システムについて説明する。
以下、第3の実施の形態の情報処理システムについて、前述した第2の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
第3の実施の形態の情報処理システムは、データ反映処理が第2の実施の形態と異なっている。
第2の実施の形態に示した情報処理システム5は、高頻度更新領域の移動を検知し、継続利用を行うと、その後その領域が頻繁に更新され続け、高頻度更新領域として処理され続けると、高頻度更新領域も継続利用された状態が続くことになる。この場合、例えば図15のステップS32で算出したnの値によっては、継続利用することでデータ通信量が増加する場合がある。例えば、高頻度更新領域の継続利用が決定し、nが5であることが算出された場合に、その高頻度更新領域が10回変更された場合、5回目までは継続利用する方がデータ通信量は少ないが、6回目以降は継続利用した方がデータ通信量が大きくなってしまう。
これに対して第3の実施の形態では、6回目以降は高頻度更新領域の継続利用を中止し、本来の更新領域に合わせた小さいサイズの領域を高頻度更新領域としてデータ送信を行うように変更することでデータ通信量を抑える処理を実行する。
図20は、第3の実施の形態のサーバ装置が備える領域管理テーブルの一例を示す図である。
第3の実施の形態の領域管理テーブル143は、領域管理テーブル141と比較してn、エンコード回数、xo、yo、wo、hoの欄がさらに追加されている。
nの欄には、各高頻度更新領域に対して図15のS32で算出したnの値が格納されている(nを算出した場合のみ)。
エンコード回数の欄には、当該レコードの高頻度更新領域を継続利用する際にエンコードを実施した回数が格納されている。図示の例では1回エンコード済みである。
また、xo、yo、wo、hoの各欄には、それぞれ前回検出した高頻度更新領域の位置とサイズが格納されている。
次に、第3の実施の形態のサーバ装置10が行う移動検出処理を説明する。
図21は、第3の実施の形態のデータ反映処理を示すフローチャートである。
図21にはサーバ装置10が新しく高頻度更新領域を検出した際に、前回検出した高頻度更新領域と比較し、高頻度更新領域の移動を検出する手順を図示してある。ステップS24a〜S24fおよびステップS24g〜24iの処理は第2の実施の形態と同様の処理であるため、説明は省略する。
[ステップS241f] 移動検出部14iは、前回領域管理データDにより特定される領域と領域管理データ領域Eにより特定される領域のサイズが異なるか否か判断する。サイズが異なる場合(ステップS241fのYes)、ステップS242fに遷移する。サイズが同じである場合(ステップ241fのNo)、ステップS24gに遷移する。
[ステップS242f] 移動検出部14iは、領域管理テーブル143の領域管理データEに対応するnの欄の値に、ステップS32で算出したnと同様の方法で算出した値を設定する。また、エンコード回数の欄を0に初期化する。このとき、nの算出には前回領域管理データDの位置や高さと、領域管理データEの位置や高さを利用する。その後、ステップS243fに遷移する。
ここでは、nを再計算することで領域管理データEのnの欄に値を設定する方法を説明しているが、前回領域管理データDにnを記載する欄を作成しておき、ステップS32で算出したnを前回領域管理データDに記録し、ステップS242fでnを再計算する代わりに前回領域管理データDに記録しておいたnをコピーするようにしてもよい。
[ステップS243f] 移動検出部14iは、領域管理テーブル143の領域管理データE対応するxo、yo、wo、hoの欄に、x、y、w、hの欄に格納されている値をコピーする。その後、ステップS24gに遷移する。
以上の処理で、領域管理データに高頻度更新領域の継続利用を中止する情報を記録することが可能となる。
次に、第3の実施の形態の画像送信処理を説明する。
図22は、第3の実施の形態の画像送信処理の手順を示すフローチャートである。
図22にはサーバ装置10が新しく更新領域を検出した際に、高頻度更新領域の継続利用を中止するまでの手順を図示してある。ステップS41〜S44、S46の処理は第2の実施の形態と同様の処理であるため、説明は省略する。
[ステップS45a] 第2の送信部14hは、エンコードされた高頻度更新領域の動画ストリームをクライアント装置20に送信する。その後、ステップS47aに遷移する。
[ステップS47a] 更新領域識別部14dは、移動検出部14iにエンコードが完了したことを通知する。その後、ステップS47bに遷移する。
[ステップS47b] 通知を受けた移動検出部14iは、領域管理テーブル143を参照し、エンコードが完了した領域管理データのnの欄に値が設定されているか否か判断する。値が設定されている場合(ステップS47bのYes)、ステップS47cに遷移する。値が設定されていない場合(ステップS47bのNo)、画像送信処理を終了する。
[ステップS47c] 移動検出部14iは、領域管理テーブル143のエンコードが完了した領域管理データに対応するエンコード回数の欄の値を1増やす。その後、ステップS47dに遷移する。
[ステップS47d] 移動検出部14iは、エンコードが完了した領域位置識別データに対応するエンコード回数の欄の値が、nの欄に設定されているn以上か否かを判断する。エンコード回数の欄の値がn以上の場合(ステップS47dのYes)、ステップS47eに遷移する。エンコード回数の欄の値がnより小さい場合(ステップS47dのNo)、画像送信処理を終了する。
[ステップS47e] 移動検出部14iは、高頻度更新領域の継続利用を中止して画像送信処理を終了する。具体的には、この高頻度更新領域で利用してきたエンコーダを終了し、領域管理データに記載されているxo、yo、wo、hoの値を同じく領域管理データのx、y、w、hにコピーし、w、hをパラメータとしてエンコーダを新しく作成するとともに領域IDを新しくふり直す。その後、画像送信処理を終了する。
以上で、第3の実施の形態の画像送信処理の説明を終了する。
この第3の実施の形態の情報処理システムによれば、第2の実施の形態の情報処理システムと同様の効果が得られる。
そして、第3の実施の形態の情報処理システムによれば、さらに、高頻度更新領域を継続利用したことでデータ通信量が増えてしまう場合に、継続利用を中止することが可能となり、データ通信量が増えることを抑制することができる。
<第4の実施の形態>
次に、第4の実施の形態の情報処理システムについて説明する。
以下、第4の実施の形態の情報処理システムについて、前述した第2の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
第2の実施の形態に示した情報処理装置は、式(2)、式(3)に示すように、新しく設定した高頻度更新領域が前回の高頻度更新領域よりサイズが同じか小さい場合のみ継続利用の対象として移動を検出した。第4の実施の形態ではこれに加え、新しく検出した高頻度更新領域が前回の高頻度更新領域より大きい場合も継続利用の対象として移動を検出する。
図23は、第4の実施の形態のサーバ装置が行う移動検出処理の一例を示す図である。
図23(a)は、表示デバイス204aに表示された古い高頻度更新領域A2より新しい高頻度更新領域B2の方が、サイズが大きい場合を示している。
この場合に、本実施の形態のサーバ装置10は、図23(b)に示すように、古い高頻度更新領域A2を新しい高頻度更新領域B2の左上隅に移動させた領域A3に設定することで継続利用し、新しい高頻度更新領域のはみ出す部分は別途、領域A4、A5を2つ作成してクライアント装置20に送信する。また、一定時間経過後、高頻度更新領域A2の継続利用を中止し1つの高頻度更新領域A6として画像を送信する様子を示している。
図24は、第4の実施の形態の領域管理テーブルを示す図である。
第4の実施の形態の領域管理テーブル144は、高頻度更新領域の継続利用の中止の時刻を格納する統合指示時刻[ms]の欄がさらに設けられている。
図24では、領域ID=1から領域ID=3の領域管理データそれぞれにおいて、統合指示時刻の欄に120191が格納されている。これは、高頻度更新領域が、古い高頻度更新領域を継続利用するために分割されたことを示しており、統合指示時刻で指定された時刻(図24ではシステム起動から120191[ms]経過後)に継続利用を中止し、1つの高頻度更新領域として送信されるようになる予定であることを示している。
次に、第4の実施の形態のサーバ装置10が行う移動検出処理を説明する。
図25および図26は、第4の実施の形態のサーバ装置が行う移動検出処理を示すフローチャートである。
図25および図26にはサーバ装置10が新しく高頻度更新領域を検出した際に、前回検出した高頻度更新領域と比較し、高頻度更新領域の移動を検出する手順を図示してある。S27までの処理は第2の実施の形態と同様の処理であるため、説明は省略する。
[ステップS28a] 移動検出部14iは、ステップS25で抽出した領域Aの幅とステップS27で抽出した領域Bの幅を比較する。そして、移動検出部14iは、領域Aの幅は領域Bの幅以上か否かを判断する。領域Aの幅が、領域Bの幅より大きい、または、等しい場合(ステップS28aのYes)、ステップS29aに遷移する。領域Aの幅が領域Bの幅より小さい場合(ステップS28aのNo)、ステップS71に遷移する。なお、図23に示す高頻度更新領域A2は、領域Aの一例であり、領域B2は領域Bの一例である。
[ステップS29a] 移動検出部14iは、領域Aと領域Bの高さを比較し、領域Aの高さは領域Bの高さ以上か否かを判断する。領域Aの高さが領域Bの高さより小さい場合(ステップS29aのNo)、ステップS71に遷移する。領域Aの高さが領域Bの高さより大きい、または、等しい場合(ステップS29aのYes)ステップS30に遷移する。
[ステップS71] 移動検出部14iは、領域Aの4つの辺のうち領域Bの辺と最低2辺が接するように領域Aを最小限移動させた時の領域を領域Fとして抽出する。その後、ステップS72に遷移する。なお、図23に示す領域A3は、領域Fの一例である。
[ステップS72] 移動検出部14iは、領域Aと領域Fの重複領域の面積Sxを算出する。その後、ステップS73に遷移する。
[ステップS73] 移動検出部14iは、ステップS72で算出した面積Sxが0より大きいか否か判断する。面積Sxが0より大きい場合(ステップS72のYes)、ステップS74に遷移する。面積Sxが0以下である場合(ステップS72のNo)、ステップS26に遷移する。
[ステップS74] 移動検出部14iは、領域Bの画面データを送るのに領域Aを継続利用する。具体的には、領域Bのうち領域Fと重複しない領域(領域Aの継続利用だけでは送信できない領域)を抽出する。この領域は、領域Bと領域Fの辺は最低2辺が接していることから、1領域、または、2領域となる。その後、ステップS75に遷移する。なお、図23に示す領域A4、A5は、重複しない2領域の一例である。
[ステップS75] 移動検出部14iは、抽出した重複しない領域の画像を送る高頻度更新領域を新しく作成する。そして、作成した高頻度更新領域の領域管理データを領域管理テーブル144に格納する。その後、ステップS76に遷移する。
[ステップS76] 移動検出部14iは、前回領域管理テーブル142の領域Aの継続利用先領域IDの欄に領域BのIDを格納する。さらに、領域Fの位置情報(x、y)を、領域Aのnx,nyの欄に格納する。その後、ステップS77に遷移する。
[ステップS77] 移動検出部14iは、領域BとステップS74で新しく登録した領域を統合対象の領域とする。そして、前回領域管理テーブル142の統合指示時刻の欄に、現在時刻に一定時間を追加した時刻を設定する。その後、ステップS23に戻る。
以上の処理で、新しい高頻度更新領域が古い高頻度更新領域より大きい場合でも継続利用の対象として移動を検出することが可能となり、さらに高頻度更新領域の継続利用のために分割した領域を統合する情報を領域管理データに記録することが可能となる。
次に、第4の実施の形態のサーバ装置10が行う高頻度更新領域の統合処理を説明する。
図27は、第4の実施の形態のサーバ装置の高頻度更新領域の統合処理の手順を示すフローチャートである。
図27にはサーバ装置10がステップS77で統合指示時刻の欄に設定した時刻が経過した際に、分割していた高頻度更新領域を統合するまでの手順を図示してある。
[ステップS81] 移動検出部14iは、ステップS77で設定した時刻の経過を検出すると、ステップS82に遷移する。
[ステップS82] 移動検出部14iは、領域管理テーブル144に格納されている領域管理データを参照し、タイムアウトしたタイマーが対象とする高頻度更新領域を統合した領域に関する領域管理データを新たに作成する。その後、ステップS83に遷移する。
[ステップS83] 移動検出部14iは、領域管理テーブル144に格納されている統合前の領域に関する領域管理データを削除する。その後、ステップS84に遷移する。
[ステップS84] 移動検出部14iは、前回領域管理テーブル142に格納されている前回領域管理データを削除する。その後、ステップS85に遷移する。
[ステップS85] 移動検出部14iは、領域管理テーブル144に格納されている領域管理データを前回領域管理テーブル142にコピーする。その後、統合処理を終了する。
以上で統合処理の説明を終了する。
この第4の実施の形態の情報処理システムによれば、第2の実施の形態の情報処理システムと同様の効果が得られる。
そして、第4の実施の形態の情報処理システムによれば、高頻度更新領域を継続利用するために分割していた領域を一定時間経過後、1つの領域として画像を送信するように変更できるため、画像の切れ目がなくなり画質を向上させることが可能となる。
なお、サーバ装置10が行った処理が、複数の装置によって分散処理されるようにしてもよい。例えば、1つの装置が、更新領域の識別処理までを行って領域位置識別データを生成しておき、他の装置が、その領域位置識別データを用いて移動検出処理や画像送信処理を行うようにしてもよい。
以上、本発明の情報処理装置、情報処理方法および情報処理プログラムを、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
また、本発明は、前述した各実施の形態のうちの、任意の2以上の構成(特徴)を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報処理装置1、サーバ装置10、クライアント装置2、20それぞれが有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスク(FD)、磁気テープ等が挙げられる。光ディスクには、DVD、DVD−RAM、CD−ROM/RW等が挙げられる。光磁気記録媒体には、MO(Magneto-Optical disk)等が挙げられる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC、PLD(Programmable Logic Device)等の電子回路で実現することもできる。
(付記1) 動画圧縮して送信した第1の領域を示す情報を記憶する記憶部と、
画像の更新量が閾値以上の第2の領域を識別する識別部と、
前記第1の領域と前記第2の領域との重複関係に基づいて、前記第2の領域の画像を、前記第1の領域の前記動画と関連して送信するか否かを判断する判断部と、
前記第2の領域と前記第1の領域とを関連して送信すると判断した場合、前記第2の領域の少なくとも一部を包含する領域の画像を、前記第1の領域の画像に続けて動画圧縮して送信すると共に、該動画圧縮した画像の表示位置を示す情報を送信する送信部と、
を有することを特徴とする情報処理装置。
(付記2) 前記判断部は、前記第1の領域と前記第2の領域の面積が等しく、かつ、前記第1の領域と前記第2の領域との間に重複領域が存在する場合に前記第2の領域の画像を前記第1の領域の前記動画と関連して送信すると判断することを特徴とする付記1記載の情報処理装置。
(付記3) 前記送信部は、前記第2の領域の画像全体を、前記第1の領域の画像に続けて動画圧縮して送信することを特徴とする付記2記載の情報処理装置。
(付記4) 前記判断部は、前記第2の領域の面積が前記第1の領域の面積より小さく、かつ、前記重複領域を包含する領域の画像を前記第1の領域の画像に続けて動画圧縮したときのデータ量が、前記第2の領域の画像を先頭とする動画圧縮をしたときのデータ量より小さいときに、前記第2の領域の画像を前記第1の領域の前記動画と関連して送信すると判断することを特徴とする付記2記載の情報処理装置。
(付記5) 前記第2の領域の画像を前記第1の領域の画像に続く動画として送信した回数を計数する計数部をさらに備え、
前記判断部は、前記計数部が計数した前記回数が予め用意した回数以上である場合に、前記第2の領域の画像の前記第1の領域の前記動画と関連した送信を中止することを特徴とする付記4記載の情報処理装置。
(付記6) 前記識別部は、複数の前記画像を記憶する画像記憶部に記憶された画像を複数の領域に分割し、該領域毎にフレーム間の更新の頻度を判別し、前記更新の頻度が一定以上である領域を前記第2の領域であると識別することを特徴とする付記1記載の情報処理装置。
(付記7) 前記送信部は、前記第2の領域を包含し、前記第1の領域と面積が等しい領域の画像を、前記第1の領域の画像に続けて動画圧縮して送信することを特徴とする付記4乃至6のいずれかに記載の情報処理装置。
(付記8) 前記判断部は、前記第2の領域の面積が前記第1の領域の面積より大きく、かつ、前記第1の領域と前記第2の領域との重複部分が存在する場合、前記第2の領域の画像を前記第1の領域の前記動画と関連して送信すると判断することを特徴とする付記1記載の情報処理装置。
(付記9) 前記第2の領域の画像を前記第1の領域の画像に続く動画として送信する期間が一定期間を超えた場合に、前記送信部は、前記第2の領域の画像を先頭の画像とする動画を送信することを特徴とする付記8記載の情報処理装置。
(付記10) 前記送信部は、前記第2の領域の画像の一部を前記第1の領域の画像に続く動画として送信することを特徴とする付記8または9のいずれかに記載の情報処理装置。
(付記11) コンピュータが、
動画圧縮して送信した第1の領域を示す情報が記憶装置に記憶し、
画像の更新量が閾値以上の第2の領域を識別し、
前記第1の領域と前記第2の領域との重複関係に基づいて、前記第2の領域の画像を、前記第1の領域の前記動画と関連して送信するか否かを判断し、
前記第2の領域と前記第1の領域とを関連して送信すると判断した場合、前記第2の領域の少なくとも一部を包含する領域の画像を、前記第1の領域の画像に続けて動画圧縮して送信すると共に、該動画圧縮した画像の表示位置を示す情報を送信する、
ことを特徴とする情報処理方法。
(付記12) コンピュータに、
動画圧縮して送信した第1の領域を示す情報が記憶装置に記憶し、
画像の更新量が閾値以上の第2の領域を識別し、
前記第1の領域と前記第2の領域との重複関係に基づいて、前記第2の領域の画像を、前記第1の領域の前記動画と関連して送信するか否かを判断し、
前記第2の領域と前記第1の領域とを関連して送信すると判断した場合、前記第2の領域の少なくとも一部を包含する領域の画像を、前記第1の領域の画像に続けて動画圧縮して送信すると共に、該動画圧縮した画像の表示位置を示す情報を送信する、
処理を実行させることを特徴とする情報処理プログラム。
1 情報処理装置
1a 記憶部
1b 識別部
1c 判断部
1d 送信部
1e 画像記憶部
1f、14c 更新頻度判別部
2、20 クライアント装置
2a 表示部
3、4 領域
5 情報処理システム
10 サーバ装置
11a OS実行制御部
11b アプリ実行制御部
12 グラフィックドライバ
13 フレームバッファ
14 リモート画面制御部
14a 操作情報取得部
14b 画面生成部
14d 更新領域識別部
14e、21h 領域管理データ格納部
141f、142f、143f エンコーダ
14g 第1の送信部
14h 第2の送信部
14i 移動検出部
14j 前回領域管理データ格納部
21 リモート画面制御部
21a 操作情報通知部
21b 第1の受信部
21c 第1の表示制御部
21d 第2の受信部
211e、212e、213e デコーダ
21f 第2の表示制御部
21g 表示位置変更検出部
30 マップ
31 メッシュ
31a、31b 更新矩形
32 画素
50 ネットワーク
51 メッシュ連結体
52、62 補間領域
53 矩形
61a、61b 候補
63 合成体
70A デスクトップ画面
70B、70C 画面
71 ブラウザ画面
72 動画再生画面
73 移動軌跡
74 動画再生領域
141 領域管理テーブル
142 前回領域管理テーブル

Claims (9)

  1. 画像が表示される表示領域のうち、動画圧縮して送信した画像が表示される領域を示す情報を記憶する記憶部と、
    前記表示領域内の領域のうち画像の更新頻度が閾値以上の領域を識別する識別部と、
    過去に送信した画像に対応して前記識別部が識別した第1の領域と、前記識別部が識別した現在の第2の領域との重複関係に基づいて、前記第2の領域に表示する画像を、当該第1の領域に対応する画像と関連して送信するか否かを判断する判断部と、
    前記第2の領域に表示する画像と前記第1の領域に対応する画像とを関連して送信すると判断した場合、前記第2の領域に表示する画像の少なくとも一部を、前記第1の領域に対応する画像に基づいて動画圧縮し、当該画像の少なくとも一部の表示位置を示す情報と共に送信する送信部と、
    を有することを特徴とする情報処理装置。
  2. 前記判断部は、前記第1の領域と前記第2の領域の面積が等しく、かつ、前記第1の領域と前記第2の領域との間に重複領域が存在する場合に前記第2の領域に表示する画像を前記第1の領域に対応する画像と関連して送信すると判断する
    ことを特徴とする請求項1記載の情報処理装置。
  3. 前記判断部は、前記第2の領域の面積が前記第1の領域の面積より小さく、かつ、前記重複領域を包含する領域の画像を前記第1の領域に対応する画像に基づいて動画圧縮したときのデータ量が、前記第2の領域に表示する画像を先頭とする動画圧縮をしたときのデータ量より小さいときに、前記第2の領域に表示する画像を前記第1の領域に対応する画像と関連して送信すると判断する
    ことを特徴とする請求項2記載の情報処理装置。
  4. 前記第2の領域に表示する画像を前記第1の領域に対応する画像に基づいて動画圧縮して送信した回数を計数する計数部をさらに備え、
    前記判断部は、前記計数部が計数した前記回数が予め用意した回数以上である場合に、前記第2の領域に表示する画像の前記第1の領域に対応する画像と関連し送信すること、を中止する
    ことを特徴とする請求項3記載の情報処理装置。
  5. 前記識別部は、複数の前記画像を記憶する画像記憶部に記憶された画像を複数の領域に分割し、該領域毎にフレーム間の更新の頻度を判別し、前記更新の頻度が一定以上である領域を識別する
    ことを特徴とする請求項1記載の情報処理装置。
  6. 前記判断部は、前記第2の領域の面積が前記第1の領域の面積より大きく、かつ、前記第1の領域と前記第2の領域との重複部分が存在する場合、前記第2の領域に表示する画像を前記第1の領域に対応する画像と関連して送信すると判断する
    ことを特徴とする請求項1記載の情報処理装置。
  7. 前記第2の領域に表示する画像を前記第1の領域に対応する画像に基づいて動画圧縮して送信する期間が一定期間を超えた場合に、前記送信部は、前記第2の領域に表示する画像を先頭の画像とする動画を送信する
    ことを特徴とする請求項6記載の情報処理装置。
  8. コンピュータが、
    画像が表示される表示領域のうち、動画圧縮して送信した画像が表示される領域を示す情報記憶装置に記憶し、
    前記表示領域内の領域のうち画像の更新頻度が閾値以上の領域を識別する識別処理を実行し、
    過去に送信した画像に対応して前記識別処理で識別した第1の領域と、前記識別処理で識別した現在の第2の領域との重複関係に基づいて、前記第2の領域に表示する画像を、当該第1の領域に対応する画像と関連して送信するか否かを判断し、
    前記第2の領域に表示する画像と前記第1の領域に対応する画像とを関連して送信すると判断した場合、前記第2の領域に表示する画像の少なくとも一部を、前記第1の領域に対応する画像に基づいて動画圧縮し、当該画像の少なくとも一部の表示位置を示す情報と共に送信する、
    ことを特徴とする情報処理方法。
  9. コンピュータに、
    画像が表示される表示領域のうち、動画圧縮して送信した画像が表示される領域を示す情報記憶装置に記憶し、
    前記表示領域内の領域のうち画像の更新頻度が閾値以上の領域を識別する識別処理を実行し、
    過去に送信した画像に対応して前記識別処理で識別した第1の領域と、前記識別処理で識別した現在の第2の領域との重複関係に基づいて、前記第2の領域に表示する画像を、当該第1の領域に対応する画像と関連して送信するか否かを判断し、
    前記第2の領域に表示する画像と前記第1の領域に対応する画像とを関連して送信すると判断した場合、前記第2の領域に表示する画像の少なくとも一部を、前記第1の領域に対応する画像に基づいて動画圧縮し、当該画像の少なくとも一部の表示位置を示す情報と共に送信する、
    処理を実行させることを特徴とする情報処理プログラム。
JP2010269899A 2010-12-03 2010-12-03 情報処理装置、情報処理方法および情報処理プログラム Active JP5720211B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010269899A JP5720211B2 (ja) 2010-12-03 2010-12-03 情報処理装置、情報処理方法および情報処理プログラム
US13/303,956 US8411972B2 (en) 2010-12-03 2011-11-23 Information processing device, method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010269899A JP5720211B2 (ja) 2010-12-03 2010-12-03 情報処理装置、情報処理方法および情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2012120066A JP2012120066A (ja) 2012-06-21
JP5720211B2 true JP5720211B2 (ja) 2015-05-20

Family

ID=46162301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010269899A Active JP5720211B2 (ja) 2010-12-03 2010-12-03 情報処理装置、情報処理方法および情報処理プログラム

Country Status (2)

Country Link
US (1) US8411972B2 (ja)
JP (1) JP5720211B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201251429A (en) * 2011-06-08 2012-12-16 Hon Hai Prec Ind Co Ltd System and method for sending streaming of desktop sharing
JP2013137735A (ja) * 2011-11-30 2013-07-11 Ricoh Co Ltd 表示制御装置、表示制御方法、プログラム、表示システム
WO2014017003A1 (ja) * 2012-07-25 2014-01-30 日本電気株式会社 更新領域検出装置
US9424660B2 (en) * 2012-08-07 2016-08-23 Intel Corporation Media encoding using changed regions
CN102929570B (zh) * 2012-09-26 2016-01-27 东软集团股份有限公司 屏幕描述方法及装置
JP6248671B2 (ja) * 2014-02-10 2017-12-20 富士通株式会社 情報処理装置、方法、プログラム、および情報処理システム
US10976983B2 (en) * 2019-03-26 2021-04-13 International Business Machines Corporation Smart collaboration across multiple locations
US11347941B2 (en) * 2019-04-30 2022-05-31 Marvell Asia Pte, Ltd. Methods and apparatus for compressing data streams

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7289244B2 (en) * 2000-02-02 2007-10-30 Raja Singh Tuli Portable high speed internet access device
JP3680845B2 (ja) * 2003-05-28 2005-08-10 セイコーエプソン株式会社 圧縮動画像の伸張装置及びそれを用いた画像表示装置
CA2538340A1 (en) 2003-09-12 2005-03-31 Citrix Systems, Inc. Method and apparatus for generating graphical and media displays at a thin client
JP2007072130A (ja) * 2005-09-06 2007-03-22 Seiko Epson Corp 画像表示システム、画像表示装置、画像データ出力装置、画像処理プログラム、及びこの画像処理プログラムを記録した記録媒体
JP4998021B2 (ja) * 2007-03-08 2012-08-15 カシオ計算機株式会社 サーバ装置、クライアント装置及びプログラム
WO2009102011A1 (ja) * 2008-02-14 2009-08-20 Nec Corporation 更新領域検出装置

Also Published As

Publication number Publication date
US20120141038A1 (en) 2012-06-07
US8411972B2 (en) 2013-04-02
JP2012120066A (ja) 2012-06-21

Similar Documents

Publication Publication Date Title
JP5720211B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP5471794B2 (ja) 情報処理装置、画像送信プログラム及び画像表示方法
JP5471903B2 (ja) 情報処理装置、画像送信プログラム及び画像表示方法
JP5678619B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
US8819270B2 (en) Information processing apparatus, computer-readable non transitory storage medium storing image transmission program, and computer-readable storage medium storing image display program
US20130155075A1 (en) Information processing device, image transmission method, and recording medium
JP5821610B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP5664289B2 (ja) 情報処理装置、画像送信プログラムおよび画像表示方法
US9247029B1 (en) Efficient processing of streams of images within a moving window session
JP5899897B2 (ja) 情報処理装置、情報処理方法及びプログラム
US9124813B2 (en) Information processing device using compression ratio of still and moving image data
US9269281B2 (en) Remote screen control device, remote screen control method, and recording medium
JP5874257B2 (ja) 情報処理装置、画像送信方法及び画像送信プログラム
JP2017169001A (ja) 表示画面データの伝送装置、伝送方法及び伝送プログラム
JP5391780B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP2020187482A (ja) 情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140704

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150309

R150 Certificate of patent or registration of utility model

Ref document number: 5720211

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150