JP2007226635A - Server device and client device of remote desktop system - Google Patents

Server device and client device of remote desktop system Download PDF

Info

Publication number
JP2007226635A
JP2007226635A JP2006048532A JP2006048532A JP2007226635A JP 2007226635 A JP2007226635 A JP 2007226635A JP 2006048532 A JP2006048532 A JP 2006048532A JP 2006048532 A JP2006048532 A JP 2006048532A JP 2007226635 A JP2007226635 A JP 2007226635A
Authority
JP
Japan
Prior art keywords
data
image data
eigenvalue
image
display
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006048532A
Other languages
Japanese (ja)
Inventor
Futoshi Tsubaki
太 椿
Takeya Fujii
毅也 藤井
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.)
Victor Company of Japan Ltd
Original Assignee
Victor Company of Japan 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 Victor Company of Japan Ltd filed Critical Victor Company of Japan Ltd
Priority to JP2006048532A priority Critical patent/JP2007226635A/en
Publication of JP2007226635A publication Critical patent/JP2007226635A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To considerably reduce the data amount of image data transmitted from a server to a client to increase a reaction speed of a GUI without increasing a load on the client side in a remote desktop system. <P>SOLUTION: An eigenvalue calculation part 801 of a server E01 calculates a peculiar value (for example, a hash value) of image data to be displayed on a display 410 of a client E02. The calculated eigenvalue and image data are not only stored in a table but also transmitted to the client. A comparative determination part 802 refers to the eigenvalue of image data to be transmitted and eigenvalues stored in the table, and transmits only the eigenvalue to the client without transmitting the image data when the coincidence of the eigenvalue of the image data is found in the table. The client stores data received from the server into a table, and acquires image data corresponding to an eigenvalue from the table to output this image data to the display when only the eigenvalue is received from the server. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、キーボードなどの入力装置と、映像を表示することが可能なビットマップディスプレイなどの表示装置とを備えたクライアント装置から遠隔地にあるサーバ装置に対して、アプリケーションなどの操作指示を送信し、その結果として、サーバ装置からクライアント装置に送信される映像をクライアント装置で表示するリモートデスクトップシステムに関し、特に、リモートデスクトップシステムのサーバ装置及びクライアント装置に関する。   The present invention transmits an operation instruction such as an application from a client device having an input device such as a keyboard and a display device such as a bitmap display capable of displaying video to a server device at a remote location. As a result, the present invention relates to a remote desktop system that displays an image transmitted from a server device to a client device on the client device, and more particularly to a server device and a client device of the remote desktop system.

リモートデスクトップシステムとして1970年代から普及したTSS(Time Sharing System:タイム・シェアリング・システム)は、マルチユーザ型の汎用コンピュータであり、貴重な計算機資源を複数のユーザ(利用者)が複数の端末装置を介して同時に使用できるようにしたものである。以下、図23を参照しながら、従来のTSSの一例を説明する。   TSS (Time Sharing System), which has been popular since the 1970s as a remote desktop system, is a multi-user general-purpose computer, and multiple users (users) share valuable computer resources with multiple terminal devices. Can be used at the same time. Hereinafter, an example of a conventional TSS will be described with reference to FIG.

図23に図示されているTSSでは、例えば、TSSを提供する汎用コンピュータA01上で動作する端末サーバ102と端末装置103とがシリアル伝送A02で接続されており、ユーザA03は端末装置103からTSSにログインし、アプリケーション101を実行する。端末サーバ102は、端末装置103のキーボードから入力された文字列をアプリケーション101の入力に渡すとともに、アプリケーション101の文字列出力を端末装置103に送り返す。これにより、端末装置103は、端末サーバ102から受信した文字列をディスプレイ104に表示して、遠隔操作を行うことが可能となる。なお、文字列は、IEEE(Institute of Electrical and Electronic Engineers)−488(又はRS−232C)のような無手順シリアル伝送規格のビット列に変換されて、TSSと端末装置103との間で送受信される。   In the TSS illustrated in FIG. 23, for example, the terminal server 102 and the terminal device 103 operating on the general-purpose computer A01 that provides the TSS are connected by the serial transmission A02, and the user A03 is transferred from the terminal device 103 to the TSS. Log in and execute the application 101. The terminal server 102 passes the character string input from the keyboard of the terminal device 103 to the input of the application 101 and sends back the character string output of the application 101 to the terminal device 103. Thereby, the terminal device 103 can display the character string received from the terminal server 102 on the display 104 and perform remote operation. The character string is converted into a bit string of a non-procedural serial transmission standard such as IEEE (Institute of Electrical and Electronic Engineers) -488 (or RS-232C), and is transmitted / received between the TSS and the terminal device 103. .

一方、リモートデスクトップシステムとして1980年代から普及したXウィンドウシステムは、マサチューセッツ工科大学で開発されたクライアント・サーバ型リモートデスクトップシステムである。上述のTSSでは文字列の送受信のみが可能であったが、Xウィンドウシステムでは、端末装置がビットマップディスプレイ204を備えていることを前提としており、ユーザは、マウスやキーボードなどのポインティングデバイス205による入力の結果として、文字列だけではなく静止画や動画などの映像情報を受け取り、この映像情報をビットマップディスプレイ204に表示することで、映像情報を視認することが可能である。以下、図24を参照しながら、従来のXウィンドウシステムの一例を説明する。   On the other hand, the X window system that has been popular since the 1980s as a remote desktop system is a client-server type remote desktop system developed at Massachusetts Institute of Technology. In the TSS described above, only transmission and reception of character strings was possible. However, the X window system is based on the premise that the terminal device includes a bitmap display 204, and the user can use a pointing device 205 such as a mouse or a keyboard. As a result of the input, not only the character string but also video information such as a still image and a moving image is received, and this video information is displayed on the bitmap display 204, whereby the video information can be visually recognized. Hereinafter, an example of a conventional X window system will be described with reference to FIG.

図24に図示されているXウィンドウシステムは、例えば、サーバB01として機能する汎用コンピュータ上で動作するXサーバ202と、Xサーバ専用のXアプリケーション201と、クライアントB03として機能する端末装置上で動作するXクライアント203と、サーバB01とクライアントB03との間を接続する通信ネットワークB02によって構成されている。サーバB01である汎用コンピュータ上において、Xアプリケーション201が表示したい描画データ列をXサーバ202に出力すると、Xサーバ202は、通信ネットワークB02を介して接続しているクライアントB03である端末装置上のXクライアント203に対して描画データ列を送信する。Xクライアント203は、描画データ列を解釈して、端末装置が備えるビットマップディスプレイ204に表示する。   The X window system illustrated in FIG. 24 operates, for example, on an X server 202 that operates on a general-purpose computer that functions as the server B01, an X application 201 dedicated to the X server, and a terminal device that functions as the client B03. The X client 203 is configured by a communication network B02 that connects the server B01 and the client B03. When the X application 201 outputs to the X server 202 on the general-purpose computer that is the server B01, the X server 202 outputs the X data on the terminal device that is the client B03 connected via the communication network B02. A drawing data string is transmitted to the client 203. The X client 203 interprets the drawing data string and displays it on the bitmap display 204 provided in the terminal device.

上述のXウィンドウシステムで扱われる描画データ列とは、描画データの時系列集合であり、描画データとは『画面の座標(X1,Y1)から(X2,Y2)まで黒色で太さ1の線を引く』などのような抽象描画命令である。抽象描画命令には、線を引くほかに、点を打つ、四角を描く、四角の内側を塗りつぶす、楕円を描く、楕円の内側を塗りつぶすなどの原始的な描画処理が含まれている。   The drawing data string handled in the above X window system is a time-series set of drawing data. The drawing data is “a line of black and thickness 1 from the coordinates (X1, Y1) to (X2, Y2) of the screen”. Abstract drawing commands such as “Draw”. In addition to drawing a line, the abstract drawing command includes primitive drawing processing such as hitting a dot, drawing a square, painting the inside of the square, drawing an ellipse, and filling the inside of the ellipse.

また、描画データ列は、Xプロトコルと呼ばれる通信プロトコルに変換され、Xサーバ202とXクライアント203との間で送受信される。一方、ポインティングデバイス205のボタンの押下状態などもXプロトコルに変換され、Xサーバ202とXクライアント203との間で送受信される。   The drawing data string is converted into a communication protocol called the X protocol, and is transmitted and received between the X server 202 and the X client 203. On the other hand, the button pressing state of the pointing device 205 is also converted into the X protocol, and transmitted / received between the X server 202 and the X client 203.

さらに、1990年代からは、AT&T(American Telephone and Telegraph)ケンブリッジ研究所で開発されたVNC(Virtual Network Computing:バーチャル・ネットワーク・コンピューティング)が普及している。以下、図25を参照しながら、従来のVNCの一例を説明する。   Furthermore, since the 1990s, VNC (Virtual Network Computing) developed at AT & T (American Telephone and Telegraph) Cambridge Laboratory has been popular. Hereinafter, an example of a conventional VNC will be described with reference to FIG.

図25に図示されているVNCは、Xウィンドウシステムと同様にクライアント・サーバ型リモートデスクトップシステムであり、VNCサーバ303とVNCクライアント304との間におけるビットマップ画像伝送を基調とした描画処理を行う。   The VNC illustrated in FIG. 25 is a client / server type remote desktop system, similar to the X window system, and performs a drawing process based on bitmap image transmission between the VNC server 303 and the VNC client 304.

VNCでは、汎用コンピュータC01側に、クライアントC03の操作環境であるデスクトップに相当するフレームバッファ302が設けられている。フレームバッファ302は、画面全体のビットマップ画像を少なくとも1枚保存することができるメモリ領域である。なお、フレームバッファ302から汎用コンピュータC01側のビットマップディスプレイ(不図示)に逐次出力を行うことも可能である。   In the VNC, a frame buffer 302 corresponding to the desktop which is the operating environment of the client C03 is provided on the general-purpose computer C01 side. The frame buffer 302 is a memory area that can store at least one bitmap image of the entire screen. It is also possible to sequentially output from the frame buffer 302 to a bitmap display (not shown) on the general-purpose computer C01 side.

一方、VNCサーバ303は、フレームバッファ302を継続的に監視しており、アプリケーション301が描画した結果であるビットマップ画像をフレームバッファ302から抽出し、これを描画データ列として通信ネットワークC02を介してVNCクライアント304に送信する。なお、VNCで扱われる描画データは、Xウィンドウシステムのような抽象描画命令ではなく、『縦横(800,600)ピクセルのビットマップ画像を画面の座標(X3,Y3)に描画しろ』などのようなビットマップ画像を含む非効率なものである。そして、VNCクライアント304は、この描画データ列を解釈して、クライアントC03が備えるビットマップディスプレイ305に表示する。   On the other hand, the VNC server 303 continuously monitors the frame buffer 302, extracts a bitmap image as a result of rendering by the application 301 from the frame buffer 302, and uses this as a rendering data string via the communication network C02. Transmit to the VNC client 304. The drawing data handled by VNC is not an abstract drawing command as in the X window system, but “draw a bitmap image of vertical and horizontal (800,600) pixels on screen coordinates (X3, Y3)”. Inefficient image containing a bit map image. Then, the VNC client 304 interprets this drawing data string and displays it on the bitmap display 305 provided in the client C03.

また、描画データ列は、VNCプロトコルと呼ばれる通信プロトコルに変換され、VNCサーバ303とVNCクライアント304との間で送受信される。一方、ポインティングデバイス306のボタンの押下状態などもVNCプロトコルに変換され、VNCサーバ303とVNCクライアント304との間で送受信される。   Further, the drawing data string is converted into a communication protocol called a VNC protocol, and transmitted / received between the VNC server 303 and the VNC client 304. On the other hand, the button pressing state of the pointing device 306 is also converted into the VNC protocol and transmitted / received between the VNC server 303 and the VNC client 304.

XウィンドウシステムではXアプリケーション201が描画データ列を生成していたが、VNCでは、フレームバッファ302に描画する能力があるすべてのアプリケーションに適用できる点に特徴がある。いったんフレームバッファ302を介して描画データ列の受け渡しが行われるため、アプリケーション301側は特別な仕掛けが不要である。このため、VNCでは、汎用コンピュータC01上でXウィンドウシステムとは全く異なる描画体系を持つマイクロソフト・ウィンドウズ(登録商標)やアップル・MacOS(登録商標)などのOS(Operating System:オペレーティング・システム)が動作していても、同一のクライアントC03から統一的にアプリケーション301をリモートコントロールすることが可能である。   In the X window system, the X application 201 generates the drawing data string, but the VNC is characterized in that it can be applied to all applications that have the ability to draw in the frame buffer 302. Since the drawing data string is transferred once through the frame buffer 302, the application 301 does not need any special device. Therefore, in VNC, an OS (Operating System) such as Microsoft Windows (registered trademark) or Apple MacOS (registered trademark) having a drawing system completely different from the X window system operates on the general-purpose computer C01. Even in this case, it is possible to remotely control the application 301 uniformly from the same client C03.

一方、現在のアプリケーションの実行環境としては、PC(Persopnal Computer:パーソナル・コンピュータ)が支配的な市場位置を占めている。PCは、潤沢なCPU(Central Processing Unit:中央演算処理装置)パワーと、出力装置としてビットマップディスプレイやフレームバッファ、入力装置としてマウスやキーボードなどを兼ね備えている。このため、PCは、リモートデスクトップシステムのサーバ側及びクライアント側のどちらの役割も担うことができる。現在では、ユーザの間では、あるPCから別のPCのアプリケーションを呼び出して遠隔操作する利用形態が一般化しつつある。   On the other hand, as an execution environment for current applications, PCs (Persopnal Computers) occupy a dominant market position. The PC has abundant CPU (Central Processing Unit) power, a bitmap display and frame buffer as output devices, and a mouse and keyboard as input devices. For this reason, the PC can play both roles of the server side and the client side of the remote desktop system. Currently, usage forms in which users remotely operate an application of another PC from one PC are becoming more common among users.

特に最近では、個人情報保護法の施行など、情報保護の機運が高まっているため、顧客名簿や重要文書などが入った社用PCは常に会社に置いておき、必要な時だけリモートデスクトップシステムを用いてモバイルPCから閲覧する形態の集中データ管理手法が注目されつつある。集中データ管理手法では、外出先に持ち運ぶモバイルPCなどには重要データそのものがコピーされないため、重要データをモバイルPCごと盗難されることはなく、重要データの安全性が高まる。また、悪意ある第3者が、リモートデスクトップシステムの描画データ列を取得し、ビットマップ画像の一部を復元したとしても、それはアプリケーション上に表示された重要データのほんの一部分であるため、例えば数百万件の顧客名簿を一瞬にしてコピーするようなことはできず、安全性が高まる。   In recent years, as the momentum of information protection has increased, such as the enforcement of the Personal Information Protection Law, corporate PCs containing customer lists and important documents are always kept in the company, and remote desktop systems are installed only when necessary. A centralized data management method that uses and browses from a mobile PC is drawing attention. In the centralized data management method, the important data itself is not copied to a mobile PC or the like that is carried to the outside, so that the important data is not stolen together with the mobile PC, and the safety of the important data is increased. Even if a malicious third party obtains the drawing data sequence of the remote desktop system and restores a part of the bitmap image, it is only a part of the important data displayed on the application. One million customer lists cannot be copied in an instant, increasing security.

次に、VNCや同種の技術におけるリモートデスクトップシステムの描画データ列について詳しく説明する。フレームバッファの監視から得られた非圧縮ビットマップ画像を含む描画データ列は、膨大なデータ量を有している。例えば、一般的なPCの解像度である1024×768ピクセルで32ビットフルカラーのビットマップ画像を、ユーザが滑らかに映像の変化として感じられる10フレーム/秒で送信する場合、その総データ量は約30MB/S(=240Mbps)に達する。しかしながら、現在、個人ユーザがインターネット接続に用いているADSL(Asymmetric Digital Subscriber Line:非対称デジタル加入者線)のスループット(平均伝送帯域)の実用的な上限は1.5MB/S(=12Mbps)程度である。したがって、PCのディスプレイ上に表示される画像を滑らかに表示するために非圧縮ビットマップ画像を含む描画データ列の伝送を行うことは甚だ非現実的であると言える。   Next, a drawing data string of a remote desktop system in VNC or similar technology will be described in detail. The drawing data string including the uncompressed bitmap image obtained from the monitoring of the frame buffer has a huge amount of data. For example, when transmitting a 32-bit full-color bitmap image at 1024 × 768 pixels, which is a resolution of a general PC, at 10 frames / second that allows the user to feel a smooth video change, the total data amount is about 30 MB. / S (= 240 Mbps) is reached. However, the practical upper limit of the throughput (average transmission bandwidth) of ADSL (Asymmetric Digital Subscriber Line) currently used by individual users for Internet connection is about 1.5 MB / S (= 12 Mbps). is there. Therefore, it can be said that it is extremely impractical to transmit a drawing data sequence including an uncompressed bitmap image in order to smoothly display an image displayed on a PC display.

そこで、下記の非特許文献1には、『PCのデスクトップの画面全体のうちの一部分しか更新されないことが多い』という特性を活かして、時系列に変化するフレームバッファを監視し、更新領域のみを差分ビットマップ画像として抽出して、その差分ビットマップ画像を描画データ列としてクライアントに送信するための通信プロトコルが説明されている。以下、図26〜図28を参照しながら、従来のVNCに関して詳細に説明する。   Therefore, the following Non-Patent Document 1 monitors the frame buffer that changes in time series by taking advantage of the characteristic that “a part of the entire PC desktop screen is often updated”, and updates only the update area. A communication protocol for extracting as a differential bitmap image and transmitting the differential bitmap image as a drawing data string to a client is described. Hereinafter, a conventional VNC will be described in detail with reference to FIGS.

なお、図26に示すVNCサーバD01及びVNCクライアントD02は、図25に示すVNCシステムから、動作説明に最低限必要なブロックを抽出したものであり、図26に示すVNCサーバD01は、図25に示すVNCシステムのVNCサーバ303に相当し、図26に示すVNCクライアントD02は、図25に示すVNCシステムのVNCクライアント304に相当する。   The VNC server D01 and the VNC client D02 shown in FIG. 26 are obtained by extracting the minimum blocks necessary for explanation of the operation from the VNC system shown in FIG. 25. The VNC server D01 shown in FIG. The VNC client 303 shown in FIG. 26 corresponds to the VNC client 304 of the VNC system shown in FIG.

まず、図26に示すVNCサーバD01の各ブロックについて説明する。フレームバッファ401は、アプリケーションから出力されクライアント側のデスクトップ画像に相当する画像データの読み出し及び書き込みを行うことが可能なメモリ領域であり、フレームバッファ401には、ある瞬間の画像データが蓄積される。また、フレーム取得部402は、フレームバッファ401から画像データを取得するフレームグラバ(Frame Grabber)である。また、前フレームバッファ404は、更新直前のフレームバッファ401内の画像データのコピーを保存する作業メモリ領域であり、比較部403は、フレームバッファ401内の画像データと前フレームバッファ404内の画像データとの時系列変化を観察することで、その差分の描画データ列を生成する機能を有している。また、通信部405は、比較部403で生成される差分の画像データである描画データ列をVNCプロトコルに変換し、VNCクライアントD02に送信する。   First, each block of the VNC server D01 shown in FIG. 26 will be described. The frame buffer 401 is a memory area in which image data output from an application and corresponding to a client-side desktop image can be read and written. The frame buffer 401 stores image data at a certain moment. The frame acquisition unit 402 is a frame grabber that acquires image data from the frame buffer 401. The previous frame buffer 404 is a working memory area that stores a copy of the image data in the frame buffer 401 immediately before the update, and the comparison unit 403 includes the image data in the frame buffer 401 and the image data in the previous frame buffer 404. And a time-series change is observed to generate a drawing data string of the difference. Further, the communication unit 405 converts the drawing data string, which is the difference image data generated by the comparison unit 403, into the VNC protocol, and transmits it to the VNC client D02.

次に、図26に示すVNCクライアントD02の各ブロックについて説明する。通信部406は、VNCサーバD01からVNCプロトコルを受信し、元の描画データ列への変換を行う。描画部407は、その描画データ列に含まれる描画データを用いて、画像データを保持するメモリ領域であるフレームバッファ408に、画像データとして描画を行う。出力部409は、フレームバッファ408を順次読み出し、D/A(デジタル/アナログ)変換などの所望の信号処理を行ってディスプレイ410に出力することにより、ディスプレイ410上に画像データが表示される。   Next, each block of the VNC client D02 shown in FIG. 26 will be described. The communication unit 406 receives the VNC protocol from the VNC server D01 and converts it into the original drawing data string. The drawing unit 407 uses the drawing data included in the drawing data string to draw the image data in the frame buffer 408 that is a memory area for holding the image data. The output unit 409 sequentially reads the frame buffer 408, performs desired signal processing such as D / A (digital / analog) conversion, and outputs the result to the display 410, thereby displaying image data on the display 410.

次に、図27に示すVNCサーバのフローチャートを参照しながら、上述の図26に示すVNCサーバD01の動作について説明する。VNCサーバD01において、フレーム取得部402がフレームバッファ401から画像データ(描画データ)を取得し(ステップS601)、まず前フレームバッファ404が空か否かを確認することによって、初回の画像データ取得動作か否かの判定が行われる(ステップS602)。このとき、前フレームバッファ404が空の場合(画像データが1度も書き込まれていない場合)にはステップS605に進み、前フレームバッファ404が空ではない場合にはステップS603に進む。   Next, the operation of the VNC server D01 shown in FIG. 26 will be described with reference to the flowchart of the VNC server shown in FIG. In the VNC server D01, the frame acquisition unit 402 acquires image data (drawing data) from the frame buffer 401 (step S601), and first confirms whether or not the previous frame buffer 404 is empty. Whether or not is determined (step S602). At this time, if the previous frame buffer 404 is empty (when no image data has been written), the process proceeds to step S605. If the previous frame buffer 404 is not empty, the process proceeds to step S603.

前フレームバッファ404が空ではない場合、比較部403は、前フレームバッファ404内の画像データと、フレーム取得部402から得られた画像データとの差分を比較し、差分がある場合にはその差分から描画データを生成し、さらに描画データの集合である描画データ列を生成する(ステップS603)。そして、通信部405は、比較部403で生成された描画データ列をVNCプロトコルに変換し、VNCクライアントD02に送信する(ステップS604)。また、前フレームバッファ404には、今回取得した画像データ(フレームバッファ401内の画像データ)が上書きされる(ステップS605)。また、VNCサーバD01は、より上位の動作状態を取得し、例えば電源断ボタンが押されたなどの終了条件が成立している場合には動作を終了する一方、終了条件が存在しない場合にはステップS601に戻って上記の処理が繰り返し行われる。その結果、VNCサーバD01は、動作中は常にフレームバッファ401を監視し、前フレームバッファ404との差分を描画データ列として抽出し、さらに描画データ列をVNCプロトコルに変換して、VNCクライアントD02へ送信し続ける。   When the previous frame buffer 404 is not empty, the comparison unit 403 compares the difference between the image data in the previous frame buffer 404 and the image data obtained from the frame acquisition unit 402. Then, drawing data is generated, and a drawing data string that is a set of drawing data is generated (step S603). Then, the communication unit 405 converts the drawing data sequence generated by the comparison unit 403 into a VNC protocol and transmits it to the VNC client D02 (step S604). In addition, the previous frame buffer 404 is overwritten with the currently acquired image data (image data in the frame buffer 401) (step S605). Further, the VNC server D01 acquires a higher-level operation state, and ends the operation when an end condition such as, for example, a power-off button is pressed, while the end condition does not exist. Returning to step S601, the above processing is repeated. As a result, the VNC server D01 always monitors the frame buffer 401 during operation, extracts a difference from the previous frame buffer 404 as a drawing data string, further converts the drawing data string into the VNC protocol, and sends it to the VNC client D02. Keep sending.

なお、ここでの描画データとは、画面のすべて又は一部分の画像データを指すビットマップ画像と、そのビットマップ画像のレイアウト情報(すなわち、画面上のどの部分に位置するかを指定するX座標とY座標、さらにビットマップ画像の横幅、高さなどの情報)をセットにしたものである。描画データは、例えば下記のデータ構造1を有している。なお、下記のデータ構造はあくまで一例であり、座標系や各要素の順序が異なっていてもよい。   Note that the drawing data here is a bitmap image indicating image data of all or a part of the screen, and layout information of the bitmap image (that is, an X coordinate designating which portion on the screen is located) Y coordinate, and information such as the width and height of the bitmap image). The drawing data has, for example, the following data structure 1. The following data structure is merely an example, and the coordinate system and the order of each element may be different.

(画面上のX座標、画面上のY座標、ビットマップ画像の横幅、ビットマップ画像の高さ、ビットマップ画像)・・・ <データ構造1>   (X coordinate on screen, Y coordinate on screen, horizontal width of bitmap image, height of bitmap image, bitmap image)... <Data structure 1>

次に、図28に示すVNCクライアントのフローチャートを参照しながら、上述の図26に示すVNCサーバD01の動作について説明する。VNCクライアントD02は、通信部406を介してVNCサーバD01からVNCプロトコルを受信し、元の描画データ列に変換する(ステップS701)。描画部407は、描画データ列に含まれる描画データを用いて、フレームバッファ408に画像データの描画を行う(ステップS702)。また、出力部409は、フレームバッファ408を順次読み出し、D/A変換などの所望の信号処理を行ってディスプレイ410への出力を行う(ステップS703)。また、VNCクライアントD02は、より上位の動作状態を取得し、例えば電源断ボタンが押されたなどの終了条件が成立している場合には動作を終了する一方、終了条件が存在しない場合にはステップS701に戻って上記の処理を繰り返し行う。その結果、VNCクライアントD02は、動作中は常にVNCプロトコルを受信して描画データ列を取得し、フレームバッファ408への描画データの描画を行って、ディスプレイ410を介してユーザに画像を提示し続ける。   Next, the operation of the VNC server D01 shown in FIG. 26 will be described with reference to the flowchart of the VNC client shown in FIG. The VNC client D02 receives the VNC protocol from the VNC server D01 via the communication unit 406, and converts it into the original drawing data string (step S701). The drawing unit 407 draws image data in the frame buffer 408 using the drawing data included in the drawing data string (step S702). The output unit 409 sequentially reads the frame buffer 408, performs desired signal processing such as D / A conversion, and outputs the result to the display 410 (step S703). In addition, the VNC client D02 acquires a higher-level operation state, and ends the operation when an end condition such as, for example, the power-off button is pressed, while the end condition does not exist. Returning to step S701, the above processing is repeated. As a result, the VNC client D02 always receives the VNC protocol during operation, acquires a drawing data string, draws drawing data in the frame buffer 408, and continues to present images to the user via the display 410. .

一方、例えば、下記の特許文献1には、リモートデスクトップシステムの改良技術が開示されている。以下、図29〜図31を参照しながら、特許文献1に開示されている技術について説明する。   On the other hand, for example, Patent Document 1 below discloses an improved technique for a remote desktop system. Hereinafter, the technique disclosed in Patent Document 1 will be described with reference to FIGS. 29 to 31.

特許文献1に開示されている技術では、サーバからクライアントに送信されるデータ構造は、以下のように設定されている。   In the technique disclosed in Patent Document 1, the data structure transmitted from the server to the client is set as follows.

(キャッシュ情報、SID、コードワード)・・・<RKEY> (Cache information, SID, codeword) ... <RKEY>

図29において、サーバは、例えば上述のVNCシステムでクライアントに送信する差分の画像に関し、更新する画像の更新領域の横幅(W)、高さ(H)が、閾値(ThW、ThH)を超えていないか否かを判断する(ステップS2801)。このとき、更新する画像の更新領域の横幅及び高さの両方が閾値を超えていない場合にはステップS2802に進み、それ以外の場合にはステップS2803に進む。   In FIG. 29, for example, regarding the difference image transmitted to the client in the VNC system described above, the horizontal width (W) and height (H) of the update area of the image to be updated exceed the threshold values (ThW, ThH). It is determined whether or not there is (step S2801). At this time, if both the horizontal width and height of the update area of the image to be updated do not exceed the threshold value, the process proceeds to step S2802, and otherwise, the process proceeds to step S2803.

