JP3797373B2 - Image transfer using drawing command hook - Google Patents

Image transfer using drawing command hook Download PDF

Info

Publication number
JP3797373B2
JP3797373B2 JP2004241239A JP2004241239A JP3797373B2 JP 3797373 B2 JP3797373 B2 JP 3797373B2 JP 2004241239 A JP2004241239 A JP 2004241239A JP 2004241239 A JP2004241239 A JP 2004241239A JP 3797373 B2 JP3797373 B2 JP 3797373B2
Authority
JP
Japan
Prior art keywords
image
area
processing module
transfer
retransmission
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.)
Expired - Fee Related
Application number
JP2004241239A
Other languages
Japanese (ja)
Other versions
JP2006058670A (en
Inventor
博行 市枝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004241239A priority Critical patent/JP3797373B2/en
Priority to TW094117095A priority patent/TWI267022B/en
Priority to US11/136,528 priority patent/US7817156B2/en
Priority to EP05012331A priority patent/EP1605346A3/en
Priority to KR1020050050084A priority patent/KR100645006B1/en
Publication of JP2006058670A publication Critical patent/JP2006058670A/en
Application granted granted Critical
Publication of JP3797373B2 publication Critical patent/JP3797373B2/en
Priority to US12/923,251 priority patent/US8416249B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ネットワークを介して接続された画像供給装置と画像表示装置とを含む画像表示システムに関する。   The present invention relates to an image display system including an image supply device and an image display device connected via a network.

画像を投写表示するプロジェクタの一種として、ネットワークを介してパーソナルコンピュータから供給された画像を投写表示することができるプロジェクタ(以下、「ネットワークプロジェクタ」とも呼ぶ)が提案されている(例えば特許文献1)。また、このようなネットワークプロジェクタに、ネットワークを介してパーソナルコンピュータから画像を供給するために、VNC(Virtual Network Computing)とよばれる技術が利用されている。   As a kind of projector for projecting and displaying an image, a projector capable of projecting and displaying an image supplied from a personal computer via a network (hereinafter also referred to as “network projector”) has been proposed (for example, Patent Document 1). . In addition, a technique called VNC (Virtual Network Computing) is used to supply such a network projector with an image from a personal computer via a network.

国際公開第01/093583号パンフレットInternational Publication No. 01/093583 Pamphlet

しかしながら、VNCを利用する場合には、コンピュータ内のVRAM(フレームメモリ)からRAM(システムメモリ)に画像を一旦転送し、その後、RAMから画像を取得してネットワークを介してプロジェクタに転送している。VRAMからRAMへの画像データの転送にはかなりの時間が掛かるため、全体として十分な転送速度が得られない場合があった。このような問題は、ネットワークプロジェクタシステムに限らず、一般に、ネットワークを介して画像供給装置から画像表示装置に画像を供給して表示させるシステムに共通する問題であった。   However, when using VNC, an image is temporarily transferred from a VRAM (frame memory) in the computer to a RAM (system memory), and then the image is acquired from the RAM and transferred to the projector via the network. . Since transfer of image data from the VRAM to the RAM takes a considerable time, there is a case where a sufficient transfer speed cannot be obtained as a whole. Such a problem is not limited to a network projector system, and is generally a problem common to systems that supply and display images from an image supply apparatus to an image display apparatus via a network.

本発明は、ネットワークを介して画像表示装置に画像を転送する際の転送スピードを向上させる技術を提供することを目的とする。   An object of the present invention is to provide a technique for improving the transfer speed when transferring an image to an image display device via a network.

上記した目的の少なくとも一部を達成するために、本発明による画像供給装置は、
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置であって、
画像の描画命令を発行可能なアプリケーションプログラムと、
前記アプリケーションプログラムによって発行される描画命令に従って前記画像供給装置の表示部に画像を表示するためのフレームメモリに画像を描画する描画モジュールと、
前記アプリケーションプログラムによって発行される特定の描画命令をフックして前記描画モジュールの代わりに取得し、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するとともに、前記取得した描画命令を前記描画モジュールに供給するフック処理モジュールと、
画像を前記ネットワークを介して前記画像表示装置に転送する画像転送処理モジュールと、
を備え、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能を有し、
前記画像転送処理モジュールは、
画像の描画が行われたときに、前記フック処理モジュールによって前記転送用画像格納領域に描画された画像を取得して転送する通常転送モードと、
画像の描画が停止した後に、前記描画モジュールによって前記フレームメモリに描画された画像を取得して転送する再送モードと、を有することを特徴とする。
In order to achieve at least a part of the above object, an image supply device according to the present invention includes:
An image supply device for supplying and displaying an image on an image display device via a network,
An application program capable of issuing image drawing commands;
A drawing module for drawing an image in a frame memory for displaying an image on a display unit of the image supply device according to a drawing command issued by the application program;
A specific drawing command issued by the application program is hooked and acquired instead of the drawing module, and an image is drawn in a specific transfer image storage area in a general-purpose memory according to the acquired drawing command. A hook processing module for supplying a drawing command to the drawing module;
An image transfer processing module for transferring an image to the image display device via the network;
With
The drawing module has a function of drawing an image in a frame memory in accordance with a drawing command received from the application program or the hook processing module;
The image transfer processing module
A normal transfer mode for acquiring and transferring an image drawn in the transfer image storage area by the hook processing module when the image is drawn;
And a retransmission mode for acquiring and transferring an image drawn in the frame memory by the drawing module after drawing of the image is stopped.

この画像供給装置によれば、特定の描画命令が発行された場合には、描画モジュールの代わりにフック処理モジュールがその描画命令をフックして取得し、汎用メモリ内の画像を描画するので、従来のように、転送対象となる画像の全体をVRAMからRAM(汎用メモリ)に転送する場合に比べて転送処理全体のスピードを向上させることができる。また、画像の描画が停止した後には、描画モジュールによってフレームメモリに描画された画像を取得して転送する再送モードを有するので、通常転送モードにおいてやや画質が劣化した画像が転送されていたような場合にも、描画停止後に高画質の画像を転送することができる。   According to this image supply device, when a specific drawing command is issued, the hook processing module hooks and acquires the drawing command instead of the drawing module, and draws the image in the general-purpose memory. As described above, the entire transfer processing speed can be improved as compared with the case where the entire image to be transferred is transferred from VRAM to RAM (general purpose memory). Also, after the drawing of the image is stopped, it has a retransmission mode in which the image drawn in the frame memory by the drawing module is acquired and transferred, so that an image with a slightly deteriorated image quality was transferred in the normal transfer mode. Even in this case, a high-quality image can be transferred after drawing is stopped.

なお、前記フック処理モジュールは、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第1の変化領域を示す第1の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理モジュールは、
前記通常転送モードにおいては、転送が終了した前記第1の変化領域を再送領域として設定し当該再送領域を表す再送領域情報を前記汎用メモリ内に書き込み、
前記再送モードにおいては、前記再送領域の少なくとも一部に相当する画像部分を前記フレームメモリから取得して転送するようにしてもよい。
The hook processing module stores, in the general-purpose memory, first change area information indicating a first change area that is an area in which an image is drawn in accordance with the specific drawing command in the transfer image storage area. With a function to write in,
The image transfer processing module
In the normal transfer mode, the first change area that has been transferred is set as a retransmission area, and retransmission area information representing the retransmission area is written in the general-purpose memory,
In the retransmission mode, an image portion corresponding to at least a part of the retransmission area may be acquired from the frame memory and transferred.

この構成によれば、特定の描画命令に応じてフック処理モジュールによって転送用画像格納領域内に描画される画像と、同じ描画命令に応じて描画モジュールによってフレームメモリ内に描画される画像との間に差異が存在するような場合にも、描画の停止後にフレームメモリ内の画像を正しく転送することが可能である。   According to this configuration, between the image drawn in the transfer image storage area by the hook processing module according to a specific drawing command and the image drawn in the frame memory by the drawing module according to the same drawing command. Even when there is a difference between the images, it is possible to correctly transfer the image in the frame memory after the drawing is stopped.

また、前記再送領域の少なくとも一部に相当する画像部分は、前記再送領域のうちの所定のサイズの領域に相当する画像部分であり、
前記画像転送処理モジュールは、前記再送モードにおいて前記再送領域のうちの所定のサイズの領域に相当する画像部分を転送するとともに、前記再送領域から前記所定のサイズの領域を削除するものとしてもよい。
Further, the image part corresponding to at least a part of the retransmission area is an image part corresponding to an area of a predetermined size in the retransmission area,
The image transfer processing module may transfer an image portion corresponding to an area of a predetermined size in the retransmission area in the retransmission mode, and delete the area of the predetermined size from the retransmission area.

この構成によれば、所定のサイズの領域毎に画像を再送するので、1回の再送処理に要する時間を短縮することができる。また、数回にわたる再送モードの転送処理の途中で描画が開始された場合には素早く通常転送モードに戻ることができるので、通常転送モードによる処理を過度に遅延させることが無い。   According to this configuration, since an image is retransmitted for each region of a predetermined size, the time required for one retransmission process can be shortened. In addition, when drawing is started in the middle of the transfer process in the retransmission mode several times, the normal transfer mode can be quickly returned, so that the process in the normal transfer mode is not excessively delayed.

前記描画モジュールは、さらに、前記フレームメモリ内で画像が描画される領域である第2の変化領域を示す第2の変化領域情報を前記汎用メモリ内に書き込む機能を有し、
前記画像転送処理モジュールは、前記通常転送モードにおいて、
(i)前記汎用メモリ内に格納されている前記第1と第2の変化領域情報を参照して、前記第2の変化領域のうちで前記第1の変化領域に含まれない領域に相当する画像部分を前記フレームメモリから取得し、
(ii)前記第1の変化領域に相当する画像部分を前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
(iii)取得した画像部分を、前記第1と第2の変化領域の和である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送するものとしてもよい。
The drawing module further has a function of writing second change area information indicating a second change area, which is an area in which an image is drawn in the frame memory, into the general-purpose memory;
In the normal transfer mode, the image transfer processing module is
(I) Referring to the first and second change area information stored in the general-purpose memory, the second change area corresponds to an area not included in the first change area. Obtaining an image portion from the frame memory;
(Ii) obtaining an image portion corresponding to the first change area from the transfer image storage area without obtaining from the frame memory;
(Iii) The acquired image portion may be transferred to the image display device via the network together with screen update area information indicating a screen update area that is a sum of the first and second change areas.

第2の変化領域のうちで第1の変化領域に含まれない領域はフック処理モジュールでは描画されていない領域であるが、この領域の画像はフレームメモリから取得するので、欠落無しに画像を転送することが可能である。   Of the second change area, the area that is not included in the first change area is an area that is not drawn by the hook processing module. Since the image in this area is acquired from the frame memory, the image is transferred without omission. Is possible.

前記再送モードは、前記画像の描画が停止してから所定の期間の経過後に前記フレームメモリ内の全画面領域の画像を取得して転送する全画面再送モードを含むものとしてもよい。   The re-transmission mode may include a full-screen re-transmission mode in which an image of the full-screen area in the frame memory is acquired and transferred after a lapse of a predetermined period after drawing of the image is stopped.

この構成によれば、画像の描画が停止した後に、フレームメモリ内の全画面領域の画像を確実に転送することが可能である。   According to this configuration, the image of the entire screen area in the frame memory can be reliably transferred after the drawing of the image is stopped.

前記画像転送処理モジュールは、前記全画面再送モードにおいて、前記全画面領域を所定サイズの複数の区分領域に区分し、1回の転送処理毎に前記複数の区分領域の中から順次選択された1つの区分領域の画像を転送することによって前記全画面領域の画像の転送を完了するようにしてもよい。   In the full-screen retransmission mode, the image transfer processing module divides the full-screen area into a plurality of divided areas having a predetermined size, and is sequentially selected from the plurality of divided areas for each transfer process. You may make it complete the transfer of the image of the said full screen area | region by transferring the image of one division area.

この構成によれば、所定のサイズの区分領域毎に画像を再送するので、1回の転送処理に要する時間を短縮することができる。また、全画面再送モードにおいて数回にわたって行われる転送処理の途中で描画が開始された場合には素早く通常転送モードに戻ることができるので、通常転送モードによる処理を過度に遅延させることが無い。   According to this configuration, since the image is retransmitted for each divided area of a predetermined size, the time required for one transfer process can be shortened. In addition, when drawing is started in the middle of the transfer process performed several times in the full-screen retransmission mode, the normal transfer mode can be quickly returned to, so that the process in the normal transfer mode is not excessively delayed.

前記画像転送処理モジュールは、さらに、
前記通常転送モードにおいて転送される画像を、相対的に画像劣化が大きな第1の圧縮方法と、相対的に画像劣化が小さな第2の圧縮方法と、を含む複数の圧縮方法の中から選択された圧縮方法によって圧縮する機能と、
前記通常転送モードにおいて前記第1の圧縮方法で圧縮されて転送された画像の領域を、前記再送モードで転送される画像の領域である再送領域として登録する機能と、
前記再送モードにおいて、前記再送領域内の画像を前記第2の圧縮方法で画像を圧縮して転送する機能と、を有するものとしてもよい。
The image transfer processing module further includes:
An image transferred in the normal transfer mode is selected from a plurality of compression methods including a first compression method with relatively large image degradation and a second compression method with relatively small image degradation. A function of compressing by a different compression method,
A function of registering an area of an image compressed and transferred by the first compression method in the normal transfer mode as a retransmission area that is an area of an image transferred in the retransmission mode;
The retransmission mode may have a function of compressing and transferring an image in the retransmission area by the second compression method.

この構成によれば、通常転送モードにおいて画像劣化が大きな圧縮方法で圧縮して転送された画像を、再送モードにおいて画像劣化が小さな圧縮方法で圧縮して転送するので、描画停止後に高画質の画像を転送することができる。   According to this configuration, an image that has been compressed and transferred with a compression method with large image degradation in the normal transfer mode is compressed and transferred with a compression method with small image degradation in the retransmission mode. Can be transferred.

なお、前記画像転送処理モジュールは、
前記画像転送処理モジュールの起動時に前記フック処理モジュールを前記アプリケーションプログラムにロードし、前記画像転送処理モジュールの実行終了時に前記フック処理モジュールを前記アプリケーションプログラムからアンロードするように構成されていてもよい。
The image transfer processing module is
The hook processing module may be loaded into the application program when the image transfer processing module is activated, and the hook processing module may be unloaded from the application program when the execution of the image transfer processing module is completed.

この構成によれば、画像転送処理が行われる場合にのみフック処理モジュールが働くので、フック処理が不要な場合にフック処理モジュールが望ましくフック処理を実行してしまうことを防止することができる。   According to this configuration, since the hook processing module works only when the image transfer process is performed, it is possible to prevent the hook processing module from desirably executing the hook process when the hook process is unnecessary.

なお、本発明は種々の形態で実現することが可能であり、例えば、画像表示システム、画像表示システムを構成する画像供給装置及び画像表示装置、画像供給装置に利用されるフック処理モジュール及び画像転送処理モジュール、画像供給方法、それら方法又は装置を実現するためのコンピュータプログラム、それらのコンピュータプログラムを記録した記録媒体などの種々の態様で実現することが可能である。   The present invention can be realized in various forms, for example, an image display system, an image supply device and an image display device that constitute the image display system, a hook processing module and an image transfer used in the image supply device. The present invention can be realized in various modes such as a processing module, an image supply method, a computer program for realizing the method or apparatus, and a recording medium on which the computer program is recorded.

以下、本発明の実施の形態を以下の順序で説明する。
A.第1実施例:
B.第2実施例:
C.第3実施例:
D.変形例:
Hereinafter, embodiments of the present invention will be described in the following order.
A. First embodiment:
B. Second embodiment:
C. Third embodiment:
D. Variations:

A.第1実施例:
図1は本発明の一実施例として画像表示システムの構成を示す説明図である。本実施例の画像表示システム10は、画像供給装置としてのパーソナルコンピュータ100と、画像表示装置としてのプロジェクタ200と、コンピュータ100とプロジェクタ200とをつなぐネットワーク300と、を備えている。コンピュータ100は、ネットワーク300を介して画像をプロジェクタ200供給して、プロジェクタ200に画像を投写させて投写表示画面70に表示させる機能を有している。
A. First embodiment:
FIG. 1 is an explanatory diagram showing the configuration of an image display system as an embodiment of the present invention. The image display system 10 of the present embodiment includes a personal computer 100 as an image supply device, a projector 200 as an image display device, and a network 300 that connects the computer 100 and the projector 200. The computer 100 has a function of supplying an image to the projector 200 via the network 300 and causing the projector 200 to project the image and display it on the projection display screen 70.

図2は、コンピュータ100とプロジェクタ200の内部構成を示すブロック図である。コンピュータ100は、CPU102と、ROM104と、汎用メモリ(「システムメモリ」とも呼ぶ)としてのRAM106と、ハードディスクドライブ108と、キーボードやポインティングデバイスなどで構成される入力部110と、ネットワークインタフェース部112と、フレームメモリとしてのVRAM114と、グラフィックコントローラ116と、液晶ディスプレイなどの表示デバイス118と、これら各要素を接続するバス120と、を備えている。   FIG. 2 is a block diagram showing the internal configuration of the computer 100 and the projector 200. The computer 100 includes a CPU 102, a ROM 104, a RAM 106 as a general-purpose memory (also referred to as “system memory”), a hard disk drive 108, an input unit 110 including a keyboard and a pointing device, a network interface unit 112, A VRAM 114 as a frame memory, a graphic controller 116, a display device 118 such as a liquid crystal display, and a bus 120 for connecting these elements are provided.

RAM106には、アプリケーションプログラム122と、グラフィカルデバイスインタフェース(GDI:Graphics Device Interface)124と、ディスプレイドライバ126と、プロジェクタドライバ128と、画像転送処理モジュールとしてのVNCサーバ130と、を含む各種コンピュータプログラムが格納されている。なお、GDI124と、ディスプレイドライバ126と、プロジェクタドライバ128は、オペレーティングシステムの一部として機能する。なお、本実施例においては、オペレーティングシステムとして、マイクロソフト社によって提供されるWindows(登録商標)を想定している。このような各種コンピュータプログラムは、フレキシブルディスクやCD−ROM等の、コンピュータ読み取り可能な記録媒体に記録された形態で提供される。   The RAM 106 stores various computer programs including an application program 122, a graphical device interface (GDI) 124, a display driver 126, a projector driver 128, and a VNC server 130 as an image transfer processing module. Has been. The GDI 124, the display driver 126, and the projector driver 128 function as a part of the operating system. In this embodiment, Windows (registered trademark) provided by Microsoft Corporation is assumed as the operating system. Such various computer programs are provided in a form recorded on a computer-readable recording medium such as a flexible disk or a CD-ROM.

プロジェクタ200は、CPU202と、ROM204と、RAM206と、各種の操作ボタンを含む入力部210と、ネットワークインタフェース部212と、画像処理部214と、光源ランプと液晶パネルと投写光学系を含む投写部216と、これら各要素を接続するバス218と、を備えている。ROM204には、画像処理ドライバ228と、VNCクライアント230とを含む各種コンピュータプログラムが格納されている。   The projector 200 includes a CPU 202, a ROM 204, a RAM 206, an input unit 210 including various operation buttons, a network interface unit 212, an image processing unit 214, a light source lamp, a liquid crystal panel, and a projection unit 216 including a projection optical system. And a bus 218 for connecting these elements. The ROM 204 stores various computer programs including the image processing driver 228 and the VNC client 230.

以下ではまず、実施例におけるコンピュータ100の機能を説明する前に、比較例として、VNCサーバを用いた従来のコンピュータの機能を説明する。   Hereinafter, before describing the function of the computer 100 in the embodiment, the function of a conventional computer using a VNC server will be described as a comparative example.

図3は、比較例におけるコンピュータのソフトウェアとハードウェアの階層構造を示す説明図である。アプリケーションプログラム122とVNCサーバ130は、アプリケーションプログラム層(「ユーザアプリケーションプログラム層」とも呼ぶ)に属する。GDI124とディスプレイドライバ126とプロジェクタドライバ128は、カーネル層に属する。また、汎用メモリとしてのRAM106と、ネットワークインタフェース部112と、VRAM114と、グラフィックコントローラ116と、表示デバイス118は、ハードウェア層に属する。   FIG. 3 is an explanatory diagram showing a hierarchical structure of computer software and hardware in a comparative example. The application program 122 and the VNC server 130 belong to an application program layer (also referred to as “user application program layer”). The GDI 124, the display driver 126, and the projector driver 128 belong to the kernel layer. Further, the RAM 106 as a general-purpose memory, the network interface unit 112, the VRAM 114, the graphic controller 116, and the display device 118 belong to the hardware layer.

実施例では、アプリケーションプログラム122としてプレゼンテーションプログラム(例えばマイクロソフト社のPowerPoint)を使用した場合について説明する。   In the embodiment, a case where a presentation program (for example, Microsoft PowerPoint) is used as the application program 122 will be described.

アプリケーションプログラム122は、GDI124に対して各種の描画要求を発行する。GDI124は、表示装置(コンピュータ100の表示デバイス118やプロジェクタ200)や印刷装置(図示せず)などへの描画を統一的に管理しているコンピュータプログラムである。良く知られているように、GDI124は、「GDI関数」と呼ばれる描画に関するアプリケーションプログラムインタフェース(API:Application Program Interface)を各種のアプリケーションプログラムに対して提供している。なお、APIとは、一般に、アプリケーションプログラムがオペレーティングシステムの持つ様々な機能を利用するための手続きの集まりを言う。   The application program 122 issues various drawing requests to the GDI 124. The GDI 124 is a computer program that uniformly manages drawing on a display device (the display device 118 or the projector 200 of the computer 100) or a printing device (not shown). As is well known, the GDI 124 provides an application program interface (API: Application Program Interface) relating to drawing called “GDI function” to various application programs. Note that an API generally refers to a collection of procedures for an application program to use various functions of an operating system.

アプリケーションプログラム122は、GDI124に対して、例えばプレゼンテーションファイルに含まれているプレゼンテーションシートの画像の描画要求を発行する。通常は、描画要求には、画像の出力先に関する情報(即ち、画像を表示装置に出力するか、印刷装置に出力するかを指定する情報)も含まれている。   For example, the application program 122 issues a drawing request for a presentation sheet image included in the presentation file to the GDI 124. Usually, the drawing request also includes information regarding the output destination of the image (that is, information specifying whether to output the image to the display device or the printing device).

なお、GDI124の代わりに、他の汎用の描画用APIを使用することも可能である。「汎用の描画用API」とは、多数のアプリケーションプログラムに対して共通に使用されるAPIを意味している。   Note that other general-purpose drawing APIs may be used instead of the GDI 124. The “general-purpose drawing API” means an API that is commonly used for many application programs.

GDI124と、ディスプレイドライバ126と、プロジェクタドライバ128の全体は、描画命令に従って描画処理を実行する描画モジュールとして機能する。具体的には、GDI124は、アプリケーションプログラム122から出された描画要求を受け取り、その描画要求に基づいて画像の出力先をチェックし、その出力先が表示装置であれば、ディスプレイドライバ126とプロジェクタドライバ128のそれぞれに対して描画要求を渡す。   The GDI 124, the display driver 126, and the projector driver 128 all function as a drawing module that executes a drawing process in accordance with a drawing command. Specifically, the GDI 124 receives the drawing request issued from the application program 122, checks the output destination of the image based on the drawing request, and if the output destination is a display device, the display driver 126 and the projector driver A drawing request is passed to each of 128.

ディスプレイドライバ126は、受け取った描画要求に従ってVRAM114内に画像データを描画する。なお、よく知られているように、描画要求としては、画面の全体を描画するものに限らず、画面の一部を描画するものも多用される。画面の一部を描画する描画命令を受けた場合には、ディスプレイドライバ126は、VRAM114内で描画対象となっている領域(「変化領域」とも呼ぶ)の画像部分のみを描画する。グラフィックコントローラ116は、VRAM114内に描画された画像データ(即ち、ビットマップデータ)に基づいて、表示デバイス118に画像を表示する。一方、プロジェクタドライバ128は、GDI124から受け取った描画要求に従って、VRAM114内の描画対象領域(すなわち変化領域)の位置及びサイズを表す変化領域情報106aをRAM106内に書き込む。   The display driver 126 draws image data in the VRAM 114 in accordance with the received drawing request. As is well known, the drawing request is not limited to drawing the entire screen, but frequently drawing a part of the screen. When receiving a drawing command for drawing a part of the screen, the display driver 126 draws only an image portion of an area to be drawn (also referred to as “change area”) in the VRAM 114. The graphic controller 116 displays an image on the display device 118 based on image data (that is, bitmap data) drawn in the VRAM 114. On the other hand, the projector driver 128 writes the change area information 106 a indicating the position and size of the drawing target area (that is, the change area) in the VRAM 114 in the RAM 106 in accordance with the drawing request received from the GDI 124.

図4(A),(B)は、RAM106内の変化領域情報106aと画像データ格納領域106bの例を示す説明図である。ここでは、プロジェクタで投写表示されるべき画像が図4(A)から図4(B)のように変化する例を想定する。後述するように、画像データ格納領域106bには、VNCサーバ130によってVRAM114から転送された画像データが格納される。画像データ格納領域106bは、VRAM114(フレームメモリ)と同じデータ容量を有することが好ましい。   4A and 4B are explanatory diagrams showing examples of the change area information 106a and the image data storage area 106b in the RAM 106. FIG. Here, it is assumed that the image to be projected and displayed by the projector changes from FIG. 4 (A) to FIG. 4 (B). As will be described later, the image data storage area 106 b stores image data transferred from the VRAM 114 by the VNC server 130. The image data storage area 106b preferably has the same data capacity as the VRAM 114 (frame memory).

変化領域Raは、図4(A)から図4(B)に画像を変更する際の描画命令によって描画される画像部分の領域である。この変化領域Raに関する変化領域情報106aは、変化領域Raの基準点(通常は左上点)のx座標Xa及びy座標Yaと、変化領域Raの幅Wa及び高さHaとを含んでいる。なお、基準点の座標(Xa,Ya)は、変化領域Raの位置を示すデータであり、幅Waと高さHaは変化領域Raのサイズを示すデータである。   The change area Ra is an area of an image portion drawn by a drawing command when changing the image from FIG. 4 (A) to FIG. 4 (B). The change area information 106a regarding the change area Ra includes the x coordinate Xa and the y coordinate Ya of the reference point (usually the upper left point) of the change area Ra, and the width Wa and the height Ha of the change area Ra. The coordinates (Xa, Ya) of the reference point are data indicating the position of the change area Ra, and the width Wa and the height Ha are data indicating the size of the change area Ra.

VNCサーバ130は、RAM106内の変化領域情報106aを参照して、変化領域Raの画像データを、VRAM114からRAM106内の画像データ格納領域106bに転送する。この画像データ格納領域106bは、例えばコンピュータ100又はプロジェクタ200の表示解像度に等しいサイズのメモリ領域である。VNCサーバ130は、さらに、画像データ格納領域106bから変化領域Raの画像データを読み出して、変化領域Raの変化領域情報106aと画像データとを含む画面更新メッセージを作成する。   The VNC server 130 refers to the change area information 106 a in the RAM 106 and transfers the image data in the change area Ra from the VRAM 114 to the image data storage area 106 b in the RAM 106. The image data storage area 106b is a memory area having a size equal to the display resolution of the computer 100 or the projector 200, for example. The VNC server 130 further reads out the image data of the change area Ra from the image data storage area 106b, and creates a screen update message including the change area information 106a of the change area Ra and the image data.

図5は、画面更新メッセージの構造を示す説明図である。この画面更新メッセージは、VNCプロトコルに規定されているフレームバッファアップデート「FramebufferUpdate」の構造に準じている。画面更新メッセージは、メッセージの種類を示すメッセージヘッダ部と、メッセージのパラメータを示すパラメータ部とを有している。   FIG. 5 is an explanatory diagram showing the structure of the screen update message. This screen update message conforms to the structure of the frame buffer update “FramebufferUpdate” defined in the VNC protocol. The screen update message has a message header portion indicating a message type and a parameter portion indicating a message parameter.

メッセージヘッダ部には、メッセージの種類を示すメッセージタイプ(1バイト)と、変化領域の数を示す変化領域数(2バイト)とが含まれる。画面更新メッセージを示すメッセージタイプのデータ値は「0」である。変化領域数のデータ値は通常は「1」に設定される。但し、RAM106内に複数の変化領域に関する変化領域情報106aが未処理で残っている場合には、画面更新メッセージがそれらの複数の変化領域に関する情報(変化領域情報及び画像データ)を含むように画面更新メッセージを構成することも可能である。画面更新メッセージに含まれる変化領域情報を「画面更新領域情報」とも呼ぶ。なお、メッセージタイプデータと変化領域数データとは1バイトのパディングを介して区分されている。   The message header part includes a message type (1 byte) indicating the type of message and a change area number (2 bytes) indicating the number of change areas. The data value of the message type indicating the screen update message is “0”. The data value of the number of change areas is normally set to “1”. However, when the change area information 106a regarding a plurality of change areas remains unprocessed in the RAM 106, the screen update message includes information about the change areas (change area information and image data). It is also possible to construct an update message. The change area information included in the screen update message is also referred to as “screen update area information”. The message type data and the change area number data are divided through 1-byte padding.

パラメータ部には、変化領域の基準点のx座標(2バイト)及びy座標(2バイト)と、変化領域の幅(2バイト)及び高さ(2バイト)と、変化領域の画像データの転送時のエンコーディング形式(4バイト)と、変化領域の画像データ(nバイト)と、が含まれている。エンコーディング形式としては、JPEG形式(データ値「7」)等の予め定められた形式が使用される。   In the parameter section, the x coordinate (2 bytes) and y coordinate (2 bytes) of the reference point of the change area, the width (2 bytes) and height (2 bytes) of the change area, and the transfer of the image data of the change area Time encoding format (4 bytes) and change area image data (n bytes) are included. A predetermined format such as a JPEG format (data value “7”) is used as the encoding format.

VNCサーバ130は、こうして作成した画面更新メッセージをネットワークインタフェース部112を介してプロジェクタ200に転送する。   The VNC server 130 transfers the screen update message thus created to the projector 200 via the network interface unit 112.

このように、図3に示す比較例では、一旦VRAM114に格納された画像データを汎用メモリであるRAM106に転送した後で、RAM106内にある画像データをプロジェクタ200に転送している。このため、VRAM114からRAM106に転送するためにかなりの時間を要してしまい、十分な転送速度が得られない場合があった。   As described above, in the comparative example shown in FIG. 3, the image data once stored in the VRAM 114 is transferred to the RAM 106 which is a general-purpose memory, and then the image data in the RAM 106 is transferred to the projector 200. For this reason, it takes a considerable time to transfer data from the VRAM 114 to the RAM 106, and a sufficient transfer speed may not be obtained.

図6は、第1実施例におけるコンピュータのソフトウェアとハードウェアの階層構造を示す説明図である。図3に示した比較例との違いは、アプリケーションプログラム122とGDI124との間に、フック処理モジュール400が追加されている点と、RAM106内に2種類の変化領域情報106a1,106a2(以下、「変化領域情報A1,A2」と呼ぶ)が格納されている点と、RAM106内に再送領域情報106s(以下、「再送領域情報RS」と呼ぶ)が格納されている点であり、他の構成は図3と同じである。フック処理モジュール400は、アプリケーションプログラム122が発行する特定の描画命令をフックして先取りし、後述する処理を実行する。他の描画命令は通常通りGDI124によって処理される。なお、フック処理モジュール400は、アプリケーションプログラム122に応じた適切な特定の描画命令のみをフックするように、各アプリケーションプログラム専用に構成されることが好ましい。   FIG. 6 is an explanatory diagram showing a hierarchical structure of computer software and hardware in the first embodiment. 3 is different from the comparative example shown in FIG. 3 in that a hook processing module 400 is added between the application program 122 and the GDI 124, and two types of change area information 106a1 and 106a2 (hereinafter, “ Change area information A1, A2 "), and retransmission area information 106s (hereinafter referred to as" retransmission area information RS ") is stored in the RAM 106. It is the same as FIG. The hook processing module 400 hooks a specific drawing command issued by the application program 122 in advance and executes processing described later. Other drawing commands are processed by the GDI 124 as usual. Note that the hook processing module 400 is preferably configured exclusively for each application program so as to hook only a specific drawing command appropriate for the application program 122.

なお、フック処理モジュール400も一種の描画用APIと考えることも可能であるが、GDI124のような汎用の描画用APIとは区別される。すなわち、フック処理モジュール400は、典型的には特定の描画命令のみを処理するように構成されているのに対して、GDI124はすべての描画命令を処理するように構成されている点で相違する。   The hook processing module 400 can also be considered as a kind of drawing API, but is distinguished from a general-purpose drawing API such as the GDI 124. That is, the hook processing module 400 is typically configured to process only specific drawing commands, whereas the GDI 124 is configured to process all drawing commands. .

フック処理モジュール400は、例えばDLL(ダイナミックリンクライブラリ)としてアプリケーションプログラム122にロード(インストール)される。一般に、アプリケーションプログラムは「プロセス」という単位で動作している。また、アプリケーションプログラムの実行中は、そのプロセス内に複数のモジュール(GDI32.DLLやKernel32.DLLなど)がロードされており、アプリケーションプログラムはそれらのモジュール内の関数を利用することによって各種の動作を行っている。フック処理モジュール400の「ロード」とは、アプリケーションプログラム122のプロセス内に、フックプロシージャが実装されているモジュール400を組み込むすることを意味している。   The hook processing module 400 is loaded (installed) into the application program 122 as a DLL (dynamic link library), for example. In general, an application program operates in units of “processes”. During execution of an application program, multiple modules (GDI32.DLL, Kernel32.DLL, etc.) are loaded in the process, and the application program performs various operations by using the functions in those modules. Is going. The “loading” of the hook processing module 400 means that the module 400 in which the hook procedure is mounted is incorporated in the process of the application program 122.

フック処理モジュール400がロードされる際には、アプリケーションプログラム122から発行される特定の描画命令の関数アドレスが、フック処理モジュール400内に実装されている独自機能を実行するための別の関数のアドレスに差し替えられる。この独自機能の関数内では、変化情報と画像データのRAMへの書き込み処理(後述する)が実行され、その後、通常のGDI関数が実行される。フック処理モジュール400をアンロードする際には、ロード時に差し替えられていた関数アドレスを元に戻した後に、プロセス内にロードされていたフック処理モジュール400がアンロードされる。   When the hook processing module 400 is loaded, the function address of a specific drawing command issued from the application program 122 is the address of another function for executing a unique function implemented in the hook processing module 400. Is replaced. In the function of this unique function, processing for writing change information and image data into the RAM (described later) is executed, and then a normal GDI function is executed. When the hook processing module 400 is unloaded, the hook processing module 400 loaded in the process is unloaded after the function address replaced at the time of loading is restored.

なお、フック処理モジュール400は、必要に応じていつでもアプリケーションプログラム122にロードしたり、アンロードしたりすることが可能である。但し、VNCサーバ130が起動する際に、動作中の特定のアプリケーションプログラム122(本実施例ではプレゼンテーションプログラム)にフック処理モジュール400をロードし、また、VNCサーバ130を終了するときにフック処理モジュール400をアンロードするように、VNCサーバ130を構成することが好ましい。こうすれば、VNCサーバ130が実行中の期間にのみフック処理モジュール400を動作させることができるので、コンピュータ100上でVNCサーバ130が実行されていない(起動していない)ときに描画命令をフックしてしまい、望ましくない結果が生じることを回避することができる。なお、本明細書において、「コンピュータ100上でVNCサーバ130が実行されている」という文言は、VNCサーバ130のプロセスが起動されていることを意味している。   The hook processing module 400 can be loaded into the application program 122 and unloaded at any time as necessary. However, when the VNC server 130 is activated, the hook processing module 400 is loaded into a specific application program 122 (presentation program in this embodiment) that is operating, and when the VNC server 130 is terminated, the hook processing module 400 is loaded. Preferably, the VNC server 130 is configured to unload. In this way, since the hook processing module 400 can be operated only during the period when the VNC server 130 is being executed, a drawing command is hooked when the VNC server 130 is not executed (not activated) on the computer 100. And undesirable results can be avoided. In the present specification, the phrase “VNC server 130 is running on computer 100” means that the process of VNC server 130 is activated.

図7は、2つの変化領域情報A1,A2と再送領域情報RSの例を示す説明図である。図7(A−1)〜(A−3)は時刻t100における状態を示しており、図7(B−1)〜(B−3)は時刻t101における状態を示している。VNCサーバ130は、所定の時間間隔で転送処理を繰り返し実行しており、時刻t100で転送が実行された後に、時刻t101において次回の転送が実行されるものと仮定している。   FIG. 7 is an explanatory diagram showing an example of two change area information A1, A2 and retransmission area information RS. FIGS. 7A-1 to 7A-3 show states at time t100, and FIGS. 7B-1 to 7B-3 show states at time t101. It is assumed that the VNC server 130 repeatedly executes the transfer process at predetermined time intervals, and after the transfer is executed at time t100, the next transfer is executed at time t101.

図7(A−1)に示す第1の変化領域情報A1は、フック処理モジュール400(図6)によってRAM106内の画像データ格納領域106bに直接描画された領域RA1(「変化領域RA1」と呼ぶ)を表している。この変化領域RA1内の画像を「画像G1」と呼ぶ。第1の変化領域情報A1は、フック処理モジュール400によってRAM106内に書き込まれる。図7(A−2)に示す第2の変化領域情報A2は、ディスプレイドライバ126(図6)によってVRAM114内に描画された領域RA2(「変化領域RA2」と呼ぶ)を表している。この変化領域RA2内の画像を「画像G2」と呼ぶ。第2の変化領域情報A2は、プロジェクタドライバ128によってRAM106内に書き込まれる。図7(A−3)に示す再送領域情報RSは、フック処理モジュール400によって画像データ格納領域106bに直接描画された後にVNCサーバ130によって転送された過去の第1の変化領域RA1(「再送領域RRS」と呼ぶ)を表している。時刻t100以前の転送処理では第1の変化領域RA1が存在しておらず、従って、時刻t100では再送領域情報RSも登録されていないものと仮定している。なお、再送領域情報RSは、VNCサーバ130によってRAM106内に書き込まれる。   The first change area information A1 shown in FIG. 7A-1 is an area RA1 (referred to as “change area RA1”) drawn directly in the image data storage area 106b in the RAM 106 by the hook processing module 400 (FIG. 6). ). The image in the change area RA1 is referred to as “image G1”. The first change area information A1 is written into the RAM 106 by the hook processing module 400. Second change area information A2 shown in FIG. 7A-2 represents an area RA2 (referred to as “change area RA2”) drawn in the VRAM 114 by the display driver 126 (FIG. 6). The image in the change area RA2 is referred to as “image G2.” The second change area information A2 is written in the RAM 106 by the projector driver 128. The retransmission area information RS shown in FIG. 7A-3 is drawn in the image data storage area 106b directly by the hook processing module 400 and then transferred to the past first change area RA1 ("Retransmission area") by the VNC server 130. RRS)). In the transfer process before time t100, it is assumed that the first change area RA1 does not exist, and therefore, retransmission area information RS is not registered at time t100. The retransmission area information RS is written into the RAM 106 by the VNC server 130.

