JPWO2014049761A1 - システム、情報処理装置および画像処理方法 - Google Patents

システム、情報処理装置および画像処理方法 Download PDF

Info

Publication number
JPWO2014049761A1
JPWO2014049761A1 JP2012074808A JP2014537936A JPWO2014049761A1 JP WO2014049761 A1 JPWO2014049761 A1 JP WO2014049761A1 JP 2012074808 A JP2012074808 A JP 2012074808A JP 2014537936 A JP2014537936 A JP 2014537936A JP WO2014049761 A1 JPWO2014049761 A1 JP WO2014049761A1
Authority
JP
Japan
Prior art keywords
image
data
image data
terminal
client
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
JP2012074808A
Other languages
English (en)
Inventor
松井 一樹
一樹 松井
健一 堀尾
健一 堀尾
智大 今井
智大 今井
Original Assignee
富士通株式会社
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 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2012/074808 priority Critical patent/WO2014049761A1/ja
Publication of JPWO2014049761A1 publication Critical patent/JPWO2014049761A1/ja
Granted legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00281Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a telecommunication apparatus, e.g. a switched network of teleprinters for the distribution of text-based information, a selective call terminal
    • H04N1/00307Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a telecommunication apparatus, e.g. a switched network of teleprinters for the distribution of text-based information, a selective call terminal with a mobile telephone apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device
    • H04N1/32358Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device using picture signal storage, e.g. at transmitter
    • H04N1/32363Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device using picture signal storage, e.g. at transmitter at the transmitter or at the receiver
    • H04N1/32368Functions of a still picture terminal memory associated with transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device
    • H04N1/32358Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device using picture signal storage, e.g. at transmitter
    • H04N1/32443Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device using picture signal storage, e.g. at transmitter with asynchronous operation of the image input and output devices connected to the memory
    • H04N1/32454Controlling data flow to or from the memory in relation to the amount of data, e.g. file size
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8146Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics
    • H04N21/8153Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics comprising still images, e.g. texture, background image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0008Connection or combination of a still picture apparatus with another apparatus

Abstract

情報処理装置(101)は、端末装置(102)の表示画面(110)に表示する画像(120)の画像データと、画像(120)の画像データの圧縮率(c)とに基づいて、端末装置(102)に送信するデータ転送量(T)を算出する。情報処理装置(101)は、データ転送量(T)とデータ転送速度(K)とに基づいて、画像(120)の画像データの転送時間(t)を算出する。情報処理装置(101)は、画像(120)の画像データの転送時間(t)に基づいて、画像(120)を分割する分割単位を決定する。

Description