更新する画像の更新領域の横幅及び高さの両方が閾値を超えていない場合には、更新する画像の更新領域が小さく、キャッシュするに値しない画像データであると判断されて、領域キー(RKEY)のキャッシュ情報に『キャッシュ不要』、シーケンス識別子(SID)に『NULL』、コードワードに『更新する画像データ(更新データ)』が代入されて、クライアントに送信される(ステップS2802)。すなわち、更新データの更新領域が小さい場合には、更新データがサーバからクライアントに送信される。   If both the horizontal width and height of the update area of the image to be updated do not exceed the threshold value, it is determined that the update area of the image to be updated is small and the image data is not worth caching, and the area key (RKEY) ) Is substituted for “cache not required”, “NULL” for the sequence identifier (SID), and “image data to be updated (update data)” for the code word, and transmitted to the client (step S2802). That is, when the update data update area is small, the update data is transmitted from the server to the client.

一方、ステップS2801で、更新する画像の更新領域の横幅及び高さの少なくとも一方が閾値を超えていると判断された場合には、RKEY作成処理が行われる(ステップS2803)。RKEY作成処理の詳細に関しては、図30に図示されている。   On the other hand, if it is determined in step S2801 that at least one of the width and height of the update area of the image to be updated exceeds the threshold value, RKEY creation processing is performed (step S2803). Details of the RKEY creation process are shown in FIG.

図30において、サーバは、メッセージヘッダのRKEYのキャッシュ情報に『キャッシュ』を設定し(ステップS2901)、キャッシュメモリ内に更新領域が同一のものが存在するか否かを判断する(ステップS2902)。ステップS2902で更新領域が同一のものが存在する場合には、ステップS2903に進み、キャッシュメモリ内に更新領域が同一のものが1つのみ存在しているか否かが判断される(ステップS2903)。また、ステップS2902で更新領域が同一のものが存在しない場合には、ステップS2910に進み、DCT(Discrete Cosine Transform:離散コサイン変換)、量子化、エントロピー処理を行って更新データを符号化し(ステップS2910)、ステップS2909に進む。   In FIG. 30, the server sets “cache” in the RKEY cache information of the message header (step S2901), and determines whether or not the same update area exists in the cache memory (step S2902). If it is determined in step S2902 that the same update area exists, the process advances to step S2903, and it is determined whether or not there is only one same update area in the cache memory (step S2903). In step S2902, if there is no update region having the same update region, the process proceeds to step S2910, and DCT (Discrete Cosine Transform), quantization, and entropy processing is performed to encode the update data (step S2910). ), The process proceeds to step S2909.

また、ステップS2903でキャッシュメモリ内に存在する更新領域が同一のものが1つのみではない場合には、DCT、量子化、エントロピー処理を行って更新データを符号化し(ステップS2905)、複数検出された同一の更新領域を持つデータのコードワード(キャッシュメモリ内のコードワード)と、ステップ2905で符号化した更新データとを比較し、同一のコードワードを持つデータが存在するか否かを検索する(ステップS2906)。そして、ステップS2907において、同一のコードワードを持つデータが存在する場合にはステップS2908に進み、同一のコードワードを持つデータが存在しない場合にはステップS2909に進む。一方、ステップS2903でキャッシュメモリ内に更新領域が1つのみ存在している場合には、ステップS2904に進む。   If it is determined in step S2903 that only one update area exists in the cache memory, the update data is encoded by performing DCT, quantization, and entropy processing (step S2905), and a plurality of update areas are detected. The code word of the data having the same update area (code word in the cache memory) is compared with the update data encoded in step 2905 to search whether there is data having the same code word. (Step S2906). In step S2907, if data having the same code word exists, the process proceeds to step S2908. If data having the same code word does not exist, the process proceeds to step S2909. On the other hand, if there is only one update area in the cache memory in step S2903, the process proceeds to step S2904.

ステップS2904では、キャッシュメモリ内に更新領域が同一のデータが1つしか存在しない場合の処理が行われる。この場合、キャッシュ情報に『キャッシュ済』、SIDに『キャッシュメモリ内で一致したデータのSID』が代入され、コードワードには何も設定されずに作成されたRKEYのデータがクライアントに送信される。   In step S2904, processing is performed when there is only one data having the same update area in the cache memory. In this case, “cached” is assigned to the cache information, “SID of matched data in the cache memory” is assigned to the SID, and RKEY data created without setting anything in the code word is transmitted to the client. .

また、ステップS2908では、キャッシュメモリ内に同一のコードワードを持つデータが存在する場合の処理が行われる。この場合、キャッシュ情報に『キャッシュ済』、SIDに『キャッシュメモリ内で一致したデータのSID』が代入され、コードワードには何も設定されずに作成されたRKEYのデータがクライアントに送信される。   In step S2908, processing is performed when data having the same code word exists in the cache memory. In this case, “cached” is assigned to the cache information, “SID of matched data in the cache memory” is assigned to the SID, and RKEY data created without setting anything in the code word is transmitted to the client. .

また、ステップS2909では、キャッシュメモリ内に更新領域は同一であるが同一のコードワードが存在しない場合、又は、更新領域が異なる場合の処理が行われる。この場合、キャッシュ情報に『キャッシュ』、SIDに『割り振られていない値』、コードワードに『符号化した更新データ』が代入されたRKEYのデータがクライアントに送信される。   In step S2909, processing is performed when the update areas are the same in the cache memory but the same codeword does not exist, or when the update areas are different. In this case, RKEY data in which “cache” is assigned to the cache information, “unallocated value” to the SID, and “encoded update data” is assigned to the code word is transmitted to the client.

一方、図31において、クライアントは、サーバから受信するRKEYのキャッシュ情報を監視及び解析を行い(ステップS3001)、『キャッシュ不要』の場合にはステップS3002に進み、『キャッシュ』の場合にはステップS3003に進み、『キャッシュ済』の場合にはステップS3005に進む。   On the other hand, in FIG. 31, the client monitors and analyzes the RKEY cache information received from the server (step S3001). If “cache not required”, the client proceeds to step S3002. If “cache”, the client proceeds to step S3003. If “cached”, the process advances to step S3005.

ステップS3002では、キャッシュ不要の場合の処理が行われる。この場合、コードワードに直接更新するデータが代入されており、それを更新データとする。   In step S3002, a process when no cache is required is performed. In this case, data to be updated directly is assigned to the code word, and this is used as update data.

また、ステップS3003では、キャッシュへの登録が必要な場合の処理が行われる。この場合、RKEYのコードワードが符号化されているので、これを復号し、復号したデータを更新データとする。さらに、クライアントは、RKEYのデータをローカルキャッシュメモリに登録する(ステップS3004)。   In step S3003, processing is performed when registration in the cache is necessary. In this case, since the RKEY codeword is encoded, it is decoded and the decoded data is used as update data. Further, the client registers the RKEY data in the local cache memory (step S3004).

また、ステップS3005では、既にキャッシュされている場合の処理が行われる。この場合、受信したRKEYのSIDと同一のRKEYのデータをローカルキャッシュメモリより取得する。さらに、クライアントは、ステップ3005で取得したRKEYのコードワードを復号して、復号したデータを更新データとする(ステップS3006)。   Further, in step S3005, a process when already cached is performed. In this case, the same RKEY data as the received RKEY SID is acquired from the local cache memory. Further, the client decodes the RKEY codeword acquired in step 3005 and sets the decoded data as update data (step S3006).

そして、上記のステップS3002、S3004、3006のそれぞれで作成された更新データを使用して、更新領域にデータが表示される(ステップS3007)。
特表2005−501355号公報(図4〜7、段落0015、0016) Tristan Richardson, RealVNC Ltd:“The RFB Protocol” Version 3.8, 8 March 2005
Data is displayed in the update area using the update data created in each of steps S3002, S3004, and 3006 (step S3007).
JP-T-2005-501355 (FIGS. 4-7, paragraphs 0015, 0016) Tristan Richardson, RealVNC Ltd: “The RFB Protocol” Version 3.8, 8 March 2005

従来のリモートデスクトップシステムのうち、Xウィンドウシステム型のリモートデスクトップシステムが、サーバとクライアントとの間における伝送効率が最も良いと考えられる。Xウィンドウシステム型のリモートデスクトップシステムでは、描画データは『線を描け』などのような抽象度の高いものであり、その結果、データ量は極小化されている。しかしながら、その代償としてXウィンドウシステム用の描画データ列を生成する専用Xアプリケーションが必要になる。   Among conventional remote desktop systems, an X window system type remote desktop system is considered to have the best transmission efficiency between the server and the client. In the X window system type remote desktop system, the drawing data has a high level of abstraction such as “draw a line”, and as a result, the amount of data is minimized. However, a special X application for generating a drawing data string for the X window system is required as a price.

インターネットが普及した今日では、様々なPCや汎用コンピュータが様々なアプリケーションを実行し、相互に分散ネットワークを形成している。このため、常にXアプリケーションを要求するXウィンドウシステムは時代の要請に合わず、異種間における接続に対してより汎用性の高いVNC型のリモートデスクトップシステムが好適であると言える。   With the spread of the Internet, various PCs and general-purpose computers execute various applications to form a distributed network. For this reason, an X window system that always requires an X application does not meet the demands of the times, and it can be said that a VNC type remote desktop system with higher versatility for connection between different types is suitable.

しかしながら、VNC型のリモートデスクトップシステムでは、上述のようにビットマップ画像を含む描画データ列のデータ量が膨大になる傾向がある。特に、最近の画面全体にビットマップ画像を用いた美麗なボタン類が並ぶGUI(Graphic User Interface:グラフィック・ユーザ・インタフェース)を用いたアプリケーションにおいては、更新領域が画面全体を占めることも珍しくない。例えば、図32に図示されているようなウィザード形式のアプリケーションによる表示の場合には、例えば『次へ』ボタンを押すと新たな次画面に移るため、サーバからクライアントに対して画面全体を送らなければならない機会が非常に多い。これはGUIの反応速度低下をもたらし、ユーザに対する利便性を低下させるとともに、ユーザのストレスを増大させる要因となる。   However, in the VNC type remote desktop system, as described above, the data amount of the drawing data string including the bitmap image tends to be enormous. In particular, in an application using a GUI (Graphic User Interface) in which beautiful buttons using bitmap images are arranged on the entire recent screen, it is not uncommon for the update area to occupy the entire screen. For example, in the case of display by a wizard-type application as shown in FIG. 32, for example, when the “Next” button is pressed, a new next screen is displayed, so the entire screen must be sent from the server to the client. There are so many opportunities to go. This causes a decrease in the response speed of the GUI, which decreases the convenience for the user and increases the user's stress.

例えば、上述のように、スループットが1.5MB/SであるADSLの通信ネットワークを介して、1024×768ピクセルで32ビットフルカラーのビットマップ画像1枚を伝送する場合には、約2秒の表示遅延が生じることとなる。このため、Xウィンドウシステム型のリモートデスクトップシステムのような抽象度の高い描画データ列を生成することが可能なVNC型のリモートデスクトップシステムの開発が望まれている。しかしながら、アプリケーションをXウィンドウシステム型の抽象描画命令に完全対応させることは、すなわち、新たなXアプリケーションを新規に開発することになってしまい意味がない。これはVNCが発達してきた背景を考えれば明らかである。   For example, as described above, when transmitting one 32-bit full-color bitmap image with 1024 × 768 pixels via an ADSL communication network with a throughput of 1.5 MB / S, a display time of about 2 seconds is displayed. There will be a delay. Therefore, it is desired to develop a VNC type remote desktop system capable of generating a drawing data string with a high degree of abstraction, such as an X window system type remote desktop system. However, making an application completely correspond to an X window system type abstract drawing instruction means that a new X application is newly developed, which is meaningless. This is clear considering the background of the development of VNC.

上述の特許文献1に係る技術では、更新表示データを『キャッシュ済』や『キャッシュ不要』などのように特定できるようにすることで、VNC型のリモートデスクトップシステムにおいて、抽象度の高い描画データ列の生成を試みているが、この技術では、更新領域の大きさに応じて、非可逆符号化する部分と符号化しない部分とが存在し、クライアント側で実現される表示画像が視覚的に奇妙かつ見づらいものになってしまうという課題がある。   In the technique according to Patent Document 1 described above, the update display data can be specified as “cached” or “cache unnecessary”, so that a drawing data string having a high degree of abstraction can be obtained in a VNC type remote desktop system. However, with this technology, depending on the size of the update area, there are parts that are lossy encoded and parts that are not encoded, and the display image realized on the client side is visually strange. There is also a problem that it becomes difficult to see.

また、リモートデスクトップシステムでは、基本的にクライアント側の負荷が小さいことがメリットであるが、上述の特許文献1に係る技術では、クライアント側に符号化データを復号するための復号化器を設ける必要があり、復号機能に関してクライアント側の負荷を小さくすることができないという課題がある。   Further, in the remote desktop system, the advantage is that the load on the client side is basically small. However, in the technique according to Patent Document 1 described above, it is necessary to provide a decoder for decoding the encoded data on the client side. There is a problem that the load on the client side cannot be reduced with respect to the decoding function.

さらに、上述の特許文献1に係る技術では、作成されるRKEYデータが、更新領域、及び更新領域の大きさにより作成されているので、例えば同一のボタン形状の画像配列を有するGUIのように異なる更新領域で同一の更新画像データが存在する場合であっても、更新領域が異なるために新たなRKEYを作成する必要があり、このRKEYをサーバ及びクライアントの両方においてキャッシュメモリに保存するので、キャッシュ量が増大してしまうという課題がある。   Further, in the technique according to Patent Document 1 described above, the RKEY data to be created is created based on the update area and the size of the update area, and thus, for example, different GUIs having the same button-shaped image arrangement. Even when the same update image data exists in the update area, it is necessary to create a new RKEY because the update areas are different. Since this RKEY is stored in the cache memory in both the server and the client, the cache There is a problem that the amount increases.

上記の課題を解決するため、本発明は、クライアント側の負荷を増大させることなく、サーバとクライアントとの間において送受信する描画データ列のデータ量を大幅に削減してGUIの反応速度を向上させることが可能なリモートデスクトップシステムのサーバ装置及びクライアント装置を提供することを目的とする。   In order to solve the above-described problems, the present invention greatly reduces the amount of drawing data strings transmitted and received between the server and the client without increasing the load on the client side, and improves the response speed of the GUI. An object of the present invention is to provide a server device and a client device of a remote desktop system that can be used.

上記の目的を達成するため、本発明によれば、クライアント装置に対して、前記クライアント装置の表示手段に表示させる画像データを送信するリモートデスクトップシステムのサーバ装置であって、
前記画像データを特定するための固有値を少なくとも含むデータを保持するためのテーブルを格納するテーブル格納手段と、
前記画像データに対してハッシュ関数による演算を行うことによって得られるハッシュ値を、前記画像データを特定するための前記固有値として設定する固有値算出手段と、
前記テーブル内に保持されている前記データと、前記固有値算出手段で算出された前記固有値とを比較して、前記固有値算出手段で算出された前記固有値に一致する固有値が前記テーブル内に発見された場合には、前記画像データを特定する前記固有値を含むとともに前記画像データを含まない表示更新用データを作成する一方、前記固有値算出手段で算出された前記固有値に一致する固有値が前記テーブル内に発見されなかった場合には、前記画像データを特定する前記固有値及び前記画像データの両方を含む表示更新用データを作成する比較決定手段と、
前記表示更新用データを前記クライアント装置に送信するデータ送信手段と、
前記表示更新用データを前記テーブル内の前記データとして登録する追加登録手段とを、
有するサーバ装置が提供される。
In order to achieve the above object, according to the present invention, there is provided a server device of a remote desktop system that transmits image data to be displayed on a display unit of the client device to the client device,
Table storage means for storing a table for holding data including at least a unique value for specifying the image data;
Eigenvalue calculation means for setting, as the eigenvalue for specifying the image data, a hash value obtained by performing an operation with a hash function on the image data;
The data held in the table is compared with the eigenvalue calculated by the eigenvalue calculating means, and an eigenvalue that matches the eigenvalue calculated by the eigenvalue calculating means is found in the table. In this case, display update data that includes the eigenvalue that specifies the image data and does not include the image data is created, while an eigenvalue that matches the eigenvalue calculated by the eigenvalue calculation unit is found in the table. If not, comparison determination means for creating display update data including both the eigenvalue specifying the image data and the image data;
Data transmission means for transmitting the display update data to the client device;
Additional registration means for registering the display update data as the data in the table;
A server device is provided.

また、上記の目的を達成するため、本発明によれば、クライアント装置に対して、前記クライアント装置の表示手段に表示させる画像データを送信するリモートデスクトップシステムのサーバ装置であって、
前記画像データを特定するための固有値を少なくとも含むデータを保持するためのテーブルを格納するテーブル格納手段と、
前記画像データに対してハッシュ関数による演算を行うことによって得られるハッシュ値を、前記画像データを特定するための前記固有値として設定する固有値算出手段と、
前記テーブル内に保持されている前記データと、前記固有値算出手段で算出された前記固有値とを比較して、前記固有値算出手段で算出された前記固有値に一致する固有値が前記テーブル内に発見された場合には、前記画像データを特定する前記固有値を含むとともに前記画像データを含まない表示更新用データを生成する一方、前記固有値算出手段で算出された前記固有値に一致する固有値が前記テーブル内に発見されなかった場合には、前記画像データを特定する前記固有値及び前記画像データの両方を含む中間データを生成する比較決定手段と、
前記テーブル内に保持されている前記データと前記中間データに含まれる前記画像データとを比較して、前記中間データに含まれる前記画像データと横幅及び高さの一致する画像データが前記テーブルに発見された場合には、前記中間データに含まれる前記画像データと前記テーブル内で発見された前記画像データとを比較してこれらの差分画像データ及び前記差分画像データの配置位置を取得し、前記中間データに関して、前記画像データを削除するとともに前記差分画像データ及び前記差分画像データの配置位置と前記テーブル内で発見された前記画像データの前記固有値とを挿入して表示更新用データを作成する一方、前記中間データに含まれる前記画像データと横幅及び高さの一致する画像データが前記テーブルに発見されなかった場合には、前記中間データから前記表示更新用データを作成する差分決定手段と、
前記表示更新用データを前記クライアント装置に送信するデータ送信手段と、
前記表示更新用データを前記テーブル内の前記データとして登録する追加登録手段とを、
有するサーバ装置が提供される。
In order to achieve the above object, according to the present invention, there is provided a server device of a remote desktop system that transmits image data to be displayed on a display unit of the client device to the client device,
Table storage means for storing a table for holding data including at least a unique value for specifying the image data;
Eigenvalue calculation means for setting, as the eigenvalue for specifying the image data, a hash value obtained by performing an operation with a hash function on the image data;
The data held in the table is compared with the eigenvalue calculated by the eigenvalue calculating means, and an eigenvalue that matches the eigenvalue calculated by the eigenvalue calculating means is found in the table. In this case, display update data that includes the eigenvalue specifying the image data and does not include the image data is generated, while an eigenvalue that matches the eigenvalue calculated by the eigenvalue calculation unit is found in the table. If not, comparison determination means for generating intermediate data including both the eigenvalues specifying the image data and the image data;
The data stored in the table is compared with the image data included in the intermediate data, and image data whose horizontal width and height match the image data included in the intermediate data is found in the table. If the image data included in the intermediate data is compared with the image data found in the table, the difference image data and the arrangement position of the difference image data are obtained, and the intermediate data is acquired. Regarding data, while deleting the image data and creating the display update data by inserting the difference image data and the arrangement position of the difference image data and the eigenvalue of the image data found in the table, No image data having the same width and height as the image data included in the intermediate data was found in the table. Expediently, a difference determining means for generating data for the display update from the intermediate data,
Data transmission means for transmitting the display update data to the client device;
Additional registration means for registering the display update data as the data in the table;
A server device is provided.

また、上記の目的を達成するため、本発明によれば、クライアント装置に対して、前記クライアント装置の表示手段に表示させる画像データを送信するリモートデスクトップシステムのサーバ装置であって、
前記クライアント装置から、前記クライアント装置のテーブルの上限データ量の値を受信する閾値受信手段と、
前記画像データを特定するための固有値を少なくとも含むデータを保持するための第1テーブルを格納する第1テーブル格納手段と、
前記第1テーブル内に保持されているデータの中から選択されたデータを保持するための第2テーブルを格納する第2テーブル格納手段と、
前記画像データに対してハッシュ関数による演算を行うことによって得られるハッシュ値を、前記画像データを特定するための前記固有値として設定する固有値算出手段と、
前記第2テーブル内に保持されている前記データと、前記固有値算出手段で算出された前記固有値とを比較して、前記固有値算出手段で算出された前記固有値に一致する固有値が前記第2テーブル内に発見された場合には、前記画像データを特定する前記固有値を含むとともに前記画像データを含まない表示更新用データを作成する一方、前記固有値算出手段で算出された前記固有値に一致する固有値が前記第2テーブル内に発見されなかった場合には、前記画像データを特定する前記固有値及び前記画像データの両方を含む表示更新用データを作成する比較決定手段と、
前記表示更新用データを前記クライアント装置に送信する表示更新用データ送信手段と、
前記表示更新用データをその格納順を示す情報と共に前記第1テーブル内の前記データとして登録する追加登録手段とを、
前記第1テーブルのデータのうちの前記格納順が新しいデータを、前記第2テーブルのデータ量が前記上限データ量を基準としたデータ量を超えないように前記第2のテーブルに格納するとともに、前記第2のテーブルに前記データを格納すると同時に前記第2のテーブルに格納した前記データを前記クライアント装置のテーブルの更新用のテーブル更新用データとして前記クライアント装置に送信するテーブル更新制御手段とを、
有するサーバ装置が提供される。
In order to achieve the above object, according to the present invention, there is provided a server device of a remote desktop system that transmits image data to be displayed on a display unit of the client device to the client device,
Threshold receiving means for receiving a value of the upper limit data amount of the table of the client device from the client device;
First table storage means for storing a first table for holding data including at least an eigenvalue for specifying the image data;
Second table storage means for storing a second table for holding data selected from the data held in the first table;
Eigenvalue calculation means for setting, as the eigenvalue for specifying the image data, a hash value obtained by performing an operation with a hash function on the image data;
The data held in the second table is compared with the eigenvalue calculated by the eigenvalue calculating means, and an eigenvalue that matches the eigenvalue calculated by the eigenvalue calculating means is found in the second table. The display update data that includes the eigenvalue that specifies the image data and does not include the image data, while the eigenvalue that matches the eigenvalue calculated by the eigenvalue calculation means is If not found in the second table, the comparison determination means for creating display update data including both the eigenvalue specifying the image data and the image data;
Display update data transmission means for transmitting the display update data to the client device;
Additional registration means for registering the display update data as the data in the first table together with information indicating the storage order;
Storing the new data in the first table in the second table so that the data amount of the second table does not exceed the data amount based on the upper limit data amount; Table update control means for transmitting the data stored in the second table to the client device as table update data for updating the table of the client device simultaneously with storing the data in the second table;
A server device is provided.

さらに、本発明によれば、上記の構成に加えて、前記データ送信手段によって送信する前記クライアント装置のテーブルに格納させるデータを、その送信前に、前記クライアント装置側でテーブルを格納するために使用するメモリのタイプに合わせて変換するデータ変換手段を有するサーバ装置が提供される。   Further, according to the present invention, in addition to the above configuration, the data to be stored in the table of the client device transmitted by the data transmitting means is used to store the table on the client device side before the transmission. There is provided a server device having data conversion means for converting according to the type of memory to be used.

また、上記の目的を達成するため、本発明によれば、サーバ装置から受信する画像データに基づいて画像表示を行うリモートデスクトップシステムのクライアント装置であって、
画像表示を行う表示手段と、
前記画像データに対してハッシュ関数による演算を行うことによって得られるハッシュ値を前記画像データの固有値とし、前記画像データを特定するための前記固有値を少なくとも含むデータを保持するためのテーブルを格納するテーブル格納手段と、
前記サーバ装置から、前記表示手段における表示を更新するための表示更新用データを受信するデータ受信手段と、
前記データ受信手段で受信した前記表示更新用データに前記画像データを特定するための固有値及び前記画像データの両方が含まれている場合には、前記画像データに基づいて前記表示手段に表示する画像を作成する一方、前記データ受信手段で受信した前記表示更新用データに前記画像データを特定する前記固有値のみが含まれており前記画像データが含まれていない場合には、前記テーブル内に保持されているデータと、前記表示更新用データに含まれている前記固有値とを比較して、前記テーブル内に前記固有値と共に保持されている画像データに基づいて前記表示手段に表示する画像を作成する描画作成手段と、
前記描画作成手段で作成された前記画像を前記表示手段に出力する出力手段と、
前記データ受信手段で受信した前記表示更新用データを前記テーブル内の前記データとして登録する追加登録手段とを、
有するクライアント装置が提供される。
In order to achieve the above object, according to the present invention, a client device of a remote desktop system that displays an image based on image data received from a server device,
Display means for displaying images;
A table for storing a table for holding data including at least the eigenvalue for specifying the image data, with a hash value obtained by performing an operation using a hash function on the image data as the eigenvalue of the image data Storage means;
Data receiving means for receiving display update data for updating the display on the display means from the server device;
When the display update data received by the data receiving means includes both the eigenvalue for specifying the image data and the image data, an image to be displayed on the display means based on the image data On the other hand, when the display update data received by the data receiving means includes only the eigenvalue specifying the image data and does not include the image data, the display update data is stored in the table. A drawing for creating an image to be displayed on the display means based on image data held together with the eigenvalue in the table by comparing the existing data and the eigenvalue included in the display update data Creating means;
Output means for outputting the image created by the drawing creation means to the display means;
Additional registration means for registering the display update data received by the data receiving means as the data in the table;
A client device is provided.

また、上記の目的を達成するため、本発明によれば、サーバ装置から受信する画像データに基づいて画像表示を行うリモートデスクトップシステムのクライアント装置であって、
画像表示を行う表示手段と、
前記画像データに対してハッシュ関数による演算を行うことによって得られるハッシュ値を前記画像データの固有値とし、前記画像データを特定するための前記固有値を少なくとも含むデータを保持するためのテーブルを格納するテーブル格納手段と、
前記サーバ装置から、前記表示手段における表示を更新するための表示更新用データを受信するデータ受信手段と、
前記データ受信手段で受信した前記表示更新用データに差分画像データ及び前記差分画像データの配置位置と差分の比較対象となる画像データの固有値と差分合成によって作成される元画像データの固有値とが含まれている場合には、前記テーブル内に保持されているデータと、前記差分の比較対象となる前記画像データの前記固有値とを比較して、前記テーブル内から前記固有値と共に保持されている前記差分の比較対象となる前記画像データを読み出し、読み出された前記画像データの前記配置位置に前記差分画像データを合成して合成画像データを作成し、前記表示更新用データに関して、前記差分画像データ及び前記差分画像データの配置位置と前記テーブル内で発見された前記画像データの前記固有値とを削除するとともに前記合成画像データを挿入して中間データを作成する差分合成手段と、
前記データ受信手段で受信した前記表示更新用データに前記画像データを特定する前記固有値及び前記画像データの両方が含まれている場合には、前記画像データに基づいて前記表示手段に表示する画像を作成し、前記データ受信手段で受信した前記表示更新用データに前記画像データを特定する前記固有値のみが含まれており前記画像データが含まれていない場合には、前記テーブル内に保持されているデータと、前記表示更新用データに含まれている前記固有値とを比較して、前記テーブル内に固有値と共に保持されている画像データに基づいて前記表示手段に表示する画像を作成し、前記差分合成手段で作成された前記表示更新用データに関しては、前記合成画像データに基づいて前記表示手段に表示する画像を作成する描画作成手段と、
前記描画作成手段で作成された前記画像を前記表示手段に出力する出力手段と、
前記描画作成手段で前記画像の作成の際に参照される前記表示更新用データを前記テーブル内の前記データとして登録する追加登録手段とを、
有するクライアント装置が提供される。
In order to achieve the above object, according to the present invention, a client device of a remote desktop system that displays an image based on image data received from a server device,
Display means for displaying images;
A table for storing a table for holding data including at least the eigenvalue for specifying the image data, with a hash value obtained by performing an operation using a hash function on the image data as the eigenvalue of the image data Storage means;
Data receiving means for receiving display update data for updating the display on the display means from the server device;
The display update data received by the data receiving unit includes the differential image data, the arrangement position of the differential image data, the unique value of the image data to be compared, and the unique value of the original image data created by the difference synthesis. The difference stored in the table together with the eigenvalue from the table by comparing the data held in the table with the eigenvalue of the image data to be compared with the difference. The image data to be compared is read out, the difference image data is synthesized with the arrangement position of the read image data to create composite image data, and the difference image data and the display update data are The arrangement position of the difference image data and the eigenvalue of the image data found in the table are deleted and the combination is deleted. A difference synthesizing means for creating intermediate data by inserting the image data,
When the display update data received by the data receiving means includes both the eigenvalue and the image data for specifying the image data, an image to be displayed on the display means based on the image data is displayed. When the display update data created and received by the data receiving means includes only the eigenvalues specifying the image data and does not include the image data, the display update data is stored in the table. Compare the data and the eigenvalue included in the display update data, create an image to be displayed on the display means based on the image data held together with the eigenvalue in the table, and perform the difference synthesis With respect to the display update data created by the means, a drawing creation means for creating an image to be displayed on the display means based on the composite image data ,
Output means for outputting the image created by the drawing creation means to the display means;
Additional registration means for registering the display update data referred to when the image is created by the drawing creation means as the data in the table;
A client device is provided.

