(57)【要約】【課題】画像データの圧縮率を向上させる。【解決手段】画像データを２×２画素のブロック毎に分割し、各ブロック内の色（画素値）に基づき、各ブロックの色の配置パターンを示すパターンフラグと色データとに変換する方法において、隣接する３つのブロックの第１色との類似性に基づいて圧縮率を向上させる方法に関する。更に、隣接する前のブロックとの類似性に基づいて圧縮率を向上させる方法と隣接する３つのブロックの第１色との類似性に基づいて圧縮率を向上させる方法とを併用した場合に、パターンフラグのビット数を増やさないようにする。【選択図】  図２０
2012054789.tif 000002
【特許請求の範囲】
【請求項１】
画像データを２×２画素のサイズのブロックごとに分割し、当該分割される各ブロックを順に処理対象にする分割手段と、
前記分割手段で分割された処理対象ブロック内の色データの配置が、１つ前に処理対象になったブロック内の色データの配置と同じであるか否か判定する第１判定手段と、
前記第１判定手段で同じでないと判定された場合、前記処理対象ブロック内の各画素の色データを比較することにより、色データの配置パターンを示す予め定義された複数のパターンフラグの中から、当該処理対象ブロックに含まれる色データの配置パターンを示すパターンフラグを特定する特定手段と、
前記処理対象のブロック内の予め定義された位置の画素の色を第１色の色データとして抽出し、更に、当該ブロックに含まれる前記第１色の色データ以外の色データを抽出する抽出手段と、
前記特定手段で特定されるパターンフラグそれぞれの出現回数をカウントする第１カウント手段と、
前記特定手段で２つ以上の色データが配置されていることを示すパターンフラグであると特定された処理対象ブロックに関して、前記処理対象ブロック内の予め定義された位置の画素以外の３つの画素の色データが、当該３つの画素に隣接する３つの別のブロックそれぞれにおける予め定義された位置の画素の色データとそれぞれ一致するか否か判定する第２判定手段と、
前記第１カウント手段でカウントした結果に基づいて、前記予め定義された複数のパターンフラグの中から、パターンを入れ替えることにより生じるデータ増加量が最少のパターンフラグを、入れ替え対象パターンフラグとして選択する選択手段と、
前記パターンフラグ、または、前記色データの少なくとも一方を出力する出力手段と
を有し、
前記出力手段は、
前記第１判定手段で同じであると判定された処理対象ブロックに対しては、当該処理対象ブロック内の色の配置が１つ前に処理対象になったブロック内の色の配置と同じであることを示すパターンフラグを出力し、
前記第１判定手段で同じでないと判定され、且つ、前記特定手段で特定されたパターンフラグが１色で構成されるブロックであることを示すパターンフラグである処理対象ブロックに対しては、前記特定手段で特定されたパターンフラグと、前記抽出手段で抽出される当該処理対象ブロック内の前記第１色の色データとを出力し、
前記第１判定手段で同じでないと判定され、且つ、前記第２判定手段で一致すると判定された処理対象ブロックに対しては、前記選択手段で選択されたパターンフラグと、前記抽出手段で抽出される当該処理対象ブロック内の前記第１色の色データとを出力し、
前記第１判定手段で同じでないと判定され、且つ、前記第２判定手段で一致しないと判定され、且つ、前記特定手段で特定されたパターンフラグが前記選択手段で選択された前記入れ替え対象パターンフラグである処理対象ブロックに対しては、当該処理対象ブロックを４色で構成されるブロックとして、当該処理対象ブロックが４つの色データが配置されるブロックであることを示すパターンフラグと、当該処理対象ブロック内の４画素それぞれの色データとを出力し、
前記第１判定手段で同じでないと判定され、且つ、前記第２判定手段で一致しないと判定され、且つ、前記特定手段で特定されるパターンフラグが前記選択手段で選択された前記入れ替え対象パターンフラグでない処理対象ブロックに対しては、前記特定手段で特定された当該処理対象のブロックに含まれる色の配置パターンを示すパターンフラグと、前記抽出手段で抽出される前記処理対象のブロック内の前記第１色の色データと、前記処理対象のブロック内の前記第１色の色データ以外の色データとを出力する
ことを特徴とする画像処理装置。
【請求項２】
前記予め定義された位置の画素とは、２×２画素のサイズのブロック内の右下の画素であり、
前記第２判定手段は、前記処理対象ブロック内の左上の画素の色データと、当該処理対象ブロックの左上に隣接するブロックの右下の画素の色データとが一致し、かつ、
前記処理対象ブロック内の右上の画素の色データと、当該処理対象ブロックの上に隣接するブロックの右下の画素の色データとが一致し、かつ、
前記処理対象ブロック内の左下の画素の色データと、当該処理対象ブロックの左に隣接するブロックの右下の画素の色データとが一致するか否かを判定することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記第２判定手段で一致すると判定されたブロックの数をカウントする第２カウント手段と
前記第１カウント手段でカウントした結果と前記第２カウント手段でカウントした結果とに基づいて、前記パターンフラグを入れ替えた場合にデータ量が減少するか否かを判定する第３判定手段と
を更に有し、
前記選択手段は、前記第３判定手段で減少すると判定した場合に、前記第１カウント手段でカウントした結果に基づいて、前記予め定義された複数のパターンフラグの中から、パターンを入れ替えたときのデータ増加量が最少のパターンフラグを、前記入れ替え対象パターンフラグとして選択することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記第３判定手段にてデータ量が減少しないと判定した場合、非可逆圧縮方式で前記画像データの圧縮を行う非可逆圧縮手段を更に有することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
画像データを２×２画素のサイズのブロックごとに分割し、当該分割される各ブロックを順に処理対象にする分割手段と、
前記処理対象ブロック内の各画素の色データを比較することにより、色データの配置パターンを示す予め定義された複数のパターンフラグの中から、当該処理対象ブロックに含まれる色データの配置パターンを示すパターンフラグを特定する特定手段と、
前記処理対象ブロック内の予め定義された位置の画素の色を第１色の色データとして抽出し、更に、当該ブロックに含まれる前記第１色の色データ以外の色データを抽出する抽出手段と、
前記処理対象ブロック内の前記予め定義された位置の画素以外の３つの画素の色データが、当該３つの画素に隣接する３つの別のブロックそれぞれにおける予め定義された位置の画素の色データとそれぞれ一致するか否か判定する判定手段と、
前記判定手段で一致すると判定された処理対象ブロックに対しては、当該３つの画素に隣接する３つの別のブロックそれぞれにおける予め定義された位置の画素の色データと一致することを示すパターンフラグと、前記抽出手段で抽出される当該処理対象ブロック内の第１色の色データとを出力し、
前記判定手段で一致しないと判定された処理対象ブロックに対しては、前記特定手段により特定される当該処理対象ブロックに含まれる色データの配置パターンを示すパターンフラグと、前記抽出手段により抽出される前記第１色の色データと前記第１色の色データ以外の色データとを出力する出力手段と
を有することを特徴とする画像処理装置。
【請求項６】
分割手段が、画像データを２×２画素のサイズのブロックごとに分割し、当該分割される各ブロックを順に処理対象にする分割工程と、
第１判定手段が、前記分割工程で分割された処理対象ブロック内の色データの配置が、１つ前に処理対象になったブロック内の色データの配置と同じであるか否か判定する第１判定工程と、
特定手段が、前記第１判定工程で同じでないと判定された場合、前記処理対象ブロック内の各画素の色データを比較することにより、色データの配置パターンを示す予め定義された複数のパターンフラグの中から、当該処理対象ブロックに含まれる色データの配置パターンを示すパターンフラグを特定する特定工程と、
抽出手段が、前記処理対象のブロック内の予め定義された位置の画素の色を第１色の色データとして抽出し、更に、当該ブロックに含まれる前記第１色の色データ以外の色データを抽出する抽出工程と、
第１カウント手段が、前記特定工程で特定されるパターンフラグそれぞれの出現回数をカウントする第１カウント工程と、
第２判定手段が、前記特定工程で２つ以上の色データが配置されていることを示すパターンフラグであると特定された処理対象ブロックに関して、前記処理対象ブロック内の予め定義された位置の画素以外の３つの画素の色データが、当該３つの画素に隣接する３つの別のブロックそれぞれにおける予め定義された位置の画素の色データとそれぞれ一致するか否か判定する第２判定工程と、
選択手段が、前記第１カウント工程でカウントした結果に基づいて、前記予め定義された複数のパターンフラグの中から、パターンを入れ替えたときのデータ増加量が最少のパターンフラグを、入れ替え対象パターンフラグとして選択する選択工程と、
出力手段が、前記パターンフラグ、または、前記色データの少なくとも一方を出力する出力工程と
を有し、
前記出力工程において、
前記第１判定工程で同じであると判定された処理対象ブロックに対しては、当該処理対象ブロック内の色の配置が１つ前に処理対象になったブロック内の色の配置と同じであることを示すパターンフラグを出力し、
前記第１判定工程で同じでないと判定され、且つ、前記特定工程で特定されたパターンフラグが１色で構成されるブロックであることを示すパターンフラグである処理対象ブロックに対しては、前記特定工程で特定されたパターンフラグと、前記抽出工程で抽出される当該処理対象ブロック内の前記第１色の色データとを出力し、
前記第１判定工程で同じでないと判定され、且つ、前記第２判定工程で一致すると判定された処理対象ブロックに対しては、前記選択工程で選択されたパターンフラグと、前記抽出工程で抽出される当該処理対象ブロック内の前記第１色の色データとを出力し、
前記第１判定工程で同じでないと判定され、且つ、前記第２判定工程で一致しないと判定され、且つ、前記特定工程で特定されたパターンフラグが前記選択工程で選択された前記入れ替え対象パターンフラグである処理対象ブロックに対しては、当該処理対象ブロックを４色で構成されるブロックとして、当該処理対象ブロックが４つの色データが配置されるブロックであることを示すパターンフラグと、当該処理対象ブロック内の４画素それぞれの色データとを出力し、
前記第１判定工程で同じでないと判定され、且つ、前記第２判定工程で一致しないと判定され、且つ、前記特定工程で特定されるパターンフラグが前記選択工程で選択された前記入れ替え対象パターンフラグでない処理対象ブロックに対しては、前記特定工程で特定された当該処理対象のブロックに含まれる色の配置パターンを示すパターンフラグと、前記抽出工程で抽出される前記処理対象のブロック内の前記第１色の色データと、前記処理対象のブロック内の前記第１色の色データ以外の色データとを出力する
ことを特徴とする画像処理方法。
【請求項７】
分割手段が、画像データを２×２画素のサイズのブロックごとに分割し、当該分割される各ブロックを順に処理対象にする分割工程と、
特定手段が、前記処理対象ブロック内の各画素の色データを比較することにより、色データの配置パターンを示す予め定義された複数のパターンフラグの中から、当該処理対象ブロックに含まれる色データの配置パターンを示すパターンフラグを特定する特定工程と、
抽出手段が、前記処理対象ブロック内の予め定義された位置の画素の色を第１色の色データとして抽出し、更に、当該ブロックに含まれる前記第１色の色データ以外の色データを抽出する抽出工程と、
判定手段が、前記処理対象ブロック内の前記予め定義された位置の画素以外の３つの画素の色データが、当該３つの画素に隣接する３つの別のブロックそれぞれにおける予め定義された位置の画素の色データとそれぞれ一致するか否か判定する判定工程と、
出力手段が、
前記判定工程で一致すると判定された処理対象ブロックに対しては、当該３つの画素に隣接する３つの別のブロックそれぞれにおける予め定義された位置の画素の色データと一致することを示すパターンフラグと、前記抽出工程で抽出される当該処理対象ブロック内の第１色の色データとを出力し、
前記判定工程で一致しないと判定された処理対象ブロックに対しては、前記特定工程により特定される当該処理対象ブロックに含まれる色データの配置パターンを示すパターンフラグと、前記抽出工程により抽出される前記第１色の色データと前記第１色の色データ以外の色データとを出力する出力工程と
を有することを特徴とする画像処理方法。
【請求項８】
コンピュータを請求項１乃至５のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を所定のブロック単位に圧縮する技術とブロック単位に圧縮された画像の画像処理や復元処理を行う技術に関する。
【背景技術】
【０００２】
従来、高解像度のカラー画像への需要は高く、それらの高画質化への要望へ応えるべくデジタル複合機では１２００ｄｐｉやそれを超える解像度の画像を扱うことが多くなってきている。画像の高解像度化が進むにつれて、画像処理を必要とする画素数が飛躍的に増え、その処理負荷が増大しているという課題がある。デジタル複合機に限らず、デジタルカメラやファクシミリ装置などの画像処理装置では、メモリ／ハードディスク量の節約やそれらへの書き込み時間を短縮するために、カラー画像データの圧縮を行い、低コスト化や高速化を実現している。
【０００３】
カラー静止画像の圧縮方式には、離散コサイン変換を利用したＪＰＥＧ方式やＷａｖｅｌｅｔ変換を利用した方式が多く使われている。この種の符号化方式は、一般的に画像を所定のブロック（例えば８×８や１６×１６画素単位）に符号化し、離散コサイン変換、量子化及びエントロピー符号化を行うことで高い圧縮効率を達成している。この種の符号化方式は、可変長符号化方式であるので、符号化対象の画像毎に符号量が変化するものである。
【０００４】
上述した画像圧縮を用いた場合、その画素データを参照し、その画素データを変換するには、圧縮データの復号処理が必要になってくる。つまり、圧縮データのままで画像処理を行うことはできず、必ず復号処理が必要になり、高解像度データ全ての画素に対して画素単位に処理を行う必要が出てしまい、処理時間の増大を招く。
【０００５】
画素データの符号化を行わずに圧縮処理を行う技術としては、画素データとその連続数を記憶する公知のランレングス圧縮方式やブロック単位でエッジを検出し、そのエッジの持つ２色を記憶することで圧縮する技術が開示されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２７１０４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１においては、ブロック内を２色化し、その２色の配置に関する形状情報と２色の色情報を記憶していた。しかし、さらなる高画質化、処理高速化を図るため、本出願人は特願２００９−２２１４４４で以下のような提案をしている。
【０００８】
前記提案では、まず、画像データをブロック毎に分割し、ブロック内の各画素の色データを比較することにより、注目ブロックに含まれる色データの配置パターン情報と、注目ブロックに含まれる色数分の色データ情報とを出力する。そして、出力された色データ情報のうち、各ブロックにおける予め決められた位置の画素に対応する第１の色データ情報、それ以外の色データ情報、配置パターン情報をそれぞれ、それぞれ異なるメモリ領域にまとめて格納することを特徴としている。これにより、２色より多い色数を持つブロックの画質を落とさずに高画質化を実現し、特定位置の間引き画像データを連続メモリ領域に置き、復号化することなく低解像度画像を扱えるようにすることで、処理高速化を実現しようとしている。
【０００９】
すなわち、前記提案では、２×２画素の処理対象ブロック内に含まれる色データを比較することにより圧縮処理を行う例が示されている（ここでは、上述したブロック内の色データの比較のみによる圧縮処理を、「２×２画素のブロックで閉じた圧縮方法」と呼ぶことにする）。前記提案では上述した２×２画素のブロックで閉じた圧縮方法に加え、更に、１つ前の処理対象ブロックの類似性に着目した処理が提案されている。すなわち、前記提案では、現在の処理対象ブロックが１つ前の処理対象ブロックと同じ色配置であれば、前のブロックと同じであることを示すフラグを配置パターン情報として格納し、色データを格納しないことで、更に圧縮率を向上させることも考えられている。
【００１０】
本発明では、上述した１つ前の処理対象ブロックとの類似性に基づく処理とは異なる、隣接する他のブロックとの類似性に基づく他の処理を適用することで、圧縮率を向上させる。また、当該他の処理を、上述した１つ前の処理対象ブロックとの類似性に着目した処理と組み合わせる場合、いずれの処理を適用したか判別できるように、配置パターン情報のビット数を増やして、その処理を適用したことを示すフラグを配置パターン情報として格納することが考えられる。しかしながら、配置パターン情報のビット数を増加させると、その分データ量が増加してしまい、圧縮率が低下する場合がありうる。
【００１１】
したがって、２×２画素のブロックで閉じた圧縮方法に加えて、他の処理を２つ以上追加する場合、配置パターン情報を４ビットのまま圧縮を行うためには、圧縮処理開始前に残りの１通りに割り当てる処理をあらかじめ決定しておかなければならない。しかしながら、圧縮対象の画像データによって圧縮率向上を見込める処理が異なり、画像データに対しどの処理が効果的かは圧縮するまでは分からない。そのため、圧縮処理開始前に圧縮対象の画像データにどの処理が適しているか判断して、残りの1通りに処理を割り当てる必要がある。
【課題を解決するための手段】
【００１２】
本発明の画像処理装置は、画像データを２×２画素のサイズのブロックごとに分割し、当該分割される各ブロックを順に処理対象にする分割手段と、前記分割手段で分割された処理対象ブロック内の色データの配置が、１つ前に処理対象になったブロック内の色データの配置と同じであるか否か判定する第１判定手段と、前記第１判定手段で同じでないと判定された場合、前記処理対象ブロック内の各画素の色データを比較することにより、色データの配置パターンを示す予め定義された複数のパターンフラグの中から、当該処理対象ブロックに含まれる色データの配置パターンを示すパターンフラグを特定する特定手段と、前記処理対象のブロック内の予め定義された位置の画素の色を第１色の色データとして抽出し、更に、当該ブロックに含まれる前記第１色の色データ以外の色データを抽出する抽出手段と、前記特定手段で特定されるパターンフラグそれぞれの出現回数をカウントする第１カウント手段と、前記特定手段で２つ以上の色データが配置されていることを示すパターンフラグであると特定された処理対象ブロックに関して、前記処理対象ブロック内の予め定義された位置の画素以外の３つの画素の色データが、当該３つの画素に隣接する３つの別のブロックそれぞれにおける予め定義された位置の画素の色データとそれぞれ一致するか否か判定する第２判定手段と、前記第１カウント手段でカウントした結果に基づいて、前記予め定義された複数のパターンフラグの中から、パターンを入れ替えることにより生じるデータ増加量が最少のパターンフラグを、入れ替え対象パターンフラグとして選択する選択手段と、前記パターンフラグ、または、前記色データの少なくとも一方を出力する出力手段とを有し、前記出力手段は、前記第１判定手段で同じであると判定された処理対象ブロックに対しては、当該処理対象ブロック内の色の配置が１つ前に処理対象になったブロック内の色の配置と同じであることを示すパターンフラグを出力し、前記第１判定手段で同じでないと判定され、且つ、前記特定手段で特定されたパターンフラグが１色で構成されるブロックであることを示すパターンフラグである処理対象ブロックに対しては、前記特定手段で特定されたパターンフラグと、前記抽出手段で抽出される当該処理対象ブロック内の前記第１色の色データとを出力し、前記第１判定手段で同じでないと判定され、且つ、前記第２判定手段で一致すると判定された処理対象ブロックに対しては、前記選択手段で選択されたパターンフラグと、前記抽出手段で抽出される当該処理対象ブロック内の前記第１色の色データとを出力し、前記第１判定手段で同じでないと判定され、且つ、前記第２判定手段で一致しないと判定され、且つ、前記特定手段で特定されたパターンフラグが前記選択手段で選択された前記入れ替え対象パターンフラグである処理対象ブロックに対しては、当該処理対象ブロックを４色で構成されるブロックとして、当該処理対象ブロックが４つの色データが配置されるブロックであることを示すパターンフラグと、当該処理対象ブロック内の４画素それぞれの色データとを出力し、前記第１判定手段で同じでないと判定され、且つ、前記第２判定手段で一致しないと判定され、且つ、前記特定手段���特定されるパターンフラグが前記選択手段で選択された前記入れ替え対象パターンフラグでない処理対象ブロックに対しては、前記特定手段で特定された当該処理対象のブロックに含まれる色の配置パターンを示すパターンフラグと、前記抽出手段で抽出される前記処理対象のブロック内の前記第１色の色データと、前記処理対象のブロック内の前記第１色の色データ以外の色データとを出力することを特徴とする。
【００１３】
また、本発明の画像処理装置は、画像データを２×２画素のサイズのブロックごとに分割し、当該分割される各ブロックを順に処理対象にする分割手段と、前記処理対象ブロック内の各画素の色データを比較することにより、色データの配置パターンを示す予め定義された複数のパターンフラグの中から、当該処理対象ブロックに含まれる色データの配置パターンを示すパターンフラグを特定する特定手段と、前記処理対象ブロック内の予め定義された位置の画素の色を第１色の色データとして抽出し、更に、当該ブロックに含まれる前記第１色の色データ以外の色データを抽出する抽出手段と、前記処理対象ブロック内の前記予め定義された位置の画素以外の３つの画素の色データが、当該３つの画素に隣接する３つの別のブロックそれぞれにおける予め定義された位置の画素の色データとそれぞれ一致するか否か判定する判定手段と、前記判定手段で一致すると判定された処理対象ブロックに対しては、当該３つの画素に隣接する３つの別のブロックそれぞれにおける予め定義された位置の画素の色データと一致することを示すパターンフラグと、前記抽出手段で抽出される当該処理対象ブロック内の第１色の色データとを出力し、前記判定手段で一致しないと判定された処理対象ブロックに対しては、前記特定手段により特定される当該処理対象ブロックに含まれる色データの配置パターンを示すパターンフラグと、前記抽出手段により抽出される前記第１色の色データと前記第１色の色データ以外の色データとを出力する出力手段とを有する。
【発明の効果】
【００１４】
本発明によれば、配置パターン情報のビット数を増加させることなく、画像データの圧縮率を向上させることが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明に係る画像処理装置の構成の一例を示すブロック図。
【図２】本発明に係るコントローラの構成例を示す図。
【図３】本発明に係る２×２画素ブロックの色の配置パターンの組み合わせを示す図。
【図４】本発明に係る配置パターンとパターンフラグの関係を示す図。
【図５】本発明に係る画素の数とパターンフラグの特定処理を示すフローチャート。
【図６】本発明に係る配置パターンに対応する出力データのデータ量を示す図。
【図７】本発明に係る画像データのメモリ空間への書き込み例を示す図。
【図８】本発明に係る前ブロックとの一致を表すパターンフラグを示す図。
【図９】本発明に係る前ブロックとの一致を表す圧縮処理を示すフローチャート。
【図１０】本発明に係る画像データのメモリ空間への書き込み例を示す図。
【図１１】本発明に係る着目ブロックと周囲ブロックの位置関係を示す図。
【図１２】本発明に係る３方向のブロックとの一致を表すパターンフラグを示す図。
【図１３】本発明に係る３方向のブロックとの一致を表す圧縮処理のフローチャート。
【図１４】本発明に係る圧縮処理で用いられるパターン入れ替えの例を示す図。
【図１５】本発明に係るパターンの入れ替えによるパターンのデータ増加を示す図。
【図１６】本発明に係るパターンの入れ替えによるデータの削減量と増加量を示す図。
【図１７】本発明に係るパターンの入れ替えを行う圧縮処理を示すフローチャート。
【図１８】本発明に係る圧縮処理とカウント処理を示すフローチャート。
【図１９】本発明に係るパターン入れ替え処理を示すフローチャート。
【図２０】本発明に係るパターン入れ替え後の圧縮処理を示すフローチャート。
【図２１】本発明に係る画像データのメモリ空間への書き込み例を示す図。
【発明を実施するための形態】
【００１６】
［ハードウェア構成］
以下、本発明の発明を実施するための形態について図面を用いて説明する。本実施形態では、画像処理装置として、スキャン、プリント、コピーなどの複数の機能を有するデジタル複合機（ＭＦＰ）を例に説明する。
【００１７】
図１に示すように、コントローラ１０１は、画像入力機器であるスキャナ１０２や画像出力機器であるプリンタ１０３と接続される。また、コントローラ１０１はＬＡＮや公衆回線（ＷＡＮ）などのネットワーク１０４と接続することで、画像情報やデバイス情報の入出力、ＰＤＬデータのイメージ展開を行う。
【００１８】
ＣＰＵ１０５は、後述する記憶部１０７に格納されたプログラムに従ってＭＦＰ全体を制御するプロセッサである。メモリ１０６は、ＣＰＵ１０５が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。記憶部１０７は、ハードディスクドライブであり、システムソフトウェアやプログラム、画像データなどを格納する。
【００１９】
次に、図２に示すコントローラ１０１の構成例を参照してコントローラ１０１の各部の詳細な処理を説明する。まず、スキャナ１０２によってスキャンされた画像データを読み込む場合を説明する。スキャナ１０２で読み取られたＲＧＢ（レッド、グリーン、ブルー）３色の画像データをスキャナ用画像処理部２０１が受け取り、その画像データに対してシェーディング処理やフィルタ処理等の画像処理を行い、圧縮部２０２が画像圧縮処理を行う。そして、圧縮されたデータ（圧縮データ）をＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）２０３が画像メモリバスを介してメモリ１０６に格納する。
【００２０】
次に、スキャンされた画像データをプリントする場合、メモリ１０６に格納された圧縮データをＤＭＡＣ２１１が画像メモリバスを介して色処理部２１２へ転送する。そして、色処理部２１２がＣＭＹＫ（シアン、マゼンタ、イエロー、ブラック）色空間へ変換する。その後、更に色処理部２１２がＣＭＹＫの各値に対して濃度調整やプリンタガンマ補正などの色処理を行った後、該色処理後のデータをＤＭＡＣ２１１が画像メモリバスを介してメモリ１０６に再度格納する。その後プリント用の画像処理を行うために、ＤＭＡＣ２２１が画像メモリバスを介してメモリ１０６に格納されている圧縮データを読み込み、展開部２２２がラスタ画像データに展開する。そして、ラスタのＣＭＹＫ画像データをプリント用画像処理部２２３が入力し、ディザ法や誤差拡散法による面積階調処理を行い、プリンタ１０３へ出力する。
【００２１】
また、スキャンされた画像データをネットワークへ送信する場合、メモリ１０６に格納されている圧縮データをＤＭＡＣ２１１が画像メモリバスを介して色処理部２１２へ転送する。そして、色処理部２１２がディスプレイガンマ調整や用紙地色調整等を行った後、ＹＣｂＣｒ（輝度、ＢＬＵＥ色差、ＲＥＤ色差）色空間へ変換する。そして、色処理部２１２で処理されたデータをＤＭＡＣ２１１が画像メモリバスを介してメモリ１０６に再度格納する。その後、送信用の画像処理を行うために、ＤＭＡＣ２３１が画像メモリバスを介してメモリ１０６に格納されている圧縮データを展開部２３２へ転送する。そして、展開部２３２が圧縮データをラスタ画像データに展開する。その後、ラスタのＹＣｂＣｒ画像データに対して送信処理部２３３がカラー画像送信であればＪＰＥＧ圧縮処理を行い、モノクロ２値画像送信であればＹデータに対して２値化を行い、ＪＢＩＧ圧縮等を行い、ネットワーク１０４へ出力する。
【００２２】
また、スキャンされた画像データを保存する場合、メモリ１０６に格納されている圧縮データをＤＭＡＣ２４１が画像メモリバスを介してディスクスプール高圧縮／展開部２４２へ転送する。ディスクスプール高圧縮／展開部２４２では、ＨＤＤの書き込みスピードがメモリに対して遅いため、更に高圧縮のＪＰＥＧ圧縮を施す。その後ディスクアクセスコントローラ２４３を介して記憶部１０７へ圧縮データを保存する。また、記憶部１０７に保存されている圧縮データをメモリ１０６に再度転送する場合には、上述した処理を逆に行えば良い。
【００２３】
ここで、図１に示すネットワーク１０４を介して接続された他の装置から送られてきたＰＤＬデータをメモリ１０６へ書き込む場合を説明する。図２にはＰＤＬ解釈部が図示されていないが、ＰＤＬ解釈部として機能するＣＰＵ１０５がＰＤＬデータを解釈し、その結果のディスプレイリストをメモリ１０６に出力する。その後、メモリ１０６に格納されているディスプレイリストをレンダリング部２５１がラスタのＲＧＢ画像データへレンダリングを行い、圧縮部２５２が画像圧縮処理を行う。そして、圧縮データをＤＭＡＣ２５３が画像メモリバスを介してメモリ１０６に格納する。
【００２４】
尚、ＰＤＬデータをプリント、ネットワークへ送信、保存する処理は、スキャンされた画像データの場合と同様の処理を行うことで実現可能である。
【００２５】
［配置パターン］
ここで圧縮処理を説明する前に、所定の画素数（本実施形態では２×２の４画素）からなるブロックにおける色の組み合わせを考える。画素数が４画素なので、そこに占める色数は最大４色になり、ブロック内で１色〜４色の組み合わせしか存在しない。その４色の配置パターンの取り得る組み合わせの場合の数を図３に示す。
【００２６】
まず、ブロック内を構成する色数が１色の場合、４画素が同色で構成されていることになるので、その組み合わせ（配置パターン）は１通りである。次に、ブロック内を構成する色数が２色の場合を考える（各色を第１色と第２色と呼ぶこととする）。図３に示すように、２色が４画素内にレイアウトされる場合の数は、所定位置の画素（本実施例では右下の画素とする）を第１色として考えると、右下画素以外の残りの３画素へ第１色もしくは第２色が入るので、４画素同色の場合を除くと、全部で７通りの組み合わせが考えられる。
【００２７】
次に、ブロック内を構成する色数が３色（第１色〜第３色）の場合を考える。３色が４画素内にレイアウトされる場合の数は、３色のうち１色だけ２度使われる場合の数と言い換えることができるので、４画素のうち２画素が同じ色になる場合の数を求めれば良い。つまり、３色の場合の数は、４つの画素から２つの画素を取る組み合わせとなり、全部で６通りとなる。また、ブロック内を構成する色数が４色（第１色〜第４色）の場合は１パターンしか存在しない。
【００２８】
したがって、ブロックを構成する色数が１色〜４色の全ての場合の数を合計すると、全部で１５通りのパターンが考えられる。また、これら全てのパターンを識別するためにフラグ（識別子）を付与することを考えると、フラグのデータ量としては４ビット必要となる（フラグ０〜Ｅ）。この１５通りのパターンとフラグとの関係を図４に示すように定義し、以下、このフラグを「パターンフラグ」と呼ぶ。
【００２９】
［圧縮処理］
上述のように、２×２画素の取り得る組み合わせを踏まえて、圧縮部２０２、２５２で行われる処理を、図５を用いて説明する。以下の処理は、たとえば記憶部１０７等に記憶されたプログラムをＣＰＵ１０５が読み出し、実行する。入力としては、例えばＲＧＢそれぞれ８ビットの２５６階調を持っており、またデータとしては８ビットデータの点順次で１画素当たり２４ビットの画像として説明する。
【００３０】
まず、２×２画素のブロックを入力し、そのブロック内の全ての２画素の組み合わせに対して２４ビットの比較をする（Ｓ５０１）。ここで比較をした結果、全ビット一致していた場合は"１"を、不一致の場合は"０"を出力する。
【００３１】
ここで、２×２画素内の右下から左上、右上、左下画素の位置順に、座標１、２、３、４とする（図４に示す４０１）。２画素の組み合わせの座標は、２−３、２−４、２−１、３−４、１−３、１−４の全部で６通り（図４に示す４０２）あるので、６回比較する必要があり、結果は６ビット出力される。図４に示す比較結果のように、全画素が同色であれば、全ての比較結果が１を出力し、逆に４画素が全てバラバラの画素値を持っていれば、全ての比較結果が０を出力する。
【００３２】
この例では、４画素で色の一致から出現し得るパターンの数は１５通りなので、図４に示すように、６ビットの比較結果に応じて、４ビットのパターンフラグを特定する（Ｓ５０２）。次に、４画素内で出現した色数及び色データを抽出する（Ｓ５０３）。図４に示したように、４ビットのパターンフラグ（または６ビットの比較結果）に対して、ブロック内での各色の配置を示す各パターンが対応づけられているので、各ブロックにおける色数と色データを特定することができる。
【００３３】
なお、本実施形態の図４では、全てのパターンにおいて、右下の画素の色（画素値）が第１色（１番目の色データ）となるように定義している。パターンフラグが０の場合は、色数１で、右下の画素の色（画素値）を第１色として抽出する。また、パターンフラグが１〜７の場合は、色数２で、右下の画素の色（画素値）を第１色として抽出し、更に、各パターンフラグに応じて定義されている第２色（２番目の色データ）が存在する位置の画素の色（画素値）を抽出する。例えば、パターンフラグが１の場合は、右上の画素の色を第２色として抽出する。また、パターンフラグが８〜Ｄの場合は、色数３で、右下の画素の色（画素値）を第１色として抽出し、更に各パターンフラグに応じて定義されている第２色（２番目の色データ）及び第３色（３番目の色データ）が存在する位置の画素の色（画素値）を抽出する。例えば、パターンフラグが８の場合は、左上の画素の色（画素値）を第２色として抽出し、右上の画素の色（画素値）を第３色として抽出する。また、パターンフラグがＥの場合は、右下の画素の色を第１色、左上の画素の色を第２色、右上の画素の色を第３色、左下の画素の色を第４色として抽出する。
【００３４】
即ち、パターンフラグ（または比較結果）に基づいて、ブロックの色数が特定され（Ｓ５０４、Ｓ５０６、Ｓ５０８）、それぞれに応じたパターンフラグと色データとを出力する（Ｓ５０５、Ｓ５０７、Ｓ５０９、Ｓ５１０）。なお、第１色を代表色、第２〜４色を他色と呼ぶ場合もある。
【００３５】
本処理により出力されるデータを、図６を用いて説明する。図６に示すように、例えばパターンフラグが０（即ち４画素内が１色で構成されている）の場合（Ｓ５０４でＹＥＳ）、２色目以降は存在しないので、パターンフラグの４ビットと１色目の画素値（２４ビット分の色データ）とを出力する（Ｓ５０５）。また、パターンフラグが１〜７（即ち４画素内が２色で構成されている）の場合（Ｓ５０６でＹＥＳ）、２色目が存在する画素の座標をパターンフラグより算出し、パターンフラグの４ビットと２色分の画素値（４８ビット分の色データ）を出力する（Ｓ５０７）。また、パターンフラグが８〜Ｄ（即ち３色）の場合（Ｓ５０８でＹＥＳ）、パターンフラグの４ビットと３色分の画素値（７２ビット分の色データ）とを出力する（Ｓ５１０）。そして、パターンフラグがＥ（即ち４色）の場合（Ｓ５０８でＮＯ）、パターンフラグの４ビットと４色分の画素値（９６ビット分の色データ）とを出力（Ｓ５１１）して処理を終了する（Ｓ５１２）。言い換えると、各ブロックから出力される色データは、ブロック内の座標（右下から左上、右上、左下の順に１、２、３、４）順に走査した場合に、出現していなかった色データが第１色から順に出力されることに相当する。
【００３６】
このように、２×２画素のブロック内の４色（９６ビット）の入力データを４ビットのパターンフラグと、そこに存在する色数分の画素値を出力することで、比較的簡単な処理で出力データ量を削減することが可能になる。特に、２×２画素のブロック内で同色の画素が存在するブロック（即ち各ブロック内の色数が少ないブロック）が多いラスタ画像の場合は、出力されるデータ量の圧縮率も大きくなる。また、パターンフラグを参照することで、そのブロック内の色数を特定することが可能になる。このような処理を画像ブロック全てに対して行うことで、画像全面をデータ圧縮することが可能になる。
【００３７】
次に、このようにして求めたパターンフラグと色データとを、ＤＭＡＣ２０３、２５３がメモリ１０６に書き込む処理（メモリ格納処理）を行う。このとき、ＤＭＡＣではパターンフラグと第１色のデータと第２色〜第４色のデータ（第１色の色データ以外）との書き込み位置を変える。ＤＭＡＣにはパターンフラグ書き込みのためのメモリ先頭アドレスと、第１色データの書き込みのためのメモリ先頭アドレスと、第２色以降のデータの書き込みのためのメモリ先頭アドレスの３つのアドレスを指定する。即ち、各ブロックのパターンフラグはメモリ上のパターンフラグ格納部（パターンフラグを格納するためのメモリ領域）にまとめて格納されることになる。また、各ブロックの第１色（１色目）の色データは、メモリ上の第１色格納部（各ブロックの１色目の色データを格納するためのメモリ領域）にまとめて格納されることになる。更に、各ブロックの第２〜４色目の色データは、メモリ上の第２，３，４色格納部（各ブロックの２〜４色目の色データを格納するためのメモリ領域）にまとめて格納されることになる。
【００３８】
図７は、ＤＭＡＣによる画像データのメモリ空間への書き込み例を示す図である。尚、サイズがＭ×Ｎ画素のＲＧＢ各８ビットの画像を圧縮部へ入力する場合、パターンフラグのデータが格納されるパターンフラグ格納部のデータサイズは、（Ｍ×Ｎ×４／８）バイトとなる。また、第１色のデータが格納される第１色格納部のデータサイズは、（Ｍ×Ｎ×２４／８）バイトとなる。また、第２色、第３色、第４色のデータが格納される第２，３，４色格納部のデータサイズは、処理対象となるラスタ画像に応じて異なる。これは、第２，３，４色が存在するブロックの数が画像によって異なるためである。
【００３９】
ここで、第１色書き込み先頭アドレス以降のメモリ領域（第１色格納部、及び第２，３，４色格納部）に関しては、画素の色データがそのままのビット数で格納されている。即ち、ＪＰＥＧ等の圧縮データとは異なり、圧縮データをデコードしてラスタ画像に戻さなくても、各画素の色（画素値）を特定することができる。従って、１画素入力１画素出力で完結する色処理、例えばＬＵＴを用いた色変換やガンマ補正処理、行列演算を用いた色空間変換処理等を行う場合、元のラスタ画像に戻す必要はなく、図７のように格納されているデータに対して直接処理を行うことが可能になる。図２に示した色処理部２１２で画素単位の画像処理を行う場合は、メモリ１０６上の第１色書き込み先頭アドレス以降の画素データをＤＭＡＣ２１１経由で読み込み、画素単位での処理を済ませた後に、メモリ１０６上へ書き戻す。このとき、何らかの画素単位処理によって画素のビット数が変わらない場合には、メモリ１０６上の同じ場所へ上書きすることでメモリ１０６の節約も可能である。
【００４０】
このように、圧縮データを直接用いることで、メモリバス上の転送効率が向上し、かつオリジナルのラスタ画像の画素数よりも少ない数の色データに対して処理することになり、高速処理が可能になる。
【００４１】
［データ格納形式］
また、図７に示すように、画像データを、パターンフラグと第１色とその他の色とに分け、離散的にメモリ上へ格納している。したがって、第１色格納部には、ラスタ画像を２×２画素のブロックに分割して、各ブロックの右下の座標の画素をサンプリングした場合の画素値（色データ）がメモリ上に連続して存在することになる。
【００４２】
ＭＦＰにおいては、蓄積したＰＤＬ画像データやスキャン画像データのプレビュー表示、上述したネットワーク送信などの機能も有している。例えば、プリント解像度が６００ｄｐｉであったとしても、プレビューや送信時にそこまでの解像度は通常必要とされず、３００ｄｐｉやそれ以下で十分な場合が多い。このように、縮小データを得る必要がある場合は、第１色格納部に格納されている第１色の色データのみをまとめて抽出することで、簡単に半分のサイズのラスタ画像を得ることができる。
【００４３】
例えば、６００ｄｐｉのラスタ画像が図７のようなデータに変換されて蓄積されていた場合の縮小送信時を説明する。送信する画像の解像度として３００ｄｐｉが指定された場合は、第１色格納部に格納されているデータをそのまま抽出して送信すればよい。また、解像度として４００ｄｐｉなど、第１色格納部にサンプリングされている３００ｄｐｉより大きい解像度が指定されている場合には、次のように処理する。即ち、パターンフラグ格納部と第１色格納部と第２，３，４色格納部とに格納されているデータに基づき、圧縮データを一度展開し、公知の変倍処理を用いて変倍し、当該変倍された画像を送信する。また、３００ｄｐｉより小さい送信解像度指定がされている場合には、第１色格納部のデータのみを用いて、指定の解像度へ変倍処理を行う。このように、必要な画像サイズに応じて切り替えながらデータの読み込みを行うようにすればよい。上述の圧縮処理を以下で通常の圧縮処理と呼ぶ。
【００４４】
［展開処理］
次に、圧縮部２０２、２５２と対になる展開部２２２、２３２を説明する。尚、展開部２２２、２３２では、上述したようなパターンフラグと色データを、ラスタ画像データへ戻す処理を行う。メモリ１０６上に図７に示すように配置されている圧縮データのパターンフラグ書き込み先頭アドレス、第１色書き込み先頭アドレス、及び第２、３、４色書き込み先頭アドレスの３つのアドレスをＤＭＡＣ２２１、２３１へ指定する。ＤＭＡＣ２２１、２３１は３つのアドレスからデータを読み出し、展開部２２２、２３２へ転送する。
【００４５】
展開部２２２、２３２では、まず４ビットのパターンフラグを解釈し、そのブロック内の色数を算出する。第１色データに加え、色数に応じて第２、３、４色データを読み出し、各パターンフラグに対して予め定義されている色データの配置パターン（図４）に従って、第１色ならびに第２〜４色の色データを再配置する。これにより２×２画素ブロックを展開、復号する。
【００４６】
また、展開部２２２、２３２で画像サイズを１／２にする場合には、上述したように、パターンフラグと第２、３、４色データを必要としないので、ＤＭＡＣ２２１、２３１には第１色書き込み先頭アドレスのみ指定する。これにより、メモリ１０６から第１色データのみの読み込みが行われ、画像が構成される。このように処理することで、メモリバスの帯域を節約することが可能になる。
【００４７】
本実施形態では、色データの配置を示すパターンとパターンフラグとを図４のように対応付けたが、これに限るものではない。第１色は右下画素に限るものではなく、例えば、２×２画素ブロックの左上画素の画素値が第１色となるように、色データの配置を示すパターンとパターンフラグとを対応付けて予め定義しても構わない。また、第１の実施形態では、ブロックのサイズとして２×２画素のサイズを用いて説明してきたが、これに限るものではない。また、圧縮の説明の際に画像データとしてＲＧＢ各８ビットを例に説明してきたが、ＣＭＹＫの色空間を取るものやＧＲＡＹスケールのデータ、或いは８ビット以外の画素値をとるものでも良い。
【００４８】
［リピート処理による圧縮処理］
次に、通常の圧縮処理に追加することで、更に圧縮率を向上するための処理について説明する。通常の圧縮処理で高圧縮になることが期待される画像は、画像内で隣接画素値が同色の領域が多い画像である。このような画像領域に着目すると、２×２画素のブロック内部だけでなく、隣接する２×２画素のブロックも同色である場合が多い。
【００４９】
そこで、前述したブロック内で閉じた圧縮方法に加え、隣接ブロックの類似性に着目した圧縮方法を説明する。図４に２×２のブロックが取り得るパターンフラグの場合の数を１５通りのパターンとして４ビットで表現している。４ビットのパターンフラグでは１６通りまで表現可能なので、１通りまだ利用できる余地がある。
【００５０】
そこで、現在処理しているブロックの一つ前のブロックの画素値を記憶しておき、現在のブロックと全画素一致と判断できる場合、そのブロックの画素値（色データ）は出力せず、前ブロックと同じというフラグだけ立てる。このパターンフラグに４ビットの残りの１通りを割り当てることにより、パターンフラグのビット数を変化させることなく、データの更なる圧縮が可能になる。
【００５１】
図８は、新たなパターンフラグとして、前のブロックと同じパターンであることを示すフラグ（リピートフラグと称する）を追加した場合のビット数を示す図である。この例では、パターンフラグとして前ブロックと一致（新たに画素値出力しない）を表す"Ｆ"を追加している。図８に示すように、パターンフラグＦのブロックはパターンフラグの４ビットで表現することが可能となる。即ち、パターンフラグがＦのブロックは、前のブロックの画素値（色データ）とパターンフラグとを参照して展開することが可能となるので、画素値（色データ）を格納しなくて済み、圧縮率が向上する。上述の処理を以下でリピート処理と呼ぶ。
【００５２】
［リピート処理フロー］
ここで、リピート処理の説明を、図９を用いて詳細に説明する。以下の処理は、たとえば記憶部１０７等に記憶されたプログラムをＣＰＵ１０５が読み出し、実行する。まず、処理が開始されると、ラスタ画像データを入力し、そこから２×２画素のブロックを切り出す（Ｓ９０１）。次に、着目ブロック（処理対象ブロック）が最初のブロックであれば、それ以前に処理し記憶しているブロックはないので（Ｓ９０２でＹＥＳ）、前述した通常の圧縮処理と同様に圧縮処理を行う（Ｓ９０６）。一方、Ｓ９０２で着目ブロックが最初のブロックでないと判定された場合（Ｓ９０２にてＮＯ）、１つ前に処理し、記憶していたブロックと着目ブロックの画素値を比較する（Ｓ９０３）。これにより、第１判定を行う。ここで記憶したブロックと着目ブロックの画素値が一致した場合（Ｓ９０４にてＹＥＳ）は、１つ前に記憶した前のブロックと同じデータを使用可能であると判断する。そして、前ブロックと同じであることを示すパターンフラグＦに特定し（Ｓ９０５）、画素値（色データ）の出力は省略する。即ち、処理対象のブロックとその前に処理対象となったブロックが画素値が一致したと判断した場合は、当該処理対象ブロックに対しては、前のブロックの繰り返しを示すパターンフラグＦ（リピートフラグ）を出力する。その後、Ｓ９０９へ進む。
【００５３】
また、記憶したブロックと画素値が一致しない場合（Ｓ９０４にてＮＯ）は、前述した通常の圧縮処理を行う（Ｓ９０６）。その後、そのデータの展開を行い（Ｓ９０７）、その展開された２×２画素のブロックを前のブロックのデータとして記憶更新しておく（Ｓ９０８）。なお、本実施形態では、Ｓ９０６で圧縮処理を行った後に、Ｓ９０７〜Ｓ９０８で前ブロックのデータを更新するようにしているが、これに限るものではない。例えば、Ｓ９０６で圧縮処理を行う前に、当該処理対象のブロックの画素値を用いて前ブロックのデータを更新するようにしても構わない。
【００５４】
次に、記憶したブロックと画素値が一致しなかったブロックに対しては、Ｓ９０６で通常の圧縮処理を行った結果のパターンフラグと画素値（色データ）とを出力し、記憶したブロックと画素値が一致したブロックに対しては、パターンフラグＦのみ出力する（Ｓ９０９）。この処理を最後のブロックまで繰り返し（Ｓ９１０でＹＥＳ）、画像全体の圧縮処理を終了する。
【００５５】
パターンフラグのビット数が４ビットと増えていないので、前述した通常の圧縮処理に比べて確実に圧縮率を向上させることが可能であるが、第１色の色データのサイズも、第２、３、４色データと同様に不定（画像によって異なる）になってしまう。
【００５６】
従って、図１０に示すように、第１色データと連続したメモリ空間に第２、３、４色のデータを格納することができず、第１色と、第２、３、４色のデータを離散的に持たせる必要がある。前述した図２に示す色処理部２１２では、メモリ１０６上の第１色書き込み先頭アドレス以降の画素データをＤＭＡＣ２１１経由で読み込み、画素単位で処理を済ませた後にメモリ１０６上へ書き戻せた。しかしながら、リピート処理では、第１色と、第２、３、４色が連続していないので、第１色のアドレスに加えて第２、３、４色の書き込み先頭アドレスも含めて色処理部２１２のＤＭＡＣ２１１に指定する必要がある。
【００５７】
ここでは、１つ左のブロックを前ブロックと定義し、そのブロックとの一致、不一致を状態として保持しているが、これに限るものではない。例えば、上のブロックとの一致やパターンフラグのビット数を拡張することで、より広いエリアとの一致を規定できる。パターンフラグのビット数を拡張する場合には、色データを保持するよりもデータ量を削減できる範囲で設定する。
【００５８】
［リピートフラグを有する圧縮データに対する展開処理］
次に、圧縮処理と対になる展開処理を説明する。展開処理は、前述したようなパターンフラグ、画素データからラスタ画像データに戻す処理である。メモリ１０６上に図１０に示すように配置されている圧縮データのパターンフラグ書き込み先頭アドレス、第１色書き込み先頭アドレス、第２、３、４色書き込み先頭アドレスの３つのアドレスをＤＭＡＣ２２１、２３１へ指定する。パターンフラグを参照して、前ブロックと同じと識別された際は、その注目ブロックの出力は前ブロックの出力そのものを用い、それ以外のフラグの場合は前述した方法で展開が可能である。尚、この際に１ブロック分は次ブロックで利用する可能性があるのでバッファする必要がある。
【００５９】
しかしながら、展開処理で画像サイズを１／２にする場合には、前述したようにメモリ１０６から第１色データのみ読み込みを行い、画像を構成するだけでは隣接ブロックとの一致データを展開することができない。そのため、本実施形態の展開処理では、パターンフラグを参照しながら、第１色のデータに基づいて１／２サイズの画像を復元する。なお、第２、３、４色のデータは使用せずに済む。具体的には、パターンフラグを参照した際、前ブロックと同じと識別された場合は、第１色データ中の前の色データを繰り返し出力することで展開が可能になる。これにより、メモリバスの帯域を節約することが可能になる。
【００６０】
［類似性に基づく圧縮処理］
次に、リピート処理とは異なる、隣接ブロックの類似性に着目した圧縮処理について説明する。この圧縮処理はリピート処理と同様に、現在処理しているブロックの画素値を、周囲のブロックの画素値を参照して展開することで、更に圧縮率を向上する処理である。
【００６１】
図１１は現在処理しているブロックと周囲のブロックの画素の位置関係を示す図である。図１１で示すように、現在処理しているブロックの座標２の画素は、左上のブロックの座標１の画素の右下に配置されており、座標３の画素は上のブロックの座標１の画素の下に配置され、座標４の画素は左のブロックの座標１の画素の右に隣接して配置されている。これは、図４の４０１にて示した配置と同様である。そして、処理対象ブロック内の座標１の画素（第１色の画素）の左上に位置する座標２の画素については、左上方向に隣接する別のブロック内の座標１の画素（第１色の画素）と比較することにより一致するか判定する。同様に、処理対象ブロック内の座標１の画素（第１色の画素）の上に位置する座標３の画素については、上方向に隣接する別のブロック内の座標１の画素（第１色の画素）と比較することにより一致するか判定する。更に、処理対象ブロック内の座標１の画素（第１色の画素）の左に位置する座標４の画素については、左方向に隣接する別のブロック内の座標１の画素（第１色の画素）と比較することにより一致するか判定する。このように、現在処理しているブロック内の座標２〜４とそれぞれ隣接している３つのブロックの座標１の画素の画素値が一致する場合、次に示す処理を行う。現在処理しているブロックの座標１（第１色の画素）以外の画素値は出力せず、第１色の画素値と、３方向の第１色の画素と一致というフラグだけを出力する。このパターンフラグに残りの１パターンを割り当てることにより、パターンフラグのビット数を変化させることなく、データの更なる圧縮が可能になる。
【００６２】
図１２は、リピート処理を行わない場合、新たなパターンフラグとして、３方向の画素が一致することを示すフラグ（３方向一致フラグと称する）を追加した場合のビット数を示す図である。この例ではパターンフラグとして周囲３方向の画素と一致（第１色以外の画素値を出力しない）を表す"Ｆ"を追加している。図１２に示すように、パターンフラグがＦのブロックはパターンフラグの４ビットと第１色の画素値の２４ビットで表現することが可能となる。即ち、パターンフラグがＦのブロックは、周囲の３つのブロックの第１色の画素値とパターンフラグとを参照して展開することが可能となるので、第２〜４色の画素値を格納しなくて済み、圧縮率が向上する。この場合、パターンフラグが０（ブロック内の色データが１色のみ）の場合と同じデータ量まで削減することが可能となる。つまり、類似性に基づいて圧縮されるブロックのデータ量は、パターンフラグ（４ビット）と１色分の色データ（２４ビット）との総和である２８ビットとなる。上述の処理を以下で３方向一致処理と呼ぶ。
【００６３】
［類似性に基づく圧縮処理フロー］
ここで、３方向一致処理の説明を図１３を用いて詳細に説明する。以下の処理は、たとえば記憶部１０７等に記憶されたプログラムをＣＰＵ１０５が読み出し、実行する。まず、処理が開始されると、ラスタ画像データを入力し、そこから２×２画素のブロックを切り出す（Ｓ１３０１）。次に画像データの上端または左端のブロックであれば（Ｓ１３０２にてＹＥＳ）、周囲にブロックが存在しない箇所があるので、前述した通常の圧縮処理と同様に圧縮処理を行う（Ｓ１３０６）。一方、上端または左端のブロックでない場合（Ｓ１３０２にてＮＯ）、左上、上、左のそれぞれに配置されているブロックの第１色の画素値と、現在処理している第１色以外のそれぞれの画素値を比較する（Ｓ１３０３）。第１色以外の画素の画素値の比較結果がすべて一致だった場合（Ｓ１３０４でＹＥＳ）、３方向一致を示すパターンフラグＦに特定し、第１色以外の画素値の出力は省略する（Ｓ１３０６）。即ち、処理対象のブロックの第１色以外の画素値と周辺ブロックの第１色の画素値が一致したと判断した場合は、３方向一致を示すパターンフラグＦ（３方向一致フラグ）を出力する。この処理を最後のブロックまで繰り返し（Ｓ１３０８）、画像全体の圧縮処理を終了する。
【００６４】
リピート処理と同様にパターンフラグのビット数が４ビットから増加していないため、前述した通常の圧縮処理に比べて、確実に圧縮率を向上させることが可能である。なお、メモリ空間へのデータの格納方法は、図７に示すような通常の圧縮処理のメモリ空間へのデータ格納方法と同様である。
【００６５】
［３方向一致フラグを有する圧縮データに対する展開処理］
次に圧縮処理と対になる展開処理を説明する。展開処理は前述したようなパターンフラグ、画素データからラスタ画像データに戻す処理である。メモリ１０６上に図７に示すように配置されている圧縮データのパターンフラグ書き込み先頭アドレス、第１色書き込み先頭アドレス、第２、３、４色書き込み先頭アドレスの３つのアドレスをＤＭＡＣ２２１、２３１へ指定する。パターンフラグを参照して、３方向一致したと識別された際は、その現在処理しているブロックの出力は隣接、または斜め上に配置されたブロックを参照することで展開し、それ以外のフラグの場合は前述した方法で展開が可能である。尚、この際に隣接した３方向のブロックの画素値を参照するために、現在処理しているブロックのひとつ上の１ラインと前のブロックをバッファする必要がある。
【００６６】
前述したリピート処理や３方向一致処理は、４ビットの配置パターン情報の残り１通りにこれらの処理を割り当てることで、通常の圧縮処理だけの場合と比べ、更に圧縮率を向上する処理である。リピート処理や３方向一致処理を単独で行うより、これらの処理を組み合わせることで、更なる圧縮率向上が見込める。しかし、これらを組み合わせて処理を行うためには、パターン数の増加により配置パターン情報のビット数を増やす必要がある。
【００６７】
［本発明に係る圧縮処理］
ここで、本発明に係る配置パターン情報のビット数を増やさずに、リピート処理と３方向一致処理とを組み合わせて圧縮処理を行う方法について説明する。配置パターン情報のビット数を増やさずに、通常の圧縮処理に対して更に上述した２つの処理を追加するためには、各パターンフラグに既に割り当てられている処理と、新たに追加したい処理を入れ替えればよい。
【００６８】
図１４（Ａ）に初期のパターンのパターンフラグへの割り当てを示す。ここでは通常の圧縮処理における１５通りのパターンとリピート処理用の１パターンとにパターンフラグ０〜Ｆ（１６パターン）を割り当てている。次に、図１４（Ｂ）にパターンフラグを入れ替える例を示す。この例では、パターンフラグＤに割り当てられているパターンと３方向一致処理を入れ替え、３方向一致処理にパターンフラグＤを割り当てている。次に、初期のパターンフラグＤに割り当てられていたパターンに、新たに４色のパターンであるパターンフラグＥを割り当てている。すなわち、初期のパターンフラグＤに相当するブロックが入力された場合、そのブロックは４色のブロック（Ｅ）として扱うようにする。このパターンの場合、４ビットのパターンフラグと、９６ビットの４画素分の画素値を出力することになる。そのため、パターンの入れ替えを行っても、初期のパターンフラグＤに相当するパターンである入力ブロックは、４画素分の画素値を出力するため画質の劣化は引き起こすことはない。
【００６９】
しかしながら、パターン入れ替えを行うと、初期のパターンの中で入れ替えられたパターンは上述したとおり、４色のブロック（Ｅ）として扱われる。そのため、初期のパターンで圧縮する場合には出力する必要のなかった画素値（色データ）も出力することになり、その分圧縮率は低下してしまう。
【００７０】
図１５に入力データを、初期のパターンと入れ替え後のパターンで圧縮処理を行った場合の出力データを示す。図１５は２色のブロックを４色のブロックとして扱った場合の例である。４色として扱われるブロックは４画素分の画素値を出力しなければならないため、２画素分の画素データ（４８ビット）が増加することになる。
【００７１】
そのため、確実に圧縮率を向上させるためには、パターンを入れ替えることで画素データがどれだけ増加するか、また、３方向一致処理を追加することで、圧縮率がどれだけ向上するかを判断し、パターンを入れ替える必要がある。つまり、通常のパターンと入れ替え後のパターンのいずれか、圧縮率が高い方をブロックに対して適用する。
【００７２】
図１６に画像データを処理したときの各パターンの出現回数のカウント値とパターン入れ替えによるデータ削減量とデータ増加量を示す。ここで、図１６を用いて、入れ替えるパターンの判断方法を示す。図１６は通常の圧縮処理とリピート処理を組み合わせた１６通りの中から３通りを抜粋して示した。初めに２色のパターンａを例に説明する。画像全体におけるパターンａの出現回数は３０回で、そのうち、３方向一致した回数は１０回であったとする。３方向一致処理を追加することでパターンａのブロックのうち１０個は１色分の画素データ（２４ビット）を削減できる。そのため、パターンａの場合は、３方向一致により（１×１０×２４／８＝３０）バイト削減できる。一方、もし３方向一致処理をパターンａと入れ替えることで追加した場合、パターンａは４色のブロックとして扱われるため、前述したとおり２色分の余分なデータを出力する必要がある。つまりパターンａと３方向一致処理を入れ替えた場合、（２×（３０−１０）×２４／８＝１２０）バイトのデータが増加する。同様に、パターンｂ、パターンｃを考えると図１６のような結果となる。
【００７３】
もし表記していない残りのパターンにおける３方向一致回数が０であったとすると、３方向一致処理によって削減されるデータは合計１５０バイトである。データ削減量の合計がパターンごとのデータ増加量を上回っていれば、３方向一致処理とパターンを入れ替えることによって、圧縮率が向上することを判断できる。データ削減量の合計がデータ増加量を上回っているパターンの中から最もデータ増加量が少ないパターンを３方向一致と入れ替えることで、圧縮率向上を見込むことができる。図１６においては、パターンｂが入れ替え対象のパターンとして選択され、画像全体で（１５０−３０＝１２０）バイト圧縮率が向上する。もし、データ削減量の合計がパターンの入れ替えにより発生する各パターンのデータ増加量をいずれも超えない場合、パターンは入れ替えない。
【００７４】
パターンの入れ替えを行った場合、入れ替えたパターンフラグを示すパターン入れ替えフラグと、３方向一致処理を追加したことを示す追加処理フラグ”１”を出力し保持する。パターン入れ替えフラグと追加処理フラグから圧縮に用いたパターンを判断できるので、これより展開処理を行い元の画像に復元することが可能である。
【００７５】
このように、カウンタを用いて各パターンの出現回数をカウントし、パターンフラグに割り当てられているパターンを確実に圧縮率が向上するように入れ替えることで、配置パターン情報のビット数を増加させずに処理を追加することができる。これにより、第１カウント手段を実現する。
【００７６】
［本発明に係る処理フロー］
ここで、本発明の処理方法を、図１７を用いて詳細に説明する。本実施形態では、通常の圧縮処理とリピート処理を４ビットの配置パターン情報で表し、更に３方向一致処理を組み合わせた場合について説明する。ここでは、通常の圧縮処理のパターン１５通りとリピート処理の組み合わせを初期のパターンと定義する。以下の処理は、たとえば記憶部１０７等に記憶されたプログラムをＣＰＵ１０５が読み出し、実行する。
【００７７】
まず、処理が開始されると、ラスタ画像データを入力し、そこから２×２画素のブロックを切り出す（Ｓ１７０１）。次に、Ｓ１７０１にて切り出されたブロックに対し圧縮処理を行いつつ、並行して各パターンフラグの出現回数をカウントする（Ｓ１７０２）。ここでの処理については、図１８を用いて後述する。ここまでの処理を画像データの最後のブロックまで繰り返し（Ｓ１７０３でＹＥＳ）、画像全体の圧縮処理を行い、記憶部に保持する。ここで、圧縮結果から目標圧縮率に達しているかの判断を行う（Ｓ１７０４）。ここでの目標圧縮率は、入力された画像データに対し、目標とする圧縮率である。この目標圧縮率は、予め定義されていても良いし、ユーザにより指定されても良い。判断の結果、Ｓ１７０２における画像データへの処理により、目標圧縮率を達成している場合（Ｓ１７０４でＹＥＳ）、圧縮処理を終了する。一方、目標圧縮率を達成していない場合（Ｓ１７０４にてＮＯ）、圧縮率を向上させるために、パターンの入れ替え処理を行う（Ｓ１７０５）。ここでの処理については、図１９を用いて後述する。パターンの入れ替え処理が行われた結果、圧縮率が向上する（データ量が減少する）場合（Ｓ１７０６にてＹＥＳ）、次に入れ替えたパターンを用いて圧縮処理を行い（Ｓ１７０７）、処理を終了する。ここでの処理については、図２０を用いて後述する。パターンの入れ替え処理の結果、圧縮率が向上しない（データ量が減少しない）場合（Ｓ１７０６にてＮＯ）、例えばＪＰＥＧのような非可逆な圧縮手段（不図示）で圧縮を行い（Ｓ１７０８）、処理を終了する。なお、Ｓ１７０４にて、目標圧縮率が達成できないと判定された場合（Ｓ１７０４にてＮＯ）において、Ｓ１７０７では、元の画像データに対してパターンフラグを入れ替えた後の割り当てを用いて圧縮処理を行う。また、Ｓ１７０８では、元の画像データに対して非可逆な圧縮方式にて圧縮処理を行う。なお、非可逆圧縮方式による非可逆圧縮を適用する画像データは、元の画像データでもよいし、一度Ｓ１７０２にて圧縮された画像データに対して適用しても良い。従って、Ｓ１７０２にて圧縮され、記憶部に保持された圧縮データは、破棄されても良いし、更なる圧縮等の用途で用いられても良い。
【００７８】
［圧縮処理＆カウント処理］
ここで、上述した処理における圧縮処理とカウント処理（Ｓ１７０２）について、図１８を用いて詳細に説明する。以下の処理は、たとえば記憶部１０７等に記憶されたプログラムをＣＰＵ１０５が読み出し、実行する。また、ここでのカウンタの値は、メモリ１０６等の記憶部に保持されている。まず、処理が開始されると、初めに現在処理しているブロックが最初のブロックか判断し（Ｓ１８０１）、最初のブロックであれば以前に圧縮処理を適用し記憶したブロックはないため（Ｓ１８０１でＹＥＳ）、通常の圧縮処理を行う（Ｓ１８０７）。一方、最初のブロックでない場合（Ｓ１８０１でＮＯ）、１つ前に処理し、記憶していたブロックと画素値を比較する（Ｓ１８０２）。ここで、記憶したブロックと画素値が一致した場合（Ｓ１８０３にてＹＥＳ）、前のブロックと同じであることを示すパターンフラグ（Ｆ）を作成し（Ｓ１８０４）、パターンフラグを出力する（Ｓ１８０５）。その後、リピートフラグに対応するカウンタに１を加算する（Ｓ１８０６）。
【００７９】
また、記憶したブロックと画素値が一致しない場合（Ｓ１８０３にてＮＯ）、通常の圧縮処理を行う（Ｓ１８０７）。その後、そのデータの展開を行い（Ｓ１８０８）、展開された２×２画素のブロックを前のブロックのデータとして、展開ブロックを記憶する（Ｓ１８０９）。次に画素データとパターンフラグを出力する（Ｓ１８１０）。そして、判別されたパターンフラグに対応するカウンタに１を加算する（Ｓ１８１１）。
【００８０】
次に、判別されたパターンの中に３方向一致した回数がどれだけあったかの判断を行う（Ｓ１８１２）。まず判別されたパターンが１色であった場合（Ｓ１８１２にてＹＥＳ）、１色のパターンを３方向一致と入れ替えても、出力する画素数の変化はないので、カウント処理は行う必要がない。そのため、ここで処理を終了する。判別されたパターンが１色でなかった場合に（Ｓ１８１２にてＮＯ）、３方向一致しているかどうかの判断を行う（Ｓ１８１３）。ここで、現在処理しているブロックが画像の上端または左端のブロックであれば（Ｓ１８１３でＹＥＳ）、周囲にブロックが存在しない箇所があり、３方向一致しないのでここで処理を終了する。一方、上端または左端のブロックでない場合（Ｓ１８１３にてＮＯ）、隣または斜め上に配置されているブロックの第１色の画素値と現在処理しているブロックの第１色以外のそれぞれの画素値を比較する（Ｓ１８１４）。画素値を比較した結果、一致しなかった場合（Ｓ１８１５にてＮＯ）、ここで処理を終了する。また、比較した結果が全て一致した場合（Ｓ１８１５にてＹＥＳ）、３方向一致を示すカウンタに１を加算した後、（Ｓ１８１６）、処理を終了する。Ｓ１８１６の処理により、第２カウント手段を実現する。
【００８１】
［パターン入れ替え処理］
次に、上述した処理におけるパターン入れ替え処理（Ｓ１７０５）について、図１９を用いて詳細に説明する。以下の処理は、たとえば記憶部１０７等に記憶されたプログラムをＣＰＵ１０５が読み出し、実行する。まず処理が開始されると、Ｓ１７０２のカウント処理（図１８）によってカウントした結果を記憶部から読み出し、パターンを入れ替えた場合の合計データ削減量を計算する（Ｓ１９０１）。次に、パターンを入れ替えた場合のパターンごとのデータ増加量を計算する（Ｓ１９０２）。Ｓ１９０１およびＳ１９０２に置ける計算方法は上記に述べたとおりである。その後、Ｓ１９０１、Ｓ１９０２で計算した結果を比較する。ここで、合計データ削減量が入れ替えによるデータ増加量より大きくなるパターンがある場合（Ｓ１９０３でＹＥＳ）、２色または３色のパターン（パターンフラグ２〜Ｄ）の中からデータ増加量が最小となるパターンフラグを入れ替え対象パターンフラグとして選択する（Ｓ１９０４）。Ｓ１９０４で選択されたパターンは４色のパターン（パターンフラグＥ）として扱い、３方向一致処理と入れ替えを行い、入れ替える配置パターンを示す情報を記憶部に保持する（Ｓ１９０５）。ここで、Ｓ１９０４で選択されたパターンを示すフラグ（以下、パターン入れ替えフラグと称する）と、どの処理を追加したかを示すフラグ（以下、追加処理フラグと称する）を出力する（Ｓ１９０６）。これにより、フラグ出力手段を実現する。そして、本処理を終了する。一方、合計データ削減量がデータ増加量より大きくなるパターンがない場合（Ｓ１９０３にてＮＯ）、パターン入れ替えを行わず本処理を終了する。なお、Ｓ１９０３の処理により、第３判定手段を実現する。
【００８２】
［パターン入れ替え後の圧縮処理］
次に、上述した処理におけるパターン入れ替え後の圧縮処理（Ｓ１７０７）について、図２０を用いて詳細に説明する。ここでは、パターンを入れ替えることによって、画像データに対する圧縮率を向上させることができると判定された場合に、パターンの入れ替えを行うと決定し、その入れ替えによる割り当て後のパターンを用いて、圧縮する処理を示す。以下の処理は、たとえば記憶部１０７等に記憶されたプログラムをＣＰＵ１０５が読み出し、実行する。まず処理が開始されると、現在処理しているブロックが最初のブロックか判断し、最初のブロックでなければ（Ｓ２００１にてＮＯ）、現在処理しているブロックと記憶ブロックの画素値を比較する（Ｓ２００２）。ここで、記憶したブロックと画素値が一致した場合（Ｓ２００３にてＹＥＳ）、前のブロックと同じであることを示すパターンフラグ（Ｆ）に特定し（Ｓ２００４）、画素値の出力は省略し、パターンフラグを出力する（Ｓ２００５）。
【００８３】
一方、現在のブロックが最初のブロックであった場合（Ｓ２００１にてＹＥＳ）や、現在処理しているブロックと記憶ブロックの画素値が一致しなかった場合（Ｓ２００３にてＮＯ）は、次に、現在処理しているブロックのパターンフラグを特定する処理に移る。まず現在処理しているブロック内の全ての２画素の組み合わせの画素値を比較し（Ｓ２００７）する。そして、パターンを特定してパターンフラグを作成する（Ｓ２００８）。
【００８４】
その後、現在処理しているブロックの色数を判断する（Ｓ２００９）。現在処理しているブロックが１色のパターンである場合（Ｓ２０１０にてＹＥＳ）、第１色の色データ（画素値）とパターンフラグ（０）とを出力する（Ｓ２０１１）。また、１色のパターンでなかった場合（Ｓ２０１０にてＮＯ）、現在処理しているブロックが画像データ上端または左端のブロックであるかを判断する（Ｓ２０１４）。画像の上端または左端のブロックでなかった場合（Ｓ２０１４にてＮＯ）、現在処理しているブロックの座標２〜４の画素と、隣接または斜め上に配置されている３つの別のブロック（すなわち３方向のブロック）の第１色の色データとを比較する（Ｓ２０１５）。これにより、第２判定手段を実現する。ここで、３方向の画素値が一致した場合（Ｓ２０１６にてＹＥＳ）、当該処理対象ブロックの第１色の色データ（画素値）と、Ｓ１９０６で出力されたパターン入れ替えフラグを元に、３方向一致処理と入れ替えられたパターンを示すパターンフラグとを出力する（Ｓ２０１７）。
【００８５】
また、現在処理しているブロックが画像の上端または左端のブロックであった場合（Ｓ２０１４にてＹＥＳ）、またはＳ２０１６で３方向の画素値が一致しなかった場合（Ｓ２０１６にてＮＯ）、次のような処理を行う。まず、現在処理しているブロックのパターンがＳ１９０４で入れ替え対象として選択されたブロックかどうかの判断をする（Ｓ２０１８）。もし入れ替えられたパターンであった場合（Ｓ２０１８にてＹＥＳ）、現在処理しているブロック内の４画素の画素値を全て出力し（すなわち、各画素の色を、第１色の色データと、第２〜４色の色データとして出力し）、４色のパターンフラグ（Ｅ）を出力する（Ｓ２０１９）。
【００８６】
一方、現在処理しているブロックが入れ替えられたパターンでなかった場合（Ｓ２０１８にてＮＯ）、（リピート、１色、３方向一致以外の）１３種類のパターンのいずれに一致するか特定する（Ｓ２０２０）。そして、第１色の色データと、特定されたパターンに応じた第２〜４色の色データと、パターンフラグ（２〜Ｅ）とを出力する（Ｓ２０２１）。
【００８７】
このように上述の処理（Ｓ２０１１、Ｓ２０１７、Ｓ２０１９、Ｓ２０２１）を行った後、データの展開を行い（Ｓ２０１２）、展開ブロックを前のブロックとして記憶する（Ｓ２０１３）。そして、最後のブロックの処理が終わるまで、以上の処理を繰り返し（Ｓ２００６）、パターン入れ替え後の圧縮処理を終了する。
【００８８】
ここでは、通常の圧縮処理に加えリピート処理と３方向一致処理を加えた場合の圧縮処理を例に説明しているが、これに限るものではない。リピート処理や３方向一致処理とは異なった処理を追加しても良いし、追加処理が３つ以上あっても良い。３つ以上の処理を追加する場合は追加処理フラグのビット数を増やすことで対応できる。
【００８９】
［メモリ空間への書き込み構成］
次に、図２１に画像データのメモリ空間への書き込み例を示す。図２１に示すように、画像データを、パターン入れ替えフラグと追加処理フラグ、パターンフラグ、第１色、その他の色に分け、分散的にメモリ上へ格納している。メモリ空間への画像データの書き込みは通常の圧縮処理とほぼ同様であるが、本実施形態では、メモリ空間上のパターンフラグの前のアドレスに、パターン入れ替えフラグと追加処理フラグを書き込むことが異なる。
【００９０】
次に、圧縮処理と対になる展開処理を説明する。メモリ１０６上に図２１に示すように配置されている圧縮データの書き込み先頭アドレスをＤＭＡＣ２２１、２３１へ指定する。ここで圧縮データとは、パターン入れ替えフラグと追加処理フラグ、パターンフラグ、第１色、第２、３、４色の画素値を指す。パターン入れ替えフラグと追加パターンフラグを参照して、どのパターンを用いて圧縮処理を行ったか特定する。パターンの特定後の処理は前述した方法で展開が可能である。
【００９１】
本実施形態によれば、パターン入れ替えによる合計データ削減量を考慮し、２色または３色のパターンと３方向一致処理を入れ替えることで、配置パターン情報は４ビットのままで、通常の圧縮処理とリピート処理、３方向一致処理を組み合わせることが可能である。そして、パターン入れ替えにより、圧縮率が向上するか判断を行った上でパターンの入れ替え処理や入れ替えたパターンを用いた圧縮処理を行うので、確実に圧縮率を向上させることが可能となる。
【００９２】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2012054789.tif 000003
【図２】
2012054789.tif 000004
【図３】
2012054789.tif 000005
【図４】
2012054789.tif 000006
【図５】
2012054789.tif 000007
【図６】
2012054789.tif 000008
【図７】
2012054789.tif 000009
【図８】
2012054789.tif 000010
【図９】
2012054789.tif 000011
【図１０】
2012054789.tif 000012
【図１１】
2012054789.tif 000013
【図１２】
2012054789.tif 000014
【図１３】
2012054789.tif 000015
【図１４】
2012054789.tif 000016
【図１５】
2012054789.tif 000017
【図１６】
2012054789.tif 000018
【図１７】
2012054789.tif 000019
【図１８】
2012054789.tif 000020
【図１９】
2012054789.tif 000021
【図２０】
2012054789.tif 000022
【図２１】
2012054789.tif 000023