JP2012014533A - 情報処理装置、画像送信プログラム、画像表示プログラム及び画像表示方法 - Google Patents

情報処理装置、画像送信プログラム、画像表示プログラム及び画像表示方法 Download PDF

Info

Publication number
JP2012014533A
JP2012014533A JP2010151492A JP2010151492A JP2012014533A JP 2012014533 A JP2012014533 A JP 2012014533A JP 2010151492 A JP2010151492 A JP 2010151492A JP 2010151492 A JP2010151492 A JP 2010151492A JP 2012014533 A JP2012014533 A JP 2012014533A
Authority
JP
Japan
Prior art keywords
image
area
unit
frequency
screen
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.)
Granted
Application number
JP2010151492A
Other languages
English (en)
Other versions
JP2012014533A5 (ja
JP5471903B2 (ja
Inventor
Kazuki Matsui
一樹 松井
Kenichi Horio
健一 堀尾
Tomohiro Imai
智大 今井
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 JP2010151492A priority Critical patent/JP5471903B2/ja
Priority to EP20110170455 priority patent/EP2403249B1/en
Priority to US13/165,075 priority patent/US8953676B2/en
Publication of JP2012014533A publication Critical patent/JP2012014533A/ja
Publication of JP2012014533A5 publication Critical patent/JP2012014533A5/ja
Application granted granted Critical
Publication of JP5471903B2 publication Critical patent/JP5471903B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1431Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using a single graphics controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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
    • G09G2380/00Specific applications
    • G09G2380/06Remotely controlled electronic signs other than labels

Landscapes

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

Abstract

【課題】シンクライアントの汎用性を維持しつつ、操作レスポンスを向上させることを課題とする。
【解決手段】サーバ装置10は、画像を保持するフレームバッファ13を有する。さらに、サーバ装置10は、画像を送信する第1の画像送信部14fを有する。さらに、サーバ装置10は、画像のフレーム間における変化が累積して更新された面積及び/又は画像のフレーム間における変化の頻度を検出する全画面動画化判定部14mを有する。さらに、サーバ装置は、全画面動画化判定部14mで閾値以上の面積及び/又は頻度を検出した場合に、第1の画像送信部14fとは異なる圧縮方法で前記画像を圧縮して送信する第2の画像送信部14gを有する。
【選択図】図1

Description

本発明は、情報処理装置、画像送信プログラム、画像表示プログラム及び画像表示方法に関する。
シンクライアント(thin client)というシステム(system)が知られている。シンクライアントシステムでは、クライアント(client)に最低限の機能しか持たせず、サーバ(server)でアプリケーション(application)やファイル(file)などのリソース(resource)を管理するようにシステムが構築される。
かかるシンクライアントシステムは、実際にはサーバが処理を実行した処理結果やサーバが保持するデータをクライアントに表示させつつも、あたかもクライアントが主体となって処理を実行したり、データを保持しているかのように振る舞う。
一例として、シンクライアントシステムは、サーバで資料作成やメールなどの業務に関するアプリケーションを実行させ、そのアプリケーションの処理結果をクライアントに表示させる。このような業務アプリの他にも、CAD(Computer-Aided Design)などのように精細な画像を扱うアプリケーション、さらには、動画を扱うアプリケーションなどがシンクライアントシステムの適用範囲として拡充されることが求められる。
ところが、シンクライアントシステムで通信に用いられるプロトコル、例えばRDP(Remote Desktop Protocol)や、VNC(Virtual Network Computing)で用いられているRFB(Remote Frame Buffer)プロトコルなどで、画像や動画などの大容量のデータを扱う場合には、クライアントで実行される操作に対するレスポンス(response)が悪化する問題がある。なお、かかる問題は、シンクライアントシステムでクライアントとサーバ間で画面更新時に大容量のデータ送信が発生する場合に共通するものであり、画像や動画を扱う場合に限定して生じる問題ではない。
このことから、操作レスポンスを改善するための技術の一例として、次のような技術が提案されている。これを説明すると、サーバは、特定のメディアアプリケーション(media application)の出力を途中でフックしてそのメディアプリケーションが扱うデータをクライアントに送信する。一方、クライアントは、サーバで動作するメディアアプリケーションが扱うデータの再生処理を行う。
特表2007−505580号公報 特開2009−194626号公報 特開2010−118976号公報
しかしながら、上記の従来技術は、特定のメディアアプリケーションに依存した環境でしか効力を発揮できないので、シンクライアントの汎用性を損なうという問題がある。
すなわち、上記の従来技術は、サーバ及びクライアントにインストール(install)されるメディアアプリケーションを改造するか、または予め改造を行ったメディアアプリケーションをプリインストールすることが前提となる。ところが、メディアアプリケーションの入手経路が多種多様である現状では、改造を施すことができるメディアアプリケーションは一部に限られる。このため、その他の大部分のメディアアプリケーションを利用する場合には、依然として、操作レスポンスが悪化したままで利用する他に術はない。
開示の技術は、上記に鑑みてなされたものであって、シンクライアントの汎用性を維持しつつ、操作レスポンスを向上させることができる情報処理装置、画像送信プログラム、画像表示プログラム及び画像表示方法を提供することを目的とする。
本願の開示する情報処理装置は、ネットワーク経由で接続された端末装置の表示部にコンピュータの実行結果を表示するための画像を生成して前記端末装置へ送信する情報処理装置である。前記情報処理装置は、前記画像を保持する画像メモリを有する。前記情報処理装置は、前記画像を送信する第1の送信部を有する。前記情報処理装置は、前記画像のフレーム間における変化が累積して更新された面積及び/又は前記画像のフレーム間における変化の頻度を検出する検出部を有する。前記情報処理装置は、前記検出部で、閾値以上の前記面積及び/又は前記頻度を検出した場合に、前記第1の送信部とは異なる圧縮方法で前記画像を圧縮して送信する第2の送信部を有する。
本願の開示する情報処理装置の一つの態様によれば、シンクライアントの汎用性を維持しつつ、操作レスポンスを向上させることができるという効果を奏する。
図1は、実施例1に係るシンクライアントシステムに含まれる各装置の構成を示すブロック図である。 図2は、デスクトップ画面の分割要領を説明するための図である。 図3Aは、デスクトップ画面の変更頻度の判別要領を説明するための図である。 図3Bは、デスクトップ画面の変更頻度の判別要領を説明するための図である。 図3Cは、デスクトップ画面の変更頻度の判別要領を説明するための図である。 図4は、メッシュ連結体の補正要領を説明するための図である。 図5は、高頻度変更領域の候補の合成要領を説明するための説明図である。 図6Aは、高頻度変更領域の属性情報の通知要領を説明するための図である。 図6Bは、高頻度変更領域の属性情報の通知要領を説明するための図である。 図6Cは、高頻度変更領域の属性情報の通知要領を説明するための図である。 図7は、ウィンドウが移動する場合にサーバ装置がクライアント端末へ送信する画像の送信方式の一例を示す図である。 図8は、コピー領域の位置を算出する方法を説明するための図である。 図9は、ウィンドウが移動する一態様を示す図である。 図10Aは、更新頻度と移動面積を説明するための図である。 図10Bは、更新頻度と移動面積を説明するための図である。 図10Cは、更新頻度と移動面積を説明するための図である。 図11は、実施例1に係る画像送信処理の手順を示すフローチャートである。 図12は、実施例1に係る画像送信処理の手順を示すフローチャートである。 図13Aは、マップクリアの延長要領を説明するための図である。 図13Bは、マップクリアの延長要領を説明するための図である。 図14Aは、高頻度変更領域の縮小に関する抑制要領を説明するための図である。 図14Bは、高頻度変更領域の縮小に関する抑制要領を説明するための図である。 図15Aは、重心距離を説明するための説明図である。 図15Bは、重心距離を説明するための説明図である。 図16は、実施例2に係る画像送信プログラムを実行するコンピュータの一例について説明するための図である。
以下に、本願の開示する情報処理装置、画像送信プログラム、画像表示プログラム及び画像表示方法の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
[システム構成]
まず、実施例1に係るシンクライアントシステムについて説明する。図1は、実施例1に係るシンクライアントシステムに含まれる各装置の構成を示すブロック図である。
図1に示すシンクライアントシステム(thin client system)1は、クライアント(client)端末20が表示する画面をリモート(remote)でサーバ(server)装置10に制御させるものである。つまり、シンクライアントシステム1は、実際にはサーバ装置10が実行した処理結果や保持するデータをクライアント端末20に表示させつつも、あたかもクライアント端末20が主体となって処理を実行したり、データを保持しているかのように振る舞う。
図1に示すように、シンクライアントシステム1は、サーバ装置10と、クライアント端末20とを有する。なお、図1の例では、1つのサーバ装置10に対し、1つのクライアント端末を接続する場合を図示したが、任意の数のクライアント端末を接続できる。
これらサーバ装置10及びクライアント端末20は、所定のネットワーク(Network)を介して、相互に通信可能に接続される。かかるネットワークには、有線または無線を問わず、インターネット(Internet)、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網を採用できる。なお、サーバ装置10及びクライアント端末20間の通信プロトコル(Protocol)には、一例として、VNCにおけるRFB(Remote Frame Buffer)プロトコルを採用する場合を想定する。
サーバ装置10は、クライアント端末20に表示させる画面をリモートで制御するサービスを提供するコンピュータ(computer)である。このサーバ装置10には、サーバ向けのリモート画面制御用のアプリケーション(application)がインストール(install)またはプリインストール(preinstall)される。なお、以下では、サーバ向けのリモート画面制御用のアプリケーションをサーバ側リモート画面制御用アプリと呼ぶ。
このサーバ側リモート画面制御用アプリは、基本機能として、リモート画面制御サービスを提供する機能を有する。一例としては、サーバ側リモート画面制御用アプリは、クライアント端末20における操作情報を取得した上でその操作により要求された処理を自装置で動作するアプリケーションに実行させる。そして、サーバ側リモート画面制御用アプリは、アプリケーションにより実行された処理結果を表示するための画面を生成した上でその画面をクライアント端末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は、サーバ装置10によるリモート画面制御サービスの提供を受ける側のコンピュータである。かかるクライアント端末20の一例としては、パーソナルコンピュータ(personal computer)など固定端末の他、携帯電話機、PHS(Personal Handyphone System)やPDA(Personal Digital Assistant)などの移動体端末を適用することもできる。このクライアント端末20には、クライアント向けのリモート画面制御用アプリケーションがインストールまたはプリインストールされる。なお、以下では、クライアント向けのリモート画面制御用のアプリケーションをクライアント側リモート画面制御用アプリと呼ぶ。
このクライアント側リモート画面制御用アプリは、マウス(mouse)やキーボード(keyboard)などの各種の入力デバイス(device)を介して受け付けた操作情報をサーバ装置10へ通知する機能を有する。一例としては、クライアント側リモート画面制御用アプリは、マウスの左右のクリック(click)を始め、ダブルクリック(double click)やドラッグ(drag)、マウスの移動操作を介して得られたマウスカーソルの位置や移動量などを操作情報として通知する。他の一例としては、マウスホイールの回転量、キーボードのうち押下されたキーの種別なども操作情報として通知する。
さらに、クライアント側リモート画面制御用アプリは、サーバ装置10から受信した画像を所定の表示部に表示させる機能を有する。一例としては、クライアント側リモート画面制御用アプリは、サーバ装置10から更新矩形のビットマップ画像を受信した場合には、更新矩形の画像を前回のビットマップ画像から変更のあった位置に合わせて表示する。他の一例としては、クライアント側リモート画面制御用アプリは、サーバ装置10から高頻度変更領域の属性情報を受信した場合には、その属性情報に含まれる位置に対応する表示画面上の領域をビットマップ画像の表示対象外のブランク(blank)領域とする。その上で、クライアント側リモート画面制御用アプリは、動画向けの圧縮方式のデータを受信した場合にそのデータをデコード(decode)した上でブランク領域に表示する。
[サーバ装置の構成]
次に、本実施例に係るサーバ装置の構成について説明する。図1に示すように、サーバ装置10は、OS実行制御部11aと、アプリ実行制御部11bと、グラフィックドライバ12と、フレームバッファ13と、サーバ側リモート画面制御部14とを有する。なお、図1の例では、図1に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや表示デバイスなどの機能を有するものとする。
OS実行制御部11aは、OS(Operating System)の実行を制御する処理部である。例えば、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(登録商標)などのネットワーク環境で動作するアプリであってもよい。
グラフィックドライバ(graphic driver)12は、フレームバッファ13に対する描画処理を実行する処理部である。一例としては、グラフィックドライバ12は、アプリ実行制御部11bからの描画要求を受け付けた場合に、アプリの処理結果の表示用イメージをアプリにより指定されたフレームバッファ13上の描画位置へビットマップ形式で描画する。なお、ここでは、アプリにより描画要求を受け付ける場合を説明したが、OS実行制御部11aからの描画要求を受け付けることもできる。一例としては、グラフィックドライバ12は、OS実行制御部11aからマウスカーソルの描画要求を受け付けた場合に、マウスカーソルの表示用イメージをOSにより指定されたフレームバッファ13上の描画位置へビットマップ形式で描画する。
フレームバッファ(frame buffer)13は、グラフィックドライバ12により描画されたビットマップデータを記憶する記憶デバイスである。かかるフレームバッファ13の一態様としては、VRAM(Video Random Access Memory)を始めとするRAM(Random Access Memory)、ROM(Read Only Memory)やフラッシュメモリ(flash memory)などの半導体メモリ素子が挙げられる。なお、フレームバッファ13は、ハードディスク、光ディスクなどの記憶装置を採用することとしてもかまわない。
サーバ側リモート画面制御部14は、サーバ側リモート画面制御用アプリを通じて、リモート画面制御サービスをクライアント端末20へ提供する処理部である。図1に示すように、サーバ側リモート画面制御部14は、操作情報取得部14aと、画面生成部14bと、変更頻度判別部14cと、高頻度変更領域識別部14dと、エンコーダ14eと、第1の画像送信部14fと、第2の画像送信部14gとを有する。さらに、サーバ側リモート画面制御部14は、属性情報送信部14hと、コピーイベント制御部14kと、全画面動画化判定部14mとを有する。
操作情報取得部14aは、クライアント端末20から操作情報を取得する処理部である。かかる操作情報の一例としては、マウスの左右のクリックを始め、ダブルクリックやドラッグ、マウスの移動操作を介して得られたマウスカーソルの位置や移動量などが挙げられる。操作情報の他の一例としては、マウスホイールの回転量、キーボードのうち押下されたキーの種別なども挙げられる。
画面生成部14bは、クライアント端末20の表示部22に表示させる画面の画像を生成する処理部である。一例としては、画面生成部14bは、グラフィックドライバ12によりフレームバッファ13へビットマップデータが格納される度に、次のような処理を起動する。すなわち、画面生成部14bは、前回のフレーム生成時にクライアント端末20で表示させていたデスクトップ画面と、今回のフレーム生成時にフレームバッファ13へ書き込まれたデスクトップ画面とを比較する。そして、画面生成部14bは、前回のフレームから変更があった部分の画素をつなぎ合わせた上で矩形に整形した更新矩形の画像を生成し、更新矩形送信用のパケットを生成する。
変更頻度判別部14cは、フレームバッファ13に描画された画像を分割した領域ごとにフレーム間の変更の頻度を判別する処理部である。一例としては、変更頻度判別部14cは、画面生成部14bにより生成された更新矩形を図示しない作業用の内部メモリへ所定の期間にわたって蓄積する。このとき、変更頻度判別部14cは、更新矩形の位置および大きさを特定可能な属性情報、例えば更新矩形の左上の頂点の座標と更新矩形の幅および高さとを蓄積する。かかる更新矩形を蓄積させる期間は、高頻度変更領域を識別する精度と相関関係があり、期間を長くするほど高頻度変更領域の誤検出が低減される。なお、ここでは、一例として、1秒間にわたって更新矩形の画像を蓄積する場合を想定する。
このとき、変更頻度判別部14cは、更新矩形の画像を蓄積してから所定の期間が経過した場合に、クライアント端末20に表示させるデスクトップ画面をメッシュ(mesh)状に分割したマップ(map)を用いて、デスクトップ画面の変更頻度を判別する。
図2は、デスクトップ画面の分割要領を説明するための図である。図2に示す符号30は、変更頻度判別用のマップを示す。図2に示す符号31は、マップ30に含まれるメッシュを指す。図2に示す符号32は、メッシュ31を形成する画素のブロックに含まれる1画素を指す。図2に示す例では、変更頻度判別部14cがマップ30を占める画素のうち8画素×8画素のブロックを1つのメッシュとして分割する場合を想定している。この場合には、1つのメッシュに64個の画素が含まれることになる。
ここで、変更頻度判別部14cは、作業用の内部メモリに蓄積した更新矩形の位置および大きさにしたがって更新矩形の画像を変更頻度判別用のマップに順次展開する。そして、変更頻度判別部14cは、更新矩形をマップに展開する度に、マップ上で更新矩形と重なり合った部分のメッシュの変更回数を累積して加算する。このとき、変更頻度更新部14cは、マップ上に展開された更新矩形がメッシュに含まれる画素との間で所定数にわたって重なり合った場合に、そのメッシュの変更回数を1つ加算する。なお、ここでは、更新矩形がメッシュに含まれる画素と1つでも重なり合った場合に、メッシュの変更回数を加算する場合を想定して説明を行う。
図3A〜図3Cは、デスクトップ画面の変更頻度の判別要領を説明するための図である。図3A〜図3Cに示す符号40A、符号40B及び符号40Nは変更頻度判別用のマップを示す。図3A及び図3Bに示す符号41A及び符号41Bは更新矩形を示す。ここで、マップ40Aのメッシュ内に図示した数字は、更新矩形41Aが展開された時点におけるメッシュの変更回数を示す。また、マップ40Bのメッシュ内に図示した数字は、更新矩形41Bが展開された時点におけるメッシュの変更回数を示す。さらに、マップ40Nのメッシュ内に図示した数字は、作業用の内部メモリに蓄積した更新矩形が全て展開された時点におけるメッシュの変更回数を示す。なお、図3A〜図3Cにおいて数字が図示されていないメッシュは変更回数がゼロであるものとする。
図3Aに示すように、更新矩形41Aがマップ40Aに展開された場合には、網掛け部分のメッシュが更新矩形41Aと重なり合う。このため、変更頻度判別部14cは、網掛け部分のメッシュの更新回数を1つずつ加算する。この場合には、各メッシュの変更回数はゼロであるため、網掛け部分の変更回数は0から1に加算される。さらに、図3Bに示すように、更新矩形41Bがマップ40Bに展開された場合には、網掛け部分のメッシュが更新矩形41Bと重なり合う。このため、変更頻度判別部14cは、網掛け部分のメッシュの更新回数を1つずつ加算する。この場合には、各メッシュの変更回数は1であるため、網掛け部分の変更回数は1から2に加算される。このようにして全ての更新矩形がマップに展開された段階では、図3Cに示すマップ40Nの結果が得られる。
そして、変更頻度判別部14cは、作業用の内部メモリに蓄積した更新矩形を全てマップに展開し終えた場合に、所定の期間における変更回数、すなわち変更頻度がしきい値を超えるメッシュを取得する。図3Cの例で言えば、しきい値を「4」としたとき、網掛け部分のメッシュが取得されることになる。かかるしきい値は、その値を高く設定するほどデスクトップ画面で動画が表示されている可能性が高い部分を後述のエンコーダ14eによりエンコードできる。なお、上記の「しきい値」は、サーバ側リモート画面制御用アプリの開発者が段階的に設定した値をエンドユーザに選択させたり、また、エンドユーザが値を直接設定することができる。
図1の説明に戻り、高頻度変更領域識別部14dは、クライアント端末20に表示されるデスクトップ画面のうち高頻度で変更される領域を高頻度変更領域として識別する処理部である。
高頻度変更領域識別部14dは、変更頻度判別部14cにより変更回数がしきい値を超えるメッシュが取得された場合に、隣接するメッシュ同士を連結したメッシュ連結体を矩形に補正する。一例としては、高頻度変更領域識別部14dは、メッシュ連結体に補間する補間領域を導出した上でメッシュ連結体に補間領域を足し合わせることによりメッシュ連結体を矩形に補正する。この補間領域の導出には、メッシュの連結体が最小の補間で矩形に整形される領域を導出するアルゴリズム(algorithm)が適用される。
図4は、メッシュ連結体の補正要領を説明するための図である。図4に示す符号51は補正前のメッシュ連結体を示す。図4に示す符号52は補間領域を示す。また、図4に示す符号53は補正後の矩形を示す。図4に示すように、高頻度変更領域識別部14dは、メッシュ連結体51に補間領域52を足し合わせることにより、メッシュ連結体51を矩形53に補正する。この段階では、後述の矩形の合成が完了しておらず、矩形53が未だ高頻度変更領域と確定していないので、補正後の矩形を高頻度変更領域の候補と呼ぶこととする。
高頻度変更領域識別部14dは、高頻度変更領域の候補が複数存在する場合には、複数の高頻度変更領域の候補の距離が所定の値以下である高頻度変更領域の候補同士を含む矩形に合成する。ここで言う高頻度変更領域の候補の距離とは、補正後の矩形の最短距離を指すものとする。一例としては、高頻度変更領域識別部14dは、高頻度変更領域の候補を合成するにあたって各候補の間を埋める補間領域を導出した上で高頻度変更領域の候補に補間領域を足し合わせることにより、高頻度変更領域の候補同士を含む矩形に合成する。この補間領域の導出には、高頻度変更領域の候補の間が最小の補間で合成体に整形される領域を導出するアルゴリズム(algorithm)が適用される。
図5は、高頻度変更領域の候補の合成要領を説明するための説明図である。図5に示す符号61A及び符号61Bは、高頻度変更領域の候補を指す。図5に示す符号62は補間領域を指す。図5に示す符号63は、高頻度変更領域の候補61A及び高頻度変更領域の候補61Bの合成体を指す。図5に示すように、高頻度変更領域識別部14dは、高頻度変更領域の候補61A及び高頻度変更領域の候補61Bの距離dが所定の距離以内である場合に補間領域62を足し合わせる。これにより、高頻度変更領域の候補61A及び高頻度変更領域の候補61Bを含む合成体63へ合成する。そして、高頻度変更領域識別部14dは、このようにして得た合成体を高頻度変更領域と識別する。
このようにして高頻度変更領域を識別すると、高頻度変更領域識別部14dは、高頻度変更領域の位置および大きさを特定可能な属性情報を後述の属性情報送信部14hへ出力する。このようにして属性情報送信部14hに高頻度変更領域の属性情報をクライアント端末20へ通知させることにより、クライアント端末20で表示されるデスクトップ画面のビットマップデータのうち高頻度変更領域に対応する部分をブランク表示させる。その後、高頻度変更領域識別部14dは、作業用の内部メモリにマッピングされたメッシュの変更回数を後述の全画面動画化判定用マップに加算した上でクリア(clear)する。なお、高頻度変更領域識別部14dは、高頻度変更領域の属性情報を作業用の内部メモリに登録する。
また、高頻度変更領域識別部14dは、画面生成部14bにより更新矩形が生成される度に、その更新矩形が作業用の内部メモリに記憶された高頻度変更領域、すなわち後述の第2の画像送信部14gにより動画を送信中の領域に含まれるか否かを判定する。このとき、高頻度変更領域識別部14dは、更新矩形が高頻度変更領域に含まれない場合には、更新矩形の画像および属性情報を後述の第1の画像送信部14fに送信させる。一方、高頻度変更領域識別部14dは、更新矩形が高頻度変更領域に含まれる場合には、原則として、後述の第1の画像送信部14fに更新矩形の画像および属性情報を送信させない。なお、更新矩形がOS実行制御部11aにより描画されたマウスのものである場合には、マウスに関する更新矩形の画像および属性情報を例外的に送信させることとしてもよい。
また、高頻度変更領域識別部14dは、フレームバッファ13にビットマップデータが描画される度に、作業用の内部メモリに高頻度変更領域の属性情報が登録されているか否かを判定する。そして、高頻度変更領域識別部14dは、高頻度変更領域の属性情報が登録されている場合に、フレームバッファ13に描画されたビットマップデータのうち高頻度変更領域に対応する部分のビットマップ画像を切り出した上で後述のエンコーダ14eへ出力する。
エンコーダ14eは、画像をエンコードする処理部である。一例として、高頻度変更領域識別部14dから高頻度変更領域の画像が入力される画像をエンコードする場合が挙げられる。この場合には、エンコーダ14eは、高頻度変更領域識別部14dから入力された高頻度変更領域のビットマップ画像がストリーム(stream)を形成可能なフレーム数に到達した段階で高頻度変更領域のビットマップ画像をエンコードする。なお、エンコード方式の一態様としては、MPEG−2やMPEG−4などのMPEG方式やMotion−JPEG方式が挙げられる。
第1の画像送信部14fは、画面生成部14bにより生成された更新矩形の画像および属性情報をクライアント端末20へ送信する処理部である。この更新矩形を送信する場合の通信プロトコルには、一例としてVNCにおけるRFBプロトコルが採用される。
第2の画像送信部14gは、エンコーダ14eによりエンコードされたエンコード画像をクライアント端末20へ送信する処理部である。このエンコード画像を送信する場合の通信プロトコルには、一例として、RTP(Real-time Transport Protocol)を採用できる。
属性情報送信部14hは、画像の属性情報をクライアント端末20へ送信する処理部である。一例としては、高頻度変更領域識別部14dにより高頻度変更領域が識別されると、属性情報送信部14hは、高頻度変更領域の位置および大きさを特定可能な属性情報をクライアント端末20へ送信する。これにより、クライアント端末20で表示されるデスクトップ画面のビットマップデータのうち高頻度変更領域に対応する部分をブランク表示させる。
図6A〜図6Cは、高頻度変更領域の属性情報の通知要領を説明するための図である。図6Aに示す符号70Aは、フレームバッファ13に描画されたデスクトップ画面の一例を示す。図6B〜図6Cに示す符号70B及び符号70Cは、変更頻度判別用のマップを示す。図6Aに示す符号71は、ブラウザ(browser)画面を指す。図6Aに示す符号72は、動画再生画面を指す。図6Bに示す符号73は、マウスの移動軌跡を示す。図6Bに示す符号74は、アプリによる動画再生領域を示す。
図6Aに示すように、デスクトップ画面70Aには、ブラウザ画面71及び動画再生画面72が含まれる。このデスクトップ画面70Aから経時的な変化を追った場合には、図6Bに示すように、静止画であるブラウザ画面71の更新矩形は検出されず、マウスの移動軌跡73および動画再生領域74に関する更新矩形が検出される。このうち、動画再生領域74で変更回数がしきい値を超えるメッシュ、すなわち図示の網掛け部分が高頻度変更領域識別部14dにより識別されたものとする。この場合には、属性情報送信部14hは、図6Cに示す網掛け部分の高頻度変更領域の左上の頂点の座標(x,y)と、高頻度変更領域の幅wおよび高さhとを高頻度変更領域の属性情報としてクライアント端末20へ送信する。なお、ここでは、高頻度変更領域の位置を特定する点として左上の頂点の座標を採用する場合を説明したが、他の頂点を採用することとしてもかまわない。また、高頻度変更領域の位置を特定することができる点であれば、頂点以外の任意の点、例えば重心などを採用できる。また、ここでは、画面上の左上を座標軸XYの原点とする場合を説明したが、画面内および画面外の任意の点を原点とすることができる。
このように、サーバ装置10では、動画向けの圧縮方式を用いる領域を高頻度変更領域として特定のアプリケーションに依存せずに識別する。さらに、サーバ装置10では、高頻度変更領域以外の領域については変更があった部分の画像を送信しつつ、高頻度変更領域についてはその領域に対応する画像を動画向けの圧縮方式のデータに圧縮する。それゆえ、サーバ装置10では、クライアント端末20へ送信する画像のうち操作レスポンスを悪化させる根本となる画像に重点を置いてデータ量を低減しつつ、圧縮処理を行うエンコーダ、端末装置側で復号化処理を行うデコーダの負荷を最小限にできる。このため、サーバ装置10では、シンクライアントの汎用性を維持しつつ、操作レスポンスを向上させることが可能になる。
ところが、サーバ装置10では、高頻度変更領域を識別するには一定の時間が必要となる。このため、フレームバッファ13へ描画される画像のフレーム間で動きが激しい変更が描画されたとしても変更が短期間である場合には、その変更が行われた領域を高頻度変更領域として識別することはできない。
例えば、ウィンドウ(window)が移動された場合には、ウィンドウの動きを追従することができず、クライアント端末20で動画をスムーズ(smooth)に表示できない場合がある。図7は、ウィンドウが移動する場合にサーバ装置がクライアント端末へ送信する画像の送信方式の一例を示す図である。図7の例では、動画アプリが動画を再生している場合にそのウィンドウのタイトルバー(title bar)がドラッグ&ドロップ(drag and drop)される場合を想定している。
図7に示すように、動画アプリにより動画が再生されるまでは、ウィンドウは停止しているので、フレーム間の変更部分が更新矩形の画像としてサーバ装置10からクライアント端末20へ送信される。そして、時刻T1となって動画アプリによる動画の再生が開始される。その後、時刻T2となった段階でサーバ装置10によりウィンドウが高頻度変更領域と識別されてウィンドウの画像が動画でクライアント端末20へ送信され始める。
ところが、時刻T3になった段階でウィンドウのタイトルバーをドラッグ&ドロップすることにより移動され始める。そうすると、動きの激しい部分がウィンドウの移動に伴って一緒に移動するので、動画再生中であるにもかかわらず、ウィンドウは高頻度変更領域とは識別されなくなる。その後、時刻T4になってウィンドウの移動が停止されてからも時刻T5になるまで、ウィンドウは高頻度変更領域とは識別されない。そして、ようやく時刻T5になってサーバ装置10によりウィンドウが高頻度変更領域と識別されてウィンドウの画像が動画でクライアント端末20へ送信され始める。
このように、ウィンドウが移動された場合には、網掛け部分の期間にわたって動画アプリにより再生される動画が更新矩形としてクライアント端末20へ送信されるので、操作レスポンスが低下する。
かかるウィンドウの移動に対応するために、本実施例に係るサーバ装置10では、コピーイベント(copy event)を発生させることにより、ウィンドウの移動を追従することとした。ここで、コピーイベントとは、実際のウィンドウが移動された場合にウィンドウと擬似的にみなしたコピー領域をマウスの移動軌跡にしたがって移動させることにより、ウィンドウの移動にコピー領域を追従させるイベントを指す。
すなわち、本実施例に係るサーバ装置10では、ウィンドウの移動に追従するコピー領域の位置及び大きさを特定可能な属性情報をクライアント端末20へ送信するとともに、フレームバッファ13上でコピー領域に描画される画像を動画化して送信する。
これによって、大量の更新矩形を発生させずに動きが激しいコピー領域の画像を圧縮してクライアント端末20へ送信できるので、ウィンドウが移動した場合の操作レスポンスが改善される。
しかしながら、ウィンドウの移動がクライアント端末20の画面の大部分に及ぶ場合などには、画面のうちコピー領域の一部だけを動画化してクライアント端末20へ送信した方が全画面を動画化する場合よりもサーバ装置10の負荷が重くなる場合がある。なぜなら、上述の高頻度変更領域を識別するには、所定の時間にわたって蓄積した更新矩形をメモリ上にマッピングする必要があるからである。特に、スマートフォンなどの小型の携帯端末の場合には、画面のサイズ自体が小さいので、全画面を動画化した方が有効である場合がある。
そこで、本実施例に係るサーバ装置10では、フレームバッファ13に描画した画面の更新部分をクライアント端末20へ転送する際に、ウィンドウの移動によって画面内の更新面積や更新頻度が閾値以上になった場合には全画面を動画化して転送する。これによって、本実施例に係るサーバ装置10では、全画面を動画化した方がサーバ装置10の処理負荷が軽くなる場合に全画面を動画化することができる。よって、本実施例に係るサーバ装置10によれば、ウィンドウ移動のレスポンスを向上できる。
図1の説明に戻り、上記のコピーイベントを実現するコピーイベント制御部14kと、全画面の動画化を実現する全画面動画化判定部14mとについて説明する。このうち、コピーイベント制御部14kは、コピーイベントの発生、実行および終了を制御する処理部である。
かかるコピーイベントを発生させる契機について説明する。コピーイベント制御部14kは、高頻度変更領域識別部14dにより識別された高頻度変更領域が所定のサイズ、例えば50×50ピクセル(pixel)以上であるか否かを判定する。このとき、高頻度変更領域が所定のサイズ以上である場合には、コピーイベント制御部14kは、特定のマウスイベントが検出されたか否か、例えばドラッグ&ドロップが操作情報取得部14aにより取得されているか否かをさらに判定する。そして、特定のマウスイベントが検出された場合には、コピーイベント制御部14kは、コピーイベントを発生させる。なお、ここでは、マウスイベントによりコピーイベントの発生可否を判定する場合を説明したが、タブレット(tablet)やキーボードの操作からコピーイベントの発生可否を判定するようにしてもよい。
このように、一定のサイズ以上の高頻度変更領域が存在する場合には、フレームバッファ13に動画を含むウィンドウが描画されている可能性が高まる。かかる状況でウィンドウを移動させる操作が取得された場合には、動画を含むウィンドウを移動させる操作がなされていると推定できる。よって、OSから特段の情報を収集せずとも、コピーイベントを適切なタイミングで発生させることができる。
次に、コピーイベントを終了させる契機について説明する。コピーイベント制御部14kは、特定のマウスイベントが検出されたか否かを判定する。そして、特定のマウスイベントが検出されなくなった場合、すなわちウィンドウの移動操作が終了された場合には、コピーイベント制御部14kは、コピーイベントを終了させる。なお、ウィンドウの移動操作が終了された場合には、ドラッグ操作に含まれる左クリックが解除された旨の操作情報が後述の操作情報取得部14aにより取得される。また、マウスカーソルの更新矩形が所定の期間にわたって通知されなくなった場合もウィンドウの移動操作が終了されたと言える。
次に、コピーイベントで実行される処理内容について説明する。コピーイベント制御部14kは、操作情報取得部14aによりマウスの移動量が取得された場合に、前回にコピーイベントを実行したコピー領域の位置と、今回に取得されたマウスの移動量とから今回のコピー領域の位置を算出する。なお、コピー領域の位置および大きさは、高頻度変更領域と同様に、左上の頂点の座標で位置が規定されるとともに高頻度変更領域の幅wおよび高さhで大きさが規定されるものとする。
図8は、コピー領域の位置を算出する方法を説明するための図である。図8に示す「t0」の領域は、時刻t0にコピーイベントを実行したコピー領域であり、コピーイベント発生時の高頻度変更領域の属性情報、すなわち左上の頂点の座標(x0,y0)と高頻度変更領域の幅wおよび高さhと同じである。図8に示す「t1」の領域は、時刻t1にコピーイベントを実行したコピー領域である。図8に示す「t2」の領域は、時刻t2にコピーイベントを実行したコピー領域である。
例えば、図8に示す時刻t1のコピー領域の位置は、時刻t0のコピー領域の座標(x0,y0)に時刻t1に取得したマウスの移動量を加算することにより、左上の頂点の座標が(x1,y1)と算出される。例えば、図8に示す時刻t2のコピー領域の位置は、時刻t1のコピー領域の座標(x1,y1)に時刻t2に取得したマウスの移動量を加算することにより、左上の頂点の座標が(x2,y2)と算出される。なお、コピー領域の幅および高さは、高頻度変更領域の幅wおよび高さhが各更新カウントのコピー領域で引き継がれる。
このようにしてコピー領域の属性情報が算出された後に、コピーイベント制御部14kは、コピー領域の属性情報を属性情報送信部14hへ出力する。この属性情報送信部14hによりコピー領域の属性情報がクライアント端末20へ送信される。
また、コピーイベント制御部14kは、コピー領域の属性情報をエンコーダ14eへ出力する。そして、フレームバッファ13に描画されたビットマップ画像のうち、コピー領域に対応する位置および大きさの画像がエンコーダ14eにより順次エンコードされる。その後、第2の画像送信部14gによりエンコード画像がクライアント端末20へ送信される。
全画面動画化判定部14mは、フレームバッファ13に描画された画面全体を動画化するか否かを判定する処理部である。この全画面動画化判定部14mは、コピーイベントが発生している場合に、作業用の内部メモリにマッピングされた全画面動画化判定用マップを用いて、移動面積At及び更新頻度Ctを算出する。ここで、移動面積Atとは、画像のフレーム間における変更が累積して更新された面積を指す。また、更新頻度とは、画像のフレーム間における変更の頻度を指す。なお、コピーイベントが発生していない場合には、ウィンドウが移動しておらず、サーバ装置10の処理負荷が重くなりにくいので、全画面の動画化の要否は判定しない。この場合には、全画面動画化判定用マップをクリアする。
図9は、ウィンドウが移動する一態様を示す図である。図9に示す符号200は、全画面動画化判定用マップを指す。図9に示す符号t0は、ウィンドウが時刻t0に所在した位置を示す。図9に示す符号t1は、ウィンドウが時刻t1に所在した位置を示す。図9に示す符号t2は、ウィンドウが時刻t2に所在した位置を示す。図9に示す符号t3は、ウィンドウが時刻t3に所在した位置を示す。
図10A〜図10Cは、更新頻度と移動頻度を説明するための図である。図10A、図10B及び図10Cに示す符号210B、符号210C及び符号210Dは、全画面動画化判定用マップを示す。網掛け部分は、コピーイベントが発生してから更新矩形が1度でも検出されたメッシュを指し、全てのメッシュを足し合わせた数が移動面積Atとなる。全画面動画化判定用マップ210B、210C及び210Dのメッシュ内に図示した数字は、メッシュ内の更新頻度を指し、全てのメッシュを足し合わせた数が更新頻度Ctとなる。
図10Aの例では、図9に示したウィンドウが時刻t1にあるときの全画面動画化判定用マップ210Bを表す。図10Aの例で言えば、全画面動画化判定部14mは、網掛け部分のメッシュを足し合わせることにより移動面積Atを「22」と算出するとともに、メッシュ内の数字を足し合わせることにより更新頻度Ctを「49」と算出する。
図10Bの例では、図9に示したウィンドウが時刻t2にあるときの全画面動画化判定用マップ210Cを表す。図10Bの例で言えば、全画面動画化判定部14mは、網掛け部分のメッシュを足し合わせることにより移動面積Atを「36」と算出するとともに、メッシュ内の数字を足し合わせることにより更新頻度Ctを「82」と算出する。
図10Cの例では、図9に示したウィンドウが時刻t3にあるときの全画面動画化判定用マップ210Dを表す。図10Cの例で言えば、全画面動画化判定部14mは、網掛け部分のメッシュを足し合わせることにより移動面積Atを「42」と算出するとともに、メッシュ内の数字を足し合わせることにより更新頻度Ctを「98」と算出する。
このようにして移動面積At及び更新頻度Ctを算出した後に、全画面動画化判定部14mは、更新頻度Ctが閾値C未満であるか否かを判定する。このとき、更新頻度Ctが閾値C未満である場合には、全画面動画化判定部14mは、移動面積Atが閾値A2未満である否かをさらに判定する。一方、更新頻度Ctが閾値C以上である場合には、全画面動画化判定部14mは、移動面積Atが閾値A1未満である否かをさらに判定する。
このように、更新頻度Ctが閾値未満である場合には、移動面積Atと比較する閾値A2とし、また、更新頻度が閾値以上である場合には、閾値A2よりも小さい閾値A1の値を変更するのは、次のような理由である。その理由とは、動画を含むウィンドウはある程度の移動があれば全画面を動画化し、静止画であるウィンドウは多少の移動では動画化しないように判定ロジックとし、サーバ装置10の負荷を最小化するためである。
ここで、更新頻度Ctと比較する閾値Cは、図9に示したウィンドウに動画が含まれるか否かを判定できる値であることが好ましい。また、移動面積Atと比較する閾値A1は、動画が含まれるウィンドウの移動が全画面を動画化した場合におけるサーバ装置10の処理負荷を超える値であることが好ましい。また、移動面積Atと比較する閾値A2は、静止画であるウィンドウの移動が全画面を動画化した場合におけるサーバ装置10の処理負荷を超える値であることが好ましい。なお、閾値A1と閾値A2の関係は、A1<A2であるものとする。
例えば、閾値Cを「50」、閾値A1を「30」、閾値A2を「50」であると仮定する。図10Aの例では、更新頻度Ctが「49」であるので、更新頻度Ct<閾値Cとなり、移動面積Atが「22」であるので、移動面積At<閾値A2となる。このため、図9に示したウィンドウは時刻t1の段階では動画化されない。図10Bの例では、更新頻度Ctが「82」であるので、更新頻度Ct≧閾値Cとなり、移動面積Atが「36」であるので、移動面積At≧閾値A1となる。このため、図9に示したウィンドウは時刻t2の段階で全画面を動画化すると判定する。なお、図9に示したウィンドウは時刻t2の段階で全画面が動画化されるので、実際には更新頻度Ct「98」および移動面積At「42」の算出や全画面動画化の要否が判定されることはない。
そして、全画面動画化判定部14mは、移動面積Atが閾値A1以上である場合または移動面積Atが閾値A2以上である場合に、全画面を動画化すると判定する。この場合に、全画面動画化判定部14mは、フレームバッファ13に描画された画面全体をエンコードの対象とするようにエンコーダ14eへ指示する。そして、フレームバッファ13に描画されたビットマップ画像全体がエンコーダ14eにより順次エンコードされる。その後、第2の画像送信部14gによりエンコード画像がクライアント端末20へ送信される。なお、全画面の動画化は、特定のマウスイベントが検出されなくなった場合、すなわちウィンドウの移動が終了した場合に、元の更新矩形を送信する形態に戻す。
なお、OS実行制御部11a、アプリ実行制御部11b、グラフィックドライバ12、サーバ側リモート画面制御部14には、各種の集積回路や電子回路を採用できる。また、サーバ側リモート画面制御部14に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)が挙げられる。また、電子回路としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などが挙げられる。
[クライアント端末の構成]
次に、本実施例に係るクライアント端末の構成について説明する。図1に示すように、クライアント端末20は、入力部21と、表示部22と、クライアント側リモート画面制御部23とを有する。なお、図1の例では、図1に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば音声出力部などの機能を有するものとする。
入力部21は、各種の情報、例えば後述のクライアント側リモート画面制御部23に対する指示入力を受け付ける入力デバイスであり、一例としては、キーボード(keyboard)やマウス(mouse)などを適用できる。なお、後述の表示部22も、マウスと協働して、ポインティングデバイス(pointing device)機能を実現する。
表示部22は、各種の情報、例えばサーバ装置10から送信されたデスクトップ画面などを表示する表示デバイスであり、一例としては、モニタ(monitor)、ディスプレイ(display)やタッチパネル(touch panel)などを適用できる。
クライアント側リモート画面制御部23は、クライアント側リモート画面制御用アプリを通じて、サーバ装置10によるリモート画面制御サービスの提供を受ける処理部である。このクライアント側リモート画面制御部23は、図1に示すように、操作情報通知部23aと、第1の画像受信部23bと、第1の表示制御部23cと、第2の画像受信部23dと、デコーダ23eと、第2の表示制御部23fとを有する。
操作情報通知部23aは、入力部21による操作情報をサーバ装置10へ通知する処理部である。一例としては、操作情報通知部23aは、マウスの左右のクリックを始め、ダブルクリックやドラッグ、マウスの移動操作を介して得られたマウスカーソルの位置や移動量などを操作情報として通知する。他の一例としては、操作情報通知部23aは、マウスホイールの回転量、キーボードのうち押下されたキーの種別なども操作情報として通知する。
第1の画像受信部23bは、サーバ装置10の第1の画像送信部14fにより送信された更新矩形の画像および属性情報を受信する処理部である。また、第1の画像受信部23bは、サーバ装置10の属性情報送信部14hにより送信された高頻度変更領域の属性情報またはコピー領域の属性情報を受信する。
第1の表示制御部23cは、第1の画像受信部23bにより受信された更新矩形の画像を表示部11に表示させる処理部である。一例としては、第1の表示制御部23cは、第1の画像受信部23bにより受信された更新矩形の属性情報に含まれる位置および大きさに対応する表示部22の画面領域に更新矩形のビットマップ画像を表示させる。
他の一例としては、第1の表示制御部23cは、第1の画像受信部23bにより高頻度変更領域の属性情報またはコピー領域の属性情報が受信された場合には、次のような処理を行う。すなわち、第1の表示制御部23cは、高頻度変更領域の属性情報またはコピー領域の属性情報に含まれる位置および大きさに対応する表示部22の画面領域をビットマップ画像の表示対象外のブランク領域とする。
第2の画像受信部23dは、サーバ装置10の第2の画像送信部14gにより送信された高頻度変更領域、コピー領域のエンコード画像または全画面のエンコード画像を受信する処理部である。
デコーダ23eは、第2の画像受信部23dにより受信された高頻度変更領域、コピー領域または全画面のエンコード画像をデコードする処理部である。なお、デコーダ23eには、サーバ装置10に搭載されるエンコード方式に適合するデコード方式のデコーダが搭載される。
第2の表示制御部23fは、デコーダ23eによりデコードされたデコード画像を表示部22に表示させる処理部である。
一例としては、デコーダ23eから入力されるデコード画像が高頻度変更領域のデコード画像である場合には、第2の表示制御部23fは、第1の表示制御部23cによりブランク領域とされた表示部22の画面領域にデコード画像を表示させる。
他の一例としては、デコーダ23eにより入力されるデコード画像がコピー領域のデコード画像である場合には、第2の表示制御部23fは、第1の表示制御部23cによりブランク領域とされた表示部22の画面領域にデコード画像を表示させる。
更なる一例としては、デコーダ23eにより入力されるデコード画像が全画面のデコード画像である場合には、第2の表示制御部23fは、全画面のデコード画像を表示部22に表示させる。
なお、クライアント側リモート画面制御部23には、各種の集積回路や電子回路を採用できる。また、クライアント側リモート画面制御部23に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)が挙げられる。また、電子回路としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などが挙げられる。
[処理の流れ]
次に、本実施例に係るシンクライアントシステムの処理の流れについて説明する。図11及び図12は、実施例1に係る画像送信処理の手順を示すフローチャートである。この画像送信処理は、サーバ装置10により実行される処理であり、フレームバッファ13にビットマップデータが描画された場合に起動する。
図11に示すように、フレームバッファ13にビットマップデータが描画されると、画面生成部14bは、前回のフレームから変更があった部分の画素をつなげ合わせた上で矩形に整形した更新矩形の画像を生成する(ステップS101)。そして、画面生成部14bは、先に生成した更新矩形の画像から更新矩形送信用のパケットを生成する(ステップS102)。
続いて、変更頻度判別部14cは、画面生成部14bにより生成された更新矩形を図示しない作業用の内部メモリへ蓄積する(ステップS103)。なお、コピー領域の更新矩形は、高頻度変更領域の識別に関する処理量を削減するために、作業用の内部メモリには蓄積されない。
そして、コピーイベント中の領域に含まれる更新矩形ではない場合(ステップS104否定)には、変更頻度判別部14cは、更新矩形の蓄積を開始してから所定の期間が経過したか否かを判定する(ステップS105)。
このとき、更新矩形の蓄積を開始してから所定の期間が経過していない場合(ステップS105否定)には、以降に続く高頻度変更領域の識別に関する処理をとばし、後述のステップS116へ移行する。
一方、更新矩形の蓄積を開始してから所定の期間が経過した場合(ステップS105肯定)には、変更頻度判別部14cは、次のような処理を行う。すなわち、変更頻度判別部14cは、作業用の内部メモリに蓄積した更新矩形の位置および大きさにしたがって更新矩形の画像を変更頻度判別用のマップに順次展開する(ステップS106)。そして、変更頻度判別部14cは、変更頻度判別用のマップに含まれるメッシュのうち変更頻度がしきい値を超えるメッシュを取得する(ステップS107)。
その後、高頻度変更領域識別部14dは、変更頻度判別部14cにより変更頻度がしきい値を超えるメッシュが取得されたか否かを判定する(ステップS108)。このとき、変更頻度がしきい値を超えるメッシュが存在しない場合(ステップS108否定)には、高頻度変更領域がデスクトップ画面に存在しないので、以降に続く高頻度変更領域の識別に関する処理をとばし、ステップS113へ移行する。
一方、変更頻度がしきい値を超えるメッシュが存在する場合(ステップS108肯定)には、高頻度変更領域識別部14dは、隣接するメッシュ同士を連結したメッシュ連結体を矩形に補正する(ステップS109)。
そして、補正後の矩形、すなわち高頻度変更領域の候補が複数存在する場合(ステップS110肯定)には、高頻度変更領域識別部14dは、次のような処理を行う。すなわち、高頻度変更領域識別部14dは、複数の高頻度変更領域の候補の距離が所定の値以下である高頻度変更領域の候補同士を含む矩形に合成する(ステップS111)。なお、高頻度変更領域の候補が複数存在しない場合(ステップS110否定)には、矩形の合成を行わずにステップS112へ移行する。
続いて、高頻度変更領域識別部14dは、高頻度変更領域の位置および大きさを特定可能な属性情報をクライアント端末20へ送信する(ステップS112)。そして、高頻度変更領域識別部14dは、作業用の内部メモリにマッピングされたメッシュの変更回数を全画面動画化判定用マップに加算した上でクリアする(ステップS113)。
そして、コピーイベント制御部14kによるコピーイベントが発生していない場合(ステップS114否定)には、全画面動画化判定部14mは、全画面動画化判定用マップをクリアする(ステップS115)。
その後、高頻度変更領域識別部14dは、画面生成部14bにより生成された更新矩形が作業用の内部メモリに記憶された高頻度変更領域、すなわち第2の画像送信部14gにより動画を送信中の領域に含まれるか否かを判定する(ステップS115)。
このとき、更新矩形が高頻度変更領域に含まれない場合(ステップS115否定)には、第1の画像送信部14fは、更新矩形の画像および属性情報をクライアント端末20へ送信し(ステップS116)、処理を終了する。
一方、更新矩形が高頻度変更領域に含まれる場合(ステップS115肯定)には、コピーイベント制御部14kは、高頻度変更領域が所定のサイズ以上であるか否かを判定する(ステップS117)。なお、高頻度変更領域が所定のサイズ未満である場合(ステップS117否定)には、コピーイベントを発生させずにステップS120へ移行する。
このとき、高頻度変更領域が所定のサイズ以上である場合(ステップS117肯定)には、コピーイベント制御部14kは、特定のマウスイベントが検出されたか否かをさらに判定する(ステップS118)。なお、特定のマウスイベントが検出されなかった場合(ステップS118否定)には、コピーイベントを発生させずにステップS120へ移行する。
そして、特定のマウスイベントが検出された場合(ステップS118肯定)には、コピーイベントを発生する(ステップS119)。そして、高頻度変更領域識別部14dは、フレームバッファ13に描画されたビットマップデータのうち高頻度変更領域に対応する部分のビットマップ画像を切り出した上でエンコーダ14eにエンコードさせる(ステップS120)。そして、エンコーダ14eによりエンコードされた高頻度変更領域のエンコード画像をクライアント端末20へ送信し(ステップS121)、処理を終了する。
先のステップS104の判定に戻り、コピーイベント中の領域に含まれる更新矩形である場合(ステップS104肯定)には、コピーイベント制御部14kは、特定のマウスイベントが検出されたか否かを判定する(ステップS122)。
このとき、特定のマウスイベントが検出されなかった場合(ステップS122否定)には、コピーイベント制御部14kは、コピーイベントを終了し(ステップS123)、ステップS105へ移行する。
一方、特定のマウスイベントが検出された場合(ステップS122肯定)には、コピーイベント制御部14kは、今回にコピーイベントが実行されるよりも1つ前のコピー領域の位置と、今回に取得したマウスの移動量とから今回にコピーイベントを実行するコピー領域の位置を算出する(ステップS124)。
続いて、属性情報送信部14hは、コピー領域の属性情報をクライアント端末20へ送信する(ステップS125)。そして、第2の画像送信部14gは、エンコーダ14eによりコピー領域がエンコードされたエンコード画像をクライアント端末20へ送信し(ステップS126)、処理を終了する。
先のステップs114の判定に戻り、コピーイベントが発生している場合(ステップS114肯定)に、全画面動画化判定部14mは、全画面動画化判定用マップを用いて、移動面積At及び更新頻度Ctを算出する(ステップS127)。そして、全画面動画化判定部14mは、更新頻度Ctが閾値C未満であるか否かを判定する(ステップS128)。
一方、更新頻度Ctが閾値C以上である場合(ステップS128否定)には、全画面動画化判定部14mは、移動面積Atが閾値A2未満である否かをさらに判定する(ステップS129)。なお、移動面積Atが閾値A2未満である場合(ステップS129肯定)には、ステップS116へ移行する。
このとき、更新頻度Ctが閾値C未満である場合(ステップS128肯定)には、全画面動画化判定部14mは、移動面積Atが閾値A2未満である否かをさらに判定する(ステップS131)。なお、移動面積Atが閾値A2未満である場合(ステップS131肯定)には、ステップS116へ移行する。
ここで、移動面積Atが閾値A1以上である場合または移動面積Atが閾値A2以上である場合(ステップS129否定またはステップS131否定)には、次のような処理を行う。すなわち、全画面動画化判定部14mは、フレームバッファ13に描画された画面全体をエンコードの対象とするようにエンコーダ14eへ指示する(ステップS130)。
なお、ステップS131の全画面の動画化は、特定のマウスイベントが検出されなくなった場合、すなわちウィンドウの移動が終了した場合(ステップS133)に元の更新矩形を送信する形態に戻すために処理を終了する。
なお、上記のステップS105〜ステップS113までの高頻度更新領域の識別に関する処理は、図11及び図12に示したフローとは別処理として動作させることもできる。この場合には、更新矩形の蓄積を開始してから所定の期間が経過する度に処理が起動することになる。
また、上記のステップ116〜ステップS117の処理は、図11及び図12に示したフローと別の処理として動作させることもできる。この場合には、画面生成部14bにより更新矩形が生成される度に処理が起動することになる。
また、上記のステップS121〜ステップS122の処理は、図11及び図12に示したフローと別の処理として動作させることもできる。この場合には、フレームバッファ13にビットマップデータが描画される度に作業用の内部メモリに高頻度変更領域の属性情報が登録されているか否かが判定される。このとき、高頻度変更領域の属性情報が登録されている場合に処理が起動することになる。
[実施例1の効果]
上述してきたように、本実施例に係るサーバ装置10では、フレームバッファ13に描画した画面の更新部分をクライアント端末20へ転送する際に、ウィンドウの移動によって画面内の更新面積や更新頻度が閾値以上になった場合には全画面を動画化して転送する。これによって、本実施例に係るサーバ装置10では、全画面を動画化した方がサーバ装置10の処理負荷が軽くなる場合に全画面を動画化することができる。よって、本実施例に係るサーバ装置10によれば、ウィンドウ移動のレスポンスを向上できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[マップクリアの延長]
例えば、上記の実施例1では、高頻度変更領域識別部14dが更新矩形を蓄積させる周期に合わせて変更頻度判別用のマップをクリアする場合を説明したが、変更頻度判別用のマップをクリアする契機はこれに限定されない。
一例としては、高頻度変更領域識別部14dは、高頻度変更領域として識別した領域において変更頻度がしきい値を超えなくなった後も所定の期間にわたって継続して高頻度変更領域と識別することもできる。
図13A及び図13Bは、マップクリアの延長要領を説明するための図である。図13Aの例では、高頻度変更領域が最初に識別された時点の変更頻度判別用のマップ80Aと、その時点の高頻度変更領域の識別結果81Aとを図示している。また、図13Bの例では、高頻度変更領域が最初に識別されてから所定の期間内である特定の時点の変更頻度判別用のマップ80Bと、その時点の高頻度変更領域の識別結果81Aとを図示している。
図13Aに示すように、マップ80Aで変更回数がしきい値を超えるメッシュ連結体が取得されて高頻度変更領域の識別結果81Aが得られた場合には、以降に変更回数がしきい値を超えるメッシュ連結体が取得されなくとも識別結果81Aを所定の期間引き継ぐ。すなわち、図13Bに示すように、マップ80Aで変更回数がしきい値を超えるメッシュ連結体が取得されずとも、最初に高頻度変更領域の識別結果81Aを識別してから所定の期間内であれば高頻度変更領域の識別結果81Aを引き継ぐ。なお、上記の「しきい値」は、サーバ側リモート画面制御用アプリの開発者が段階的に設定した値をエンドユーザに選択させたり、また、エンドユーザが値を直接設定することができる。
これによって、実際に動画が再生される領域において間欠的に動きがなくなった場合でも、高頻度変更領域を断続的に識別することがなくなる結果、高頻度変更領域で画像のコマ落ちが断続的に発生するのを防止できる。さらに、高頻度変更領域の識別結果を引き継ぐことにより高頻度変更領域のサイズ(size)が安定するので、エンコード時のパラメータを初期化する頻度を低減できる結果、エンコーダにかかる負荷を低減することも可能になる。
[高頻度変更領域の縮小の抑制]
他の一例としては、高頻度変更領域識別部14dは、高頻度変更領域として識別した領域が以前に高頻度変更領域と識別した領域よりも縮小した場合に、次のような処理を行う。すなわち、高頻度変更領域識別部14dは、当該縮小した度合いが所定のしきい値以下であるならば、前回の識別時に高頻度変更領域と識別した領域を今回の識別結果として引き継ぐ。
図14A及び図14Bは、高頻度変更領域の縮小に関する抑制要領を説明するための図である。図14Aの例では、時点T1の変更頻度判別用のマップ90Aと高頻度変更領域の識別結果91Aとを図示している。また、図14Bの例では、時点T2の変更頻度判別用のマップ90Bと高頻度変更領域の識別結果91Aとを図示している。なお、上記の時点T1および時点T2はT1<T2であるものとする。
図14Aに示すように、マップ90Aで変更回数がしきい値を超えるメッシュ連結体が取得されて高頻度変更領域の識別結果91Aが得られた場合には、時点T1以降に変更回数が閾値を超えるメッシュ連結体が縮小されても直ちに高頻度変更領域を縮小しない。すなわち、図14Bに示すように、変更回数が閾値を超えるメッシュ連結体が斜線の部分について縮小したとしてもその面積が所定のしきい値、例えば半分以下であるならば、高頻度変更領域の識別結果91Aを引き継ぐ。
これによって、実際に動画が再生される領域において一部の動きが間欠的になったとしても、高頻度変更領域を断続的に識別することがなくなる結果、高頻度変更領域で画像のコマ落ちが断続的に発生するのを防止できる。さらに、高頻度変更領域の識別結果を引き継ぐことにより高頻度変更領域のサイズが安定するので、エンコード時のパラメータを初期化する頻度を低減できる結果、エンコーダにかかる負荷を低減することも可能になる。
[重心距離]
上記の実施例1では、更新頻度や移動面積を用いることとしたが、開示の装置はこれに限定されない。例えば、開示の装置は、ウィンドウ間の重心距離を用いることができる。図15A及び図15Bは、重心距離を説明するための説明図である。
図15A及び図15BCに示す符号220B及び符号220Cは、全画面動画化判定用マップを示す。符号G1は、図9に示したウィンドウが時刻t0に所在した位置を示す。符号G2は、図9に示したウィンドウが時刻t1に所在した位置を示す。符号G3は、図9に示したウィンドウが時刻t2に所在した位置を示す。図15Aに示す例では、ウィンドウが時刻t0にあるときの重心G1と、ウィンドウが時刻t1にあるときの重心G2との距離を算出する。その上で、開示の装置は、重心G1及び重心G2の重心距離を所定の閾値を比較し、重心距離が閾値を超える場合に、全画面を動画化すると判定することもできる。また、図15Bに示す例では、重心G1及び重心G2の重心距離と同様にして、重心G2及び重心G3の重心距離をさらに算出する。その上で、開示の装置は、重心G1及び重心G2の重心距離と、重心G2及び重心G3の重心距離との合計値を所定の閾値(例えば、移動画素数が100ピクセル以上)を比較し、重心距離が閾値を超える場合に、全画面を動画化すると判定することもできる。
なお、上記の実施例では、更新頻度および移動面積に関する条件を満たす場合に、全画面を動画化する場合を説明したが、開示の装置はこれに限定されない。例えば、更新頻度、移動面積、重心距離に関する条件は、AND条件やOR条件を任意に設定できる。この、更新頻度、移動面積、重心距離に関して、それぞれの閾値を調整することで、表示するアプリケーションやコンテンツに応じた動作の最適化を行うこともできる。
[適用範囲]
上記の実施例1では、更新頻度および移動面積に関する条件を満たした場合に全画面を動画化することとしたが、これ以外の条件であってもよい。例えば、コピーイベントが発生した時点で全画面を動画化してもよい。また、上記の実施例1では、条件を満たした場合に全画面を動画化することしたが、ウィンドウが移動可能な領域のみを動画化することとしてもよい。
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
例えば、サーバ装置10の第1の画像送信部14f及び第2の画像送信部14gが実行する画像の送信処理を1つの画像送信部に統合することとしてもよい。また、クライアント端末20の第1の画像受信部23b及び第2の画像受信部23dが実行する画像の受信処理を1つの画像受信部に統合することとしてもかまわない。さらに、クライアント端末の第1の表示制御部23c及び第2の表示制御部23fが実行する表示制御処理を1つの表示制御部に統合することとしてもよい。
また、サーバ装置10が有する操作情報取得部14a、画面生成部14b、変更頻度判別部14c、高頻度変更領域識別部14d、エンコーダ14eまたは第1の画像送信部14fは次のように構成できる。さらに、サーバ装置10が有する第2の画像送信部14g、属性情報送信部14h、コピーイベント制御部14kまたは全画面動画化判定部14mは次のように構成できる。一例としては、これらの機能部をサーバ装置10の外部装置としてネットワーク経由で接続するようにしてもよい。他の一例としては、これらの機能部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のサーバ装置10の機能を実現するようにしてもよい。同様に、クライアント端末20が有する操作情報通知部23a、第1の画像受信部23b、第1の表示制御部23c、第2の画像受信部23d、デコーダ23eまたは第2の表示制御部23fを先のように構成できる。
[画像送信プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図16を用いて、上記の実施例と同様の機能を有する画像送信プログラムを実行するコンピュータの一例について説明する。なお、図16は、実施例2に係る画像送信プログラムを実行するコンピュータの一例について説明するための図である。また、ここでは、サーバ装置10と同様の機能を有する画像送信プログラムを実行するコンピュータの例を説明するが、クライアント端末20と同様の機能を有する画像表示プログラムを実行する場合も同様である。
図16に示すように、実施例2におけるコンピュータ100は、操作部110aと、マイク110bと、スピーカ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD(Hard Disk Drive)170と、RAM(Random Access Memory)180と有する。これら110〜180の各部はバス140を介して接続される。
ROM160には、上記の実施例1で示した操作情報取得部14aと、画面生成部14bと、変更頻度判別部14cと同様の機能を発揮する制御プログラムが予め記憶される。さらに、ROM160には、高頻度変更領域識別部14dと、第1の画像送信部14fと、第2の画像送信部14gと、属性情報送信部14hと、コピーイベント制御部14kと、全画面動画化判定部14mと同様の機能を発揮する制御プログラムが予め記憶される。つまり、ROM160には、図16に示すように、操作情報取得プログラム160aと、画面生成プログラム160bと、変更頻度判別プログラム160cと、高頻度変更領域識別プログラム160dとが記憶される。さらに、ROM160には、第1の画像送信プログラム160eと、第2の画像送信プログラム160fとが記憶される。さらに、ROM160には、属性情報送信プログラム160gと、コピーイベント制御プログラム160hと、全画面動画化判定プログラム160kとが記憶される。これらのプログラム160a〜160kについては、図1に示したサーバ装置10の各構成要素と同様、適宜統合又は分離しても良い。なお、ROM160に格納される各データは、常に全てのデータがROM160に格納される必要はなく、処理に必要なデータのみがROM160に格納されれば良い。
そして、CPU150が、これらのプログラム160a〜160kをROM160から読み出して実行する。これにより、CPU150は、図16に示すように、各プログラム160a〜160kについては、操作情報取得プロセス150a、画面生成プロセス150b及び変更頻度判別プロセス150c及び高頻度変更領域識別プロセス150dとして機能するようになる。さらに、CPU150は、各プログラム160e〜160kについては、第1の画像送信プロセス150e及び第2の画像送信プロセス150fとして機能するようになる。さらに、CPU150は、各プログラム160e〜160kについては、属性情報送信プロセス150g、コピーイベント制御プロセス150h及び全画面動画化判定部プロセス150kとして機能するようになる。これらプロセス150a〜150kは、図1に示したサーバ装置の各部とに対応する。そして、CPU150は、RAM180を用いて、画像送信プログラムを実行する。なお、CPU150上で仮想的に実現される各処理部は、常に全ての処理部がCPU150上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。
なお、上記した画像送信プログラムについては、必ずしも最初からHDD170やROM160に記憶させておく必要はない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ100がこれらから各プログラムを取得して実行するようにしてもよい。
1 シンクライアントシステム
10 サーバ装置
11a OS実行制御部
11b アプリ実行制御部
12 グラフィックドライバ
13 フレームバッファ
14 サーバ側リモート画面制御部
14a 操作情報取得部
14b 画面生成部
14c 変更頻度判別部
14d 高頻度変更領域識別部
14e エンコーダ
14f 第1の画像送信部
14g 第2の画像送信部
14h 属性情報送信部
14k コピーイベント制御部
14m 全画面動画化判定部
20 クライアント端末
21 入力部
22 表示部
23 クライアント側リモート画面制御部
23a 操作情報通知部
23b 第1の画像受信部
23c 第1の表示制御部
23d 第2の画像受信部
23e デコーダ
23f 第2の表示制御部

Claims (5)

  1. ネットワーク経由で接続された端末装置の表示部にコンピュータの実行結果を表示するための画像を生成して前記端末装置へ送信する情報処理装置であって、
    前記画像を保持する画像メモリと、
    前記画像を送信する第1の送信部と、
    前記画像のフレーム間における変化が累積して更新された面積及び/又は前記画像のフレーム間における変化の頻度を検出する検出部と、
    前記検出部で、閾値以上の前記面積及び/又は前記頻度を検出した場合に、前記第1の送信部とは異なる圧縮方法で前記画像を圧縮して送信する第2の送信部と
    を有することを特徴とする情報処理装置。
  2. ネットワーク経由で接続された端末装置の表示部にコンピュータの実行結果を表示するための画像を生成して前記端末装置へ送信する情報処理装置であって、
    前記画像を保持する画像メモリと、
    前記画像を送信する第1の送信部と、
    前記画像の変化からコピーイベントを検出する検出部と、
    前記コピーイベントの示すコピー領域の大きさと閾値とを比較する比較部と、
    前記比較部で、閾値以上と判断された場合に、前記コピー領域の移動範囲を含む移動可能領域を、前記第1の送信部とは異なる動画圧縮方法で圧縮して送信する第2の送信部と
    を有することを特徴とする情報処理装置。
  3. ネットワーク経由で接続された端末装置の表示部にコンピュータの実行結果を表示するための画像を生成して前記端末装置へ送信する情報処理装置に用いる画像送信プログラムであって、
    前記情報処理装置に、
    コンピュータの実行結果を描画する画像を保持する画像メモリに描画された画像を送信する第1の送信手順と、
    前記画像のフレーム間における変化が累積して更新された面積及び/又は前記画像のフレーム間における変化の頻度を検出する検出手順と、
    前記検出手順で、閾値以上の前記面積及び/又は前記頻度を検出した場合に、前記第1の送信部とは異なる圧縮方法で前記画像を圧縮して送信する第2の送信手順と
    を実行させることを特徴とする画像送信プログラム。
  4. ネットワーク経由で接続された情報処理装置により生成されたコンピュータの実行結果を表示するための画像を受信し、該受信した画像を自装置の表示部に表示する端末装置に用いる画像表示プログラムであって、
    前記端末装置に、
    コンピュータの実行結果が描画される画像を受信する第1の受信手順と、
    コンピュータの実行結果が描画される画像のうち、前記画像のフレーム間における変化が累積して更新された面積及び/又は前記画像のフレーム間における変化の頻度が閾値以上である場合に前記第1の受信手順で受信される画像とは異なる圧縮方法で圧縮された画像を受信する第2の受信手順と、
    前記第1の受信手順により受信された画像を前記表示部に表示させる第1の表示制御工程と、
    前記第2の受信手順により受信された画像を復号化した上で前記表示部に表示させる第2の表示制御工程と
    を実行させることを特徴とする画像表示プログラム。
  5. ネットワーク経由で接続された端末装置の表示部にコンピュータの実行結果を表示するための画像を生成してネットワークへ送信する情報処理装置と、前記情報処理装置から前記ネットワークを経由して受信した画像を表示する端末装置とを有する画像表示システムに用いる画像表示方法であって、
    前記情報処理装置が、
    コンピュータの実行結果を描画する画像を保持する画像メモリに描画された画像を送信する第1の送信工程と、
    前記画像のフレーム間における変化が累積して更新された面積及び/又は前記画像のフレーム間における変化の頻度を検出する検出工程と、
    前記検出工程で、閾値以上の前記面積及び/又は前記頻度を検出した場合に、前記第1の送信部とは異なる圧縮方法で前記画像を圧縮して送信する第2の送信工程とを含み、
    前記端末装置が、
    前記第1の送信工程により送信された画像を前記表示部に表示させる第1の表示制御工程と、
    前記第2の送信工程により送信された画像を復号化した上で前記表示部に表示させる第2の表示制御工程とを含んだこと
    を特徴とする画像表示方法。
JP2010151492A 2010-07-01 2010-07-01 情報処理装置、画像送信プログラム及び画像表示方法 Active JP5471903B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010151492A JP5471903B2 (ja) 2010-07-01 2010-07-01 情報処理装置、画像送信プログラム及び画像表示方法
EP20110170455 EP2403249B1 (en) 2010-07-01 2011-06-17 Transmission of image updates from a server to a thin client
US13/165,075 US8953676B2 (en) 2010-07-01 2011-06-21 Information processing apparatus, computer-readable storage medium storing image transmission program, and computer-readable non transitory storage medium storing image display program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010151492A JP5471903B2 (ja) 2010-07-01 2010-07-01 情報処理装置、画像送信プログラム及び画像表示方法

Publications (3)

Publication Number Publication Date
JP2012014533A true JP2012014533A (ja) 2012-01-19
JP2012014533A5 JP2012014533A5 (ja) 2013-02-14
JP5471903B2 JP5471903B2 (ja) 2014-04-16

Family

ID=44720247

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010151492A Active JP5471903B2 (ja) 2010-07-01 2010-07-01 情報処理装置、画像送信プログラム及び画像表示方法

Country Status (3)

Country Link
US (1) US8953676B2 (ja)
EP (1) EP2403249B1 (ja)
JP (1) JP5471903B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101263706B1 (ko) * 2012-12-28 2013-05-13 서울과학기술대학교 산학협력단 제로 클라이언트를 지원하는 가상 데스크탑 화면 전송 시스템
WO2014042137A1 (ja) * 2012-09-11 2014-03-20 日本電気株式会社 通信システムと方法とサーバ装置及び端末
JP2014528209A (ja) * 2012-08-07 2014-10-23 インテル コーポレイション 変化領域を使用したメディア符号化
JP2015532022A (ja) * 2012-07-30 2015-11-05 ヴイエムウェア インコーポレイテッドVMware,Inc. 映像符号化技法によるユーザインターフェイス・リモーティング
KR101609371B1 (ko) 2014-03-07 2016-04-05 주식회사 엔유정보통신 유무선통신 제로클라이언트를 지원하는 데스크톱 가상화 시스템
JP2016057965A (ja) * 2014-09-11 2016-04-21 富士通株式会社 サーバ、保存判定プログラムおよび保存判定方法
US10880555B2 (en) 2017-10-30 2020-12-29 Fujitsu Limited Information processing system and information processing apparatus
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

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6057115B2 (ja) * 2012-03-24 2017-01-11 日本電気株式会社 情報処理システム、情報処理方法、携帯端末、情報処理装置およびその制御方法と制御プログラム
US9213556B2 (en) 2012-07-30 2015-12-15 Vmware, Inc. Application directed user interface remoting using video encoding techniques
TWI536174B (zh) * 2014-12-17 2016-06-01 緯創資通股份有限公司 資料分享方法、資料分享系統及其伺服端裝置
KR20160131526A (ko) * 2015-05-07 2016-11-16 삼성전자주식회사 시스템 온 칩, 상기 시스템 온 칩을 포함하는 디스플레이 시스템, 및 상기 디스플레이 시스템의 동작 방법
US10082941B2 (en) 2015-05-20 2018-09-25 Vmware, Inc. Optimizing window move actions for remoted applications
US10564829B2 (en) 2016-03-25 2020-02-18 Vmware, Inc. Optimizing window resize actions for remoted applications
JP6381855B2 (ja) * 2016-04-19 2018-08-29 三菱電機株式会社 画像処理装置、画像処理方法及び画像処理プログラム
CN109753572B (zh) * 2018-12-26 2021-03-23 维沃移动通信有限公司 一种多媒体数据处理的方法和装置
KR20220090850A (ko) * 2020-12-23 2022-06-30 삼성전자주식회사 이미지 처리 장치 및 이미지 처리 장치의 동작 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004086550A (ja) * 2002-08-27 2004-03-18 Matsushita Electric Ind Co Ltd 表示画面更新システム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5797139A (en) * 1995-12-14 1998-08-18 International Business Machines Corporation Method, memory and apparatus for designating a file's type by building unique icon borders
US7039247B2 (en) * 2003-01-31 2006-05-02 Sony Corporation Graphic codec for network transmission
EP1635581A4 (en) * 2003-06-19 2010-03-03 Panasonic Corp TRANSMITTER, SYSTEM AND METHOD FOR IMAGE PROCESSING, PROGRAM, RECORDING MEDIUM
JP4198556B2 (ja) 2003-07-10 2008-12-17 株式会社表面処理システム 電着塗装装置および電着塗装方法
CA2538340A1 (en) 2003-09-12 2005-03-31 Citrix Systems, Inc. Method and apparatus for generating graphical and media displays at a thin client
US8866789B2 (en) * 2007-01-16 2014-10-21 N-Trig Ltd. System and method for calibration of a capacitive touch digitizer system
JP4935705B2 (ja) 2008-02-14 2012-05-23 日本電気株式会社 動き補償に伴う更新領域検出装置
JP2009267726A (ja) * 2008-04-24 2009-11-12 Panasonic Corp 動画像符号化装置、録画装置、動画像符号化方法、動画像符号化プログラム
JP4827950B2 (ja) * 2008-07-31 2011-11-30 富士通株式会社 サーバ装置
JP2010118976A (ja) 2008-11-14 2010-05-27 Toshiba Corp 通信装置、通信方法および通信プログラム
JP4487011B1 (ja) 2008-12-24 2010-06-23 株式会社神戸製鋼所 磁石取付方法及び磁石取外し方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004086550A (ja) * 2002-08-27 2004-03-18 Matsushita Electric Ind Co Ltd 表示画面更新システム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015532022A (ja) * 2012-07-30 2015-11-05 ヴイエムウェア インコーポレイテッドVMware,Inc. 映像符号化技法によるユーザインターフェイス・リモーティング
JP2014528209A (ja) * 2012-08-07 2014-10-23 インテル コーポレイション 変化領域を使用したメディア符号化
US9424660B2 (en) 2012-08-07 2016-08-23 Intel Corporation Media encoding using changed regions
US10257510B2 (en) 2012-08-07 2019-04-09 Intel Corporation Media encoding using changed regions
WO2014042137A1 (ja) * 2012-09-11 2014-03-20 日本電気株式会社 通信システムと方法とサーバ装置及び端末
KR101263706B1 (ko) * 2012-12-28 2013-05-13 서울과학기술대학교 산학협력단 제로 클라이언트를 지원하는 가상 데스크탑 화면 전송 시스템
KR101609371B1 (ko) 2014-03-07 2016-04-05 주식회사 엔유정보통신 유무선통신 제로클라이언트를 지원하는 데스크톱 가상화 시스템
JP2016057965A (ja) * 2014-09-11 2016-04-21 富士通株式会社 サーバ、保存判定プログラムおよび保存判定方法
US10880555B2 (en) 2017-10-30 2020-12-29 Fujitsu Limited Information processing system and information processing apparatus
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

Also Published As

Publication number Publication date
US20120002715A1 (en) 2012-01-05
EP2403249B1 (en) 2014-11-26
EP2403249A1 (en) 2012-01-04
JP5471903B2 (ja) 2014-04-16
US8953676B2 (en) 2015-02-10

Similar Documents

Publication Publication Date Title
JP5471903B2 (ja) 情報処理装置、画像送信プログラム及び画像表示方法
JP5471794B2 (ja) 情報処理装置、画像送信プログラム及び画像表示方法
JP5664289B2 (ja) 情報処理装置、画像送信プログラムおよび画像表示方法
JP5685840B2 (ja) 情報処理装置、画像送信プログラム及び画像表示方法
JP2013126185A (ja) 情報処理装置、画像送信方法及び画像送信プログラム
JP5761007B2 (ja) 情報処理装置、画像送信方法及び画像送信プログラム
JP5899897B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP5821610B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP5874257B2 (ja) 情報処理装置、画像送信方法及び画像送信プログラム
US8411972B2 (en) Information processing device, method, and program
JP6003049B2 (ja) 情報処理装置、画像送信方法及び画像送信プログラム
WO2014080440A1 (ja) 情報処理装置、制御方法、制御プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131009

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131209

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: 20140107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140120

R150 Certificate of patent or registration of utility model

Ref document number: 5471903

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150