また、上記の目的を達成するため、本発明によれば、サーバ装置から受信する画像データに基づいて画像表示を行うリモートデスクトップシステムのクライアント装置であって、
画像表示を行う表示手段と、
前記画像データに対してハッシュ関数による演算を行うことによって得られるハッシュ値を前記画像データの固有値とし、前記画像データを特定するための前記固有値を少なくとも含むデータを保持するためのテーブルを格納するテーブル格納手段と、
前記サーバ装置に対して、前記テーブル格納手段に格納される前記テーブルの上限データ量の値を送信する閾値送信手段と、
前記サーバ装置から、前記表示手段における表示を更新するための描画用の表示更新用データと、前記テーブル格納手段に格納されている前記テーブルの更新用のテーブル更新用データとを受信するデータ受信手段と、
前記データ受信手段で受信した前記表示更新用データに前記画像データを特定するための固有値及び前記画像データの両方が含まれている場合には、前記画像データに基づいて前記表示手段に表示する画像を作成する一方、前記データ受信手段で受信した前記表示更新用データに前記画像データを特定する前記固有値のみが含まれており前記画像データが含まれていない場合には、前記テーブル内に保持されているデータと、前記表示更新用データに含まれている前記固有値とを比較して、前記テーブル内に前記固有値と共に保持されている画像データに基づいて前記表示手段に表示する画像を作成する描画作成手段と、
前記描画作成手段で作成された前記画像を前記表示手段に出力する出力手段と、
前記データ受信手段で受信した前記画像データを特定するための固有値及び前記画像データの両方が含まれている前記テーブル更新用データを前記テーブル内の前記データとして登録する追加登録手段とを、
有するクライアント装置が提供される。
In order to achieve the above object, according to the present invention, a client device of a remote desktop system that displays an image based on image data received from a server device,
Display means for displaying images;
A table for storing a table for holding data including at least the eigenvalue for specifying the image data, with a hash value obtained by performing an operation using a hash function on the image data as the eigenvalue of the image data Storage means;
Threshold transmission means for transmitting the value of the upper limit data amount of the table stored in the table storage means to the server device;
Data receiving means for receiving display update data for drawing for updating the display on the display means and table update data for updating the table stored in the table storage means from the server device When,
When the display update data received by the data receiving means includes both the eigenvalue for specifying the image data and the image data, an image to be displayed on the display means based on the image data On the other hand, when the display update data received by the data receiving means includes only the eigenvalue specifying the image data and does not include the image data, the display update data is stored in the table. A drawing for creating an image to be displayed on the display means based on image data held together with the eigenvalue in the table by comparing the existing data and the eigenvalue included in the display update data Creating means;
Output means for outputting the image created by the drawing creation means to the display means;
An additional registration means for registering the table update data including both the eigenvalue for specifying the image data received by the data reception means and the image data as the data in the table;
A client device is provided.

さらに、本発明によれば、上記の構成に加えて、前記テーブル格納手段に前記データを格納する際には、前記テーブル格納手段として使用するメモリのタイプに合わせて変換し、前記テーブル格納手段から前記データを読み出す際には、前記描画作成手段で前記画像の作成の際に参照可能なデータ構造に変換するデータ変換手段を有するクライアント装置が提供される。   Further, according to the present invention, in addition to the above configuration, when storing the data in the table storage means, the data is converted according to the type of memory used as the table storage means, and the table storage means When the data is read out, a client device is provided that includes data conversion means for converting the data into a data structure that can be referred to when the image is created by the drawing creation means.

本発明は、上記の構成を有しており、サーバとクライアントとの間において送受信する描画データ列のデータ量を大幅に削減でき、GUIの反応速度を向上させてユーザの利便性を向上するとともに、ユーザのストレスを軽減するという効果を有している。また、本発明は、クライアント側に復号化器を搭載させる必要がなく、クライアントの負荷を削減することができるという効果を有している。また、本発明は、異なる領域で同一の更新画像データが存在する場合であっても、新たにテーブルに追加することなく更新表示データを再現することができ、テーブル量を削減することができるという効果を有している。また、本発明は、サーバからクライアントに送信されるデータが全て可逆圧縮であるので、クライアント側で実現される画像データが一様になり、クライアント側で視覚的に安定した表示を実現できるという効果を有している。   The present invention has the above-described configuration, and can greatly reduce the data amount of the drawing data sequence transmitted and received between the server and the client, and improves the user's convenience by improving the response speed of the GUI. , It has the effect of reducing user stress. Further, the present invention has an effect that it is not necessary to mount a decoder on the client side, and the load on the client can be reduced. Further, according to the present invention, even when the same update image data exists in different areas, the update display data can be reproduced without newly adding to the table, and the table amount can be reduced. Has an effect. Further, according to the present invention, since all data transmitted from the server to the client is lossless compression, the image data realized on the client side is uniform, and a visually stable display can be realized on the client side. have.

以下、図面をしながら、本発明の第1〜第4の実施の形態について説明する。   Hereinafter, first to fourth embodiments of the present invention will be described with reference to the drawings.

<第1の実施の形態>
まず、本発明の第1の実施の形態について説明する。図1は、本発明の第1の実施の形態におけるリモートデスクトップシステムの一構成例を示すブロック図である。図1に図示されているリモートデスクトップシステムは、サーバE01とクライアントE02とが任意のデータ伝送路を介して接続された構成を有している。
<First Embodiment>
First, a first embodiment of the present invention will be described. FIG. 1 is a block diagram illustrating a configuration example of a remote desktop system according to the first embodiment of this invention. The remote desktop system shown in FIG. 1 has a configuration in which a server E01 and a client E02 are connected via an arbitrary data transmission path.

以下、図1に図示されているサーバE01の構成について説明する。図1に図示されているサーバE01は、フレームバッファ401、フレーム取得部402、比較部403、前フレームバッファ404、固有値算出部801、比較決定部802、通信部803、テーブル格納部804を有している。   Hereinafter, the configuration of the server E01 illustrated in FIG. 1 will be described. The server E01 illustrated in FIG. 1 includes a frame buffer 401, a frame acquisition unit 402, a comparison unit 403, a previous frame buffer 404, an eigenvalue calculation unit 801, a comparison determination unit 802, a communication unit 803, and a table storage unit 804. ing.

図1に図示されているサーバE01のフレームバッファ401、フレーム取得部402、比較部403、前フレームバッファ404には、従来の技術で説明した図26に図示されているVNCサーバD01のフレームバッファ401、フレーム取得部402、比較部403、前フレームバッファ404を利用することが可能である。すなわち、図1に図示されているサーバE01の比較部403からは、VNCシステムと同様に、フレーム取得部402で取得したフレームバッファ401内の画像データと、前フレームバッファ内の画像データ(フレームバッファ401内の画像データの更新直前にフレームバッファ401内に蓄積されていた画像データ)との比較の結果、これら画像データの差分の描画データが、上述のデータ構造1の形式で出力される。   The frame buffer 401, the frame acquisition unit 402, the comparison unit 403, and the previous frame buffer 404 illustrated in FIG. 1 include the frame buffer 401 of the VNC server D01 illustrated in FIG. The frame acquisition unit 402, the comparison unit 403, and the previous frame buffer 404 can be used. That is, from the comparison unit 403 of the server E01 shown in FIG. 1, the image data in the frame buffer 401 acquired by the frame acquisition unit 402 and the image data (frame buffer in the previous frame buffer) acquired by the frame acquisition unit 402, as in the VNC system. As a result of comparison with the image data stored in the frame buffer 401 immediately before the update of the image data in 401, the drawing data of the difference between these image data is output in the format of the data structure 1 described above.

図1に図示されているサーバE01の比較部403から出力されるデータ構造1の形式のデータは、固有値算出部801に供給される。固有値算出部801は、比較部403から供給されるデータ構造1に沿った描画データのビットマップ画像データをハッシュ関数を用いて演算して、そのビットマップ画像データに固有のハッシュ値(以下、固有値と記載する)を算出する。そして、固有値算出部801は、描画データを含むデータ構造1のデータと、算出した固有値とを比較決定部802に出力する。   Data in the format of the data structure 1 output from the comparison unit 403 of the server E01 illustrated in FIG. 1 is supplied to the eigenvalue calculation unit 801. The eigenvalue calculation unit 801 calculates bitmap image data of the drawing data along the data structure 1 supplied from the comparison unit 403 using a hash function, and a hash value (hereinafter, eigenvalue) unique to the bitmap image data. Is calculated). Then, the eigenvalue calculation unit 801 outputs the data of the data structure 1 including the drawing data and the calculated eigenvalue to the comparison determination unit 802.

なお、固有値を算出するためにハッシュ関数を用いることが好適ではあるが、任意の入力データに対して固有値を算出するような方法であれば、他の方法を用いてもよい。ハッシュ関数を用いることが好適な理由は、以下の通りである。ハッシュ関数は、電子署名などに用いられるMD−5やSHA−1などのハッシュ関数であり、これらのハッシュ関数は、任意のデータから128ビット又は160ビットの数値(任意のデータに固有な値)を算出する。このようなハッシュ関数を用いた場合、2つのデータX、Yが与えられた際には、データX、Yが同一データであればハッシュ値H(X)、H(Y)も等しくなる。しかしながら、データX、Yが1ビットでも異なるデータである場合には、ハッシュ値H(X)、H(Y)は異なる数値を取る。なお、原理的には、異なるデータに対してハッシュ値が同一になる場合も生じ得るが、その可能性は極めて低い確率でしか発生しないのがハッシュ関数の特徴である。したがって、異なるデータ同士が同一のハッシュ値を取る可能性は実用上無視できる。ハッシュ関数は、上述のような特性を持った関数であるので、任意のデータから固有値を求める際に有効である。   Although it is preferable to use a hash function to calculate the eigenvalue, other methods may be used as long as the eigenvalue is calculated for arbitrary input data. The reason why it is preferable to use the hash function is as follows. The hash function is a hash function such as MD-5 or SHA-1 used for electronic signatures, and these hash functions are 128-bit or 160-bit numerical values (values unique to arbitrary data). Is calculated. When such a hash function is used, when two pieces of data X and Y are given, if the data X and Y are the same data, the hash values H (X) and H (Y) are also equal. However, when the data X and Y are different even by 1 bit, the hash values H (X) and H (Y) take different numerical values. In principle, the hash value may be the same for different data, but the possibility is only generated with a very low probability. Therefore, the possibility that different data take the same hash value can be ignored in practice. Since the hash function is a function having the above-described characteristics, it is effective when obtaining eigenvalues from arbitrary data.

また、比較決定部802は、固有値算出部801から供給される描画データを含むデータ構造1のデータ及び固有値を受け取ると、テーブル格納部804に格納されているテーブルを使用して、下記のデータ構造2のデータを作成する。   When the comparison determination unit 802 receives the data of the data structure 1 including the drawing data supplied from the eigenvalue calculation unit 801 and the eigenvalue, the comparison determination unit 802 uses the table stored in the table storage unit 804 and uses the following data structure: Create 2 data.

(ビットマップ存在フラグ、画面上のX座標、画面上のY座標、ビットマップ画像の横幅、ビットマップ画像の高さ、ビットマップ画像、固有値)・・・<データ構造2>   (Bitmap presence flag, X coordinate on the screen, Y coordinate on the screen, width of the bitmap image, height of the bitmap image, bitmap image, eigenvalue) ... <Data structure 2>

上記のように、データ構造2は、ビットマップ存在フラグ、画面上のX座標、画面上のY座標、ビットマップ画像の横幅、ビットマップ画像の高さ、ビットマップ画像、固有値の各データを挿入するためのフィールドを有している。ビットマップ存在フラグのフィールドは、後続のビットマップ画像のフィールドにビットマップ画像が含まれているか否かを示す1ビットのフィールドである。クライアントE02が有しているテーブルにこのビットマップ画像が保持されていると判断された場合には、ビットマップ存在フラグにビットマップ画像の非存在を示すビット(例えば『0』)がセットされ、ビットマップ画像のフィールドにビットマップ画像が含まれないようにする。一方、クライアントE02が有しているテーブルにこのビットマップ画像が保持されていないと判断された場合には、ビットマップ存在フラグにビットマップ画像の存在を示すビット(例えば『1』)がセットされ、ビットマップ画像のフィールドにビットマップ画像が含まれるようにする。   As described above, the data structure 2 inserts the bitmap presence flag, the X coordinate on the screen, the Y coordinate on the screen, the width of the bitmap image, the height of the bitmap image, the bitmap image, and the eigenvalue data. It has a field to do. The bitmap presence flag field is a 1-bit field indicating whether or not a bitmap image is included in a subsequent bitmap image field. When it is determined that this bitmap image is held in the table held by the client E02, a bit indicating the absence of the bitmap image (for example, “0”) is set in the bitmap presence flag, Bitmap images should not be included in the bitmap image fields. On the other hand, if it is determined that this bitmap image is not held in the table held by the client E02, a bit indicating the presence of the bitmap image (eg, “1”) is set in the bitmap presence flag. The bitmap image is included in the bitmap image field.

また、画面上のX座標、画面上のY座標、ビットマップ画像の横幅、ビットマップ画像の高さの各フィールドは、ビットマップ画像(ビットマップ画像のフィールドに含まれているビットマップ画像又は固有値によって特定されるビットマップ画像)の配置位置を示す配置位置情報である。ここでは、VNCシステムと同様に上記4つのフィールドを用いているが、ビットマップ画像の配置位置を示すことができれば、任意の情報及び形式を採用することが可能である。   The X coordinate on the screen, the Y coordinate on the screen, the horizontal width of the bitmap image, and the height of the bitmap image are the bitmap image (the bitmap image or eigenvalue included in the bitmap image field). Is the arrangement position information indicating the arrangement position of the bitmap image specified by Here, the above four fields are used as in the VNC system, but any information and format can be adopted as long as the arrangement position of the bitmap image can be indicated.

また、固有値のフィールドには、ビットマップ画像から算出された固有値が挿入される。クライアントE02側では、この固有値は、ビットマップ画像を特定するための情報として利用される。   Also, the eigenvalue calculated from the bitmap image is inserted into the eigenvalue field. On the client E02 side, this unique value is used as information for specifying a bitmap image.

なお、比較決定部802は、固有値算出部801から受け取った固有値と、テーブル格納部804に格納されているテーブル内の固有値との比較結果に基づいて、ビットマップ画像データを含むデータの生成を行うか、ビットマップ画像データを含まないデータの生成を行うかを判断するが、このデータの生成処理に関しては後で詳細に説明する。   The comparison determination unit 802 generates data including bitmap image data based on the comparison result between the eigenvalue received from the eigenvalue calculation unit 801 and the eigenvalue in the table stored in the table storage unit 804. Whether to generate data that does not include bitmap image data is determined. This data generation processing will be described in detail later.

また、テーブル格納部804には、比較決定部802で作成されるデータ構造2に沿ったデータを追加記録するために用意されているテーブルが格納されている。比較決定部802は、固有値算出部801から固有値及び描画データを受けると、テーブル格納部804に格納されているテーブルを使用して、固有値算出部801から受けた固有値及び描画データに係るデータ構造2のデータを作成するとともに、作成したデータ構造2のデータ(あるいは、データ構造1のデータ及び固有値)をテーブルに格納する。なお、サーバE01の比較決定部802は、固有値の比較によってビットマップ画像データをクライアントに送信するか否かを決定するので、テーブル格納部804内のテーブルに固有値のみが保持されても本発明は動作可能である。   The table storage unit 804 stores a table prepared for additionally recording data along the data structure 2 created by the comparison determination unit 802. When the comparison determination unit 802 receives the eigenvalue and the drawing data from the eigenvalue calculation unit 801, the comparison determination unit 802 uses the table stored in the table storage unit 804 to use the data structure 2 related to the eigenvalue and the drawing data received from the eigenvalue calculation unit 801. And data of the created data structure 2 (or data of the data structure 1 and eigenvalues) are stored in a table. The comparison determination unit 802 of the server E01 determines whether or not to transmit bitmap image data to the client by comparing the eigenvalues. Therefore, even if only the eigenvalue is held in the table in the table storage unit 804, the present invention It is possible to operate.

テーブル格納部804に格納されているテーブルは、上述のように比較決定部802で作成されたデータ構造2のデータを保持することができるものであれば任意の形式で実現可能であるが、例えば、テーブルのエントリ(1つのデータ構造2のデータを保持する領域)の最大数を1000個とし、FIFO(First In First Out)方式でテーブルの更新が行われるようにすることが可能である。   The table stored in the table storage unit 804 can be realized in any format as long as it can hold the data of the data structure 2 created by the comparison determination unit 802 as described above. It is possible to set the maximum number of table entries (area holding data of one data structure 2) to 1,000, and to update the table by a FIFO (First In First Out) method.

また、通信部803は、比較決定部802から供給されるデータ構造2に沿ったデータを、例えばVNCプロトコルに変換してクライアントE02に送信する。   Further, the communication unit 803 converts the data along the data structure 2 supplied from the comparison determination unit 802 into, for example, the VNC protocol and transmits the data to the client E02.

次に、図1に図示されているクライアントE02の構成について説明する。図1に図示されているクライアントE02は、通信部805、描画作成部806、テーブル格納部807、フレームバッファ408、出力部409、ディスプレイ(ビットマップディスプレイ)410を有している。   Next, the configuration of the client E02 illustrated in FIG. 1 will be described. The client E02 illustrated in FIG. 1 includes a communication unit 805, a drawing creation unit 806, a table storage unit 807, a frame buffer 408, an output unit 409, and a display (bitmap display) 410.

通信部805は、サーバE01から送信されるVNCプロトコルに沿ったデータを受信し、データ構造2に沿ったデータに変換して、描画作成部806に出力する。   The communication unit 805 receives data conforming to the VNC protocol transmitted from the server E01, converts the data into data conforming to the data structure 2, and outputs the data to the drawing creation unit 806.

描画作成部806は、通信部805から供給されるデータ構造2に沿ったデータを受け取ると、通信部805から供給されるデータ構造2に沿ったデータ内に含まれているデータ、又はテーブル格納部807に格納されているテーブルに保持されているデータ構造2に沿ったデータを使用して画像データを作成し、作成した画像データをフレームバッファ408に書き込む。   Upon receiving the data along the data structure 2 supplied from the communication unit 805, the drawing creation unit 806 receives data included in the data along the data structure 2 supplied from the communication unit 805, or a table storage unit Image data is created using data according to the data structure 2 held in the table stored in 807, and the created image data is written into the frame buffer 408.

なお、通信部805から供給されるデータにビットマップ画像データが既に含まれている場合には、描画作成部806は、この画像データをフレームバッファ408に書き込むことになる。描画作成部806における画像データの生成処理に関しては後で詳細に説明する。   When bitmap image data is already included in the data supplied from the communication unit 805, the drawing creation unit 806 writes this image data in the frame buffer 408. The image data generation processing in the drawing creation unit 806 will be described in detail later.

また、テーブル格納部807には、描画作成部806が受け取ったデータ構造2に沿ったデータを追加記録するために用意されているテーブルが格納されている。描画作成部806は、通信部805からデータ構造2のデータを受けると、テーブル格納部807に格納されているテーブルを使用して、フレームバッファ408に書き込むための画像データを作成するとともに、通信部805から受けたデータ構造2のデータをテーブルに格納する。なお、クライアントE02の描画作成部806は、固有値の一致するビットマップ画像データをテーブル格納部807内のテーブルから読み出す処理を行うので、テーブル格納部807内のテーブルにビットマップ画像データ及び固有値のみが保持されても本発明は動作可能である。   The table storage unit 807 stores a table prepared for additionally recording data along the data structure 2 received by the drawing creation unit 806. When the drawing creation unit 806 receives the data of the data structure 2 from the communication unit 805, the drawing creation unit 806 creates image data to be written in the frame buffer 408 using the table stored in the table storage unit 807, and The data of data structure 2 received from 805 is stored in the table. Note that the drawing creation unit 806 of the client E02 performs a process of reading bitmap image data having a matching unique value from the table in the table storage unit 807, so that only the bitmap image data and the unique value are stored in the table in the table storage unit 807. Even if held, the present invention is operable.

テーブル格納部804に格納されているテーブルは、サーバE01のテーブル格納部804内のテーブルと同様に任意の形式で実現可能である。ただし、サーバE01は、クライアントE02のテーブル格納部807に格納されているテーブルに保持されている内容を把握する必要がある。したがって、例えば、サーバE01のテーブル格納部804内のテーブルと、クライアントE02のテーブル格納部807内のテーブルとは、同一の形式によって作成、保持されるようにすることが望ましい。   The table stored in the table storage unit 804 can be realized in an arbitrary format similarly to the table in the table storage unit 804 of the server E01. However, the server E01 needs to grasp the contents held in the table stored in the table storage unit 807 of the client E02. Therefore, for example, it is desirable that the table in the table storage unit 804 of the server E01 and the table in the table storage unit 807 of the client E02 be created and held in the same format.

次に、図2を参照しながら、図1に図示されているサーバE01の動作の一例について説明する。図2は、本発明の第1の実施の形態におけるサーバの動作の一例を示すフローチャートである。   Next, an example of the operation of the server E01 illustrated in FIG. 1 will be described with reference to FIG. FIG. 2 is a flowchart illustrating an example of the operation of the server according to the first embodiment of this invention.

サーバE01では、VNCシステムの場合と同様に、フレーム取得部402がフレームバッファ401から画像データ(描画データ)を取得し(ステップS601)、画像データを構成する描画データ列の各描画データに関して、ハッシュ関数を用いてビットマップ画像の固有値を算出する(ステップS901)。なお、上述のように、任意の入力データに対して固有値を算出することが可能であれば、必ずしもハッシュ関数を用いる必要はない。   In the server E01, as in the case of the VNC system, the frame acquisition unit 402 acquires image data (drawing data) from the frame buffer 401 (step S601), and for each drawing data in the drawing data string constituting the image data, a hash is obtained. The eigenvalue of the bitmap image is calculated using the function (step S901). As described above, it is not always necessary to use a hash function as long as an eigenvalue can be calculated for arbitrary input data.

次に、前フレームバッファ404が空か否かを確認することによって、初回の画像データ取得動作か否かの判定が行われる(ステップS602)。このとき、前フレームバッファ404が空の場合(画像データが1度も書き込まれていない場合)には、ステップS902における比較処理及び変換処理をスキップしてステップS903に進み、一方、前フレームバッファ404が空ではない場合には、ステップS902に進む。   Next, by checking whether or not the previous frame buffer 404 is empty, it is determined whether or not it is the first image data acquisition operation (step S602). At this time, if the previous frame buffer 404 is empty (when no image data has been written), the comparison process and the conversion process in step S902 are skipped, and the process proceeds to step S903. If is not empty, the process proceeds to step S902.

ステップS902では、ステップS901で算出された各ビットマップ画像の固有値とテーブル格納部804に格納されているテーブル内の固有値とを比較し、その比較結果に基づいて、データ構造1に沿ったデータ及び固有値をデータ構造2に沿ったデータに変換する処理が行われる。   In step S902, the eigenvalue of each bitmap image calculated in step S901 is compared with the eigenvalue in the table stored in the table storage unit 804, and based on the comparison result, data along the data structure 1 and A process of converting the eigenvalue into data according to the data structure 2 is performed.

以下、図3を参照しながら、上記のステップS902における比較処理及び変換処理の詳細について説明する。図3は、本発明の第1の実施の形態において、サーバの比較決定部で行われる比較処理及び変換処理の一例を示すフローチャートである。   Hereinafter, the details of the comparison process and the conversion process in step S902 will be described with reference to FIG. FIG. 3 is a flowchart illustrating an example of comparison processing and conversion processing performed by the comparison determination unit of the server in the first exemplary embodiment of the present invention.

図3において、まず、サーバE01の比較決定部802は、固有値算出部801から供給される描画データの固有値と、テーブル格納部804内のテーブルに保持されている固有値とを比較して、固有値算出部801から供給される描画データの固有値と同一のものがテーブル格納部804内のテーブルに保持されているか否かを判断する(ステップS1101)。   In FIG. 3, first, the comparison determination unit 802 of the server E01 compares the unique value of the drawing data supplied from the unique value calculation unit 801 with the unique value held in the table in the table storage unit 804 to calculate the unique value. It is determined whether or not the same value as the unique value of the drawing data supplied from the unit 801 is held in the table in the table storage unit 804 (step S1101).

ステップS1101で同一の固有値がテーブルに存在する場合には、データ構造1に沿ったデータに対して、
・ビットマップ存在フラグに、ビットマップ画像の非存在を示す『0』をセット
・データ構造1に沿ったデータに対応する固有値をセット(追加)
・ビットマップ画像データを削除して、NULLを設定
することによって、データ構造2に沿ったデータが作成される(ステップS1102)。
If the same eigenvalue exists in the table in step S1101, the data along the data structure 1 is
・ Set the bitmap existence flag to “0” indicating the absence of bitmap image ・ Set the eigenvalue corresponding to the data along the data structure 1 (addition)
By deleting the bitmap image data and setting NULL, data along the data structure 2 is created (step S1102).

一方、ステップS1101で同一の固有値がテーブルに存在しない場合には、データ構造1に沿ったデータに対して、
・ビットマップ存在フラグに、ビットマップ画像の存在を示す『1』をセット
・データ構造1に沿ったデータに対応する固有値をセット(追加)
することによって、データ構造2に沿ったデータが作成される(ステップS1103)。
On the other hand, if the same eigenvalue does not exist in the table in step S1101, for the data along the data structure 1,
・ Set the bitmap existence flag to “1” indicating the existence of the bitmap image ・ Set the eigenvalue corresponding to the data along the data structure 1 (addition)
Thus, data along the data structure 2 is created (step S1103).

なお、図面には反映されていないが、ステップS602で初回と判定された場合には、すべての描画データ及び固有値がサーバE01からクライアントE02に送信される必要があり、この場合には、上記のステップS1103に従ってデータ構造2に沿ったデータが作成される。   Although not reflected in the drawing, if it is determined in step S602 that it is the first time, all drawing data and eigenvalues need to be transmitted from the server E01 to the client E02. Data along the data structure 2 is created according to step S1103.

そして、上述のようにステップS1102又はS1103でデータ構造2に沿ったデータが作成された場合や、ステップS602で初回と判定された場合には、図2に示すように、データ構造2に沿ったデータ(少なくとも固有値)がテーブル格納部804のテーブルに追加登録され(ステップS903)、例えばVNCプロトコルに準拠したデータに変換された後にクライアントE02に送信される(ステップS904)。また、VNCシステムと同様に、前フレームバッファ404には、今回取得した画像データ(フレームバッファ401内の画像データ)が上書きされ(ステップS605)、ステップS606において、何らかの終了条件が成立している場合には動作を終了する一方、終了条件が存在しない場合にはステップS601に戻って上記の処理が繰り返し行われる。   As described above, when data along the data structure 2 is created in step S1102 or S1103, or when it is determined as the first time in step S602, as shown in FIG. Data (at least eigenvalue) is additionally registered in the table of the table storage unit 804 (step S903), and is converted to data conforming to the VNC protocol, for example, and then transmitted to the client E02 (step S904). Similarly to the VNC system, the previous frame buffer 404 is overwritten with the image data acquired this time (image data in the frame buffer 401) (step S605), and some termination condition is satisfied in step S606. On the other hand, if the end condition does not exist, the process returns to step S601 and the above processing is repeated.

