(57)【特許請求の範囲】
【請求項１】
予め定められた画素数で構成されるタイル画像を処理する画像処理装置であって、
前記タイル画像内が３色以内で且つ当該タイル画像を構成する２×２画素サイズのブロックの全てが２色以下であるか否かを判定する判定手段と、
前記判定手段で前記タイル画像内が３色以内で且つ当該タイル画像を構成する２×２画素サイズのブロックの全てが２色以下であると判定されるタイル画像に対して、前記各ブロックにおける予め決められた位置の画素の色データを示す第１色の色データ情報と、前記タイル画像内に存在する前記３色以内の色データ情報と、前記２色以下の各ブロックにおける色データの配置パターンを特定するための第１のパターン情報と、前記３色以内の色データ情報の中から前記２色以下の各ブロックにおける前記第１色の色データ情報と異なる第２色の色データ情報を選択するための選択情報とを含む第１のパケットデータを生成する生成手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記生成手段は、前記判定手段で前記タイル画像内が３色以内で且つ当該タイル画像を構成する２×２画素サイズのブロックの全てが２色以下でないと判定されるタイル画像に対して、前記各ブロックにおける予め決められた位置の画素の色データを示す前記第１色の色データ情報と、前記各ブロックにおける前記第１色の色データ情報と異なる第２〜４色の色データ情報と、前記各ブロックにおける色データの配置パターンを特定するための第２のパターン情報と、を含む第２のパケットデータを生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記生成手段は、
前記タイル画像を２×２画素のサイズのブロック毎に分割し、
前記分割された各ブロック内の各画素の色データを比較することにより、前記各ブロックに含まれる色データの配置パターンを示す前記第２のパターン情報を特定し、
前記各ブロックにおける予め決められた位置の画素の色データを示す前記第１色の色データ情報を抽出し、
前記各ブロックに含まれる色データの数が２〜４のいずれかであると判断したブロックからは、当該特定された前記第２のパターン情報で定義されている配置パターンに対応する前記第２〜４色の色データ情報を抽出し、
前記第２のパターン情報と、前記各ブロックにおける第１色の色データ情報と、前記各ブロックにおける第２〜４色の色データ情報とを含む前記第２のパケットデータを生成し、
前記判定手段で前記タイル画像内が３色以内で且つ当該タイル画像を構成する２×２画素サイズのブロックの全てが２色以下であると判定されたタイル画像に対しては、前記第２のパケットデータに含まれる前記第２のパターン情報を、前記第１のパターン情報と前記選択情報とに書き換え、且つ、前記第２のパケットデータに含まれる前記各ブロックにおける第２〜４色の色データ情報を、前記タイル画像内に存在する前記３色以内の色データ情報に置き換えることにより、前記第１のパケットデータを生成することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記第１のパケットデータのヘッダ情報には、前記タイル画像内に存在する前記３色以内の色データ情報で置き換えたことを示すフラグが含まれることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記第２のパターン情報は４ビットのデータ、前記第１のパターン情報は３ビットのデータ、前記選択情報は１ビットのデータで表されることを特徴とする請求項２乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記タイル画像は、ページ画像を６４×６４画素のサイズごとに分割することにより生成された画像であることを特徴とする請求項１に記載の画像処理装置。
【請求項７】
予め定められた画素数で構成されるタイル画像を処理する画像処理装置の処理方法であって、
判定手段が、前記タイル画像内が３色以内で且つ当該タイル画像を構成する２×２画素サイズのブロックの全てが２色以下であるか否かを判定する判定工程と、
生成手段が、前記判定工程で前記タイル画像内が３色以内で且つ当該タイル画像を構成する２×２画素サイズのブロックの全てが２色以下であると判定されるタイル画像に対して、前記各ブロックにおける予め決められた位置の画素の色データを示す第１色の色データ情報と、前記タイル画像内に存在する前記３色以内の色データ情報と、前記２色以下の各ブロックにおける色データの配置パターンを特定するための第１のパターン情報と、前記３色以内の色データ情報の中から前記２色以下の各ブロックにおける前記第１色の色データ情報と異なる第２色の色データ情報を選択するための選択情報とを含む第１のパケットデータを生成する生成工程と、
を有することを特徴とする処理方法。
【請求項８】
コンピュータを、請求項１乃至６のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を所定のブロック単位に圧縮する技術に関する。
【背景技術】
【０００２】
従来、高解像度のカラー画像への需要は高く、それらの高画質化への要望へ応えるべくデジタル複合機では１２００ｄｐｉやそれを超える解像度の画像を扱うことが多くなってきている。画像の高解像度化に伴い、画像処理を必要とする画素数が飛躍的に増え、その処理負荷が増大しているという課題がある。例えば、６００ｄｐｉから１２００ｄｐｉに解像度が倍になることで処理すべき画素数は４倍になる。このデジタル複合機に限らず、デジタルカメラやファクシミリ装置などの画像処理装置では、メモリやハードディスクの容量節約やそれらへの書き込み時間を短縮するために、カラー画像データの圧縮を行い、低コスト化や高速化を実現している。
【０００３】
カラー静止画像の圧縮方式には、離散コサイン変換を利用したＪＰＥＧ方式やウェーブレット変換を利用した方式が多く使われている。この種の符号化方式は、一般的に画像を所定のブロック（例えば８×８や１６×１６画素単位）に符号化し、離散コサイン変換、量子化及びエントロピー符号化を行うことで高い圧縮効率を達成している。この種の符号化方式は、可変長符号化方式であるので、符号化対象の画像毎に符号量が変化するものである。
【０００４】
上述した画像圧縮を用いた場合、その画素データを参照し、その画素データを変換するには、圧縮データの復号処理が必要になってくる。つまり、圧縮データのままで画像処理を行うことはできず、必ず復号処理が必要になり、高解像度データの全ての画素に対して画素単位に処理を行う必要があり、処理時間の増大を招く。
【０００５】
画素データの符号化を行わずに圧縮処理を行う技術としては、画素データとその連続数を記憶する公知のランレングス圧縮方式やブロック単位でエッジを検出し、そのエッジの持つ２色を記憶することで圧縮する技術が開示されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２７１０４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記特許文献１においては、ブロック内を２色化し、その２色の配置に関する形状情報と２色の色情報を記憶している。
【０００８】
一方、更なる高画質化、処理高速化を図るために、本出願人は特願２００９−２２１４４４で次のような提案をしている。この提案技術は、まず画像データを２×２画素サイズのブロック毎に分割し、ブロック内の各画素の色データを比較することにより、注目ブロックに含まれる色データの配置パターン情報と、注目ブロックに含まれる色数分の色データ情報とを出力する。そして、色データ情報を、ブロックにおける予め決められた位置の画素に対応する第１の色データ情報と、それ以外の色データ情報（第２〜４の色データ情報（補間データ情報））とに分け、配置パターン情報と共にそれぞれ異なるメモリ領域に纏めて格納する。
【０００９】
これにより、２色より多い色数を持つブロックの画質を落とさずに高画質化を実現する。また、特定位置の間引き画像データを第１の色データ情報として連続メモリ領域に置いておくことにより、高解像度画像を復号化することなく低解像度画像を扱えるようにすることで、処理高速化を実現しようとしている。
【００１０】
一方、本出願人が特願２００９-２２１４４４で提案している技術の場合、多数の色から構成されている画像に対する符号化処理を行うことも想定しているため、ブロック単位（例えば２×２画素）で、上記補間データ情報を保持している。
【００１１】
そのため、比較的色数が少ない画像の場合、同様の補間データ情報を有するブロックが多数生成されてしまい効率が良くない。特に、デジタル複合機が利用されるオフィス環境では文書画像の印刷が主用途であり、色数が少ない画像を扱うことが殆どである。
【００１２】
また、バスインターフェース間で使用される転送単位として、もう少し大きなブロック（タイル）単位（例えば６４×６４画素）を用いる場合、各タイル内の画素は２色或いは３色の色で構成されることが大半である。
【００１３】
そこで、本発明では、２〜３色の少数の色で構成される画像を符号化する場合に、補間データに必要なメモリ容量を節約できるようにする。
【００１４】
本発明は、画像圧縮時の圧縮率を向上させることを目的とする。
【課題を解決するための手段】
【００１５】
本発明の画像処理装置は、予め定められた画素数で構成されるタイル画像を処理する画像処理装置であって、前記タイル画像内が３色以内で且つ当該タイル画像を構成する２×２画素サイズのブロックの全てが２色以下であるか否かを判定する判定手段と、前記判定手段で前記タイル画像内が３色以内で且つ当該タイル画像を構成する２×２画素サイズのブロックの全てが２色以下であると判定されるタイル画像に対して、前記各ブロックにおける予め決められた位置の画素の色データを示す第１色の色データ情報と、前記タイル画像内に存在する前記３色以内の色データ情報と、前記２色以下の各ブロックにおける色データの配置パターンを特定するための第１のパターン情報と、前記３色以内の色データ情報の中から前記２色以下の各ブロックにおける前記第１色の色データ情報と異なる第２色の色データ情報を選択するための選択情報とを含む第１のパケットデータを生成する生成手段と、を有することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、画像圧縮時の圧縮率を向上させることが可能となり、データ量の増大を抑制してシステム効率の低下を低減することができる。更に、メモリなどの容量の増大によるコストアップ、高解像度化による画像処理システムの処理速度の低下を抑えることができる。
【図面の簡単な説明】
【００１７】
【図１】デジタル複合機（ＭＦＰ）の構成の一例を示す図。
【図２】図１に示すコントローラの構成例を示す図。
【図３】２×２画素のブロックにおける４色のパターンの取り得る組み合わせの場合の数を示す図。
【図４】図３に示すパターンとパターンフラグの関係を示す図。
【図５】（Ａ）は２×２画素ブロックが取り得る色パターンの一例、（Ｂ）は代表色と補間色との関係、（Ｃ）は補間色選択ビットを使用して表現される色パターンの一例、を示す図。
【図６】圧縮部で実行される圧縮方法の詳細を示すフローチャート。
【図７】ページとタイルとブロックとの関係を示す図。
【図８】パッキングされたデータのデータ構造を示す図。
【図９】パケット管理テーブルの構成の一例を示す図。
【図１０】メモリ空間に書き込まれた各パケットのアドレスを示す図。
【図１１】圧縮処理における色数判定処理を示すフローチャート。
【図１２】圧縮部の構成を示すブロック図。
【図１３】パケットデータ修正処理を示すフローチャート。
【図１４】置換補間色バッファ空きフラグテーブル。
【図１５】置換補間色バッファに格納されている色と、生成する補間色選択ビットの関係図。
【図１６】修正前後のパケットデータのデータ構造とヘッダ情報の例。
【図１７】補間色置換処理後の第２、３、４色格納部における３色の補間色の格納位置を示す図。
【図１８】展開部の内部構成を示すブロック図。
【図１９】パケットデータの展開処理のフローチャート。
【発明を実施するための形態】
【００１８】
以下、図面を参照しながら発明を実施するための形態について詳細に説明する。本実施形態では、画像処理装置として、スキャン、プリント、コピーなどの複数の機能を有するデジタル複合機（ＭＦＰ）を例に説明する。
【００１９】
［デジタル複合機（ＭＦＰ）の構成］
図１に示すように、コントローラ１０１は、画像入力機器であるスキャナ１０２や画像出力機器であるプリンタ１０３と接続される。また、コントローラ１０１はＬＡＮや公衆回線（ＷＡＮ）などのネットワーク１０４と接続することで、画像情報やデバイス情報の入出力、ＰＤＬデータのイメージ展開を行う。
【００２０】
ＣＰＵ１０５は、後述するＨＤＤ記憶部１０７に格納されたプログラムに従ってＭＦＰ全体を制御するプロセッサである。メモリ１０６は、ＣＰＵ１０５が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＨＤＤ記憶部１０７は、ハードディスクドライブであり、システムソフトウェアやプログラム、画像データなどを格納する。
【００２１】
次に、図２に示すコントローラ１０１の構成例を参照してコントローラ１０１の各部の詳細な処理を説明する。まず、スキャナ１０２によってスキャンされた画像データを読み込む場合を説明する。スキャナ１０２で読み取られたＲＧＢ（レッド、グリーン、ブルー）３色の画像データをスキャナ用画像処理部２０１が受け取り、その画像データに対してシェーディング処理やフィルタ処理等の画像処理を行い、圧縮部２０２が画像圧縮処理を行う。そして、圧縮されたデータ（圧縮データ）をＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２０３が画像メモリバスを介してメモリ１０６に格納する。
【００２２】
次に、スキャンされた画像データをプリントする場合、メモリ１０６に格納された圧縮データをＤＭＡＣ２１１が画像メモリバスを介して色処理部２１２へ転送する。そして、色処理部２１２がＣＭＹＫ（シアン、マゼンタ、イエロー、ブラック）色空間へ変換する。その後、更に色処理部２１２がＣＭＹＫの各値に対して濃度調整やプリンタガンマ補正などの色処理を行った後、該色処理後のデータをＤＭＡＣ２１１が画像メモリバスを介して再度メモリ１０６に格納する。その後、プリント用の画像処理を行うために、ＤＭＡＣ２２１が画像メモリバスを介してメモリ１０６に格納されている圧縮データを読み込み、展開部２２２がラスタ画像データに展開する。そして、ラスタのＣＭＹＫ画像データをプリント用画像処理部２２３が入力し、ディザ法や誤差拡散法による面積階調処理を行い、プリンタ１０３へ出力する。
【００２３】
また、スキャンされた画像データをネットワークへ送信する場合、メモリ１０６に格納されている圧縮データをＤＭＡＣ２１１が画像メモリバスを介して色処理部２１２へ転送する。そして、色処理部２１２がディスプレイガンマ調整や用紙地色調整等を行った後、ＹＣｂＣｒ（輝度、ＢＬＵＥ色差、ＲＥＤ色差）色空間へ変換する。そして、当該色処理部２１２で処理されたデータを再度ＤＭＡＣ２１１が画像メモリバスを介してメモリ１０６に格納する。その後、送信用の画像処理を行うために、ＤＭＡＣ２３１が画像メモリバスを介してメモリ１０６に格納されている圧縮データを展開部２３２へ転送する。そして、展開部２３２が圧縮データをラスタ画像データに展開する。その後、ラスタのＹＣｂＣｒ画像データに対して送信処理部２３３がカラー画像送信であればＪＰＥＧ圧縮処理を行い、モノクロ２値画像送信であればＹデータに対して２値化を行い、ＪＢＩＧ圧縮等を行い、ネットワーク１０４へ出力する。
【００２４】
また、スキャンされた画像データを保存する場合、メモリ１０６に格納されている圧縮データをＤＭＡＣ２４１が画像メモリバスを介してディスクスプール高圧縮／展開部２４２へ転送する。ディスクスプール高圧縮／展開部２４２では、ＨＤＤの書き込みスピードがメモリに対して遅いため、更に高圧縮のＪＰＥＧ圧縮を施す。その後ディスクアクセスコントローラ２４３を介してＨＤＤ記憶部１０７へ圧縮データを保存する。また、ＨＤＤ記憶部１０７に保存されている圧縮データを再度メモリ１０６に転送する場合には、上述した処理を逆に行えば良い。
【００２５】
ここで、図１に示すネットワーク１０４を介して接続された他の装置から送られてきたＰＤＬデータをメモリ１０６へ書き込む場合を説明する。図２にはＰＤＬ解釈部が図示されていないが、ＰＤＬ解釈部として機能するＣＰＵ１０５がＰＤＬデータを解釈し、その結果のディスプレイリストをメモリ１０６に出力する。その後、メモリ１０６に格納されているディスプレイリストをレンダリング部２５１がラスタのＲＧＢ画像データへレンダリングを行い、圧縮部２５２が画像圧縮処理を行う。そして、圧縮データをＤＭＡＣ２５３が画像メモリバスを介してメモリ１０６に格納する。
【００２６】
尚、ＰＤＬデータをプリント、ネットワークへ送信、保存する処理は、スキャンされた画像データの場合と同様の処理を行うことで実現可能である。
【００２７】
次に、本発明の特徴であるラスタ画像データの圧縮処理を詳細に説明する。尚、本実施形態において、圧縮部２５２ではＰＤＬデータから生成されたラスタ画像を圧縮し、圧縮部２０２ではスキャンで得たラスタ画像を圧縮するものとするが、このような構成に限るものではない。例えば、図２のように圧縮部２０２、２５２を個別に設けるのではなく、共通の圧縮部を設けるように構成しても構わない。
【００２８】
本実施形態では、まずページ単位のラスタ画像データを、２×２画素単位のブロック毎に分割し、分割して抽出されたブロックを単位にデータの圧縮処理を行う。ここで、圧縮処理を説明する前に、２×２の４画素データの中に占める色数に応じて、その組み合わせの場合の数を考える。この場合、画素数が４画素なので、そこに占める色数は最大４色になり、ブロック内で高々１色〜４色の組み合わせしか存在しない。その４色のパターンの取り得る組み合わせの場合の数を図３に示す。
【００２９】
まず、ブロック内が１色の場合、４画素が同色で構成されていることになるので、その組み合わせは１通りである。次に、ブロック内が２色の場合を考える。図３に示すように、２色が４画素内にレイアウトされる場合の組み合わせの数は、所定位置の画素（本実施例では左上の画素とする）の色を第１色（代表色）とし、その第１色と異なる色を第２色として考える。すると、左上画素以外の残りの３画素へ第１色もしくは第２色が入るので、４画素同色の場合を除くと、全部で７通りの組み合わせが考えられる。
【００３０】
次に、ブロック内が３色の場合を考える。３色が４画素内にレイアウトされる場合の数は、３色のうち１色だけ２度使われる場合の数と言い換えることが可能であり、４画素の座標のうち、２画素が同じ色になる場合の数を求めれば良い。つまり、３色の場合の数は、４つの座から２つの座標を取る組み合わせとなり、全部で６通りとなる。そして最後に、ブロック内が４色で構成される場合は１通りしか存在しない。
【００３１】
１色〜４色の全ての場合の数を合計すると、全部で１５通りのパターンが考えられる。また、これら全てのパターンを識別するためにフラグ（識別子）を付与することを考えると、フラグのデータ量としては４ビット必要となる。この１５通りのパターンとフラグとの関係を図４に示すように定義し、以下、このフラグを「パターンフラグ」と呼ぶ。
【００３２】
前述したように、特願２００９−２２１４４４で提案している技術では、画像データを２×２画素サイズのブロックに分割し、当該分割された各ブロックに含まれる色データの配置パターン情報をこの１５通りのパターンフラグ（４ｂｉｔ）を用いて出力する。更に各ブロックに含まれる色数分の色データ情報を、ブロックにおける予め決められた位置の画素（例えば左上の画素）に対応する色の情報（第１の色データ情報）と、それ以外の色データ情報（第２〜４の色データ情報（補間データ情報））とに分けて出力する。そして、画像データ内の各ブロックから出力された配置パターン情報と、第１の色データ情報と、第２〜４の色データ情報とをそれぞれ異なるメモリ領域に纏めて格納する。
【００３３】
一方、ＭＦＰが実際に扱うことの多い文書画像などの場合、２×２画素ブロック単位では、殆どのブロックが２色以内で構成されることが多い。そこで、本実施形態では、タイル（６４×６４画素）内が３色以内で且つその中の２×２画素ブロック全てが２色以内で構成されているタイルに適した圧縮方法について説明する。尚、画像データを６４×６４画素サイズのタイルに分割し、当該分割されたタイルごとに、当該タイル内が３色以内で且つその中の２×２画素ブロック全てが２色以内で構成されているか判別する。その判別結果に応じてタイル毎に圧縮処理を切り替えるように構成するのが望ましい。すなわち、タイル内が３色以内で且つその中の２×２画素ブロック全てが２色以内で構成されている場合は後述する圧縮手法で圧縮し、そうでなければ、上述した特願２００９−２２１４４４で提案している圧縮手法で圧縮するよう構成するのが望ましい。
【００３４】
次に、タイル内が３色以内で且つその中の２×２画素ブロックの全てが２色以内で構成されている場合に適した本実施形態の圧縮方式について説明する。２×２画素ブロックにおいて、色数が２色までのパターンで取り得る組み合わせは、図３に示す全画素同色の１通りと、２色の７通りの合計８通りである。これら８通りの配置パターンを表現するパターンフラグは、図４に示すように０〜７までの８種類のみであるため、３ビットのフラグ識別することが可能である。
【００３５】
ここで、２色までで構成される２×２画素ブロックが取り得る色の配置パターンの一部を図５の（Ａ）に示す。図５の（Ａ）において、各イメージに対するパターンフラグ、代表色（第１色）、補間色（第２色）の関係を示している。図５の（Ａ）において、黒丸印の位置（左上の画素）の色が代表色（第１色）を示している。
【００３６】
本実施形態では、画像メモリバスへ転送する際に、予め定められた画素数（６４×６４画素）のブロックを単位（以下「タイル単位」と呼ぶ。）とし、タイル単位において構成される色数は３色までとする。この例の代表色と補間色との関係を図５の（Ｂ）に示す。すなわち、６４×６４のタイル内に存在する色数が３色以内、且つ、２×２のブロック内に存在する色数が２色以内であったとする。このとき、図５の（Ｂ）に示すように、代表色がタイル内の３色のうちのいずれかであるので、代表色以外で取り得る補間色は残りの２色のうちのいずれかである。したがって、２×２画素のブロック内における代表色を特定できれば、補間色が残り２色のいずれであるかを識別するための補間色選択ビット（１ｂｉｔ）を設けることで、当該２×２画素のブロック内における補間色を選択することが可能である。
【００３７】
３ビットのパターンフラグ（２色以内の配置パターンを特定するための第１のパターン情報）と、１ビットの補間色選択ビット（選択情報）と、各ブロックの代表色と、タイル内の３色とを使用して表現される色パターンの一部を図５の（Ｃ）に示す。このように、タイル内の色数が３色で且つ２×２画素ブロック内の色数が２色以内の場合、３ビットのパターンフラグと補間色選択ビットと各ブロックの代表色の色データと当該タイル内の３色の色データとを保持すれば、各ブロックの色の配置を特定できる。すなわち、ブロック毎に補間色（第２色）の色データを保持しておかなくても、補間色選択ビットを参照することにより、タイル内の３色の色データ中から補間色を特定することができるようになる。補間色選択ビットの詳細については図１５を用いて後述する。
【００３８】
［パケット生成］
本実施形態における画像処理装置は、ラスタ画像データの圧縮処理のランダムアクセスを高めるために、ラスタ画像データを６４×６４画素サイズのタイル単位で切り出し、圧縮して画像メモリバスへ転送する。
【００３９】
圧縮部２０２、２５２で実行されるパケット生成方法の詳細を、図６を用いて説明する。まず、図７に示すページ単位にラスタ画像データを入力する（Ｓ６０１）。そして、画像データのページ単位に１画素のページ背景画素を設定する（Ｓ６０２）。これは、圧縮処理時の初期記憶ブロックとして用いるための画素データで、通常は白（ＲＧＢ各色８ビット画像であれば２５５、ＣＭＹＫ画像であれば０）が用いられる。次に、圧縮部２０２、２５２の入力となる画像データを所定の大きさ（６４×６４画素）のタイル単位に分割し、未処理のタイルの１つを処理対象にする（Ｓ６０３）。この例では、１つのタイルの中には、２×２画素ブロックが３２×３２個存在することになる。図７は、１ページと６４×６４画素のタイルと２×２画素のブロックとの関係を示す図である。
【００４０】
次に、処理対象のタイルに所定の固定長のヘッダ情報を付与する（Ｓ６０４）。このヘッダ情報は、ページＩＤ、タイル座標、色空間、画素データのビット数、タイルのデータサイズ、属性情報の有無、圧縮フラグ等の情報である。ここで、ページＩＤは、ページ単位に付与されるユニークなＩＤ番号である。タイル座標は、このタイルがページ単位のラスタ画像上どの位置にあるかを示す座標情報である。図７に示すようにタイル座標は、Ｘ座標及びＹ座標を用いて記述される。色空間は、このタイルが、ＲＧＢ画像なのかＣＭＹＫ画像なのかＧＲＡＹ−ＳＣＡＬＥ画像なのかを識別するための識別子を示す情報である。画素データのビット数は、タイル内の１画素当たりのビット長を示す情報である。データサイズは、このタイルの第１色のデータサイズと第２、３、４色のデータのデータサイズとを示すバイト単位の情報である。属性情報の有無は、画像データに文字や写真といった属性情報が画素単位で付与されているか否かを示す情報である。圧縮フラグは、このタイルが圧縮されたデータか、非圧縮のデータかを示すフラグの情報であり、後述するＳ６０７，Ｓ６０９で設定される。
【００４１】
次に、上述のタイル単位に圧縮処理を適用する（Ｓ６０５）。この圧縮処理の詳細は後述する。
【００４２】
次に、圧縮処理されたタイルデータのデータサイズを算出する。これはパターンフラグサイズ、第１色データサイズ、第２、３、４色データサイズの合計になる。パターンフラグを必ず付与するので、必ずしもオリジナルの画像データよりデータサイズが圧縮される保証はない。そのため、もし圧縮処理後のタイルデータのデータサイズがオリジナルのタイルデータのデータサイズを超えてしまった場合には、オリジナルの画像データを出力する方がトータルとしてメモリ効率が良い。従って、圧縮処理後のデータサイズとオリジナルのデータサイズとを比較し（Ｓ６０６）、オリジナルのデータサイズを超えていれば、ヘッダの圧縮フラグを“０”にセットし（Ｓ６０７）、超えていなければ圧縮フラグを“１”にセットする（Ｓ６０９）。
【００４３】
そして、上述の比較の結果を受けて圧縮されたタイルデータ若しくはオリジナルのタイルデータを、当該タイルのヘッダ情報と一緒に１つのデータにパッキングする（Ｓ６０８、Ｓ６１０）。このパッキングされたデータのデータ構造を図８に示す。これ以降、上述のヘッダを含むデータの単位を「パケット」と呼ぶ。このようなパケットにするには、タイル単位で圧縮処理が終了し、データサイズが確定した後、第１色格納部と第２、３、４色格納部の間を詰めた状態でデータをパッキングする。その後、ＤＭＡＣを経由してメモリ上へ出力する（Ｓ６１１）。次に、このパケットの座標とサイズとをリストとして列挙し、パケット管理テーブルとして作成する（Ｓ６１２）。このパケット管理テーブルの一例を図９に示す。上述の処理を最後のタイルまで繰り返すことで（Ｓ６１３でＹＥＳ）、ページ単位のラスタ画像の圧縮処理を終了する。
【００４４】
尚、上述のタイル単位でパケットデータをメモリへ書き出すと、図１０に示すように、パケット毎にサイズが異なり、それぞれのパケットの先頭アドレスが飛び飛びになる。そのため、図９に示すパケット管理テーブルを用いて任意の座標のパケットの先頭アドレスを探索する。従って、先頭パケットの書き込みアドレスが既知であれば、パケット管理テーブルに記載されている座標までのデータサイズをオフセットとして任意のパケットの先頭アドレスを求めることが可能になる。例えば、図１０に示す第３パケットを読み込む場合は、第１、第２パケットのサイズ合計をパケット管理テーブルより求め、先頭パケットのアドレスに対してオフセットをかけることで第３パケットアドレスを算出する。そして、そこからデータを読み込むことで第３パケットのデータを取得することが可能になる。
【００４５】
このように、タイル単位に任意のデータへのアクセスが可能になるので、画像の部分的な処理が可能になる。例えば、画像の一部の領域を抽出して処理したい場合は、当該領域に対応するパケットのデータを取得して処理すれば良い。
【００４６】
上述した圧縮処理に対して、展開部２２２、２３２で実行される展開処理は、パケット毎にヘッダが付与されているので、各ヘッダに記載されている情報を用いて処理される。まず、圧縮フラグが非圧縮を示している場合には、ヘッダを取り除いたデータを出力し、圧縮を示している場合には、展開処理を行う。展開処理では、ヘッダよりパターンフラグ格納位置、第１色のデータ格納位置、及び第２、３、４色格納位置を求め、後は順次前述した実施形態と同様に、タイルの画像データへ展開する。
【００４７】
例えば、パターンフラグの位置は固定長のヘッダなので、オフセットすることで求めることができる。第１色のデータは、タイルのサイズが６４×６４画素であれば、パターンフラグのサイズが６４×６４ビットで固定になり、パターンフラグ位置からオフセットを掛けることで求める。第２、３、４色のデータは、ヘッダに記載されている第１色サイズを参照し、第１色のデータ位置からオフセットを掛けることで求める。
【００４８】
［圧縮処理］
次に、上述したステップＳ６０５の圧縮処理の詳細について、図１１〜図１３を用いて説明する。図１２は、ステップＳ６０５の圧縮処理を実行する圧縮部２０２（又は２５２）内の構成を示すブロック図である。
【００４９】
圧縮部２０２、２５２は、まず入力された６４×６４画素サイズのタイル画像をタイルバッファ１２０１に格納する。ピース抽出部１２０２がタイルバッファ１２０１に格納されたタイル画像から、２×２画素単位のブロック画像（以下、２×２画素のブロックをピースと呼ぶ）を切り出す。そして、インデックス生成部１２０３が、切り出された各ピース内の各画素の色データを比較することにより、図４を用いて説明したように、当該各ピースに含まれる色データの配置パターンを示すパターンフラグ（４ビット）を特定する。ここで、パターンフラグ（４ビット）を第２のパターン情報とも呼ぶ。
【００５０】
パターンフラグ（４ビット）は、図４に示す全部で１５通りのパターンが存在し、それぞれのパターンと比較することにより特定される。そして、ピースの予め決められた位置（例えば左上）の画素に対応する色データを第１色の色データ情報として抽出する。更に、当該ピースに含まれる色数が２〜４のいずれかであると判断した場合は、当該特定されたパターンフラグで定義されている配置パターンに対応する第２色の色データ情報〜第４色の色データ情報を抽出する。
【００５１】
このようにして抽出された各ピースに含まれる色数分の色データ情報を、ブロックにおける予め決められた位置（例えば左上）の画素に対応する第１色の色データ情報と、それ以外の第２色〜第４色の色データ情報とに分けて出力する。第１色の色データ情報を代表色と呼び、また第２色の色データ情報〜第４色の色データ情報を補間色と呼ぶ。
【００５２】
尚、本実施形態において、各ピースにおける色データの配置を特定するための情報をインデックスと呼ぶこととし、インデックス生成部１２０３は、この時点では上述したように４ビットのパターンフラグをインデックスとして出力するものとする。
【００５３】
インデックス生成部１２０３で生成されたインデックス、代表色、及び補間色のデータは、パケット生成部１２０８と、構成色数判定手段１２０４とに読み込まれる。パケット生成部１２０８では、インデックス生成部１２０３で各ピースから出力されるインデックス、代表色、補間色の情報とを、パケットバッファ１２０９内のそれぞれ異なるメモリ領域に纏めて格納する。更に、ページＩＤ、タイル座標、タイル／パケットのデータサイズ、圧縮フラグ等の情報を含むヘッダ情報を付加することにより、パケットデータを生成する。一方、構成色数判定部１２０４では、インデックス、代表色、補間色の情報の情報に基づいて、処理対象のタイル画像内が３色以内で且つ当該タイル画像を構成するピース（２×２画素ブロック）全てが２色以内で構成されているか判定する。そして、構成色数判定部１２０４でそのように構成されていると判定した場合は、ヘッダ修正部１２１０と補間色置換部１２１１とインデックス書換部１２１２が、パケット生成部１２０８で生成したパケットデータを修正する。詳細は後述する。
【００５４】
次に、構成色数判定部１２０４において実行される構成色数判定処理について、図１１を用いて説明する。構成色数判定処理では、前述の構成色数（タイル内３色以下、且つブロック全てが２色以内）のタイル画像であるか否かの判定及び当該タイル画像を構成する３色分以下の色データをバッファに格納する処理を行う。この判定において、該当しないタイルの場合は、構成色オーバー検出信号“１”を生成する。
【００５５】
まず、前述したように、構成色数判定部１２０４は、インデックス生成部１２０３で生成されたインデックス、代表色、及び補間色のデータを読み込む（Ｓ１１０１）。次に、構成色数判定部１２０４が２×２画素ブロック（ピース）の１つを着目ピースとし、読み込んだインデックスを参照して、当該着目したピースを構成する色の配置情報を解析し、色数を調べる（Ｓ１１０２）。インデックスは図４に示されるパターンフラグ（４ビット）値で表現されるので、パターンフラグ値が“０”の場合は、構成色数は１色であり、パターンフラグ値が“１〜７のいずれか”の場合は、構成色数は２色である。またパターンフラグ値が“８〜Ｄのいずれか”の場合は、構成色数は３色であり、パターンフラグ値が“Ｅ”の場合は、構成色数は４色であることを示している。
【００５６】
まず構成色数が１色であるか否かを判定する（Ｓ１１０３）。判定の結果、１色の場合（パターンフラグ値が“０”）、代表色の１色のみで２×２画素ブロックが表現され補間データは無いので、置換補間色バッファ１２０５〜１２０７への書き込みを行わずに、Ｓ１１１６へ進み、それ以外の場合はＳ１１０４へ進む。
【００５７】
次に、構成色数が２色であるか３〜４色であるかを判定する（Ｓ１１０４）。ここで、２色の場合（パターンフラグ値が“１”〜“７”の場合）はＳ１１０５へ進み、２×２画素ブロックを構成する色数が３又は４色である場合（パターンフラグ値が８〜Ｅの場合）は、Ｓ１１１７へ進む。２色と判定された場合には、２色の色データを格納するために、置換補間色バッファ１２０５〜１２０７に空きが２つ以上あるか否かを判定する（Ｓ１１０５）。置換補間色バッファ１２０５〜１２０７の空き情報は、図１４に示されるような置換補間色バッファ１〜３空きフラグテーブルによって管理される。デフォルト時、各置換補間色バッファ１２０５〜１２０７は、全て空き状態である為、置換補間色バッファ１〜３空きフラグには、空き状態を示す“１”がセットされる。Ｓ１１０５において、置換補間色バッファ１〜３空きフラグが“１”である数を計数し、合計が２以上であれば、バッファ空き数が２以上あると判断して、Ｓ１１０６へ進み、それ以外の場合にはＳ１１０７へ進む。そして、２つ分の空きが存在する場合、代表色と補間色を置換補間色バッファ１２０５〜１２０７の空いているバッファにそれぞれ書き込む。そして書き込んだバッファに対応する空きフラグに“０”をセットする。（Ｓ１１０６）。
【００５８】
また、２つ以上の空きが存在しない場合には、１つ分の空きがあるか否かを判定する（Ｓ１１０７）。Ｓ１１０５における置換補間色バッファ１〜３空きフラグが“１”である数を計数した合計が１であれば、１つ分の空きがあると判断してＳ１１０８へ進み、それ以外の場合にはＳ１１１３へ進む。１つ分の空きが存在する場合には、バッファ済みの２つの補間色データを置換補間色バッファ１２０５〜１２０７より読み出す（Ｓ１１０８）。次に、読み出した２つの補間色データの画素値と、着目中ブロックの２色のデータ（代表色と補間色）の画素値とを比較する（Ｓ１１０９）。そして、２色とも読み出した補間色データと一致しているか否かを判定する（Ｓ１１１０）。一致している場合には、既に２色ともバッファに書き込み済みであるため、空きバッファへの書き込みは不要と判断してＳ１１１６へ進み、一致していない場合にはＳ１１１１へ進む。
【００５９】
また、２色とも一致していない場合には、どちらか１色のみ一致しているか否かを判定する（Ｓ１１１１）。１色のみ一致している場合には、一致していない方の色データを空いているバッファへ書き込む（Ｓ１１１２）。そして書き込んだバッファに対応する空きフラグに“０”をセットする。一方、１色も一致していない場合には、置換補間色バッファ１２０５〜１２０７に格納されている２色分のデータ以外の色が、着目している２×２画素ブロック内に２色存在していることを示している。つまりタイルの構成色数が４色以上であり、補間色置き換え処理の対象外のタイルであることを示している為、Ｓ１１１７へ進む。
【００６０】
Ｓ１１０７で、置換補間色バッファの空きが全くない場合には、バッファ済みの３つの補間色データを置換補間色バッファ１２０５〜１２０７より読み出す（Ｓ１１１３）。そして、読み出した３つの補間色データの画素値と、着目中ブロックの２色のデータ（代表色と補間色）の画素値とを比較する（Ｓ１１１４）。ブロックの２色ともが、読み出した補間色データのいずれかと一致しているか否かを判定する（Ｓ１１１５）。判定した結果、一致している場合には、既に２色ともバッファに書き込み済みであるため、バッファへの書き込みは不要と判断してＳ１１１６へ進む。一方、一致していない場合には、置換補間色バッファ１２０５〜１２０７に格納されている３色分のデータ以外の色が、着目している２×２画素ブロック内に存在していることを示している。つまり、タイルの構成色数が４色以上であり、補間色置き換え処理の対象外のタイルであることを示しているため、Ｓ１１１７へ進む。Ｓ１１１７では、着目する２×２画素ブロックの構成色数が３色もしくは４色（Ｓ１３０４で“ＮＯ”）、もしくは着目するタイルの構成色数が４色以上（Ｓ１１１１又はＳ１１１５で“ＮＯ”）と前ステップで判定される。つまり、補間色置き換え処理の対象外のタイルであるとの判断を行う。この場合、構成色数判定手段１２０４は、構成色数オーバーと判定してヘッダ修正部１２１０、補間色置換部１２１１、インデックス変換部１２１２に通知する（Ｓ１１１７）。
【００６１】
上述の処理をタイル内の最後のピースまで繰り返し行ったか判定し（Ｓ１１１６）、まだ着目していないピースがあれば、当該ピースを処理対象としてＳ１１０２の処理に戻る。一方、全ピースに対する判定が終了したと判定した場合は、補間色置換処理対象のタイルであると判定する。すなわち、タイル画像内が３色以内で且つその中のピース（２×２画素ブロック）全てが２色以内で構成されていれば、Ｓ１１１６でＹＥＳと判定されることになる。尚、ページ画像を構成する各タイルごとに図１１の処理が行われる。
【００６２】
尚、タイル画像内のピース全てが２色以内で構成され、且つ２色のピース全てにおける色の種類がタイル内で３色以内である場合もＳ１１１６でＹＥＳと判定される。これは、１色で構成されているピースの代表色が２色で構成されているピースの色と異なっていてもよいことになる。そのような条件を満たす画像の場合も本発明を適用することは可能である。但し、その異なる色の画素の位置が１色のピースの位置に合致している必要があるため、そのような条件を満たす画像が出現することは稀である。したがって、Ｓ１１１６でＹＥＳと判定される大抵のタイル画像は、タイル画像内が３色以内で且つその中のピース全てが２色以内で構成されているものになる。
【００６３】
次に、タイル内が３色以内で且つその中の２×２画素ブロック全てが２色以内で構成されていると構成色数判定部１２０４で判定した場合に、当該タイル画像に対して実行する補間色データ置換処理、インデックス書換処理について、図１３を用いて説明する。
【００６４】
すなわち、前述の構成色数判定処理で補間色置換処理対象のタイルと判定された場合、次の処理を実行する。補間色置換部１２１１が、パケットバッファに格納されている補間色データ（第２〜４色データ）を置換補間色バッファ１２０５〜１２０７に保持されている色データで置き換える処理を実行する。そしてインデックス書換部１２１２が、２×２画素ブロック単位での補間色選択ビットを生成してインデックスを書き換える処理（各ピースのパターンフラグ（４ビット）→パターンフラグ（３ビット）＋補間色選択ビット（１ビット））とを行う。
【００６５】
まず構成色数判定部１２０４から構成色数をオーバーしているという通知を受けたかを判定する（Ｓ１３０１）。前述の構成色数判定処理のＳ１１１７において、構成色数オーバーと判定されている場合には、着目タイルの処理は終了して、次のタイルの処理に移行する。オーバーしていない場合にはインデックス生成部１２０３が、ピース単位での画像データのインデックス、代表色、補間色の読み込みを行う（Ｓ１３０２）。そして、読み込んだインデックス値より、当該読み込んだピースの構成色数が２色であるか否かの判定を行う（Ｓ１３０３）。Ｓ１３０３において、２色でないと判定された場合には、補間色データがないので、補間色データの置き換え処理の対象外のピースと判断し、Ｓ１３１２へ進む。この場合は、３色以上の場合はＳ１３０１でＹＥＳと判定されているので、ここでは１色（パターンフラグ値が“０”）と判定された場合である。また、インデックス（４ビットパターンフラグ）値が“０”なので、展開時は３ビットパターンフラグが“０”で且つ補間色選択ビットが“０”と見なして展開できるので、インデックス値を書き換える必要はない。
【００６６】
一方、Ｓ１３０３において構成色数が２色と判定された場合（パターンフラグ値が１〜７のいずれか）、補間色データの置換処理対象のピースと判断して、Ｓ１３０４に進み、補間色データを置き換えるために、補間色選択ビットを生成する処理に移る。
【００６７】
Ｓ１３０４では、置換補間色バッファ１２０５、１２０６、１２０７に格納されている色と、代表色及び補間色との画素値をそれぞれ比較する（Ｓ１３０４）。図１５に置換補間色バッファ１２０５、１２０６、１２０７に格納されている色と、生成する補間色選択ビットの関係図を示す。参照している着目中ピースの代表色、補間色が、置換補間色バッファ１２０５、１２０６、１２０７（以降バッファ１、２、３）のうち、どのバッファに格納されている色と一致しているかによって、補間色選択ビットを切り換える。補間色選択ビットを１ビットのみで表現させる為に、補間色が代表色が格納されているバッファ以外の残り２つのバッファのうち、どちらのバッファに格納されているかにより、“０”、“１”を割り当てるよう動作する。図１５に示す通り、代表色と異なる色が格納されている残り２つのバッファのうち、小さい番号のバッファに補間色データが格納されている場合には、補間色選択ビットとして“０”を生成する。大きい番号のバッファに補間色データが格納されている場合には、補間色選択ビットとして“１”を生成する。以降詳細について説明する。
【００６８】
まず置換補間色バッファ１２０５（バッファ１）に格納されている色が前記着目中ピースの代表色と一致するか否かを判定する（Ｓ１３０５）。一致する場合にはＳ１３０６へ進み、一致していない場合にはＳ１３０９へ進む。
【００６９】
Ｓ１３０６では、置換補間色バッファ１２０６（バッファ２）に格納されている色が前記着目中ピースの補間色と一致するか否かを判定する。一致する場合にはＳ１３０７へ進み、一致していない場合には、補間色が置換補間色バッファ１２０７（バッファ３）に格納されていると判断してＳ１３０８へ進む。
【００７０】
Ｓ１３０９では、置換補間色バッファ１２０６（バッファ２）に格納されている色が前記着目中ピースの代表色と一致するか否かを判定する（Ｓ１３０９）。一致する場合にはＳ１３１０へ進み、一致していない場合には代表色が置換補間色バッファ１２０７（バッファ３）に格納されていると判断してＳ１３１１へ進む。
【００７１】
Ｓ１３１０では、置換補間色バッファ１２０５（バッファ１）に格納されている色が前記着目中ピースの補間色と一致するか否かを判定する。一致する場合にはＳ１３０７へ進み、一致していない場合には補間色は置換補間色バッファ１２０７（バッファ３）に格納されていると判断してＳ１３０８へ進む。
【００７２】
Ｓ１３１１では、置換補間色バッファ１２０５（バッファ１）に格納されている色が前記着目中ピースの補間色と一致するか否かを判定する。一致する場合にはＳ１３０７へ進み、一致していない場合には補間色は置換補間色バッファ１２０６（バッファ２）に格納されていると判断してＳ１３０８へ進む。
【００７３】
Ｓ１３０７では、前記着目中ピースの補間色が、代表色が格納されているバッファ以外の残り２つのバッファのうち、小さい番号のバッファに格納されているので、補間色選択ビットとして“０”を生成する。一方、Ｓ１３０８では前記着目中ピースの補間色が、代表色が格納されているバッファ以外の残り２つのバッファのうち、大きい番号のバッファに格納されているので、補間色選択ビットとして“１”を生成する。
【００７４】
Ｓ１３１２では、タイル内の最後のピースまで補間色選択ビットの生成が終了したか否かを判定する。まだ最後のピースではない場合には、Ｓ１３０２に戻り、次のピースを処理対象の着目ピースとして、前述した処理を繰り返す。一方、最後のピースである場合には、Ｓ１３１３へ進む。
【００７５】
Ｓ１３１３では、パケット生成部１２０８によってパケットバッファ１２０９に格納されたパケットデータの修正を行う（パケットデータ修正処理）。パケットデータ修正処理では、補間色置換部１２１１が補間色データを置き換え、インデックス書換部１２１２がインデックスを書き換え、ヘッダ修正部１２１０がヘッダ情報を修正する。
【００７６】
尚、パケット生成部１２０８は、パケットデータをパケットバッファ１２０９に格納したときに、ヘッダ修正部１２１０と補間色置換部１２１１とインデックス書換部１２１２へ、当該生成したパケットデータの格納アドレスを通知するものとする。ヘッダ修正部１２１０と補間色置換部１２１１とインデックス書換部１２１２は、この通知された格納アドレスに基づいて、当該格納されているパケットデータの修正を行う。
【００７７】
補間色置換部１２１１は、当該タイル画像に関するパケットデータの第２、３、４色格納部に格納されている補間色を、置換補間色バッファ１２０５、１２０６、１２０７（バッファ１、２、３）に格納されている３色分のデータで置換する。
【００７８】
インデックス書換部１２１２は、各ピースに対してインデックス生成部１２０３で生成された４ビットのパターンフラグ値（０〜７）を、３ビットのパターンフラグ値（０〜７）に書き換える。この書き換えと共に、Ｓ１３０７とＳ１３０８で設定された補間色選択ビット（１ビット）を設定する。すなわち、各ピースに対する４ビットのパターンフラグ値を、１ビットの補間色選択ビットと３ビットのパターンフラグ値とで書き換える。
【００７９】
ヘッダ修正部１２１０は、ヘッダ情報に保持されている第２、３、４色格納部のデータサイズ情報を９バイトに修正し、補間色データ置換フラグに、置き換えが行われたことを示す“１”をセットする。
【００８０】
図１６は、本発明によるパケットデータ修正前の第１のパケットデータ（図１６（ａ））と修正後の第２のパケットデータ（図１６（ｂ））それぞれのデータ構造とヘッダ情報の例である。図１６は、色空間がＲＧＢで、画素データのビット数が８ビットの場合の一例を示している。図１６（ａ）に示すように、パケットデータ修正前の第２、３、４色格納部に必要な領域は、６４×６４画素タイル内の全ピース（１０２４ピース）が、各ピース内の４画素全て異なる色（４色）で構成されていると想定すれば、最大９２１６バイト必要になる。また、全てのピースについて、各ピース内の４画素が全て同じ色であれば、各ピースに第２色〜第４色は存在しないことになるので、第２、３、４色格納部は最小０バイトである。すなわち、パケットデータ修正前の第２、３、４色格納部は０〜９２１６バイトのサイズとなっている。
【００８１】
一方、図１６（ｂ）に示すように、補間色データの置き換え対象のタイル画像（タイル画像が３色以下で且つ各ピースは２色以下）に対してパケットデータ修正処理を行った後では、次にようになる。第２，３，４色格納部には３色分の補間色データを格納するので、９バイト分のデータが格納されることになる。そして、ヘッダ情報の修正としては、第２、３、４色格納部のデータサイズ情報を９バイトに変換する修正と、補間色データ置換フラグに置き換えが行われたことを示す設定とが行われる。
【００８２】
図１７に、Ｓ１３１３で補間色置換処理を行った後の、パケットデータの第２、３、４色格納部における３色の補間色の割り当ての関係を示す。図１７に示すように、補間色置換部１２１１は、置換補間色バッファ１２０５〜１２０７に格納されている補間色データを順に読み出し、パケットデータの第２、３、４色格納部ベースアドレスのアドレス位置から始まる第２、３、４色格納部に格納する。
【００８３】
インデックス書換処理では、図５の（Ａ）に示すような４ビットのパターンフラグを、図５の（Ｃ）に示すような３ビットのパターンフラグと１ビットの補間色選択ビットとで表されるインデックスで書き換える。前述のＳ１３０７及びＳ１３０８で生成された補間色選択ビットは、４ビットのパターンフラグの下位３ビットの情報と一緒に不図示の内部バッファの各ピース座標に対応するアドレスに格納される。ここで、上位１ビットの情報は、構成色が２色以下の場合には使用しない。つまり、インデックス書換部１２１２は、内部バッファより各ピースに対応する書き換え後のインデックス値（パターンフラグ（３ビット）＋補間色選択ビット（１ビット））を読み出し、パケットバッファ１２０９のパターンフラグ格納部に書き込む処理を行う。
【００８４】
上述のパケットデータの修正が終了すると、パケットバッファ１２０９に格納されているパケットデータは、画像メモリバスを介してメモリ１０６に格納される。以降、残りのタイル画像についても同様にパケットデータの生成、及び補間データの置き換え処理を行い、全タイルに対して上述した処理を繰り返す。
【００８５】
［展開処理］
最後に、パケットデータをタイル画像に展開する手法について、図１８、１９を用いて説明する。図１８は、展開部２２２、２３２の内部構成を示すブロック図である。
【００８６】
展開対象のパケットデータをパケットバッファ１９０１に格納し、ヘッダ解析部１９０２は当該格納したパケットデータのヘッダ情報の補間色データ置換フラグを解析して、補間色の置き換えが行われたパケットデータであるか判定する。補間色の置き換えが行われたパケットデータの場合、置換済みパケットデータ展開部１９０３は、各ピースに関して、インデックスと代表色と３色の補間色データとに基づいて第２色を特定し、各ピースの配色を再現する。ここで、インデックスは３ビットのパターンフラグと補間色選択ビットである。
【００８７】
また、補間色の置き換えが行われていないパケットデータの場合、非置換パケットデータ展開部１９０４は、各ピースに関して、インデックスと代表色（第１色の色データ情報）と補間色（第２〜４色の色データ情報）とを読み出し、各ピースの配色を再現する。インデックスは４ビットのパターンフラグである。再現された各ピースは、ピース書き込み部１９０５によってタイルバッファ１９０６に順次書き込まれる。当該パケットデータに含まれる全てのピースが再現されると、タイルバッファに格納された画像データはタイル画像として出力される。尚、ページ画像を再現する場合は、全てのパケットデータに対して順番にタイル画像の展開処理が行われるようにすればよい。
【００８８】
図１９は、パケットデータの展開処理の詳細を示すフローチャートである。
【００８９】
Ｓ２００１において、展開部２２２（又は２３２）は、メモリ１０６に格納されているパケットデータの中から、展開対象のパケットデータをパケットバッファ１９０１に読み込む。
【００９０】
ヘッダ解析部１９０２は、当該読み込んだパケットデータのヘッダ情報を解析し（Ｓ２００２）、補間色データ置換フラグが１であるか否か判定する（Ｓ２００３）。
【００９１】
補間色データ置換フラグが１（すなわち置換済みパケットデータである）と判定した場合は、Ｓ２００４に進み、置換済みパケットデータ展開部１９０３は、最初のピースに関してインデックスデータを読み出す。更に、置換済みパケットデータ展開部１９０３は、パケットデータの第１色格納部から当該ピースの代表色を読み出し（Ｓ２００５）、第２，３，４色格納部から３色の補間色データを読み出す（Ｓ２００６）。そして、当該読み出した３色の補間色データと当該ピースの代表色とを比較し、代表色に一致する補間色データと、代表色に一致しない２色の補間色データを特定する（Ｓ２００７）。次に、読み出したインデックスデータに含まれる当該ピースの補間色選択ビットが０か１か判定する（Ｓ２００８）。当該ピースの補間色選択ビットが０であると判定した場合は、当該ピースの代表色に一致しない２色の補間色データのうち、ベースアドレスに近い方の補間色データを、当該ピースにおける第２色の色データとして特定する（Ｓ２００９）。
【００９２】
一方、当該ピースの補間色選択ビットが１であると判定した場合は、当該ピースの代表色に一致しない２色の補間色データのうち、ベースアドレスから遠い方の補間色データを、当該ピースにおける第２色の色データとして特定する（Ｓ２０１０）。この結果、置換済みパケットデータ展開部１９０３は、当該処理対象のピースに関してインデックスデータに含まれる３ビットのパターンフラグ、代表色（第１色の色データ情報）、補間色（第２色の色データ情報）を特定でき、当該ピースの配色を再現する。ピース書き込み部１９０５は、当該ピースの再現された配色をタイルバッファ１９０６に書き込む（Ｓ２０１１）。当該パケットデータに含まれる全てのピースについて処理したか判定し（Ｓ２０１２）、未処理のピースがあると判定した場合は、次のピースを処理対象としてＳ２００４に戻る。一方、全てのピースについて処理したと判定した場合は、Ｓ２０１３に進み、タイルバッファ１９０６に書き込まれたタイル画像を出力する。
【００９３】
尚、補間色置換済みパケットデータは、図１６（ｂ）や図１７で示したように、第２，３，４色格納部には、置換補間色バッファ１２０５〜１２０７（図１５のバッファ１〜３に相当）に格納されていた色データが順番に格納されている。したがって、図１５を参照すれば分かるように、Ｓ２００９では、第２，３，４色格納部のベースアドレスに近い方の補間色データが第２色として選択され、Ｓ２０１０ではベースアドレスから遠い方の補間色データが第２色として選択されることになる。
【００９４】
一方、Ｓ２００３において、補間色データ置換フラグが０（すなわち非置換パケットデータである）と判定した場合は、Ｓ２０１４に進み、非置換パケットデータ展開部１９０３は、最初の処理対象ピースに関するインデックスデータを読み出す。更に、非置換パケットデータ展開部１９０４は、パケットデータの第１色格納部から当該処理対象ピースの代表色を読み出す（Ｓ２０１５）。更に、当該処理対象のピースのインデックス（４ビットのパターンフラグ）が示す色数が２〜４色の場合、非置換パケットデータ展開部１９０４は第２，３，４色格納部から当該ピースに関する補間色データ（第２〜４色の色データ）を読み出す（Ｓ２０１６）。その結果、非置換パケットデータ展開部１９０４は、当該処理対象のピースに関して、インデックスデータに含まれる４ビットのパターンフラグ、代表色（第１色の色データ情報）、補間色（第２〜４色の色データ情報）を特定でき、当該ピースの配色を再現する。ピース書き込み部１９０５は、当該ピースの再現された配色をタイルバッファ１９０６に書き込む（Ｓ２０１７）。当該パケットデータに含まれる全てのピースについて処理したか判定し（Ｓ２０１８）、未処理のピースがあると判定した場合は、次のピースを処理対象としてＳ２０１４に戻る。一方、全てのピースについて処理したと判定した場合は、Ｓ２０１３に進み、タイルバッファ１９０６に書き込まれたタイル画像を出力する。
【００９５】
尚、上述した展開処理は元の解像度の画像を得るための処理であるが、半分の解像度の画像データ得たい場合は、第１色格納部に格納されている色データを抽出するだけでよい。これは、第１色格納部に各ピースの代表色がラスタ順に格納されているためである。
【００９６】
本実施形態によれば、オフィスで使用される文書画像はタイル単位で見ても、２色から３色で構成されることが殆どであることに着目し、各タイルの補間データを圧縮することで、圧縮率を向上させることができる。
【００９７】
また、圧縮率を向上することにより、データ量の増大を抑制してシステム効率の低下を低減を図ると共に、メモリなどの容量の増大によるコストアップや高解像度化による画像処理システムの処理速度の低下を抑えることができる。
【００９８】
［他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005606223.tif 000002
【図２】
0005606223.tif 000003
【図３】
0005606223.tif 000004
【図４】
0005606223.tif 000005
【図５】
0005606223.tif 000006
【図６】
0005606223.tif 000007
【図７】
0005606223.tif 000008
【図８】
0005606223.tif 000009
【図９】
0005606223.tif 000010
【図１０】
0005606223.tif 000011
【図１１】
0005606223.tif 000012
【図１２】
0005606223.tif 000013
【図１３】
0005606223.tif 000014
【図１４】
0005606223.tif 000015
【図１５】
0005606223.tif 000016
【図１６】
0005606223.tif 000017
【図１７】
0005606223.tif 000018
【図１８】
0005606223.tif 000019
【図１９】
0005606223.tif 000020