なお、図7の例では各領域RA1,RA2,RRSが同一の画面領域SCA内に配置された状態が示されている。ここで、「画面領域SCA」とは、VRAM114に格納される画像の全体の領域を意味しており、これは、画像データ格納領域106b全体の領域と等しい。厳密に言えば、第1の変化領域RA1は画像データ格納領域106b内のアドレスで定義された領域であり、第2の変化領域RA2と再送領域RRSはVRAM114内のアドレスで定義された領域であるが、これらは同じ画面領域SCAで表現することができる。   In the example of FIG. 7, a state in which the areas RA1, RA2, and RRS are arranged in the same screen area SCA is shown. Here, the “screen area SCA” means the entire area of the image stored in the VRAM 114, which is equal to the entire area of the image data storage area 106b. Strictly speaking, the first change area RA1 is an area defined by an address in the image data storage area 106b, and the second change area RA2 and the retransmission area RRS are areas defined by an address in the VRAM 114. However, these can be expressed by the same screen area SCA.

図7(B−1)〜(B−3)に示すように、時刻t101では、第1と第2の変化領域情報A1,A2が存在せず、再送領域情報RSは画像G1の領域(すなわち、時刻t100における第1の変化領域RA1と同じ領域)を表すものとなっている。なお、図7(B−3)では、図示の便宜上、再送領域RRSを一点鎖線で描いている。   As shown in FIGS. 7B-1 to (B-3), at time t101, the first and second change region information A1 and A2 do not exist, and the retransmission region information RS is the region of the image G1 (that is, , The same region as the first change region RA1 at time t100). In FIG. 7 (B-3), for convenience of illustration, retransmission area RRS is drawn with a one-dot chain line.