次に、図4を参照しながら、図1に図示されているクライアントE02の動作の一例について説明する。図4は、本発明の第1の実施の形態におけるクライアントの動作の一例を示すフローチャートである。   Next, an example of the operation of the client E02 illustrated in FIG. 1 will be described with reference to FIG. FIG. 4 is a flowchart illustrating an example of the operation of the client according to the first embodiment of this invention.

クライアントE02では、まず、サーバE01から送信されるVNCプロトコルに沿ったデータを受信し、このデータをデータ構造2に沿ったデータに変換する(ステップS1001)。そして、描画作成部806において、データ構造2に沿ったデータに含まれているビットマップ画像データ、あるいはテーブル格納部807に格納されているテーブル内のビットマップ画像データに基づいて、フレームバッファ408に書き込む描画データの作成処理が行われる(ステップS1002)。   First, the client E02 receives data conforming to the VNC protocol transmitted from the server E01, and converts this data into data conforming to the data structure 2 (step S1001). Then, the drawing creation unit 806 stores the frame buffer 408 based on the bitmap image data included in the data along the data structure 2 or the bitmap image data in the table stored in the table storage unit 807. The drawing data to be written is created (step S1002).

以下、図5を参照しながら、上記のステップS1002における描画作成処理の詳細について説明する。図5は、本発明の第1の実施の形態において、クライアントの描画作成部で行われる描画作成処理の一例を示すフローチャートである。   Hereinafter, the details of the drawing creation processing in step S1002 will be described with reference to FIG. FIG. 5 is a flowchart illustrating an example of a drawing creation process performed by the drawing creation unit of the client according to the first embodiment of this invention.

図5において、まず、クライアントE02の描画作成部806は、通信部805から供給されるデータ構造2に沿ったデータ内のビットマップ存在フラグの値をチェックする(ステップS1151)。   5, first, the drawing creation unit 806 of the client E02 checks the value of the bitmap presence flag in the data along the data structure 2 supplied from the communication unit 805 (step S1151).

ステップS1151でビットマップ存在フラグの値がビットマップ画像の存在を示す『1』の場合、このデータ構造2に沿ったデータにはビットマップ画像データが含まれていることが分かる。この場合には、描画作成部806は、サーバE01から受信したデータ構造2に沿ったデータからビットマップ画像データを抽出する(ステップS1152)。なお、描画作成部806は抽出したビットマップ画像データを用いてフレームバッファ408への書き込みを行うので、テーブル格納部807内のテーブルを参照して描画データの作成を行う必要はない。   If the value of the bitmap presence flag is “1” indicating the presence of the bitmap image in step S1151, it can be seen that the data along the data structure 2 includes the bitmap image data. In this case, the drawing creating unit 806 extracts bitmap image data from the data along the data structure 2 received from the server E01 (step S1152). Note that since the drawing creation unit 806 writes to the frame buffer 408 using the extracted bitmap image data, it is not necessary to create drawing data by referring to the table in the table storage unit 807.

一方、ステップS1151でビットマップ存在フラグの値がビットマップ画像の非存在を示す『0』の場合、このデータ構造2に沿ったデータにはビットマップ画像データは含まれていないことが分かる。この場合には、描画作成部806は、サーバE01から受信したデータ構造2に沿ったデータから固有値を抽出し、抽出した固有値に対応するビットマップ画像データをテーブル格納部807内のテーブルから取得して、このデータからビットマップ画像データを抽出する(ステップS1152)。   On the other hand, if the value of the bitmap presence flag is “0” indicating the absence of the bitmap image in step S1151, it can be seen that the data along the data structure 2 does not include the bitmap image data. In this case, the drawing creation unit 806 extracts a unique value from the data along the data structure 2 received from the server E01, and acquires bitmap image data corresponding to the extracted unique value from the table in the table storage unit 807. Then, bitmap image data is extracted from this data (step S1152).

具体的には、例えばステップS1152では、描画作成部806は、ビットマップ存在フラグが『0』であることを確認した後、データ構造2に沿った入力データの固有値とテーブル格納部807内のテーブルに保持されている固有値とを比較して、データ構造2に沿った入力データの固有値と同一の固有値を有するデータ構造2に沿ったデータをテーブルから取得する。そして、取得したデータ構造2に沿ったデータからビットマップ存在フラグ及び固有値を削除して、データ構造1に沿ったデータを作成し、作成したデータの出力を行う。   Specifically, for example, in step S1152, the drawing creation unit 806 confirms that the bitmap presence flag is “0”, and then the unique value of the input data along the data structure 2 and the table in the table storage unit 807. And the data along the data structure 2 having the same eigenvalue as the input data along the data structure 2 is obtained from the table. Then, the bitmap existence flag and the eigenvalue are deleted from the data along the acquired data structure 2 to create data along the data structure 1 and output the created data.

また、さらに描画作成部806は、サーバE01から受信したデータ構造2に沿ったデータ(少なくともビットマップ画像データ及び固有値)をテーブル格納部807のテーブルに追加登録する(ステップS1003)。なお、この場合、ビットマップ画像データを含んでいるデータ構造2に沿ったデータのみをテーブルに追加登録してもよい。   Further, the drawing creating unit 806 additionally registers data (at least bitmap image data and eigenvalues) along the data structure 2 received from the server E01 in the table of the table storage unit 807 (step S1003). In this case, only the data along the data structure 2 including the bitmap image data may be additionally registered in the table.

図4において、描画作成部806は、描画データ列に含まれる描画データを用いて、フレームバッファ408に画像データの描画を行う(ステップS702)。なお、上述のように、図5のステップS1151でビットマップ存在フラグが『1』であることが確認された場合には、描画作成部806は、データ構造2に沿った入力データからビットマップ存在フラグ及び固有値を削除して、データ構造1に沿ったデータを作成し、作成したデータの出力を行い、したがって、描画作成部806は、図5のステップS1151でビットマップ存在フラグが『0』であることが確認された場合には、描画作成部806は、図5のステップS1153で取得したデータに基づくデータ出力を行う。また、出力部409は、フレームバッファ408を順次読み出し、D/A変換などの所望の信号処理を行ってディスプレイ410への出力を行う(ステップS703)。また、ステップS704において、何らかの終了条件が成立している場合には動作を終了する一方、終了条件が存在しない場合にはステップS601に戻って上記の処理が繰り返し行われる。   In FIG. 4, the drawing creating unit 806 draws image data in the frame buffer 408 using the drawing data included in the drawing data string (step S702). As described above, when it is confirmed in step S1151 of FIG. 5 that the bitmap presence flag is “1”, the drawing creation unit 806 determines that the bitmap exists from the input data along the data structure 2. The flag and eigenvalue are deleted to create data according to the data structure 1 and output the created data. Therefore, the drawing creation unit 806 sets the bitmap existence flag to “0” in step S1151 of FIG. If it is confirmed that there is, the drawing creation unit 806 performs data output based on the data acquired in step S1153 of FIG. The output unit 409 sequentially reads the frame buffer 408, performs desired signal processing such as D / A conversion, and outputs the result to the display 410 (step S703). In step S704, the operation is terminated if any termination condition is satisfied, whereas if the termination condition does not exist, the process returns to step S601 and the above processing is repeated.

以上、説明したように、本発明の第1の実施の形態では、リモートデスクトップシステムにおいて、各描画データから固有値(例えばハッシュ値)を算出して各描画データを固有値と関連付けてテーブルに登録し、このテーブルをサーバ及びクライアントで共有する。これにより、クライアント側のテーブルに保持されているビットマップ画像が表示画像データとして入力された場合に、サーバは、このビットマップ画像の代わりに固有値(さらには、X座標やY座標などの描画位置を指定する情報)を送信することで、クライアントは、この固有値からビットマップ画像(さらには、描画位置)を特定し、表示の更新を行うことが可能となる。この結果、サーバからクライアントに転送される描画データ量が削減される。   As described above, in the first embodiment of the present invention, in the remote desktop system, a unique value (for example, a hash value) is calculated from each drawing data, and each drawing data is associated with the unique value and registered in the table. This table is shared by the server and the client. As a result, when a bitmap image held in the client-side table is input as display image data, the server replaces the bitmap image with a unique value (in addition, a drawing position such as an X coordinate or a Y coordinate). By transmitting (information designating), the client can specify the bitmap image (and also the drawing position) from this eigenvalue and update the display. As a result, the amount of drawing data transferred from the server to the client is reduced.

<第2の実施の形態>
次に、本発明の第2の実施の形態について説明する。図6は、本発明の第2の実施の形態におけるリモートデスクトップシステムの一構成例を示すブロック図である。図6に図示されているリモートデスクトップシステムは、サーバF01とクライアントF02とが任意のデータ伝送路を介して接続された構成を有している。
<Second Embodiment>
Next, a second embodiment of the present invention will be described. FIG. 6 is a block diagram showing a configuration example of the remote desktop system in the second exemplary embodiment of the present invention. The remote desktop system illustrated in FIG. 6 has a configuration in which a server F01 and a client F02 are connected via an arbitrary data transmission path.

以下、図6に図示されているサーバF01の構成について説明する。図6に図示されているサーバF01は、フレームバッファ401、フレーム取得部402、比較部403、前フレームバッファ404、固有値算出部801、比較決定部1201、差分決定部1202、通信部1203、テーブル格納部1204を有している。   Hereinafter, the configuration of the server F01 illustrated in FIG. 6 will be described. A server F01 illustrated in FIG. 6 includes a frame buffer 401, a frame acquisition unit 402, a comparison unit 403, a previous frame buffer 404, an eigenvalue calculation unit 801, a comparison determination unit 1201, a difference determination unit 1202, a communication unit 1203, and a table storage. Part 1204.

図6に図示されているサーバF01のフレームバッファ401、フレーム取得部402、比較部403、前フレームバッファ404には、従来の技術で説明した図26に図示されているVNCサーバD01のフレームバッファ401、フレーム取得部402、比較部403、前フレームバッファ404を利用することが可能である。すなわち、図6に図示されているサーバF01の比較部403からは、VNCシステムと同様に、フレーム取得部402で取得したフレームバッファ401内の画像データと、前フレームバッファ内の画像データ(フレームバッファ401内の画像データの更新直前にフレームバッファ401内に蓄積されていた画像データ)との比較の結果、これら画像データの差分の描画データが、上述のデータ構造1の形式で出力される。   The frame buffer 401, the frame acquisition unit 402, the comparison unit 403, and the previous frame buffer 404 shown in FIG. 6 include the frame buffer 401 of the VNC server D01 shown in FIG. The frame acquisition unit 402, the comparison unit 403, and the previous frame buffer 404 can be used. That is, from the comparison unit 403 of the server F01 illustrated in FIG. 6, the image data in the frame buffer 401 acquired by the frame acquisition unit 402 and the image data (frame buffer in the previous frame buffer) acquired by the frame acquisition unit 402, as in the VNC system. As a result of comparison with the image data stored in the frame buffer 401 immediately before the update of the image data in 401, the drawing data of the difference between these image data is output in the format of the data structure 1 described above.

また、図6に図示されている固有値算出部801には、図1に図示されている固有値算出部801を利用することが可能である。すなわち、図6に図示されているサーバF01の比較部403から出力されるデータ構造1の形式のデータは固有値算出部801に供給され、固有値算出部801において、描画データのビットマップ画像データに対してハッシュ関数を用いた演算が行われて、固有値(ハッシュ値)が算出される。   In addition, the eigenvalue calculation unit 801 illustrated in FIG. 6 can use the eigenvalue calculation unit 801 illustrated in FIG. 1. That is, data in the format of data structure 1 output from the comparison unit 403 of the server F01 illustrated in FIG. 6 is supplied to the eigenvalue calculation unit 801, and the eigenvalue calculation unit 801 applies the bitmap image data of the drawing data to the eigenvalue calculation unit 801. Thus, an operation using a hash function is performed to calculate an eigenvalue (hash value).

図6の構成では、固有値算出部801から出力される描画データを含むデータ構造1のデータ及び固有値は、比較決定部1201に供給される。比較決定部1201は、固有値算出部801から供給されるデータ構造1に沿ったデータ及び固有値を受け取ると、テーブル格納部1204に格納されているテーブルを使用して、下記のデータ構造3のデータを作成する。   In the configuration of FIG. 6, the data of the data structure 1 including the drawing data output from the eigenvalue calculation unit 801 and the eigenvalue are supplied to the comparison determination unit 1201. When the comparison determination unit 1201 receives the data and the eigenvalue along the data structure 1 supplied from the eigenvalue calculation unit 801, the comparison determination unit 1201 uses the table stored in the table storage unit 1204 to convert the data of the data structure 3 below. create.

(ビットマップ存在フラグ、画面上のX座標、画面上のY座標、ビットマップ画像の横幅、ビットマップ画像の高さ、画像データ(ビットマップ画像、又は、差分ビットマップ画像+固有値+差分領域(X座標、Y座標、横幅、高さ))、固有値、差分データ存在フラグ)・・・<データ構造3>   (Bitmap presence flag, X coordinate on the screen, Y coordinate on the screen, width of the bitmap image, height of the bitmap image, image data (bitmap image or difference bitmap image + eigen value + difference area ( X coordinate, Y coordinate, horizontal width, height)), eigenvalue, difference data existence flag) ... <data structure 3>

上記のデータ構造3の各フィールドのうち、ビットマップ存在フラグ、画面上のX座標、画面上のY座標、ビットマップ画像の横幅、ビットマップ画像の高さ、固有値の各フィールドは、上述のデータ構造2と同一である。   Among the fields of the data structure 3 described above, the bitmap presence flag, the X coordinate on the screen, the Y coordinate on the screen, the width of the bitmap image, the height of the bitmap image, and the eigenvalue fields are the above-described data. Same as structure 2.

一方、データ構造3の画像データのフィールドには、上述のデータ構造2の場合のようにビットマップ画像が含まれる場合と、差分ビットマップ画像が含まれる場合とがある。差分ビットマップ画像が含まれる場合には、画像データのフィールドには、この差分ビットマップ画像を特定するための固有値と、この差分ビットマップ画像の配置位置情報とが更に含まれる。また、差分データ存在フラグのフィールドは、画像データのフィールドに差分ビットマップ画像が含まれているか否かを示す1ビットのフィールドである。   On the other hand, the image data field of the data structure 3 includes a case where a bitmap image is included as in the case of the data structure 2 described above, and a case where a difference bitmap image is included. When the difference bitmap image is included, the image data field further includes a unique value for specifying the difference bitmap image and arrangement position information of the difference bitmap image. The difference data presence flag field is a 1-bit field indicating whether or not a difference bitmap image is included in the image data field.

なお、比較決定部1201は、固有値算出部801から受け取った固有値と、テーブル格納部1204に格納されているテーブル内の固有値との比較結果に基づいて、ビットマップ画像データを含むデータの生成を行うか、ビットマップ画像データを含まないデータの生成を行うかを判断する。この比較決定部1201の基本的な処理は、図1に図示されている比較処理部802に類似しているが、比較決定部1201に係る処理に関しては後で詳細に説明する。   The comparison determination unit 1201 generates data including bitmap image data based on the comparison result between the eigenvalue received from the eigenvalue calculation unit 801 and the eigenvalue in the table stored in the table storage unit 1204. Or whether to generate data that does not include bitmap image data. The basic processing of the comparison determination unit 1201 is similar to the comparison processing unit 802 shown in FIG. 1, but the processing related to the comparison determination unit 1201 will be described in detail later.

また、差分決定部1202は、比較決定部1201から供給されるデータ構造3に沿ったデータA群と、テーブル格納部1204内のテーブルに保持されているデータ構造3に沿ったデータB群とを使用して、上記のデータA群のデータ量を削減するため、受け取ったデータA群と似通ったデータをデータB群の中から検索し、これらの差分を求めて、データA群のデータ更新を行う機能を有している。なお、差分決定部1202におけるデータ更新処理関しては、後で詳細に説明する。   In addition, the difference determination unit 1202 includes the data A group along the data structure 3 supplied from the comparison determination unit 1201 and the data B group along the data structure 3 held in the table in the table storage unit 1204. In order to reduce the amount of data of the data A group, the data B group is searched for data similar to the received data A group, the difference between them is obtained, and the data update of the data A group is performed. Has the function to perform. The data update process in the difference determination unit 1202 will be described in detail later.

また、テーブル格納部1204には、差分決定部1202における更新処理の後に通信部1203に出力されるデータ構造3に沿ったデータを追加記録するために用意されているテーブルが格納されている。比較決定部1201では、固有値算出部801から受けた固有値に一致する固有値を、テーブル格納部1204に格納されているテーブル内から検索する処理が行われ、差分決定部1202では、データ構造3のデータにビットマップ画像が含まれている場合に、このビットマップ画像に似通った画像をテーブル格納部1204に格納されているテーブル内から検索して、これらの画像の差分データを取得してクライアントF02に送信するデータの更新を行うことによって、データ量の削減が行われる。   The table storage unit 1204 stores a table prepared for additionally recording data along the data structure 3 output to the communication unit 1203 after the update processing in the difference determination unit 1202. The comparison determination unit 1201 performs a process of searching for the eigenvalue that matches the eigenvalue received from the eigenvalue calculation unit 801 from the table stored in the table storage unit 1204, and the difference determination unit 1202 stores the data in the data structure 3. If the image contains a bitmap image, the image similar to the bitmap image is searched from the table stored in the table storage unit 1204, and the difference data of these images is acquired to the client F02. The data amount is reduced by updating the data to be transmitted.

テーブル格納部1204に格納されているテーブルは、上述のように差分決定部1202から出力されるデータ構造3のデータを保持することができるものであれば任意の形式で実現可能であるが、例えば、テーブルのエントリ(1つのデータ構造2のデータを保持する領域)の最大数を1000個とし、FIFO方式でテーブルの更新が行われるようにすることが可能である。   The table stored in the table storage unit 1204 can be realized in any format as long as it can hold the data of the data structure 3 output from the difference determination unit 1202 as described above. The maximum number of table entries (area holding data of one data structure 2) can be set to 1000, and the table can be updated by the FIFO method.

また、通信部1203は、差分決定部1202から供給されるデータ構造3に沿ったデータを、例えばVNCプロトコルに変換してクライアントF02に送信する。   Further, the communication unit 1203 converts the data along the data structure 3 supplied from the difference determination unit 1202 into, for example, the VNC protocol and transmits the data to the client F02.

次に、図6に図示されているクライアントF02の構成について説明する。図6に図示されているクライアントF02は、通信部1205、差分合成部1206、テーブル格納部1207、描画作成部1208、フレームバッファ408、出力部409、ディスプレイ(ビットマップディスプレイ)410を有している。   Next, the configuration of the client F02 illustrated in FIG. 6 will be described. The client F02 illustrated in FIG. 6 includes a communication unit 1205, a difference synthesis unit 1206, a table storage unit 1207, a drawing creation unit 1208, a frame buffer 408, an output unit 409, and a display (bitmap display) 410. .

なお、図6に図示されているクライアントF02のフレームバッファ408、出力部409、ディスプレイ410には、従来の技術で説明した図26に図示されているVNCサーバD01のフレームバッファ408、出力部409、ディスプレイ410を利用することが可能である。   The frame buffer 408 and output unit 409 of the client F02 shown in FIG. 6 and the display 410 include the frame buffer 408 and output unit 409 of the VNC server D01 shown in FIG. A display 410 can be used.

通信部1205は、サーバF01から送信されるVNCプロトコルに沿ったデータを受信し、データ構造3に沿ったデータに変換して、差分合成部1206に出力する。   The communication unit 1205 receives data conforming to the VNC protocol transmitted from the server F01, converts the data into data conforming to the data structure 3, and outputs the data to the difference composition unit 1206.

また、差分合成部1206は、通信部1205から供給されるデータの差分データ存在フラグを監視し、差分データ存在フラグが差分データの存在を示すもの(例えば『1』)である場合には、テーブル格納部1207に格納されているデータ構造3に沿ったデータを使用してビットマップ画像データを合成する。なお、差分データ存在フラグが差分データの非存在を示すもの(例えば『0』)である場合には、差分合成部1206は、通信部1205から供給されるデータをそのまま描画作成部1208に出力する。また、差分合成部1206では、基本的にサーバF01の差分決定部1202で行われる変換の逆変換が行われる。差分合成部1206における画像データの生成処理に関しては後で詳細に説明する。   Also, the difference synthesis unit 1206 monitors the difference data presence flag of the data supplied from the communication unit 1205, and if the difference data presence flag indicates the presence of difference data (for example, “1”), the table Bitmap image data is synthesized using data along the data structure 3 stored in the storage unit 1207. If the difference data presence flag indicates that there is no difference data (for example, “0”), the difference synthesis unit 1206 outputs the data supplied from the communication unit 1205 to the drawing creation unit 1208 as it is. . In addition, the difference synthesis unit 1206 basically performs reverse conversion of the conversion performed by the difference determination unit 1202 of the server F01. The image data generation processing in the difference synthesis unit 1206 will be described in detail later.

また、描画作成部1208は、差分合成部1206から供給されるデータ構造3に沿ったデータを受け取ると、テーブル格納部1207に格納されているテーブルに保持されているデータ構造3に沿ったデータを使用して画像データを作成し、作成した画像データをフレームバッファ408に書き込む。なお、データ構造に違いはあるが、描画作成部1208では、基本的に図1に図示されている描画作成部806と同様に、差分合成部1206から供給されるデータ構造3に沿ったデータ内の固有値に対応するビットマップ画像データを、テーブル格納部1207に格納されているテーブルから取得する処理が行われる。   In addition, when the drawing creation unit 1208 receives the data along the data structure 3 supplied from the difference synthesis unit 1206, the drawing creation unit 1208 converts the data along the data structure 3 held in the table stored in the table storage unit 1207. The image data is created using the data, and the created image data is written into the frame buffer 408. Although there is a difference in the data structure, the drawing creation unit 1208 basically stores the data in the data structure 3 supplied from the difference synthesis unit 1206 in the same manner as the drawing creation unit 806 shown in FIG. A process of acquiring bitmap image data corresponding to the eigenvalues from the table stored in the table storage unit 1207 is performed.

また、テーブル格納部1207には、サーバF01から受信したデータ構造3に沿ったデータを追加記録するために用意されているテーブルが格納されている。なお、データ構造3に沿ったデータは、差分合成部1206及び描画作成部1208のどちらからテーブルに書き込まれてもよい。また、テーブルには差分ビットマップ画像が保持されるが、差分ビットマップ画像は、サーバF01から受信した状態で保持されてもよく、また、差分の比較対象となったビットマップ画像データ(比較対象データ)に差分ビットマップ画像が合成された状態で保持されてもよい。   The table storage unit 1207 stores a table prepared for additionally recording data along the data structure 3 received from the server F01. Data along the data structure 3 may be written into the table from either the difference synthesis unit 1206 or the drawing creation unit 1208. Further, the difference bitmap image is held in the table, but the difference bitmap image may be held in the state received from the server F01, and the bitmap image data (the comparison target) that is the difference comparison target. Data) may be held in a state where the difference bitmap image is combined.

また、テーブル格納部1207に格納されているテーブルは、サーバF01のテーブル格納部1207内のテーブルと同様に任意の形式で実現可能である。また、例えば、サーバF01のテーブル格納部1204内のテーブルと、クライアントF02のテーブル格納部1207内のテーブルとは、同一の形式によって作成、保持されるようにすることが望ましい。   Further, the table stored in the table storage unit 1207 can be realized in an arbitrary format in the same manner as the table in the table storage unit 1207 of the server F01. For example, it is desirable that the table in the table storage unit 1204 of the server F01 and the table in the table storage unit 1207 of the client F02 be created and held in the same format.

次に、図7を参照しながら、図6に図示されているサーバF01の動作の一例について説明する。図7は、本発明の第2の実施の形態におけるサーバの動作の一例を示すフローチャートである。   Next, an example of the operation of the server F01 illustrated in FIG. 6 will be described with reference to FIG. FIG. 7 is a flowchart showing an example of the operation of the server according to the second embodiment of the present invention.

サーバF01では、本発明の第1の実施の形態(図2参照)と同様に、フレーム取得部402がフレームバッファ401から画像データ(描画データ)を取得し(ステップS601)、画像データを構成する描画データ列の各描画データに関して、ハッシュ関数を用いてビットマップ画像の固有値を算出し(ステップS901)、前フレームバッファ404が空か否かを確認することによって、初回の画像データ取得動作か否かの判定が行われる(ステップS602)。このとき、前フレームバッファ404が空の場合(画像データが1度も書き込まれていない場合)には、ステップS1301における比較処理及び変換処理とステップS1302における差分決定処理をスキップしてステップS1303に進み、一方、前フレームバッファ404が空ではない場合には、ステップS1301に進む。   In the server F01, as in the first embodiment of the present invention (see FIG. 2), the frame acquisition unit 402 acquires image data (drawing data) from the frame buffer 401 (step S601), and configures the image data. For each drawing data in the drawing data string, a unique value of the bitmap image is calculated using a hash function (step S901), and it is confirmed whether or not the first image data acquisition operation is performed by checking whether or not the previous frame buffer 404 is empty. Is determined (step S602). At this time, when the previous frame buffer 404 is empty (when the image data has never been written), the comparison process and the conversion process in step S1301 and the difference determination process in step S1302 are skipped, and the process proceeds to step S1303. On the other hand, if the previous frame buffer 404 is not empty, the process proceeds to step S1301.

ステップS1301では、ステップS901で算出された各ビットマップ画像の固有値とテーブル格納部1204に格納されているテーブル内の固有値とを比較し、その比較結果に基づいて、データ構造1に沿ったデータ及び固有値をデータ構造3に沿ったデータに変換する処理が行われる。   In step S1301, the eigenvalue of each bitmap image calculated in step S901 is compared with the eigenvalue in the table stored in the table storage unit 1204. Based on the comparison result, data along the data structure 1 and A process of converting the eigenvalue into data according to the data structure 3 is performed.

以下、図8を参照しながら、上記のステップS1301における比較処理及び変換処理の詳細について説明する。図8は、本発明の第2の実施の形態において、サーバの比較決定部で行われる比較処理及び変換処理の一例を示すフローチャートである。   Hereinafter, the details of the comparison process and the conversion process in step S1301 will be described with reference to FIG. FIG. 8 is a flowchart illustrating an example of comparison processing and conversion processing performed by the comparison determination unit of the server in the second exemplary embodiment of the present invention.

図8において、まず、サーバF01の比較決定部1201は、固有値算出部801から供給される描画データの固有値と、テーブル格納部1204内のテーブルに保持されている固有値とを比較して、固有値算出部801から供給される描画データの固有値と同一のものがテーブル格納部1204内のテーブルに保持されているか否かを判断する(ステップS1501)。   In FIG. 8, first, the comparison determination unit 1201 of the server F01 compares the unique value of the drawing data supplied from the unique value calculation unit 801 with the unique value held in the table in the table storage unit 1204 to calculate the unique value. It is determined whether or not the same value as the unique value of the drawing data supplied from the unit 801 is held in the table in the table storage unit 1204 (step S1501).

ステップS1501で同一の固有値がテーブルに存在する場合には、データ構造1に沿ったデータに対して、
・ビットマップ存在フラグに、ビットマップ画像の非存在を示す『0』をセット
・データ構造1に沿ったデータに対応する固有値をセット(追加)
・ビットマップ画像を削除して、NULLを設定
・差分データ存在フラグに、差分データの非存在を示す『0』をセット
することによって、データ構造3に沿ったデータが作成される(ステップS1502)。
If the same eigenvalue exists in the table in step S1501, the data along the data structure 1 is
・ Set the bitmap existence flag to “0” indicating the absence of bitmap image ・ Set the eigenvalue corresponding to the data along the data structure 1 (addition)
-Delete the bitmap image, set NULL-Set the difference data existence flag to "0" indicating the absence of the difference data, and the data along the data structure 3 is created (step S1502) .

