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