以下で説明するように、VNCサーバ130は、時刻t100では変化領域情報A1,A2に基づいて通常の転送処理(「通常転送モード」とも呼ぶ)を実行する。また、時刻t101では変化領域情報A1,A2が無いので再送領域情報RSに基づいて再送処理(「再送モード」とも呼ぶ)を実行する。   As will be described below, the VNC server 130 executes normal transfer processing (also referred to as “normal transfer mode”) based on the change area information A1 and A2 at time t100. At time t101, since there is no change area information A1, A2, retransmission processing (also referred to as “retransmission mode”) is executed based on retransmission area information RS.

なお、仮に時刻t100において再送領域情報RSが登録されていたとしても、時刻t100では再送処理では無く、通常転送処理が実行される。すなわち、2つの変化領域情報A1,A2のいずれかが存在する場合には通常転送処理が実行され、2つの変化領域情報A1,A2が両方とも存在せず、かつ、再送領域情報RSが存在する場合に再送処理が実行される。   Even if retransmission area information RS is registered at time t100, normal transfer processing is executed at time t100, not retransmission processing. That is, when either one of the two change area information A1 and A2 exists, the normal transfer process is executed, and both of the two change area information A1 and A2 do not exist and the retransmission area information RS exists. In this case, retransmission processing is executed.

図8は、第1実施例におけるフック処理モジュール400とVNCサーバ130の動作を示すフローチャートである。ステップS10〜S16はフック処理モジュール400によって実行され、ステップS20〜S26はVNCサーバ130によって定期的に実行される。   FIG. 8 is a flowchart showing the operations of the hook processing module 400 and the VNC server 130 in the first embodiment. Steps S10 to S16 are executed by the hook processing module 400, and steps S20 to S26 are periodically executed by the VNC server 130.

フック処理モジュール400は、アプリケーションプログラム122から特定の描画命令が発行されたときに、ステップS10においてその描画命令をフックして、GDI124の代わりにその描画命令を取得する。なお、フック処理モジュール400がフックする描画命令は、すべての描画命令ではなく、限られた特定の描画命令のみに限定することが好ましい。この理由は、アプリケーションプログラム122が発行する描画命令には多数のものがあるので、そのすべてをフックするようにすると、却って処理速度を低下させたり、所望の描画を行えなかったりする可能性があるからである。   When a specific drawing command is issued from the application program 122, the hook processing module 400 hooks the drawing command in step S10 and acquires the drawing command instead of the GDI 124. Note that it is preferable that the drawing command hooked by the hook processing module 400 is not limited to all drawing commands, but only limited specific drawing commands. This is because there are many drawing commands issued by the application program 122. If all of them are hooked, there is a possibility that the processing speed may be lowered or the desired drawing may not be performed. Because.