本発明は、システム、情報処理装置および画像処理方法に関する。
シンクライアントシステムは、クライアントに最低限の機能しか持たせず、サーバでアプリケーションやデータを管理するシステムである。また、タブレット端末やスマートフォンなどの端末装置の普及にともなって、モバイル環境で社内のアプリケーションやデータをセキュアに利用する、いわゆるモバイルシンクライアントシステムのニーズが拡大している。
関連する先行技術としては、例えば、第1のコンピュータシステムで表示されるウェブページを第2のコンピュータシステムと共有するための技術がある。また、複数の端末からの同じデータ要求に対して、サーバ・端末間のネットワーク性能の良否に応じて配信するデータ量を端末ごとに異ならせる技術がある。
特開2011−18314号公報 特開2002−268998号公報
しかしながら、従来技術によれば、タブレット端末などの端末装置でシンクライアントシステムを利用する場合、ネットワークの帯域幅が狭くサーバとの通信状態が不安定になりやすいため、端末装置におけるユーザの操作性が低下してしまうという問題がある。
1つの側面では、本発明は、ユーザの操作性の低下を防ぐシステム、情報処理装置および画像処理方法を提供することを目的とする。
本発明の一側面によれば、ネットワークを介して情報処理装置と端末装置とが接続されるシステムにおいて、前記情報処理装置が、前記端末装置の表示画面に表示する画像の画像データと、前記画像データの圧縮率とに基づいて、前記端末装置に送信するデータ転送量を算出し、算出した前記データ転送量と、前記端末装置との間のデータ転送速度とに基づいて、前記画像を分割する分割単位を決定するシステム、情報処理装置および画像処理方法が提案される。
本発明の一態様によれば、ユーザの操作性の低下を防ぐことができるという効果を奏する。
図1は、実施の形態にかかる画像処理方法の一実施例を示す説明図である。 図2は、シンクライアントシステム200のシステム構成例を示す説明図である。 図3は、サーバ201のハードウェア構成例を示すブロック図である。 図4は、クライアント装置202のハードウェア構成例を示すブロック図である。 図5は、サーバ201の機能的構成例を示すブロック図である。 図6は、クライアント装置202の機能的構成例を示すブロック図である。 図7は、デスクトップ画面の第1の表示例を示す説明図(その1)である。 図8は、デスクトップ画面の第1の表示例を示す説明図(その2)である。 図9は、デスクトップ画面の第2の表示例を示す説明図である。 図10は、デスクトップ画面の第3の表示例を示す説明図である。 図11は、クライアント装置202の表示制御処理手順の一例を示すフローチャートである。 図12は、サーバ201の画像処理手順の一例を示すフローチャートである。 図13は、分割領域画像処理の具体的処理手順の一例を示すフローチャートである。
以下に添付図面を参照して、本発明にかかるシステム、情報処理装置および画像処理方法の実施の形態を詳細に説明する。
(画像処理方法の一実施例)
図1は、実施の形態にかかる画像処理方法の一実施例を示す説明図である。図1において、システム100は、情報処理装置101と、端末装置102と、を含む。システム100は、例えば、端末装置102に最低限の機能しか持たせず、情報処理装置101でアプリケーションやデータを管理するシンクライアントシステムである。
情報処理装置101は、ネットワークを介して端末装置102と通信可能なコンピュータである。また、情報処理装置101は、端末装置102の表示画面110に表示する画像の画像データを生成して、端末装置102に画像の画像データを送信する機能を有する。情報処理装置101は、例えば、サーバである。
画像は、例えば、端末装置102の要求に応じて情報処理装置101で実行されるアプリケーションの実行結果を表示する画面の画像である。アプリケーションは、例えば、設計支援ツール、プレゼンテーションソフト、表計算ソフト、電子メールソフトなどである。画像データは、例えば、製図などに利用されるCAD(Computer Aided Design)データや商品のカタログデータなどである。
端末装置102は、ネットワークを介して情報処理装置101と通信可能なコンピュータである。また、端末装置102は、表示画面110を有し、情報処理装置101から受信した画像データに基づいて、表示画面110に画像を表示する機能を有する。端末装置102は、例えば、タブレット端末、ノートPC(Personal Computer)、スマートフォン、携帯電話機などである。
ここで、タブレット端末やノートPCなどでシンクライアントシステムを利用する場合、ネットワークの帯域幅が狭くサーバとの通信状態が不安定になりやすいため、タブレット端末やノートPCにおけるユーザの操作性が低下してしまう場合がある。例えば、サーバからタブレット端末へのデータ転送に時間がかかり、タブレット端末における操作に対するレスポンスが悪化してしまう場合がある。
また、画像の画質を落としてデータ量を減らし、画像データの転送時間を短縮化することも考えられるが、例えば、設計、製図などに利用されるCADデータなどの精細な画像を扱う場合、画質を落とすと設計や製図に支障をきたす恐れがある。このため、画質を落として画像データの転送時間を調整することが難しい。
また、サーバとの通信が一時的に切断された場合でも、端末側での操作の続行を可能にするために、端末側にデータやアプリケーションをサーバからダウンロードして実行した後、端末側のデータやアプリケーションを消去することも考えられる。しかし、データやアプリケーションのデータサイズが大きい場合にはダウンロード時間が増大するとともに、一時的にも端末側にデータやアプリケーションが残ることはセキュリティ上好ましくない。
そこで、本実施の形態では、情報処理装置101は、端末装置102で行われたユーザ操作に対する画面更新時に、表示画面110に送信するデータ転送量とデータ転送速度とに基づく分割単位で画像を分割して端末装置102に順次送信する。これにより、ネットワーク環境に合わせて、ユーザに不快感を与えない程度の応答時間を確保して操作性を向上させる。
以下、端末装置102で行われたユーザの操作入力に応じて端末装置102の表示画面110に画像120を表示する場合を例に挙げて、情報処理装置101の画像処理例について説明する。
(1)情報処理装置101は、端末装置102の表示画面110に表示する画像120の画像データと、画像120の画像データの圧縮率cとに基づいて、端末装置102に送信するデータ転送量Tを算出する。ここで、圧縮率cは、例えば、画像データを圧縮した前後のデータ量の比率を表す。
具体的には、例えば、情報処理装置101は、画像120の画像データのデータ量と圧縮率cとを乗算することにより、端末装置102に送信するデータ転送量Tを算出する。一例として、画像120の画像データのデータ量を「375[Mbyte]」とし、圧縮率cを「0.1(=10[%])」とすると、端末装置102に送信するデータ転送量Tは「375[Kbyte]」となる。
(2)情報処理装置101は、データ転送量Tとデータ転送速度Kとに基づいて、画像120の画像データの転送時間tを算出する。ここで、データ転送速度Kは、例えば、単位時間当たりに情報処理装置101から端末装置102に送信可能な平均データ量である。データ転送速度Kは、予め設定されている初期値を用いることにしてもよく、また、情報処理装置101が端末装置102と通信することにより測定することにしてもよい。
具体的には、例えば、情報処理装置101は、データ転送量Tをデータ転送速度Kで除算することにより、転送時間tを算出することができる。一例として、データ転送速度Kを「10[Mbps]」とすると、100[msec]で送れるデータ量は125[Kbyte]となり、転送時間tは「300[msec]」となる。
(3)情報処理装置101は、画像120の画像データの転送時間tに基づいて、画像120を分割する分割単位を決定する。ここで、分割単位は、画像120を分割する単位であり、例えば、画像120から分割される分割領域画像の面積(画素数)やデータ量によって表される。
具体的には、例えば、情報処理装置101は、画像120の画像データの転送時間tが閾値Xより大きい場合に、画像120を分割した分割領域画像の画像データの転送時間tが閾値X以下となるように分割単位を決定する。
ここで、閾値Xは、例えば、ユーザによる操作入力が行われてから、その操作入力に対するレスポンスが返ってくるまでにかかる応答時間を表す値である。閾値Xには、例えば、応答時間が閾値Xを超えると、ユーザが不快に感じる程度の値(例えば、数百ミリ秒)が設定される。
一例として、閾値Xを「100[msec]」とすると、画像120の画像データの転送時間t(300[msec])は閾値Xを超えている。この場合、情報処理装置101は、例えば、画像120を分割した分割領域画像の画像データの転送時間tが閾値X以下となるように、画像120を分割する分割単位を「125[Kbyte]」に決定する。
(4)情報処理装置101は、決定した分割単位で画像120を分割した分割領域画像の画像データを、端末装置102に順次送信する。図1の例では、情報処理装置101は、画像120を125[Kbyte]単位で分割した分割領域画像121,122,123の画像データd1,d2,d3を端末装置102に順次送信する。
より具体的には、例えば、まず、情報処理装置101は、分割領域画像121の画像データd1を端末装置102に送信する。次に、情報処理装置101は、画像データd1が端末装置102に到着したタイミング、例えば、画像データd1を送信してから100[msec]後に、分割領域画像122の画像データd2を端末装置102に送信する。
同様に、情報処理装置101は、画像データd2が端末装置102に到着したタイミングに、分割領域画像123の画像データd3を端末装置102に送信する。この結果、端末装置102において、画像120から分割された分割領域画像121,122,123が表示画面110に順次表示される。
このように、情報処理装置101によれば、ネットワークの性能を表すデータ転送速度Kと、端末装置102に送信するデータ転送量Tとに基づいて、端末装置102の表示画面110に表示する画像120の分割単位を動的に変更することができる。具体的には、例えば、情報処理装置101によれば、画像120を分割した分割領域画像の画像データの転送時間tが閾値Xを超えないように、画像120を分割する分割単位を決定することができる。
これにより、端末装置102は、表示画面110の表示内容が更新される更新間隔が閾値Xを超えないように、分割領域画像121〜123の画像データd1〜d3を表示画面110に順次表示することができる。この結果、ユーザの操作入力に対するレスポンスを早めて、ユーザの操作性の低下を防ぐことができる。
(シンクライアントシステムのシステム構成例)
次に、図1に示したシステム100をシンクライアントシステムに適用した場合について説明する。
図2は、シンクライアントシステム200のシステム構成例を示す説明図である。図2において、シンクライアントシステム200は、サーバ201と、複数のクライアント装置202(図2の例では、3台)とを含む。シンクライアントシステム200において、サーバ201およびクライアント装置202は、ネットワーク210を介して通信可能に接続されている。ネットワーク210は、例えば、移動体通信網(携帯電話網)やインターネットなどである。
シンクライアントシステム200は、クライアント装置202が表示する画面をリモートでサーバ201に制御させる。シンクライアントシステム200によれば、実際にはサーバ201が実行した処理結果や保持するデータをクライアント装置202に表示させつつ、あたかもクライアント装置202が主体となって処理を実行したり、データを保持しているかのように振る舞うことができる。
サーバ201は、クライアント装置202に表示する画面をリモートで制御するリモート画面制御サービスを提供するコンピュータである。サーバ201は、図1に示した情報処理装置101に相当する。クライアント装置202は、サーバ201からリモート画面制御サービスの提供を受けるコンピュータである。クライアント装置202は、図1に示した端末装置102に相当する。
(サーバ201のハードウェア構成例)
図3は、サーバ201のハードウェア構成例を示すブロック図である。図3において、サーバ201は、CPU(Central Processing Unit)301と、メモリ302と、I/F(Interface)303と、磁気ディスクドライブ304と、磁気ディスク305と、を有している。また、各構成部はバス300によってそれぞれ接続されている。
ここで、CPU301は、サーバ201の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有している。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されているプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させることになる。
I/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータ(例えば、クライアント装置202)に接続される。そして、I/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F303には、例えば、モデムやLANアダプタなどを採用することができる。
磁気ディスクドライブ304は、CPU301の制御にしたがって磁気ディスク305に対するデータのリード/ライトを制御する。磁気ディスク305は、磁気ディスクドライブ304の制御で書き込まれたデータを記憶する。なお、サーバ201は、上述した構成部のほか、例えば、SSD(Solid State Drive)、キーボード、ディスプレイなどを有することにしてもよい。
(クライアント装置202のハードウェア構成例)
図4は、クライアント装置202のハードウェア構成例を示すブロック図である。図4において、クライアント装置202は、CPU401と、ROM402と、RAM403と、磁気ディスクドライブ404と、磁気ディスク405と、I/F406と、ディスプレイ407と、キーボード408と、マウス409と、を有している。また、各構成部はバス400によってそれぞれ接続されている。
ここで、CPU401は、クライアント装置202の全体の制御を司る。ROM402は、ブートプログラムなどのプログラムを記憶している。RAM403は、CPU401のワークエリアとして使用される。磁気ディスクドライブ404は、CPU401の制御にしたがって磁気ディスク405に対するデータのリード/ライトを制御する。磁気ディスク405は、磁気ディスクドライブ404の制御で書き込まれたデータを記憶する。
I/F406は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータ(例えば、サーバ201)に接続される。そして、I/F406は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。
ディスプレイ407は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ407は、例えば、TFT(Thin Film Transistor)液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
キーボード408は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、キーボード408は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス409は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。
(サーバ201の機能的構成例)
図5は、サーバ201の機能的構成例を示すブロック図である。図5において、サーバ201は、受信部501と、取得部502と、生成部503と、転送量算出部504と、転送速度算出部505と、転送時間算出部506と、分割部507と、送信部508と、を含む構成である。受信部501〜送信部508は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302、磁気ディスク305などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F303により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、磁気ディスク305などの記憶装置に記憶される。
受信部501は、クライアント装置202から操作情報を受信する機能を有する。ここで、操作情報は、クライアント装置202のキーボード408(図4参照)やマウス409(図4参照)を用いたユーザの操作入力を表す情報である。
操作情報には、例えば、キーボード408やマウス409を用いたクリック、ダブルクリック、ドラッグ&ドロップ等の操作入力の種別と、その操作入力が行われたマウスポインタの位置を表す情報が含まれている。また、操作情報には、操作入力が終了したことを示す情報や、マウス409のホイールの回転量、キーボード408の押下されたキーを表す情報が含まれていてもよい。
取得部502は、受信部501によって受信された操作情報に基づいて、クライアント装置202の表示画面Sに表示する画像Pの画像データを取得する機能を有する。ここで、表示画面Sは、例えば、クライアント装置202のディスプレイ407に表示されるデスクトップ画面全体であってもよく、また、デスクトップ画面内のウィンドウであってもよい。
具体的には、例えば、取得部502は、クライアント装置202からの要求に応じて実行中のアプリケーションに操作情報を通知することにより、フレームバッファに格納される画像Pの画像データを取得する。なお、フレームバッファは、表示画面Sに表示する1フレーム分の画像データを一時的に保存する記憶領域であり、例えば、VRAM(Video RAM)である。フレームバッファは、例えば、メモリ302、磁気ディスク305などの記憶装置により実現される。
生成部503は、画像Pの画像データと画像Ppreの画像データとに基づいて、表示画面Sの表示内容が更新されているか否かを判断する機能を有する。ここで、画像Ppreは、表示画面Sに表示する画像Pの1フレーム前の画像である。具体的には、例えば、生成部503は、画像Pの画像データと画像Ppreの画像データとの間に差分が存在する場合に、表示画面Sの表示内容が更新されていると判断する。
なお、画像Ppreの画像データは、退避用バッファに格納されている。例えば、画像Ppreの画像データは、フレームバッファに画像Pの画像データが格納される際に、フレームバッファから退避用バッファに退避される。退避用バッファは、例えば、メモリ302、磁気ディスク305などの記憶装置により実現される。
また、生成部503は、表示画面Sの表示内容が更新されている場合、画像Pの更新領域画像Rの画像データを生成する。ここで、更新領域画像は、画像Pのうちの更新領域を表す画像である。具体的には、例えば、生成部503は、画像Pのうち画像Ppreとの差分領域画像を含む矩形領域を更新領域画像Rとして、更新領域画像Rの画像データを生成する。
転送量算出部504は、更新領域画像Rの画像データと、更新領域画像Rの画像データの圧縮率cとに基づいて、クライアント装置202に送信するデータ転送量Tを算出する機能を有する。具体的には、例えば、まず、転送量算出部504は、更新領域画像Rの画像データを圧縮する圧縮方式を選択する。
圧縮方式としては、例えば、画像データが静止画の場合は、JPEG(Joint Photographic Experts Group)、GIF(Graphic Interchange Format)、PNG(Portable Network Graphics)などがある。また、画像データが動画の場合は、MPEG(Moving Picture Experts Group)がある。
より具体的には、例えば、転送量算出部504は、更新領域画像Rの画像データの各画素の画素値に基づいて、複数の圧縮方式の中から圧縮効率が最も高い圧縮方式を選択する。なお、画素値とは、例えば、画素の赤色、緑色、青色ごとの輝度である。そして、転送量算出部504は、例えば、更新領域画像Rの画像データのデータ量と、選択した圧縮方式の圧縮率cとを乗算することにより、データ転送量Tを算出する。
転送速度算出部505は、サーバ201とクライアント装置202との間のデータ転送速度Kを算出する機能を有する。具体的には、例えば、転送速度算出部505は、クライアント装置202に送信した所定データの送信時刻と、所定データをクライアント装置202が受信した受信時刻と、所定データのデータ量とに基づいて、データ転送速度Kを算出する。
より具体的には、例えば、転送速度算出部505は、所定データのデータ量を、所定データの送信時刻と受信時刻との時間間隔で除算することにより、単位時間当たりにクライアント装置202に送信可能なデータ転送速度Kを算出する。なお、所定データは、データ転送速度Kを測定する専用のデータであってもよく、また、表示画面Sに表示する画像Pや更新領域画像Rの画像データであってもよい。
転送時間算出部506は、更新領域画像Rの画像データの転送時間tを算出する機能を有する。ここで、更新領域画像Rの画像データの転送時間tは、サーバ201からクライアント装置202に画像データを転送するのにかかる時間である。具体的には、例えば、転送時間算出部506は、データ転送量Tをデータ転送速度Kで除算することにより、更新領域画像Rの画像データの転送時間tを算出する。
分割部507は、更新領域画像Rの画像データの転送時間tに基づいて、更新領域画像Rを分割する分割単位を決定する機能を有する。具体的には、例えば、分割部507は、更新領域画像Rの画像データの転送時間tが閾値Xより大きい場合に、更新領域画像Rから分割した分割領域画像rの画像データの転送時間tが閾値X以下となるように分割単位を決定する。
上述したように、閾値Xは、ユーザによる操作入力が行われてから、その操作入力に対するレスポンスが返ってくるまでにかかる応答時間を表す値である。閾値Xには、例えば、応答時間が閾値Xを超えると、ユーザが不快に感じる程度の値が設定される。閾値Xは、例えば、メモリ302、磁気ディスク305などの記憶装置に記憶されている。
また、分割部507は、決定した分割単位で更新領域画像Rを分割することにより、更新領域画像Rから分割した分割領域画像rごとの画像データを生成する機能を有する。具体的には、例えば、分割部507は、決定した分割単位で更新領域画像Rを縦方向または横方向に区切って分割することにより、分割領域画像rごとの画像データを生成する。
送信部508は、更新領域画像Rから分割された分割領域画像rごとの画像データを、所定の順序でクライアント装置202に順次送信する機能を有する。具体的には、例えば、送信部508は、選択した圧縮方式で分割領域画像rの画像データを圧縮(エンコード)することにより、圧縮後の分割領域画像rの画像データを静止画データとしてクライアント装置202に送信する。
より具体的には、例えば、更新領域画像Rを縦方向に区切って分割した場合、送信部508は、更新領域画像Rの左から順に分割領域画像rの画像データをクライアント装置202に送信することにしてもよい。また、例えば、更新領域画像Rを横方向に区切って分割した場合、送信部508は、更新領域画像Rの上から順に分割領域画像rの画像データをクライアント装置202に送信することにしてもよい。
また、送信部508は、更新領域画像Rから分割された複数の分割領域画像のうち、マウスポインタを含む分割領域画像rの画像データを最初にクライアント装置202に送信することにしてもよい。分割領域画像rは、例えば、操作情報に含まれるマウスポインタの位置を表す情報から特定することができる。
また、送信部508は、更新領域画像Rから分割された複数の分割領域画像のうち、表示画面Sの中心点を含む分割領域画像rの画像データを最初にクライアント装置202に送信することにしてもよい。
なお、更新領域画像Rから分割された分割領域画像rの画像データの送信順序例については、図7〜図10を用いて後述する。
また、送信部508は、更新領域画像Rが分割されていない場合は、更新領域画像Rの画像データをクライアント装置202に送信する。具体的には、例えば、送信部508は、選択した圧縮方式で更新領域画像Rの画像データを圧縮(エンコード)することにより、圧縮後の更新領域画像Rの画像データを静止画データまたは動画データとしてクライアント装置202に送信する。
また、画像Ppreの更新領域画像Rpreから分割された分割領域画像rpreの画像データのうち、クライアント装置202に送信されていない未送信の分割領域画像rpreの画像データが存在する場合がある。この場合、送信部508は、未送信の分割領域画像rpreの画像データの代わりに、更新領域画像Rから分割された分割領域画像rの画像データをクライアント装置202に送信することにしてもよい。
また、生成部503は、更新領域画像Rの画像データが静止画データか否かを判定することにしてもよい。具体的には、例えば、生成部503は、画像Pの画像データが静止画データか動画データかを識別する識別情報に基づいて、更新領域画像Rの画像データが静止画データか否かを判定することにしてもよい。
そして、送信部508は、更新領域画像Rの画像データが動画データの場合は、更新領域画像Rの画像データをクライアント装置202に送信することにしてもよい。これにより、画像Pが頻繁に更新されて分割にかかるオーバーヘッドが大きくなる動画データの場合は、画像Pの更新領域画像Rを分割することなくクライアント装置202に送信することができる。すなわち、転送量算出部504は、更新領域画像Rの画像データが静止画データの場合にのみ、更新領域画像Rの画像データと圧縮率cとに基づいて、データ転送量Tを算出する。
なお、サーバ201は、フレーム間で動きが大きい部分のデータを動画向けの圧縮方式のデータに圧縮してクライアント装置202に送信する機能を有することにしてもよい。具体的には、例えば、サーバ201は、アプリケーションに操作情報を通知して得られる画像を複数の領域に分割し、分割した領域ごとに変更の頻度を監視する。そして、サーバ201は、変更の頻度が閾値を超えた領域を動画化領域として扱うことにしてもよい。
この場合、生成部503は、例えば、更新領域画像Rが動画化領域を含むか否かによって、更新領域画像Rの画像データが静止画データか否かを判定することにしてもよい。より具体的には、例えば、生成部503は、例えば、更新領域画像Rが動画化領域を含む場合は、更新領域画像Rの画像データが動画データであると判定する。なお、フレーム間で動きが大きい部分のデータを動画向けの圧縮方式のデータに圧縮してクライアント装置202に送信する技術については、例えば、特開2011−238014を参照することができる。
(クライアント装置202の機能的構成例)
図6は、クライアント装置202の機能的構成例を示すブロック図である。図6において、クライアント装置202は、取得部601と、送信部602と、受信部603と、表示制御部604と、を含む構成である。取得部601〜表示制御部604は制御部となる機能であり、具体的には、例えば、図4に示したROM402、RAM403、磁気ディスク405などの記憶装置に記憶されたプログラムをCPU401に実行させることにより、または、I/F406により、その機能を実現する。各機能部の処理結果は、例えば、RAM403、磁気ディスク405などの記憶装置に記憶される。
取得部601は、ユーザの操作入力を表す操作情報を取得する機能を有する。具体的には、例えば、取得部601は、表示画面S上でのキーボード408(図4参照)やマウス409(図4参照)を用いたユーザの操作入力を受け付けることにより、ユーザの操作入力を表す操作情報を取得する。
上述したように、操作情報には、例えば、クリック、ダブルクリック、ドラッグ&ドロップ等の操作入力の種別、その操作入力が行われたマウスポインタの位置、その操作入力が終了したことを示す情報が含まれている。なお、ドラッグ&ドロップのように操作入力が継続して行われる場合には、取得部601は、ユーザの操作入力を表す操作情報を一定時間間隔ごとに取得することにしてもよい。
また、タッチパネル式のキーボード408を用いて、タップ、ドラッグ、フリック、ピンチアウト、ピンチイン等の操作入力が行われる場合がある。この場合、取得部601は、タッチパネル式のキーボード408を用いた操作入力を、例えば、サーバ201で実行中のアプリケーションが解釈可能なマウス409を用いた操作入力に変換した操作情報を取得することにしてもよい。ただし、操作情報の変換処理は、サーバ201側で行われることにしてもよい。
送信部602は、取得部601によって取得された操作情報をサーバ201に送信する機能を有する。具体的には、例えば、送信部602は、取得部601によって操作情報が取得されると、その都度、取得された操作情報をサーバ201に送信する。
受信部603は、サーバ201から画像データを受信する機能を有する。具体的には、例えば、受信部603は、画像P、画像Pに含まれる更新領域画像R、更新領域画像Rから分割された分割領域画像rの画像データをサーバ201から受信する。
表示制御部604は、ディスプレイ407を制御して、受信部603によって受信された画像データSDを表示する機能を有する。具体的には、例えば、表示制御部604は、受信された画像P、更新領域画像R、分割領域画像rの画像データをデコードとして、表示画面Sの対応する位置に表示する。
また、送信部602は、受信部603によって受信された所定データの受信時刻をサーバ201に送信することにしてもよい。所定データは、上述したように、サーバ201においてデータ転送速度Kを測定するためのデータである。
(デスクトップ画面の表示例)
次に、クライアント装置202のディスプレイ407に表示されるデスクトップ画面の表示例について説明する。ここでは、まず、更新領域画像Rを横方向に分割し、更新領域画像Rから分割された分割領域画像rの画像データを配置位置が上のものから順にクライアント装置202に送信する場合について説明する。
<第1の表示例>
図7および図8は、デスクトップ画面の第1の表示例を示す説明図である。図7において、クライアント装置202のディスプレイ407にデスクトップ画面701が表示されている。また、デスクトップ画面701にはウィンドウ702が表示されており、ウィンドウ702には画像710が表示されている。
ここで、クライアント装置202において、ウィンドウ702に表示されている画像710を矢印703のように回転させる操作入力が行われた結果(図7中(7−1)参照)、サーバ201において、ウィンドウ702に次に表示する画像720が取得された場合を想定する(図7中(7−2)参照)。また、画像720の更新領域画像Rを画像720の全領域とし、更新領域画像Rが分割領域画像721〜723に分割された場合を想定する(図7中(7−3)参照)。
この場合、まず、サーバ201は、分割領域画像721〜723のうち分割領域画像721の画像データをクライアント装置202に送信する。そして、クライアント装置202は、分割領域画像721の画像データに基づいて、ウィンドウ702の対応する位置に分割領域画像721を表示する(図7中(7−4)参照)。
ここで、クライアント装置202において、ウィンドウ702に表示されている一部更新済みの画像710を矢印704のように回転させる操作入力が行われた結果(図7中(7−5)参照)、サーバ201において、ウィンドウ702に次に表示する画像730が取得された場合を想定する(図7中(7−6)参照)。また、画像730の更新領域画像Rを画像730の全領域とし、更新領域画像Rが分割領域画像731〜733に分割された場合を想定する(図8中(7−7)参照)。
この場合、サーバ201は、分割領域画像722の代わりに、分割領域画像732の画像データをクライアント装置202に送信する。この結果、クライアント装置202は、分割領域画像732の画像データに基づいて、ウィンドウ702内の対応する位置に分割領域画像732を表示する(図8中(7−8)参照)。
次に、サーバ201は、分割領域画像731〜733のうち未送信の分割領域画像733の画像データをクライアント装置202に送信する(図8中(7−9)参照)。この結果、クライアント装置202は、分割領域画像733の画像データに基づいて、ウィンドウ702内の対応する位置に分割領域画像733を表示する(図8中(7−10)参照)。
次に、サーバ201は、分割領域画像731〜733のうち未送信の分割領域画像731の画像データをクライアント装置202に送信する(図8中(7−11)参照)。この結果、クライアント装置202は、分割領域画像731の画像データに基づいて、ウィンドウ702内の対応する位置に分割領域画像731を表示する(図8中(7−12)参照)。この結果、ウィンドウ702のすべての画面更新が行われて画像730がウィンドウ702に表示される。
このように、サーバ201によれば、ウィンドウ単位で表示内容を更新するよりも早いタイミングでウィンドウ702の表示内容を部分的に更新することができる。この結果、ユーザは、自身が行った操作入力に対してウィンドウ702の表示内容がどのように変化するのかを予測することができるようになり、新たな操作入力を行うべきか否かを判断し易くなる。
また、サーバ201によれば、更新領域画像Rから分割された分割領域画像rの画像データを予め決められた順序でクライアント装置202に送信することができる。これにより、ユーザは、ウィンドウ702上で次に更新される部分を把握し易くなる。また、サーバ201によれば、未送信の分割領域画像の画像データが存在する状態で、次の操作入力が行われた場合、未送信の画像データの代わりに、次の更新領域画像Rから分割された分割領域画像rの画像データをクライアント装置202に送信することができる。
<第2の表示例>
次に、更新領域画像Rを横方向に分割し、更新領域画像Rから分割された分割領域画像rのうち、マウスポインタを含む分割領域画像rの画像データを最初にクライアント装置202に送信する場合について説明する。
図9は、デスクトップ画面の第2の表示例を示す説明図である。図9において、クライアント装置202のディスプレイ407にデスクトップ画面901が表示されている。また、デスクトップ画面901にはウィンドウ902が表示されており、ウィンドウ902には画像910とマウスカーソル903が表示されている。
ここで、クライアント装置202において、ウィンドウ902に表示されている画像910を矢印904のように回転させる操作入力が行われた結果(図9中(9−1)参照)、サーバ201において、ウィンドウ902に次に表示する画像920が取得された場合を想定する(図9中(9−2)参照)。また、画像920の更新領域画像Rを画像920の全領域とし、更新領域画像Rが分割領域画像921〜923に分割された場合を想定する(図9中(9−3)参照)。
この場合、まず、サーバ201は、分割領域画像921〜923のうちマウスカーソル903(マウスポインタ)を含む分割領域画像923を特定する。そして、サーバ201は、マウスカーソル903(マウスポインタ)を含む分割領域画像923の画像データをクライアント装置202に送信する。そして、クライアント装置202は、分割領域画像923の画像データに基づいて、ウィンドウ902の対応する位置に分割領域画像923を表示する(図9中(9−4)参照)。
次に、サーバ201は、分割領域画像921〜923のうち未送信の分割領域画像921の画像データをクライアント装置202に送信する(図9中(9−5)参照)。この結果、クライアント装置202は、分割領域画像921の画像データに基づいて、ウィンドウ902内の対応する位置に分割領域画像921を表示する(図9中(9−6)参照)。
次に、サーバ201は、分割領域画像921〜923のうち未送信の分割領域画像922の画像データをクライアント装置202に送信する(図9中(9−7)参照)。この結果、クライアント装置202は、分割領域画像922の画像データに基づいて、ウィンドウ902内の対応する位置に分割領域画像922を表示する(図9中(9−8)参照)。
このように、サーバ201によれば、更新領域画像Rから分割された分割領域画像921〜923のうちマウスカーソル903を含む分割領域画像923の画像データを最初にクライアント装置202に送信することができる。これにより、ウィンドウ902においてマウスカーソル903を含む部分が最初に更新されるため、ユーザは、ウィンドウ902上で次に更新される部分を把握し易くなる。
<第3の表示例>
次に、更新領域画像Rを横方向に分割し、更新領域画像Rから分割された分割領域画像rのうち、更新領域画像Rの中心点を含む分割領域画像rの画像データを最初にクライアント装置202に送信する場合について説明する。
図10は、デスクトップ画面の第3の表示例を示す説明図である。図10において、クライアント装置202のディスプレイ407にデスクトップ画面1001が表示されている。また、デスクトップ画面1001にはウィンドウ1002が表示されており、ウィンドウ1002には画像1010が表示されている。
ここで、クライアント装置202において、ウィンドウ1002に表示されている画像1010を矢印1003のように回転させる操作入力が行われた結果(図10中(10−1)参照)、サーバ201において、ウィンドウ1002に次に表示する画像1020が取得された場合を想定する(図10中(10−2)参照)。また、画像1020の更新領域画像Rを画像1020の全領域とし、更新領域画像Rが分割領域画像1021〜1023に分割された場合を想定する(図10中(10−3)参照)。
この場合、まず、サーバ201は、分割領域画像1021〜1023のうちウィンドウ1002の中心点1004を含む分割領域画像1022を特定する。そして、サーバ201は、中心点1004を含む分割領域画像1022の画像データをクライアント装置202に送信する。そして、クライアント装置202は、分割領域画像1022の画像データに基づいて、ウィンドウ1002の対応する位置に分割領域画像1022を表示する(図10中(10−4)参照)。
次に、サーバ201は、分割領域画像1021〜1023のうち未送信の分割領域画像1021の画像データをクライアント装置202に送信する(図10中(10−5)参照)。この結果、クライアント装置202は、分割領域画像1021の画像データに基づいて、ウィンドウ1002内の対応する位置に分割領域画像1021を表示する(図10中(10−6)参照)。
次に、サーバ201は、分割領域画像1021〜1023のうち未送信の分割領域画像1023の画像データをクライアント装置202に送信する(図10中(10−7)参照)。この結果、クライアント装置202は、分割領域画像1023の画像データに基づいて、ウィンドウ1002内の対応する位置に分割領域画像1023を表示する(図10中(10−8)参照)。
このように、サーバ201によれば、更新領域画像Rから分割された分割領域画像1021〜1023のうちウィンドウ1002の中心点1004を含む分割領域画像1022の画像データを最初にクライアント装置202に送信することができる。これにより、ウィンドウ1002において中心点1004を含む部分が最初に更新されるため、ユーザは、ウィンドウ1002上で次に更新される部分を把握し易くなる。
(クライアント装置202の表示制御処理手順)
次に、クライアント装置202の表示制御処理手順について説明する。
図11は、クライアント装置202の表示制御処理手順の一例を示すフローチャートである。図11のフローチャートにおいて、まず、クライアント装置202は、ユーザの操作入力を受け付けたか否かを判断する(ステップS1101)。ここで、クライアント装置202は、ユーザの操作入力を受け付けるのを待つ(ステップS1101:No)。
そして、クライアント装置202は、ユーザの操作入力を受け付けた場合(ステップS1101:Yes)、ユーザの操作入力を表す操作情報を取得する(ステップS1102)。次に、クライアント装置202は、取得した操作情報をサーバ201に送信する(ステップS1103)。
そして、クライアント装置202は、サーバ201から画像データを受信したか否かを判断する(ステップS1104)。ここで、サーバ201から画像データを受信しなかった場合(ステップS1104:No)、クライアント装置202は、本フローチャートによる一連の処理を終了する。
一方、サーバ201から画像データを受信した場合(ステップS1104:Yes)、クライアント装置202は、受信した画像データが静止画データか否かを判断する(ステップS1105)。
ここで、静止画データの場合(ステップS1105:Yes)、クライアント装置202は、受信した画像データを静止画用の復元方式を用いてデコードした静止画データを表示画面Sに表示して(ステップS1106)、本フローチャートによる一連の処理を終了する。
一方、動画データの場合(ステップS1105:No)、クライアント装置202は、受信した画像データを動画用の復元方式を用いてデコードした動画データを表示画面Sに表示して(ステップS1107)、本フローチャートによる一連の処理を終了する。これにより、ユーザの操作入力に応じて表示画面Sの表示内容を更新することができる。
(サーバ201の画像処理手順)
次に、サーバ201の画像処理手順について説明する。
図12は、サーバ201の画像処理手順の一例を示すフローチャートである。図12のフローチャートにおいて、まず、サーバ201は、クライアント装置202から操作情報を受信したか否かを判断する(ステップS1201)。
ここで、サーバ201は、クライアント装置202から操作情報を受信した場合(ステップS1201:Yes)、クライアント装置202からの要求に応じて実行中のアプリケーションに操作情報を通知することにより、フレームバッファから画像Pの画像データを取得する(ステップS1202)。
次に、サーバ201は、画像Pの画像データと画像Ppreの画像データとに基づいて、表示画面Sの表示内容が更新されているか否かを判断する(ステップS1203)。ここで、表示画面Sの表示内容が更新されていない場合(ステップS1203:No)、サーバ201は、ステップS1210に移行する。
一方、表示画面Sの表示内容が更新されている場合(ステップS1203:Yes)、サーバ201は、画像Pの更新領域画像Rの画像データを生成する(ステップS1204)。そして、サーバ201は、生成した更新領域画像Rの画像データが静止画データか否かを判断する(ステップS1205)。
ここで、更新領域画像Rの画像データが静止画データの場合(ステップS1205:Yes)、サーバ201は、更新領域画像Rの画像データと、更新領域画像Rの画像データの圧縮率cとに基づいて、クライアント装置202に送信するデータ転送量Tを算出する(ステップS1206)。
次に、サーバ201は、算出したデータ転送量Tをデータ転送速度Kで除算することにより、更新領域画像Rの画像データの転送時間tを算出する(ステップS1207)。そして、サーバ201は、算出した更新領域画像Rの画像データの転送時間tが閾値Xより大きいか否かを判断する(ステップS1208)。
ここで、更新領域画像Rの画像データの転送時間tが閾値Xより大きい場合(ステップS1208:Yes)、サーバ201は、分割領域画像処理を実行する(ステップS1209)。なお、分割領域画像処理の具体的な処理手順については、図13を用いて後述する。そして、サーバ201は、所定時間(例えば、30[msec])待機して(ステップS1210)、ステップS1201に戻る。
また、ステップS1208において、更新領域画像Rの画像データの転送時間tが閾値X以下の場合(ステップS1208:No)、サーバ201は、分割数nを「n=0」で初期化する(ステップS1211)。そして、サーバ201は、更新領域画像Rの画像データを静止画データとしてクライアント装置202に送信して(ステップS1212)、ステップS1210に移行する。
また、ステップS1205において、更新領域画像Rの画像データが動画データの場合(ステップS1205:No)、サーバ201は、更新領域画像Rの画像データを動画データとしてクライアント装置202に送信して(ステップS1213)、ステップS1210に移行する。
また、ステップS1201において、サーバ201は、クライアント装置202から操作情報を受信していない場合(ステップS1201:No)、分割数nが「n>0」かつ未送信の分割領域画像の画像データがあるか否かを判断する(ステップS1214)。
ここで、「n>0」かつ未送信の分割領域画像の画像データがある場合(ステップS1214:Yes)、サーバ201は、図13に示すステップS1304に移行する。一方、「n=0」または未送信の分割領域画像の画像データがない場合(ステップS1214:No)、サーバ201は、ステップS1210に移行する。
ここで、図12に示したステップS1209の分割領域画像処理の具体的な処理手順について説明する。
図13は、分割領域画像処理の具体的処理手順の一例を示すフローチャートである。図13のフローチャートにおいて、まず、サーバ201は、更新領域画像Rから分割した分割領域画像rの画像データの転送時間tが閾値X以下となるように分割単位を決定する(ステップS1301)。
次に、サーバ201は、決定した分割単位で更新領域画像Rを分割することにより、更新領域画像Rから分割した分割領域画像ごとの画像データを生成する(ステップS1302)。そして、サーバ201は、更新領域画像Rを分割した分割数nを設定する(ステップS1303)。
次に、サーバ201は、更新領域画像Rから分割された分割領域画像から選択されていない未選択の分割領域画像の画像データを選択する(ステップS1304)。そして、サーバ201は、選択した分割領域画像の画像データに基づいて、分割領域画像に更新箇所があるか否かを判断する(ステップS1305)。
ここで、分割領域画像に更新箇所がない場合(ステップS1305:No)、サーバ201は、図12に示したステップS1210に移行する。一方、分割領域画像に更新箇所がある場合(ステップS1305:Yes)、サーバ201は、選択した分割領域画像の画像データを静止画データとしてクライアント装置202に送信して(ステップS1306)、分割領域画像処理を呼び出したステップに戻る。
これにより、クライアント装置202において、表示画面Sの表示内容が更新される更新間隔が閾値Xを超えないように、更新領域画像Rを分割した分割領域画像rの画像データをクライアント装置202に送信することができる。
以上説明したように、実施の形態にかかるサーバ201によれば、クライアント装置202の表示画面Sに表示する更新領域画像Rの画像データと、当該画像データの圧縮率cとに基づいて、データ転送量Tを算出することができる。また、サーバ201によれば、データ転送量Tとデータ転送速度Kとに基づいて、更新領域画像Rの画像データの転送時間tを算出することができる。また、サーバ201によれば、算出した更新領域画像Rの画像データの転送時間tに基づいて、更新領域画像Rを分割する分割単位を決定することができる。
これにより、ネットワークの性能を表すデータ転送速度Kと、端末装置102に送信するデータ転送量Tとに応じて、端末装置102の表示画面110に表示する更新領域画像Rの分割単位を動的に変更することができる。
また、サーバ201によれば、更新領域画像Rの画像データの転送時間tが閾値Xより大きい場合に、更新領域画像Rを分割した分割領域画像rの画像データの転送時間tが閾値X以下となるように分割単位を決定することができる。また、サーバ201によれば、決定した分割単位で更新領域画像Rを分割した分割領域画像rの画像データを、所定の順序でクライアント装置202に順次送信することができる。
これにより、クライアント装置202において、表示画面Sの表示内容が更新される更新間隔が閾値Xを超えないように、分割領域画像rの画像データを表示画面Sに順次表示させることができる。この結果、ユーザの操作入力に対するレスポンスを早めて、ユーザの操作性の低下を防ぐことができる。また、サーバ201によれば、閾値Xを変更することにより、ユーザの操作入力に対する応答時間を調整することができる。
また、サーバ201によれば、クライアント装置202に送信された所定データの送信時刻と、クライアント装置202によって所定データが受信された受信時刻と、所定データのデータ量とに基づいて、データ転送速度Kを算出することができる。これにより、時々刻々と変化するトラフィック量に応じたネットワーク210の性能を測定することができる。
また、サーバ201によれば、未送信の分割領域画像rpreの画像データがある状態で新たな画面更新が行われる場合は、未送信の分割領域画像rpreの画像データの代わりに、分割領域画像rの画像データをクライアント装置202に送信することができる。これにより、過去の操作入力に対する画面更新のための画像データの送信を止めて、ネットワーク210のトラフィック量の増大化を防ぐことができる。
これらのことから実施の形態にかかるシンクライアントシステム200によれば、ユーザが不快に感じない程度の更新間隔で表示画面Sの表示内容を部分的に更新することができる。これにより、ユーザの操作入力に対する応答時間を早めて操作感を向上させるとともに、操作入力に対して表示画面Sの表示内容がどのように変化するのかをユーザが予測できるようになり操作性を向上させることができる。
例えば、通信状態が不安定なモバイル環境でクライアント装置202を用いてアプリケーションを操作する場合に、オブジェクトの回転などを繰り返し操作するたびに発生するデータ転送のデータ量を削減することができる。また、通信が一時的に切断されても、表示画面Sの表示内容を部分的に更新することにより、通信の不安定さをユーザに対して隠蔽することができる。
なお、本実施の形態で説明した画像処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本画像処理プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本画像処理プログラムは、インターネット等のネットワークを介して配布してもよい。
100 システム
101 情報処理装置
102 端末装置
200 シンクライアントシステム
201 サーバ
202 クライアント装置
501,603 受信部
502,601 取得部
503 生成部
504 転送量算出部
505 転送速度算出部
506 転送時間算出部
507 分割部
508,602 送信部
604 表示制御部
本発明は、システム、情報処理装置および画像処理方法に関する。
シンクライアントシステムは、クライアントに最低限の機能しか持たせず、サーバでアプリケーションやデータを管理するシステムである。また、タブレット端末やスマートフォンなどの端末装置の普及にともなって、モバイル環境で社内のアプリケーションやデータをセキュアに利用する、いわゆるモバイルシンクライアントシステムのニーズが拡大している。
関連する先行技術としては、例えば、第1のコンピュータシステムで表示されるウェブページを第2のコンピュータシステムと共有するための技術がある。また、複数の端末からの同じデータ要求に対して、サーバ・端末間のネットワーク性能の良否に応じて配信するデータ量を端末ごとに異ならせる技術がある。
特開2011−18314号公報 特開2002−268998号公報
しかしながら、従来技術によれば、タブレット端末などの端末装置でシンクライアントシステムを利用する場合、ネットワークの帯域幅が狭くサーバとの通信状態が不安定になりやすいため、端末装置におけるユーザの操作性が低下してしまうという問題がある。
1つの側面では、本発明は、ユーザの操作性の低下を防ぐシステム、情報処理装置および画像処理方法を提供することを目的とする。
本発明の一側面によれば、ネットワークを介して情報処理装置と端末装置とが接続されるシステムにおいて、前記情報処理装置が、前記端末装置の表示画面に表示する画像の画像データと、前記画像データの圧縮率とに基づいて、前記端末装置に送信するデータ転送量を算出し、算出した前記データ転送量と、前記端末装置との間のデータ転送速度とに基づいて、前記画像を分割する分割単位を決定するシステム、情報処理装置および画像処理方法が提案される。
本発明の一態様によれば、ユーザの操作性の低下を防ぐことができるという効果を奏する。
図1は、実施の形態にかかる画像処理方法の一実施例を示す説明図である。 図2は、シンクライアントシステム200のシステム構成例を示す説明図である。 図3は、サーバ201のハードウェア構成例を示すブロック図である。 図4は、クライアント装置202のハードウェア構成例を示すブロック図である。 図5は、サーバ201の機能的構成例を示すブロック図である。 図6は、クライアント装置202の機能的構成例を示すブロック図である。 図7は、デスクトップ画面の第1の表示例を示す説明図(その1)である。 図8は、デスクトップ画面の第1の表示例を示す説明図(その2)である。 図9は、デスクトップ画面の第2の表示例を示す説明図である。 図10は、デスクトップ画面の第3の表示例を示す説明図である。 図11は、クライアント装置202の表示制御処理手順の一例を示すフローチャートである。 図12は、サーバ201の画像処理手順の一例を示すフローチャートである。 図13は、分割領域画像処理の具体的処理手順の一例を示すフローチャートである。
以下に添付図面を参照して、本発明にかかるシステム、情報処理装置および画像処理方法の実施の形態を詳細に説明する。
(画像処理方法の一実施例)
図1は、実施の形態にかかる画像処理方法の一実施例を示す説明図である。図1において、システム100は、情報処理装置101と、端末装置102と、を含む。システム100は、例えば、端末装置102に最低限の機能しか持たせず、情報処理装置101でアプリケーションやデータを管理するシンクライアントシステムである。
情報処理装置101は、ネットワークを介して端末装置102と通信可能なコンピュータである。また、情報処理装置101は、端末装置102の表示画面110に表示する画像の画像データを生成して、端末装置102に画像の画像データを送信する機能を有する。情報処理装置101は、例えば、サーバである。
画像は、例えば、端末装置102の要求に応じて情報処理装置101で実行されるアプリケーションの実行結果を表示する画面の画像である。アプリケーションは、例えば、設計支援ツール、プレゼンテーションソフト、表計算ソフト、電子メールソフトなどである。画像データは、例えば、製図などに利用されるCAD(Computer Aided Design)データや商品のカタログデータなどである。
端末装置102は、ネットワークを介して情報処理装置101と通信可能なコンピュータである。また、端末装置102は、表示画面110を有し、情報処理装置101から受信した画像データに基づいて、表示画面110に画像を表示する機能を有する。端末装置102は、例えば、タブレット端末、ノートPC(Personal Computer)、スマートフォン、携帯電話機などである。
ここで、タブレット端末やノートPCなどでシンクライアントシステムを利用する場合、ネットワークの帯域幅が狭くサーバとの通信状態が不安定になりやすいため、タブレット端末やノートPCにおけるユーザの操作性が低下してしまう場合がある。例えば、サーバからタブレット端末へのデータ転送に時間がかかり、タブレット端末における操作に対するレスポンスが悪化してしまう場合がある。
また、画像の画質を落としてデータ量を減らし、画像データの転送時間を短縮化することも考えられるが、例えば、設計、製図などに利用されるCADデータなどの精細な画像を扱う場合、画質を落とすと設計や製図に支障をきたす恐れがある。このため、画質を落として画像データの転送時間を調整することが難しい。
また、サーバとの通信が一時的に切断された場合でも、端末側での操作の続行を可能にするために、端末側にデータやアプリケーションをサーバからダウンロードして実行した後、端末側のデータやアプリケーションを消去することも考えられる。しかし、データやアプリケーションのデータサイズが大きい場合にはダウンロード時間が増大するとともに、一時的にも端末側にデータやアプリケーションが残ることはセキュリティ上好ましくない。
そこで、本実施の形態では、情報処理装置101は、端末装置102で行われたユーザ操作に対する画面更新時に、表示画面110に送信するデータ転送量とデータ転送速度とに基づく分割単位で画像を分割して端末装置102に順次送信する。これにより、ネットワーク環境に合わせて、ユーザに不快感を与えない程度の応答時間を確保して操作性を向上させる。
以下、端末装置102で行われたユーザの操作入力に応じて端末装置102の表示画面110に画像120を表示する場合を例に挙げて、情報処理装置101の画像処理例について説明する。
(1)情報処理装置101は、端末装置102の表示画面110に表示する画像120の画像データと、画像120の画像データの圧縮率cとに基づいて、端末装置102に送信するデータ転送量Tを算出する。ここで、圧縮率cは、例えば、画像データを圧縮した前後のデータ量の比率を表す。
具体的には、例えば、情報処理装置101は、画像120の画像データのデータ量と圧縮率cとを乗算することにより、端末装置102に送信するデータ転送量Tを算出する。一例として、画像120の画像データのデータ量を「375[Mbyte]」とし、圧縮率cを「0.1(=10[%])」とすると、端末装置102に送信するデータ転送量Tは「375[Kbyte]」となる。
(2)情報処理装置101は、データ転送量Tとデータ転送速度Kとに基づいて、画像120の画像データの転送時間tを算出する。ここで、データ転送速度Kは、例えば、単位時間当たりに情報処理装置101から端末装置102に送信可能な平均データ量である。データ転送速度Kは、予め設定されている初期値を用いることにしてもよく、また、情報処理装置101が端末装置102と通信することにより測定することにしてもよい。
具体的には、例えば、情報処理装置101は、データ転送量Tをデータ転送速度Kで除算することにより、転送時間tを算出することができる。一例として、データ転送速度Kを「10[Mbps]」とすると、100[msec]で送れるデータ量は125[Kbyte]となり、転送時間tは「300[msec]」となる。
(3)情報処理装置101は、画像120の画像データの転送時間tに基づいて、画像120を分割する分割単位を決定する。ここで、分割単位は、画像120を分割する単位であり、例えば、画像120から分割される分割領域画像の面積(画素数)やデータ量によって表される。
具体的には、例えば、情報処理装置101は、画像120の画像データの転送時間tが閾値Xより大きい場合に、画像120を分割した分割領域画像の画像データの転送時間tが閾値X以下となるように分割単位を決定する。
ここで、閾値Xは、例えば、ユーザによる操作入力が行われてから、その操作入力に対するレスポンスが返ってくるまでにかかる応答時間を表す値である。閾値Xには、例えば、応答時間が閾値Xを超えると、ユーザが不快に感じる程度の値(例えば、数百ミリ秒)が設定される。
一例として、閾値Xを「100[msec]」とすると、画像120の画像データの転送時間t(300[msec])は閾値Xを超えている。この場合、情報処理装置101は、例えば、画像120を分割した分割領域画像の画像データの転送時間tが閾値X以下となるように、画像120を分割する分割単位を「125[Kbyte]」に決定する。
(4)情報処理装置101は、決定した分割単位で画像120を分割した分割領域画像の画像データを、端末装置102に順次送信する。図1の例では、情報処理装置101は、画像120を125[Kbyte]単位で分割した分割領域画像121,122,123の画像データd1,d2,d3を端末装置102に順次送信する。
より具体的には、例えば、まず、情報処理装置101は、分割領域画像121の画像データd1を端末装置102に送信する。次に、情報処理装置101は、画像データd1が端末装置102に到着したタイミング、例えば、画像データd1を送信してから100[msec]後に、分割領域画像122の画像データd2を端末装置102に送信する。
同様に、情報処理装置101は、画像データd2が端末装置102に到着したタイミングに、分割領域画像123の画像データd3を端末装置102に送信する。この結果、端末装置102において、画像120から分割された分割領域画像121,122,123が表示画面110に順次表示される。
このように、情報処理装置101によれば、ネットワークの性能を表すデータ転送速度Kと、端末装置102に送信するデータ転送量Tとに基づいて、端末装置102の表示画面110に表示する画像120の分割単位を動的に変更することができる。具体的には、例えば、情報処理装置101によれば、画像120を分割した分割領域画像の画像データの転送時間tが閾値Xを超えないように、画像120を分割する分割単位を決定することができる。
これにより、端末装置102は、表示画面110の表示内容が更新される更新間隔が閾値Xを超えないように、分割領域画像121〜123の画像データd1〜d3を表示画面110に順次表示することができる。この結果、ユーザの操作入力に対するレスポンスを早めて、ユーザの操作性の低下を防ぐことができる。
(シンクライアントシステムのシステム構成例)
次に、図1に示したシステム100をシンクライアントシステムに適用した場合について説明する。
図2は、シンクライアントシステム200のシステム構成例を示す説明図である。図2において、シンクライアントシステム200は、サーバ201と、複数のクライアント装置202(図2の例では、3台)とを含む。シンクライアントシステム200において、サーバ201およびクライアント装置202は、ネットワーク210を介して通信可能に接続されている。ネットワーク210は、例えば、移動体通信網(携帯電話網)やインターネットなどである。
シンクライアントシステム200は、クライアント装置202が表示する画面をリモートでサーバ201に制御させる。シンクライアントシステム200によれば、実際にはサーバ201が実行した処理結果や保持するデータをクライアント装置202に表示させつつ、あたかもクライアント装置202が主体となって処理を実行したり、データを保持しているかのように振る舞うことができる。
サーバ201は、クライアント装置202に表示する画面をリモートで制御するリモート画面制御サービスを提供するコンピュータである。サーバ201は、図1に示した情報処理装置101に相当する。クライアント装置202は、サーバ201からリモート画面制御サービスの提供を受けるコンピュータである。クライアント装置202は、図1に示した端末装置102に相当する。
(サーバ201のハードウェア構成例)
図3は、サーバ201のハードウェア構成例を示すブロック図である。図3において、サーバ201は、CPU(Central Processing Unit)301と、メモリ302と、I/F(Interface)303と、磁気ディスクドライブ304と、磁気ディスク305と、を有している。また、各構成部はバス300によってそれぞれ接続されている。
ここで、CPU301は、サーバ201の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有している。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されているプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させることになる。
I/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータ(例えば、クライアント装置202)に接続される。そして、I/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F303には、例えば、モデムやLANアダプタなどを採用することができる。
磁気ディスクドライブ304は、CPU301の制御にしたがって磁気ディスク305に対するデータのリード/ライトを制御する。磁気ディスク305は、磁気ディスクドライブ304の制御で書き込まれたデータを記憶する。なお、サーバ201は、上述した構成部のほか、例えば、SSD(Solid State Drive)、キーボード、ディスプレイなどを有することにしてもよい。
(クライアント装置202のハードウェア構成例)
図4は、クライアント装置202のハードウェア構成例を示すブロック図である。図4において、クライアント装置202は、CPU401と、ROM402と、RAM403と、磁気ディスクドライブ404と、磁気ディスク405と、I/F406と、ディスプレイ407と、キーボード408と、マウス409と、を有している。また、各構成部はバス400によってそれぞれ接続されている。
ここで、CPU401は、クライアント装置202の全体の制御を司る。ROM402は、ブートプログラムなどのプログラムを記憶している。RAM403は、CPU401のワークエリアとして使用される。磁気ディスクドライブ404は、CPU401の制御にしたがって磁気ディスク405に対するデータのリード/ライトを制御する。磁気ディスク405は、磁気ディスクドライブ404の制御で書き込まれたデータを記憶する。
I/F406は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータ(例えば、サーバ201)に接続される。そして、I/F406は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。
ディスプレイ407は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ407は、例えば、TFT(Thin Film Transistor)液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
キーボード408は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、キーボード408は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス409は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。
(サーバ201の機能的構成例)
図5は、サーバ201の機能的構成例を示すブロック図である。図5において、サーバ201は、受信部501と、取得部502と、生成部503と、転送量算出部504と、転送速度算出部505と、転送時間算出部506と、分割部507と、送信部508と、を含む構成である。受信部501〜送信部508は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302、磁気ディスク305などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F303により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、磁気ディスク305などの記憶装置に記憶される。
受信部501は、クライアント装置202から操作情報を受信する機能を有する。ここで、操作情報は、クライアント装置202のキーボード408(図4参照)やマウス409(図4参照)を用いたユーザの操作入力を表す情報である。
操作情報には、例えば、キーボード408やマウス409を用いたクリック、ダブルクリック、ドラッグ&ドロップ等の操作入力の種別と、その操作入力が行われたマウスポインタの位置を表す情報が含まれている。また、操作情報には、操作入力が終了したことを示す情報や、マウス409のホイールの回転量、キーボード408の押下されたキーを表す情報が含まれていてもよい。
取得部502は、受信部501によって受信された操作情報に基づいて、クライアント装置202の表示画面Sに表示する画像Pの画像データを取得する機能を有する。ここで、表示画面Sは、例えば、クライアント装置202のディスプレイ407に表示されるデスクトップ画面全体であってもよく、また、デスクトップ画面内のウィンドウであってもよい。
具体的には、例えば、取得部502は、クライアント装置202からの要求に応じて実行中のアプリケーションに操作情報を通知することにより、フレームバッファに格納される画像Pの画像データを取得する。なお、フレームバッファは、表示画面Sに表示する1フレーム分の画像データを一時的に保存する記憶領域であり、例えば、VRAM(Video RAM)である。フレームバッファは、例えば、メモリ302、磁気ディスク305などの記憶装置により実現される。
生成部503は、画像Pの画像データと画像Ppreの画像データとに基づいて、表示画面Sの表示内容が更新されているか否かを判断する機能を有する。ここで、画像Ppreは、表示画面Sに表示する画像Pの1フレーム前の画像である。具体的には、例えば、生成部503は、画像Pの画像データと画像Ppreの画像データとの間に差分が存在する場合に、表示画面Sの表示内容が更新されていると判断する。
なお、画像Ppreの画像データは、退避用バッファに格納されている。例えば、画像Ppreの画像データは、フレームバッファに画像Pの画像データが格納される際に、フレームバッファから退避用バッファに退避される。退避用バッファは、例えば、メモリ302、磁気ディスク305などの記憶装置により実現される。
また、生成部503は、表示画面Sの表示内容が更新されている場合、画像Pの更新領域画像Rの画像データを生成する。ここで、更新領域画像は、画像Pのうちの更新領域を表す画像である。具体的には、例えば、生成部503は、画像Pのうち画像Ppreとの差分領域画像を含む矩形領域を更新領域画像Rとして、更新領域画像Rの画像データを生成する。
転送量算出部504は、更新領域画像Rの画像データと、更新領域画像Rの画像データの圧縮率cとに基づいて、クライアント装置202に送信するデータ転送量Tを算出する機能を有する。具体的には、例えば、まず、転送量算出部504は、更新領域画像Rの画像データを圧縮する圧縮方式を選択する。
圧縮方式としては、例えば、画像データが静止画の場合は、JPEG(Joint Photographic Experts Group)、GIF(Graphic Interchange Format)、PNG(Portable Network Graphics)などがある。また、画像データが動画の場合は、MPEG(Moving Picture Experts Group)がある。
より具体的には、例えば、転送量算出部504は、更新領域画像Rの画像データの各画素の画素値に基づいて、複数の圧縮方式の中から圧縮効率が最も高い圧縮方式を選択する。なお、画素値とは、例えば、画素の赤色、緑色、青色ごとの輝度である。そして、転送量算出部504は、例えば、更新領域画像Rの画像データのデータ量と、選択した圧縮方式の圧縮率cとを乗算することにより、データ転送量Tを算出する。
転送速度算出部505は、サーバ201とクライアント装置202との間のデータ転送速度Kを算出する機能を有する。具体的には、例えば、転送速度算出部505は、クライアント装置202に送信した所定データの送信時刻と、所定データをクライアント装置202が受信した受信時刻と、所定データのデータ量とに基づいて、データ転送速度Kを算出する。
より具体的には、例えば、転送速度算出部505は、所定データのデータ量を、所定データの送信時刻と受信時刻との時間間隔で除算することにより、単位時間当たりにクライアント装置202に送信可能なデータ転送速度Kを算出する。なお、所定データは、データ転送速度Kを測定する専用のデータであってもよく、また、表示画面Sに表示する画像Pや更新領域画像Rの画像データであってもよい。
転送時間算出部506は、更新領域画像Rの画像データの転送時間tを算出する機能を有する。ここで、更新領域画像Rの画像データの転送時間tは、サーバ201からクライアント装置202に画像データを転送するのにかかる時間である。具体的には、例えば、転送時間算出部506は、データ転送量Tをデータ転送速度Kで除算することにより、更新領域画像Rの画像データの転送時間tを算出する。
分割部507は、更新領域画像Rの画像データの転送時間tに基づいて、更新領域画像Rを分割する分割単位を決定する機能を有する。具体的には、例えば、分割部507は、更新領域画像Rの画像データの転送時間tが閾値Xより大きい場合に、更新領域画像Rから分割した分割領域画像rの画像データの転送時間tが閾値X以下となるように分割単位を決定する。
上述したように、閾値Xは、ユーザによる操作入力が行われてから、その操作入力に対するレスポンスが返ってくるまでにかかる応答時間を表す値である。閾値Xには、例えば、応答時間が閾値Xを超えると、ユーザが不快に感じる程度の値が設定される。閾値Xは、例えば、メモリ302、磁気ディスク305などの記憶装置に記憶されている。
また、分割部507は、決定した分割単位で更新領域画像Rを分割することにより、更新領域画像Rから分割した分割領域画像rごとの画像データを生成する機能を有する。具体的には、例えば、分割部507は、決定した分割単位で更新領域画像Rを縦方向または横方向に区切って分割することにより、分割領域画像rごとの画像データを生成する。
送信部508は、更新領域画像Rから分割された分割領域画像rごとの画像データを、所定の順序でクライアント装置202に順次送信する機能を有する。具体的には、例えば、送信部508は、選択した圧縮方式で分割領域画像rの画像データを圧縮(エンコード)することにより、圧縮後の分割領域画像rの画像データを静止画データとしてクライアント装置202に送信する。
より具体的には、例えば、更新領域画像Rを縦方向に区切って分割した場合、送信部508は、更新領域画像Rの左から順に分割領域画像rの画像データをクライアント装置202に送信することにしてもよい。また、例えば、更新領域画像Rを横方向に区切って分割した場合、送信部508は、更新領域画像Rの上から順に分割領域画像rの画像データをクライアント装置202に送信することにしてもよい。
また、送信部508は、更新領域画像Rから分割された複数の分割領域画像のうち、マウスポインタを含む分割領域画像rの画像データを最初にクライアント装置202に送信することにしてもよい。分割領域画像rは、例えば、操作情報に含まれるマウスポインタの位置を表す情報から特定することができる。
また、送信部508は、更新領域画像Rから分割された複数の分割領域画像のうち、表示画面Sの中心点を含む分割領域画像rの画像データを最初にクライアント装置202に送信することにしてもよい。
なお、更新領域画像Rから分割された分割領域画像rの画像データの送信順序例については、図7〜図10を用いて後述する。
また、送信部508は、更新領域画像Rが分割されていない場合は、更新領域画像Rの画像データをクライアント装置202に送信する。具体的には、例えば、送信部508は、選択した圧縮方式で更新領域画像Rの画像データを圧縮(エンコード)することにより、圧縮後の更新領域画像Rの画像データを静止画データまたは動画データとしてクライアント装置202に送信する。
また、画像Ppreの更新領域画像Rpreから分割された分割領域画像rpreの画像データのうち、クライアント装置202に送信されていない未送信の分割領域画像rpreの画像データが存在する場合がある。この場合、送信部508は、未送信の分割領域画像rpreの画像データの代わりに、更新領域画像Rから分割された分割領域画像rの画像データをクライアント装置202に送信することにしてもよい。
また、生成部503は、更新領域画像Rの画像データが静止画データか否かを判定することにしてもよい。具体的には、例えば、生成部503は、画像Pの画像データが静止画データか動画データかを識別する識別情報に基づいて、更新領域画像Rの画像データが静止画データか否かを判定することにしてもよい。
そして、送信部508は、更新領域画像Rの画像データが動画データの場合は、更新領域画像Rの画像データをクライアント装置202に送信することにしてもよい。これにより、画像Pが頻繁に更新されて分割にかかるオーバーヘッドが大きくなる動画データの場合は、画像Pの更新領域画像Rを分割することなくクライアント装置202に送信することができる。すなわち、転送量算出部504は、更新領域画像Rの画像データが静止画データの場合にのみ、更新領域画像Rの画像データと圧縮率cとに基づいて、データ転送量Tを算出する。
なお、サーバ201は、フレーム間で動きが大きい部分のデータを動画向けの圧縮方式のデータに圧縮してクライアント装置202に送信する機能を有することにしてもよい。具体的には、例えば、サーバ201は、アプリケーションに操作情報を通知して得られる画像を複数の領域に分割し、分割した領域ごとに変更の頻度を監視する。そして、サーバ201は、変更の頻度が閾値を超えた領域を動画化領域として扱うことにしてもよい。
この場合、生成部503は、例えば、更新領域画像Rが動画化領域を含むか否かによって、更新領域画像Rの画像データが静止画データか否かを判定することにしてもよい。より具体的には、例えば、生成部503は、例えば、更新領域画像Rが動画化領域を含む場合は、更新領域画像Rの画像データが動画データであると判定する。なお、フレーム間で動きが大きい部分のデータを動画向けの圧縮方式のデータに圧縮してクライアント装置202に送信する技術については、例えば、特開2011−238014を参照することができる。
(クライアント装置202の機能的構成例)
図6は、クライアント装置202の機能的構成例を示すブロック図である。図6において、クライアント装置202は、取得部601と、送信部602と、受信部603と、表示制御部604と、を含む構成である。取得部601〜表示制御部604は制御部となる機能であり、具体的には、例えば、図4に示したROM402、RAM403、磁気ディスク405などの記憶装置に記憶されたプログラムをCPU401に実行させることにより、または、I/F406により、その機能を実現する。各機能部の処理結果は、例えば、RAM403、磁気ディスク405などの記憶装置に記憶される。
取得部601は、ユーザの操作入力を表す操作情報を取得する機能を有する。具体的には、例えば、取得部601は、表示画面S上でのキーボード408(図4参照)やマウス409(図4参照)を用いたユーザの操作入力を受け付けることにより、ユーザの操作入力を表す操作情報を取得する。
上述したように、操作情報には、例えば、クリック、ダブルクリック、ドラッグ&ドロップ等の操作入力の種別、その操作入力が行われたマウスポインタの位置、その操作入力が終了したことを示す情報が含まれている。なお、ドラッグ&ドロップのように操作入力が継続して行われる場合には、取得部601は、ユーザの操作入力を表す操作情報を一定時間間隔ごとに取得することにしてもよい。
また、タッチパネル式のキーボード408を用いて、タップ、ドラッグ、フリック、ピンチアウト、ピンチイン等の操作入力が行われる場合がある。この場合、取得部601は、タッチパネル式のキーボード408を用いた操作入力を、例えば、サーバ201で実行中のアプリケーションが解釈可能なマウス409を用いた操作入力に変換した操作情報を取得することにしてもよい。ただし、操作情報の変換処理は、サーバ201側で行われることにしてもよい。
送信部602は、取得部601によって取得された操作情報をサーバ201に送信する機能を有する。具体的には、例えば、送信部602は、取得部601によって操作情報が取得されると、その都度、取得された操作情報をサーバ201に送信する。
受信部603は、サーバ201から画像データを受信する機能を有する。具体的には、例えば、受信部603は、画像P、画像Pに含まれる更新領域画像R、更新領域画像Rから分割された分割領域画像rの画像データをサーバ201から受信する。
表示制御部604は、ディスプレイ407を制御して、受信部603によって受信された画像データSDを表示する機能を有する。具体的には、例えば、表示制御部604は、受信された画像P、更新領域画像R、分割領域画像rの画像データをデコードとして、表示画面Sの対応する位置に表示する。
また、送信部602は、受信部603によって受信された所定データの受信時刻をサーバ201に送信することにしてもよい。所定データは、上述したように、サーバ201においてデータ転送速度Kを測定するためのデータである。
(デスクトップ画面の表示例)
次に、クライアント装置202のディスプレイ407に表示されるデスクトップ画面の表示例について説明する。ここでは、まず、更新領域画像Rを横方向に分割し、更新領域画像Rから分割された分割領域画像rの画像データを配置位置が上のものから順にクライアント装置202に送信する場合について説明する。
<第1の表示例>
図7および図8は、デスクトップ画面の第1の表示例を示す説明図である。図7において、クライアント装置202のディスプレイ407にデスクトップ画面701が表示されている。また、デスクトップ画面701にはウィンドウ702が表示されており、ウィンドウ702には画像710が表示されている。
ここで、クライアント装置202において、ウィンドウ702に表示されている画像710を矢印703のように回転させる操作入力が行われた結果(図7中(7−1)参照)、サーバ201において、ウィンドウ702に次に表示する画像720が取得された場合を想定する(図7中(7−2)参照)。また、画像720の更新領域画像Rを画像720の全領域とし、更新領域画像Rが分割領域画像721〜723に分割された場合を想定する(図7中(7−3)参照)。
この場合、まず、サーバ201は、分割領域画像721〜723のうち分割領域画像721の画像データをクライアント装置202に送信する。そして、クライアント装置202は、分割領域画像721の画像データに基づいて、ウィンドウ702の対応する位置に分割領域画像721を表示する(図7中(7−4)参照)。
ここで、クライアント装置202において、ウィンドウ702に表示されている一部更新済みの画像710を矢印704のように回転させる操作入力が行われた結果(図7中(7−5)参照)、サーバ201において、ウィンドウ702に次に表示する画像730が取得された場合を想定する(図7中(7−6)参照)。また、画像730の更新領域画像Rを画像730の全領域とし、更新領域画像Rが分割領域画像731〜733に分割された場合を想定する(図8中(7−7)参照)。
この場合、サーバ201は、分割領域画像722の代わりに、分割領域画像732の画像データをクライアント装置202に送信する。この結果、クライアント装置202は、分割領域画像732の画像データに基づいて、ウィンドウ702内の対応する位置に分割領域画像732を表示する(図8中(7−8)参照)。
次に、サーバ201は、分割領域画像731〜733のうち未送信の分割領域画像733の画像データをクライアント装置202に送信する(図8中(7−9)参照)。この結果、クライアント装置202は、分割領域画像733の画像データに基づいて、ウィンドウ702内の対応する位置に分割領域画像733を表示する(図8中(7−10)参照)。
次に、サーバ201は、分割領域画像731〜733のうち未送信の分割領域画像731の画像データをクライアント装置202に送信する(図8中(7−11)参照)。この結果、クライアント装置202は、分割領域画像731の画像データに基づいて、ウィンドウ702内の対応する位置に分割領域画像731を表示する(図8中(7−12)参照)。この結果、ウィンドウ702のすべての画面更新が行われて画像730がウィンドウ702に表示される。
このように、サーバ201によれば、ウィンドウ単位で表示内容を更新するよりも早いタイミングでウィンドウ702の表示内容を部分的に更新することができる。この結果、ユーザは、自身が行った操作入力に対してウィンドウ702の表示内容がどのように変化するのかを予測することができるようになり、新たな操作入力を行うべきか否かを判断し易くなる。
また、サーバ201によれば、更新領域画像Rから分割された分割領域画像rの画像データを予め決められた順序でクライアント装置202に送信することができる。これにより、ユーザは、ウィンドウ702上で次に更新される部分を把握し易くなる。また、サーバ201によれば、未送信の分割領域画像の画像データが存在する状態で、次の操作入力が行われた場合、未送信の画像データの代わりに、次の更新領域画像Rから分割された分割領域画像rの画像データをクライアント装置202に送信することができる。
<第2の表示例>
次に、更新領域画像Rを横方向に分割し、更新領域画像Rから分割された分割領域画像rのうち、マウスポインタを含む分割領域画像rの画像データを最初にクライアント装置202に送信する場合について説明する。
図9は、デスクトップ画面の第2の表示例を示す説明図である。図9において、クライアント装置202のディスプレイ407にデスクトップ画面901が表示されている。また、デスクトップ画面901にはウィンドウ902が表示されており、ウィンドウ902には画像910とマウスカーソル903が表示されている。
ここで、クライアント装置202において、ウィンドウ902に表示されている画像910を矢印904のように回転させる操作入力が行われた結果(図9中(9−1)参照)、サーバ201において、ウィンドウ902に次に表示する画像920が取得された場合を想定する(図9中(9−2)参照)。また、画像920の更新領域画像Rを画像920の全領域とし、更新領域画像Rが分割領域画像921〜923に分割された場合を想定する(図9中(9−3)参照)。
この場合、まず、サーバ201は、分割領域画像921〜923のうちマウスカーソル903(マウスポインタ)を含む分割領域画像923を特定する。そして、サーバ201は、マウスカーソル903(マウスポインタ)を含む分割領域画像923の画像データをクライアント装置202に送信する。そして、クライアント装置202は、分割領域画像923の画像データに基づいて、ウィンドウ902の対応する位置に分割領域画像923を表示する(図9中(9−4)参照)。
次に、サーバ201は、分割領域画像921〜923のうち未送信の分割領域画像921の画像データをクライアント装置202に送信する(図9中(9−5)参照)。この結果、クライアント装置202は、分割領域画像921の画像データに基づいて、ウィンドウ902内の対応する位置に分割領域画像921を表示する(図9中(9−6)参照)。
次に、サーバ201は、分割領域画像921〜923のうち未送信の分割領域画像922の画像データをクライアント装置202に送信する(図9中(9−7)参照)。この結果、クライアント装置202は、分割領域画像922の画像データに基づいて、ウィンドウ902内の対応する位置に分割領域画像922を表示する(図9中(9−8)参照)。
このように、サーバ201によれば、更新領域画像Rから分割された分割領域画像921〜923のうちマウスカーソル903を含む分割領域画像923の画像データを最初にクライアント装置202に送信することができる。これにより、ウィンドウ902においてマウスカーソル903を含む部分が最初に更新されるため、ユーザは、ウィンドウ902上で次に更新される部分を把握し易くなる。
<第3の表示例>
次に、更新領域画像Rを横方向に分割し、更新領域画像Rから分割された分割領域画像rのうち、更新領域画像Rの中心点を含む分割領域画像rの画像データを最初にクライアント装置202に送信する場合について説明する。
図10は、デスクトップ画面の第3の表示例を示す説明図である。図10において、クライアント装置202のディスプレイ407にデスクトップ画面1001が表示されている。また、デスクトップ画面1001にはウィンドウ1002が表示されており、ウィンドウ1002には画像1010が表示されている。
ここで、クライアント装置202において、ウィンドウ1002に表示されている画像1010を矢印1003のように回転させる操作入力が行われた結果(図10中(10−1)参照)、サーバ201において、ウィンドウ1002に次に表示する画像1020が取得された場合を想定する(図10中(10−2)参照)。また、画像1020の更新領域画像Rを画像1020の全領域とし、更新領域画像Rが分割領域画像1021〜1023に分割された場合を想定する(図10中(10−3)参照)。
この場合、まず、サーバ201は、分割領域画像1021〜1023のうちウィンドウ1002の中心点1004を含む分割領域画像1022を特定する。そして、サーバ201は、中心点1004を含む分割領域画像1022の画像データをクライアント装置202に送信する。そして、クライアント装置202は、分割領域画像1022の画像データに基づいて、ウィンドウ1002の対応する位置に分割領域画像1022を表示する(図10中(10−4)参照)。
次に、サーバ201は、分割領域画像1021〜1023のうち未送信の分割領域画像1021の画像データをクライアント装置202に送信する(図10中(10−5)参照)。この結果、クライアント装置202は、分割領域画像1021の画像データに基づいて、ウィンドウ1002内の対応する位置に分割領域画像1021を表示する(図10中(10−6)参照)。
次に、サーバ201は、分割領域画像1021〜1023のうち未送信の分割領域画像1023の画像データをクライアント装置202に送信する(図10中(10−7)参照)。この結果、クライアント装置202は、分割領域画像1023の画像データに基づいて、ウィンドウ1002内の対応する位置に分割領域画像1023を表示する(図10中(10−8)参照)。
このように、サーバ201によれば、更新領域画像Rから分割された分割領域画像1021〜1023のうちウィンドウ1002の中心点1004を含む分割領域画像1022の画像データを最初にクライアント装置202に送信することができる。これにより、ウィンドウ1002において中心点1004を含む部分が最初に更新されるため、ユーザは、ウィンドウ1002上で次に更新される部分を把握し易くなる。
(クライアント装置202の表示制御処理手順)
次に、クライアント装置202の表示制御処理手順について説明する。
図11は、クライアント装置202の表示制御処理手順の一例を示すフローチャートである。図11のフローチャートにおいて、まず、クライアント装置202は、ユーザの操作入力を受け付けたか否かを判断する(ステップS1101)。ここで、クライアント装置202は、ユーザの操作入力を受け付けるのを待つ(ステップS1101:No)。
そして、クライアント装置202は、ユーザの操作入力を受け付けた場合(ステップS1101:Yes)、ユーザの操作入力を表す操作情報を取得する(ステップS1102)。次に、クライアント装置202は、取得した操作情報をサーバ201に送信する(ステップS1103)。
そして、クライアント装置202は、サーバ201から画像データを受信したか否かを判断する(ステップS1104)。ここで、サーバ201から画像データを受信しなかった場合(ステップS1104:No)、クライアント装置202は、本フローチャートによる一連の処理を終了する。
一方、サーバ201から画像データを受信した場合(ステップS1104:Yes)、クライアント装置202は、受信した画像データが静止画データか否かを判断する(ステップS1105)。
ここで、静止画データの場合(ステップS1105:Yes)、クライアント装置202は、受信した画像データを静止画用の復元方式を用いてデコードした静止画データを表示画面Sに表示して(ステップS1106)、本フローチャートによる一連の処理を終了する。
一方、動画データの場合(ステップS1105:No)、クライアント装置202は、受信した画像データを動画用の復元方式を用いてデコードした動画データを表示画面Sに表示して(ステップS1107)、本フローチャートによる一連の処理を終了する。これにより、ユーザの操作入力に応じて表示画面Sの表示内容を更新することができる。
(サーバ201の画像処理手順)
次に、サーバ201の画像処理手順について説明する。
図12は、サーバ201の画像処理手順の一例を示すフローチャートである。図12のフローチャートにおいて、まず、サーバ201は、クライアント装置202から操作情報を受信したか否かを判断する(ステップS1201)。
ここで、サーバ201は、クライアント装置202から操作情報を受信した場合(ステップS1201:Yes)、クライアント装置202からの要求に応じて実行中のアプリケーションに操作情報を通知することにより、フレームバッファから画像Pの画像データを取得する(ステップS1202)。
次に、サーバ201は、画像Pの画像データと画像Ppreの画像データとに基づいて、表示画面Sの表示内容が更新されているか否かを判断する(ステップS1203)。ここで、表示画面Sの表示内容が更新されていない場合(ステップS1203:No)、サーバ201は、ステップS1210に移行する。
一方、表示画面Sの表示内容が更新されている場合(ステップS1203:Yes)、サーバ201は、画像Pの更新領域画像Rの画像データを生成する(ステップS1204)。そして、サーバ201は、生成した更新領域画像Rの画像データが静止画データか否かを判断する(ステップS1205)。
ここで、更新領域画像Rの画像データが静止画データの場合(ステップS1205:Yes)、サーバ201は、更新領域画像Rの画像データと、更新領域画像Rの画像データの圧縮率cとに基づいて、クライアント装置202に送信するデータ転送量Tを算出する(ステップS1206)。
次に、サーバ201は、算出したデータ転送量Tをデータ転送速度Kで除算することにより、更新領域画像Rの画像データの転送時間tを算出する(ステップS1207)。そして、サーバ201は、算出した更新領域画像Rの画像データの転送時間tが閾値Xより大きいか否かを判断する(ステップS1208)。
ここで、更新領域画像Rの画像データの転送時間tが閾値Xより大きい場合(ステップS1208:Yes)、サーバ201は、分割領域画像処理を実行する(ステップS1209)。なお、分割領域画像処理の具体的な処理手順については、図13を用いて後述する。そして、サーバ201は、所定時間(例えば、30[msec])待機して(ステップS1210)、ステップS1201に戻る。
また、ステップS1208において、更新領域画像Rの画像データの転送時間tが閾値X以下の場合(ステップS1208:No)、サーバ201は、分割数nを「n=0」で初期化する(ステップS1211)。そして、サーバ201は、更新領域画像Rの画像データを静止画データとしてクライアント装置202に送信して(ステップS1212)、ステップS1210に移行する。
また、ステップS1205において、更新領域画像Rの画像データが動画データの場合(ステップS1205:No)、サーバ201は、更新領域画像Rの画像データを動画データとしてクライアント装置202に送信して(ステップS1213)、ステップS1210に移行する。
また、ステップS1201において、サーバ201は、クライアント装置202から操作情報を受信していない場合(ステップS1201:No)、分割数nが「n>0」かつ未送信の分割領域画像の画像データがあるか否かを判断する(ステップS1214)。
ここで、「n>0」かつ未送信の分割領域画像の画像データがある場合(ステップS1214:Yes)、サーバ201は、図13に示すステップS1304に移行する。一方、「n=0」または未送信の分割領域画像の画像データがない場合(ステップS1214:No)、サーバ201は、ステップS1210に移行する。
ここで、図12に示したステップS1209の分割領域画像処理の具体的な処理手順について説明する。
図13は、分割領域画像処理の具体的処理手順の一例を示すフローチャートである。図13のフローチャートにおいて、まず、サーバ201は、更新領域画像Rから分割した分割領域画像rの画像データの転送時間tが閾値X以下となるように分割単位を決定する(ステップS1301)。
次に、サーバ201は、決定した分割単位で更新領域画像Rを分割することにより、更新領域画像Rから分割した分割領域画像ごとの画像データを生成する(ステップS1302)。そして、サーバ201は、更新領域画像Rを分割した分割数nを設定する(ステップS1303)。
次に、サーバ201は、更新領域画像Rから分割された分割領域画像から選択されていない未選択の分割領域画像の画像データを選択する(ステップS1304)。そして、サーバ201は、選択した分割領域画像の画像データに基づいて、分割領域画像に更新箇所があるか否かを判断する(ステップS1305)。
ここで、分割領域画像に更新箇所がない場合(ステップS1305:No)、サーバ201は、図12に示したステップS1210に移行する。一方、分割領域画像に更新箇所がある場合(ステップS1305:Yes)、サーバ201は、選択した分割領域画像の画像データを静止画データとしてクライアント装置202に送信して(ステップS1306)、分割領域画像処理を呼び出したステップに戻る。
これにより、クライアント装置202において、表示画面Sの表示内容が更新される更新間隔が閾値Xを超えないように、更新領域画像Rを分割した分割領域画像rの画像データをクライアント装置202に送信することができる。
以上説明したように、実施の形態にかかるサーバ201によれば、クライアント装置202の表示画面Sに表示する更新領域画像Rの画像データと、当該画像データの圧縮率cとに基づいて、データ転送量Tを算出することができる。また、サーバ201によれば、データ転送量Tとデータ転送速度Kとに基づいて、更新領域画像Rの画像データの転送時間tを算出することができる。また、サーバ201によれば、算出した更新領域画像Rの画像データの転送時間tに基づいて、更新領域画像Rを分割する分割単位を決定することができる。
これにより、ネットワークの性能を表すデータ転送速度Kと、端末装置102に送信するデータ転送量Tとに応じて、端末装置102の表示画面110に表示する更新領域画像Rの分割単位を動的に変更することができる。
また、サーバ201によれば、更新領域画像Rの画像データの転送時間tが閾値Xより大きい場合に、更新領域画像Rを分割した分割領域画像rの画像データの転送時間tが閾値X以下となるように分割単位を決定することができる。また、サーバ201によれば、決定した分割単位で更新領域画像Rを分割した分割領域画像rの画像データを、所定の順序でクライアント装置202に順次送信することができる。
これにより、クライアント装置202において、表示画面Sの表示内容が更新される更新間隔が閾値Xを超えないように、分割領域画像rの画像データを表示画面Sに順次表示させることができる。この結果、ユーザの操作入力に対するレスポンスを早めて、ユーザの操作性の低下を防ぐことができる。また、サーバ201によれば、閾値Xを変更することにより、ユーザの操作入力に対する応答時間を調整することができる。
また、サーバ201によれば、クライアント装置202に送信された所定データの送信時刻と、クライアント装置202によって所定データが受信された受信時刻と、所定データのデータ量とに基づいて、データ転送速度Kを算出することができる。これにより、時々刻々と変化するトラフィック量に応じたネットワーク210の性能を測定することができる。
また、サーバ201によれば、未送信の分割領域画像rpreの画像データがある状態で新たな画面更新が行われる場合は、未送信の分割領域画像rpreの画像データの代わりに、分割領域画像rの画像データをクライアント装置202に送信することができる。これにより、過去の操作入力に対する画面更新のための画像データの送信を止めて、ネットワーク210のトラフィック量の増大化を防ぐことができる。
これらのことから実施の形態にかかるシンクライアントシステム200によれば、ユーザが不快に感じない程度の更新間隔で表示画面Sの表示内容を部分的に更新することができる。これにより、ユーザの操作入力に対する応答時間を早めて操作感を向上させるとともに、操作入力に対して表示画面Sの表示内容がどのように変化するのかをユーザが予測できるようになり操作性を向上させることができる。
例えば、通信状態が不安定なモバイル環境でクライアント装置202を用いてアプリケーションを操作する場合に、オブジェクトの回転などを繰り返し操作するたびに発生するデータ転送のデータ量を削減することができる。また、通信が一時的に切断されても、表示画面Sの表示内容を部分的に更新することにより、通信の不安定さをユーザに対して隠蔽することができる。
なお、本実施の形態で説明した画像処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本画像処理プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本画像処理プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)ネットワークを介して情報処理装置と端末装置とが接続されるシステムにおいて、
前記情報処理装置は、
前記端末装置の表示画面に表示する画像の画像データと、前記画像データの圧縮率とに基づいて、前記端末装置に送信するデータ転送量を算出する転送量算出部と、
前記転送量算出部によって算出された前記データ転送量と、前記端末装置との間のデータ転送速度とに基づいて、前記画像を分割する分割単位を決定する決定部と、
を有することを特徴とするシステム。
(付記2)前記情報処理装置は、
前記データ転送量と前記データ転送速度とに基づいて、前記画像データの転送時間を算出する転送時間算出部を有し、
前記決定部は、
前記転送時間算出部によって算出された前記画像データの転送時間が閾値より大きい場合に、前記画像を分割した分割領域の画像データの転送時間が前記閾値以下となるように前記分割単位を決定することを特徴とする付記1に記載のシステム。
(付記3)前記情報処理装置は、
前記決定部によって決定された前記分割単位で前記画像を分割した分割領域画像の画像データを、所定の順序で前記端末装置に順次送信する送信部を有することを特徴とする付記2に記載のシステム。
(付記4)前記情報処理装置は、
前記端末装置で行われた操作入力を表す操作情報を前記端末装置から受信する受信部と、前記受信部によって受信された前記操作情報を前記端末装置からの要求に応じて実行中のアプリケーションに通知することにより、前記画像の画像データを取得する取得部と、を有し、
前記転送量算出部は、
前記取得部によって取得された前記画像の画像データと、当該画像データの圧縮率とに基づいて、前記データ転送量を算出することを特徴とする付記3に記載のシステム。
(付記5)前記情報処理装置は、
前記操作情報を前記アプリケーションに通知して得られる第1の画像の画像データと、前記操作情報の直前に前記端末装置から受信された操作情報を前記アプリケーションに通知して得られる第2の画像の画像データとに基づいて、前記第1の画像のうちの更新領域を表す画像の画像データを生成する生成部を有し、
前記転送量算出部は、
前記生成部によって生成された前記画像の画像データと当該画像データの圧縮率とに基づいて、前記データ転送量を算出することを特徴とする付記4に記載のシステム。
(付記6)前記情報処理装置は、
前記端末装置に送信されたデータの送信時刻と、前記端末装置によって前記データが受信された受信時刻と、前記データのデータ量とに基づいて、前記データ転送速度を算出する転送速度算出部を有し、
前記転送時間算出部は、
前記転送量算出部によって算出された前記データ転送量と前記転送速度算出部によって算出された前記データ転送速度とに基づいて、前記画像の画像データの転送時間を算出することを特徴とする付記5に記載のシステム。
(付記7)前記情報処理装置は、
前記第2の画像のうちの更新領域を表す画像から分割された分割領域画像の画像データのうち、前記端末装置に送信されていない未送信の分割領域画像の画像データがある場合、前記未送信の分割領域画像の画像データの代わりに、前記画像から分割された分割領域画像の画像データを前記端末装置に送信することを特徴とする付記6に記載のシステム。
(付記8)前記転送量算出部は、
前記画像の画像データが静止画データの場合に、前記画像の画像データと当該画像データの圧縮率とに基づいて、前記データ転送量を算出することを特徴とする付記7に記載のシステム。
(付記9)前記送信部は、
前記画像の画像データが静止画データではない場合、前記画像の画像データを前記端末装置に送信することを特徴とする付記8に記載のシステム。
(付記10)ネットワークを介して端末装置と接続される情報処理装置において、
前記端末装置の表示画面に表示する画像の画像データと、前記画像データの圧縮率とに基づいて、前記端末装置に送信するデータ転送量を算出する転送量算出部と、
前記転送量算出部によって算出された前記データ転送量と、前記端末装置との間のデータ転送速度とに基づいて、前記画像を分割する分割単位を決定する決定部と、
を有することを特徴とする情報処理装置。
(付記11)ネットワークを介して端末装置と接続される情報処理装置が、
前記端末装置の表示画面に表示する画像の画像データと、前記画像データの圧縮率とに基づいて、前記端末装置に送信するデータ転送量を算出し、
算出した前記データ転送量と、前記端末装置との間のデータ転送速度とに基づいて、前記画像を分割する分割単位を決定する、
処理を実行することを特徴とする画像処理方法。
100 システム
101 情報処理装置
102 端末装置
200 シンクライアントシステム
201 サーバ
202 クライアント装置
501,603 受信部
502,601 取得部
503 生成部
504 転送量算出部
505 転送速度算出部
506 転送時間算出部
507 分割部
508,602 送信部
604 表示制御部

