JP3826941B2 - 描画命令のフックを利用した画像の転送 - Google Patents

描画命令のフックを利用した画像の転送 Download PDF

Info

Publication number
JP3826941B2
JP3826941B2 JP2004173284A JP2004173284A JP3826941B2 JP 3826941 B2 JP3826941 B2 JP 3826941B2 JP 2004173284 A JP2004173284 A JP 2004173284A JP 2004173284 A JP2004173284 A JP 2004173284A JP 3826941 B2 JP3826941 B2 JP 3826941B2
Authority
JP
Japan
Prior art keywords
image
processing module
transfer
application program
drawing command
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
JP2004173284A
Other languages
English (en)
Other versions
JP2005352795A (ja
Inventor
博行 市枝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2004173284A priority Critical patent/JP3826941B2/ja
Priority to TW094117095A priority patent/TWI267022B/zh
Priority to US11/136,528 priority patent/US7817156B2/en
Priority to EP05012331A priority patent/EP1605346A3/en
Priority to CNB200510076764XA priority patent/CN100368984C/zh
Priority to KR1020050050084A priority patent/KR100645006B1/ko
Publication of JP2005352795A publication Critical patent/JP2005352795A/ja
Application granted granted Critical
Publication of JP3826941B2 publication Critical patent/JP3826941B2/ja
Priority to US12/923,251 priority patent/US8416249B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Description

本発明は、ネットワークを介して接続された画像供給装置と画像表示装置とを含む画像表示システムに関する。
画像を投写表示するプロジェクタの一種として、ネットワークを介してパーソナルコンピュータから供給された画像を投写表示することができるプロジェクタ(以下、「ネットワークプロジェクタ」とも呼ぶ)が提案されている(例えば特許文献1)。また、このようなネットワークプロジェクタに、ネットワークを介してパーソナルコンピュータから画像を供給するために、VNC(Virtual Network Computing)とよばれる技術が利用されている。
国際公開第01/093583号パンフレット
しかしながら、VNCを利用する場合には、コンピュータ内のVRAM(フレームメモリ)からRAM(システムメモリ)に画像を一旦転送し、その後、RAMから画像を取得してネットワークを介してプロジェクタに転送している。VRAMからRAMへの画像データの転送にはかなりの時間が掛かるため、全体として十分な転送速度が得られない場合があった。このような問題は、ネットワークプロジェクタシステムに限らず、一般に、ネットワークを介して画像供給装置から画像表示装置に画像を供給して表示させるシステムに共通する問題であった。
本発明は、ネットワークを介して画像表示装置に画像を転送する際の転送スピードを向上させる技術を提供することを目的とする。
上記した目的の少なくとも一部を達成するために、本発明による第1の画像供給装置は、ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置であって、
画像の描画命令を発行可能なアプリケーションプログラムと、
前記アプリケーションプログラムによって発行される描画命令に従って前記画像供給装置の表示部に画像を表示するためのフレームメモリに画像を描画する描画モジュールと、
前記アプリケーションプログラムによって発行される特定の描画命令をフックして前記描画モジュールの代わりに取得し、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するとともに、前記取得した描画命令を前記描画モジュールに供給するフック処理モジュールと、
前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する画像転送処理モジュールと、
を備え、
前記画像転送処理モジュールは、
前記画像転送処理モジュールの起動時に前記フック処理モジュールを前記アプリケーションプログラムにロードし、前記画像転送処理モジュールの実行終了時に前記フック処理モジュールを前記アプリケーションプログラムからアンロードするように構成されていることを特徴とする。
この画像供給装置によれば、特定の描画命令が発行された場合には、描画モジュールの代わりにフック処理モジュールがその描画命令をフックして取得し、汎用メモリ内の画像を描画するので、従来のようにVRAMからRAM(汎用メモリ)に画像を転送する場合に比べて転送処理全体のスピードを向上させることができる。また、この構成によれば、画像転送処理が行われる場合にのみフック処理モジュールが働くので、フック処理が不要な場合にフック処理モジュールが望ましくフック処理を実行してしまうことを防止することができる。
なお、前記フック処理モジュールは、前記転送用画像格納領域の中で前記描画命令に応じて画像が描画される領域である変化領域を示す変化領域情報を前記汎用メモリ内に書き込む機能を有しており、
前記画像転送処理モジュールは、前記汎用メモリ内に格納されている前記変化領域情報を参照して前記転送用画像格納領域に格納されている前記画像変化領域内の画像部分を取得するとともに、取得した画像部分を前記変化領域情報とともに前記ネットワークを介して前記画像表示装置に転送するようにしてもよい。
この構成によれば、変化領域情報もフック処理モジュールによって汎用メモリ内に書き込まれるので、描画モジュールを用いて変化領域情報を書き込む場合に比べて、変化領域情報の書込処理を高速化することができる。また、画像転送処理モジュールが変化領域の画像部分と変化領域情報とを転送するので、画面全体の画像データを転送する場合に比べて転送されるデータ量を削減することができ、転送速度を向上させることができる。
本発明による第2の画像供給装置は、ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置であって、
画像の描画命令を発行可能なアプリケーションプログラムと、
前記アプリケーションプログラムによって発行される描画命令に従って前記画像供給装置の表示部に画像を表示するためのフレームメモリに画像を描画する描画モジュールと、
前記アプリケーションプログラムによって発行される特定の描画命令をフックして前記描画モジュールの代わりに取得し、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するとともに、前記取得した描画命令を前記描画モジュールに供給するフック処理モジュールと、
前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する画像転送処理モジュールと、
を備え、
前記画像転送処理モジュールは、前記転送用画像格納領域に格納された第1の画像を前記ネットワークを介して前記画像表示装置に転送することによって、前記画像表示装置の画面中に前記第1の画像を拡大した第2の画像を表示させる機能を有しており、
前記フック処理モジュールは、前記転送用画像格納領域の中で前記描画命令に応じて前記第1の画像が描画される領域である変化領域を示す変化領域情報と、前記画像表示装置の画面中の前記第2の画像のサイズを示すサイズ情報と、を含む転送領域情報を前記汎用メモリ内に書き込む機能を有しており、
前記画像転送処理モジュールは、前記汎用メモリ内に格納されている前記転送領域情報を取得して前記転送用画像格納領域から取得した前記第1の画像とともに前記ネットワークを介して前記画像表示装置に転送する。
この構成によれば、拡大前の第1の画像と転送領域情報(変化領域情報及びサイズ情報)とが転送されるので、拡大後の第2の画像を転送する場合に比べて転送されるデータ量を削減することができ、転送速度を向上させることができる。
本発明による方法は、画像供給装置からネットワークを介して画像表示装置に画像を供給して表示させる方法であって、
(a)前記画像供給装置が、前記画像供給装置内のアプリケーションプログラムによって発行された特定の描画命令に応じて、前記画像供給装置内に設けられた汎用メモリ内の特定の転送用画像格納領域に画像を描画する工程と、
(b)前記画像供給装置が、前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する工程と、
を備えることを特徴とする。
この方法によれば、特定の描画命令が発行された場合に汎用メモリ内に画像を描画するので、従来のようにVRAMからRAM(汎用メモリ)に画像を転送する場合に比べて転送処理全体のスピードを向上させることができる。
なお、本発明は種々の形態で実現することが可能であり、例えば、画像表示システム、画像表示システムを構成する画像供給装置及び画像表示装置、画像供給装置に利用されるフック処理モジュール及び画像転送処理モジュール、画像供給方法、それら方法又は装置を実現するためのコンピュータプログラム、それらのコンピュータプログラムを記録した記録媒体などの種々の態様で実現することが可能である。
以下、本発明の実施の形態を以下の順序で説明する。
A.第1実施例:
B.第2実施例:
C.変形例:
A.第1実施例:
図1は本発明の一実施例として画像表示システムの構成を示す説明図である。本実施例の画像表示システム10は、画像供給装置としてのパーソナルコンピュータ100と、画像表示装置としてのプロジェクタ200と、コンピュータ100とプロジェクタ200とをつなぐネットワーク300と、を備えている。コンピュータ100は、ネットワーク300を介して画像をプロジェクタ200供給して、プロジェクタ200に画像を投写させて投写表示画面70に表示させる機能を有している。
図2は、コンピュータ100とプロジェクタ200の内部構成を示すブロック図である。コンピュータ100は、CPU102と、ROM104と、汎用メモリ(「システムメモリ」とも呼ぶ)としてのRAM106と、ハードディスクドライブ108と、キーボードやポインティングデバイスなどで構成される入力部110と、ネットワークインタフェース部112と、フレームメモリとしてのVRAM114と、グラフィックコントローラ116と、液晶ディスプレイなどの表示デバイス118と、これら各要素を接続するバス120と、を備えている。
RAM106には、アプリケーションプログラム122と、グラフィカルデバイスインタフェース(GDI:Graphics Device Interface)124と、ディスプレイドライバ126と、プロジェクタドライバ128と、画像転送処理モジュールとしてのVNCサーバ130と、を含む各種コンピュータプログラムが格納されている。なお、GDI124と、ディスプレイドライバ126と、プロジェクタドライバ128は、オペレーティングシステムの一部として機能する。なお、本実施例においては、オペレーティングシステムとして、マイクロソフト社によって提供されるWindows(登録商標)を想定している。このような各種コンピュータプログラムは、フレキシブルディスクやCD−ROM等の、コンピュータ読み取り可能な記録媒体に記録された形態で提供される。
プロジェクタ200は、CPU202と、ROM204と、RAM206と、各種の操作ボタンを含む入力部210と、ネットワークインタフェース部212と、画像処理部214と、光源ランプと液晶パネルと投写光学系を含む投写部216と、これら各要素を接続するバス218と、を備えている。ROM204には、画像処理ドライバ228と、VNCクライアント230とを含む各種コンピュータプログラムが格納されている。
以下ではまず、第1実施例におけるコンピュータ100の機能を説明する前に、比較例として、VNCサーバを用いた従来のコンピュータの機能を説明する。
図3は、比較例におけるコンピュータのソフトウェアとハードウェアの階層構造を示す説明図である。アプリケーションプログラム122とVNCサーバ130は、アプリケーションプログラム層(「ユーザアプリケーションプログラム層」とも呼ぶ)に属する。GDI124とディスプレイドライバ126とプロジェクタドライバ128は、カーネル層に属する。また、汎用メモリとしてのRAM106と、ネットワークインタフェース部112と、VRAM114と、グラフィックコントローラ116と、表示デバイス118は、ハードウェア層に属する。
第1実施例では、アプリケーションプログラム122としてプレゼンテーションプログラム(例えばマイクロソフト社のPowerPoint)を使用した場合について説明する。
アプリケーションプログラム122は、GDI124に対して各種の描画要求を発行する。GDI124は、表示装置(コンピュータ100の表示デバイス118やプロジェクタ200)や印刷装置(図示せず)などへの描画を統一的に管理しているコンピュータプログラムである。良く知られているように、GDI124は、「GDI関数」と呼ばれる描画に関するアプリケーションプログラムインタフェース(API:Application Program Interface)を各種のアプリケーションプログラムに対して提供している。なお、APIとは、一般に、アプリケーションプログラムがオペレーティングシステムの持つ様々な機能を利用するための手続きの集まりを言う。
アプリケーションプログラム122は、GDI124に対して、例えばプレゼンテーションファイルに含まれているプレゼンテーションシートの画像の描画要求を発行する。通常は、描画要求には、画像の出力先に関する情報(即ち、画像を表示装置に出力するか、印刷装置に出力するかを指定する情報)も含まれている。
なお、GDI124の代わりに、他の汎用の描画用APIを使用することも可能である。「汎用の描画用API」とは、多数のアプリケーションプログラムに対して共通に使用されるAPIを意味している。
GDI124と、ディスプレイドライバ126と、プロジェクタドライバ128の全体は、描画命令に従って描画処理を実行する描画モジュールとして機能する。具体的には、GDI124は、アプリケーションプログラム122から出された描画要求を受け取り、その描画要求に基づいて画像の出力先をチェックし、その出力先が表示装置であれば、ディスプレイドライバ126とプロジェクタドライバ128のそれぞれに対して描画要求を渡す。
ディスプレイドライバ126は、受け取った描画要求に従ってVRAM114内に画像データを描画する。なお、よく知られているように、描画要求としては、画面の全体を描画するものに限らず、画面の一部を描画するものも多用される。画面の一部を描画する描画命令を受けた場合には、ディスプレイドライバ126は、VRAM114内で描画対象となっている領域(「変化領域」とも呼ぶ)の画像部分のみを描画する。グラフィックコントローラ116は、VRAM114内に描画された画像データ(即ち、ビットマップデータ)に基づいて、表示デバイス118に画像を表示する。一方、プロジェクタドライバ128は、GDI124から受け取った描画要求に従って、VRAM114内の描画対象領域(すなわち変化領域)の位置及びサイズを表す変化領域情報106aをRAM106内に書き込む。
図4(A),(B)は、RAM106内の変化領域情報106aと画像データ格納領域106bの例を示す説明図である。ここでは、プロジェクタで投写表示されるべき画像が図4(A)から図4(B)のように変化する例を想定する。後述するように、画像データ格納領域106bには、VNCサーバ130によってVRAM114から転送された画像データが格納される。
変化領域Raは、図4(A)から図4(B)に画像を変更する際の描画命令によって描画される画像部分の領域である。この変化領域Raに関する変化領域情報106aは、変化領域Raの基準点(通常は左上点)のx座標Xa及びy座標Yaと、変化領域Raの幅Wa及び高さHaとを含んでいる。なお、基準点の座標(Xa,Ya)は、変化領域Raの位置を示すデータであり、幅Waと高さHaは変化領域Raのサイズを示すデータである。
VNCサーバ130は、RAM106内の変化領域情報106aを参照して、変化領域Raの画像データを、VRAM114からRAM106内の画像データ格納領域106bに転送する。この画像データ格納領域106bは、例えばコンピュータ100又はプロジェクタ200の表示解像度に等しいサイズのメモリ領域である。VNCサーバ130は、さらに、画像データ格納領域106bから変化領域Raの画像データを読み出して、変化領域Raの変化領域情報106aと画像データとを含む画面更新メッセージを作成する。
図5は、画面更新メッセージの構造を示す説明図である。この画面更新メッセージは、VNCプロトコルに規定されているフレームバッファアップデート「FramebufferUpdate」の構造に準じている。画面更新メッセージは、メッセージの種類を示すメッセージヘッダ部と、メッセージのパラメータを示すパラメータ部とを有している。
メッセージヘッダ部には、メッセージの種類を示すメッセージタイプ(1バイト)と、変化領域の数を示す変化領域数(2バイト)とが含まれる。画面更新メッセージを示すメッセージタイプのデータ値は「0」である。変化領域数のデータ値は通常は「1」に設定される。但し、RAM106内に複数の変化領域に関する変化領域情報106aが未処理で残っている場合には、画面更新メッセージがそれらの複数の変化領域に関する情報(変化領域情報及び画像データ)を含むように画面更新メッセージを構成することも可能である。なお、メッセージタイプデータと変化領域数データとは1バイトのパディングを介して区分されている。
パラメータ部には、変化領域の基準点のx座標(2バイト)及びy座標(2バイト)と、変化領域の幅(2バイト)及び高さ(2バイト)と、変化領域の画像データの転送時のエンコーディング形式(4バイト)と、変化領域の画像データ(nバイト)と、が含まれている。エンコーディング形式としては、JPEG形式(データ値「7」)等の予め定められた形式が使用される。
VNCサーバ130は、こうして作成した画面更新メッセージをネットワークインタフェース部112を介してプロジェクタ200に転送する。
このように、図3に示す比較例では、一旦VRAM114に格納された画像データを汎用メモリであるRAM106に転送した後で、RAM106内にある画像データをプロジェクタ200に転送している。このため、VRAM114からRAM106に転送するためにかなりの時間を要してしまい、十分な転送速度が得られない場合があった。
図6は、第1実施例におけるコンピュータのソフトウェアとハードウェアの階層構造を示す説明図である。図3に示した比較例との違いは、アプリケーションプログラム122とGDI124との間に、フック処理モジュール400が追加されている点であり、他の構成は図3と同じである。フック処理モジュール400は、アプリケーションプログラム122が発行する特定の描画命令をフックして先取りし、後述する処理を実行する。他の描画命令は通常通りGDI124によって処理される。なお、フック処理モジュール400は、アプリケーションプログラム122に応じた適切な特定の描画命令のみをフックするように、各アプリケーションプログラム専用に構成されることが好ましい。
なお、フック処理モジュール400も一種の描画用APIと考えることも可能であるが、GDI124のような汎用の描画用APIとは区別される。すなわち、フック処理モジュール400は、典型的には特定の描画命令のみを処理するように構成されているのに対して、GDI124はすべての描画命令を処理するように構成されている点で相違する。
フック処理モジュール400は、例えばDLL(ダイナミックリンクライブラリ)としてアプリケーションプログラム122にロード(インストール)される。一般に、アプリケーションプログラムは「プロセス」という単位で動作している。また、アプリケーションプログラムの実行中は、そのプロセス内に複数のモジュール(GDI32.DLLやKernel32.DLLなど)がロードされており、アプリケーションプログラムはそれらのモジュール内の関数を利用することによって各種の動作を行っている。フック処理モジュール400の「ロード」とは、アプリケーションプログラム122のプロセス内に、フックプロシージャが実装されているモジュール400を組み込むすることを意味している。
フック処理モジュール400がロードされる際には、アプリケーションプログラム122から発行される特定の描画命令の関数アドレスが、フック処理モジュール400内に実装されている独自機能を実行するための別の関数のアドレスに差し替えられる。この独自機能の関数内では、変化情報と画像データのRAMへの書き込み処理(後述する)が実行され、その後、通常のGDI関数が実行される。フック処理モジュール400をアンロードする際には、ロード時に差し替えられていた関数アドレスを元に戻した後に、プロセス内にロードされていたフック処理モジュール400がアンロードされる。
なお、フック処理モジュール400は、必要に応じていつでもアプリケーションプログラム122にロードしたり、アンロードしたりすることが可能である。但し、VNCサーバ130が起動する際に、動作中の特定のアプリケーションプログラム122(本実施例ではプレゼンテーションプログラム)にフック処理モジュール400をロードし、また、VNCサーバ130を終了するときにフック処理モジュール400をアンロードするように、VNCサーバ130を構成することが好ましい。こうすれば、VNCサーバ130が実行中の期間にのみフック処理モジュール400を動作させることができるので、コンピュータ100上でVNCサーバ130が実行されていない(起動していない)ときに描画命令をフックしてしまい、望ましくない結果が生じることを回避することができる。なお、本明細書において、「コンピュータ100上でVNCサーバ130が実行されている」という文言は、VNCサーバ130のプロセスが起動されていることを意味している。
図7は、第1実施例におけるフック処理モジュール400とVNCサーバ130の動作を示すフローチャートである。ステップS10〜S16はフック処理モジュール400によって実行され、ステップS20〜S26はVNCサーバ130によって定期的に実行される。
フック処理モジュール400は、アプリケーションプログラム122から特定の描画命令が発行されたときに、ステップS10においてその描画命令をフックして、GDI124の代わりにその描画命令を取得する。なお、フック処理モジュール400がフックする描画命令は、すべての描画命令ではなく、限られた特定の描画命令のみに限定することが好ましい。この理由は、アプリケーションプログラム122が発行する描画命令には多数のものがあるので、そのすべてをフックするようにすると、却って処理速度を低下させたり、所望の描画を行えなかったりする可能性があるからである。
ステップS12では、取得した描画命令に応じて変化領域情報を登録する処理が実行される。具体的には、フック処理モジュール400が、描画命令に従って描画が行われる領域(図4(B)の変化領域Ra)の位置とサイズを取得し、その変化領域を表す変化領域情報106aをRAM106に直接書き込む処理を実行する。
ステップS14では、変化領域Raの画像データの書込処理が実行される。具体的には、フック処理モジュール400が、描画命令に従って変化領域Ra内の画像データを展開して、その画像データをRAM106内の画像データ格納領域106bに直接書き込む処理を実行する。
ステップS16では、フック処理モジュール400が、ステップS10で取得した描画命令に従って通常のGDI関数を呼び出して描画処理を実行させる。なお、ディスプレイドライバ126とプロジェクタドライバ128(図6)は、図3に示した比較例と同様に、GDI124から受け取った描画命令に従ってそれぞれの処理を実行する。但し、本実施例では、VNCサーバ130が、プロジェクタドライバ128によって作成された変化領域情報を使用しないように構成されている。図6において、プロジェクタドライバ128の前後にある矢印が破線で描かれているのは、このことを意味している。
一方、VNCサーバ130は、ステップS20において、プロジェクタ200に転送すべき画像データの領域(「画面更新領域」と呼ぶ)を決定する。具体的には、VNCサーバ130は、RAM106内の変化領域情報106a(図4(B))を取得して、変化領域Raを画面更新領域として決定する。但し、RAM106内に複数の変化領域に関する未処理の変化領域情報106aが存在する場合には、複数の変化領域の和領域に相当する領域が画面更新領域として決定される。
図8は、複数の変化領域と画面更新領域との関係を示す説明図である。ここでは、図8(A)に示すように互いに重なる2つの変化領域R1,R2が存在する場合を考える。このときには、まず、図8(B)に示すように、変化領域R1,R2の和領域を、互いに重ならない隣接する矩形領域R11〜R13に分割する。そして、これらの矩形領域R11〜R13の集合を、画面更新領域として採用する。このような画面更新領域R11〜R13を使用すれば、変化領域R1,R2が重なった部分の画像データを繰り返して転送することを回避できるので、データ転送量を削減することが可能である。なお、複数の変化領域が互いに重なっていない場合には、それらがそのまま画面更新領域として使用される。
ステップS22では、RAM106の画像データ格納領域106bの中で、画面更新領域に相当する画像部分の画像データが取得される。そして、ステップS24では、予め設定されているエンコーディング形式に従ってその画像データが変換される。ステップS26では、こうして変換された画像データと変換領域情報とを含む画面更新メッセージ(図5)が作成され、ネットワークインタフェース部112を介してプロジェクタ200に転送される。
プロジェクタ200のネットワークインタフェース部212(図2)は、ネットワーク300を介して供給された通信データを受信すると、この通信データに含まれている画面更新メッセージを取り出して、VNCクライアント230に渡す。VNCクライアント230は、画面更新メッセージに含まれる画像データを画像処理ドライバ228に渡す。画像処理ドライバ228は、この画像データに従って画像処理部214を制御し、画像処理部214によって画像処理部214内の表示メモリ(図示せず)に画像データを展開させる。この結果、プロジェクタ200は、図1に示すように、投写表示画面70に画像を表示することができる。
このように、第1実施例では、フック処理モジュール400が、特定の描画命令をフックして先取りし、変化領域の画像データをRAM106に直接書き込む処理を実行するようにしている。この結果、図3に示した比較例においてVRAM114からRAM106への画像データの転送に要していた時間を節約することができる。この結果、プロジェクタ200に画像データを転送する場合の転送速度を十分に速くすることができるという利点がある。
なお、一般に使用されているパーソナルコンピュータでは、RAM106からVRAM114へのデータ転送は非常に高速に実行できるのに対して、VRAM114からRAM106へのデータ転送はその数倍低速でしか実行できないアーキテクチャとなっていることが多い。第1実施例では、低速なVRAMからRAMへのデータ転送を削減できるので、プロジェクタ200に画像データを転送するために要する時間を大幅に削減することが可能である。
B.第2実施例:
図9は、本発明の第2実施例としての画像表示システムの構成を示す説明図である。第2実施例では、アプリケーションプログラムとして、動画再生を行うことができる動画再生プログラム(例えばマイクロソフト社のWindows Media Player)を使用した場合について説明する。第2実施例では、ネットワーク300を介してプロジェクタ200に転送される画像のサイズと、投写表示画面70上に実際に表示される画像のサイズとを異なるサイズに設定できる点に特徴がある。
第2実施例のハードウェア及びソフトウェアの構成は、図2及び図6に示した第1実施例の構成と同じである。第2実施例と第1実施例との差異は以下の3点である。
(1)第2実施例では動画再生プログラムの特定の描画命令をフックするのに適したフック処理モジュール400が使用される点。
(2)RAM106内に格納される変化領域情報と画像データが異なる点。
(3)画面更新メッセージの構造が異なる点。
図10は、第2実施例における変化領域情報106aと画像データ格納領域106bの例を示している。ここでは、動画再生プログラムを用いて、動画領域内に動画を再生しているものと仮定している。フック処理モジュール400は、動画再生プログラムから所定の時間間隔で順次発行される描画命令に応じて、画像データ格納領域106b内の動画領域の画像を描画する。
ユーザは、アプリケーションプログラム122上で画像の拡大/縮小率を指示することによって、動画を拡大又は縮小してコンピュータ100及びプロジェクタ200に表示させることができる。但し、動画を拡大又は縮小する場合にも、フック処理モジュール400は、RAM106内の画像データ格納領域106bに元のサイズの画像データを書き込む処理を継続する。
第2実施例における変化領域情報106aは、図5に示した第1実施例の変化領域情報の内容に加えて、変化領域Ra(動画領域)の画像タイプと、拡大/縮小後の画像の幅及び高さとが追加されたものである。ここで、「画像タイプ」とは、変化領域Raの画像が、表示の際に拡大又は縮小されるか否かを示すパラメータである。例えば、コンピュータ100及びプロジェクタ200の画面上において、動画が元のサイズ(すなわち変化領域Raのサイズ)よりも拡大又は縮小されて表示される場合には画像タイプの値は「1」に設定され、等倍で表示される場合には画像タイプの値は「0」に設定される。拡大/縮小後の画像の幅及び高さは、拡大又は縮小して表示される際の画像のサイズを示している。例えば、2倍に拡大される場合には、拡大/縮小後の幅及び高さは、変化領域Raの幅Wa及び高さHaのそれぞれ2倍である。
なお、第2実施例の変化領域情報106aにおいて追加された情報(画像タイプと、拡大/縮小後の幅及び高さ)は、プロジェクタ200上で投写表示される画像のサイズを示すサイズ情報である。すなわち、第2実施例の変化領域情報106aは、変化領域Raの位置及びサイズを示す変化領域情報と、拡大/縮小後の画像のサイズを示すサイズ情報とを含んでおり、プロジェクタ200に転送されて画像領域の位置及びサイズを示す情報であると考えることができる。従って、第2実施例の変化領域情報を「転送領域情報」と呼ぶことが可能である。
図11は、第2実施例においてVNCサーバ130からプロジェクタ200に転送される画面更新メッセージの構造を示す説明図である。この画面更新メッセージは、図5に示した第1実施例の画面更新メッセージの内容に、変化領域Raの画像タイプと、拡大/縮小後の画像の幅及び高さとが追加されたものである。
プロジェクタ200は、この画面更新メッセージを受け取り、拡大/縮小後の幅及び高さで示されるサイズで動画を投写表示画面70上に表示する。この際、画面更新メッセージに含まれている画像タイプが等倍画像(データ値「0」)を示している場合には、画面更新メッセージに含まれている画像データをプロジェクタ内の表示メモリにそのまま展開する。一方、画像タイプが拡大/縮小画像(データ値「1」)を示している場合には、画面更新メッセージに含まれている画像データを、指定された幅及び高さになるように拡大又は縮小して、表示メモリに展開する。プロジェクタ200の画像処理部214は、表示メモリに展開された画像データ(即ち、ビットマップデータ)に基づいて投写部216を駆動し、投写部216によって画像を投写表示させることができる。
図12(A),(B)は、第2実施例の画像表示システムの動作を示す説明図である。第2実施例においては、図12(A)に示すように、コンピュータ100の表示画面60で動画像MVnを表示すると、この動画像MVnの各コマの画像データMV−Dがネットワーク300を介して送信され、プロジェクタ200による投写表示画面70にこの動画像MVnが表示される 。そして、図12(B)に示すように、ユーザが拡大率を設定して表示画面60に拡大動画像MVsを表示させると、プロジェクタ200による投写表示画面70でも拡大動画像MVsが表示される。このとき、コンピュータ100からネットワーク300を介して送信される拡大動画像MVsの各コマの画像データは、各コマの画像データMV−Dを拡大した画像データではなく、拡大前の各コマの画像データMV−Dである。この結果、ネットワーク300を介して実際に伝送されるデータ量は、拡大後の画像データを伝送する場合に比べて少なくて済み、ネットワークのトラフィックの増大を抑制することができ、レスポンスを大幅に改善することができる。この結果、動画像を拡大表示させた場合に、動画像のコマ数が過度に減少することを防止することができ、動画像を滑らかに表示することができる。
C.変形例:
なお、本発明は上記した実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様にて実施することが可能であり、例えば以下のような変形が可能である。
C1.変形例1:
コンピュータ100からプロジェクタ200に供給される画面更新メッセージとしては、上記実施例で使用したもの以外の種々のものを使用することが可能である。例えば、画面更新メッセージとして、少なくとも画像データを含むものを使用することができる。具体的には、例えば、画面全体の画像データを転送する場合には、変化領域情報を転送する必要は無い。
また、画面更新メッセージとしては、変化領域の位置及びサイズを示す情報と、変化領域内の画像データとを少なくとも含むことが好ましい。この理由は、変化領域に関するデータ(変化領域情報及びその画像データ)のみを転送すれば、転送すべきデータ量が少なくなるからである。さらに、第2実施例では、これらの情報に加えて、拡大/縮小の倍率を示す倍率情報、又は、拡大/縮小後の画像サイズを示すサイズ情報を、画面更新メッセージに含めるようにすることが好ましい。なお、上記第2実施例では、画像の拡大のみで無く縮小も可能であるものとしていたが、本発明は、画像の拡大のみが可能である場合にも適用可能である。また、第2実施例では、動画像を転送するものとしたが、第2実施例の構成は静止画像を転送する場合にも適用することが可能である。
C2.変形例2:
上記実施例においては、画像供給装置としてパーソナルコンピュータを用いていたが、この代わりに、他の種類のコンピュータ(モバイルコンピュータ、ハンドヘルドコンピュータ、ワークステーションなど)を用いるようにしても良い。また、これらコンピュータの他に、ネットワークに接続可能であって、コンピュータと同様な機能を有する機器を用いるようにしても良い。そのような機器には、例えば、情報携帯端末や、携帯電話機や、メール端末や、ゲーム機や、セットトップボックスなどが含まれる。また、画像表示装置としては、プロジェクタ以外の種々の表示装置を使用することが可能である。
C3.変形例3:
ネットワークとしては、ローカルエリアネットワーク(LAN)の他、ワイドエリアネットワーク(WAN)や、インターネットや、イントラネットなど、各種ネットワークを適用することができる。また、ネットワークは、有線で構成されていても良く、あるいは無線で構成されていても良い。
C4.変形例4:
上記実施例においてソフトウェアで実現されている機能の一部をハードウェアで実現してもよく、あるいは、ハードウェアで実現されている機能の一部をソフトウェアで実現してもよい。
本発明の一実施例として画像表示システムの構成を示す説明図である。 コンピュータとプロジェクタの内部構成を示すブロック図である。 比較例におけるコンピュータのソフトウェアとハードウェアの階層構造を示す説明図である。 第1実施例における変化領域情報と画像データ格納領域の例を示す説明図である。 画面更新メッセージの構造を示す説明図である。 第1実施例におけるコンピュータのソフトウェアとハードウェアの階層構造を示す説明図である。 第1実施例におけるフック処理モジュールとVNCサーバの動作を示すフローチャートである。 複数の変化領域と画面更新領域との関係を示す説明図である。 本発明の第2実施例として画像表示システムの構成を示す説明図である。 第2実施例における変化領域情報と画像データ格納領域の例を示す説明図である。 第2実施例の画面更新メッセージの構造を示す説明図である。 第2実施例の動作を示す説明図である。
符号の説明
10…画像表示システム
60…表示画面
70…投写表示画面
100…コンピュータ
102…CPU
104…ROM
106…RAM
106a…変化領域情報
106b…画像データ格納領域
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…フック処理モジュール

Claims (5)

  1. ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置であって、
    画像の描画命令を発行可能なアプリケーションプログラムと、
    前記アプリケーションプログラムによって発行される描画命令に従って前記画像供給装置の表示部に画像を表示するためのフレームメモリに画像を描画する描画モジュールと、
    前記アプリケーションプログラムによって発行される特定の描画命令をフックして前記描画モジュールの代わりに取得し、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するとともに、前記取得した描画命令を前記描画モジュールに供給するフック処理モジュールと、
    前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する画像転送処理モジュールと、
    を備え、
    前記画像転送処理モジュールは、
    前記画像転送処理モジュールの起動時に前記フック処理モジュールを前記アプリケーションプログラムにロードし、前記画像転送処理モジュールの実行終了時に前記フック処理モジュールを前記アプリケーションプログラムからアンロードするように構成されていることを特徴とする画像供給装置。
  2. 請求項1記載の画像供給装置であって、
    前記フック処理モジュールは、前記転送用画像格納領域の中で前記描画命令に応じて画像が描画される領域である変化領域を示す変化領域情報を前記汎用メモリ内に書き込む機能を有しており、
    前記画像転送処理モジュールは、前記汎用メモリ内に格納されている前記変化領域情報を参照して前記転送用画像格納領域に格納されている前記画像変化領域内の画像部分を取得するとともに、取得した画像部分を前記変化領域情報とともに前記ネットワークを介して前記画像表示装置に転送する、画像供給装置。
  3. ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置であって、
    画像の描画命令を発行可能なアプリケーションプログラムと、
    前記アプリケーションプログラムによって発行される描画命令に従って前記画像供給装置の表示部に画像を表示するためのフレームメモリに画像を描画する描画モジュールと、
    前記アプリケーションプログラムによって発行される特定の描画命令をフックして前記描画モジュールの代わりに取得し、取得した描画命令に従って汎用メモリ内の特定の転送用画像格納領域に画像を描画するとともに、前記取得した描画命令を前記描画モジュールに供給するフック処理モジュールと、
    前記転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する画像転送処理モジュールと、
    を備え、
    前記画像転送処理モジュールは、前記転送用画像格納領域に格納された第1の画像を前記ネットワークを介して前記画像表示装置に転送することによって、前記画像表示装置の画面中に前記第1の画像を拡大した第2の画像を表示させる機能を有しており、
    前記フック処理モジュールは、前記転送用画像格納領域の中で前記描画命令に応じて前記第1の画像が描画される領域である変化領域を示す変化領域情報と、前記画像表示装置の画面中の前記第2の画像のサイズを示すサイズ情報と、を含む転送領域情報を前記汎用メモリ内に書き込む機能を有しており、
    前記画像転送処理モジュールは、前記汎用メモリ内に格納されている前記転送領域情報を取得して前記転送用画像格納領域から取得した前記第1の画像とともに前記ネットワークを介して前記画像表示装置に転送する、画像供給装置。
  4. ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置において利用される画像転送処理モジュールプログラムであって、
    前記画像供給装置は、画像の描画命令を発行可能なアプリケーションプログラムと、前記アプリケーションプログラムによって発行される描画命令に従って前記画像供給装置の表示部に画像を表示するためのフレームメモリに画像を描画する描画モジュールとを備えており、
    前記画像転送処理モジュールプログラムは、汎用メモリ内の転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する機能をコンピュータに実現させるように構成されており、
    前記画像転送処理モジュールプログラムは、
    前記アプリケーションプログラムによって発行される特定の描画命令をフックして前記描画モジュールの代わりに取得するフック処理モジュールを、前記画像転送処理モジュールプログラムの起動時に前記アプリケーションプログラムにロードし、前記画像転送処理モジュールプログラムの実行終了時に前記フック処理モジュールを前記アプリケーションプログラムからアンロードするように構成されており、
    前記フック処理モジュールは、前記フックによって取得した描画命令に従って前記転送用画像格納領域に画像を描画するとともに、前記取得した描画命令を前記描画モジュールに供給する機能を有する、画像転送処理モジュールプログラム。
  5. ネットワークを介して画像表示装置に画像を供給して表示させるための画像供給装置において利用される画像転送処理モジュールを記録したコンピュータ読取可能な記録媒体であって、
    前記画像供給装置は、画像の描画命令を発行可能なアプリケーションプログラムと、前記アプリケーションプログラムによって発行される描画命令に従って前記画像供給装置の表示部に画像を表示するためのフレームメモリに画像を描画する描画モジュールとを備えており、
    前記画像転送処理モジュールは、汎用メモリ内の転送用画像格納領域から画像を取得するとともに、取得した画像を前記ネットワークを介して前記画像表示装置に転送する機能をコンピュータに実現させるものであり、
    前記画像転送処理モジュールは、
    前記アプリケーションプログラムによって発行される特定の描画命令をフックして前記描画モジュールの代わりに取得するフック処理モジュールを、前記画像転送処理モジュールの起動時に前記アプリケーションプログラムにロードし、前記画像転送処理モジュールの実行終了時に前記フック処理モジュールを前記アプリケーションプログラムからアンロードすることをコンピュータに実現させるように構成されており、
    前記フック処理モジュールは、前記フックによって取得した描画命令に従って前記転送用画像格納領域に画像を描画するとともに、前記取得した描画命令を前記描画モジュールに供給する機能を有する、記録媒体。
JP2004173284A 2004-06-11 2004-06-11 描画命令のフックを利用した画像の転送 Expired - Fee Related JP3826941B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2004173284A JP3826941B2 (ja) 2004-06-11 2004-06-11 描画命令のフックを利用した画像の転送
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
CNB200510076764XA CN100368984C (zh) 2004-06-11 2005-06-10 利用描绘命令的钩挂的图像供给装置及方法
KR1020050050084A KR100645006B1 (ko) 2004-06-11 2005-06-10 묘화 명령의 훅을 이용한 화상의 전송
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
JP2004173284A JP3826941B2 (ja) 2004-06-11 2004-06-11 描画命令のフックを利用した画像の転送

Publications (2)

Publication Number Publication Date
JP2005352795A JP2005352795A (ja) 2005-12-22
JP3826941B2 true JP3826941B2 (ja) 2006-09-27

Family

ID=35581365

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004173284A Expired - Fee Related JP3826941B2 (ja) 2004-06-11 2004-06-11 描画命令のフックを利用した画像の転送

Country Status (2)

Country Link
JP (1) JP3826941B2 (ja)
CN (1) CN100368984C (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4966285B2 (ja) 2008-10-30 2012-07-04 株式会社東芝 情報処理装置、エフェクトプログラムおよびコンテンツ補正処理方法
JP2012203889A (ja) * 2011-03-28 2012-10-22 Fujitsu Ltd 画面共有方法、画面共有装置、及びプログラム
CN102662618B (zh) * 2012-03-29 2015-10-14 北京奇虎科技有限公司 远程协助过程中的图像处理方法及装置
JP6192718B2 (ja) * 2013-05-29 2017-09-06 三菱電機株式会社 画像表示装置、画像送信装置およびこれらを用いた画像表示システム
CN105263046A (zh) * 2015-10-16 2016-01-20 苏州佳世达电通有限公司 影像画面调整方法
JP2017169086A (ja) * 2016-03-17 2017-09-21 セイコーエプソン株式会社 表示装置、表示装置の制御方法及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU8393191A (en) * 1990-07-10 1992-02-04 Athenix Corporation Selective content synchronization of multiple image buffers
GB2270581A (en) * 1992-09-15 1994-03-16 Ibm Computer workstation
CN1455372A (zh) * 2003-05-29 2003-11-12 上海交通大学 基于ip网络的屏幕共享和同步录制方法

Also Published As

Publication number Publication date
CN100368984C (zh) 2008-02-13
CN1707423A (zh) 2005-12-14
JP2005352795A (ja) 2005-12-22

Similar Documents

Publication Publication Date Title
US8416249B2 (en) Image transfer using drawing command hooking
US8255826B2 (en) Method and apparatus for resizing buffered windows
JP3797372B2 (ja) 描画命令のフックを利用した画像の転送
JP4650318B2 (ja) 画像供給装置と画像表示装置との間の通信
JP2000331150A (ja) グラフィックス・システム、グラフィックス・オペレーションを実行する方法及びコンピュータ読取り可能媒体
US6307559B1 (en) Method and apparatus for color space conversion, clipping, and scaling of an image during blitting
JP2008071261A (ja) 画像処理システム及び画像処理方法
US9424814B2 (en) Buffer display techniques
JP3826941B2 (ja) 描画命令のフックを利用した画像の転送
JP2005284195A (ja) 画像表示システム
JP3797371B2 (ja) 描画命令のフックを利用した画像の転送
JP3826942B2 (ja) 描画命令のフックを利用した画像の転送
JPH10161629A (ja) ディスプレイ装置の表示制御方法
JP2010164972A (ja) 画像ドローイング方法及び装置
JP5619473B2 (ja) プロジェクター、制御方法、表示方法ならびにコンピュータープログラム
JP3797373B2 (ja) 描画命令のフックを利用した画像の転送
JP2009080333A (ja) 画像表示システム,画像表示方法及び投射型表示装置
US7050060B1 (en) Data transferring apparatus and its method
JP2012044478A (ja) 画像処理装置、画像処理方法およびプログラム
JP2013167881A (ja) 画像表示装置、画像表示装置の制御方法
JP2006285901A (ja) 透明ウィンドウを利用した画像の転送
JP2000163182A (ja) 画面表示システム
JP4031421B2 (ja) 画面コピー方法
US6972770B1 (en) Method and apparatus for performing raster operations in a data processing system
JP3881630B2 (ja) コンピュータシステム

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20050914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051215

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060517

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060522

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060626

R150 Certificate of patent or registration of utility model

Ref document number: 3826941

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110714

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110714

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120714

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120714

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130714

Year of fee payment: 7

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