ステップS12では、取得した描画命令に応じて変化領域情報を登録する処理が実行される。具体的には、フック処理モジュール400が、描画命令に従って描画が行われる領域(図7(A−1)の変化領域RA1)の位置とサイズを取得し、その変化領域を表す変化領域情報A1をRAM106に直接書き込む処理を実行する。   In step S12, a process of registering the change area information is executed according to the acquired drawing command. Specifically, the hook processing module 400 acquires the position and size of the area (the change area RA1 in FIG. 7A-1) where drawing is performed according to the drawing command, and changes area information A1 representing the change area is obtained. A process of directly writing to the RAM 106 is executed.

ステップS14では、変化領域RA1の画像データの書込処理が実行される。具体的には、フック処理モジュール400が、描画命令に従って変化領域RA1内の画像データを展開して、その画像データをRAM106内の画像データ格納領域106bに直接書き込む処理を実行する。   In step S14, the image data writing process of the change area RA1 is executed. Specifically, the hook processing module 400 executes a process of expanding the image data in the change area RA1 in accordance with the drawing command and directly writing the image data in the image data storage area 106b in the RAM 106.

ステップS16では、フック処理モジュール400が、ステップS10で取得した描画命令に従って通常のGDI関数を呼び出して描画処理を実行させる。なお、ディスプレイドライバ126とプロジェクタドライバ128(図6)は、図3に示した比較例と同様に、GDI124から受け取った描画命令に従ってそれぞれの処理を実行する。すなわち、ディスプレイドライバ126がVRAM114内に画像を描画し、プロジェクタドライバ128がその描画領域を示す変化領域情報A2をRAM106内に書き込む。   In step S16, the hook processing module 400 calls a normal GDI function according to the drawing command acquired in step S10, and executes the drawing process. Note that the display driver 126 and the projector driver 128 (FIG. 6) execute respective processes in accordance with the drawing command received from the GDI 124, as in the comparative example shown in FIG. That is, the display driver 126 draws an image in the VRAM 114, and the projector driver 128 writes the change area information A2 indicating the drawing area in the RAM.

一方、VNCサーバ130は、ステップS20において、プロジェクタ200に転送すべき画像データの領域(「画面更新領域」と呼ぶ)を決定する。図9は、ステップS20の詳細手順を示すフローチャートである。ステップS300では、再送フラグがオフに設定される。この再送フラグは、再送処理を実行すべきか否かを示すフラグである。再送フラグのオン状態は再送処理が実行されることを示し、オフ状態は通常転送処理が実行されることを示す。なお、再送フラグはRAM106内に登録される。   On the other hand, in step S20, the VNC server 130 determines an area of image data to be transferred to the projector 200 (referred to as a “screen update area”). FIG. 9 is a flowchart showing the detailed procedure of step S20. In step S300, the retransmission flag is set to off. This retransmission flag is a flag indicating whether or not to perform retransmission processing. The ON state of the retransmission flag indicates that the retransmission process is executed, and the OFF state indicates that the normal transfer process is executed. Note that the retransmission flag is registered in the RAM 106.

ステップS302,S304では、第1と第2の変化領域情報A1,A2が取得される。前述したように、第1の変化領域情報A1は、フック処理モジュール400によってRAM106内の画像データ格納領域106bに描画された領域を表す情報であり、フック処理モジュール400によってRAM106内に書き込まれたものである。一方、第2の変化領域情報A2は、ディスプレイドライバ126によってVRAM114内に描画された領域を表している情報であり、プロジェクタドライバ128によってRAM106内に書き込まれたものである。   In steps S302 and S304, first and second change area information A1 and A2 are acquired. As described above, the first change area information A1 is information representing an area drawn in the image data storage area 106b in the RAM 106 by the hook processing module 400, and is written in the RAM 106 by the hook processing module 400. It is. On the other hand, the second change area information A2 is information representing an area drawn in the VRAM 114 by the display driver 126, and is written in the RAM 106 by the projector driver 128.

図10(A)は、時刻t100(図7(A−1)〜(A−3))における2つの変化領域RA1,RA2と再送領域RRSを示している。但し、時刻t100では再送領域RRSは存在しない。   FIG. 10A shows two change areas RA1 and RA2 and a retransmission area RRS at time t100 (FIGS. 7A-1 to 7A-3). However, there is no retransmission area RRS at time t100.

なお、図10(A)の例では、2つの変化領域RA1,RA2は部分的に重なっているが、2つの変化領域RA1,RA2はこれ以外の種々の関係を取る場合がある。例えば、2つの変化領域RA1,RA2が全く重なり合わない場合も存在し、両者が完全に重なり合う場合も存在する。例えば、フック処理モジュール400が特定の描画命令に従って描画を行い、その後、通常の描画モジュール124,126,128が同じ描画命令に従って同じ領域の描画を行った場合には、2つの変化領域RA1,RA2は同一となる。但し、同じ描画命令を実行したときにも、各モジュールの設定によっては、2つの変化領域RA1,RA2に若干の差異が生じる場合もあり得る。   In the example of FIG. 10A, the two change areas RA1 and RA2 partially overlap, but the two change areas RA1 and RA2 may have various other relationships. For example, there are cases where the two change regions RA1 and RA2 do not overlap at all, and there are also cases where the two change regions RA1 and RA2 completely overlap. For example, when the hook processing module 400 performs drawing in accordance with a specific drawing command, and then the normal drawing modules 124, 126, and 128 perform drawing in the same region in accordance with the same drawing command, the two change regions RA1, RA2 Are the same. However, even when the same drawing command is executed, there may be a slight difference between the two change areas RA1 and RA2 depending on the setting of each module.

図10(B)は、時刻t100においてVNCサーバ130が画像転送時にRAM106から画像を直接取得する領域TG1を示しており、図10(C)はVRAM114から画像を取得する領域TG2を示している。これらの領域TG1,TG2を「転送領域」とも呼ぶ。この例から理解できるように、通常転送処理において、第1の変化領域RA1(=TG1)の画像はRAM106内から直接取得され、また、第2の変化領域RA2のうちで第1の変化領域RA1に含まれない部分の領域TG2の画像は、VRAM114から取得される。このように区別する理由は、VRAM114から取得する画像を可能な限り少なくして、その取得に要する時間を少なくするためである。例えば、2つの変化領域RA1,RA2が完全に重なる場合には、VRAM114から画像を取得する必要が無くなるので、転送処理を高速に行うことができる。図10(D)は、時刻t100においてVNCサーバ130によって転送される領域全体(画面更新領域TTG)を示している。この画面更新領域TTGは、第1と第2の変化領域RA1,RA2の和領域に相当する。   FIG. 10B shows an area TG1 where the VNC server 130 directly acquires an image from the RAM 106 at the time t100 during image transfer, and FIG. 10C shows an area TG2 where the image is acquired from the VRAM 114. These areas TG1 and TG2 are also referred to as “transfer areas”. As can be understood from this example, in the normal transfer process, the image of the first change area RA1 (= TG1) is directly acquired from the RAM 106, and the first change area RA1 among the second change areas RA2 is obtained. The image of the area TG2 that is not included in the area is acquired from the VRAM 114. The reason for this distinction is to reduce the number of images acquired from the VRAM 114 as much as possible and reduce the time required for the acquisition. For example, when the two change areas RA1 and RA2 are completely overlapped, it is not necessary to acquire an image from the VRAM 114, so that the transfer process can be performed at high speed. FIG. 10D shows the entire area (screen update area TTG) transferred by the VNC server 130 at time t100. This screen update area TTG corresponds to the sum area of the first and second change areas RA1 and RA2.

なお、第1の変化領域情報A1に複数の描画命令に対応する複数の情報が含まれている場合がある。この場合には、これらの複数の描画命令の描画領域の和領域が第1の変化領域RA1となる。第2の変化領域RA2や再送領域RRSについても同様である。   The first change area information A1 may include a plurality of information corresponding to a plurality of drawing commands. In this case, the sum area of the drawing areas of the plurality of drawing commands becomes the first change area RA1. The same applies to the second change area RA2 and the retransmission area RRS.

図9のステップS306では、2つの変化領域RA1,RA2の両方が空か否かが判定される。2つの変化領域RA1,RA2が両方とも空の場合には、後述するステップS314において再送処理が実行される。一方、2つの変化領域RA1,RA2のいずれかが空でない場合には、ステップS308〜S312において通常転送処理が実行される。   In step S306 in FIG. 9, it is determined whether or not both of the two change areas RA1 and RA2 are empty. When the two change areas RA1 and RA2 are both empty, retransmission processing is executed in step S314 described later. On the other hand, when one of the two change areas RA1 and RA2 is not empty, normal transfer processing is executed in steps S308 to S312.

図9のステップS308では、2種類の変化領域情報A1,A2で表される変化領域RA1,RA2の差分を計算する。具体的には、第2の変化領域RA2の中で、第1の変化領域RA1に含まれない領域TG2(図10(C))が算出される。   In step S308 in FIG. 9, the difference between the change areas RA1 and RA2 represented by the two types of change area information A1 and A2 is calculated. Specifically, a region TG2 (FIG. 10C) that is not included in the first change region RA1 in the second change region RA2 is calculated.

ステップS310では、第1の変化領域情報A1を再送領域情報RSとして追加される。この結果、時刻t100における第1の変化領域情報A1が、次の時刻t101以降では再送領域情報RSとして利用できることになる。   In step S310, the first change area information A1 is added as retransmission area information RS. As a result, the first change area information A1 at time t100 can be used as retransmission area information RS after the next time t101.

ステップS312では、画面更新領域TTG(図10(D))の最適化処理が実行される。図11は、画面更新領域の最適化処理の内容を示す説明図である。図11(A)は、図10(D)と同じ画面更新領域TTGを示している。最適化処理では、図11(B)に示すように、画面更新領域TTGを互いに重ならない隣接する矩形領域R11〜R13に分割する。そして、これらの矩形領域R11〜R13が、最適化後の画面更新領域として採用される。個々の画面更新領域R11〜R13は矩形なので、最適化前の画面更新領域TTGを包含するような矩形形状の画像を転送する場合に比べて、転送される画像データ量を削減することが可能である。   In step S312, the optimization process of the screen update area TTG (FIG. 10D) is executed. FIG. 11 is an explanatory diagram showing the contents of the optimization process of the screen update area. FIG. 11A shows the same screen update area TTG as in FIG. In the optimization process, as shown in FIG. 11B, the screen update area TTG is divided into adjacent rectangular areas R11 to R13 that do not overlap each other. And these rectangular area | regions R11-R13 are employ | adopted as a screen update area | region after optimization. Since each of the screen update areas R11 to R13 is rectangular, it is possible to reduce the amount of image data to be transferred compared to the case of transferring a rectangular image including the screen update area TTG before optimization. is there.

図8のステップS22では、画面更新領域に相当する画像部分の画像データが取得される。図12は、ステップS22の詳細手順を示すフローチャートである。ステップS70では、第2の転送領域TG2(図10(C))が空である否かが調べられる。なお「第2の転送領域TG2」は、前述したように、画面更新領域TTGの中で画像データがVRAM114から取得される領域である。第2の変化領域情報A2が存在しない場合、及び、第2の変化領域A2が第1の変化領域A1に完全に包含されている場合には、第2の転送領域TG2は空である。第2の転送領域TG2が空である場合には、後述するステップS74に移行する。一方、第2の転送領域TG2が空でない場合には、ステップS72が実行される。ステップS72では、VNCサーバ130が第2の転送領域TG2の画像データをVRAM114から取得してRAM106内の画像データ格納領域106bに書き込む。この結果、画像データ格納領域106bには、図10(D)に示す画面更新領域TTG内の画像がすべて格納された状態になる。ステップS74では、VNCサーバ130が画面更新領域TTGの画像データをRAM106の画像データ格納領域106bから取得する。なお、実際に取得されるのは、最適化処理後の個々の画面更新領域R11〜R13(図11(B))の画像データである。   In step S22 of FIG. 8, image data of an image portion corresponding to the screen update area is acquired. FIG. 12 is a flowchart showing the detailed procedure of step S22. In step S70, it is checked whether or not the second transfer area TG2 (FIG. 10C) is empty. The “second transfer area TG2” is an area in which image data is acquired from the VRAM 114 in the screen update area TTG as described above. When the second change area information A2 does not exist and when the second change area A2 is completely included in the first change area A1, the second transfer area TG2 is empty. If the second transfer area TG2 is empty, the process proceeds to step S74 described later. On the other hand, if the second transfer area TG2 is not empty, step S72 is executed. In step S72, the VNC server 130 acquires the image data in the second transfer area TG2 from the VRAM 114 and writes it in the image data storage area 106b in the RAM 106. As a result, all the images in the screen update area TTG shown in FIG. 10D are stored in the image data storage area 106b. In step S74, the VNC server 130 acquires the image data of the screen update area TTG from the image data storage area 106b of the RAM 106. Note that what is actually acquired is the image data of the individual screen update areas R11 to R13 (FIG. 11B) after the optimization processing.

図8のステップS24では、予め設定された複数のエンコーディング形式(「圧縮方式」あるいは「圧縮方法」とも呼ぶ)のいずれかに従って画像データが変換される。図13は、ステップS24の詳細手順を示すフローチャートである。ステップS502では、再送フラグがオフか否かが判定される。再送フラグがオフの場合(通常転送処理の場合)には、画像がJPEG圧縮によって圧縮される。一方、再送フラグがオンの場合(再送処理の場合)には、画像がZLIB圧縮によって圧縮される。なお、ZLIB圧縮は、よく知られているように、可逆圧縮であり画質劣化の無い圧縮方法(ロスレス圧縮)である。本実施例では、通常転送処理ではJPEG圧縮を用いるので、画像データ量を削減することができ、転送速度を増大させることが可能である。一方、再送処理ではZLIB圧縮を用いるので、より高画質な画像を転送することが可能である。   In step S24 of FIG. 8, the image data is converted according to any of a plurality of preset encoding formats (also referred to as “compression method” or “compression method”). FIG. 13 is a flowchart showing the detailed procedure of step S24. In step S502, it is determined whether or not the retransmission flag is off. When the retransmission flag is off (in the case of normal transfer processing), the image is compressed by JPEG compression. On the other hand, when the retransmission flag is on (in the case of retransmission processing), the image is compressed by ZLIB compression. As is well known, ZLIB compression is a compression method (lossless compression) that is lossless and has no image quality degradation. In this embodiment, JPEG compression is used in the normal transfer process, so that the amount of image data can be reduced and the transfer speed can be increased. On the other hand, since the ZLIB compression is used in the retransmission process, it is possible to transfer a higher quality image.