Claims (11)

  1. ネットワークを介して情報処理装置と端末装置とが接続されるシステムにおいて、
    前記情報処理装置は、
    前記端末装置の表示画面に表示する画像の画像データと、前記画像データの圧縮率とに基づいて、前記端末装置に送信するデータ転送量を算出する転送量算出部と、
    前記転送量算出部によって算出された前記データ転送量と、前記端末装置との間のデータ転送速度とに基づいて、前記画像を分割する分割単位を決定する決定部と、
    を有することを特徴とするシステム。
  2. 前記情報処理装置は、
    前記データ転送量と前記データ転送速度とに基づいて、前記画像データの転送時間を算出する転送時間算出部を有し、
    前記決定部は、
    前記転送時間算出部によって算出された前記画像データの転送時間が閾値より大きい場合に、前記画像を分割した分割領域の画像データの転送時間が前記閾値以下となるように前記分割単位を決定することを特徴とする請求項1に記載のシステム。
  3. 前記情報処理装置は、
    前記決定部によって決定された前記分割単位で前記画像を分割した分割領域画像の画像データを、所定の順序で前記端末装置に順次送信する送信部を有することを特徴とする請求項2に記載のシステム。
  4. 前記情報処理装置は、
    前記端末装置で行われた操作入力を表す操作情報を前記端末装置から受信する受信部と、前記受信部によって受信された前記操作情報を前記端末装置からの要求に応じて実行中のアプリケーションに通知することにより、前記画像の画像データを取得する取得部と、を有し、
    前記転送量算出部は、
    前記取得部によって取得された前記画像の画像データと、当該画像データの圧縮率とに基づいて、前記データ転送量を算出することを特徴とする請求項3に記載のシステム。
  5. 前記情報処理装置は、
    前記操作情報を前記アプリケーションに通知して得られる第1の画像の画像データと、前記操作情報の直前に前記端末装置から受信された操作情報を前記アプリケーションに通知して得られる第2の画像の画像データとに基づいて、前記第1の画像のうちの更新領域を表す画像の画像データを生成する生成部を有し、
    前記転送量算出部は、
    前記生成部によって生成された前記画像の画像データと当該画像データの圧縮率とに基づいて、前記データ転送量を算出することを特徴とする請求項4に記載のシステム。
  6. 前記情報処理装置は、
    前記端末装置に送信されたデータの送信時刻と、前記端末装置によって前記データが受信された受信時刻と、前記データのデータ量とに基づいて、前記データ転送速度を算出する転送速度算出部を有し、
    前記転送時間算出部は、
    前記転送量算出部によって算出された前記データ転送量と前記転送速度算出部によって算出された前記データ転送速度とに基づいて、前記画像の画像データの転送時間を算出することを特徴とする請求項5に記載のシステム。
  7. 前記情報処理装置は、
    前記第2の画像のうちの更新領域を表す画像から分割された分割領域画像の画像データのうち、前記端末装置に送信されていない未送信の分割領域画像の画像データがある場合、前記未送信の分割領域画像の画像データの代わりに、前記画像から分割された分割領域画像の画像データを前記端末装置に送信することを特徴とする請求項6に記載のシステム。
  8. 前記転送量算出部は、
    前記画像の画像データが静止画データの場合に、前記画像の画像データと当該画像データの圧縮率とに基づいて、前記データ転送量を算出することを特徴とする請求項7に記載のシステム。
  9. 前記送信部は、
    前記画像の画像データが静止画データではない場合、前記画像の画像データを前記端末装置に送信することを特徴とする請求項8に記載のシステム。
  10. ネットワークを介して端末装置と接続される情報処理装置において、
    前記端末装置の表示画面に表示する画像の画像データと、前記画像データの圧縮率とに基づいて、前記端末装置に送信するデータ転送量を算出する転送量算出部と、
    前記転送量算出部によって算出された前記データ転送量と、前記端末装置との間のデータ転送速度とに基づいて、前記画像を分割する分割単位を決定する決定部と、
    を有することを特徴とする情報処理装置。
  11. ネットワークを介して端末装置と接続される情報処理装置が、
    前記端末装置の表示画面に表示する画像の画像データと、前記画像データの圧縮率とに基づいて、前記端末装置に送信するデータ転送量を算出し、
    算出した前記データ転送量と、前記端末装置との間のデータ転送速度とに基づいて、前記画像を分割する分割単位を決定する、
    処理を実行することを特徴とする画像処理方法。
