(57)【特許請求の範囲】
【請求項１】
各画素の画素値が色データと属性データとで構成される画像データを、所定の画素数単位のタイルごとに分割するタイル分割手段と、
前記タイル分割手段で分割された各タイルを、２×２画素のサイズのブロックごとに分割するブロック分割手段と、
前記ブロック分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロック内の各画素の画素値を比較することにより、前記各ブロックに含まれる画素値の配置パターンを示すパターンフラグを特定する特定手段と、
前記各ブロックの予め定義された位置の画素に対応する画素値から第１色の色データと第１の属性データとを抽出し、更に、前記ブロックに含まれる画素値の数が２〜４のいずれかであると判断したブロックからは、当該特定されたパターンフラグで定義されている配置パターンに対応する第２〜４画素値に対応する第２〜４色の色データと第２〜４の属性データとを抽出する抽出手段と、
前記特定手段で特定された各ブロックのパターンフラグと、前記抽出手段で抽出された第１色の色データと、前記抽出手段で抽出された第２〜４色の色データと、前記抽出手段で抽出された第１の属性データと、前記抽出手段で抽出された第２〜４の属性データと、をメモリに保持させる第１の保持手段と、
前記タイルに含まれる全ての画素の属性データが同じであるか判断する第１判断手段と、
前記第１判断手段で前記タイルに含まれる全ての画素の属性データが同じであると判断した場合は、前記第１の保持手段で保持された第１の属性データと第２〜４の属性データとを削除して、当該タイル内の属性データが同じであることを示す情報と当該同じと判断された属性データの情報とをヘッダ情報に格納するように制御する削除手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記タイルに含まれる画素の属性データが当該タイル内のブロックごとに同じであるか判断する第２判断手段を更に有し、
前記削除手段は、前記第２判断手段で前記タイルに含まれる画素の属性データが当該タイル内のブロックごとに同じであると判断した場合は、前記第１の保持手段で保持された第２〜４の属性データを削除して、当該タイル内のブロックごとに属性データが同じであることを示す情報をヘッダ情報に格納するように制御することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記タイル分割手段で分割される前記所定の画素数単位のタイルは、２Ｌ×２Ｌ画素のサイズのタイルであることを特徴とする請求項１または２のいずれかに記載の画像処理装置。
【請求項４】
前記削除手段による処理を行った後、前記タイルごとに、前記ヘッダ情報と、前記メモリに保持されている前記パターンフラグと前記第１色の色データと前記第２〜４色の色データと前記第１の属性データと前記第２〜４の属性データとをパッキングしたパケットデータを生成するパッキング手段を更に有することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記パッキング手段で生成された各タイルに対応するパケットデータの座標とサイズとに基づいて、パケット管理テーブルを作成するテーブル作成手段を更に有することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
タイル分割手段が、各画素の画素値が色データと属性データとで構成される画像データを、所定の画素数単位のタイルごとに分割するタイル分割ステップと、
ブロック分割手段が、前記タイル分割ステップで分割された各タイルを、２×２画素のサイズのブロックごとに分割するブロック分割ステップと、
特定手段が、前記ブロック分割ステップで分割された各ブロックを順に処理対象とし、当該処理対象のブロック内の各画素の画素値を比較することにより、前記各ブロックに含まれる画素値の配置パターンを示すパターンフラグを特定する特定ステップと、
抽出手段が、前記各ブロックの予め定義された位置の画素に対応する画素値から第１色の色データと第１の属性データとを抽出し、更に、前記ブロックに含まれる画素値の数が２〜４のいずれかであると判断したブロックからは、当該特定されたパターンフラグで定義されている配置パターンに対応する第２〜４画素値に対応する第２〜４色の色データと第２〜４の属性データとを抽出する抽出ステップと、
第１の保持手段が、前記特定ステップで特定された各ブロックのパターンフラグと、前記抽出ステップで抽出された第１色の色データと、前記抽出ステップで抽出された第２〜４色の色データと、前記抽出ステップで抽出された第１の属性データと、前記抽出ステップで抽出された第２〜４の属性データと、をメモリに保持させる第１の保持ステップと、
第１判断手段が、前記タイルに含まれる全ての画素の属性データが同じであるか判断する第１判断ステップと、
前記第１判断ステップで前記タイルに含まれる全ての画素の属性データが同じであると判断した場合は、削除手段が、前記第１の保持ステップで保持された第１の属性データと第２〜４の属性データとを削除して、当該タイル内の属性データが同じであることを示す情報と当該同じと判断された属性データの情報とをヘッダ情報に格納するように制御する削除ステップと、
を有することを特徴とする画像処理方法。
【請求項７】
第２判断手段が、前記タイルに含まれる画素の属性データが当該タイル内のブロックごとに同じであるか判断する第２判断ステップを更に有し、
前記削除ステップでは、前記第２判断ステップで前記タイルに含まれる画素の属性データが当該タイル内のブロックごとに同じであると判断した場合は、前記第１の保持ステップで保持された第２〜４の属性データを削除して、当該タイル内のブロックごとに属性データが同じであることを示す情報をヘッダ情報に格納するように制御することを特徴とする請求項６に記載の画像処理方法。
【請求項８】
コンピュータを、請求項１乃至５のいずれか１項に記載の各手段として機能させるためのプログラム。
【請求項９】
請求項８に記載のプログラムを格納した、コンピュータが読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像圧縮の技術に関し、特に、１ページ分の画像データについて、その画素ごとの属性データを示す情報プレーンを圧縮する画像圧縮技術に関する。
【背景技術】
【０００２】
従来の画像形成装置においては、形成後の画像上に存在する文字・図形・イメージを判別するために、各ピクセルに対して属性データを付加している。しかし、この属性データの付加により画像形成装置が必要とするメモリサイズは必然的に増加する。従って、画像形成装置において、メモリが足りなくなった場合には属性データを圧縮することにより、必要メモリサイズを小さくする。しかし、文字や複雑な図形等は属性データが複雑に入り組んだ状態で存在するため、期待通りの圧縮結果が得られない場合がある。そこで、属性データが所定のサイズに収まらない場合は、この属性データを破棄し、ページ全体に対して決められた１つの属性データを設定する方式がとられていた（例えば、特許文献１）。また、ページ全体を所定サイズのブロック単位に分割し、ブロック単位に対して決められた１つの属性データを設定する方式がとられていた（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２０９６９８号公報
【特許文献２】特開２００４−１３４９６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、画素ごとに全ての属性データを保持すると、属性データのデータ量が大きくなってしまう。また、上述したようにページ全体もしくは、ブロック単位で１つの属性データを設定すると、画像形成の際に文字、図形、イメージのどの部分に対しても一様の処理がなされてしまうことになり、属性データの本来の用途が果たせなかった。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の画像処理装置は、各画素の画素値が色データと属性データとで構成される画像データを、第１の画素数単位のタイルごとに分割するタイル分割手段と、前記タイル分割手段で分割された各タイルを、２×２画素のサイズのブロックごとに分割するブロック分割手段と、前記ブロック分割手段で分割された各ブロックを順に処理対象にし、当該処理対象のブロック内の各画素の画素値を比較することにより、前記各ブロックに含まれる画素値の配置パターンを示すパターンフラグを特定する特定手段と、前記各ブロックの予め定義された位置の画素に対応する画素値から第１色の色データと第１の属性データとを抽出し、更に、前記ブロックに含まれる画素値の数が２〜４のいずれかであると判断したブロックからは、当該特定されたパターンフラグで定義されている配置パターンに対応する第２〜４画素値に対応する第２〜４色の色データと第２〜４の属性データとを抽出する抽出手段と、前記特定手段で特定された各ブロックのパターンフラグと、前記抽出手段で抽出された第１色の色データと、前記抽出手段で抽出された第２〜４色の色データと、前記抽出手段で抽出された第１の属性データと、前記抽出手段で抽出された第２〜４の属性データと、をメモリに保持させる第１の保持手段と、前記タイルに含まれる全ての画素の属性データが同じであるか判断する第１判断手段と、前記第１判断手段で前記タイルに含まれる全ての画素の属性データが同じであると判断した場合は、前記第１の保持手段で保持された第１の属性データと第２〜４の属性データとを削除して、当該タイル内の属性データが同じであることを示す情報と当該同じと判断された属性データの情報とをヘッダ情報に格納するように制御する削除手段と、を有する。
【発明の効果】
【０００６】
本発明によれば、画素ごとの属性データを示す情報プレーンを圧縮する際に、属性データの喪失を無くし、より小さな圧縮サイズを実現することができる。
【図面の簡単な説明】
【０００７】
【図１】本実施形態における画像処理装システムの一例を示すブロック図。
【図２】図１に示すコントローラの構成例を示す図。
【図３】２×２画素のブロックにおけるパターンの組み合わせの数を示す図。
【図４】図３に示すパターンとパターンフラグの関係を示す図。
【図５】異なる画素の数とパターンフラグを特定する処理を示すフローチャート図。
【図６】画素値が異なる画素の位置を判定する処理を説明するための図。
【図７】ＤＭＡＣによる画像データのメモリ空間への書き込み例を示す図。
【図８】本実施形態における圧縮処理を示すフローチャート図。
【図９】ページと３２×３２画素のタイルと２×２画素のブロックとの関係を示す図。
【図１０】パッキングされたデータのデータ構造を示す図。
【図１１】パケット管理テーブルの構成の一例を示す図。
【図１２】メモリ空間に書き込まれた各パケットのアドレスを示す図。
【図１３】本実施形態における伸張処理を示すフローチャート図。
【発明を実施するための形態】
【０００８】
以下、本発明を実施するための形態について図面を用いて説明する。本実施形態では、画像形成装置として、スキャン、プリント、コピーなどの複数機能を有するデジタル複合機（ＭＦＰ）を例に説明する。
【０００９】
［システム構成］
図１は本発明の実施形態に係る画像処理システムの構成を示すブロック図である。このシステムではホストコンピュータ１３０及び２台の画像処理装置１００，１１０がＬＡＮ１４０に接続されているが、本発明における画像処理システムにおいては、これらの接続数に限られることはない。また、本実施形態では接続方法としてＬＡＮを適用しているが、これに限られることはない。例えば、ＷＡＮ（公衆回線）などの任意のネットワーク、ＵＳＢなどのシリアル伝送方式、セントロニクスやＳＣＳＩなどのパラレル伝送方式なども適用可能である。ここでの画像処理装置は、例えばＭＦＰ（ＭｕｌｔｉＦｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）などの画像形成装置が該当する。
【００１０】
ホストコンピュータ（以下、ＰＣと称する）１３０はパーソナルコンピュータの機能を有している。このＰＣ１３０はＬＡＮ１４０やＷＡＮを介してＦＴＰやＳＭＢプロトコルを用いファイルを送受信したり電子メールを送受信したりすることができる。さらには、ＰＣ１３０は画像処理装置１００、１１０に対して、プリンタドライバを介した印刷命令を行うことも可能となっている。
【００１１】
画像処理装置１００、１１０は同じ構成で、スキャナ部を有する。以下では、説明の簡単のために、画像処理装置１００、１１０のうちの画像処理装置１１０に注目して、その構成を詳細に説明する。画像処理装置１１０は、画像入力デバイスであるスキャナ部１１３、画像出力デバイスであるプリンタ部１１４、画像処理装置１１０全体の動作制御を司るコントローラ１１１、ユーザインターフェース（ＵＩ）である操作部１１２から構成される。
【００１２】
図２は、本実施形態におけるコントローラの構成を示すブロック図である。ＣＰＵ２０１は、画像処理装置１１０全体を制御するためのコントローラである。ＣＰＵ２０１はＲＯＭ２０２に格納されているブートプログラムによりＯＳ（Operating System）を起動する。このＯＳ上で大容量ストレージ２０６に記憶されている読取可能なコントローラプログラムや各種アプリケーションプログラムを実行させる。ＣＰＵ２０１はデータバス２０４などの内部バスによって各部と接続されている。また、本実施形態における各種処理を実行する。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリやワークエリア等の一時記憶領域として動作する。さらに、画像処理の一時記憶領域としても使用される。インターフェース制御部２０７は、ＮＩＣ（Network Interface Card）２０８などのネットワークＩ／Ｆを制御して、ＬＡＮなどのネットワークに対して、画像データをはじめとする様々なデータの送受信を行う。また、インターフェース制御部２０７はモデム２０９を制御して、電話回線に対してデータの送受信を行う。
【００１３】
操作Ｉ／Ｆ２１０は、タッチパネルやハードキーといった操作部１１２からユーザの操作指示を入力する。また、操作Ｉ／Ｆ２１０はＬＣＤやＣＲＴなどの操作部１１２を制御して、操作画面をユーザに対して表示する。レンダラ部２１１は、インターフェース制御部２０７を介して受信したデータに基づいて、プリンタ部１１４が処理可能なビットマップデータの生成と属性データの生成を行う。圧縮部２１２は、ビットマップデータと属性データの圧縮を行う。伸張部２１３では圧縮部２１２で圧縮されたデータの伸張を行い、ビットマップデータと属性データの生成を行う。
【００１４】
スキャナ画像処理部２１４は、スキャナ部１１３からスキャナＩ／Ｆ２１５を介して受取ったビットマップデータに対して、補正、加工、及び編集を行う。なお、スキャナ画像処理部２１４は、受取ったビットマップデータがカラー原稿か白黒原稿か、文字原稿か写真原稿かなどを判定する。そして、その判定を属性データとして画像データに付随させる。プリンタ画像形成部２１６は、プリンタ用画像処理を行い、プリンタＩ／Ｆ２１７を介してプリンタ部１１４に前述のビットマップデータを送信する
［パターンフラグ］
本発明における画像データの圧縮処理の詳細を説明する。本実施形態では、２×２画素単位のブロックを単位にデータの圧縮処理を行う。ここで圧縮処理を説明する前に、２×２の４画素データの中に占める色数に応じてその組み合わせの場合の数を考える。ここで扱うブロックにおいて、画素数は４画素なので、そこに占める色数は最大４色になり、ブロック内で高々１色〜４色の組み合わせしか存在しない。その４色のパターンの取り得る組み合わせの場合の数を図３に示す。
【００１５】
まず、ブロック内が１色で占められている場合、４画素が全て同色で構成されていることになるので、その組み合わせは１通りである。次に、ブロック内が２色の場合を考える。図３に示すように、２色が４画素内にレイアウトされる場合の数は、左上の画素を第１色、他方を第２色として考えると、左上以外残りの３画素へ第１色もしくは第２色が入るので、４画素同色の場合を除くと、全部で７通りの組み合わせが考えられる。
【００１６】
次に、ブロック内が３色の場合を考える。３色が４画素内にレイアウトされる場合の数は、３色のうち１色だけ２度使われる場合の数と言い換えることが可能であり、４画素の座標のうち、２画素が同じ色になる組み合わせの数を求めれば良い。つまり、３色の場合の数は、４つの座標から２つの座標を取る組み合わせとなり、全部で６通りとなる。そして最後に、ブロック内が４色の場合は１色の場合と同様で１パターンしか存在しない。
【００１７】
１色〜４色の全ての場合の数を合計すると、全部で１５通りのパターンが考えられる。また、これら全てのパターンを識別するためにフラグ（識別子）を付与することを考えると、フラグのデータ量としては４ビット必要となる。この１５通りのパターンとフラグとの関係を図４に示すように定義し、以下、このフラグを「パターンフラグ」と呼ぶ。このパターンフラグにより、ブロックに含まれる色数と色の配置パターンを特定することが可能となる。
【００１８】
なお、本実施形態においては、２×２画素からなるブロックに対して、パターンフラグを定義しているが、この構成に限定するものではない。例えば、３×３画素や４×４画素からなるブロックを対象としても良い。その場合は、パターンフラグとして定義される組み合わせも増加し、またフラグのデータ量も増加することとなる。
【００１９】
［圧縮処理］
上述のように、２×２画素の取り得る組み合わせを踏まえて、圧縮部２１２で行われる処理を、図５を用いて説明する。入力画像の各画素は、例えばＲＧＢそれぞれ８ビット（２５６階調）の色データと、文字、写真、グラフィックス、背景、グレー補償などの属性の種類を示す属性データで構成される。属性データは８ビットのデータで表され、各属性の種類が識別できるようになっているものとする。以下では、１画素当たり３２ビットの画素値（ＲＧＢの色データ２４ビット＋属性データ８ビット）で表される画像が入力されたものとして説明する。なお、本実施形態では、色データと属性データとの組み合わせをまとめて、画素値と呼ぶことにする。なお、本実施形態において、特に明記している場合を除き、本処理はＲＯＭ２０２等の記憶部に格納されたプログラムをＣＰＵ２０１が読み出して実行するものとする。
【００２０】
処理が開始すると、まず、２×２画素のブロックを入力する（Ｓ５０１）。そして、入力されたブロック内の全ての２画素の組み合わせに対して３２ビットの画素値（ＲＧＢの色データ２４ビット＋属性データ８ビット）のコンペアを取る（Ｓ５０２）。ここでコンペアを取った結果、２画素間のビットにおいて全ビット一致していた場合は“１”を、不一致の場合は“０”の出力をする。ここで、２×２画素内の左上から右上、左下、右下の画素の位置順に、座標１、２、３、４とする（図４に示す４０１）。２画素の組み合わせの座標は、１−２、１−３、１−４、２−３、２−４、３−４の全部で６通り（図４に示す４０２）あるので、６回コンペアを取る必要があり、結果は６ビット出力される。図４に示すコンペア結果のように、２×２画素のブロック内の全画素の画素値が同じであれば、全てのコンペア結果が１を出力し、逆に４画素が全て異なる画素値であれば、全てのコンペア結果が０を出力する。
【００２１】
この例では、４画素のブロックで画素値の一致から出現し得るパターンの数は１５通りなので、図４に示すように、６ビットのコンペア結果に応じて、４ビットのパターンフラグを特定する（Ｓ５０３）。次に、４画素内で出現した画素値（色データと属性データの組み合わせ）及びその画素値の数を抽出する（Ｓ５０４）。図４に示したように、４ビットのパターンフラグ（または６ビットのコンペア結果）に対して、ブロック内での各画素値の配置を示す各パターンが対応付けられているので、各ブロックにおける画素値の数と画素値（色データ及び属性データ）とを特定できる。なお、本実施形態の図４では、全てのパターンにおいて、左上の画素の画素値が第１画素値（１番目の画素値データ）となるように定義している。パターンフラグが０の場合は、画素値の数１で、左上の画素の画素値を第１画素値として抽出する。また、パターンフラグが１〜７の場合は、画素値の数２で、左上の画素の画素値を第１画素値として抽出し、更に、各パターンフラグに応じて定義されている第２画素値（２番目の画素値データ）が存在する位置の画素の画素値を抽出する。例えば、パターンフラグが１の場合は、第１画素値と異なる画素値である右上の画素の画素値を第２画素値として抽出する。
【００２２】
また、パターンフラグが８〜Ｄの場合は、画素値の数３で、左上の画素の画素値を第１画素値として抽出する。更に各パターンフラグに応じて定義されている第２画素値（２番目の画素値データ）及び第３画素値（３番目の画素値データ）が存在する位置の画素の画素値を抽出する。例えば、パターンフラグが８の場合は、右上の画素の画素値を第２画素値として抽出し、右下の画素の画素値を第３画素値として抽出する。また、パターンフラグがＥの場合は、左上の画素の画素値を第１画素値、右上の画素の画素値を第２画素値、左下の画素の画素値を第３画素値、右下の画素の画素値を第４画素値として抽出する。即ち、パターンフラグ（またはコンペア結果）に基づいて、ブロック内の画素値の数が特定され（Ｓ５０５、Ｓ５０７、Ｓ５０９）、それぞれに応じたパターンフラグと画素値（色データ及び属性データ）とを出力する（Ｓ５０６、Ｓ５０８、Ｓ５１０、Ｓ５１１）。
【００２３】
出力されるデータを、図６を用いて説明する。図６に示すように、例えばパターンフラグが０（即ち４画素内が１つの画素値で構成されている）の場合（Ｓ５０５でＹＥＳ）、２つ目以降の画素値は存在しないので、パターンフラグの４ビットと１番目の画素値（１画素×３２ビット分の画素値（色データ及び属性データ））とを出力する（Ｓ５０６）。また、パターンフラグが１〜７（即ち４画素内が２つの画素値で構成されている）の場合（Ｓ５０７でＹＥＳ）、２番目の画素値を有する画素の座標をパターンフラグより算出し、パターンフラグの４ビットと２つの画素値（２画素×３２ビット分の画素値（色データ＋属性データ））とを出力する（Ｓ５０８）。また、パターンフラグが８〜Ｄ（即ち３つの画素値で構成されている）の場合（Ｓ５０９でＹＥＳ）、パターンフラグの４ビットと３つの画素値（３画素×３２ビット分の画素値（色データ＋属性データ））とを出力する（Ｓ５１０）。そして、パターンフラグがＥ（即ち４つの画素値で構成されている）の場合（Ｓ５０９でＮＯ）、パターンフラグの４ビットと４つの画素値（４画素×３２ビット分の画素値（色データ＋属性データ））とを出力する（Ｓ５１１）。言い換えると、各ブロックから出力される画素値（色データ＋属性データ）は、ブロック内の座標（左上から右上、左下、右下の順に１、２、３、４）順に走査した場合に、出現していなかった画素値が第１画素値から順に出力されることに相当する。
【００２４】
このように、２×２画素のブロック内の４つの画素値分（１２８ビット）の入力データから、４ビットのパターンフラグと、ブロックに含まれる画素値のデータ（ブロック内の画素値（色データと属性データの組み合わせ）の種類分のデータ）とを出力することで、比較的簡単な処理で出力データ量を削減することが可能になる。特に、２×２画素のブロック内で同じ画素値の画素が存在するブロック（即ち各ブロック内に存在する画素値の数が少ないブロック）が多い画像の場合は、出力されるデータ量の圧縮率も大きくなる。また、パターンフラグを参照することで、そのブロック内の画素値の組み合わせ数、及び画素値の配置パターンを特定することが可能になる。このような処理を画像ブロック全てに対して行うことで、画像全面をデータ圧縮することが可能になる。なお、本実施形態において、便宜上、所定の位置（ここではブロックにおける左上）の画素に対するデータを第１色の色データ、第１の属性データ、それ以外の画素に対するデータを第２〜４色の色データ、第２〜４の属性データとも表現する。
【００２５】
［圧縮データの保持］
次に、このようにして求めたパターンフラグと画素値のデータとを、メモリに書き込む。このとき、パターンフラグと、ＲＧＢビットマップ（色データ）の第１色のデータと、ＲＧＢビットマップの第２色、第３色、第４色のデータと、属性データの第１のデータと、属性データの第２、第３、第４のデータとの書き込み位置を変える。
【００２６】
図７は、上述のメモリ空間への書き込み例を示す図である。尚、サイズがＭ×Ｎ画素のＲＧＢ各色８ビットと属性８ビットの画像を圧縮部２１２へ入力する場合、パターンフラグのデータが格納されるパターンフラグ格納部のデータサイズは、（Ｍ×Ｎ×４／８）バイトとなる。また、第１画素値の画素に対応するＲＧＢビットマップの第１色のデータが格納されるビットマップ第１色格納部のデータサイズは、（Ｍ×Ｎ×２４／８）バイトとなる。また、第２〜４画素値の各画素に対応するＲＧＢビットマップの第２色、第３色、第４色のデータが格納されるビットマップ第２，３，４色格納部のデータサイズは、処理対象となる画像に応じて異なる。これは、第２，３，４色が存在するブロックの数が画像によって異なるためである。さらに、第１画素値の画素に対応する属性データが格納される属性第１格納部のデータサイズは、（Ｍ×Ｎ×８／８）バイトとなる。また、第２画素値、第３画素値、第４画素値の画素に対応する属性データが格納される属性第２，３，４格納部のデータサイズは、処理対象となる画像に応じて異なる。この形式を用いて、第１の保持手段として、データをメモリに保持する。
【００２７】
ここで、ビットマップの第１色書き込み先頭アドレス以降のメモリ領域（ビットマップ第１色格納部、及びビットマップ第２，３，４色格納部）に関しては、画素の色データがそのままのビット数で格納されている。即ち、ＪＰＥＧ等の圧縮データとは異なり、圧縮データをデコードして画像に戻さなくても（画像データの圧縮時においても）、各画素の色（画素値）を特定することができる。同様に、各画素に対応する属性データも、属性第１格納部、及び属性第２，３，４格納部に、そのままのビット数で格納されているので、デコードしなくても属性データを特定可能でもある。
【００２８】
［属性データ削除処理］
次に、本発明の特徴である属性データの削減方法を、図８を用いて説明する。なお、本実施形態において、特に明記している場合を除き、本処理はＲＯＭ２０２等の記憶部に格納されたプログラムをＣＰＵ２０１が読み出して実行するものとする。処理が開始されると、まず図８に示すページ単位に画像データを入力する（Ｓ８０１）。次に、圧縮部２１２の入力となる画像データを所定の画素数単位（２Ｌ×２Ｌ画素）のブロックへ分割する（Ｓ８０２）。本実施形態では、Ｌ＝１６として、３２×３２画素サイズのタイルとする。以下の説明では、これまでの２×２画素のブロックと区別するために、このブロックのことを「タイル」と呼ぶ。これにより、タイル分割手段を実現する。１つのタイル中には、２×２画素ブロックが１６×１６（Ｌ×Ｌ）個存在することになる。図９は、ページと３２×３２画素のタイルと２×２画素のブロックとの関係を示す図である。なお、本実施形態においてタイルのサイズを３２×３２画素として扱っているが、上述したように本発明はブロックのサイズを変更可能であり、同様にタイルのサイズに関しても変更可能である。よって、タイルのサイズを３２×３２画素に限定するものではない。つまり、図９に示されているように、ページは所定の画素数単位（本実施形態では２Ｌ×２Ｌ）で構成されたタイルから構成されており、またタイルは２×２画素からなるブロックにブロック分割することが可能である。
【００２９】
次に、タイルに所定の固定長のヘッダ情報を付与する（Ｓ８０３）。このヘッダ情報は、ページＩＤ、タイル座標、色空間、画素データのビット数、タイルのデータサイズ、属性データの圧縮種、代表属性データ等の情報である。ここで、ページＩＤは、ページ単位に付与されるユニークなＩＤ番号である。タイル座標は、このタイルがページ単位の画像上のどの位置にあるかを示す座標情報である。座標情報は、Ｘ座標とＹ座標の２次元で座標が記述される。色空間は、このタイルが、ＲＧＢ画像なのかＣＭＹＫ画像なのかＧＲＡＹ−ＳＣＡＬＥ画像なのかを識別するための識別子を示す情報である。画素データのビット数は、タイル内の１画素当たりのビット長を示す情報である。データサイズは、このタイルの第１色のデータサイズと第２、３、４色のデータのデータサイズとを示すバイト単位の情報である。属性データの圧縮種は、属性データの圧縮の種類（圧縮レベル）を示す情報である。代表属性データは、代表の属性データ情報である。ヘッダ情報の構成例については、図１０にて示す。
【００３０】
次に、上述のタイル単位に圧縮処理を適用する（Ｓ８０４）。この圧縮処理の詳細は図５等を用いて上述した圧縮処理である。次に、上述のタイル単位において属性データのみに着目し、タイル単位でそのタイルに含まれる画素の属性データが全て同じ属性データか否かを判断する（Ｓ８０５）。これにより、第１判断手段を実現する。全て同じ属性データである場合（Ｓ８０５にてＹＥＳ）には、ヘッダ情報の属性データの圧縮種へ“２”をセットする（Ｓ８０６）。すなわち、属性データの圧縮種“２”は、当該ヘッダ情報に対応するタイル内の属性データが同じであることを示すことになる。さらに、同一であった属性データの内容をヘッダ情報の代表属性データへ格納する（Ｓ８０７）。この代表属性データが当該タイルにおける画素すべてに共通する属性データとなる。次に、圧縮処理で作成した第１画素値および第２，３，４画素値として圧縮された画素に対応する、属性データ（属性の第１データ、属性の第２，３，４データ）を削除する（Ｓ８０８、Ｓ８０９）。これにより、属性データに対する圧縮レベルが最も高い処理となる。
【００３１】
また、タイル単位で属性データがすべて同じでない場合（Ｓ８０５にてＮＯ）には、タイルを構成するブロック単位にて属性データを確認する。すなわち、圧縮処理の単位であるタイルに含まれるブロックごとに、当該ブロックに含まれる画素の属性データが同一であるかを確認する。なお、圧縮処理により生成された当該ブロックのパターンフラグが“０”であれば、当該ブロックに含まれる画素の属性データを再度確認するまでもなく、当該ブロックの属性データは同一であると判定できる。各ブロックの属性データが同一であれば、第１画素値として保持されている画素データの属性データが当該ブロックにおける共通データとして利用できるため、第２、３、４の属性データとして保持されている画素データの属性データは削除することが可能となる。よって、当該タイルに含まれるブロック全てに対して、ブロック毎に属性データが同じか判定し、全て同じであれば、第２，３，４の属性データは削除可能と判定する。
【００３２】
Ｓ８０５にてＮＯの場合、当該タイルに含まれるブロックを順に抽出する（Ｓ８１０）。そして、抽出したブロックに対応する属性データを確認する（Ｓ８１１）。そして、当該ブロック内の全ての属性データが一致していれば（Ｓ８１２にてＹＥＳ）、Ｓ８１３へ進む。Ｓ８１２の判定処理により、第２判断手段を実現する。Ｓ８１３にて当該タイルに含まれる全てのブロックに対して、処理が終了したかを判定し、終了していれば（Ｓ８１３にてＹＥＳ）、Ｓ８１４へ進む。終了していなければ（Ｓ８１３にてＮＯ）、Ｓ８１０へ戻り、未処理のブロックに対して、処理を繰り返す。当該タイルに含まれるすべてのブロックで、各ブロック内の属性データが一致していると判断した場合（Ｓ８１３にてＹＥＳ）、ヘッダ情報の属性データの圧縮種へ“１”をセットする（Ｓ８１４）。すなわち、属性データの圧縮種“１”は、当該ヘッダ情報に対応するタイルにおける各ブロック内の属性データが同じであることを示すことになる。さらに、圧縮処理で作成した属性の第２、３、４データを削除する（Ｓ８１５）。
【００３３】
さらにまた、当該タイルに含まれるブロックのいずれかにおいて、属性データが同一でない場合（Ｓ８１２にてＮＯ）には、ヘッダ情報の属性データの圧縮種へ“０”をセットする（Ｓ８１６）。ここでは、属性データに対する圧縮処理を行わないこととなる。Ｓ８０９、Ｓ８１５、Ｓ８１６の処理の後、Ｓ８１７へ進む。
【００３４】
Ｓ８０９、Ｓ８１５、Ｓ８１６のいずれかの処理後のデータを、当該タイルのヘッダ情報と一緒に１つのデータにパッキングする（Ｓ８１７）。このパッキングされたデータのデータ構造を図１０に示す。これ以降、上述のヘッダを含むデータの単位を「パケット」と呼ぶ。このようなパケット（パケットデータ）にするには、タイル単位でＳ８０４〜Ｓ８１６の処理が終了し、データサイズが確定した後、ビットマップの第１色格納部及び第２，３，４格納部と、属性の第１格納部及び第２、３、４格納部の間を詰めた状態でデータをパッキングする。その後、メモリ上へ出力する（Ｓ８１８）。次に、このパケットの座標とサイズとをリストとして列挙し、パケット管理テーブルとして作成する（Ｓ８１９）。これにより、テーブル作成手段を実現する。このパケット管理テーブルの一例を図１１に示す。上述の処理を最後のタイルまで繰り返すことで（Ｓ８２０でＹＥＳ）、ページ単位の画像の圧縮処理を終了する。
【００３５】
なお、Ｓ８０８にて削除するデータは、図１０に示した属性第１色格納部に格納された属性データが対象となる。同様に、Ｓ８０９、Ｓ８１５にて削除するデータは、図１０に示した属性第２、３、４色格納部に格納された属性データが対象となる。また、ヘッダ情報に含まれる代表属性データは、属性データ圧縮種が“２”のときに値が指定されることとなる。
【００３６】
尚、上述のタイル単位でデータをメモリへ書き出すと、図１２に示すように、パケット毎にサイズが異なり、それぞれのパケットの先頭アドレスが飛び飛びになる。そのため、図１１に示すパケット管理テーブルを用いて任意の座標のパケットの先頭アドレスを探索する。従って、先頭パケットの書き込みアドレスが既知であれば、パケット管理テーブルに記載されている座標までのデータサイズをオフセットとして任意のパケットの先頭アドレスを求めることが可能になる。例えば、図１２に示す第３パケットを読み込む場合は、第１、第２パケットのサイズ合計をパケット管理テーブルより求め、先頭パケットのアドレスに対してオフセットをかけることで第３パケットアドレスを算出する。そして、そこからデータを読み込むことで第３パケットのデータを取得することが可能になる。
【００３７】
このように、タイル単位に任意のデータへのアクセスが可能になるので、画像の部分的な処理が可能になる。例えば、画像の一部の領域を抽出して処理したい場合は、当該領域に対応するパケットのデータを取得して処理すればよい。
【００３８】
［伸張処理］
次に、本発明に係る伸張処理を、図１３を用いて説明する。上記で述べた圧縮処理は、可逆圧縮処理であり、パケットに含まれる情報を用いることで元の画像に戻すことが可能である。なお、本実施形態において、特に明記している場合を除き、本処理はＲＯＭ２０２等の記憶部に格納されたプログラムをＣＰＵ２０１が読み出して実行するものとする。処理が開始されると、まず図１３に示すパケットデータを入力する（Ｓ１３０１）。次に、パケットデータ内のタイルヘッダを読み出し（Ｓ１３０２）、タイルヘッダの解析を行う（Ｓ１３０２）。タイルヘッダの解析結果により、属性データ圧縮種が０であるかを判断する（Ｓ１３０３）。属性データ圧縮種が０である場合（Ｓ１３０４にてＹＥＳ）には、伸張処理１を実行する（Ｓ１３０１）。ここでの伸張処理１では、パケット内に格納した、パターンフラグ、ビットマップ第１色データ、ビットマップ第２、３、４色データ、さらに、第１画素値に対応する属性データ、第２、３、４の画素値に対応する属性データを読み出して画素を展開する。上述の処理をパケット内に格納したすべての画素が終了するまで繰り返す（Ｓ１３０６でＹＥＳ）。
【００３９】
また、属性データ圧縮種が０でない場合（Ｓ１３０４にてＮＯ）には、属性データ圧縮種が１であるかを判断する（Ｓ１３０７）。属性データ圧縮種が１である場合（Ｓ１３０７にてＹＥＳ）には、伸張処理２を実行する（Ｓ１３０８）。ここでの伸張処理２では、パケット内に格納した、パターンフラグ、ビットマップ第１色データ、ビットマップ第２、３、４色データを読み出してビットマップを展開する。さらに、第１画素値に対応する属性データを読み出して、ブロックごとに、対応するブロック内の全ての画素に同じ属性データを設定する。上述の処理をパケット内に格納したすべての画素が終了するまで繰り返す（Ｓ１３０９でＹＥＳ）。
【００４０】
また、属性データ圧縮種が１でない（すなわち、属性データ圧縮種が２である）場合（Ｓ１３０７にてＮＯ）には、伸張処理３を実行する（Ｓ１３１０）。ここでの伸張処理３では、パケット内に格納した、パターンフラグ、ビットマップ第１色データ、ビットマップ第２、３、４色データを読み出してビットマップを展開する。さらに、タイルヘッダに格納した代表属性データを読み出して、タイル内の全ての画素に同じ属性データを設定する。上述の処理をパケット内に格納したすべての画素が終了するまで繰り返す（Ｓ１３１１でＹＥＳ）。Ｓ１３０６、Ｓ１３０９、Ｓ１３１１にて全ての画素に対し処理が終了したら、タイル単位でデータをメモリへ書き出す（Ｓ１３１２）
【００４１】
本実施形態によれば、画素単位で属性データを伴う画像データを扱う場合に圧縮効率の向上が可能である。特に、２×２画素のブロックや、３２×３２画素のタイルにおいて、色データは異なっていても属性データは同じである場合があり、その場合の圧縮効率を上げることができる。尚、属性データは１画素当たり８ビットに限るものではなく、１ビットや４ビット、或いは１６ビットといった任意のビット数を取ることも可能である。
【００４２】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005538993.tif 000002
【図２】
0005538993.tif 000003
【図３】
0005538993.tif 000004
【図４】
0005538993.tif 000005
【図５】
0005538993.tif 000006
【図６】
0005538993.tif 000007
【図７】
0005538993.tif 000008
【図８】
0005538993.tif 000009
【図９】
0005538993.tif 000010
【図１０】
0005538993.tif 000011
【図１１】
0005538993.tif 000012
【図１２】
0005538993.tif 000013
【図１３】
0005538993.tif 000014