なお、圧縮方法としては、これら以外の種々の圧縮方法を採用することも可能である。また、通常転送処理と再送処理で同じ圧縮方法を利用するようにしてもよい。通常転送処理と再送処理で異なる圧縮方法を利用する場合には、相対的に画質劣化の大きな圧縮方法と、相対的に画質劣化の小さな圧縮方法を含む複数の圧縮方法の中から圧縮方法を選択できることが好ましい。この場合に、通常転送処理では相対的に画質劣化の大きな圧縮方法を使用し、再送処理では相対的に画質劣化の小さな圧縮方法を使用することが好ましい。この理由は、再送処理が実行されるのは描画が停止しているときであり、画質の良否が目立ち易いので、より高画質の画像を転送したいからである。   It should be noted that various compression methods other than these can be employed as the compression method. The same compression method may be used for the normal transfer process and the retransmission process. When using different compression methods for normal transfer processing and retransmission processing, select a compression method from multiple compression methods, including compression methods with relatively large image quality degradation and compression methods with relatively small image quality degradation. Preferably it can be done. In this case, it is preferable to use a compression method with relatively large image quality degradation in the normal transfer processing, and a compression method with relatively little image quality degradation in the retransmission processing. The reason for this is that the retransmission process is executed when drawing is stopped, and the quality of the image quality is conspicuous, so that a higher quality image is desired to be transferred.

図8のステップS26では、こうして変換された画像データと変化領域情報とを含む画面更新メッセージ(図5)が作成され、ネットワークインタフェース部112を介してプロジェクタ200に転送される。   In step S <b> 26 of FIG. 8, a screen update message (FIG. 5) including the image data thus converted and the change area information is created and transferred to the projector 200 via the network interface unit 112.

プロジェクタ200のネットワークインタフェース部212(図2)は、ネットワーク300を介して供給された通信データを受信すると、この通信データに含まれている画面更新メッセージを取り出して、VNCクライアント230に渡す。VNCクライアント230は、画面更新メッセージに含まれる画像データを画像処理ドライバ228に渡す。画像処理ドライバ228は、この画像データに従って画像処理部214を制御し、画像処理部214によって画像処理部214内の表示メモリ(図示せず)に画像データを展開させる。この結果、プロジェクタ200は、図1に示すように、投写表示画面70に画像を表示することができる。   When the network interface unit 212 (FIG. 2) of the projector 200 receives the communication data supplied via the network 300, the network interface unit 212 (FIG. 2) extracts a screen update message included in the communication data and passes it to the VNC client 230. The VNC client 230 passes the image data included in the screen update message to the image processing driver 228. The image processing driver 228 controls the image processing unit 214 according to the image data, and causes the image processing unit 214 to develop the image data in a display memory (not shown) in the image processing unit 214. As a result, the projector 200 can display an image on the projection display screen 70 as shown in FIG.

時刻t101においても、図8のステップS20〜S26の処理が同様に実行される。但し、時刻t101では、図7(B−1)〜(B−3)に示すように、変化領域情報A1,A2は存在せず、再送領域情報RSとして画像G1の領域を表す情報が登録されている。なお、2つの変化領域情報A1,A2が両方とも存在しないことは、画像の描画命令が無かったこと(画像の描画が停止したこと)を意味している。このとき、図9のステップS306において、変化領域RA1,RA2が両方とも空なので、ステップS314の再送処理が実行される。   Also at time t101, the processing of steps S20 to S26 in FIG. 8 is executed in the same manner. However, at time t101, as shown in FIGS. 7B-1 to 7B-3, there is no change area information A1, A2, and information representing the area of the image G1 is registered as retransmission area information RS. ing. The absence of both of the two change area information A1 and A2 means that there has been no image drawing command (image drawing has been stopped). At this time, since the change areas RA1 and RA2 are both empty in step S306 in FIG. 9, the retransmission process in step S314 is executed.

図14は、ステップS314の詳細手順を示すフローチャートである。ステップS320では、再送領域RRSが空か否かが判断される。再送領域RRSが空である場合には、そのまま処理を終了する。この場合には、実際には再送処理は実行されないことになる。一方、再送領域RRSが空でない場合には、ステップS322〜S326の処理が実行される。   FIG. 14 is a flowchart showing a detailed procedure of step S314. In step S320, it is determined whether or not retransmission area RRS is empty. If the retransmission area RRS is empty, the process is terminated as it is. In this case, the retransmission process is not actually executed. On the other hand, if the retransmission area RRS is not empty, the processes of steps S322 to S326 are executed.

図15は、ステップS322の処理内容を示す説明図である。図15(A)に示すように、時刻t101では第1と第2の変化領域RA1,RA2は存在せず、再送領域RRSは画像G1の領域である。このとき、図14のステップS322では、図15(B),(C)に示すように、再送領域RRSの先頭にある所定のサイズの領域DPが分割(または抽出)され、この領域DPが第2の転送領域TG2に追加される。なお、変化領域RA1,RA2は空なので、分割領域DPのみが第2の転送領域TG2として設定される。ステップS322ではさらに、再送領域RRSから分割領域DPが削除される。図15(D)はこの修正後の再送領域RRS’を示している。時刻t101では、第1の転送領域TG1(RAM106から直接画像が取得される領域)は空なので、第2の転送領域TG2と画面更新領域TTG(図15(E))とは等しい。従って、画面更新領域TTG内の全部の画像がVRAM114から取得されて転送されることになる。   FIG. 15 is an explanatory diagram showing the processing content of step S322. As shown in FIG. 15A, the first and second change areas RA1 and RA2 do not exist at time t101, and the retransmission area RRS is an area of the image G1. At this time, in step S322 of FIG. 14, as shown in FIGS. 15B and 15C, a region DP having a predetermined size at the head of the retransmission region RRS is divided (or extracted), and this region DP is Is added to the second transfer area TG2. Since the change areas RA1 and RA2 are empty, only the divided area DP is set as the second transfer area TG2. In step S322, the segment area DP is further deleted from the retransmission area RRS. FIG. 15D shows the re-transmission area RRS 'after this correction. At time t101, the first transfer area TG1 (an area in which an image is directly acquired from the RAM 106) is empty, so the second transfer area TG2 and the screen update area TTG (FIG. 15E) are equal. Therefore, all the images in the screen update area TTG are acquired from the VRAM 114 and transferred.

なお、再送領域RRSの一部でなくその全体を第2の転送領域TG2として設定することも可能である。換言すれば、再送領域RRSの少なくとも一部を第2の転送領域TG2として設定してもよい。但し、本実施例のように、再送領域RRSのうちの所定のサイズの領域DPのみを第2の転送領域TG2として設定するようにすれば、1回の再送処理に要する時間を短縮することができる。また、数回にわたる再送処理の途中で描画が開始された場合には素早く通常転送処理に戻ることができるので、通常転送処理による処理を過度に遅延させることが無いという利点もある。   Note that it is possible to set the entire retransmission area RRS instead of a part thereof as the second transfer area TG2. In other words, at least a part of the retransmission area RRS may be set as the second transfer area TG2. However, if only the area DP of a predetermined size in the retransmission area RRS is set as the second transfer area TG2 as in the present embodiment, the time required for one retransmission process can be shortened. it can. In addition, when drawing is started in the middle of several retransmission processes, it is possible to quickly return to the normal transfer process, and there is an advantage that the process by the normal transfer process is not excessively delayed.

分割領域DPのサイズは、予め設定された所定のサイズであることが好ましい。ここで、「所定のサイズ」とは、領域DPの高さと幅の両方が予め決定されている場合に限らず、高さのみが予め決定されていて幅は任意である場合(再送領域RRSの幅に等しく設定される場合)や、幅のみが予め決定されていて高さは任意である場合(再送領域RRSの高さに等しく設定される場合)、領域DPのデータサイズ(先頭から何バイトか)が設定されている場合などの種々の場合を包含する広い意味を有している。   The size of the divided area DP is preferably a predetermined size set in advance. Here, the “predetermined size” is not limited to the case where both the height and width of the region DP are determined in advance, but only when the height is determined in advance and the width is arbitrary (retransmission region RRS). The data size of the area DP (how many bytes from the beginning), when only the width is predetermined and the height is arbitrary (when set equal to the height of the retransmission area RRS) It has a broad meaning encompassing various cases such as the case where ()) is set.

図14のステップS324では、画面更新領域TTGの最適化処理が実行される。この処理は、通常転送処理における最適化処理(図11)と同じものである。ステップS326では、再送フラグがオンに設定される。   In step S324 in FIG. 14, the optimization process of the screen update area TTG is executed. This process is the same as the optimization process (FIG. 11) in the normal transfer process. In step S326, the retransmission flag is set on.

こうして画面更新領域が決定されると、図8のステップS22(図12)、ステップS24(図13)及びステップS26が順次実行される。なお、再送処理におけるステップS22〜S26の処理内容が通常転送処理での処理内容と異なる点は、図13のステップS500において、ZLIB圧縮が実行される点だけである。再送処理ではZLIB圧縮を用いるので、より高画質な画像を転送することが可能である。   When the screen update area is thus determined, step S22 (FIG. 12), step S24 (FIG. 13), and step S26 of FIG. 8 are sequentially executed. Note that the processing content of steps S22 to S26 in the retransmission processing is different from the processing content of the normal transfer processing only in that ZLIB compression is executed in step S500 of FIG. Since the retransmission processing uses ZLIB compression, it is possible to transfer a higher quality image.

このように、第1実施例では、フック処理モジュール400が、特定の描画命令をフックして先取りし、変化領域の画像データをRAM106に直接書き込む処理を実行するようにしている。この結果、図3に示した比較例においてVRAM114からRAM106への画像データの転送に要していた時間を節約することができる。この結果、プロジェクタ200に画像データを転送する場合の転送速度を十分に速くすることができるという利点がある。   As described above, in the first embodiment, the hook processing module 400 hooks a specific drawing command to prefetch and executes a process of directly writing the image data of the change area to the RAM 106. As a result, the time required to transfer the image data from the VRAM 114 to the RAM 106 in the comparative example shown in FIG. 3 can be saved. As a result, there is an advantage that the transfer speed when image data is transferred to the projector 200 can be sufficiently increased.

なお、一般に使用されているパーソナルコンピュータでは、RAM106からVRAM114へのデータ転送は非常に高速に実行できるのに対して、VRAM114からRAM106へのデータ転送はその数倍低速でしか実行できないアーキテクチャとなっていることが多い。第1実施例では、低速なVRAMからRAMへのデータ転送を削減できるので、プロジェクタ200に画像データを転送するために要する時間を大幅に削減することが可能である。   In a general personal computer, data transfer from the RAM 106 to the VRAM 114 can be executed at a very high speed, whereas data transfer from the VRAM 114 to the RAM 106 can be executed only several times slower than that. There are many. In the first embodiment, since the data transfer from the low-speed VRAM to the RAM can be reduced, the time required to transfer the image data to the projector 200 can be greatly reduced.

また、第1実施例では、通常転送処理において、フック処理モジュール400によって描画されていない領域TG2(図10(C))の画像部分に関しては、VRAM114から取得してプロジェクタ200に転送している。この結果、通常の描画モジュール124,126,128で描画された画像についても欠落無しにプロジェクタ200に転送することが可能である。   In the first embodiment, in the normal transfer process, the image portion of the area TG2 (FIG. 10C) not drawn by the hook processing module 400 is acquired from the VRAM 114 and transferred to the projector 200. As a result, the images drawn by the normal drawing modules 124, 126, and 128 can be transferred to the projector 200 without omission.

さらに、第1実施例では、通常転送処理の際に第1の変化領域RA1が再送領域RRSとして登録され、画像の描画が停止したときに再送領域RRS内の画像がVRAM114から取得されて再送される。通常転送処理時には第1の変化領域RA1の画像はRAM106から直接取得されるが、この画像の画質が望ましくないものであった場合にも、描画の停止後に高画質の画像を再送することができる。これは、特に以下のような場合に効果が顕著である。   Furthermore, in the first embodiment, the first change area RA1 is registered as the retransmission area RRS during the normal transfer process, and the image in the retransmission area RRS is acquired from the VRAM 114 and retransmitted when image drawing stops. The During the normal transfer process, the image of the first change area RA1 is directly acquired from the RAM 106, but even when the image quality of this image is not desirable, it is possible to retransmit the high-quality image after the drawing is stopped. . This is particularly effective in the following cases.

すなわち、アプリケーションプログラム122から特定の描画命令が発行されると、フック処理モジュール400を経由してGDI124に描画命令が渡される。このとき、描画命令によっては、GDI124においてさらに画像データが加工される場合がある。この場合には、フック処理モジュール400がRAM106内の画像データ格納領域106bに描画した画像と、ディスプレイドライバ126がVRAM114に描画した画像との間に差異が発生する。第1の変化領域RA1内の画像は、画像データ格納領域106bから直接取得されてプロジェクタ200に転送されて表示され、一方、コンピュータ100(図1)の画面にはディスプレイドライバ126によってVRAM114に描画される画像が表示される。本来は、コンピュータ100に表示される画像と同じ画像をプロジェクタ200にも表示したいが、GDI124が画像を加工した場合にはこれが実現できないことになる。但し、両者の画像の差は通常はわずかなので、描画が継続的に実行されて画面内の画像に何らかの変更が加えられている間は、プロジェクタ200とコンピュータ100に表示される画像に差があっても大きな問題とはならない。一方、描画が停止すると、観察者が画像をより詳細に観察できるので、プロジェクタ200で表示された画像を不満足なものであると感じる場合がある。第1実施例では、描画が停止した後に、再送領域RRS内の画像をVRAM114から取得して転送するので、このような場合にも望まし画像をプロジェクタ200で表示することが可能である。   That is, when a specific drawing command is issued from the application program 122, the drawing command is passed to the GDI 124 via the hook processing module 400. At this time, depending on the drawing command, the GDI 124 may further process the image data. In this case, a difference occurs between the image drawn by the hook processing module 400 in the image data storage area 106 b in the RAM 106 and the image drawn by the display driver 126 in the VRAM 114. The image in the first change area RA1 is directly acquired from the image data storage area 106b, transferred to the projector 200, and displayed. On the other hand, the image is drawn on the VRAM 114 by the display driver 126 on the screen of the computer 100 (FIG. 1). Displayed. Originally, it is desired to display the same image as the image displayed on the computer 100 on the projector 200, but this cannot be realized when the GDI 124 processes the image. However, since the difference between the two images is usually slight, there is a difference between the images displayed on the projector 200 and the computer 100 while the drawing is continuously executed and any changes are made to the image on the screen. However, it is not a big problem. On the other hand, when the drawing is stopped, the observer can observe the image in more detail, and thus the image displayed on the projector 200 may feel unsatisfactory. In the first embodiment, after drawing is stopped, the image in the retransmission area RRS is acquired from the VRAM 114 and transferred, so that the desired image can be displayed on the projector 200 even in such a case.