JP2012074808A 2012-09-26 2012-09-26 システム、情報処理装置および画像処理方法 Granted JPWO2014049761A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/074808 WO2014049761A1 (ja) 2012-09-26 2012-09-26 システム、情報処理装置および画像処理方法

Publications (1)

Publication Number Publication Date
JPWO2014049761A1 true JPWO2014049761A1 (ja) 2016-08-22

Family

ID=50387226

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012074808A Granted JPWO2014049761A1 (ja) 2012-09-26 2012-09-26 システム、情報処理装置および画像処理方法

Country Status (3)

Country Link
US (1) US9584752B2 (ja)
JP (1) JPWO2014049761A1 (ja)
WO (1) WO2014049761A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019047461A (ja) * 2017-09-07 2019-03-22 富士通株式会社 画像処理プログラム、画像処理方法および画像処理装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009004996A1 (ja) * 2007-06-29 2009-01-08 Nec Corporation 画面伝送システム、画面送信サーバ、画面伝送方法およびプログラム記録媒体
JP2010004353A (ja) * 2008-06-20 2010-01-07 Canon Inc 映像処理装置およびその制御方法
WO2010032301A1 (ja) * 2008-09-18 2010-03-25 パイオニア株式会社 画像共有制御装置、画像共有システム、画像共有制御方法、そのプログラム、および、そのプログラムを記録した記録媒体
JP2010257228A (ja) * 2009-04-24 2010-11-11 Nec Corp サーバ端末、画像処理システム、画像処理方法およびプログラム
JP2011066577A (ja) * 2009-09-16 2011-03-31 Fujitsu Broad Solution & Consulting Inc 画像処理プログラム、表示システム、画像処理装置および画像処理方法
JP2011238014A (ja) * 2010-05-10 2011-11-24 Fujitsu Ltd 情報処理装置、画像送信プログラム、画像表示プログラム及び画像表示方法
JP2012065314A (ja) * 2010-09-20 2012-03-29 Hitachi Ltd データ配送装置及びデータ配送システム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03282745A (en) * 1990-03-30 1991-12-12 Nec Corp File distribution system
AU8840001A (en) * 2000-08-23 2002-03-04 Novatel Wireless Inc Method and apparatus for a distributed data transfer over multiple independent wireless networks
JP2002268998A (ja) 2001-03-09 2002-09-20 Toshiba Corp データ配信方法、端末、サーバ、データ受信プログラム及びデータ配信プログラム
EP1551179B1 (en) * 2002-10-11 2018-01-03 Saturn Licensing LLC Network control confirmation system, control communication terminal, server, and network control confirmation method
WO2007114107A1 (ja) * 2006-03-30 2007-10-11 Pioneer Corporation コンテンツ送信システムにおけるサーバー装置およびコンテンツ送信方法
JP2008139981A (ja) * 2006-11-30 2008-06-19 Sharp Corp 制御装置、端末装置、表示システム、表示方法、プログラムおよびその記録媒体
JP2009181460A (ja) 2008-01-31 2009-08-13 Nec Corp シンクライアントシステム
US20100268694A1 (en) 2009-04-17 2010-10-21 Laurent Denoue System and method for sharing web applications
US9510048B2 (en) * 2009-05-26 2016-11-29 Red Hat Israel, Ltd. Dynamically changing streaming video quality
WO2012109582A1 (en) * 2011-02-10 2012-08-16 Ncomputing Inc. System and method for multistage optimized jpeg output
KR101416062B1 (ko) * 2011-05-26 2014-07-08 삼성전자주식회사 무선 통신 시스템에서의 데이터 전송률 조절 방법 및 장치

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009004996A1 (ja) * 2007-06-29 2009-01-08 Nec Corporation 画面伝送システム、画面送信サーバ、画面伝送方法およびプログラム記録媒体
JP2010004353A (ja) * 2008-06-20 2010-01-07 Canon Inc 映像処理装置およびその制御方法
WO2010032301A1 (ja) * 2008-09-18 2010-03-25 パイオニア株式会社 画像共有制御装置、画像共有システム、画像共有制御方法、そのプログラム、および、そのプログラムを記録した記録媒体
JP2010257228A (ja) * 2009-04-24 2010-11-11 Nec Corp サーバ端末、画像処理システム、画像処理方法およびプログラム
JP2011066577A (ja) * 2009-09-16 2011-03-31 Fujitsu Broad Solution & Consulting Inc 画像処理プログラム、表示システム、画像処理装置および画像処理方法
JP2011238014A (ja) * 2010-05-10 2011-11-24 Fujitsu Ltd 情報処理装置、画像送信プログラム、画像表示プログラム及び画像表示方法
JP2012065314A (ja) * 2010-09-20 2012-03-29 Hitachi Ltd データ配送装置及びデータ配送システム