一方、ステップS1501で同一の固有値がテーブルに存在しない場合には、データ構造1に沿ったデータに対して、
・ビットマップ存在フラグに、ビットマップ画像の存在を示す『1』をセット
・データ構造1に沿ったデータに対応する固有値をセット(追加)
・差分データ存在フラグに、差分データの非存在を示す『0』をセット
することによって、データ構造3に沿ったデータが作成される(ステップS1503)。
On the other hand, if the same eigenvalue does not exist in the table in step S1501, the data along the data structure 1 is
・ Set the bitmap existence flag to “1” indicating the existence of the bitmap image ・ Set the eigenvalue corresponding to the data along the data structure 1 (addition)
By setting “0” indicating the absence of the difference data to the difference data existence flag, data along the data structure 3 is created (step S1503).

なお、図面には反映されていないが、ステップS602で初回と判定された場合には、すべての描画データ及び固有値がサーバF01からクライアントF02に送信される必要があり、この場合には、上記のステップS1503に従ってデータ構造3に沿ったデータが作成されることが望ましい。   Although not reflected in the drawing, if it is determined in step S602 that it is the first time, all drawing data and eigenvalues need to be transmitted from the server F01 to the client F02. It is desirable to create data along the data structure 3 in accordance with step S1503.

さらに、ステップS1301の比較処理及び変換処理に続いて、ステップS1302の差分決定処理が行われる。以下、図9を参照しながら、上記のステップS1302における差分決定処理の詳細について説明する。図9は、本発明の第2の実施の形態において、サーバの差分決定部で行われる差分決定処理の一例を示すフローチャートである。   Further, following the comparison process and the conversion process in step S1301, a difference determination process in step S1302 is performed. Hereinafter, the details of the difference determination process in step S1302 will be described with reference to FIG. FIG. 9 is a flowchart illustrating an example of the difference determination process performed by the difference determination unit of the server in the second embodiment of the present invention.

図9において、サーバF01の差分決定部1202は、比較決定部1201から供給されるデータ構造3に沿ったデータ(図8のステップS1502又はS1503で作成されたデータ)内のビットマップ存在フラグの値をチェックする(ステップS1601)。   9, the difference determination unit 1202 of the server F01 uses the value of the bitmap presence flag in the data (data created in step S1502 or S1503 in FIG. 8) along the data structure 3 supplied from the comparison determination unit 1201. Is checked (step S1601).

ステップS1601でビットマップ存在フラグの値がビットマップ画像の存在を示す『1』の場合、このデータ構造2に沿ったデータにはビットマップ画像データが含まれていることが分かる。この場合には、ステップS1602に進む。一方、ステップS1601でビットマップ存在フラグの値がビットマップ画像の非存在を示す『0』の場合には、差分決定処理を行う必要はなく差分決定処理は終了となる。   If the value of the bitmap presence flag is “1” indicating the presence of the bitmap image in step S1601, it can be seen that the data along this data structure 2 includes the bitmap image data. In this case, the process proceeds to step S1602. On the other hand, if the value of the bitmap presence flag is “0” indicating the absence of the bitmap image in step S1601, the difference determination process is not necessary and the difference determination process ends.

ビットマップ存在フラグの値がビットマップ画像の存在を示す『1』の場合には、データ構造3に沿った入力データのビットマップ画像の横幅と高さを取得し、テーブル格納部1204のテーブル内に同一の横幅及び高さのビットマップ画像データが保持されているか否かの検索が行われる(ステップS1602)。   When the value of the bitmap presence flag is “1” indicating the presence of the bitmap image, the width and height of the bitmap image of the input data along the data structure 3 are acquired and stored in the table of the table storage unit 1204 A search is performed as to whether bitmap image data having the same width and height is held in the step S1602.

ステップS1602でテーブル格納部1204のテーブル内に同一の横幅及び高さのビットマップ画像データが発見されなかった場合には、差分決定処理は終了となる。一方、ステップS1602でテーブル格納部1204のテーブル内に同一の横幅及び高さのビットマップ画像データが発見された場合には、テーブルから、このビットマップ画像データ及び固有値が取得される(ステップS1603)。   If bitmap image data having the same width and height is not found in the table of the table storage unit 1204 in step S1602, the difference determination process ends. On the other hand, when bitmap image data having the same width and height is found in the table of the table storage unit 1204 in step S1602, the bitmap image data and eigenvalue are acquired from the table (step S1603). .

そして、ステップS1603で取得されたビットマップ画像データと、データ構造3に沿った入力データのビットマップ画像データとを比較して、両者の画像データの差分が取得され、差分領域(差分ビットマップ画像の配置位置情報)と、差分ビットマップ画像とが取得される(ステップS1604)。なお、差分ビットマップ画像の配置位置を定める差分領域としては、例えば画面上のX座標、画面上のY座標、差分ビットマップ画像の横幅、差分ビットマップ画像の高さが決定される。   Then, the bitmap image data acquired in step S1603 is compared with the bitmap image data of the input data along the data structure 3, and a difference between the two image data is acquired, and a difference area (difference bitmap image) is obtained. And the difference bitmap image are acquired (step S1604). For example, the X coordinate on the screen, the Y coordinate on the screen, the horizontal width of the differential bitmap image, and the height of the differential bitmap image are determined as the differential area that determines the arrangement position of the differential bitmap image.

ステップS1604で差分ビットマップ画像及び差分領域が取得された後、これらの情報に基づいてデータ構造3に沿った入力データが更新される。具体的には、データ構造3に沿った入力データに対して、
・差分データ存在フラグに画像データの存在を示す『1』をセット
・ビットマップ画像の横幅及び高さに『0』をセット
・画像データに、テーブル格納部1204のテーブルから検出された比較対象データ(差分の比較対象となったビットマップ画像データ)の固有値、差分ビットマップ画像、差分領域をセット
することによって、データ構造3に沿ったデータが作成される(ステップS1605)。
After the difference bitmap image and the difference area are acquired in step S1604, the input data along the data structure 3 is updated based on these pieces of information. Specifically, for input data along data structure 3,
-"1" indicating the presence of image data is set in the difference data existence flag-"0" is set in the horizontal width and height of the bitmap image-Comparison target data detected from the table of the table storage unit 1204 in the image data Data along the data structure 3 is created by setting the eigenvalue (difference bitmap image data to be compared), the difference bitmap image, and the difference area (step S1605).

そして、上述のようにステップS1502、S1503、S1605でデータ構造3に沿ったデータが作成された場合や、ステップS602で初回と判定された場合には、データ構造3に沿ったデータがテーブル格納部1204のテーブルに追加登録され(ステップS1303)、例えばVNCプロトコルに準拠したデータに変換された後にクライアントF02に送信される(ステップS1304)。また、VNCシステムと同様に、前フレームバッファ404には、今回取得した画像データ(フレームバッファ401内の画像データ)が上書きされ(ステップS605)、ステップS606において、何らかの終了条件が成立している場合には動作を終了する一方、終了条件が存在しない場合にはステップS601に戻って上記の処理が繰り返し行われる。   As described above, when data along the data structure 3 is created in steps S1502, S1503, and S1605, or when it is determined as the first time in step S602, the data along the data structure 3 is stored in the table storage unit. It is additionally registered in the table 1204 (step S1303), and after being converted into data conforming to the VNC protocol, for example, it is transmitted to the client F02 (step S1304). Similarly to the VNC system, the previous frame buffer 404 is overwritten with the image data acquired this time (image data in the frame buffer 401) (step S605), and some termination condition is satisfied in step S606. On the other hand, if the end condition does not exist, the process returns to step S601 and the above processing is repeated.

次に、図10を参照しながら、図6に図示されているクライアントF02の動作の一例について説明する。図10は、本発明の第2の実施の形態におけるクライアントの動作の一例を示すフローチャートである。   Next, an example of the operation of the client F02 illustrated in FIG. 6 will be described with reference to FIG. FIG. 10 is a flowchart illustrating an example of the operation of the client according to the second embodiment of this invention.

クライアントF02では、まず、サーバF01から送信されるVNCプロトコルに沿ったデータを受信し、このデータをデータ構造3に沿ったデータに変換する(ステップS1401)。そして、差分合成部1206において、データ構造3に沿ったデータに含まれているビットマップ画像データ、テーブル格納部1207に格納されているテーブル内のビットマップ画像データ、あるいはデータ構造3に沿ったデータに含まれている差分ビットマップデータ及びテーブル格納部1207に格納されているテーブル内のビットマップ画像データに基づいて、差分合成処理及び描画作成処理が行われる(ステップS1402)。   First, the client F02 receives data conforming to the VNC protocol transmitted from the server F01, and converts this data into data conforming to the data structure 3 (step S1401). Then, in the difference synthesis unit 1206, bitmap image data included in the data along the data structure 3, bitmap image data in the table stored in the table storage unit 1207, or data along the data structure 3 Based on the difference bitmap data included in the table and the bitmap image data in the table stored in the table storage unit 1207, a difference synthesis process and a drawing creation process are performed (step S1402).

以下、図11を参照しながら、上記のステップS1402における差分合成処理の詳細について説明する。図11は、本発明の第2の実施の形態において、クライアントの差分合成部で行われる差分合成処理の一例を示すフローチャートである。   Hereinafter, the details of the difference synthesis processing in step S1402 will be described with reference to FIG. FIG. 11 is a flowchart illustrating an example of a difference synthesis process performed by the client difference synthesis unit according to the second embodiment of this invention.

図11において、まず、クライアントF02の差分合成部1206は、通信部1205から供給されるデータ構造3に沿ったデータ内の差分データ存在フラグの値をチェックする(ステップS1701)。   In FIG. 11, first, the difference synthesizer 1206 of the client F02 checks the value of the difference data presence flag in the data along the data structure 3 supplied from the communication unit 1205 (step S1701).

ステップS1701で差分データ存在フラグの値が差分データの非存在を示す『0』の場合、このデータ構造3に沿ったデータには差分データが含まれておらず、差分合成部1206での差分合成処理は終了となり、データ構造3に沿ったデータはそのまま描画作成部1208に出力される。   If the value of the difference data presence flag is “0” indicating that the difference data does not exist in step S1701, the data along the data structure 3 does not include the difference data, and the difference synthesis unit 1206 performs the difference synthesis. The processing ends, and the data along the data structure 3 is output to the drawing creation unit 1208 as it is.

一方、ステップS1701で差分データ存在フラグの値が差分データの存在を示す『1』の場合には、サーバF01から受信したデータ構造3に沿った入力データに含まれる画像データ内の固有値を取得し、この固有値と同一の固有値を有するデータ構造3に沿ったデータをテーブル内から抽出する(ステップS1702)。   On the other hand, if the value of the difference data presence flag is “1” indicating the presence of difference data in step S1701, the unique value in the image data included in the input data along the data structure 3 received from the server F01 is acquired. Then, data along the data structure 3 having the same eigenvalue as this eigenvalue is extracted from the table (step S1702).

次に、ステップ1702で抽出されたデータ内のビットマップ画像データをベースにして、サーバF01から受信したデータ構造3に沿った入力データに含まれる差分データの差分領域(X座標、Y座標、横幅、高さ)に差分ビットマップ画像を上書きし、合成ビットマップ画像を作成する(ステップS1703)。   Next, based on the bitmap image data in the data extracted in step 1702, the difference area (X coordinate, Y coordinate, horizontal width of the difference data included in the input data along the data structure 3 received from the server F01. , Height) is overwritten with the difference bitmap image to create a composite bitmap image (step S1703).

そして、ステップS1703で作成された合成ビットマップ画像を使用して、サーバF01から受信したデータ構造3に沿った入力データを更新する。具体的には、データ構造3に沿った入力データに対して、
・差分データ存在フラグに画像データの非存在を示す『0』をセット
・画像データの内容を合成ビットマップ画像で書き換え
・ビットマップ画像の横幅及び高さを合成ビットマップ画像の横幅及び高さ(すなわち、ステップS1702で抽出されたデータのビットマップ画像データ)で書き換え
することによって、データ構造3に沿ったデータが作成されて、描画作成部1208に出力される(ステップS1704)。
Then, the input data along the data structure 3 received from the server F01 is updated using the composite bitmap image created in step S1703. Specifically, for input data along data structure 3,
・ Set the difference data presence flag to “0” indicating the absence of image data. ・ Rewrite the contents of the image data with the composite bitmap image. ・ The width and height of the bitmap image are the width and height of the composite bitmap image ( That is, by rewriting with the bitmap image data of the data extracted in step S1702, data along the data structure 3 is created and output to the drawing creation unit 1208 (step S1704).

次に、ステップ1704で更新されたデータ構造3に沿ったデータ(差分合成処理が行われなかった場合には、データ構造3に沿った入力データ)は、テーブル格納部1207内のテーブルに追加登録される(ステップS1403)。また、上述の差分合成処理を経て差分合成部1206からデータ構造3に沿ったデータを受信した描画作成部1208では、基本的に図5と同様の処理が行われる。すなわち、描画作成部1208では、ビットマップ存在フラグがビットマップ画像の存在を示す『1』の場合には、差分合成部1206から受け取ったデータに含まれるビットマップ画像データから描画データが作成され、ビットマップ存在フラグがビットマップ画像の非存在を示す『0』の場合には、差分合成部1206から受け取ったデータに含まれる固有値を基にテーブル内でビットマップ画像データの検索が行われ、この検索によって取得されたビットマップ画像データから描画データが作成される。   Next, the data along the data structure 3 updated at step 1704 (input data along the data structure 3 when the difference synthesis process is not performed) is additionally registered in the table in the table storage unit 1207. (Step S1403). The drawing creation unit 1208 that has received the data along the data structure 3 from the difference synthesis unit 1206 through the above-described difference synthesis processing basically performs the same processing as in FIG. That is, in the drawing creation unit 1208, when the bitmap presence flag is “1” indicating the presence of the bitmap image, the drawing data is created from the bitmap image data included in the data received from the difference synthesis unit 1206. When the bitmap presence flag is “0” indicating the absence of the bitmap image, the bitmap image data is searched in the table based on the eigenvalue included in the data received from the difference synthesis unit 1206. Drawing data is created from the bitmap image data acquired by the search.

上述のように、描画作成部806は、描画データ列に含まれる描画データを用いて、フレームバッファ408に画像データの描画を行い(ステップS702)、出力部409は、フレームバッファ408を順次読み出し、D/A変換などの所望の信号処理を行ってディスプレイ410への出力を行う(ステップS703)。また、ステップS704において、何らかの終了条件が成立している場合には動作を終了する一方、終了条件が存在しない場合にはステップS601に戻って上記の処理が繰り返し行われる。   As described above, the drawing creation unit 806 draws image data in the frame buffer 408 using the drawing data included in the drawing data string (step S702), and the output unit 409 sequentially reads the frame buffer 408, Desired signal processing such as D / A conversion is performed and output to the display 410 is performed (step S703). In step S704, the operation is terminated if any termination condition is satisfied, whereas if the termination condition does not exist, the process returns to step S601 and the above processing is repeated.

また、図12には、本発明の第2の実施の形態における差分合成の概要が図示されている。例えば、ディスプレイに表示されている開始ボタン3101の表示が、終了ボタン3102の表示に変更された場合、サーバF01では、終了の文字の部分のみの差分ビットマップ画像3103が取得され、データ構造3のデータの画像データには、この差分ビットマップ画像3103、差分ビットマップ画像3103の配置位置、開始ボタン3101の固有値が挿入されて、サーバF01からクライアントF02に送信される。一方、クライアントF02は、このデータ構造3に沿ったデータを受信すると、テーブル格納部1207に格納されている開始ボタン3101のビットマップ画像を取得して、差分ビットマップ画像3103を合成することで、終了ボタン3102の画像データを作成する。本発明の第1の実施の形態では、このような表示変更の際に、終了ボタン3102の画像データが送信されていたことに比べて、本発明の第2の実施の形態では、よりデータ量の小さな差分ビットマップ画像3103が送信されることとなり、サーバF01からクライアントF02に転送される描画データ量が大きく削減されるようになる。   FIG. 12 shows an outline of difference synthesis in the second embodiment of the present invention. For example, when the display of the start button 3101 displayed on the display is changed to the display of the end button 3102, the server F 01 acquires the difference bitmap image 3103 only for the end character portion, and the data structure 3 The difference bitmap image 3103, the arrangement position of the difference bitmap image 3103, and the unique value of the start button 3101 are inserted into the image data of the data and transmitted from the server F01 to the client F02. On the other hand, when the client F02 receives the data according to the data structure 3, the client F02 acquires the bitmap image of the start button 3101 stored in the table storage unit 1207, and synthesizes the difference bitmap image 3103. Image data for the end button 3102 is created. In the first embodiment of the present invention, compared to the case where the image data of the end button 3102 is transmitted at the time of such a display change, the data amount in the second embodiment of the present invention is larger. Thus, the difference bitmap image 3103 having a small size is transmitted, and the amount of drawing data transferred from the server F01 to the client F02 is greatly reduced.

以上、説明したように、本発明の第2の実施の形態では、リモートデスクトップシステムにおいて、各描画データから固有値(例えばハッシュ値)を算出して各描画データを固有値と関連付けてテーブルに登録し、このテーブルをサーバ及びクライアントで共有するとともに、共有されている画像の一部のみが更新されるような表示変更に関しては、サーバは、その差分ビットマップ画像をクライアントに送信する。これにより、クライアント側のテーブルに保持されているビットマップ画像の一部のみを更新する表示変更に関しては、サーバは、この差分ビットマップ画像(さらには、差分対象となるビットマップ画像の固有値や描画位置)を送信することで、クライアントは、合成ビットマップ画像を作成して表示の更新を行うことが可能となる。この結果、サーバからクライアントに転送される描画データ量が削減される。   As described above, in the second embodiment of the present invention, in the remote desktop system, a unique value (for example, a hash value) is calculated from each drawing data, and each drawing data is associated with the unique value and registered in the table. The server transmits the difference bitmap image to the client with respect to the display change in which only a part of the shared image is updated while the table and the client are shared. As a result, with respect to a display change that updates only a part of the bitmap image held in the client-side table, the server changes the difference bitmap image (in addition, the eigenvalue or drawing value of the bitmap image to be the difference target). By transmitting (position), the client can create a composite bitmap image and update the display. As a result, the amount of drawing data transferred from the server to the client is reduced.

<第3の実施の形態>
次に、本発明の第3の実施の形態について説明する。図13は、本発明の第3の実施の形態におけるリモートデスクトップシステムの一構成例を示すブロック図である。図13に図示されているリモートデスクトップシステムは、サーバG01とクライアントG02とが任意のデータ伝送路を介して接続された構成を有している。
<Third Embodiment>
Next, a third embodiment of the present invention will be described. FIG. 13 is a block diagram illustrating a configuration example of a remote desktop system according to the third embodiment of the present invention. The remote desktop system illustrated in FIG. 13 has a configuration in which a server G01 and a client G02 are connected via an arbitrary data transmission path.

以下、図13に図示されているサーバG01の構成について説明する。図13に図示されているサーバG01は、フレームバッファ401、フレーム取得部402、比較部403、前フレームバッファ404、固有値算出部801、比較決定部802、テーブル格納部804、データ変換部1801、通信部1802を有している。   Hereinafter, the configuration of the server G01 illustrated in FIG. 13 will be described. The server G01 illustrated in FIG. 13 includes a frame buffer 401, a frame acquisition unit 402, a comparison unit 403, a previous frame buffer 404, an eigenvalue calculation unit 801, a comparison determination unit 802, a table storage unit 804, a data conversion unit 1801, and a communication Part 1802.

図13に図示されているサーバG01のフレームバッファ401、フレーム取得部402、比較部403、前フレームバッファ404、固有値算出部801、比較決定部802、テーブル格納部804には、図1に図示されているフレームバッファ401、フレーム取得部402、比較部403、前フレームバッファ404、固有値算出部801、比較決定部802、テーブル格納部804を利用することが可能である。すなわち、図13に図示されているサーバG01の比較決定部802からは、描画データが上述のデータ構造2の形式で出力される。   The frame buffer 401, the frame acquisition unit 402, the comparison unit 403, the previous frame buffer 404, the eigenvalue calculation unit 801, the comparison determination unit 802, and the table storage unit 804 of the server G01 illustrated in FIG. The frame buffer 401, the frame acquisition unit 402, the comparison unit 403, the previous frame buffer 404, the eigenvalue calculation unit 801, the comparison determination unit 802, and the table storage unit 804 can be used. That is, the drawing data is output in the format of the above-described data structure 2 from the comparison determination unit 802 of the server G01 illustrated in FIG.

図13に図示されているサーバG01の比較決定部802から出力されるデータ構造2の形式のデータは、データ変換部1801に供給される。データ変換部1801は、比較決定部802から供給されるデータ構造2のデータをビットマップ画像に変換して、下記のデータ構造4のデータを作成して、通信部1802に出力する。   Data in the format of the data structure 2 output from the comparison determination unit 802 of the server G01 illustrated in FIG. 13 is supplied to the data conversion unit 1801. The data conversion unit 1801 converts the data of the data structure 2 supplied from the comparison determination unit 802 into a bitmap image, creates data of the following data structure 4, and outputs the data to the communication unit 1802.

(データ構造2のデータがビットマップ画像に変換されたビットマップ画像データ)・・・<データ構造4>   (Bitmap image data in which data of data structure 2 is converted into a bitmap image)... <Data structure 4>

なお、ここでは、データ構造2のデータをビットマップ画像であるデータ構造4のデータに変換しているが、ビットマップ以外のデータに変換してもよい。また、クライアントG02の要求するデータ型に変換してもよい。   Here, the data of the data structure 2 is converted into the data of the data structure 4 which is a bitmap image, but may be converted into data other than the bitmap. Further, it may be converted into a data type requested by the client G02.

また、通信部1802は、データ変換部1801から供給されるデータ構造4に沿ったデータを、例えばVNCプロトコルに変換してクライアントG02に送信する。   Further, the communication unit 1802 converts the data along the data structure 4 supplied from the data conversion unit 1801 into, for example, the VNC protocol and transmits the data to the client G02.

次に、図13に図示されているクライアントG02の構成について説明する。図13に図示されているクライアントG02は、通信部1803、データ変換部1804、クライアントバッファ1805、描画作成部1806、フレームバッファ408、出力部409、ディスプレイ(ビットマップディスプレイ)410を有している。   Next, the configuration of the client G02 illustrated in FIG. 13 will be described. A client G02 illustrated in FIG. 13 includes a communication unit 1803, a data conversion unit 1804, a client buffer 1805, a drawing creation unit 1806, a frame buffer 408, an output unit 409, and a display (bitmap display) 410.

なお、図13に図示されているクライアントG02のフレームバッファ408、出力部409、ディスプレイ410には、従来の技術で説明した図26に図示されているVNCクライアントD02のフレームバッファ408、出力部409、ディスプレイ410を利用することが可能である。   The frame buffer 408 and output unit 409 of the client G02 shown in FIG. 13 and the display 410 include the frame buffer 408 and output unit 409 of the VNC client D02 shown in FIG. A display 410 can be used.

通信部1803は、サーバG01から送信されるVNCプロトコルに沿ったデータを受信し、データ構造4に沿ったデータに変換して、データ変換部1804に出力する。   The communication unit 1803 receives data according to the VNC protocol transmitted from the server G01, converts the data into data according to the data structure 4, and outputs the data to the data conversion unit 1804.

データ変換部1804は、通信部1803から供給されたデータ構造4に沿ったデータを、データ構造2に沿ったデータに変換し、さらに、変換によって作成されたデータ構造2のデータにテーブルフラグを付加して、下記のデータ構造5に沿ったデータを作成するとともに、テーブルフラグにこのデータがサーバG01から受信したものであることを示す『0』をセットして、描画作成部1806に出力する。なお、以下では、データ変換部1804が、サーバG01から通信部1803を介して受信したデータ構造4のデータを、テーブルフラグが『0』にセットされたデータ構造5のデータに変換するデータ変換処理を第1のデータ変換処理と呼ぶことにする。   The data conversion unit 1804 converts the data along the data structure 4 supplied from the communication unit 1803 into data along the data structure 2, and adds a table flag to the data of the data structure 2 created by the conversion. Then, data along the following data structure 5 is created, and “0” indicating that this data is received from the server G01 is set in the table flag, and is output to the drawing creating unit 1806. In the following, the data conversion process in which the data conversion unit 1804 converts the data of the data structure 4 received from the server G01 via the communication unit 1803 into the data of the data structure 5 in which the table flag is set to “0”. Is referred to as a first data conversion process.

(テーブルフラグ、ビットマップ存在フラグ、画面上のX座標、画面上のY座標、ビットマップ画像の横幅、ビットマップ画像の高さ、ビットマップ画像、固有値)・・・<データ構造5>   (Table flag, bitmap presence flag, X coordinate on the screen, Y coordinate on the screen, width of the bitmap image, height of the bitmap image, bitmap image, eigenvalue) ... <Data structure 5>

データ構造5は、データ構造2のデータにテーブルフラグのフィールドが付加された構造を有している。テーブルフラグは、対応するデータ構造2のデータが通信部1803を介してサーバG01から受信したデータであるのか、あるいはクライアントバッファ1805から読み出されたデータであるのかを識別するために付加される情報であり、例えば、サーバG01から受信したデータにはテーブルフラグ『0』がセットされ、クライアントバッファ1805から読み出されたデータにはテーブルフラグ『1』がセットされる。   The data structure 5 has a structure in which a table flag field is added to the data of the data structure 2. The table flag is information added to identify whether the data of the corresponding data structure 2 is data received from the server G01 via the communication unit 1803 or data read from the client buffer 1805. For example, the table flag “0” is set in the data received from the server G01, and the table flag “1” is set in the data read from the client buffer 1805.

なお、このテーブルフラグは、描画作成部1806が上記のいずれに該当するデータであるのかを識別するために付加される情報の一例であるが、例えば、通信部1803及びクライアントバッファ1805のそれぞれから描画作成部1806に到来するデータのデータ入力口を分けるなど、描画作成部1806がデータの由来を確実に把握することが可能であれば、テーブルフラグは必ずしも付加される必要はない。   This table flag is an example of information added to identify which of the above data the drawing creation unit 1806 corresponds to. However, for example, drawing is performed from each of the communication unit 1803 and the client buffer 1805. If the drawing creation unit 1806 can reliably grasp the origin of data, for example, by dividing the data input port of the data that arrives at the creation unit 1806, the table flag is not necessarily added.

また、データ変換部1804は、描画作成部1806の命令によってクライアントバッファ1805から読み出されたデータ構造4のデータを受けて、このデータをデータ構造5のデータに変換するとともに、テーブルフラグにこのデータがクライアントバッファ1805から読み出されたものであることを示す『1』をセットして、描画作成部1806に出力する。なお、以下では、データ変換部1804が、クライアントバッファ1805から読み出されたデータ構造4のデータを、テーブルフラグが『1』にセットされたデータ構造5のデータに変換するデータ変換処理を第2のデータ変換処理と呼ぶことにする。   Further, the data conversion unit 1804 receives the data of the data structure 4 read from the client buffer 1805 according to the instruction of the drawing creation unit 1806, converts this data into the data of the data structure 5, and converts this data into the table flag. Is set to “1” indicating that it is read from the client buffer 1805, and is output to the drawing creation unit 1806. In the following description, a second data conversion process is performed in which the data conversion unit 1804 converts the data of the data structure 4 read from the client buffer 1805 into data of the data structure 5 in which the table flag is set to “1”. This is called data conversion processing.

また、データ変換部1804は、描画作成部1806から書き込み命令と共に渡されたデータ構造2のデータをデータ構造4のデータに変換してクライアントバッファ1805に書き込む。なお、以下では、データ変換部1804が、描画作成部1806から渡されたデータ構造2のデータを、クライアントバッファ1805に書き込むためにデータ構造4のデータに変換するデータ変換処理を第3のデータ変換処理と呼ぶことにする。   In addition, the data conversion unit 1804 converts the data of the data structure 2 passed along with the write command from the drawing creation unit 1806 into data of the data structure 4 and writes the data in the client buffer 1805. In the following, a data conversion process in which the data conversion unit 1804 converts the data of the data structure 2 passed from the drawing creation unit 1806 into the data of the data structure 4 for writing to the client buffer 1805 is the third data conversion. This is called processing.

なお、ここでは、1つのデータ変換部1804が上述の第1〜第3のデータ変換処理を行う機能を有しているが、複数のデータ変換部1804を設けて上述の第1〜第3のデータ変換処理をそれぞれ分担して行うようにしてもよい。   Here, one data conversion unit 1804 has a function of performing the above-described first to third data conversion processes, but a plurality of data conversion units 1804 are provided to provide the above-described first to third data conversion processes. Data conversion processing may be performed in a shared manner.

また、クライアントバッファ1805は、クライアントG02の所持するメモリであり、例えばデジタルテレビなどのようなデコーダの搭載されている表示機器の場合には、このデコーダのフレームバッファが利用可能である。このクライアントバッファ1805は、ビットマップ画像メモリであり、データ構造4のデータを保持することが可能である。   A client buffer 1805 is a memory owned by the client G02. For a display device equipped with a decoder such as a digital television, for example, the frame buffer of the decoder can be used. The client buffer 1805 is a bitmap image memory and can hold data of the data structure 4.

また、描画作成部1806は、サーバG01から受信したことを示すテーブルフラグ『0』が付加されたデータ構造5のデータをデータ変換部1804から受け取ると、このデータに基づいて画像データを作成し、作成した画像データをフレームバッファ408に書き込む。   When the drawing creation unit 1806 receives data of the data structure 5 to which the table flag “0” indicating that it has been received from the server G01 is received from the data conversion unit 1804, the drawing creation unit 1806 creates image data based on this data, The created image data is written into the frame buffer 408.

また、描画作成部1806は、クライアントバッファ1805からデータ変換部1804経由で所望のデータの読み出しを行い、データ変換部1804で上記の第2のデータ変換処理を経て作成されたテーブルフラグ『1』が付加されたデータ構造5のデータを受け取る。さらに、描画作成部1806は、このテーブルフラグ『1』が付加されたデータを一時的に保持するためのキャッシュを有している。   In addition, the drawing creation unit 1806 reads desired data from the client buffer 1805 via the data conversion unit 1804, and the table flag “1” created by the data conversion unit 1804 through the second data conversion process is stored. Data of the added data structure 5 is received. Further, the drawing creating unit 1806 has a cache for temporarily holding data to which the table flag “1” is added.

次に、図14を参照しながら、図13に図示されているサーバG01の動作の一例について説明する。図14は、本発明の第3の実施の形態におけるサーバの動作の一例を示すフローチャートである。   Next, an example of the operation of the server G01 illustrated in FIG. 13 will be described with reference to FIG. FIG. 14 is a flowchart illustrating an example of the operation of the server according to the third embodiment of the present invention.

サーバG01では、本発明の第1の実施の形態(図2参照)と同様に、フレーム取得部402がフレームバッファ401から画像データ(描画データ)を取得し(ステップS601)、画像データを構成する描画データ列の各描画データに関して、ハッシュ関数を用いてビットマップ画像の固有値を算出し(ステップS901)、前フレームバッファ404が空か否かを確認することによって、初回の画像データ取得動作か否かの判定が行われる(ステップS602)。このとき、前フレームバッファ404が空の場合(画像データが1度も書き込まれていない場合)には、ステップS902における比較処理及び変換処理をスキップしてステップS903のテーブルへの追加登録処理が行われる。一方、前フレームバッファ404が空ではない場合には、ステップS902の比較処理及び変換処理を経てステップS903のテーブルへの追加登録処理が行われる。なお、ここまでは、本発明の第1の実施の形態に係る処理と同一である。   In the server G01, as in the first embodiment of the present invention (see FIG. 2), the frame acquisition unit 402 acquires image data (drawing data) from the frame buffer 401 (step S601), and configures the image data. For each drawing data in the drawing data string, a unique value of the bitmap image is calculated using a hash function (step S901), and it is confirmed whether or not the first image data acquisition operation is performed by checking whether or not the previous frame buffer 404 is empty. Is determined (step S602). At this time, when the previous frame buffer 404 is empty (when the image data has never been written), the comparison process and the conversion process in step S902 are skipped, and the additional registration process to the table in step S903 is performed. Is called. On the other hand, if the previous frame buffer 404 is not empty, an additional registration process to the table in step S903 is performed through the comparison process and the conversion process in step S902. Note that the processing up to this point is the same as the processing according to the first embodiment of the present invention.

上述の処理の後、データ変換部1804は、データ構造2に沿ったデータをビットマップ画像に変換して、データ構造4に沿ったデータを作成する(ステップS1901)。そして、ステップS1901で作成されたデータ構造4に沿ったデータは、例えばVNCプロトコルに準拠したデータに変換された後にクライアントG02に送信される(ステップS1902)。また、VNCシステムと同様に、前フレームバッファ404には、今回取得した画像データ(フレームバッファ401内の画像データ)が上書きされ(ステップS605)、ステップS606において、何らかの終了条件が成立している場合には動作を終了する一方、終了条件が存在しない場合にはステップS601に戻って上記の処理が繰り返し行われる。   After the above processing, the data conversion unit 1804 converts the data along the data structure 2 into a bitmap image, and creates data along the data structure 4 (step S1901). Then, the data along the data structure 4 created in step S1901 is transmitted to the client G02 after being converted into data conforming to the VNC protocol, for example (step S1902). Similarly to the VNC system, the previous frame buffer 404 is overwritten with the image data acquired this time (image data in the frame buffer 401) (step S605), and some termination condition is satisfied in step S606. On the other hand, if the end condition does not exist, the process returns to step S601 and the above processing is repeated.

次に、図15を参照しながら、図13に図示されているクライアントG02の動作の一例について説明する。図15は、本発明の第3の実施の形態におけるクライアントの動作の一例を示すフローチャートである。   Next, an example of the operation of the client G02 illustrated in FIG. 13 will be described with reference to FIG. FIG. 15 is a flowchart showing an example of the operation of the client according to the third embodiment of the present invention.

クライアントG02では、サーバG01から送信されるVNCプロトコルに沿ったデータを受信した場合、データ変換部1804が、このデータをデータ構造4に沿ったデータに変換する(ステップS2001)。さらに、データ変換部1804において、ビットマップ画像であるデータ構造4のデータは、データ構造5に沿ったデータに変換されて、描画作成部1806に渡される(ステップS2002)。なお、ここで描画作成部1806に渡されるデータ構造5のデータにはテーブルフラグ『0』がセットされる。   In the client G02, when data conforming to the VNC protocol transmitted from the server G01 is received, the data conversion unit 1804 converts this data into data conforming to the data structure 4 (step S2001). Further, the data conversion unit 1804 converts the data of the data structure 4 that is a bitmap image into data along the data structure 5 and passes it to the drawing creation unit 1806 (step S2002). Here, the table flag “0” is set in the data of the data structure 5 passed to the drawing creation unit 1806.

一方、描画作成部1806は、クライアントバッファ1805から読み出してデータ変換部1806から受け取ったデータ構造5のデータを一時的にキャッシュする(ステップS2003)。なお、ここで描画作成部1806に渡されるデータ構造5のデータにはテーブルフラグ『1』がセットされており、描画作成部1806はこのテーブルフラグ『1』を参照してキャッシュを行う。   On the other hand, the drawing creation unit 1806 temporarily caches the data of the data structure 5 read from the client buffer 1805 and received from the data conversion unit 1806 (step S2003). Here, the table flag “1” is set in the data of the data structure 5 passed to the drawing creation unit 1806, and the drawing creation unit 1806 performs caching by referring to the table flag “1”.

そして、描画作成部1806において、データ構造5に沿ったデータに含まれているビットマップ画像データ、あるいはキャッシュに格納されているテーブル内のビットマップ画像データに基づいて、フレームバッファ408に書き込む描画データの作成処理が行われる(ステップS2004)。   The drawing creation unit 1806 writes drawing data to the frame buffer 408 based on the bitmap image data included in the data along the data structure 5 or the bitmap image data in the table stored in the cache. Is created (step S2004).

以下、図16を参照しながら、上記のステップS2004における描画作成処理の詳細について説明する。図16は、本発明の第3の実施の形態において、クライアントの描画作成部で行われる描画作成処理の一例を示すフローチャートである。   Hereinafter, the details of the drawing creation processing in step S2004 will be described with reference to FIG. FIG. 16 is a flowchart illustrating an example of a drawing creation process performed by the drawing creation unit of the client in the third embodiment of the present invention.

図16において、まず、クライアントG02の描画作成部1806は、通信部1805から供給されるテーブルフラグ『0』がセットされたデータ構造5に沿ったデータ内のビットマップ存在フラグの値をチェックする(ステップS2101)。   In FIG. 16, the drawing creation unit 1806 of the client G02 first checks the value of the bitmap presence flag in the data along the data structure 5 in which the table flag “0” supplied from the communication unit 1805 is set ( Step S2101).

ステップS2101でテーブルフラグ『0』がセットされたデータ構造5に沿ったデータ内のビットマップ存在フラグの値が『0』の場合には、描画作成部1806は、このデータ構造5に沿ったデータに含まれている固有値を取得して(ステップS2102)、キャッシュされているデータ構造5のデータ(ステップS2003でキャッシュされたデータ構造5のデータ)の中から、ステップ2102で取得した固有値と同一の固有値を有するデータを検索し、同一の固有値を有するデータに含まれるビットマップ画像データを取得する(ステップS2103)。なお、ステップS2103における検索の際に、クライアントバッファ1805からのデータ読み出し及びキャッシュ処理(ステップS2003に対応する処理)が行われてもよい。   If the value of the bitmap presence flag in the data along the data structure 5 in which the table flag “0” is set in step S2101 is “0”, the drawing creation unit 1806 displays the data along the data structure 5 Is acquired (step S2102), and is identical to the eigenvalue acquired in step 2102 from the cached data structure 5 data (data in the data structure 5 cached in step S2003). Data having a unique value is searched, and bitmap image data included in the data having the same unique value is acquired (step S2103). In the search in step S2103, data reading from the client buffer 1805 and cache processing (processing corresponding to step S2003) may be performed.

そして、描画作成部1806は、通信部1803から供給されたテーブルフラグ『0』がセットされたデータ構造5に沿ったデータのテーブルフラグ及びビットマップ存在フラグを削除するとともに、ステップS2103で取得したビットマップ画像データをセットして、データ構造1に沿ったデータを作成する(ステップS2104)。このデータ構造1に沿ったデータがフレームバッファ408に書き込まれる。   Then, the drawing creation unit 1806 deletes the data table flag and the bitmap presence flag along the data structure 5 in which the table flag “0” supplied from the communication unit 1803 is set, and the bit acquired in step S2103. Map image data is set, and data along the data structure 1 is created (step S2104). Data along the data structure 1 is written into the frame buffer 408.

一方、ステップS2101でテーブルフラグ『0』がセットされたデータ構造5に沿ったデータ内のビットマップ存在フラグの値が『1』の場合には、このテーブルフラグ『1』がセットされたデータ構造5に沿ったデータのテーブルフラグ及びビットマップ存在フラグを削除して、データ構造1に沿ったデータを作成する(ステップS2105)。また、さらに描画作成部1806は、通信部1803から供給されたデータ構造5に沿ったデータのテーブルフラグを削除して、データ構造2に沿ったデータを作成し、このデータをデータ構造4のデータとしてクライアントバッファ1805に書き込む(ステップS2106)。なお、上述のように、描画作成部1806から出力されたデータ構造2に沿ったデータは、データ変換部1804における第3のデータ変換処理を経てデータ構造4のデータに変換され、クライアントバッファ1805に書き込まれる。   On the other hand, if the value of the bitmap presence flag in the data along the data structure 5 in which the table flag “0” is set in step S2101 is “1”, the data structure in which the table flag “1” is set. The data table flag and the bitmap presence flag along the line 5 are deleted, and the data along the data structure 1 is created (step S2105). Further, the drawing creation unit 1806 deletes the table flag of the data along the data structure 5 supplied from the communication unit 1803, creates data along the data structure 2, and uses this data as the data of the data structure 4. Is written in the client buffer 1805 (step S2106). As described above, the data along the data structure 2 output from the drawing creation unit 1806 is converted into data of the data structure 4 through the third data conversion processing in the data conversion unit 1804 and stored in the client buffer 1805. Written.

また、さらに描画作成部1806は、ステップS2003でデータ変換部1804から受けたデータ構造5に沿ったデータのテーブルフラグのフィールドを削除してデータ構造2のデータを作成し、このデータ構造2のデータをデータ変換部1804を介してクライアントバッファ1805に書き込む(ステップS2005)。なお、このとき、データ変換部1804では上述の第3のデータ変換処理が行われ、クライアントバッファ1805には、ビットマップ画像であるデータ構造4のデータとして書き込みが行われる。   Further, the drawing creation unit 1806 creates data of the data structure 2 by deleting the table flag field of the data along the data structure 5 received from the data conversion unit 1804 in step S2003. Is written into the client buffer 1805 via the data converter 1804 (step S2005). At this time, the data converter 1804 performs the third data conversion process described above, and the client buffer 1805 is written as data of the data structure 4 that is a bitmap image.

その後の処理は、本発明の第1の実施の形態(図4参照)と同様である。すなわち、描画作成部1806は、描画データ列に含まれる描画データを用いて、フレームバッファ408に画像データの描画を行い(ステップS702)、出力部409は、フレームバッファ408を順次読み出し、D/A変換などの所望の信号処理を行ってディスプレイ410への出力を行う(ステップS703)。また、ステップS704において、何らかの終了条件が成立している場合には動作を終了する一方、終了条件が存在しない場合にはステップS2001に戻って上記の処理が繰り返し行われる。   The subsequent processing is the same as in the first embodiment (see FIG. 4) of the present invention. That is, the drawing creation unit 1806 draws image data in the frame buffer 408 using the drawing data included in the drawing data string (step S702), and the output unit 409 sequentially reads the frame buffer 408, and the D / A Desired signal processing such as conversion is performed and output to the display 410 is performed (step S703). In step S704, if any end condition is satisfied, the operation is ended. If no end condition exists, the process returns to step S2001 and the above process is repeated.

以上、説明したように、本発明の第3の実施の形態では、リモートデスクトップシステムにおいて、各描画データから固有値(例えばハッシュ値)を算出して各描画データを固有値と関連付けてテーブルに登録し、このテーブルをサーバ及びクライアントで共有する。この際、クライアントがあらかじめ持っているメモリ(例えば、デジタルテレビにおけるデコーダのフレームバッファ)に格納できるような形式にサーバ側でデータ変換を行うことによって、クライアントがどのようなタイプのメモリを所有している場合でも、余分なメモリを付加することなくテーブルの保持を行うことができ、省資源化及び低コスト化を実現することが可能となる。   As described above, in the third embodiment of the present invention, in the remote desktop system, a unique value (for example, a hash value) is calculated from each drawing data, and each drawing data is associated with the unique value and registered in the table. This table is shared by the server and the client. At this time, by converting data on the server side into a format that can be stored in a memory that the client has in advance (for example, a decoder frame buffer in a digital television), what type of memory the client owns Even in such a case, the table can be held without adding an extra memory, and resource saving and cost reduction can be realized.

<第4の実施の形態>
次に、本発明の第4の実施の形態について説明する。図17は、本発明の第4の実施の形態におけるリモートデスクトップシステムの一構成例を示すブロック図である。図17に図示されているリモートデスクトップシステムは、サーバH01とクライアントH02とが任意のデータ伝送路を介して接続された構成を有している。
<Fourth embodiment>
Next, a fourth embodiment of the present invention will be described. FIG. 17 is a block diagram illustrating a configuration example of a remote desktop system according to the fourth embodiment of the present invention. The remote desktop system illustrated in FIG. 17 has a configuration in which a server H01 and a client H02 are connected via an arbitrary data transmission path.

以下、図17に図示されているサーバH01の構成について説明する。図17に図示されているサーバH01は、フレームバッファ401、フレーム取得部402、比較部403、前フレームバッファ404、固有値算出部801、比較決定部2201、データ作成部2202、更新待ちテーブル格納部2203、テーブル更新制御部2204、テーブル格納部2205、通信部2206を有している。   Hereinafter, the configuration of the server H01 illustrated in FIG. 17 will be described. A server H01 illustrated in FIG. 17 includes a frame buffer 401, a frame acquisition unit 402, a comparison unit 403, a previous frame buffer 404, an eigenvalue calculation unit 801, a comparison determination unit 2201, a data creation unit 2202, and an update waiting table storage unit 2203. A table update control unit 2204, a table storage unit 2205, and a communication unit 2206.

図17に図示されているサーバH01のフレームバッファ401、フレーム取得部402、比較部403、前フレームバッファ404、固有値算出部801には、図1に図示されているフレームバッファ401、フレーム取得部402、比較部403、前フレームバッファ404、固有値算出部801を利用することが可能である。すなわち、図17に図示されているサーバH01の固有値算出部801からは、データ構造1のデータ及び固有値が出力される。   The frame buffer 401, the frame acquisition unit 402, the comparison unit 403, the previous frame buffer 404, and the eigenvalue calculation unit 801 of the server H01 illustrated in FIG. 17 include the frame buffer 401 and the frame acquisition unit 402 illustrated in FIG. The comparison unit 403, the previous frame buffer 404, and the eigenvalue calculation unit 801 can be used. That is, the data and the unique value of the data structure 1 are output from the unique value calculation unit 801 of the server H01 illustrated in FIG.

図17に図示されているサーバH01の固有値算出部801から出力されるデータ構造1のデータ及び固有値は、比較決定部2201に供給される。比較決定部2201は、図1に図示されている比較決定部802とほぼ同一の機能を有しているが、出力するデータ構造の形式が異なっている。すなわち、比較決定部2201は、固有値算出部801から供給される描画データを含むデータ構造1のデータ及び固有値を受け取ると、テーブル格納部2205に格納されているテーブル(データ構造2のデータを格納)を使用して、下記のデータ構造6のデータを作成する。この比較決定部2201で作成されたデータ構造6に沿ったデータは、データ作成部2202及び通信部2206に出力される。   The data of the data structure 1 and the eigenvalue output from the eigenvalue calculation unit 801 of the server H01 illustrated in FIG. 17 are supplied to the comparison determination unit 2201. The comparison determination unit 2201 has substantially the same function as the comparison determination unit 802 shown in FIG. 1, but the format of the data structure to be output is different. That is, when the comparison determination unit 2201 receives the data of the data structure 1 including the drawing data supplied from the eigenvalue calculation unit 801 and the eigenvalue, the table stored in the table storage unit 2205 (stores the data of the data structure 2). Is used to create data of data structure 6 below. Data along the data structure 6 created by the comparison / determination unit 2201 is output to the data creation unit 2202 and the communication unit 2206.

(テーブル送信フラグ、更新時刻、ビットマップ存在フラグ、画面上のX座標、画面上のY座標、ビットマップ画像の横幅、ビットマップ画像の高さ、ビットマップ画像、固有値)・・・<データ構造6>   (Table transmission flag, update time, bitmap presence flag, X coordinate on the screen, Y coordinate on the screen, width of the bitmap image, height of the bitmap image, bitmap image, eigenvalue) ... <data structure 6>

データ構造6は、データ構造2のデータにテーブル送信フラグ及び更新時間のフィールドが付加された構造を有している。テーブル送信フラグのフィールドには、クライアントH02に対して、このデータが描画用のものであるかテーブル更新用のものであるかを示すためのフラグがセットされる。なお、比較決定部2201は、このテーブル送信フラグ内に、このデータが描画用のものであることを示すフラグ『0』をセットして、データ作成部2202及び通信部2206に出力する。また、更新時刻のフィールドには、このデータの処理時刻(例えば、比較決定部2201で処理された際の現在時刻)がセットされる。なお、更新時刻のフィールドには、処理されるデータの順序が把握できる情報(例えば、シーケンスナンバー)などがセットされてもよい。   The data structure 6 has a structure in which a table transmission flag and an update time field are added to the data of the data structure 2. In the table transmission flag field, a flag is set to indicate to the client H02 whether this data is for drawing or table updating. The comparison determination unit 2201 sets a flag “0” indicating that the data is for drawing in the table transmission flag, and outputs the flag to the data creation unit 2202 and the communication unit 2206. In the update time field, the processing time of this data (for example, the current time when processed by the comparison determining unit 2201) is set. In the update time field, information (for example, a sequence number) that can grasp the order of data to be processed may be set.

また、データ作成部2202は、比較決定部2201から供給されるデータ構造6に沿ったデータを受け取ると、このデータ構造6に沿ったデータに対応して更新待ちテーブル格納部2203に格納されている更新待ちテーブル(下記のデータ構造7のデータを格納)の更新処理又は追加登録処理を行う。   In addition, when the data creation unit 2202 receives the data along the data structure 6 supplied from the comparison determination unit 2201, the data creation unit 2202 stores the data along the data structure 6 in the update waiting table storage unit 2203. Update processing or additional registration processing of the update waiting table (stores data of the following data structure 7) is performed.

(更新時刻、テーブル存在フラグ、ビットマップ存在フラグ、画面上のX座標、画面上のY座標、ビットマップ画像の横幅、ビットマップ画像の高さ、ビットマップ画像、固有値)・・・<データ構造7>   (Update time, table presence flag, bitmap presence flag, X coordinate on the screen, Y coordinate on the screen, width of the bitmap image, height of the bitmap image, bitmap image, eigenvalue) ... <data structure 7>

データ構造7は、データ構造2のデータに更新時刻及びテーブル存在フラグのフィールドが付加された構造を有している。更新時刻のフィールドには、比較決定部2201から供給されたデータ構造6のデータに含まれている更新時刻がそのままセットされるか、あるいは、データ作成部2202における処理時刻(現在時刻)がセットされる。また、テーブル存在フラグのフィールドは、このデータに係るエントリが既にテーブル格納部2205内のテーブルに格納されているか否かを示すフラグである。例えば、データ作成部2202は、比較決定部2201から供給されたデータ構造6のデータに含まれているビットマップ存在フラグを参照して、ビットマップ存在フラグがビットマップ画像データの存在を示す『1』の場合には、テーブル格納部2205内のテーブルにおける非存在を示すテーブル存在フラグ『0』をセットし、ビットマップ存在フラグがビットマップ画像データの非存在を示す『0』の場合には、テーブル格納部2205内のテーブルにおける存在を示すテーブル存在フラグ『1』をセットする。   The data structure 7 has a structure in which update time and table presence flag fields are added to the data of the data structure 2. In the update time field, the update time included in the data of the data structure 6 supplied from the comparison determination unit 2201 is set as it is, or the processing time (current time) in the data creation unit 2202 is set. The The table presence flag field is a flag indicating whether or not an entry related to this data is already stored in the table in the table storage unit 2205. For example, the data creation unit 2202 refers to the bitmap presence flag included in the data of the data structure 6 supplied from the comparison determination unit 2201, and the bitmap presence flag indicates the presence of the bitmap image data “1”. ”Is set, a table presence flag“ 0 ”indicating non-existence in the table in the table storage unit 2205 is set, and when the bitmap presence flag is“ 0 ”indicating non-existence of bitmap image data, A table presence flag “1” indicating the presence in the table in the table storage unit 2205 is set.

また、更新待ちテーブル格納部2203には、データ構造7のデータを追加記録するために用意されているテーブル(更新待ちテーブル)が格納されている。なお、上述のように、更新待ちテーブル格納部2203内の更新待ちテーブルは、データ作成部2202によって更新又は追加登録され、また、テーブル更新制御部2204によって読み出される。なお、更新待ちテーブル格納部2203が格納可能な更新待ちテーブルの最大容量は、テーブル格納部2205が格納可能なテーブルの最大容量よりも大きいことが望ましい。また、更新待ちテーブル格納部2203に格納されているテーブルは、上述のようにデータ構造7のデータを保持することができるものであれば任意の形式で実現可能である。   The update waiting table storage unit 2203 stores a table (update waiting table) prepared for additionally recording data of the data structure 7. As described above, the update waiting table in the update waiting table storage unit 2203 is updated or additionally registered by the data creation unit 2202, and is read by the table update control unit 2204. The maximum capacity of the update waiting table that can be stored in the update waiting table storage unit 2203 is desirably larger than the maximum capacity of the table that can be stored in the table storage unit 2205. The table stored in the update waiting table storage unit 2203 can be realized in any format as long as it can hold the data of the data structure 7 as described above.

また、テーブル更新制御部2204は、例えば、所定の更新時間ごとや更新待ちテーブル格納部2203における所定容量以上のデータ格納などのタイミングで、更新待ちテーブル格納部2203内の更新待ちテーブルに基づいて、テーブル格納部2205内のテーブルを更新するためのデータ(データ構造2のデータ)の作成を行うとともに、通信部2206を介してクライアントH02に送信するデータ(テーブル更新用のものであることを示すテーブル送信フラグ『1』がセットされたデータ構造6のデータ)の作成を行う。なお、テーブル更新制御部2204におけるテーブル更新処理に関しては後で詳細に説明する。   In addition, the table update control unit 2204 is based on the update waiting table in the update waiting table storage unit 2203 at a predetermined update time or at a timing such as data storage exceeding the predetermined capacity in the update waiting table storage unit 2203, for example. Data for updating the table in the table storage unit 2205 (data of data structure 2) is created, and data to be transmitted to the client H02 via the communication unit 2206 (a table indicating that the table is for table update) Data of data structure 6 in which transmission flag “1” is set is created. The table update processing in the table update control unit 2204 will be described in detail later.

また、テーブル格納部2205には、データ構造2のデータを追加記録するために用意されているテーブルが格納されている。このテーブル格納部2205内のテーブルは、テーブル更新制御部2204によって更新され、比較決定部2201によって参照される。なお、テーブル格納部2205に格納されているテーブルは、上述のようにデータ構造2のデータを保持することができるものであれば任意の形式で実現可能である。   The table storage unit 2205 stores a table prepared for additionally recording data of the data structure 2. The table in the table storage unit 2205 is updated by the table update control unit 2204 and is referred to by the comparison determination unit 2201. Note that the table stored in the table storage unit 2205 can be realized in any format as long as it can hold data having the data structure 2 as described above.

また、通信部2206は、比較決定部2201又はテーブル更新制御部2204から供給されるデータ構造6に沿ったデータを、例えばVNCプロトコルに変換してクライアントH02に送信する。   Further, the communication unit 2206 converts the data along the data structure 6 supplied from the comparison determination unit 2201 or the table update control unit 2204 into, for example, the VNC protocol and transmits the data to the client H02.

次に、図17に図示されているクライアントH02の構成について説明する。図17に図示されているクライアントH02は、通信部2207、描画作成部2208、テーブル作成部2209、テーブル格納部2210、フレームバッファ408、出力部409、ディスプレイ(ビットマップディスプレイ)410を有している。   Next, the configuration of the client H02 illustrated in FIG. 17 will be described. A client H02 illustrated in FIG. 17 includes a communication unit 2207, a drawing creation unit 2208, a table creation unit 2209, a table storage unit 2210, a frame buffer 408, an output unit 409, and a display (bitmap display) 410. .

なお、図17に図示されているクライアントH02のフレームバッファ408、出力部409、ディスプレイ410には、従来の技術で説明した図26に図示されているVNCサーバD01のフレームバッファ408、出力部409、ディスプレイ410を利用することが可能である。   The frame buffer 408 and output unit 409 of the client H02 shown in FIG. 17 and the display 410 include the frame buffer 408 and output unit 409 of the VNC server D01 shown in FIG. A display 410 can be used.

通信部2207は、サーバH01から送信されるVNCプロトコルに沿ったデータを受信し、データ構造6に沿ったデータに変換するとともに、このデータ構造6のデータ内のテーブル送信フラグを参照して、テーブル送信フラグが『0』の場合にはデータを描画作成部2208に出力し、テーブル送信フラグが『1』の場合にはデータをテーブル作成部2209に出力する。   The communication unit 2207 receives data conforming to the VNC protocol transmitted from the server H01, converts the data into data conforming to the data structure 6, and refers to the table transmission flag in the data of the data structure 6 to When the transmission flag is “0”, the data is output to the drawing creation unit 2208, and when the table transmission flag is “1”, the data is output to the table creation unit 2209.

また、描画作成部2208は、図1に図示されている描画作成部806と同様に、通信部2207から供給されるデータ構造6に沿ったデータを受け取ると、このデータ内に含まれている画像データ、又はテーブル格納部2210に格納されているテーブルに保持されているデータ構造6に沿ったデータを使用して画像データを作成し、作成した画像データをフレームバッファ408に書き込む。さらに、描画作成部2208は、ビットマップ画像データの非存在を示すビットマップ存在フラグが『0』にセットされているデータ構造6のデータを受けた場合には、このデータに対応したテーブル格納部2210内のテーブルのデータ(互いの固有値が同一のデータ)の更新時刻を、通信部2207から受信したデータ構造6のデータに含まれている更新時刻に置き換えることが望ましい。   When the drawing creation unit 2208 receives data along the data structure 6 supplied from the communication unit 2207, as in the drawing creation unit 806 illustrated in FIG. 1, the image included in this data is displayed. Image data is created using the data or data along the data structure 6 held in the table stored in the table storage unit 2210, and the created image data is written into the frame buffer 408. Further, when the drawing creation unit 2208 receives data of the data structure 6 in which the bitmap presence flag indicating the absence of bitmap image data is set to “0”, the table storage unit corresponding to this data It is desirable to replace the update time of the data in the table in 2210 (data having the same eigenvalues) with the update time included in the data of the data structure 6 received from the communication unit 2207.

また、テーブル作成部2209は、通信部2207から供給されるデータ構造6に沿ったデータを受け取ると、テーブル格納部2210に格納されているテーブルへの追加登録処理を行う。また、さらにテーブル作成部2209は、例えば一致時間ごとにテーブル格納部2210内のテーブルの容量(総データ量)を監視し、テーブルが所定容量以下となるように更新処理を行う。また、テーブル作成部2209は、通信部2207を通じてサーバH01に対して、テーブル格納部2210内で格納可能なテーブルの最大容量(あるいは上記の所定容量)を通知する。   When the table creation unit 2209 receives data along the data structure 6 supplied from the communication unit 2207, the table creation unit 2209 performs additional registration processing on the table stored in the table storage unit 2210. Further, the table creation unit 2209 monitors the capacity (total data amount) of the table in the table storage unit 2210 for each coincidence time, for example, and performs update processing so that the table becomes a predetermined capacity or less. Further, the table creation unit 2209 notifies the server H01 through the communication unit 2207 of the maximum capacity of the table that can be stored in the table storage unit 2210 (or the predetermined capacity described above).

また、テーブル格納部2210には、データ構造6のデータを追加記録するために用意されているテーブルが格納されている。このテーブル格納部2210内のテーブルは、描画作成部2208又はテーブル作成部2209によって更新され、描画作成部2208によって参照される。なお、本発明の第4の実施の形態における動作によって、クライアントH02のテーブル格納部2210内のテーブルは、サーバH01のテーブル格納部2205内のテーブルと同期している。また、テーブル格納部2205に格納されているテーブルは、上述のようにデータ構造6のデータを保持することができるものであれば任意の形式で実現可能である。   The table storage unit 2210 stores a table prepared for additionally recording data of the data structure 6. The table in the table storage unit 2210 is updated by the drawing creation unit 2208 or the table creation unit 2209 and is referenced by the drawing creation unit 2208. Note that the table in the table storage unit 2210 of the client H02 is synchronized with the table in the table storage unit 2205 of the server H01 by the operation in the fourth embodiment of the present invention. The table stored in the table storage unit 2205 can be realized in any format as long as it can hold data having the data structure 6 as described above.

次に、図18を参照しながら、図17に図示されているサーバH01の動作の一例について説明する。図18は、本発明の第4の実施の形態におけるサーバの動作の一例を示すフローチャートである。   Next, an example of the operation of the server H01 illustrated in FIG. 17 will be described with reference to FIG. FIG. 18 is a flowchart showing an example of the operation of the server in the fourth embodiment of the present invention.

サーバH01では、本発明の第1の実施の形態(図2参照)と同様に、フレーム取得部402がフレームバッファ401から画像データ(描画データ)を取得し(ステップS601)、画像データを構成する描画データ列の各描画データに関して、ハッシュ関数を用いてビットマップ画像の固有値を算出し(ステップS901)、前フレームバッファ404が空か否かを確認することによって、初回の画像データ取得動作か否かの判定が行われる(ステップS602)。 ステップS602で前フレームバッファ404が空ではない場合にはステップS2301に進み、ステップS602で前フレームバッファ404が空の場合にはステップS2302に進む。   In the server H01, as in the first embodiment of the present invention (see FIG. 2), the frame acquisition unit 402 acquires image data (drawing data) from the frame buffer 401 (step S601), and configures the image data. For each drawing data in the drawing data string, a unique value of the bitmap image is calculated using a hash function (step S901), and it is confirmed whether or not the first image data acquisition operation is performed by checking whether or not the previous frame buffer 404 is empty. Is determined (step S602). If the previous frame buffer 404 is not empty in step S602, the process proceeds to step S2301, and if the previous frame buffer 404 is empty in step S602, the process proceeds to step S2302.

ステップS2301では、ステップS901で算出された各ビットマップ画像の固有値とテーブル格納部2205に格納されているテーブル内の固有値とを比較し、その比較結果に基づいて、データ構造1に沿ったデータ及び固有値をデータ構造6に沿ったデータに変換する処理が行われる。なお、上述のように、データ構造6のデータのテーブル送信フラグには、描画用のデータであることを示す値『0』がセットされる。   In step S2301, the eigenvalue of each bitmap image calculated in step S901 is compared with the eigenvalue in the table stored in the table storage unit 2205, and based on the comparison result, data along the data structure 1 and A process of converting the eigenvalue into data along the data structure 6 is performed. As described above, the value “0” indicating the data for drawing is set in the table transmission flag of the data of the data structure 6.

なお、図面には反映されていないが、ステップS602で初回と判定された場合には、すべての描画データ及び固有値がサーバH01からクライアントH02に送信される必要があり、この場合には、テーブル送信フラグ『0』がセットされビットマップ画像データが含まれているデータ構造7のデータが作成される。   Although not reflected in the drawing, if it is determined in step S602 that it is the first time, all drawing data and eigenvalues need to be transmitted from the server H01 to the client H02. In this case, table transmission is performed. The flag “0” is set, and data of the data structure 7 including the bitmap image data is created.

また、ステップS2302では、作成されたデータ構造7のデータが更新待ちテーブル格納部2203内の更新待ちテーブルに追加登録される。   In step S2302, the data of the created data structure 7 is additionally registered in the update waiting table in the update waiting table storage unit 2203.

また、テーブル更新制御部2204は、常に更新待ちテーブル又は所定のタイマ(不図示)を監視しており、テーブル格納部2205内のテーブルの更新タイミングであるか否かの判断を行っている(ステップS2303)。ステップS2303でテーブルの更新タイミングであると判断された場合にはステップS2304に進み、ステップS2303でテーブルの更新タイミングではないと判断された場合にはステップS2306に進む。   Further, the table update control unit 2204 constantly monitors an update waiting table or a predetermined timer (not shown), and determines whether or not it is the update timing of the table in the table storage unit 2205 (step). S2303). If it is determined in step S2303 that the table update timing is reached, the process proceeds to step S2304. If it is determined in step S2303 that the table is not updated, the process proceeds to step S2306.