なお、上記実施例では、描画が停止したときに直ちに再送処理を開始しているが、描画停止した後の所定の期間の経過後に再送処理を開示するようにしてもよい。   In the above embodiment, the retransmission process is started immediately when drawing is stopped. However, the retransmission process may be disclosed after the elapse of a predetermined period after the drawing is stopped.

B.第2実施例:
図16は、第2実施例におけるステップS20(図8の画面更新領域決定処理)の詳細手順を示すフローチャートである。第2実施例は、ステップS20の処理内容(より詳しくは再送処理の内容)が第1実施例と異なるだけであり、他の構成や動作は第1実施例と同じである。図16では、図9のステップS306とステップS308の間にステップS400が追加されており、また、再送処理のステップS314aの内容が図9のステップS314とは異なっている。
B. Second embodiment:
FIG. 16 is a flowchart showing a detailed procedure of step S20 (screen update area determination processing in FIG. 8) in the second embodiment. The second embodiment is different from the first embodiment only in the processing contents of step S20 (more specifically, the contents of the retransmission process), and the other configurations and operations are the same as those of the first embodiment. In FIG. 16, step S400 is added between step S306 and step S308 of FIG. 9, and the contents of step S314a of the retransmission process are different from step S314 of FIG.

ステップS400では、停止カウント値CTと区分領域番号Nとが0に初期化される。これらのパラメータCT,Nは、再送処理(ステップS314a)において利用されるパラメータである。通常転送処理(ステップS308〜S312)は、第1実施例と同じなので説明を省略する。   In step S400, the stop count value CT and the segment area number N are initialized to zero. These parameters CT and N are parameters used in the retransmission process (step S314a). Since the normal transfer process (steps S308 to S312) is the same as that of the first embodiment, the description thereof is omitted.

図17は、第2実施例におけるステップS314a(再送処理)の詳細手順を示すフローチャートである。この図17は、図14のステップS320〜S326にステップS410〜S416が追加されたものである。   FIG. 17 is a flowchart showing a detailed procedure of step S314a (retransmission processing) in the second embodiment. In FIG. 17, steps S410 to S416 are added to steps S320 to S326 of FIG.

ステップS410では、停止カウント値CTが、所定の最大値CTmax以上であるか否かが判断される。停止カウント値CTは、描画が停止してからVNCサーバ130による転送処理が何回開始されたかを示すパラメータである。停止カウント値CTが最大値CTmax未満の場合には、ステップS412において停止カウント値CTが1つインクリメントされ、ステップS320〜S326の再送処理が実行される。従って、描画が停止してから(CTmax−1)回は、ステップS412,S320〜S326の再送処理が繰り返し実行されることになる。なお、ステップS320〜S326の処理は、第1実施例で説明した処理(図15)と同じものなので説明を省略する。   In step S410, it is determined whether or not the stop count value CT is greater than or equal to a predetermined maximum value CTmax. The stop count value CT is a parameter indicating how many times transfer processing by the VNC server 130 has been started since drawing has stopped. If the stop count value CT is less than the maximum value CTmax, the stop count value CT is incremented by 1 in step S412, and the retransmission processing in steps S320 to S326 is executed. Therefore, the retransmission process of steps S412 and S320 to S326 is repeatedly executed (CTmax-1) times after the drawing is stopped. Note that the processing in steps S320 to S326 is the same as the processing described in the first embodiment (FIG. 15), and thus description thereof is omitted.

一方、停止カウント値CTが最大値CTmax以上になると、ステップS414.S416の処理(「全画面再送処理」)が実行される。すなわち、この全画面再送処理は、再送領域情報RSが登録されているか否かに拘わらず、停止カウント値CTが最大値CTmax以上になると実行される。なお、最大値CTmaxは、例えば描画停止後約1秒に相当する値に設定される。   On the other hand, when the stop count value CT becomes equal to or greater than the maximum value CTmax, step S414. The process of S416 ("full screen retransmission process") is executed. That is, this full-screen retransmission process is executed when the stop count value CT becomes equal to or greater than the maximum value CTmax, regardless of whether or not the retransmission area information RS is registered. The maximum value CTmax is set to a value corresponding to about 1 second after drawing is stopped, for example.

ステップS414では、区分領域番号Nの値が1つインクリメントされる。この区分領域番号Nは、全画面領域を所定のサイズで複数の領域に区分したときの各区分領域の番号(序数)を示すためのパラメータである。ステップS416では、全画面領域内のN番目の区分領域が第2の転送領域TG2に追加され、ステップS326に移行して再送フラグがオンに設定される。   In step S414, the value of the segment area number N is incremented by one. This divided area number N is a parameter for indicating the number (ordinal number) of each divided area when the entire screen area is divided into a plurality of areas with a predetermined size. In step S416, the Nth segment area in the entire screen area is added to the second transfer area TG2, and the process proceeds to step S326, where the retransmission flag is set to ON.

図18は、ステップS414,S416の内容を示す説明図である。全画面再送処理では、画面領域SCAの全体が、所定のサイズの複数の区分領域DDP1〜DDPnに分割される。そして、CTmax≦CTとなった時刻t200(図18(A))では1番目の区分領域DDP1が第2の転送領域TG2として設定される。また、次の時刻t201(図18(B))では、2番目の区分領域DDP2が第2の転送領域TG2として設定される。この結果、全画面の画像が、複数回の再送処理によってプロジェクタ200に転送される。   FIG. 18 is an explanatory diagram showing the contents of steps S414 and S416. In the full screen retransmission process, the entire screen area SCA is divided into a plurality of divided areas DDP1 to DDPn having a predetermined size. Then, at time t200 (FIG. 18A) when CTmax ≦ CT, the first segment area DDP1 is set as the second transfer area TG2. At the next time t201 (FIG. 18B), the second segment area DDP2 is set as the second transfer area TG2. As a result, the full-screen image is transferred to the projector 200 by a plurality of retransmission processes.

なお、画面領域SCAの一部でなく全体を第2の転送領域TG2として設定することも可能である。但し、本実施例のように、画面領域SCAの一部の区分領域のみを第2の転送領域TG2として設定するようにすれば、1回の再送処理に要する時間を短縮することができる。また、複数回の再送処理の途中で描画が開始された場合には素早く通常転送処理に戻ることができるので、通常転送処理による処理を過度に遅延させることが無いという利点もある。   Note that it is possible to set not the entire screen area SCA but the whole as the second transfer area TG2. However, as in the present embodiment, if only a part of the segment area of the screen area SCA is set as the second transfer area TG2, the time required for one retransmission process can be shortened. In addition, when drawing is started in the middle of a plurality of retransmission processes, it is possible to quickly return to the normal transfer process, and there is an advantage that the process by the normal transfer process is not excessively delayed.

区分領域DDP1〜DDPnのサイズは、予め設定された所定のサイズであることが好ましい。ここで、「所定のサイズ」とは、区分領域の高さと幅の両方が予め決定されている場合に限らず、高さのみが予め決定されていて幅は任意である場合(画面領域SCAの幅に等しく設定される)や、幅のみが予め決定されて
いて高さは任意である場合(画面領域SCAの高さに等しく設定される)、区領域のデータサイズ(先頭から何バイトか)が設定されている場合などの種々の場合を包含する広い意味を有している。
The sizes of the divided areas DDP1 to DDPn are preferably a predetermined size set in advance. Here, the “predetermined size” is not limited to the case where both the height and width of the segmented area are determined in advance, but only when the height is determined in advance and the width is arbitrary (in the screen area SCA). If the width is predetermined and the height is arbitrary (set equal to the height of the screen area SCA), the data size of the section area (how many bytes from the top) Has a broad meaning including various cases such as

なお、全画面の再送処理を、「全画面再送処理」又は「全画面再送モード」とも呼ぶ。全画面再送処理では、再送領域情報RSを使用していない点で第1実施例で図14,図15に即して説明した再送処理とは異なっている。再送領域情報RSを使用する再送処理は、狭義の再送処理と呼ぶことも可能である。なお、第2実施例において、狭義の再送処理を実行せずに、全画面再送処理のみを実行するようにしてもよい。   The full-screen retransmission process is also referred to as “full-screen retransmission process” or “full-screen retransmission mode”. The full-screen retransmission process is different from the retransmission process described with reference to FIGS. 14 and 15 in the first embodiment in that the retransmission area information RS is not used. The retransmission process using the retransmission area information RS can also be referred to as a narrowly defined retransmission process. In the second embodiment, only the full-screen retransmission process may be executed without executing the narrowly-defined retransmission process.

このように、第2実施例では、描画が停止した後に所定の期間が経過すると全画面再送処理に移行するので、画像の描画が停止した後にVRAM114内の全画面領域の画像を転送することが可能である。従って、何らかの原因によって、通常転送処理及び再送領域情報RSを用いた狭義の再送処理によって転送された画像と、VRAM114内の画像との間に差異が発生した場合にも、コンピュータ100とプロジェクタ200で表示される画像を完全に一致させることが可能である。   As described above, in the second embodiment, when the predetermined period elapses after the drawing is stopped, the process proceeds to the full screen retransmission process. Therefore, the image of the full screen area in the VRAM 114 can be transferred after the drawing of the image is stopped. Is possible. Therefore, even if there is a difference between the image transferred by the normal transfer process and the retransmission process in the narrow sense using the retransmission area information RS and the image in the VRAM 114 for some reason, the computer 100 and the projector 200 It is possible to completely match the displayed images.

C.第3実施例:
図19は、第3実施例におけるステップS24(図8の画像データ変換処理)の詳細手順を示すフローチャートである。第3実施例は、ステップS24の処理内容(より詳しくは再送処理の内容)が第1実施例又は第2実施例と異なるだけであり、他の構成や動作は第1実施例又は第2実施例と同じである。図19は、図13のステップS500とステップS502の間にステップS520,S522が追加されたものである。
C. Third embodiment:
FIG. 19 is a flowchart showing a detailed procedure of step S24 (image data conversion processing of FIG. 8) in the third embodiment. The third embodiment is different from the first embodiment or the second embodiment only in the processing contents of step S24 (more specifically, the contents of the retransmission process), and the other configurations and operations are the first embodiment or the second embodiment. Same as example. FIG. 19 is obtained by adding steps S520 and S522 between step S500 and step S502 of FIG.

ステップS520では、画像更新領域の画像に対してJPEG圧縮を適用すべきか否かが判断される。JPEG圧縮を適用すべきか否かは、例えば画像データを解析することによって判定することができる。具体的には、画像の所定箇所(例えば四隅と中央)のそれぞれ所定画素数の画素値をサンプリングして色数をカウントし、その色数が所定の閾値未満のときにはZLIB圧縮を採用し、閾値以上の場合にはJPEG圧縮を採用しても良い。色数が少ない画像に対してはZLIB圧縮でもかなりデータ量を削減できるので、転送速度を過度に低下させることなく高画質の画像を転送できる。一方、色数が多い画像に対してはJPEG圧縮を採用することによって、高速な画像転送を実現することができる。なお、どちらの圧縮方法を採用するかの判定は、描画される個々の画像毎に行っても良く、あるいは、最適化後の個々の画面更新領域(図11(B)の領域R11〜RR13)毎に行ってもよい。   In step S520, it is determined whether JPEG compression should be applied to the image in the image update area. Whether or not JPEG compression should be applied can be determined by analyzing image data, for example. Specifically, pixel values of a predetermined number of pixels at each of predetermined positions (for example, the four corners and the center) of the image are sampled to count the number of colors, and when the number of colors is less than a predetermined threshold, ZLIB compression is adopted, In the above case, JPEG compression may be adopted. For an image with a small number of colors, the amount of data can be considerably reduced even by ZLIB compression, so that a high-quality image can be transferred without excessively reducing the transfer speed. On the other hand, for images with a large number of colors, high-speed image transfer can be realized by adopting JPEG compression. The determination of which compression method to use may be made for each individual image to be rendered, or individual screen update regions after optimization (regions R11 to RR13 in FIG. 11B). It may be done every time.

ステップS522では、JPEG圧縮される画像更新領域を表す再送領域情報RSが追加登録される。こうすれば、JPEG圧縮によってやや画質が劣化した画像を転送した場合にも、描画が停止した後の再送処理によって高画質の画像を再送することが可能になる。   In step S522, retransmission area information RS indicating an image update area to be JPEG compressed is additionally registered. In this way, even when an image with slightly deteriorated image quality due to JPEG compression is transferred, a high-quality image can be retransmitted by resending processing after drawing is stopped.

第3実施例では、通常転送処理において転送対象となる2種類の領域が再送領域として登録されることになる。すなわち、図9のステップS310では、第1の変化領域RA1が再送領域として登録され、また、図19のステップS522では、JPEG圧縮されて転送された画像の領域が再送領域として登録される。   In the third embodiment, two types of areas to be transferred in the normal transfer process are registered as retransmission areas. That is, in step S310 in FIG. 9, the first change area RA1 is registered as the retransmission area, and in step S522 in FIG. 19, the area of the image transferred after JPEG compression is registered as the retransmission area.

図20は、第3実施例における変化領域RA1,RA2と再送領域RRSとの関係の一例を示している。図20(A)は、図10(A)に示した第1と第2の変化領域RA1,RA2と同じものであり、図20(B)の画面更新領域R11〜R13は図11(B)に示したものと同じである。ここで、画面更新領域R11は第1の変化領域RA1と等しく、フック処理によって描画される領域である。従って、この領域RA1は、その画像の圧縮にJPEG圧縮とZLIB圧縮のいずれが利用されるかに拘わらず、再送領域として登録される。また、画面更新領域R12,R13内の画像の転送時には、JPEG圧縮が利用されるものと仮定している。このとき、画面更新領域R12,R13も再送領域として追加登録される。この結果、図20(C)に示すように、画面更新領域R11〜R13のすべてがが再送領域RRSとして登録されることになる。   FIG. 20 shows an example of the relationship between the change areas RA1, RA2 and the retransmission area RRS in the third embodiment. 20A is the same as the first and second change areas RA1 and RA2 shown in FIG. 10A, and the screen update areas R11 to R13 in FIG. 20B are shown in FIG. It is the same as shown in. Here, the screen update area R11 is equal to the first change area RA1, and is an area drawn by hook processing. Therefore, this area RA1 is registered as a retransmission area regardless of whether JPEG compression or ZLIB compression is used to compress the image. It is assumed that JPEG compression is used when transferring images in the screen update areas R12 and R13. At this time, the screen update areas R12 and R13 are additionally registered as retransmission areas. As a result, as shown in FIG. 20C, all of the screen update areas R11 to R13 are registered as the retransmission area RRS.