Also Published As

Publication number Publication date
US20150195475A1 (en) 2015-07-09
WO2014049761A1 (ja) 2014-04-03
US9584752B2 (en) 2017-02-28

Similar Documents

Publication Publication Date Title
US20190235692A1 (en) Systems, methods, and computer-readable media for managing collaboration on a virtual work of art
US8102400B1 (en) Method and apparatus for providing enhanced resolution display for display telephones and PDAs
US7730157B2 (en) Methods, media, and systems for displaying information on a thin-client in communication with a network
US9131021B2 (en) Dynamic screen sharing for optimal performance
Baratto et al. Thinc: A virtual display architecture for thin-client computing
KR101413126B1 (ko) 원격 상호작용에 응답한 비디오 콘텐츠의 전송 아키텍처
EP2678771B1 (en) Gesture visualization and sharing between electronic devices and remote displays
US10540077B1 (en) Conserving processing resources by controlling updates to damaged tiles of a content page
US9485290B1 (en) Method and system for controlling local display and remote virtual desktop from a mobile device
US20120005630A1 (en) Highly Responsive Screen Output Device, Screen Output System, and Screen Output Method
US10432681B1 (en) Method and system for controlling local display and remote virtual desktop from a mobile device
KR102307163B1 (ko) 크로스 플랫폼 렌더링 엔진
US20110265009A1 (en) Terminal services view toolbox
JP5899897B2 (ja) 情報処理装置、情報処理方法及びプログラム
US20090006977A1 (en) Method and System of Computer Remote Control that Optimized for Low Bandwidth Network and Low Level Personal Communication Terminal Device
JP6221214B2 (ja) システム、端末装置および画像処理方法
Kim et al. pTHINC: a thin-client architecture for mobile wireless web
GB2528870A (en) Managing display data for display
JP2003531429A (ja) デジタルドキュメント処理
JPWO2014049761A1 (ja) システム、情報処理装置および画像処理方法
Baratto THINC: a virtual and remote display architecture for desktop computing and mobile devices
KR101247770B1 (ko) 가상 화이트보드 데이터 처리 장치와 그 방법
WO1996018943A1 (en) Method for the indication of updating process for a remote display
US20160306599A1 (en) Computer product, image processing method, and image processing apparatus
WO2021169236A1 (zh) 渲染的方法、装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160830

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161031

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170117