(57)【特許請求の範囲】
【請求項１】
コンピュータに、
送信対象の画像の背景色を特定し、
特定された前記背景色とは異なる色を有する、隣接する複数の画素を検出し、
検出された前記隣接する複数の画素のうち、色の異なる画素の色を統合した画素群を取得し、
前記画像の線画が描画された画素を特定し、
特定された前記線画が備える隣接する画素の相対位置の情報を作成し、
前記画素群の各画素の位置情報を、統合した色の情報とともに送信し、
前記画素群の各画素の位置情報を、前記統合した色の情報とともに送信する処理では、作成された前記相対位置の情報を送信する、
処理を実行させることを特徴とする画像処理プログラム。
【請求項２】
前記画素群の各画素の位置情報を、前記統合した色の情報とともに送信する処理では、前記画像の走査方向に隣接する前記画素をひとまとめとする矩形の位置情報と前記矩形のサイズ情報を送信することを特徴とする請求項１記載の画像処理プログラム。
【請求項３】
前記コンピュータは、前記送信対象の画像に出現する色の頻度の順位を記憶しており、
前記画素群の各画素の位置情報を、前記統合した色の情報とともに送信する処理では、色が統合された前記画素の色の順位を、前記統合した色の情報として送信することを特徴とする請求項１または２に記載の画像処理プログラム。
【請求項４】
前記画像の線画が描画された画素を特定する処理では、前記画像の線画が描画された方向を画素の位置関係に基づき特定し、
特定された前記線画が備える隣接する画素の相対位置の情報を作成する処理では、特定された前記線画が描画された方向に基づいて特定した線画の基点から前記相対位置の情報を作成することを特徴とする請求項１記載の画像処理プログラム。
【請求項５】
前記コンピュータに、
前記画像の線画が描画された画素を特定し、
特定された前記画素を、前記画像を細分化した複数ブロックのうちの１つのブロックの辺部に移動させ、
移動させた前記画素をまとめた矩形を作成する処理をさらに実行させ、
前記画素群の各画素の位置情報を、前記統合した色の情報とともに送信する処理では、作成された矩形の位置情報と移動させた前記画素の移動量の情報を送信することを特徴とする請求項１ないし４のいずれかに記載の画像処理プログラム。
【請求項６】
前記コンピュータに、前記矩形それぞれの位置情報のデータ量と前記画素を移動させる前の前記画素それぞれの位置情報のデータ量とを比較する処理をさらに実行させ、
前記画素群の各画素の位置情報を、前記統合した色の情報とともに送信する処理では、前記矩形の位置情報のデータ量が前記画素を移動させる前の前記画素それぞれの位置情報のデータ量よりも小さい場合に、作成された前記矩形の位置情報と移動させた前記画素の移動量の情報を送信することを特徴とする請求項５記載の画像処理プログラム。
【請求項７】
コンピュータが、
送信対象の画像の背景色を特定し、
特定された前記背景色とは異なる色を有する、隣接する複数の画素を検出し、
検出された前記隣接する複数の画素のうち、色の異なる画素の色を統合した画素群を取得し、
前記画像の線画が描画された画素を特定し、
特定された前記線画が備える隣接する画素の相対位置の情報を作成し、
前記画素群の各画素の位置情報を、統合した色の情報とともに送信し、
前記画素群の各画素の位置情報を、前記統合した色の情報とともに送信する処理では、作成された前記相対位置の情報を送信する、
ことを特徴とする画像処理方法。
【請求項８】
送信対象の画像の背景色を特定する特定部と、
特定された前記背景色とは異なる色を有する、隣接する複数の画素を検出する検出部と、
検出された前記隣接する複数の画素のうち、色の異なる画素の色を統合した画素群を得る色統合部と、
前記画像の線画が描画された画素を特定する画素特定部と、
特定された前記線画が備える隣接する画素の相対位置の情報を作成する作成部と、
前記画像群の各画素の位置情報を、統合した色の情報とともに送信し前記画素群の各画素の位置情報を、前記統合した色の情報とともに送信する処理では、作成された前記相対位置の情報を送信する送信部と、
を有することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理プログラム、画像処理方法および画像処理装置に関する。
【背景技術】
【０００２】
近年、クライアント（Client）装置に搭載する機能を可及的に抑え、サーバ（Server）装置側でアプリケーション（Application）やファイル（File）等のリソース（Resource）を管理するシンクライアント（Thin Client）と言うシステム（System）が知られている。
【０００３】
シンクライアントシステムでは、実際にはサーバ装置が処理を実行した処理結果やサーバ装置が保持するデータをクライアントに表示させ、あたかもクライアントが主体となって処理を実行したり、データを保持したりしているかのように振る舞う。
【０００４】
シンクライアントシステムにて実行する業務の実行方法の一例としては、サーバ装置で資料作成業務やメール管理業務等に関するアプリケーションを実行させ、そのアプリケーションの処理結果をクライアントに表示させる方法等が挙げられる。
【０００５】
近年、資料作成業務やメール管理業務の他にも、シンクライアントシステムに実行させる業務を、ＣＡＤ（Computer-Aided Design）作成業務等のように精細な画像を扱う業務や、動画再生・編集業務等まで拡充することが求められている。
【０００６】
クライアント装置からサーバ装置に画像データを送信する方法として、ＲＦＢ（Remote Frame Buffer）プロトコルを用いて送信する方法が知られている。また、他の方法として、画像データをＪＰＥＧ等に変換して送信する方法が知られている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２００７−５０５５８０号公報
【非特許文献】
【０００８】
【非特許文献１】“Virtual Network Computing”, IEEE Internet Computing, Volume2, Number 1, January/February 1998, pp. 33-38
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ＲＦＢプロトコルは、画像データを圧縮して送信することができる。しかしながら、画像データに含まれる線画の数が多くなるにつれて処理速度が低下する。
また、画像データをＪＰＥＧ方式に変換して送信した場合は、画像の細部がつぶれて視認性が悪化すると言う問題があった。また、ＤＣＴ変換を伴うため、変換処理に時間がかかると言う問題があった。
【００１０】
なお、シンクライアントシステムについて説明したが、画像の送信処理を行う他のシステムにも同様の問題がある。
本発明はこのような点に鑑みてなされたものであり、送信する画像データの情報量を低減する画像処理プログラム、画像処理方法および画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、開示の画像処理プログラムが提供される。この画像処理プログラムは、コンピュータに、送信対象の画像の背景色を特定し、特定された前記背景色とは異なる色を有する、隣接する複数の画素を検出し、検出された隣接する複数の画素のうち、色の異なる画素の色を統合した画素群を取得し、前記画像の線画が描画された画素を特定し、特定された前記線画が備える隣接する画素の相対位置の情報を作成し、この画素群の各画素の位置情報を、統合した色の情報とともに送信し、前記画素群の各画素の位置情報を、統合した色の情報とともに送信する処理では、作成された前記相対位置の情報を送信する処理を実行させる。
【発明の効果】
【００１２】
送信する画像データの情報量を低減することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態の画像処理装置を示す図である。
【図２】第２の実施の形態の画像処理システムを示す図である。
【図３】第２の実施の形態の画像処理システムの機能を示すブロック図である。
【図４】ブロックの一例を示す図である。
【図５】送信データのフォーマットの一例を示す図である。
【図６】サーバ装置の処理を示すフローチャートである。
【図７】アンチエイリアス除去処理を示すフローチャートである。
【図８】第３の実施の形態の画像処理システムの機能を示すブロック図である。
【図９】第３の実施の形態のサーバ装置の処理を示すフローチャートである。
【図１０】第３の実施の形態の線画領域検出部の処理を説明する図である。
【図１１】第４の実施の形態の画像処理システムの機能を示すブロック図である。
【図１２】第４の実施の形態の線画領域検出部の処理の具体例を説明する図である。
【図１３】第４の実施の形態のサーバ装置の処理を示すフローチャートである。
【図１４】第５の実施の形態の画像処理システムの機能を示すブロック図である。
【図１５】第５の実施の形態のサーバ装置の処理を示すフローチャートである。
【図１６】シフト処理を示すフローチャートである。
【図１７】シフト処理の具体例を説明する図である。
【発明を実施するための形態】
【００１４】
以下、実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態の画像処理装置について説明し、その後、実施の形態をより具体的に説明する。
【００１５】
＜第１の実施の形態＞
図１は、第１の実施の形態の画像処理装置を示す図である。
実施の形態の画像処理装置（コンピュータ）１は、記憶部１ａと、分割部１ｂと、特定部１ｃと、検出部１ｄと、色統合部１ｅと、送信部１ｆとを有している。
【００１６】
記憶部１ａには、他の装置６に送信する送信対象の画像データが記憶されている。なお、図１では、１つの装置６を図示しているが、送信対象の装置は１つに限定されない。
分割部１ｂは、送信する画像データの画像を複数の領域に分割する。画像データの種別は特に限定されないが、例えばＣＡＤデータ等が挙げられる。以下、画像データがＣＡＤデータである場合を例に説明する。図１では、１つの画像データの画像２を１６個の領域２ａに分割した例を示している。この領域２ａは、装置６に一度に送信されるデータの大きさに対応するものであり、画像データを分割するか否かは任意に決定することができる。
【００１７】
特定部１ｃは、画像２の背景色を特定する。特定部１ｃは、例えば、各領域２ａについて最も出現する領域の多い色を背景色として特定する。
検出部１ｄは、特定部１ｃが背景色とは異なる色を有する画素のうち、隣接する複数の画素が存在する部位を検出する。ここで言う隣接とは、縦方向、横方向および斜め方向の隣接を含む。図１では、例えば、画像２の左上の領域２ａを拡大して示している。領域２ａには、背景色とは異なる色を有する線画３が描画されている。線画３は、矩形（部位）３ａ、３ｂ、３ｃ、３ｄおよび矩形４ａ、４ｂ、４ｃ、４ｄ、４ｅ、４ｆを有している。１つの矩形は、１画素に対応している。また、矩形３ａ、３ｂ、３ｃ、３ｄの色はそれぞれ等しく、矩形４ａ、４ｂ、４ｃ、４ｄ、４ｅ、４ｆの色はそれぞれ等しい。
【００１８】
ここで、矩形３ａ、３ｂ、３ｃ、３ｄはアンチエイリアス処理が施されることにより、画像２に追加された部位である。矩形３ａ、３ｂ、３ｃ、３ｄを追加することにより、線画３を滑らかに見せることができる。矩形３ａ、３ｂ、３ｃ、３ｄの色は、例えば矩形４ａ、４ｂ、４ｃ、４ｄ、４ｅ、４ｆの色と背景色の中間色が用いられている。
【００１９】
色統合部１ｅは、隣接する画素の色データに基づいて、画素の色を統合する。なお、統合の方法については、第２の実施の形態にて詳述する。図１では、矩形３ａ、３ｂ、３ｃ、３ｄの色を、矩形４ａ、４ｂ、４ｃ、４ｄ、４ｅ、４ｆの色に統合した例を示している。色の統合により、送信するデータに含まれる色の情報が減るため、送信するデータ量を減らすことができる。
【００２０】
送信部１ｆは、色を統合した画像データを、ネットワーク５を介して画像２の送信を要求する要求先の装置６に送信する。送信時には、矩形３ａ、３ｂ、３ｃ、３ｄ、４ａ、４ｂ、４ｃ、４ｄ、４ｅ、４ｆの統合した色、各矩形の位置座標、および各矩形のサイズのデータを画像データに含ませることができる。また、色の統合により、例えば矩形３ｂ、４ｄ、３ｃは１つの矩形７であるとみなすことができる。従って、矩形３ｂ、４ｄ、３ｃについては、各矩形の位置座標の代わりに矩形７の位置座標を含ませ、各矩形のサイズのデータの代わりに、矩形７のサイズのデータを含ませることができる。これにより、送信するデータ量を減らすことができる。
【００２１】
なお、分割部１ｂ、特定部１ｃ、色統合部１ｅ、送信部１ｆは、画像処理装置１が有するＣＰＵ（Central Processing Unit）が備える機能により実現することができる。また、記憶部１ａは、画像処理装置１が有するＲＡＭ（Random Access Memory）やハードディスクドライブ（ＨＤＤ:Hard Disk Drive）等が備えるデータ記憶領域により実現することができる。また、送信部１ｆが装置６に画像データを送信する際には、例えばＲＤＰ（Remote Desktop Protocol）や、ＶＮＣ（Virtual Network Computing）で用いられているＲＦＢ（Remote Frame Buffer）プロトコル等で、画像や動画等の大容量のデータを扱う場合にも適用することができる。
【００２２】
以下、実施の形態をより具体的に説明する。
＜第２の実施の形態＞
図２は、第２の実施の形態の画像処理システムを示す図である。
【００２３】
図２に示すように、画像処理システム１００は、サーバ装置１０と、クライアント装置２０とを有する。
これらサーバ装置１０およびクライアント装置２０は、所定のネットワーク（Network）５０を介して、相互に通信可能に接続される。かかるネットワーク５０には、有線または無線を問わず、インターネット（Internet）、ＬＡＮ（Local Area Network）やＶＰＮ（Virtual Private Network）等の任意の種類の通信網を採用できる。なお、サーバ装置１０およびクライアント装置２０間の通信プロトコル（Protocol）には、一例として、ＶＮＣにおけるＲＦＢプロトコルを採用する場合を想定する。
【００２４】
なお、図２では、１つのサーバ装置１０に対し、１つのクライアント装置を接続する場合を図示したが、１つのサーバ装置１０に対し、２以上のクライアント装置が接続されていてもよい。
【００２５】
サーバ装置１０は、クライアント装置２０に表示させる画面をリモートで制御するサービスを提供するコンピュータ（Computer）である。
クライアント装置２０は、サーバ装置１０によるリモート画面制御サービスの提供を受ける側のコンピュータである。かかるクライアント装置２０の一例としては、パーソナルコンピュータ（Personal Computer）等固定端末の他、携帯電話機、ＰＨＳ（Personal Handyphone System）やＰＤＡ（Personal Digital Assistant）等の移動体端末を適用することもできる。
【００２６】
以下、サーバ装置１０およびクライアント装置２０のハードウェア構成を説明する。サーバ装置１０は、ＣＰＵ１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ１０２と複数の周辺機器が接続されている。
【００２７】
ＲＡＭ１０２は、サーバ装置１０の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に用いる各種データが格納される。
【００２８】
バス１０８に接続されている周辺機器としては、ハードディスクドライブ１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、および通信インタフェース１０７がある。
【００２９】
ハードディスクドライブ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ハードディスクドライブ１０３は、サーバ装置１０の二次記憶装置として使用される。ハードディスクドライブ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。
【００３０】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０４ａの画面に表示させる。モニタ１０４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた液晶表示装置等が挙げられる。
【００３１】
入力インタフェース１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インタフェース１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等が挙げられる。
【００３２】
光学ドライブ装置１０６は、レーザ光等を利用して、光ディスク２００に記録されたデータの読み取りを行う。光ディスク２００は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２００には、Ｂｌｕ−Ｒａｙ（登録商標）、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。
【００３３】
通信インタフェース１０７は、ネットワーク５０に接続されている。通信インタフェース１０７は、ネットワーク５０を介して、クライアント装置２０との間でデータの送受信を行う。
【００３４】
クライアント装置２０は、ＣＰＵ２０１によって装置全体が制御されている。ＣＰＵ２０１には、バス２０７を介してＲＡＭ２０２、Ｆｌａｓｈメモリ２０３、グラフィック処理装置２０４、入力インタフェース２０５および通信インタフェース２０６が接続されている。
【００３５】
ＲＡＭ２０２、グラフィック処理装置２０４、入力インタフェース２０５および通信インタフェース２０６の機能は、それぞれＲＡＭ１０２、グラフィック処理装置１０４、入力インタフェース１０５および通信インタフェース１０７と同様である。
【００３６】
また、クライアント装置２０は、ハードディスクドライブ１０３を搭載せず、Ｆｌａｓｈメモリ２０３を有している。
表示デバイス２０４ａは、各種の情報、例えばサーバ装置１０から送信されたデスクトップ画面等を表示するデバイスであり、一例としては、モニタ（monitor）、ディスプレイ（display）やタッチパネル（touch panel）等が挙げられる。図２では、携帯端末型のクライアント装置２０を例示しており、表示デバイス２０４ａは、クライアント装置２０に搭載されている。
【００３７】
入力デバイス２０５ａは、ユーザの指示入力を受け付けるデバイスであり、一例としては、キーボード（keyboard）やマウス等が挙げられる。なお、表示デバイス２０４ａも、マウスと協働して、ポインティングデバイス（pointing device）機能を実現する。
【００３８】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
このようなハードウェア構成の画像処理システム１００内には、以下のような機能が設けられる。
【００３９】
以下、本実施の形態ではサーバ装置１０からクライアント装置２０に画像データを送信する場合を例に説明する。なお、クライアント装置２０からサーバ装置１０に画像データを送信する場合は、例えばサーバ装置１０が有する機能とクライアント装置２０が有する機能を入れ替えることで実現することができる。
【００４０】
図３は、第２の実施の形態の画像処理システムの機能を示すブロック図である。
サーバ装置１０は、フレームバッファ１１と、フレームバッファ抽出部１２と、最大出現色検索部１３と、アンチエイリアス除去部１４と、線画領域検出部１５と、送信部１６とを有している。
【００４１】
フレームバッファ１１は、サーバ装置１０が有するグラフィックドライバにより描画された１フレーム分の画像データを記憶する。かかるフレームバッファ１１の一態様としては、ＶＲＡＭ（Video Random Access Memory）を始めとするＲＡＭ、ＲＯＭ（Read Only Memory）やフラッシュメモリ（Flash Memory）等の半導体メモリ素子が挙げられる。なお、フレームバッファ１１は、ハードディスクドライブ、光ディスク等の記憶装置を採用することとしてもかまわない。
【００４２】
フレームバッファ抽出部１２は、フレームバッファ１１に記憶されている１フレーム分の画像データを抽出する。
最大出現色検索部１３は、フレームバッファ抽出部１２が抽出した１フレーム分の画像データの画像を、複数のブロックに分割する。例えば、１フレームの画面サイズが２５６画素×２５６画素である場合、各画面サイズが１６画素×１６画素の１６個のブロックに分割する。なお、分割する数は、前述のものに限定されない。そして、最大出現色検索部１３は、分割した各ブロックについて最も出現頻度の高い色を背景色としてエンコード（一定の規則に従ってデータに置き換えて記録）する。
【００４３】
図４は、ブロックの一例を示す図である。
図４（ａ）は、最大出現色検索部１３が分割したブロックのうち１つのブロックＢ１を示している。ブロックＢ１には、左上から右下方向に向かって線画Ｌ１が描画されている。線画Ｌ１は、右下方向に隣接する複数の画素Ｐ１が連なって形成されたものである。以下、線画Ｌ１が描画されている画素Ｐ１を、「線画領域」と言う。線画Ｌ１は、線画領域Ａ１１、Ａ１２、Ａ１３、Ａ１４、Ａ１５、Ａ１６および線画領域Ａ２１、Ａ２２、Ａ２３、Ａ２４を有している。ここで、線画領域Ａ２１〜Ａ２４は、アンチエイリアス処理が施されることにより線画Ｌ１に追加された部位である。線画領域Ａ２１〜Ａ２４を追加することにより、線画Ｌ１を滑らかに見せることができる。
【００４４】
線画領域Ａ１１〜Ａ１６の色はそれぞれ等しく、線画領域Ａ２１〜Ａ２４の色はそれぞれ等しい。また、線画領域Ａ２１〜Ａ２４の色は、例えば線画領域Ａ１１〜Ａ１６と背景色の中間色が用いられている。
【００４５】
図４では、ブロックＢ１の線画Ｌ１が描画された画素Ｐ１以外の画素Ｐ１の色は、白色であるものとする。この場合、最大出現色検索部１３は、白色を背景色としてエンコードする。
【００４６】
アンチエイリアス除去部１４は、フレームバッファ抽出部１２が抽出した画像データからアンチエイリアスを除去する。例えば図４に示すブロックＢ１の場合、アンチエイリアス除去部１４は、線画領域Ａ２１〜Ａ２４の色を線画領域Ａ１１〜Ａ１６の色に置換する。図４（ｂ）は、アンチエイリアスが除去されたブロックＢ１を示す図である。アンチエイリアス除去処理により線画Ｌ１の最初から存在する部分の線画領域Ａ１１〜Ａ１６の色と、アンチエイリアスが施された線画領域Ａ２１〜Ａ２４の色をまとめて記憶することができるため、送信するデータ量を減らすことができる。
【００４７】
線画領域検出部１５は、ブロック内の線画領域を検索する。具体的には、線画領域検出部１５は、最大出現色検索部１３がエンコードした背景色以外の色を持つ画素を、フレームバッファ抽出部１２が抽出した画像データの画像を走査することにより検索する。そして、見つかった画素を線画領域とする。そして、線画領域検出部１５は、見つかった線画領域の次の行を走査することにより、見つかった線画領域を左上または右上に持つ、見つかった線画領域と同じ色の線画領域を検出する。同じ色の線画領域が行方向に並んでいる場合は、これらの線画領域を１つのまとまった領域として検出する。線画領域検出部１５は、ブロックＢ１の全ての画素Ｐ１について線画領域の検出を行う。そして、線画領域検出部１５は、検出した線画領域の色、各線画領域の左上部の位置座標、および各線画領域のサイズのデータをエンコードする。そして、線画領域検出部１５は、エンコードしたこれらのデータを、最大出現色検索部１３がエンコードした背景色のデータとともに、画像データに付加した送信データを作成する。
【００４８】
図５は、送信データのフォーマットの一例を示す図である。
送信データＤ１は、色データ格納領域Ｄ１１と、線画領域数格納領域Ｄ１２と、線画領域位置情報格納領域Ｄ１３とを有している。
【００４９】
色データ格納領域Ｄ１１には、ブロックＢ１に描画された線画Ｌ１の色のデータおよび背景色のデータが格納される。例えば、１つの画素の各原色（Ｒ：Ｇ：Ｂ）の分解能をそれぞれ８ビットとすると、色データ格納領域Ｄ１１に格納されるデータは、合計２４ビットとなる。
【００５０】
線画領域数格納領域Ｄ１２には、色データ格納領域Ｄ１１に格納された色データを有する線画領域の数を識別する情報が格納される。例えば、図４のブロックＢ１では、アンチエイリアス除去処理が施されることにより、８個の線画領域が存在する。この場合、線画領域数格納領域Ｄ１２に格納される線画領域の数は８となる。
【００５１】
線画領域位置情報格納領域Ｄ１３には、線画領域毎の位置情報（位置およびサイズ）が格納される。
なお、本実施の形態では、ブロックＢ１に１本の線画Ｌ１が存在する場合について説明するが、１つのブロックＢ１に複数の線画が存在する場合は、線画領域検出部１５は、線画毎に線画領域の検出を行い、検出した線画領域のデータを送信データＤ１に含ませる。再び図３に戻って説明する。
【００５２】
送信部１６は、線画領域検出部１５から受け取った送信データをクライアント装置２０に送信する。
次に、クライアント装置２０の機能を説明する。
【００５３】
クライアント装置２０は、受信部２１と、背景設定部２２と、線画領域復元部２３と、フレームバッファ制御部２４と、フレームバッファ２５と、表示部２６とを有している。
受信部２１は、送信部１６が送信した送信データＤ１を受信する。
【００５４】
背景設定部２２は、受信部２１が受信した送信データＤ１の色データ格納領域Ｄ１１に含まれる背景色のデータをデコードして取り出した背景色を、表示部２６が表示する画像の背景に設定する。
【００５５】
線画領域復元部２３は、送信データＤ１の線画領域位置情報格納領域Ｄ１３に含まれるデータをデコードして表示部２６が表示する画像の線画Ｌ１を配置する位置を決定する。そして、線画領域復元部２３は、色データ格納領域Ｄ１１に含まれる線画Ｌ１の線画領域の色のデータをデコードして線画Ｌ１の色を復元する。
【００５６】
フレームバッファ制御部２４は、背景設定部２２が復元した背景色と、線画領域復元部２３が復元した色が描画された線画Ｌ１とを含む画像データをフレームバッファ２５に書き込む。
【００５７】
表示部２６は、フレームバッファ２５に記憶されている１フレーム分の画像を表示デバイス２０４ａに表示する。
次に、サーバ装置１０の処理を説明する。
【００５８】
図６は、サーバ装置の処理を示すフローチャートである。
［ステップＳ１］  フレームバッファ抽出部１２は、フレームバッファ１１に格納されている画像データを抽出する。その後、ステップＳ２に遷移する。
【００５９】
［ステップＳ２］  最大出現色検索部１３は、フレームバッファ抽出部１２が抽出した画像データの画像を複数のブロックＢ１に分割する。その後、ステップＳ３に遷移する。
［ステップＳ３］  最大出現色検索部１３は、各ブロックＢ１について最も出現頻度の高い色を背景色としてエンコードする。その後、ステップＳ４に遷移する。
【００６０】
［ステップＳ４］  アンチエイリアス除去部１４は、各ブロックＢ１についてアンチエイリアス除去処理を行う。その後、ステップＳ５に遷移する。
［ステップＳ５］  線画領域検出部１５は、背景色以外の色の画素を検索する。その後、ステップＳ６に遷移する。
【００６１】
［ステップＳ６］  線画領域検出部１５は、ステップＳ５の検索により見つかった画素を、ある線画の線画領域とする。そして、線画領域検出部１５は、見つかった線画領域の次の行を走査することにより、見つかった線画領域を左上または右上に持つ、見つかった線画領域と同じ色の線画領域を検出する。線画領域検出部１５は、ブロックＢ１の全ての画素Ｐ１について線画領域の検出を行う。その後、ステップＳ７に遷移する。
【００６２】
［ステップＳ７］  線画領域検出部１５は、検出した線画領域の色、各線画領域の左上部の位置座標、および各線画領域のサイズのデータをエンコードする。
［ステップＳ８］  線画領域検出部１５は、ブロックＢ１内の全ての画素を検索したか否かを判断する。ブロックＢ１内の全ての画素を検索した場合（ステップＳ８のＹｅｓ）、ステップＳ９に遷移する。ブロックＢ１内の全ての画素を検索していない場合（ステップＳ８のＮｏ）、ステップＳ５に遷移し、ステップＳ５以降の処理を繰り返し行う。
【００６３】
［ステップＳ９］  線画領域検出部１５は、送信データＤ１を作成し、送信部１６に送る。その後、ステップＳ１０に遷移する。
［ステップＳ１０］  送信部１６は、線画領域検出部１５から受け取った送信データＤ１を、ネットワーク５０を介してクライアント装置２０に送信する。その後、図６の処理を終了する。
【００６４】
以上で図６の処理の説明を終了する。なお、本実施の形態では、ステップＳ３の処理を行った後にステップＳ４の処理を行った場合を例に説明したが、ステップＳ３の処理を実行する過程でステップＳ４の処理を実行するようにしてもよい。
【００６５】
次に、ステップＳ４のアンチエイリアス除去処理を詳しく説明する。
図７は、アンチエイリアス除去処理を示すフローチャートである。
［ステップＳ４１］  アンチエイリアス除去部１４は、分割した複数のブロックＢ１からブロックＢ１を１つ選択する。その後、ステップＳ４２に遷移する。
【００６６】
［ステップＳ４２］  アンチエイリアス除去部１４は、ブロックＢ１に含まれる画素のうち、３つの連続する画素Ｐ１（以下、「画素Ｐ１Ａ、Ｐ１Ｂ、Ｐ１Ｃ」とする）の色データＲ1：Ｇ1：Ｂ1、Ｒ2：Ｇ2：Ｂ2、Ｒ3：Ｇ3：Ｂ3を取得する。その後、ステップＳ４３に遷移する。
【００６７】
［ステップＳ４３］  アンチエイリアス除去部１４は、真ん中の画素Ｐ１Ｂ以外の画素、すなわち画素Ｐ１Ａまたは画素Ｐ１Ｃの色データにより特定される色のいずれか一方が、背景色と同じか否かを判断する。画素Ｐ１Ａまたは画素Ｐ１Ｃの色データにより特定される色のいずれか一方が、背景色と同じである場合（ステップＳ４３のＹｅｓ）、ステップＳ４４に遷移する。画素Ｐ１Ａまたは画素Ｐ１Ｃの色データにより特定される色のいずれも背景色と同じではない場合（ステップＳ４３のＮｏ）、ステップＳ４６に遷移する。
【００６８】
［ステップＳ４４］  アンチエイリアス除去部１４は、所定のα（０＜α＜１）に対してＲ2：Ｇ2：Ｂ2＝α（Ｒ1：Ｇ1：Ｂ1）＋（１−α）（Ｒ3：Ｇ3：Ｂ3）の関係式を満たすか否かを判断する。関係式を満たす場合（ステップＳ４４のＹｅｓ）、ステップＳ４５に遷移する。関係式を満たさない場合（ステップＳ４４のＮｏ）、ステップＳ４６に遷移する。
【００６９】
［ステップＳ４５］  アンチエイリアス除去部１４は、Ｒ2：Ｇ2：Ｂ2＝Ｒ3：Ｇ3：Ｂ3とする。その後、ステップＳ４６に遷移する。
［ステップＳ４６］  アンチエイリアス除去部１４は、ブロックＢ１の画素全てについてステップＳ４２〜Ｓ４５の処理を行ったか否かを判断する。ブロックＢ１の画素全てについてステップＳ４２〜Ｓ４５の処理を行った場合（ステップＳ４６のＹｅｓ）、ステップＳ４７に遷移する。ブロックＢ１の画素全てについてステップＳ４２〜Ｓ４５の処理を行っていない場合（ステップＳ４６のＮｏ）、ステップＳ４２に遷移し、画素１つ分走査方向に移動してステップＳ４２以降の処理を繰り返し行う。
【００７０】
［ステップＳ４７］  アンチエイリアス除去部１４は、全てのブロックＢ１についてステップＳ４２〜Ｓ４６の処理を行ったか否かを判断する。全てのブロックＢ１についてステップＳ４２〜Ｓ４６の処理を行った場合（ステップＳ４７のＹｅｓ）、アンチエイリアス除去処理を終了する。全てのブロックＢ１についてステップＳ４２〜Ｓ４６の処理を行っていない場合（ステップＳ４６のＮｏ）、ステップＳ４１に遷移し、未選択のブロックＢ１を選択する。そして、選択したブロックＢ１について、ステップＳ４２以降の処理を繰り返し行う。
【００７１】
以上でアンチエイリアス除去処理の説明を終了する。
以上述べたように、画像処理システム１００によれば、サーバ装置１０が、アンチエイリアスを自動認識して除去するようにした。これにより、送信データＤ１に含まれる色の情報が減るため、送信するデータ量を減らすことができる。
【００７２】
なお、サーバ装置１０が行った処理が、複数の装置によって分散処理されるようにしてもよい。
＜第３の実施の形態＞
次に、第３の実施の形態の画像処理システムを説明する。以下、第２の実施の形態と異なる部分について説明し、同様の部分については説明を省略する。
【００７３】
図８は、第３の実施の形態の画像処理システムの機能を示すブロック図である。
第３の実施の形態の画像処理システム１００ａは、サーバ装置１０ａの最大出現色検索部１３ａおよび線画領域検出部１５ａの機能が、第２の実施の形態とは異なっている。また、クライアント装置２０ａの線画領域復元部２３ａの機能が、第２の実施の形態とは異なっている。
【００７４】
最大出現色検索部１３ａは、フレームバッファ抽出部１２から画像データを読み込む度に、読み込んだ画像データに出現する色の順位を、画像データに占める領域の大きい順に記憶する。例えば、最大出現色検索部１３ａは、１フレームの画像の色の順位を上位１６色分記憶する。そして、最大出現色検索部１３ａは、次の１フレームの画像を分割した各ブロックＢ１について最も大きな領域を占める色を抽出する。そして、抽出した色が、予め記憶しておいた１つ前のフレームの色の順位の上位１６色に存在するか否かを判断する。最大出現色検索部１３ａは、抽出した色が、予め記憶しておいた１つ前のフレームの色の順位の上位１６色に存在する場合は、その順位のデータのみをエンコードする。
【００７５】
線画領域検出部１５ａは、線画領域検出部１５が有する機能に加え、さらに以下の機能を有している。
線画領域検出部１５ａは、検出した線画領域の色が、１つ前のフレームの上位１６色に存在するか否かを判断する。そして、検出した線画領域の色が、１つ前のフレームの上位１６色に存在する場合、線画領域検出部１５ａは、検出した線画領域の色の順位、各線画領域の左上部の位置座標、および各線画領域のサイズのデータをエンコードする。この処理により、色データ自体を格納する場合に比べ、色データ格納領域Ｄ１１に格納するデータ量を減らすことができる。また、線画領域検出部１５ａは、検出した線画領域の色が、１つ前のフレームの上位１６色に存在しない場合、検出した線画領域の色、各線画領域の左上部の位置座標、および各線画領域のサイズのデータをエンコードする。
【００７６】
線画領域復元部２３ａは、送信データＤ１の色データ格納領域Ｄ１１に含まれるデータをデコードして画像の色を復元する。このデコード時に色の順位のデータをデコードして、ブロックＢ１に含まれる線画Ｌ１の色を復元した場合には、色のデータ自体をデコードした場合に比べ、復元処理を高速化することができる。
【００７７】
なお、線画領域復元部２３ａは、色の順位がどの色に対応しているのかを予め記憶しておく。記憶しておくデータは、例えば、サーバ装置１０ａが、現在のフレームの画像データの最終ブロックＢ１の送信データＤ１の送信時に、現在のフレームの上位１６色の順位に対応する色のデータをクライアント装置２０ａに送る。線画領域復元部２３ａは、そのデータを受け取り、次回のフレームの送信データＤ１の受信時に参照する。
【００７８】
図９は、第３の実施の形態のサーバ装置の処理を示すフローチャートである。図９に示すフローチャートは、２フレーム目以降の画像データに対する処理を示している。サーバ装置１０ａは、１フレーム目の画像データについては、図６に示す処理と同様の処理を行う。
【００７９】
［ステップＳ３ａ］  最大出現色検索部１３ａは、各ブロックＢ１について最も出現頻度の高い色を抽出する。その後、ステップＳ３ｂに遷移する。
［ステップＳ３ｂ］  最大出現色検索部１３ａは、ステップＳ３ａにて抽出した色が、予め記憶しておいた１つ前のフレームの色の出現頻度の上位１６色に存在するか否かを判断する。ステップＳ３ａにて抽出した色が１つ前のフレームの上位１６色に存在する場合（ステップＳ３ｂのＹｅｓ）、ステップＳ３ｃに遷移する。ステップＳ３ａにて抽出した色が１つ前のフレームの上位１６色に存在しない場合（ステップＳ３ｂのＮｏ）、ステップＳ３ｄに遷移する。
【００８０】
［ステップＳ３ｃ］  最大出現色検索部１３ａは、順位のデータをエンコードする。その後、ステップＳ４に遷移する。
［ステップＳ３ｄ］  最大出現色検索部１３ａは、抽出した色を背景色としてエンコードする。その後、ステップＳ４に遷移する。
【００８１】
［ステップＳ４］  アンチエイリアス除去部１４は、各ブロックＢ１についてアンチエイリアス除去処理を行う。その後、ステップＳ５に遷移する。
［ステップＳ５］  線画領域検出部１５ａは、背景色以外の色の画素を検索する。その後、ステップＳ６に遷移する。
【００８２】
［ステップＳ６］  線画領域検出部１５ａは、ステップＳ５の検索により見つかった画素を、ある線画の線画領域とする。そして、線画領域検出部１５ａは、見つかった線画領域の次の行を走査することにより、見つかった線画領域を左上または右上に持つ、見つかった線画領域と同じ色の線画領域を検出する。線画領域検出部１５ａは、ブロックＢ１の全ての画素Ｐ１について線画領域の検出を行う。その後、ステップＳ６ａに遷移する。
【００８３】
［ステップＳ６ａ］  線画領域検出部１５ａは、検出した線画領域の色が、１つ前のフレームの上位１６色に存在するか否かを判断する。検出した線画領域の色が、１つ前のフレームの上位１６色に存在する場合（ステップＳ６ａのＹｅｓ）、ステップＳ６ｂに遷移する。検出した線画領域の色が、１つ前のフレームの上位１６色に存在しない場合（ステップＳ６ａのＮｏ）、ステップＳ７に遷移する。
【００８４】
［ステップＳ６ｂ］  線画領域検出部１５ａは、検出した線画領域の色の順位、各線画領域の左上部の位置座標、および各線画領域のサイズのデータをエンコードする。そして、線画領域検出部１５は、送信データを作成し、送信部１６に送る。その後、ステップＳ８に遷移する。
【００８５】
［ステップＳ７］  線画領域検出部１５ａは、検出した線画領域の色、各線画領域の左上部の位置座標、および各線画領域のサイズのデータをエンコードする。そして、線画領域検出部１５は、送信データを作成し、送信部１６に送る。その後、ステップＳ８に遷移する。なお、ステップＳ８以降の処理の説明は省略する。
【００８６】
以上で図９の処理の説明を終了する。
なお、本実施の形態では、１フレーム前の色の順位のデータをエンコードした。しかし、これに限らず、１フレーム以前のフレームの色の順位のデータをエンコードするようにしてもよい。
【００８７】
次に線画領域検出部１５ａの処理を、具体例を用いて説明する。
図１０は、第３の実施の形態の線画領域検出部の処理を説明する図である。
図１０は、隣接する２つのブロックＢ２、Ｂ３を示している。図１０では３つの線画Ｌ２、Ｌ３、Ｌ４を示している。線画Ｌ２のＲ：Ｇ：Ｂは、０：２５５：２５５であるものとする。線画Ｌ３のＲ：Ｇ：Ｂは、２５５：０：１２８であるものとする。線画Ｌ４のＲ：Ｇ：Ｂは、０：６４：１２８であるものとする。色データを記憶する場合のビット数は、各原色について８ビットの合計２４ビットである。
【００８８】
また、ブロックＢ２、Ｂ３は、１６画素×１６画素の矩形であるため、線画Ｌ２、Ｌ３Ｌ４を構成する各線画領域の位置と大きさを１６ビットで指定することができる。内訳は、各線画領域の左上のｘ座標：４ビット、ｙ座標：４ビット、幅：４ビット、高さ：４ビットである。
【００８９】
ブロックＢ３について、全ての色データを記憶する場合の送信データＤ１のデータ量は、（２４＋１６×５）＋（２４＋１６×６）＋（２４＋１６×６）＝１０４＋１２０＋１２０＝３４４ビットとなる。内訳は、線画Ｌ２、Ｌ３、Ｌ４を構成する各線画領域それぞれについて（色データ：２４ビット、画素ブロックの位置と大きさ：１６ビット、画素ブロックの数）である。
【００９０】
これに対し、１フレームの色の順位を上位１６色分記憶する方法を用いた場合は、４ビットで１６パターンを作成することができるため、各パターンを１つの色に割り当てると、上位１６色を４ビットで記憶することができる。
【００９１】
ブロックＢ３について１フレームの色の順位を上位１６色分記憶する方法を用いた場合の送信データＤ１のデータ量は、（４＋１６×５）＋（４＋１６×６）＋（４＋１６×６）＝８４＋１００＋１００＝２８４ビットとなる。
【００９２】
この第３の実施の形態の画像処理システム１００ａによれば、第２の実施の形態の画像処理システム１００と同様の効果が得られる。さらに、画像処理システム１００ａによれば、色データ格納領域Ｄ１１に格納するデータ量を減らすことができるので、クライアント装置２０ａに送信する送信データＤ１のデータ量を減らすことができる。
【００９３】
＜第４の実施の形態＞
次に、第４の実施の形態の画像処理システムを説明する。以下、第２の実施の形態と異なる部分について説明し、同様の部分については説明を省略する。
【００９４】
図１１は、第４の実施の形態の画像処理システムの機能を示すブロック図である。
第４の実施の形態のサーバ装置１０ｂは、線画領域検出部１５の代わりに線画領域検出部１５ｂを有している。線画領域検出部１５ｂは、線画領域検出部１５が有する機能に加え、さらに以下の機能を有している。
【００９５】
線画領域検出部１５ｂは、各ブロックＢ１において線画Ｌ１が描画された方向が右下がりか左下がりかを検索する。そして、線画領域検出部１５ｂは、右下がりなら右下、左下がりなら左下を基点として前の線画領域との相対座標を指定する。また線画領域のサイズも前の線画領域との相対サイズを指定する。この処理により、各線画領域の左上部の位置座標とサイズのデータに出現する０の値が増える可能性を高める。
【００９６】
図１２は、第４の実施の形態の線画領域検出部の処理の具体例を説明する図である。なお、図１２では、ブロックＢ１の一部を拡大して示している。
線画領域検出部１５ｂは、読み込んだ線画領域Ａ３１の左上部の位置座標（０，０）およびサイズ（１×１）を記憶しておく。その後、線画領域検出部１５ｂが線画領域Ａ３２を検出したときに、線画Ｌ１が描画された方向が右下がりであると判断する。そして、線画領域検出部１５ｂは、線画領域Ａ３１の右下の位置座標（１，１）を基点として線画領域Ａ３２の相対座標を指定する。この結果、線画領域Ａ３２の線画領域Ａ３１に対する相対座標は（０，０）となる。また、線画領域Ａ３２の線画領域Ａ３１に対する相対サイズは（０×１）となる。同様に、線画領域Ａ３３の線画領域Ａ３２に対する相対座標は（０，０）となる。また、線画領域Ａ３３の線画領域Ａ３２に対する相対サイズは（０×０）となる。以降線画領域Ａ３４、Ａ３５、Ａ３６についても同様の処理を行う。
【００９７】
線画領域検出部１５ｂは、この相対座標および相対サイズのデータに対してワイル符号（Wyle Code）を用いてエンコードを行う。例えば、８ビット（０〜２５５）の数値を符号化する場合、０〜３は、０ｘｘ（ｘは、２ビットの数値であり、例えば、１であれば００１、２であれば０１０）、４〜７は、１０ｘｘｘと言うルールでエンコードすることができる。
【００９８】
ワイル符号を用いてエンコードを行うことで、データ値が小さいほど出現頻度が高いことが何らかの理由で分かっている場合に桁数が小さいデータが増える。このため、本実施の形態の送信データＤ１にワイル符号を適用したデータを格納することで、送信データＤ１の線画領域位置情報格納領域Ｄ１３に格納するデータ量が小さくなる可能性を高めることができる。
【００９９】
線画領域復元部２３ｂは、線画領域検出部１５ｂがワイル符号を用いてエンコードしたデータをデコードするルールを予め有している。そして、このルールに基づいて、エンコードされたデータを復号する。
【０１００】
次に、第４の実施の形態のサーバ装置１０ｂの処理を説明する。
図１３は、第４の実施の形態のサーバ装置の処理を示すフローチャートである。第２の実施の形態のサーバ装置の処理と同じステップ番号を付した番号の処理を省略し、異なる部分を説明する。
【０１０１】
［ステップＳ６ｅ］  線画領域検出部１５ｂは、ブロックＢ１における線画領域の検出が１回目か否かを判断する。１回目の検出である場合（ステップＳ６ｅのＹｅｓ）、ステップＳ７に遷移する。１回目の検出ではない場合、すなわち、２回目以降の検出である場合（ステップＳ６ｅのＮｏ）、ステップＳ６ｆに遷移する。
【０１０２】
［ステップＳ６ｆ］  線画領域検出部１５ｂは、検出した線画領域の色、前回検出した線画領域との相対座標、相対サイズのデータをワイル圧縮によりエンコードする。そして、線画領域検出部１５ｂは、送信データＤ１を作成し、送信部１６に送る。その後、ステップＳ８に遷移する。
【０１０３】
以上で第４の実施の形態のサーバ装置１０ｂの処理の説明を終了する。
この第４の実施の形態の画像処理システム１００ｂによれば、第２の実施の形態の画像処理システム１００と同様の効果が得られる。さらに、画像処理システム１００ｂによれば、線画領域検出部１５ｂが線画領域の相対座標と相対サイズを指定するようにしたので、データに０が出現する確率が高まる。従って、変換後の情報に対してワイル符号化を適用することで、送信データＤ１のデータ量が減る可能性を高めることができる。
【０１０４】
＜第５の実施の形態＞
次に、第５の実施の形態の画像処理システムを説明する。以下、第２の実施の形態と異なる部分について説明し、同様の部分については説明を省略する。
【０１０５】
図１４は、第５の実施の形態の画像処理システムの機能を示すブロック図である。
第５の実施の形態のサーバ装置１０ｃは、画像シフト部１７をさらに有している。
画像シフト部１７は、ブロックＢ１の周辺部以外の線画領域を、ブロックＢ１の周辺部にシフト（移動）することで、複数の線画領域をまとめた矩形を作成する。データ送信時には、この矩形を１つの塊とした位置情報およびサイズのデータを作成し、線画領域位置情報格納領域Ｄ１３に格納する。この処理により、画素単位で送信データＤ１を作成する場合に比べ、送信データＤ１のデータ量が減る可能性を高めることができる。
【０１０６】
また、第５の実施の形態のクライアント装置２０ｃは、画像シフト部２７をさらに有している。
画像シフト部２７は、送信データＤ１の線画領域位置情報格納領域Ｄ１３に含まれるデータをデコードして線画の位置およびサイズを復元する。このとき、どの線画領域をどれだけシフトしたのかを示す情報を、サーバ装置１０ｃ側から予めもらっておく。
【０１０７】
次に、第５の実施の形態のサーバ装置１０ｃの処理を説明する。
図１５は、第５の実施の形態のサーバ装置の処理を示すフローチャートである。第２の実施の形態のサーバ装置１０の処理と同じステップ番号を付した番号の処理を省略し、異なる部分を説明する。
【０１０８】
［ステップＳ２ａ］  画像シフト部１７は、各ブロックＢ１についてシフト処理を実行する。その後、ステップＳ２ｂに遷移する。
［ステップＳ２ｂ］  画像シフト部１７は、シフト後の画像データの容量がシフト前の画像データの容量未満か否かを判断する。シフト後の画像データの容量がシフト前の画像データの容量未満である場合（ステップＳ２ｂのＹｅｓ）、ステップＳ２ｃに遷移する。シフト後の画像データの容量がシフト前の画像データの容量以上である場合（ステップＳ２ｂのＮｏ）、ステップＳ２ｄに遷移する。
【０１０９】
［ステップＳ２ｃ］  画像シフト部１７は、シフト後の画像データを選択する。その後、ステップＳ３に遷移する。
［ステップＳ２ｄ］  画像シフト部１７は、シフト前の画像データを選択する。その後、ステップＳ３に遷移する。
【０１１０】
以上で図１５の処理の説明を終了する。
次に、ステップＳ２ａのシフト処理を詳しく説明する。
図１６は、シフト処理を示すフローチャートである。
【０１１１】
［ステップＳ２ａ１］  画像シフト部１７は、カウンタ変数を０に設定する。その後、ステップＳ２ａ２に遷移する。
［ステップＳ２ａ２］  画像シフト部１７は、前の行の線画領域の左下隅の色が現在の行の線画領域の色と同じ否かを判断する。前の行の線画領域の左下隅の色が現在の行の線画領域の色と同じである場合（ステップＳ２ａ２のＹｅｓ）、ステップＳ２ａ３に遷移する。前の行の線画領域の左下隅の色が現在の行の線画領域の色と同じではない場合（ステップＳ２ａ２のＮｏ）、ステップＳ２ａ４に遷移する。
【０１１２】
［ステップＳ２ａ３］  画像シフト部１７は、現在の行の全ての画素をカウンタ変数分左にシフトする。その後、ステップＳ２ａ６に遷移する。
［ステップＳ２ａ４］  画像シフト部１７は、前の行の線画領域の右下隅の色が現在の行の線画領域の色と同じか否かを判断する。前の行の線画領域の右下隅の色が現在の行の線画領域の色と同じである場合（ステップＳ２ａ４のＹｅｓ）、ステップＳ２ａ５に遷移する。前の行の線画領域の右下隅の色が現在の行の線画領域の色と同じではない場合（ステップＳ２ａ４のＮｏ）、ステップＳ２ａ６に遷移する。
【０１１３】
［ステップＳ２ａ５］  画像シフト部１７は、現在の行の全ての画素をカウンタ変数分右にシフトする。その後、ステップＳ２ａ６に遷移する。
［ステップＳ２ａ６］  画像シフト部１７は、ブロックを左上から右下に向かって走査する。このとき前の画素と同じ色の画素が出現したか否かを判断する。同じ色の画素が出現した場合（ステップＳ２ａ６のＹｅｓ）、ステップＳ２ａ７に遷移する。同じ色の画素が出現していない場合（ステップＳ２ａ６のＮｏ）、ステップＳ２ａ８に遷移する。
【０１１４】
［ステップＳ２ａ７］  画像シフト部１７は、カウンタ変数に１を加える。その後、ステップＳ２ａ６に遷移する。
［ステップＳ２ａ８］  画像シフト部１７は、ブロックの次の行が存在するか否かを判断する。次の行が存在する場合（ステップＳ２ａ８のＹｅｓ）、ステップＳ２ａ９に遷移する。次の行が存在しない場合（ステップＳ２ａ８のＮｏ）、シフト処理を終了する。
【０１１５】
［ステップＳ２ａ９］  画像シフト部１７は、処理対象の行を次の行に移す。その後、ステップＳ２ａ２に遷移し、ステップＳ２ａ２以降の処理を引き続き行う。
以上でシフト処理の説明を終了する。なお、図１６に示す処理では、行毎に線画の描画方向を判定（ステップＳ２ａ２、Ｓ２ａ４の処理）したが、これに限らず、一度描画方向を判定した後は、描画方向の判定を省略してもよい。
【０１１６】
次にシフト処理を、具体例を用いて説明する。
図１７は、シフト処理の具体例を説明する図である。なお、図１７では、ブロックＢ１の一部を拡大して示している。
【０１１７】
図１７（ａ）は、シフト処理が行われる前のブロックＢ１を示している。このブロックＢ１に対し、画像シフト部１７は、線画の描画方向の判定処理（ステップＳ２ａ２、Ｓ２ａ４）を行う。現在の処理対象の行が１行目であるため、前の行が存在しない。次に、画像シフト部１７は、１行目を走査する。このとき、同じ色の画素が２つ続いているので、カウンタ変数を２に設定する。画素の色が背景色に変わると、画像シフト部１７は、次の行が存在するか否かを判断する。２行目が存在するので、処理対象の行を２行目に移す。
【０１１８】
画像シフト部１７は、２行目の線画の描画方向の判定処理を行う。具体的には画像シフト部１７は、１行目の線画領域Ａ４１の左隅の色が、２行目の線画領域Ａ４２の色と同じか否かを判断する。判断の結果、線画領域Ａ４１の左隅には線画領域が存在しないと判断する。次に、画像シフト部１７は、線画領域Ａ４１の右隅の色が、２行目の線画領域Ａ４２の色と同じか否かを判断する。判断の結果、画像シフト部１７は、１行目の線画領域Ａ４１の右隅の色が、２行目の線画領域Ａ４２の色と同じであると判断する。そこで画像シフト部１７は、２行目の全ての画素Ｐ１をカウンタ変数の２つ分左にシフトする。次に、画像シフト部１７は、２行目を走査する。このとき、線画領域Ａ４１と同じ色の画素が２つ続いているので、カウンタ変数に２を加算する。加算の結果、カウンタ変数は４になる。画素の色が背景色に変わると、画像シフト部１７は、次の行が存在するか否かを判断する。３行目が存在するので、処理対象の行を３行目に移す。
【０１１９】
画像シフト部１７は、３行目の線画の描画方向の判定処理を行う。具体的には画像シフト部１７は、２行目の線画領域Ａ４２の左隅の色が、３行目の線画領域Ａ５１、Ａ４３、Ａ５２のいずれかの色と同じか否かを判断する。判断の結果、２行目の線画領域Ａ４２の左隅には線画領域が存在しないと判断する。次に、画像シフト部１７は、２行目の線画領域Ａ４２の右隅の色が、３行目の線画領域Ａ５１、Ａ４３、Ａ５２のいずれかの色と同じか否かを判断する。判断の結果、画像シフト部１７は、２行目の線画領域Ａ４２の右隅の色が、３行目の線画領域Ａ４３と同じ色であると判断する。そこで画像シフト部１７は、３行目の画素全てをカウンタ変数の４つ分左にシフトする。画素４つ分シフトすると、線画領域Ａ５１が、１画素分線画Ｌ５の左にはみ出す。画像シフト部１７は、はみ出した１画素分は、ブロックＢ１の同じ３行目の右端に配置する。
【０１２０】
次に画像シフト部１７は、３行目を走査する。このとき、線画領域Ａ４１と同じ色の画素（線画領域Ａ４３）が１つ続いているので、カウンタ変数に１を加算する。加算の結果、カウンタ変数は５になる。画素の色が線画領域Ａ５２に変わると、画像シフト部１７は、次の行が存在するか否かを判断する。４行目が存在するので、処理対象の行を４行目に移す。４行目以降は説明を省略する。
【０１２１】
図１７（ｂ）は、シフト処理後の矩形の配置を示している。図１７（ａ）の線画領域に対応する部分については、同じ符号を付している。
画像シフト部１７の処理により、大きさが（１×５）の矩形３１と、大きさが（１×２）の矩形３２と、大きさが（１×１）の矩形３３、３４、３５の５つの矩形にまとめることができる。矩形３１は、線画領域Ａ４１、Ａ４２、Ａ４４の一部と、線画領域Ａ４３、Ａ４５により形成されている。矩形３２は、線画領域Ａ４１、Ａ４２の一部により形成されている。矩形３３は、線画領域Ａ５２により形成されている。矩形３４は、線画領域Ａ４４の一部により形成されている。矩形３５は、線画領域Ａ５１により形成されている。シフト処理前の線画領域の数は、７つであったため、シフト処理を行わずに送信データＤ１を作成する場合に比べ、線画領域位置情報格納領域Ｄ１３に格納するデータ量を減らすことができる。従って、データ量の少ない送信データＤ１を作成することができる。
【０１２２】
この第５の実施の形態の画像処理システム１００ｃによれば、第２の実施の形態の画像処理システム１００と同様の効果が得られる。さらに、画像処理システム１００ｃによれば、画素単位で送信データＤ１を作成する場合に比べ、送信データＤ１のデータ量が減る可能性を高めることができる。
【０１２３】
なお、本実施の形態では、シフト処理を行った後にアンチエイリアス除去処理を行うようにしたが、これに限らず、例えば、アンチエイリアス除去処理を行った後にシフト処理を行うようにしてもよい。
【０１２４】
なお、第３の実施の形態、第４の実施の形態および第５の実施の形態では、アンチエイリアス除去処理を行うようにしたがこれに限らず、アンチエイリアス除去処理を省略してもよい。
【０１２５】
以上、本発明の画像処理プログラム、画像処理方法および画像処理装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０１２６】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、画像処理装置１およびサーバ装置１０、１０ａ、１０ｂ、１０ｃが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ等が挙げられる。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）等が挙げられる。
【０１２７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１２８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１２９】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することもできる。
【０１３０】
以上の第１〜第５の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  コンピュータに、
送信対象の画像の背景色を特定し、
特定された前記背景色とは異なる色を有する、隣接する複数の画素を検出し、
検出された前記隣接する複数の画素のうち、色の異なる画素の色を統合した画素群を取得し、
前記画素群の各画素の位置情報を、統合した色の情報とともに送信する、
処理を実行させることを特徴とする画像処理プログラム。
【０１３１】
（付記２）  前記画素群の各画素の位置情報を、統合した色の情報とともに送信する処理では、前記画像の走査方向に隣接する前記画素をひとまとめとする矩形の位置情報と前記矩形のサイズ情報を送信することを特徴とする付記１記載の画像処理プログラム。
【０１３２】
（付記３）  前記コンピュータは、前記送信対象の画像に出現する色の頻度の順位を記憶しており、
前記画素群の各画素の位置情報を、統合した色の情報とともに送信する処理では、色が統合された前記画素の色の順位を、前記統合した色の情報として送信することを特徴とする付記１または２に記載の画像処理プログラム。
【０１３３】
（付記４）  前記コンピュータに、
前記画像の線画が描画された画素を特定し、
特定された前記線画が備える隣接する画素の相対位置の情報を作成する処理をさらに実行させ、
前記画素群の各画素の位置情報を、統合した色の情報とともに送信する処理では、作成された前記相対位置の情報を送信することを特徴とする付記１ないし３のいずれかに記載の画像処理プログラム。
【０１３４】
（付記５）  前記画像の線画が描画された画素を特定する処理では、前記画像の線画が描画された方向を画素の位置関係に基づき特定し、
特定された前記線画が備える隣接する画素の相対位置の情報を作成する処理では、特定された前記線画が描画された方向に基づいて特定した線画の基点から前記相対位置の情報を作成することを特徴とする付記４記載の画像処理プログラム。
【０１３５】
（付記６）  前記コンピュータに、
前記画像の線画が描画された画素を特定し、
特定された前記画素を前記画像の辺部に移動させ、
移動させた前記画素をまとめた矩形を作成する処理をさらに実行させ、
前記画素群の各画素の位置情報を、統合した色の情報とともに送信する処理では、作成された矩形の位置情報と移動させた前記画素の移動量の情報を送信することを特徴とする付記１ないし５のいずれかに記載の画像処理プログラム。
【０１３６】
（付記７）  前記コンピュータに、前記矩形それぞれの位置情報のデータ量と前記画素を移動させる前の前記画素それぞれの位置情報のデータ量とを比較する処理をさらに実行させ、
前記画素群の各画素の位置情報を、統合した色の情報とともに送信する処理では、前記矩形の位置情報のデータ量が前記画素を移動させる前の前記画素それぞれの位置情報のデータ量よりも小さい場合に、作成された前記矩形の位置情報と移動させた前記画素の移動量の情報を送信することを特徴とする付記６記載の画像処理プログラム。
【０１３７】
（付記８）  送信対象の画像の線画が描画された画素を特定する画素特定部と、
特定された前記線画が備える隣接する画素の相対位置の情報を作成する作成部と、
作成された前記相対位置の情報を送信する送信部と、
を有することを特徴とする画像処理装置。
【０１３８】
（付記９）  前記画素特定部は、前記画像の線画が描画された方向を画素の位置関係に基づき特定し、
前記作成部は、特定された前記線画が描画された方向に基づいて特定した線画の基点から前記相対位置の情報を作成することを特徴とする付記８記載の画像処理装置。
【０１３９】
（付記１０）  送信対象の画像の線画が描画された画素を特定する画素特定部と、
特定された前記画素を前記画像の辺部に移動させる移動部と、
移動させた前記画素をまとめた矩形を作成する矩形作成部と、
作成された矩形の位置情報と移動させた前記画素の移動量の情報を送信する送信部と、
を有することを特徴とする画像処理装置。
【０１４０】
（付記１１）  前記矩形それぞれの位置情報のデータ量と前記画素を移動させる前の前記画素それぞれの位置情報のデータ量とを比較する比較部をさらに有し、
前記送信部は、前記矩形の位置情報のデータ量が前記画素を移動させる前の前記画素それぞれの位置情報のデータ量よりも小さい場合に、作成された前記矩形の位置情報と移動させた前記画素の移動量の情報を送信することを特徴とする付記１０記載の画像処理装置。
【０１４１】
（付記１２）  コンピュータが、
送信対象の画像の背景色を特定し、
特定された前記背景色とは異なる色を有する、隣接する複数の画素を検出し、
検出された前記隣接する複数の画素のうち、色の異なる画素の色を統合した画素群を取得し、
前記画素群の各画素の位置情報を、統合した色の情報とともに送信する、
ことを特徴とする画像処理方法。
【０１４２】
（付記１３）  送信対象の画像の背景色を特定する特定部と、
特定された前記背景色とは異なる色を有する、隣接する複数の画素を検出する検出部と、
検出された前記隣接する複数の画素のうち、色の異なる画素の色を統合した画素群を得る色統合部と、
前記画像群の各画素の位置情報を、統合した色の情報とともに送信する送信部と、
を有することを特徴とする画像処理装置。
【符号の説明】
【０１４３】
１  画像処理装置
１ａ  記憶部
１ｂ  分割部
１ｃ  特定部
１ｄ  検出部
１ｅ  色統合部
１ｆ、１６  送信部
２  画像
３ａ、３ｂ、３ｃ、３ｄ、４ａ、４ｂ、４ｃ、４ｄ、４ｅ、４ｆ、７、３１〜３５  矩形
５、５０  ネットワーク
６  装置
１０、１０ａ、１０ｂ、１０ｃ  サーバ装置
２０、２０ａ、２０ｂ、２０ｃ  クライアント装置
１１、２５  フレームバッファ
１２  フレームバッファ抽出部
１３、１３ａ  最大出現色検索部
１４  アンチエイリアス除去部
１５、１５ａ、１５ｂ  線画領域検出部
１７、２７  画像シフト部
２１  受信部
２２  背景設定部
２３、２３ａ、２３ｂ  線画領域復元部
２４  フレームバッファ制御部
２６  表示部
１００、１００ａ、１００ｂ、１００ｃ  画像処理システム
Ａ１１〜Ａ１６、Ａ２１〜Ａ２４、Ａ３１〜Ａ３６、Ａ４１〜Ａ４５、Ａ５１、Ａ５２  線画領域
Ｂ１  ブロック
Ｄ１  送信データ
Ｄ１１  色データ格納領域
Ｄ１２  線画領域数格納領域
Ｄ１３  線画領域位置情報格納領域
Ｌ１〜Ｌ５  線画
Ｐ１  画素
【図１】
0005742231.tif 000002
【図２】
0005742231.tif 000003
【図３】
0005742231.tif 000004
【図４】
0005742231.tif 000005
【図５】
0005742231.tif 000006
【図６】
0005742231.tif 000007
【図７】
0005742231.tif 000008
【図８】
0005742231.tif 000009
【図９】
0005742231.tif 000010
【図１０】
0005742231.tif 000011
【図１１】
0005742231.tif 000012
【図１２】
0005742231.tif 000013
【図１３】
0005742231.tif 000014
【図１４】
0005742231.tif 000015
【図１５】
0005742231.tif 000016
【図１６】
0005742231.tif 000017
【図１７】
0005742231.tif 000018