なお、第3実施例において、第1の変化領域RA1を再送領域として登録せずに、JPEG圧縮されて転送された画像の領域のみを再送領域として登録するようにしてもよい。また、第1実施例でも説明したように、圧縮方法としてはJPEG圧縮やZLIB圧縮以外の他の種々の圧縮方法を使用することが可能である。   In the third embodiment, the first change area RA1 may not be registered as the retransmission area, but only the area of the image transferred by JPEG compression may be registered as the retransmission area. As described in the first embodiment, various compression methods other than JPEG compression and ZLIB compression can be used as the compression method.

このように、第3実施例では、JPEG圧縮された画像を転送する際に、その領域を再送領域として登録したおき、画像の描画が停止した後に再送領域内の画像をVRAM114から取得して転送するので、高画質の画像をプロジェクタ200に表示することが可能である。   Thus, in the third embodiment, when transferring a JPEG compressed image, the area is registered as a retransmission area, and after drawing of the image is stopped, the image in the retransmission area is acquired from the VRAM 114 and transferred. Therefore, a high-quality image can be displayed on the projector 200.

D.変形例:
なお、本発明は上記した実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様にて実施することが可能であり、例えば以下のような変形が可能である。
D. Variations:
The present invention is not limited to the above-described examples and embodiments, and can be implemented in various modes without departing from the gist thereof. For example, the following modifications are possible.

D1.変形例1:
コンピュータ100からプロジェクタ200に供給される画面更新メッセージとしては、上記実施例で使用したもの以外の種々のものを使用することが可能である。例えば、画面更新メッセージとして、少なくとも画像データを含むものを使用することができる。具体的には、例えば、画面全体の画像データを転送する場合には、変化領域情報を転送する必要は無い。
D1. Modification 1:
As the screen update message supplied from the computer 100 to the projector 200, various messages other than those used in the above embodiment can be used. For example, a screen update message that includes at least image data can be used. Specifically, for example, when transferring image data of the entire screen, there is no need to transfer change area information.

また、画面更新メッセージとしては、変化領域(画面更新領域)の位置及びサイズを示す情報と、変化領域内の画像データとを少なくとも含むことが好ましい。この理由は、変化領域に関するデータ(変化領域情報及びその画像データ)のみを転送すれば、転送すべきデータ量が少なくなるからである。   The screen update message preferably includes at least information indicating the position and size of the change area (screen update area) and image data in the change area. This is because the amount of data to be transferred is reduced if only the data relating to the change area (change area information and its image data) is transferred.

D2.変形例2:
上記実施例では、第2の転送領域TG2の画像部分をVRAM114から取得して一旦RAM106内の画像データ格納領域106b内に書き込んだ後で、RAM106から画面更新領域TTGの画像を取得してネットワークを介して転送することとしていたが、画像データ格納領域106bに書き込む処理を省略することも可能である。但し、上記実施例の手順によれば、ネットワークを介して最終的に画像を転送する際に、画像を1つの画像データ格納領域106bから取得できるので、処理が単純になるという利点がある。
D2. Modification 2:
In the above-described embodiment, the image portion of the second transfer area TG2 is acquired from the VRAM 114 and once written in the image data storage area 106b in the RAM 106, and then the image of the screen update area TTG is acquired from the RAM 106 to connect the network. However, the process of writing to the image data storage area 106b can be omitted. However, according to the procedure of the above-described embodiment, when an image is finally transferred through the network, the image can be acquired from one image data storage area 106b.

D3.変形例3:
上記実施例では、描画モジュールがGDI124とディスプレイドライバ126とプロジェクタドライバ128の3つのモジュールに分かれていたが、モジュールの区分は任意であり、これらの機能を1つのモジュールにまとめることも可能である。また、ディスプレイドライバ126とプロジェクタドライバ128の機能を1つのモジュールにまとめることも可能である。
D3. Modification 3:
In the above embodiment, the drawing module is divided into three modules, the GDI 124, the display driver 126, and the projector driver 128. However, the modules can be arbitrarily classified, and these functions can be combined into one module. It is also possible to combine the functions of the display driver 126 and the projector driver 128 into one module.

D4.変形例4:
上記実施例においては、画像供給装置としてパーソナルコンピュータを用いていたが、この代わりに、他の種類のコンピュータ(モバイルコンピュータ、ハンドヘルドコンピュータ、ワークステーションなど)を用いるようにしても良い。また、これらコンピュータの他に、ネットワークに接続可能であって、コンピュータと同様な機能を有する機器を用いるようにしても良い。そのような機器には、例えば、情報携帯端末や、携帯電話機や、メール端末や、ゲーム機や、セットトップボックスなどが含まれる。また、画像表示装置としては、プロジェクタ以外の種々の表示装置を使用することが可能である。
D4. Modification 4:
In the above embodiment, a personal computer is used as the image supply device, but other types of computers (mobile computer, handheld computer, workstation, etc.) may be used instead. In addition to these computers, devices that can be connected to a network and have the same functions as the computer may be used. Such devices include, for example, information mobile terminals, mobile phones, mail terminals, game machines, set top boxes, and the like. As the image display device, various display devices other than the projector can be used.

D5.変形例5:
ネットワークとしては、ローカルエリアネットワーク(LAN)の他、ワイドエリアネットワーク(WAN)や、インターネットや、イントラネットなど、各種ネットワークを適用することができる。また、ネットワークは、有線で構成されていても良く、あるいは無線で構成されていても良い。
D5. Modification 5:
As the network, in addition to a local area network (LAN), various networks such as a wide area network (WAN), the Internet, and an intranet can be applied. The network may be configured by wire or may be configured by radio.

D6.変形例6:
上記実施例においてソフトウェアで実現されている機能の一部をハードウェアで実現してもよく、あるいは、ハードウェアで実現されている機能の一部をソフトウェアで実現してもよい。
D6. Modification 6:
In the above embodiment, a part of the functions realized by software may be realized by hardware, or a part of the functions realized by hardware may be realized by software.

本発明の一実施例として画像表示システムの構成を示す説明図である。It is explanatory drawing which shows the structure of an image display system as one Example of this invention. コンピュータとプロジェクタの内部構成を示すブロック図である。It is a block diagram which shows the internal structure of a computer and a projector. 比較例におけるコンピュータのソフトウェアとハードウェアの階層構造を示す説明図である。It is explanatory drawing which shows the hierarchical structure of the software and hardware of a computer in a comparative example. 実施例における変化領域情報と画像データ格納領域の例を示す説明図である。It is explanatory drawing which shows the example of the change area information and image data storage area in an Example. 画面更新メッセージの構造を示す説明図である。It is explanatory drawing which shows the structure of a screen update message. 実施例におけるコンピュータのソフトウェアとハードウェアの階層構造を示す説明図である。It is explanatory drawing which shows the hierarchical structure of the software and hardware of a computer in an Example. 2つの変化領域情報A1,A2と再送領域情報RSの例を示す説明図である。It is explanatory drawing which shows the example of two change area information A1, A2, and resending area information RS. 第1実施例におけるフック処理モジュールとVNCサーバの動作を示すフローチャートである。It is a flowchart which shows operation | movement of the hook process module and VNC server in 1st Example. ステップS20の詳細手順を示すフローチャートである。It is a flowchart which shows the detailed procedure of step S20. 時刻t100における変化領域と再送領域と画面更新領域との関係を示す説明図である。It is explanatory drawing which shows the relationship between the change area | region at the time t100, a resending area | region, and a screen update area | region. 画面更新領域の最適化処理の内容を示す説明図である。It is explanatory drawing which shows the content of the optimization process of a screen update area | region. ステップS22の詳細手順を示すフローチャートである。It is a flowchart which shows the detailed procedure of step S22. ステップS24の詳細手順を示すフローチャートである。It is a flowchart which shows the detailed procedure of step S24. ステップS314の詳細手順を示すフローチャートである。It is a flowchart which shows the detailed procedure of step S314. 再送処理の内容を示す説明図である。It is explanatory drawing which shows the content of the resending process. 第2実施例におけるステップS20(画面更新領域決定処理)の詳細手順を示すフローチャートである。It is a flowchart which shows the detailed procedure of step S20 (screen update area | region determination process) in 2nd Example. 第2実施例におけるステップS314a(再送処理)の詳細手順を示すフローチャートである。It is a flowchart which shows the detailed procedure of step S314a (retransmission process) in 2nd Example. ステップS414,S416(全画面再送処理)の内容を示す説明図である。It is explanatory drawing which shows the content of step S414, S416 (full-screen resending process). 第3実施例におけるステップS24(画像データ変換処理)の詳細手順を示すフローチャートである。It is a flowchart which shows the detailed procedure of step S24 (image data conversion process) in 3rd Example. 第3実施例における変化領域RA1,RA2と再送領域RRSとの関係の一例を示す説明図である。It is explanatory drawing which shows an example of the relationship between change area | region RA1, RA2 and resending area | region RRS in 3rd Example.

符号の説明Explanation of symbols

10…画像表示システム
60…表示画面
70…投写表示画面
100…コンピュータ
102…CPU
104…ROM
106…RAM
106a…変化領域情報
106b…画像データ格納領域
106s…再送領域情報
108…ハードディスクドライブ
110…入力部
112…ネットワークインタフェース部
114…VRAM
116…グラフィックコントローラ
118…表示デバイス
120…バス
122…アプリケーションプログラム
124…GDI(グラフィックスデバイスインタフェイス)
126…ディスプレイドライバ
128…プロジェクタドライバ
130…VNCサーバ
200…プロジェクタ
202…CPU
204…ROM
206…RAM
210…入力部
212…ネットワークインタフェース部
214…画像処理部
216…投写部
218…バス
228…画像処理ドライバ
230…VNCクライアント
300…ネットワーク
400…フック処理モジュール
DESCRIPTION OF SYMBOLS 10 ... Image display system 60 ... Display screen 70 ... Projection display screen 100 ... Computer 102 ... CPU
104 ... ROM
106 ... RAM
106a ... Change area information 106b ... Image data storage area 106s ... Retransmission area information 108 ... Hard disk drive 110 ... Input section 112 ... Network interface section 114 ... VRAM
116: Graphic controller 118 ... Display device 120 ... Bus 122 ... Application program 124 ... GDI (graphics device interface)
126 ... Display driver 128 ... Projector driver 130 ... VNC server 200 ... Projector 202 ... CPU
204 ... ROM
206 ... RAM
210: Input unit 212 ... Network interface unit 214 ... Image processing unit 216 ... Projection unit 218 ... Bus 228 ... Image processing driver 230 ... VNC client 300 ... Network 400 ... Hook processing module