ステップS2303でテーブルの更新タイミングであると判断された場合には、テーブル更新制御部2204は、更新待ちテーブル格納部2203内の更新待ちテーブル及びテーブル格納部2205内のテーブルの作成処理を行う(ステップS2304)とともに、テーブル更新処理を行う(ステップS2305)。   If it is determined in step S2303 that the table update timing is reached, the table update control unit 2204 performs processing for creating an update waiting table in the update waiting table storage unit 2203 and a table in the table storage unit 2205 (step S2303). Along with S2304, table update processing is performed (step S2305).

以下、図19を参照しながら、上記のステップS2303〜S2305における処理の詳細について説明する。図19は、本発明の第4の実施の形態において、サーバのテーブル更新制御部で行われるテーブル作成処理及びテーブル更新処理の一例を示すフローチャートである。   Hereinafter, the details of the processing in steps S2303 to S2305 will be described with reference to FIG. FIG. 19 is a flowchart illustrating an example of the table creation process and the table update process performed by the table update control unit of the server according to the fourth embodiment of this invention.

図19において、まず、サーバH01のテーブル更新制御部2204は、タイマなどを用いて、前回テーブルを更新した時間からあらかじめ予め設定された所定時間TH1が経過しているかどうかを判断する(ステップS2501)。ステップS2501で所定時間TH1が経過していないと判断された場合には、テーブルの更新処理は終了となる。   In FIG. 19, first, the table update control unit 2204 of the server H01 uses a timer or the like to determine whether or not a predetermined time TH1 set in advance has elapsed since the previous table update time (step S2501). . If it is determined in step S2501 that the predetermined time TH1 has not elapsed, the table update process ends.

一方、ステップS2501で所定時間TH1が経過したと判断された場合には、ステップS2502に進み、更新待ちテーブルのデータ量(テーブル量)が所定の限界容量TH2を超えているか否かを判断する。なお、限界容量TH2は、クライアントH02から通知された値に基づいて設定されてもよく、初めから固定した値に設定されていてもよい。ステップS2502で更新待ちテーブルのデータ量がクライアントH02の限界容量TH2を超えていると判断された場合にはステップS2503に進み、更新待ちテーブルのデータ量がクライアントH02の限界容量TH2を超えていないと判断された場合には、ステップS2503、S2504の更新待ちテーブルの最適化処理をスキップしてステップS2505に進む。   On the other hand, if it is determined in step S2501 that the predetermined time TH1 has elapsed, the process proceeds to step S2502, and it is determined whether or not the data amount (table amount) in the update waiting table exceeds a predetermined limit capacity TH2. The limit capacity TH2 may be set based on a value notified from the client H02, or may be set to a fixed value from the beginning. If it is determined in step S2502 that the data amount of the update waiting table exceeds the limit capacity TH2 of the client H02, the process proceeds to step S2503, and the data amount of the update wait table does not exceed the limit capacity TH2 of the client H02. If it is determined, the process of optimizing the update waiting table in steps S2503 and S2504 is skipped, and the process proceeds to step S2505.

ステップS2502で更新待ちテーブルのデータ量がクライアントH02の限界容量TH2を超えていると判断された場合、テーブル更新制御部2204は、更新待ちテーブル内のデータを更新時刻の新しい順に並べ替え(ステップS2503)、並べ替えた更新待ちテーブルのデータ量が限界容量TH2以下になるまで、更新時刻の古い順にデータの削除を行う(ステップS2504)。   If it is determined in step S2502 that the amount of data in the update waiting table exceeds the limit capacity TH2 of the client H02, the table update control unit 2204 rearranges the data in the update wait table in order of update time (step S2503). ) Data is deleted in order of oldest update time until the amount of data in the rearranged update waiting table becomes equal to or less than the limit capacity TH2 (step S2504).

続いて、テーブル更新制御部2204は、更新待ちテーブル内のデータをコピーして、2つのコピーデータ(コピーデータ1及びコピーデータ2)を作成する(ステップ2505)。これら2つのコピーデータは、それぞれクライアントH02への送信用及びテーブル格納部2205に格納されているテーブルの更新用に用いられる。   Subsequently, the table update control unit 2204 creates two copy data (copy data 1 and copy data 2) by copying the data in the update waiting table (step 2505). These two pieces of copy data are used for transmission to the client H02 and for updating the table stored in the table storage unit 2205, respectively.

一方のコピーデータ1に関しては、テーブル更新制御部2204は、コピーデータ1(データ構造7に沿ったデータ)のテーブル存在フラグを削除するとともに、テーブル更新用のものであることを示す値『1』がセットされたテーブル送信フラグを付加して、データ構造6に沿ったデータを作成する(ステップS2506)。   For one copy data 1, the table update control unit 2204 deletes the table presence flag of the copy data 1 (data along the data structure 7), and a value “1” indicating that it is for table update. Is added to the table transmission flag, and data along the data structure 6 is created (step S2506).

また、他方のコピーデータ2に関しては、テーブル更新制御部2204は、コピーデータ2(データ構造7に沿ったデータ)のテーブル存在フラグ及び更新時刻を削除して、データ構造2に沿ったデータを作成する(ステップS2507)。   For the other copy data 2, the table update control unit 2204 deletes the table presence flag and update time of the copy data 2 (data along the data structure 7), and creates data along the data structure 2. (Step S2507).

更新待ちテーブル内のすべてのデータに関して上記の処理が完了した後、更新待ちテーブル内のすべてのデータのテーブル存在フラグが、テーブル格納部2205のテーブルにおける存在を示す値『1』にセットされるとともに、ステップS2507でデータ構造2に沿ったデータに変換されたコピーデータ2によって、テーブル格納部2205内のテーブルが更新される(ステップS2508)。   After the above processing is completed for all data in the update waiting table, the table presence flag of all data in the update waiting table is set to a value “1” indicating the presence in the table of the table storage unit 2205. The table in the table storage unit 2205 is updated with the copy data 2 converted into the data along the data structure 2 in step S2507 (step S2508).

そして、上述のようにステップS2301で作成されたデータ(テーブル送信フラグ『0』のデータ構造6に沿ったデータ)や、図19のステップS2506で作成されたデータ(テーブル送信フラグ『1』のデータ構造6に沿ったデータ)は、例えばVNCプロトコルに準拠したデータに変換された後にクライアントH02に送信される(ステップS2306)。また、VNCシステムと同様に、前フレームバッファ404には、今回取得した画像データ(フレームバッファ401内の画像データ)が上書きされ(ステップS605)、ステップS606において、何らかの終了条件が成立している場合には動作を終了する一方、終了条件が存在しない場合にはステップS601に戻って上記の処理が繰り返し行われる。   As described above, the data created in step S2301 (data along the data structure 6 of the table transmission flag “0”) and the data created in step S2506 in FIG. 19 (data of the table transmission flag “1”) The data along the structure 6) is converted into data conforming to the VNC protocol, for example, and then transmitted to the client H02 (step S2306). Similarly to the VNC system, the previous frame buffer 404 is overwritten with the image data acquired this time (image data in the frame buffer 401) (step S605), and some termination condition is satisfied in step S606. On the other hand, if the end condition does not exist, the process returns to step S601 and the above processing is repeated.

次に、図20を参照しながら、図17に図示されているクライアントH02の動作の一例について説明する。図20は、本発明の第4の実施の形態におけるクライアントの動作の一例を示すフローチャートである。   Next, an example of the operation of the client H02 illustrated in FIG. 17 will be described with reference to FIG. FIG. 20 is a flowchart showing an example of the operation of the client according to the fourth embodiment of the present invention.

クライアントH02では、まず、サーバH01から送信されるVNCプロトコルに沿ったデータを受信し、このデータをデータ構造6に沿ったデータに変換する(ステップS2401)。このデータ構造6のデータに含まれているテーブル送信フラグの値が描画用を示す値『0』の場合には、データは通信部2207から描画作成部2208に渡される。描画作成部2208では、データ構造6に沿ったデータに含まれているビットマップ画像データ、あるいはテーブル格納部2210に格納されているテーブル内のビットマップ画像データに基づいて、フレームバッファ408に書き込む描画データの作成処理が行われる(ステップS2402)。   First, the client H02 receives data conforming to the VNC protocol transmitted from the server H01, and converts this data into data conforming to the data structure 6 (step S2401). When the value of the table transmission flag included in the data of the data structure 6 is “0” indicating drawing, the data is transferred from the communication unit 2207 to the drawing creating unit 2208. In the drawing creation unit 2208, drawing to be written in the frame buffer 408 based on the bitmap image data included in the data along the data structure 6 or the bitmap image data in the table stored in the table storage unit 2210 Data creation processing is performed (step S2402).

なお、描画作成部2208における処理は、データ形式がデータ構造6に沿ったデータである点を除いて、基本的に上述の図5に示されている動作とほぼ同一である。ただし、描画作成部2208は、ビットマップ存在フラグが『0』にセットされているデータの処理を行った場合には、処理を行ったデータに含まれる更新時刻で、テーブル格納部2210に格納されているテーブル内の対応データの更新時刻を書き換えることが望ましい。   The processing in the drawing creation unit 2208 is basically the same as the operation shown in FIG. 5 described above except that the data format is data along the data structure 6. However, the drawing creation unit 2208 stores data in the table storage unit 2210 at the update time included in the processed data when processing the data in which the bitmap presence flag is set to “0”. It is desirable to rewrite the update time of the corresponding data in the table.

一方、サーバH01から受信したデータに含まれているテーブル送信フラグの値がテーブル更新用を示す値『1』の場合には、データは通信部2207からテーブル作成部2209に渡される。テーブル作成部2209では、通信部2207から供給されたデータ構造6のデータをテーブルに追加登録することによって、テーブル更新処理が行われる(ステップS2403)。   On the other hand, when the value of the table transmission flag included in the data received from the server H01 is “1” indicating that the table is to be updated, the data is transferred from the communication unit 2207 to the table creation unit 2209. The table creation unit 2209 performs a table update process by additionally registering data of the data structure 6 supplied from the communication unit 2207 in the table (step S2403).

以下、図21を参照しながら、上記のステップS2403におけるテーブル更新処理の詳細について説明する。図21は、本発明の第4の実施の形態において、クライアントのテーブル作成部で行われるテーブル更新処理の一例を示すフローチャートである。   Hereinafter, the details of the table update processing in step S2403 will be described with reference to FIG. FIG. 21 is a flowchart illustrating an example of a table update process performed by the client table creation unit in the fourth embodiment of the present invention.

クライアント側では、テーブル格納部2210のテーブルのデータ量が所定の限界容量TH2を基準にした容量に抑えられるように監視されている。テーブル作成部2209は、テーブル格納部2210内のテーブルの総データ量が所定の限界容量TH2より大きいか否かを判断する(ステップS2601)。なお、ステップS2601でテーブル格納部2210内のテーブルの総データ量が所定の限界容量TH2以下であると判断された場合には、ステップS2604に進む。   On the client side, monitoring is performed so that the data amount of the table in the table storage unit 2210 can be suppressed to a capacity based on a predetermined limit capacity TH2. The table creation unit 2209 determines whether or not the total data amount of the table in the table storage unit 2210 is larger than a predetermined limit capacity TH2 (step S2601). If it is determined in step S2601 that the total data amount of the table in the table storage unit 2210 is equal to or less than the predetermined limit capacity TH2, the process proceeds to step S2604.

一方、ステップS2601でテーブル格納部2210内のテーブルの総データ量が所定の限界容量TH2より大きいと判断された場合には、データ構造6に沿ったデータに含まれている更新時刻を使用して、テーブル内のデータを更新時刻の新しい順に並び替えられる(ステップS2602)。そして、テーブルの総データ量が限界容量TH2以下となるまで、更新時刻の古い順にデータの削除が行われる(ステップS2603)。   On the other hand, if it is determined in step S2601 that the total data amount of the table in the table storage unit 2210 is larger than the predetermined limit capacity TH2, the update time included in the data along the data structure 6 is used. The data in the table is rearranged in order of update time (step S2602). Then, data is deleted in order of oldest update time until the total data amount in the table becomes equal to or less than the limit capacity TH2 (step S2603).

そして、ステップS2603で総データ量が削減されたテーブル、あるいはステップS2601で総データ量が限界容量以下であると判断されたテーブルに、通信部2207から供給されたデータ構造6のデータが追加登録される(ステップS2604)。   Then, the data of the data structure 6 supplied from the communication unit 2207 is additionally registered in the table in which the total data amount is reduced in step S2603 or the table in which it is determined in step S2601 that the total data amount is equal to or less than the limit capacity. (Step S2604).

その後の処理は、本発明の第1の実施の形態(図4参照)と同様である。すなわち、描画作成部2208は、描画データ列に含まれる描画データを用いて、フレームバッファ408に画像データの描画を行い(ステップS702)、出力部409は、フレームバッファ408を順次読み出し、D/A変換などの所望の信号処理を行ってディスプレイ410への出力を行う(ステップS703)。また、ステップS704において、何らかの終了条件が成立している場合には動作を終了する一方、終了条件が存在しない場合にはステップS2401に戻って上記の処理が繰り返し行われる。   The subsequent processing is the same as in the first embodiment (see FIG. 4) of the present invention. That is, the drawing creation unit 2208 draws image data in the frame buffer 408 using the drawing data included in the drawing data string (step S702), and the output unit 409 sequentially reads the frame buffer 408, and D / A Desired signal processing such as conversion is performed and output to the display 410 is performed (step S703). In step S704, if any end condition is satisfied, the operation is terminated. If no end condition exists, the process returns to step S2401 to repeat the above processing.

なお、ここでは、1つのサーバH01に対して1つのクライアントH02のみが図示されているが、図22に図示されているように、1つのサーバH01に対して複数のクライアントH02(図22では5つのクライアントA〜Eを図示)が存在するように構成してもよい。このような構成の場合、従来のサーバは、すべてのクライアントに同一のテーブルに係るデータを送信していたので、クライアントによっては、テーブルのデータ量がメモリのデータ量を超えてしまい、テーブルを保持しきれない場合があった。しかしながら、本発明の第4の実施の形態によれば、サーバH01は、各クライアントH02に対して、各クライアントの限界容量TH2に応じたテーブルのデータを送信することが可能となる。   Here, only one client H02 is shown for one server H01, but as shown in FIG. 22, a plurality of clients H02 (5 in FIG. 22) are shown for one server H01. There may be one client A to E). In such a configuration, since the conventional server has transmitted data related to the same table to all clients, the data amount of the table exceeds the data amount of the memory depending on the client, and the table is retained. There was a case that I couldn't finish. However, according to the fourth embodiment of the present invention, the server H01 can transmit the data of the table corresponding to the limit capacity TH2 of each client to each client H02.

以上、説明したように、本発明の第4の実施の形態では、リモートデスクトップシステムにおいて、各描画データから固有値(例えばハッシュ値)を算出して各描画データを固有値と関連付けてテーブルに登録し、このテーブルをサーバ及びクライアントで共有する。この際、クライアントが持っているテーブルを格納するためのメモリの容量が小さい場合や、テーブルの格納に使用されるメモリリソースを制限する場合などにおいて、サーバ側でクライアントのテーブルの総データ量に基づくテーブル管理を行うことができるようになり、サーバからクライアントに転送される描画データ量が削減される。   As described above, in the fourth embodiment of the present invention, in the remote desktop system, a unique value (for example, a hash value) is calculated from each drawing data, and each drawing data is associated with the unique value and registered in the table. This table is shared by the server and the client. At this time, based on the total amount of data in the client table on the server side, such as when the memory capacity for storing the table held by the client is small or when the memory resource used to store the table is limited Table management can be performed, and the amount of drawing data transferred from the server to the client is reduced.

なお、本明細書では、本発明の第1〜第4の実施の形態に関して独立して説明を行ったが、これらの第1〜第4の実施の形態を任意に組み合わせて用いることも可能である。また、本発明を実現するサーバ及びクライアントとして、例えば汎用コンピュータを利用することも可能である。また、上述の説明では、サーバ及びクライアントが有する構成要素は機能ブロックによって模式的に図示されているが、これらの各構成要素は、ハードウェア又はソフトウェア(例えば、コンピュータによって実行可能なプログラム)によって実現することが可能である。例えば、上記した各装置の機能をプログラムによりコンピュータに実現させるようにしてもよい。また、このプログラムは、記録媒体から読み取られてコンピュータに取り込まれてもよいし、通信ネットワークを介して伝送されてコンピュータに取り込まれてもよい。   In the present specification, the first to fourth embodiments of the present invention have been described independently. However, it is also possible to use any combination of these first to fourth embodiments. is there. Further, for example, a general-purpose computer can be used as a server and a client that implement the present invention. In the above description, the constituent elements of the server and the client are schematically illustrated by functional blocks. However, each of these constituent elements is realized by hardware or software (for example, a program executable by a computer). Is possible. For example, the function of each device described above may be realized by a computer by a program. Further, this program may be read from a recording medium and taken into a computer, or may be transmitted via a communication network and taken into a computer.

本発明は、サーバとクライアントとの間において送受信する描画データ列のデータ量を大幅に削減でき、GUIの反応速度を向上させてユーザの利便性を向上するとともに、ユーザのストレスを軽減するという効果、クライアント側に復号化器を搭載させる必要がなく、クライアントの負荷を削減することができるという効果、異なる領域で同一の更新画像データが存在する場合であっても、新たにテーブルに追加することなく更新表示データを再現することができ、テーブル量を削減することができるという効果を有している。また、本発明は、サーバからクライアントに送信されるデータが全て可逆圧縮であるので、クライアント側で実現される画像データが一様になり、クライアント側で視覚的に安定した表示を実現できるという効果を有しており、キーボードなどの入力装置と、映像を表示することが可能なビットマップディスプレイなどの表示装置とを備えたクライアント装置から遠隔地にあるサーバ装置に対して、アプリケーションなどの操作指示を送信し、その結果として、サーバ装置からクライアント装置に送信される映像をクライアント装置で表示するリモートデスクトップシステムの技術に適用可能である。   The present invention can greatly reduce the data amount of a drawing data string transmitted and received between a server and a client, and improves the user's convenience by improving the response speed of the GUI, and reduces the user's stress. The effect is that it is not necessary to install a decoder on the client side and the load on the client can be reduced, and even when the same updated image data exists in different areas, it is newly added to the table Thus, the updated display data can be reproduced, and the table amount can be reduced. Further, according to the present invention, since all data transmitted from the server to the client is lossless compression, the image data realized on the client side is uniform, and a visually stable display can be realized on the client side. An operation instruction such as an application to a remote server device from a client device having an input device such as a keyboard and a display device such as a bitmap display capable of displaying video As a result, it can be applied to the technology of a remote desktop system in which a video transmitted from a server device to a client device is displayed on the client device.

本発明の第1の実施の形態におけるリモートデスクトップシステムの一構成例を示すブロック図である。It is a block diagram which shows one structural example of the remote desktop system in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるサーバの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the server in the 1st Embodiment of this invention. 本発明の第1の実施の形態において、サーバの比較決定部で行われる比較処理及び変換処理の一例を示すフローチャートである。5 is a flowchart illustrating an example of comparison processing and conversion processing performed by a comparison determination unit of a server in the first embodiment of the present invention. 本発明の第1の実施の形態におけるクライアントの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the client in the 1st Embodiment of this invention. 本発明の第1の実施の形態において、クライアントの描画作成部で行われる描画作成処理の一例を示すフローチャートである。6 is a flowchart illustrating an example of a drawing creation process performed by a drawing creation unit of a client in the first embodiment of the present invention. 本発明の第2の実施の形態におけるリモートデスクトップシステムの一構成例を示すブロック図である。It is a block diagram which shows the example of 1 structure of the remote desktop system in the 2nd Embodiment of this invention. 本発明の第2の実施の形態におけるサーバの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the server in the 2nd Embodiment of this invention. 本発明の第2の実施の形態において、サーバの比較決定部で行われる比較処理及び変換処理の一例を示すフローチャートである。In the 2nd Embodiment of this invention, it is a flowchart which shows an example of the comparison process and conversion process which are performed in the comparison determination part of a server. 本発明の第2の実施の形態において、サーバの差分決定部で行われる差分決定処理の一例を示すフローチャートである。It is a flowchart which shows an example of the difference determination process performed in the difference determination part of a server in the 2nd Embodiment of this invention. 本発明の第2の実施の形態におけるクライアントの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the client in the 2nd Embodiment of this invention. 本発明の第2の実施の形態において、クライアントの差分合成部で行われる差分合成処理の一例を示すフローチャートである。It is a flowchart which shows an example of the difference synthetic | combination process performed in the difference synthetic | combination part of a client in the 2nd Embodiment of this invention. 本発明の第2の実施の形態における差分合成の概要が図示されている。An outline of difference synthesis in the second embodiment of the present invention is shown. 本発明の第3の実施の形態におけるリモートデスクトップシステムの一構成例を示すブロック図である。It is a block diagram which shows the example of 1 structure of the remote desktop system in the 3rd Embodiment of this invention. 本発明の第3の実施の形態におけるサーバの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the server in the 3rd Embodiment of this invention. 本発明の第3の実施の形態におけるクライアントの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the client in the 3rd Embodiment of this invention. 本発明の第3の実施の形態において、クライアントの描画作成部で行われる描画作成処理の一例を示すフローチャートである。14 is a flowchart illustrating an example of a drawing creation process performed by a drawing creation unit of a client in the third embodiment of the present invention. 本発明の第4の実施の形態におけるリモートデスクトップシステムの一構成例を示すブロック図である。It is a block diagram which shows the example of 1 structure of the remote desktop system in the 4th Embodiment of this invention. 本発明の第4の実施の形態におけるサーバの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the server in the 4th Embodiment of this invention. 本発明の第4の実施の形態において、サーバのテーブル更新制御部で行われるテーブル作成処理及びテーブル更新処理の一例を示すフローチャートである。It is a flowchart which shows an example of the table creation process and table update process which are performed by the table update control part of a server in the 4th Embodiment of this invention. 本発明の第4の実施の形態におけるクライアントの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the client in the 4th Embodiment of this invention. 本発明の第4の実施の形態において、クライアントのテーブル作成部で行われるテーブル更新処理の一例を示すフローチャートである。It is a flowchart which shows an example of the table update process performed in the table preparation part of a client in the 4th Embodiment of this invention. 本発明の第4の実施の形態において、1つのサーバに複数のクライアントが接続する構成の一例を示す図である。In the 4th Embodiment of this invention, it is a figure which shows an example of a structure which a some client connects to one server. 従来の技術におけるTSSの一例を示すシステム構成図である。It is a system block diagram which shows an example of TSS in a prior art. 従来の技術におけるXウィンドウシステムの一例を示すシステム構成図である。It is a system block diagram which shows an example of the X window system in a prior art. 従来の技術におけるVNCの一例を示すシステム構成図である。It is a system block diagram which shows an example of VNC in a prior art. 従来の技術におけるVNCシステムの一構成例を示すブロック図である。It is a block diagram which shows the example of 1 structure of the VNC system in a prior art. 図26に示すVNCサーバの処理の一例を示すフローチャートである。It is a flowchart which shows an example of a process of the VNC server shown in FIG. 図26に示すVNCクライアントの処理の一例を示すフローチャートである。27 is a flowchart illustrating an example of processing of the VNC client illustrated in FIG. 26. 特許文献1に開示されているリモートデスクトップシステムの改良技術におけるサーバの処理の一例を示すフローチャートである。10 is a flowchart showing an example of server processing in the remote desktop system improvement technique disclosed in Patent Document 1; 図29のRKEY作成処理の詳細な処理を示すフローチャートである。It is a flowchart which shows the detailed process of the RKEY creation process of FIG. 特許文献1に開示されているリモートデスクトップシステムの改良技術におけるクライアントの処理の一例を示すフローチャートである。10 is a flowchart showing an example of client processing in the remote desktop system improvement technique disclosed in Patent Document 1. 従来の技術におけるウィザード形式のアプリケーションにおける表示例を示す図である。It is a figure which shows the example of a display in the wizard type application in a prior art.

符号の説明Explanation of symbols

101、301 アプリケーション
102 端末サーバ
103 端末装置
104 ディスプレイ
201 Xアプリケーション
202 Xサーバ
203 Xクライアント
204、305、410 ディスプレイ(ビットマップディスプレイ)
205 ポインティングデバイス
302、401、408 フレームバッファ
303 VNCサーバ
304 VNCクライアント
306 ポインティングデバイス
402 フレーム取得部
403 比較部
404 前フレームバッファ
405、406、803、805、1203、1205、1802、1803、2206、2207 通信部
407 描画部
409 出力部
801 固有値算出部
802、1201、2201 比較決定部
804、807、1204、1207、2205、2210 テーブル格納部
806、1208、1806、2208 描画作成部
1202 差分決定部
1206 差分合成部
1801、1804 データ変換部
1805 クライアントバッファ
2202 データ作成部
2203 更新待ちテーブル格納部
2204 テーブル更新制御部
2209 テーブル作成部
3101 開始ボタン
3102 終了ボタン
3103 差分ビットマップ画像
A01 TSSを提供する汎用コンピュータ
A02 シリアル伝送
A03 ユーザ
B01、E01、F01、G01、H01 サーバ
B02、C02 通信ネットワーク
B03、C03、E02、F02、G02、H02 クライアント
C01 汎用コンピュータ
D01 VNCサーバ
D02 VNCクライアント
101, 301 Application 102 Terminal server 103 Terminal device 104 Display 201 X application 202 X server 203 X client 204, 305, 410 Display (bitmap display)
205 Pointing device 302, 401, 408 Frame buffer 303 VNC server 304 VNC client 306 Pointing device 402 Frame acquisition unit 403 Comparison unit 404 Previous frame buffer 405, 406, 803, 805, 1203, 1205, 1802, 1803, 2206, 2207 communication Section 407 Drawing section 409 Output section 801 Eigenvalue calculation section 802, 1201, 2201 Comparison determination section 804, 807, 1204, 1207, 2205, 2210 Table storage section 806, 1208, 1806, 2208 Drawing creation section 1202 Difference determination section 1206 Difference composition Unit 1801, 1804 data conversion unit 1805 client buffer 2202 data creation unit 2203 update waiting table storage unit 2204 table Update control unit 2209 Table creation unit 3101 Start button 3102 End button 3103 Difference bitmap image A01 General-purpose computer providing TSS A02 Serial transmission A03 User B01, E01, F01, G01, H01 Server B02, C02 Communication network B03, C03, E02, F02, G02, H02 Client C01 General-purpose computer D01 VNC server D02 VNC client

Claims (8)

クライアント装置に対して、前記クライアント装置の表示手段に表示させる画像データを送信するリモートデスクトップシステムのサーバ装置であって、
前記画像データを特定するための固有値を少なくとも含むデータを保持するためのテーブルを格納するテーブル格納手段と、
前記画像データに対してハッシュ関数による演算を行うことによって得られるハッシュ値を、前記画像データを特定するための前記固有値として設定する固有値算出手段と、
前記テーブル内に保持されている前記データと、前記固有値算出手段で算出された前記固有値とを比較して、前記固有値算出手段で算出された前記固有値に一致する固有値が前記テーブル内に発見された場合には、前記画像データを特定する前記固有値を含むとともに前記画像データを含まない表示更新用データを作成する一方、前記固有値算出手段で算出された前記固有値に一致する固有値が前記テーブル内に発見されなかった場合には、前記画像データを特定する前記固有値及び前記画像データの両方を含む表示更新用データを作成する比較決定手段と、
前記表示更新用データを前記クライアント装置に送信するデータ送信手段と、
前記表示更新用データを前記テーブル内の前記データとして登録する追加登録手段とを、
有するサーバ装置。
A server device of a remote desktop system that transmits image data to be displayed on a display unit of the client device to a client device,
Table storage means for storing a table for holding data including at least a unique value for specifying the image data;
Eigenvalue calculation means for setting, as the eigenvalue for specifying the image data, a hash value obtained by performing an operation with a hash function on the image data;
The data held in the table is compared with the eigenvalue calculated by the eigenvalue calculating means, and an eigenvalue that matches the eigenvalue calculated by the eigenvalue calculating means is found in the table. In this case, display update data that includes the eigenvalue that specifies the image data and does not include the image data is created, while an eigenvalue that matches the eigenvalue calculated by the eigenvalue calculation unit is found in the table. If not, comparison determination means for creating display update data including both the eigenvalue specifying the image data and the image data;
Data transmission means for transmitting the display update data to the client device;
Additional registration means for registering the display update data as the data in the table;
Server device having.
クライアント装置に対して、前記クライアント装置の表示手段に表示させる画像データを送信するリモートデスクトップシステムのサーバ装置であって、
前記画像データを特定するための固有値を少なくとも含むデータを保持するためのテーブルを格納するテーブル格納手段と、
前記画像データに対してハッシュ関数による演算を行うことによって得られるハッシュ値を、前記画像データを特定するための前記固有値として設定する固有値算出手段と、
前記テーブル内に保持されている前記データと、前記固有値算出手段で算出された前記固有値とを比較して、前記固有値算出手段で算出された前記固有値に一致する固有値が前記テーブル内に発見された場合には、前記画像データを特定する前記固有値を含むとともに前記画像データを含まない表示更新用データを生成する一方、前記固有値算出手段で算出された前記固有値に一致する固有値が前記テーブル内に発見されなかった場合には、前記画像データを特定する前記固有値及び前記画像データの両方を含む中間データを生成する比較決定手段と、
前記テーブル内に保持されている前記データと前記中間データに含まれる前記画像データとを比較して、前記中間データに含まれる前記画像データと横幅及び高さの一致する画像データが前記テーブルに発見された場合には、前記中間データに含まれる前記画像データと前記テーブル内で発見された前記画像データとを比較してこれらの差分画像データ及び前記差分画像データの配置位置を取得し、前記中間データに関して、前記画像データを削除するとともに前記差分画像データ及び前記差分画像データの配置位置と前記テーブル内で発見された前記画像データの前記固有値とを挿入して表示更新用データを作成する一方、前記中間データに含まれる前記画像データと横幅及び高さの一致する画像データが前記テーブルに発見されなかった場合には、前記中間データから前記表示更新用データを作成する差分決定手段と、
前記表示更新用データを前記クライアント装置に送信するデータ送信手段と、
前記表示更新用データを前記テーブル内の前記データとして登録する追加登録手段とを、
有するサーバ装置。
A server device of a remote desktop system that transmits image data to be displayed on a display unit of the client device to a client device,
Table storage means for storing a table for holding data including at least a unique value for specifying the image data;
Eigenvalue calculation means for setting, as the eigenvalue for specifying the image data, a hash value obtained by performing an operation with a hash function on the image data;
The data held in the table is compared with the eigenvalue calculated by the eigenvalue calculating means, and an eigenvalue that matches the eigenvalue calculated by the eigenvalue calculating means is found in the table. In this case, display update data that includes the eigenvalue specifying the image data and does not include the image data is generated, while an eigenvalue that matches the eigenvalue calculated by the eigenvalue calculation unit is found in the table. If not, comparison determination means for generating intermediate data including both the eigenvalues specifying the image data and the image data;
The data stored in the table is compared with the image data included in the intermediate data, and image data whose horizontal width and height match the image data included in the intermediate data is found in the table. If the image data included in the intermediate data is compared with the image data found in the table, the difference image data and the arrangement position of the difference image data are obtained, and the intermediate data is acquired. Regarding data, while deleting the image data and creating the display update data by inserting the difference image data and the arrangement position of the difference image data and the eigenvalue of the image data found in the table, No image data having the same width and height as the image data included in the intermediate data was found in the table. Expediently, a difference determining means for generating data for the display update from the intermediate data,
Data transmission means for transmitting the display update data to the client device;
Additional registration means for registering the display update data as the data in the table;
Server device having.
クライアント装置に対して、前記クライアント装置の表示手段に表示させる画像データを送信するリモートデスクトップシステムのサーバ装置であって、
前記クライアント装置から、前記クライアント装置のテーブルの上限データ量の値を受信する閾値受信手段と、
前記画像データを特定するための固有値を少なくとも含むデータを保持するための第1テーブルを格納する第1テーブル格納手段と、
前記第1テーブル内に保持されているデータの中から選択されたデータを保持するための第2テーブルを格納する第2テーブル格納手段と、
前記画像データに対してハッシュ関数による演算を行うことによって得られるハッシュ値を、前記画像データを特定するための前記固有値として設定する固有値算出手段と、
前記第2テーブル内に保持されている前記データと、前記固有値算出手段で算出された前記固有値とを比較して、前記固有値算出手段で算出された前記固有値に一致する固有値が前記第2テーブル内に発見された場合には、前記画像データを特定する前記固有値を含むとともに前記画像データを含まない表示更新用データを作成する一方、前記固有値算出手段で算出された前記固有値に一致する固有値が前記第2テーブル内に発見されなかった場合には、前記画像データを特定する前記固有値及び前記画像データの両方を含む表示更新用データを作成する比較決定手段と、
前記表示更新用データを前記クライアント装置に送信する表示更新用データ送信手段と、
前記表示更新用データをその格納順を示す情報と共に前記第1テーブル内の前記データとして登録する追加登録手段とを、
前記第1テーブルのデータのうちの前記格納順が新しいデータを、前記第2テーブルのデータ量が前記上限データ量を基準としたデータ量を超えないように前記第2のテーブルに格納するとともに、前記第2のテーブルに前記データを格納すると同時に前記第2のテーブルに格納した前記データを前記クライアント装置のテーブルの更新用のテーブル更新用データとして前記クライアント装置に送信するテーブル更新制御手段とを、
有するサーバ装置。
A server device of a remote desktop system that transmits image data to be displayed on a display unit of the client device to a client device,
Threshold receiving means for receiving a value of the upper limit data amount of the table of the client device from the client device;
First table storage means for storing a first table for holding data including at least an eigenvalue for specifying the image data;
Second table storage means for storing a second table for holding data selected from the data held in the first table;
Eigenvalue calculation means for setting, as the eigenvalue for specifying the image data, a hash value obtained by performing an operation with a hash function on the image data;
The data held in the second table is compared with the eigenvalue calculated by the eigenvalue calculating means, and an eigenvalue that matches the eigenvalue calculated by the eigenvalue calculating means is found in the second table. The display update data that includes the eigenvalue that specifies the image data and does not include the image data, while the eigenvalue that matches the eigenvalue calculated by the eigenvalue calculation means is If not found in the second table, the comparison determination means for creating display update data including both the eigenvalue specifying the image data and the image data;
Display update data transmission means for transmitting the display update data to the client device;
Additional registration means for registering the display update data as the data in the first table together with information indicating the storage order;
Storing the new data in the first table in the second table so that the data amount of the second table does not exceed the data amount based on the upper limit data amount; Table update control means for transmitting the data stored in the second table to the client device as table update data for updating the table of the client device simultaneously with storing the data in the second table;
Server device having.
前記データ送信手段によって送信する前記クライアント装置のテーブルに格納させるデータを、その送信前に、前記クライアント装置側でテーブルを格納するために使用するメモリのタイプに合わせて変換するデータ変換手段を有する請求項1から3のいずれか1つに記載のサーバ装置。   Claims: Data conversion means for converting data to be stored in the table of the client device transmitted by the data transmission means in accordance with the type of memory used for storing the table on the client device side before the transmission. Item 4. The server device according to any one of Items 1 to 3. サーバ装置から受信する画像データに基づいて画像表示を行うリモートデスクトップシステムのクライアント装置であって、
画像表示を行う表示手段と、
前記画像データに対してハッシュ関数による演算を行うことによって得られるハッシュ値を前記画像データの固有値とし、前記画像データを特定するための前記固有値を少なくとも含むデータを保持するためのテーブルを格納するテーブル格納手段と、
前記サーバ装置から、前記表示手段における表示を更新するための表示更新用データを受信するデータ受信手段と、
前記データ受信手段で受信した前記表示更新用データに前記画像データを特定するための固有値及び前記画像データの両方が含まれている場合には、前記画像データに基づいて前記表示手段に表示する画像を作成する一方、前記データ受信手段で受信した前記表示更新用データに前記画像データを特定する前記固有値のみが含まれており前記画像データが含まれていない場合には、前記テーブル内に保持されているデータと、前記表示更新用データに含まれている前記固有値とを比較して、前記テーブル内に前記固有値と共に保持されている画像データに基づいて前記表示手段に表示する画像を作成する描画作成手段と、
前記描画作成手段で作成された前記画像を前記表示手段に出力する出力手段と、
前記データ受信手段で受信した前記表示更新用データを前記テーブル内の前記データとして登録する追加登録手段とを、
有するクライアント装置。
A client device of a remote desktop system that displays an image based on image data received from a server device,
Display means for displaying images;
A table for storing a table for holding data including at least the eigenvalue for specifying the image data, with a hash value obtained by performing an operation using a hash function on the image data as the eigenvalue of the image data Storage means;
Data receiving means for receiving display update data for updating the display on the display means from the server device;
When the display update data received by the data receiving means includes both the eigenvalue for specifying the image data and the image data, an image to be displayed on the display means based on the image data On the other hand, when the display update data received by the data receiving means includes only the eigenvalue specifying the image data and does not include the image data, the display update data is stored in the table. A drawing for creating an image to be displayed on the display means based on image data held together with the eigenvalue in the table by comparing the existing data and the eigenvalue included in the display update data Creating means;
Output means for outputting the image created by the drawing creation means to the display means;
Additional registration means for registering the display update data received by the data receiving means as the data in the table;
Client device having.
サーバ装置から受信する画像データに基づいて画像表示を行うリモートデスクトップシステムのクライアント装置であって、
画像表示を行う表示手段と、
前記画像データに対してハッシュ関数による演算を行うことによって得られるハッシュ値を前記画像データの固有値とし、前記画像データを特定するための前記固有値を少なくとも含むデータを保持するためのテーブルを格納するテーブル格納手段と、
前記サーバ装置から、前記表示手段における表示を更新するための表示更新用データを受信するデータ受信手段と、
前記データ受信手段で受信した前記表示更新用データに差分画像データ及び前記差分画像データの配置位置と差分の比較対象となる画像データの固有値と差分合成によって作成される元画像データの固有値とが含まれている場合には、前記テーブル内に保持されているデータと、前記差分の比較対象となる前記画像データの前記固有値とを比較して、前記テーブル内から前記固有値と共に保持されている前記差分の比較対象となる前記画像データを読み出し、読み出された前記画像データの前記配置位置に前記差分画像データを合成して合成画像データを作成し、前記表示更新用データに関して、前記差分画像データ及び前記差分画像データの配置位置と前記テーブル内で発見された前記画像データの前記固有値とを削除するとともに前記合成画像データを挿入して中間データを作成する差分合成手段と、
前記データ受信手段で受信した前記表示更新用データに前記画像データを特定する前記固有値及び前記画像データの両方が含まれている場合には、前記画像データに基づいて前記表示手段に表示する画像を作成し、前記データ受信手段で受信した前記表示更新用データに前記画像データを特定する前記固有値のみが含まれており前記画像データが含まれていない場合には、前記テーブル内に保持されているデータと、前記表示更新用データに含まれている前記固有値とを比較して、前記テーブル内に固有値と共に保持されている画像データに基づいて前記表示手段に表示する画像を作成し、前記差分合成手段で作成された前記表示更新用データに関しては、前記合成画像データに基づいて前記表示手段に表示する画像を作成する描画作成手段と、
前記描画作成手段で作成された前記画像を前記表示手段に出力する出力手段と、
前記描画作成手段で前記画像の作成の際に参照される前記表示更新用データを前記テーブル内の前記データとして登録する追加登録手段とを、
有するクライアント装置。
A client device of a remote desktop system that displays an image based on image data received from a server device,
Display means for displaying images;
A table for storing a table for holding data including at least the eigenvalue for specifying the image data, with a hash value obtained by performing an operation using a hash function on the image data as the eigenvalue of the image data Storage means;
Data receiving means for receiving display update data for updating the display on the display means from the server device;
The display update data received by the data receiving unit includes the differential image data, the arrangement position of the differential image data, the unique value of the image data to be compared, and the unique value of the original image data created by the difference synthesis. The difference stored in the table together with the eigenvalue from the table by comparing the data held in the table with the eigenvalue of the image data to be compared with the difference. The image data to be compared is read out, the difference image data is synthesized with the arrangement position of the read image data to create composite image data, and the difference image data and the display update data are The arrangement position of the difference image data and the eigenvalue of the image data found in the table are deleted and the combination is deleted. A difference synthesizing means for creating intermediate data by inserting the image data,
When the display update data received by the data receiving means includes both the eigenvalue and the image data for specifying the image data, an image to be displayed on the display means based on the image data is displayed. When the display update data created and received by the data receiving means includes only the eigenvalues specifying the image data and does not include the image data, the display update data is stored in the table. Compare the data and the eigenvalue included in the display update data, create an image to be displayed on the display means based on the image data held together with the eigenvalue in the table, and perform the difference synthesis With respect to the display update data created by the means, a drawing creation means for creating an image to be displayed on the display means based on the composite image data ,
Output means for outputting the image created by the drawing creation means to the display means;
Additional registration means for registering the display update data referred to when the image is created by the drawing creation means as the data in the table;
Client device having.
サーバ装置から受信する画像データに基づいて画像表示を行うリモートデスクトップシステムのクライアント装置であって、
画像表示を行う表示手段と、
前記画像データに対してハッシュ関数による演算を行うことによって得られるハッシュ値を前記画像データの固有値とし、前記画像データを特定するための前記固有値を少なくとも含むデータを保持するためのテーブルを格納するテーブル格納手段と、
前記サーバ装置に対して、前記テーブル格納手段に格納される前記テーブルの上限データ量の値を送信する閾値送信手段と、
前記サーバ装置から、前記表示手段における表示を更新するための描画用の表示更新用データと、前記テーブル格納手段に格納されている前記テーブルの更新用のテーブル更新用データとを受信するデータ受信手段と、
前記データ受信手段で受信した前記表示更新用データに前記画像データを特定するための固有値及び前記画像データの両方が含まれている場合には、前記画像データに基づいて前記表示手段に表示する画像を作成する一方、前記データ受信手段で受信した前記表示更新用データに前記画像データを特定する前記固有値のみが含まれており前記画像データが含まれていない場合には、前記テーブル内に保持されているデータと、前記表示更新用データに含まれている前記固有値とを比較して、前記テーブル内に前記固有値と共に保持されている画像データに基づいて前記表示手段に表示する画像を作成する描画作成手段と、
前記描画作成手段で作成された前記画像を前記表示手段に出力する出力手段と、
前記データ受信手段で受信した前記画像データを特定するための固有値及び前記画像データの両方が含まれている前記テーブル更新用データを前記テーブル内の前記データとして登録する追加登録手段とを、
有するクライアント装置。
A client device of a remote desktop system that displays an image based on image data received from a server device,
Display means for displaying images;
A table for storing a table for holding data including at least the eigenvalue for specifying the image data, with a hash value obtained by performing an operation using a hash function on the image data as the eigenvalue of the image data Storage means;
Threshold transmission means for transmitting the value of the upper limit data amount of the table stored in the table storage means to the server device;
Data receiving means for receiving display update data for drawing for updating the display on the display means and table update data for updating the table stored in the table storage means from the server device When,
When the display update data received by the data receiving means includes both the eigenvalue for specifying the image data and the image data, an image to be displayed on the display means based on the image data On the other hand, when the display update data received by the data receiving means includes only the eigenvalue specifying the image data and does not include the image data, the display update data is stored in the table. A drawing for creating an image to be displayed on the display means based on image data held together with the eigenvalue in the table by comparing the existing data and the eigenvalue included in the display update data Creating means;
Output means for outputting the image created by the drawing creation means to the display means;
An additional registration means for registering the table update data including both the eigenvalue for specifying the image data received by the data reception means and the image data as the data in the table;
Client device having.
前記テーブル格納手段に前記データを格納する際には、前記テーブル格納手段として使用するメモリのタイプに合わせて変換し、前記テーブル格納手段から前記データを読み出す際には、前記描画作成手段で前記画像の作成の際に参照可能なデータ構造に変換するデータ変換手段を有する請求項5から7のいずれか1つに記載のクライアント装置。
When storing the data in the table storage means, the data is converted in accordance with the type of memory used as the table storage means, and when the data is read from the table storage means, the drawing creation means The client apparatus according to claim 5, further comprising a data conversion unit configured to convert the data structure into a data structure that can be referred to when the data is created.
JP2006048532A 2006-02-24 2006-02-24 Server device and client device of remote desktop system Pending JP2007226635A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006048532A JP2007226635A (en) 2006-02-24 2006-02-24 Server device and client device of remote desktop system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006048532A JP2007226635A (en) 2006-02-24 2006-02-24 Server device and client device of remote desktop system

Publications (1)

Publication Number Publication Date
JP2007226635A true JP2007226635A (en) 2007-09-06

Family

ID=38548386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006048532A Pending JP2007226635A (en) 2006-02-24 2006-02-24 Server device and client device of remote desktop system

Country Status (1)

Country Link
JP (1) JP2007226635A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009102011A1 (en) * 2008-02-14 2009-08-20 Nec Corporation Update region detection device
WO2010055792A1 (en) * 2008-11-14 2010-05-20 株式会社東芝 Communication device, communication method, and communication program
JP2010171776A (en) * 2009-01-23 2010-08-05 Mitsubishi Electric Corp Operation terminal, and method for displaying image of the same
WO2013111272A1 (en) 2012-01-24 2013-08-01 三菱電機株式会社 Equipment management device, equipment management method, program and equipment management system
JP5739079B1 (en) * 2014-03-04 2015-06-24 エヌ・ティ・ティレゾナント・テクノロジー株式会社 Movie compression apparatus and movie compression / decompression system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297606A (en) * 2001-01-26 2002-10-11 Hitachi Ltd Method and system for access to database enabling concealment of inquiry contents
JP2003345708A (en) * 2002-05-23 2003-12-05 Toshiba Corp Device, method and program for transferring data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297606A (en) * 2001-01-26 2002-10-11 Hitachi Ltd Method and system for access to database enabling concealment of inquiry contents
JP2003345708A (en) * 2002-05-23 2003-12-05 Toshiba Corp Device, method and program for transferring data

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009102011A1 (en) * 2008-02-14 2009-08-20 Nec Corporation Update region detection device
US8331696B2 (en) 2008-02-14 2012-12-11 Nec Corporation Update region detection device
JP5446878B2 (en) * 2008-02-14 2014-03-19 日本電気株式会社 Update area detector
WO2010055792A1 (en) * 2008-11-14 2010-05-20 株式会社東芝 Communication device, communication method, and communication program
JP2010118976A (en) * 2008-11-14 2010-05-27 Toshiba Corp Communication device, communication method, and communication program
JP2010171776A (en) * 2009-01-23 2010-08-05 Mitsubishi Electric Corp Operation terminal, and method for displaying image of the same
WO2013111272A1 (en) 2012-01-24 2013-08-01 三菱電機株式会社 Equipment management device, equipment management method, program and equipment management system
JP5739079B1 (en) * 2014-03-04 2015-06-24 エヌ・ティ・ティレゾナント・テクノロジー株式会社 Movie compression apparatus and movie compression / decompression system
WO2015132885A1 (en) * 2014-03-04 2015-09-11 エヌ・ティ・ティレゾナント・テクノロジー株式会社 Moving image compression apparatus and moving image compression/decompression system

Similar Documents

Publication Publication Date Title
JP2007241736A (en) Server device and client device for remote desktop system
US11582284B2 (en) Optimization of publication of an application to a web browser
US9369721B2 (en) Data compression of images using a shared dictionary
KR101159396B1 (en) Efficient encoding of alternative graphic sets
KR20040104515A (en) Method and apparatus for generating graphical and media displays at a client
CN101589384A (en) Be used to measure the system and method for SVG document similarity
JP2005269618A (en) Data compression
CN106453572B (en) Method and system based on Cloud Server synchronous images
JP2007226635A (en) Server device and client device of remote desktop system
US10534852B2 (en) Display system and virtual web device in the cloud
CN111935663B (en) Sensor data stream processing method, device, medium and electronic equipment
JP2016224766A (en) Remote screen display system, remote screen display method, and remote screen display program
Chong et al. Grid-based computer animation rendering
WO2016016607A1 (en) Managing display data for display
EP1676385B1 (en) Protocol for remote visual composition
CN102081606A (en) Method and device for universal combined inquiry
CN102387123B (en) Remote desktop system and method for optimizing X protocol
WO2009081527A1 (en) Information processor, virtual calculator configuration method, and computer-readable recording medium containing program
Sharma et al. Visualization of big data with augmented reality
CN104518850A (en) Method for resynchronizing reference template to data stream and information processing system
JP4456574B2 (en) Compressed data transmission method
CN116708589B (en) Method, device, computer equipment and storage medium for compressing packet header
Wang et al. Eight times acceleration of geospatial data archiving and distribution on the grids
Li et al. Compression strategy of structured text based on prior dictionary for data distribution system
KR102503119B1 (en) Method and apparatus for tree-based point cloud compressed media stream

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080630

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101119

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110311