Claims (12)

ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置であって、
画像の描画命令を発行可能なアプリケーションプログラムと、
前記アプリケーションプログラムによって発行される描画命令に従って前記画像供給装置の表示部に画像を表示するためのフレームメモリに画像を描画する描画モジュールと、
前記アプリケーションプログラムによって発行される特定の描画命令をフックして前記描画モジュールの代わりに取得し、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するとともに、前記取得した描画命令を前記描画モジュールに供給するフック処理モジュールと、
画像を前記ネットワークを介して前記画像表示装置に転送する画像転送処理モジュールと、
を備え、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能を有し、
前記画像転送処理モジュールは、
画像の描画が行われたときに、前記フック処理モジュールによって前記転送用画像格納領域に描画された画像を取得して転送する通常転送モードと、
画像の描画が停止した後に、前記描画モジュールによって前記フレームメモリに描画された画像を取得して転送する再送モードと、を有することを特徴とする画像供給装置。
An image supply device for supplying and displaying an image on an image display device via a network,
An application program capable of issuing image drawing commands;
A drawing module for drawing an image in a frame memory for displaying an image on a display unit of the image supply device according to a drawing command issued by the application program;
A specific drawing command issued by the application program is hooked and acquired instead of the drawing module, and an image is drawn in a specific transfer image storage area in a general-purpose memory according to the acquired drawing command. A hook processing module for supplying a drawing command to the drawing module;
An image transfer processing module for transferring an image to the image display device via the network;
With
The drawing module has a function of drawing an image in a frame memory in accordance with a drawing command received from the application program or the hook processing module;
The image transfer processing module
A normal transfer mode for acquiring and transferring an image drawn in the transfer image storage area by the hook processing module when the image is drawn;
An image supply apparatus comprising: a retransmission mode for acquiring and transferring an image drawn in the frame memory by the drawing module after drawing of the image is stopped.
請求項1記載の画像供給装置であって、
前記フック処理モジュールは、前記転送用画像格納領域の中で前記特定の描画命令に応じて画像が描画される領域である第1の変化領域を示す第1の変化領域情報を前記汎用メモリ内に書き込む機能とを有し、
前記画像転送処理モジュールは、
前記通常転送モードにおいては、転送が終了した前記第1の変化領域を再送領域として設定し当該再送領域を表す再送領域情報を前記汎用メモリ内に書き込み、
前記再送モードにおいては、前記再送領域の少なくとも一部に相当する画像部分を前記フレームメモリから取得して転送する、画像供給装置。
The image supply device according to claim 1,
The hook processing module stores, in the general-purpose memory, first change area information indicating a first change area that is an area in which an image is drawn in response to the specific drawing command in the transfer image storage area. And has a writing function,
The image transfer processing module
In the normal transfer mode, the first change area that has been transferred is set as a retransmission area, and retransmission area information representing the retransmission area is written in the general-purpose memory,
In the retransmission mode, an image supply device that acquires and transfers an image portion corresponding to at least a part of the retransmission area from the frame memory.
請求項2記載の画像供給装置であって、
前記再送領域の少なくとも一部に相当する画像部分は、前記再送領域のうちの所定のサイズの領域に相当する画像部分であり、
前記画像転送処理モジュールは、前記再送モードにおいて前記再送領域のうちの所定のサイズの領域に相当する画像部分を転送するとともに、前記再送領域から前記所定のサイズの領域を削除する、画像供給装置。
The image supply device according to claim 2,
An image portion corresponding to at least a part of the retransmission region is an image portion corresponding to a region of a predetermined size in the retransmission region;
The image supply processing module, wherein the image transfer processing module transfers an image portion corresponding to a predetermined size area of the retransmission area in the retransmission mode and deletes the predetermined size area from the retransmission area.
請求項2又は3記載の画像供給装置であって、
前記描画モジュールは、さらに、前記フレームメモリ内で画像が描画される領域である第2の変化領域を示す第2の変化領域情報を前記汎用メモリ内に書き込む機能を有し、
前記画像転送処理モジュールは、前記通常転送モードにおいて、
(i)前記汎用メモリ内に格納されている前記第1と第2の変化領域情報を参照して、前記第2の変化領域のうちで前記第1の変化領域に含まれない領域に相当する画像部分を前記フレームメモリから取得し、
(ii)前記第1の変化領域に相当する画像部分を前記フレームメモリから取得することなく前記転送用画像格納領域から取得し、
(iii)取得した画像部分を、前記第1と第2の変化領域の和である画面更新領域を示す画面更新領域情報とともに前記ネットワークを介して前記画像表示装置に転送する、画像供給装置。
The image supply device according to claim 2, wherein
The drawing module further has a function of writing second change area information indicating a second change area, which is an area in which an image is drawn in the frame memory, into the general-purpose memory;
In the normal transfer mode, the image transfer processing module is
(I) Referring to the first and second change area information stored in the general-purpose memory, the second change area corresponds to an area not included in the first change area. Obtaining an image portion from the frame memory;
(Ii) obtaining an image portion corresponding to the first change area from the transfer image storage area without obtaining from the frame memory;
(Iii) An image supply device that transfers the acquired image portion to the image display device via the network together with screen update region information indicating a screen update region that is a sum of the first and second change regions.
請求項1ないし4のいずれかに記載の画像供給装置であって、
前記再送モードは、前記画像の描画が停止してから所定の期間の経過後に前記フレームメモリ内の全画面領域の画像を転送する全画面再送モードを含む、画像供給装置。
The image supply device according to any one of claims 1 to 4,
The re-transmission mode includes a full-screen re-transmission mode in which an image of a full-screen area in the frame memory is transferred after a predetermined period has elapsed since drawing of the image is stopped.
請求項5記載の画像供給装置であって、
前記画像転送処理モジュールは、前記全画面再送モードにおいて、前記全画面領域を所定サイズの複数の区分領域に区分し、1回の転送処理毎に前記複数の区分領域の中から順次選択された1つの区分領域の画像を転送することによって前記全画面領域の画像の転送を完了する、画像供給装置。
The image supply device according to claim 5,
In the full-screen retransmission mode, the image transfer processing module divides the full-screen area into a plurality of divided areas having a predetermined size, and is sequentially selected from the plurality of divided areas for each transfer process. An image supply device that completes the transfer of the image of the entire screen area by transferring an image of one divided area.
請求項1ないし6のいずれかに記載の画像供給装置であって、
前記画像転送処理モジュールは、さらに、
前記通常転送モードにおいて転送される画像を、相対的に画像劣化が大きな第1の圧縮方法と、相対的に画像劣化が小さな第2の圧縮方法と、を含む複数の圧縮方法の中から選択された圧縮方法によって圧縮する機能と、
前記通常転送モードにおいて前記第1の圧縮方法で圧縮されて転送された画像の領域を、前記再送モードで転送される画像の領域である再送領域として登録する機能と、
前記再送モードにおいて、前記再送領域内の画像を前記第2の圧縮方法で画像を圧縮して転送する機能と、
を有する、画像供給装置。
The image supply device according to any one of claims 1 to 6,
The image transfer processing module further includes:
An image transferred in the normal transfer mode is selected from a plurality of compression methods including a first compression method with relatively large image degradation and a second compression method with relatively small image degradation. A function of compressing by a different compression method,
A function of registering an area of an image compressed and transferred by the first compression method in the normal transfer mode as a retransmission area that is an area of an image transferred in the retransmission mode;
A function of compressing and transferring an image in the retransmission area by the second compression method in the retransmission mode;
An image supply apparatus.
請求項1ないし7のいずれかに記載の画像供給装置であって、
前記画像転送処理モジュールの起動時に前記フック処理モジュールを前記アプリケーションプログラムにロードし、前記画像転送処理モジュールの実行終了時に前記フック処理モジュールを前記アプリケーションプログラムからアンロードするように構成されている、画像供給装置。
The image supply device according to any one of claims 1 to 7,
An image supply configured to load the hook processing module into the application program when the image transfer processing module is activated and unload the hook processing module from the application program when the execution of the image transfer processing module is completed. apparatus.
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置において利用される画像転送処理モジュールプログラムであって、
前記画像供給装置は、画像の描画命令を発行可能なアプリケーションプログラムと、前記アプリケーションプログラムによって発行される描画命令に従って前記画像供給装置の表示部に画像を表示するためのフレームメモリに画像を描画する描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして前記描画モジュールの代わりに取得し、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するとともに、前記取得した描画命令を前記描画モジュールに供給するフック処理モジュールと、を備えており、
前記画像転送処理モジュールプログラムは、画像を前記ネットワークを介して前記画像表示装置に転送する機能をコンピュータに実現させるように構成されており、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能を有し、
前記画像転送処理モジュールプログラムは、
画像の描画が行われたときに、前記フック処理モジュールによって前記転送用画像格納領域に描画された画像を取得して転送する通常転送モードと、
画像の描画が停止した後に、前記描画モジュールによって前記フレームメモリに描画された画像を取得して転送する再送モードと、をコンピュータに実現させるように構成されていることを特徴とする画像転送処理モジュールプログラム。
An image transfer processing module program used in an image supply device for supplying and displaying an image on an image display device via a network,
The image supply device includes an application program capable of issuing an image drawing command and a drawing for drawing an image in a frame memory for displaying an image on a display unit of the image supply device according to the drawing command issued by the application program A module and a specific drawing command issued by the application program are hooked and acquired instead of the drawing module, and an image is drawn in a specific transfer image storage area in the general-purpose memory according to the acquired drawing command. A hook processing module for supplying the acquired drawing command to the drawing module;
The image transfer processing module program is configured to cause a computer to realize a function of transferring an image to the image display device via the network.
The drawing module has a function of drawing an image in a frame memory in accordance with a drawing command received from the application program or the hook processing module;
The image transfer processing module program is
A normal transfer mode for acquiring and transferring an image drawn in the transfer image storage area by the hook processing module when the image is drawn;
An image transfer processing module configured to cause a computer to realize a retransmission mode for acquiring and transferring an image drawn in the frame memory by the drawing module after drawing of the image is stopped program.
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置において利用される画像転送処理装置であって、
前記画像供給装置は、画像の描画命令を発行可能なアプリケーションプログラムと、前記アプリケーションプログラムによって発行される描画命令に従って前記画像供給装置の表示部に画像を表示するためのフレームメモリに画像を描画する描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして前記描画モジュールの代わりに取得し、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するとともに、前記取得した描画命令を前記描画モジュールに供給するフック処理モジュールと、を備えており、
前記画像転送処理装置は、画像を前記ネットワークを介して前記画像表示装置に転送する機能を有しており、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能を有し、
前記画像転送処理装置は、
画像の描画が行われたときに、前記フック処理モジュールによって前記転送用画像格納領域に描画された画像を取得して転送する通常転送モードと、
画像の描画が停止した後に、前記描画モジュールによって前記フレームメモリに描画された画像を取得して転送する再送モードと、を有することを特徴とする画像転送処理装置。
An image transfer processing device used in an image supply device for supplying and displaying an image on an image display device via a network,
The image supply device includes an application program capable of issuing an image drawing command and a drawing for drawing an image in a frame memory for displaying an image on a display unit of the image supply device according to the drawing command issued by the application program A module and a specific drawing command issued by the application program are hooked and acquired instead of the drawing module, and an image is drawn in a specific transfer image storage area in the general-purpose memory according to the acquired drawing command. A hook processing module for supplying the acquired drawing command to the drawing module;
The image transfer processing device has a function of transferring an image to the image display device via the network,
The drawing module has a function of drawing an image in a frame memory in accordance with a drawing command received from the application program or the hook processing module;
The image transfer processing device includes:
A normal transfer mode for acquiring and transferring an image drawn in the transfer image storage area by the hook processing module when the image is drawn;
An image transfer processing apparatus comprising: a retransmission mode for acquiring and transferring an image drawn in the frame memory by the drawing module after drawing of the image is stopped.
アプリケーションプログラムによって発行される描画命令に従って画像供給装置の表示部に画像を表示するためのフレームメモリに画像を描画する描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして前記描画モジュールの代わりに取得し、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するとともに、前記取得した描画命令を前記描画モジュールに供給するフック処理モジュールと、を備えた画像供給装置から、ネットワークを介して画像表示装置に画像を供給して表示させる方法であって、
(a)前記フック処理モジュールが、前記アプリケーションプログラムによって発行された特定の描画命令に応じて、前記汎用メモリ内の特定の転送用画像格納領域に画像を描画する工程と、
(b)前記画像供給装置が、描画命令に応じて画像の描画が行われたときに、前記転送用画像格納領域に描画された画像を取得して転送する工程と、
(c)前記画像供給装置が、画像の描画が停止した後に、前記フレームメモリに描画された画像を取得して前記ネットワークを介して転送する工程と、
を備えることを特徴とする画像供給方法。
A drawing module that draws an image in a frame memory for displaying an image on the display unit of the image supply device according to a drawing command issued by an application program, and the drawing by hooking a specific drawing command issued by the application program A hook processing module that obtains instead of the module, draws an image in a specific transfer image storage area in the general-purpose memory in accordance with the obtained drawing command, and supplies the obtained drawing command to the drawing module. A method for supplying and displaying an image from an image supply device to an image display device via a network,
(A) the hook processing module rendering an image in a specific transfer image storage area in the general-purpose memory in response to a specific rendering command issued by the application program;
(B) the image supply device acquires and transfers an image drawn in the transfer image storage area when drawing of an image is performed in accordance with a drawing command;
(C) the image supply device obtains an image drawn in the frame memory after image drawing stops and transfers the image via the network;
An image supply method comprising:
ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置において利用される画像転送処理モジュールを記録したコンピュータ読取可能な記録媒体であって、
前記画像供給装置は、画像の描画命令を発行可能なアプリケーションプログラムと、前記アプリケーションプログラムによって発行される描画命令に従って前記画像供給装置の表示部に画像を表示するためのフレームメモリに画像を描画する描画モジュールと、前記アプリケーションプログラムによって発行される特定の描画命令をフックして前記描画モジュールの代わりに取得し、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するとともに、前記取得した描画命令を前記描画モジュールに供給するフック処理モジュールと、を備えており、
前記画像転送処理モジュールは、画像を前記ネットワークを介して前記画像表示装置に転送する処理をコンピュータに実現させるものであり、
前記描画モジュールは、前記アプリケーションプログラム又は前記フック処理モジュールから受けた描画命令に従ってフレームメモリ内に画像を描画する機能を有し、
前記画像転送処理モジュールは、
画像の描画が行われたときに、前記フック処理モジュールによって前記転送用画像格納領域に描画された画像を取得して転送する通常転送モードと、
画像の描画が停止した後に、前記描画モジュールによって前記フレームメモリに描画された画像を取得して転送する再送モードと、を有することを特徴とする記録媒体。
A computer-readable recording medium recording an image transfer processing module used in an image supply device for supplying an image to an image display device via a network for display.
The image supply device includes an application program capable of issuing an image drawing command and a drawing for drawing an image in a frame memory for displaying an image on a display unit of the image supply device according to the drawing command issued by the application program A module and a specific drawing command issued by the application program are hooked and acquired instead of the drawing module, and an image is drawn in a specific transfer image storage area in the general-purpose memory according to the acquired drawing command. A hook processing module for supplying the acquired drawing command to the drawing module;
The image transfer processing module causes a computer to execute a process of transferring an image to the image display device via the network;
The drawing module has a function of drawing an image in a frame memory in accordance with a drawing command received from the application program or the hook processing module;
The image transfer processing module
A normal transfer mode for acquiring and transferring an image drawn in the transfer image storage area by the hook processing module when the image is drawn;
And a retransmission mode for acquiring and transferring an image drawn in the frame memory by the drawing module after drawing of the image is stopped.
JP2004241239A 2004-06-11 2004-08-20 Image transfer using drawing command hook Expired - Fee Related JP3797373B2 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2004241239A JP3797373B2 (en) 2004-08-20 2004-08-20 Image transfer using drawing command hook
TW094117095A TWI267022B (en) 2004-06-11 2005-05-25 Image transfer using drawing command hooking
US11/136,528 US7817156B2 (en) 2004-06-11 2005-05-25 Image transfer using drawing command hooking
EP05012331A EP1605346A3 (en) 2004-06-11 2005-06-08 Image transfer using drawing command hooking
KR1020050050084A KR100645006B1 (en) 2004-06-11 2005-06-10 Image transfer using drawing command hooking
US12/923,251 US8416249B2 (en) 2004-06-11 2010-09-10 Image transfer using drawing command hooking

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004241239A JP3797373B2 (en) 2004-08-20 2004-08-20 Image transfer using drawing command hook

Publications (2)

Publication Number Publication Date
JP2006058670A JP2006058670A (en) 2006-03-02
JP3797373B2 true JP3797373B2 (en) 2006-07-19

Family

ID=36106169

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004241239A Expired - Fee Related JP3797373B2 (en) 2004-06-11 2004-08-20 Image transfer using drawing command hook

Country Status (1)

Country Link
JP (1) JP3797373B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007265209A (en) * 2006-03-29 2007-10-11 Casio Comput Co Ltd Server device for computer system

Also Published As

Publication number Publication date
JP2006058670A (en) 2006-03-02

Similar Documents

Publication Publication Date Title
KR100645006B1 (en) Image transfer using drawing command hooking
JP3797372B2 (en) Image transfer using drawing command hook
US8255826B2 (en) Method and apparatus for resizing buffered windows
EP2577499B1 (en) Motion detection techniques for improved image remoting
US5241625A (en) Screen image sharing among heterogeneous computers
JP4650318B2 (en) Communication between image supply device and image display device
JP4810548B2 (en) Server apparatus, updated image detection method and program
US20110242116A1 (en) Techniques for controlling frame refresh
US20150035844A1 (en) Buffer Display Techniques
JP3788710B2 (en) Multiple screen linkage control apparatus and method, and recording medium
JP3797371B2 (en) Image transfer using drawing command hook
CN100368984C (en) Image transfer using drawing command hooking
JP3797373B2 (en) Image transfer using drawing command hook
CN115934383A (en) Multi-display-card rendering method under Wayland synthesizer
JP5619473B2 (en) Projector, control method, display method and computer program
JP3826942B2 (en) Image transfer using drawing command hook
JP2010164972A (en) Method and apparatus for drawing image
JP4718763B2 (en) Facilitate interaction between video renderers and graphics device drivers
US6943801B2 (en) System and method for refreshing imaging devices or displays on a page-level basis
JP2006285901A (en) Transfer of image using transparent window
JP2013167881A (en) Image display unit and control method of image display unit
JP2012044478A (en) Image processing device, method and program for image processing
JP3881630B2 (en) Computer system
JP4031421B2 (en) Screen copy method
JP2000163182A (en) Screen display system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051215

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060328

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060410

R150 Certificate of patent or registration of utility model

Ref document number: 3797373

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090428

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100428

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110428

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110428

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120428

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130428

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130428

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 8

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees