(57)【特許請求の範囲】
【請求項１】
画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して前記ブロック内の各画素の色を前記代表色に置き換え前記代表色の色情報を格納した代表色情報格納領域と前記代表色が適用される画素の前記ブロック内の位置を示す位置情報を格納した位置情報格納領域とを有する一定サイズの圧縮データを生成する画像処理装置であって、
所定数より少ない数の代表色を有する第１のブロックと、前記第１のブロックに隣接し前記所定数より多い数の代表色を有する第２のブロックとを認識する認識部と、
前記第２のブロックの前記所定数より多い数の代表色のうち特定の代表色の色情報を、前記第１のブロックの前記代表色情報格納領域に格納する色情報格納処理部と、
前記特定の代表色が適用される画素の前記第２のブロック内の位置を特定するための位置特定情報を、前記第１のブロックの前記位置情報格納領域に格納する位置情報格納処理部と、を有し、
前記第１のブロックの前記代表色情報格納領域は、２つ以上の代表色の色情報を格納可能な空き領域を含み、
前記空き領域には、前記特定の代表色の色情報と、前記第１のブロックの前記代表色情報格納領域に前記特定の代表色の色情報が格納されていることを認識するために用いられる色情報とが格納されることを特徴とする画像処理装置。
【請求項２】
前記位置情報は、前記ブロック内の複数の画素の位置にそれぞれ対応付けられ画素に適用される代表色を示す複数の代表色識別情報を含み、
前記位置特定情報には、前記第１のブロックの前記位置情報格納領域に格納される前記複数の代表色識別情報が用いられることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２のブロックの前記代表色情報格納領域には、前記特定の代表色を除く前記所定数の代表色の色情報が格納され、
前記第２のブロックの前記位置情報格納領域には、前記所定数の代表色が適用される各画素の前記第２のブロック内の位置を示す位置情報が格納されることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して前記ブロック内の各画素の色を前記代表色に置き換え前記代表色の色情報を格納した代表色情報格納領域と前記代表色が適用される画素の前記ブロック内の位置を示す位置情報を格納した位置情報格納領域とを有する一定サイズの圧縮データを生成する画像処理方法であって、
所定数より少ない数の代表色を有する第１のブロックと、前記第１のブロックに隣接し前記所定数より多い数の代表色を有する第２のブロックとを認識するステップ（ａ）と、
前記第２のブロックの前記所定数より多い数の代表色のうち特定の代表色の色情報を、前記第１のブロックの前記代表色情報格納領域に格納するとともに、前記特定の代表色が適用される画素の前記第２のブロック内の位置を特定するための位置特定情報を、前記第１のブロックの前記位置情報格納領域に格納するステップ（ｂ）と、を有し、
前記第１のブロックの前記代表色情報格納領域は、２つ以上の代表色の色情報を格納可能な空き領域を含み、
前記空き領域には、前記特定の代表色の色情報と、前記第１のブロックの前記代表色情報格納領域に前記特定の代表色の色情報が格納されていることを認識するために用いられる色情報とが格納されることを特徴とする画像処理方法。
【請求項５】
前記位置情報は、前記ブロック内の複数の画素の位置にそれぞれ対応付けられ画素に適用される代表色を示す複数の代表色識別情報を含み、
前記位置特定情報には、前記第１のブロックの前記位置情報格納領域に格納される前記複数の代表色識別情報が用いられることを特徴とする請求項４に記載の画像処理方法。
【請求項６】
前記第２のブロックの前記代表色情報格納領域には、前記特定の代表色を除く前記所定数の代表色の色情報が格納され、
前記第２のブロックの前記位置情報格納領域には、前記所定数の代表色が適用される各画素の前記第２のブロック内の位置を示す位置情報が格納されることを特徴とする請求項４または５に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを構成する画素の色を代表色に置き換えることにより画像データを圧縮する画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
プリンタ等のコスト競争が厳しい製品は、メモリにかかるコストを下げる必要がある。そのためには、画像データをより小さなサイズに圧縮することが効果的である。
【０００３】
画像データの圧縮方式としては、画像データを複数のブロックに分割し、各ブロックの画素の色を代表色に置き換えて画像データを圧縮する圧縮方式が知られている。この圧縮方式では、ブロックを構成する画素の色の中から、所定数以下の数の色が代表色として抽出され、ブロックを構成するすべての画素の色がいずれかの代表色に置き換えられる。このような構成によれば、画素数と同数の色情報を有するブロックが、所定数以下の数の代表色の色情報と、代表色が適用される画素のブロック内の位置を示す位置情報とに変換され、データサイズが低減される。
【０００４】
しかしながら、上記の圧縮方式では、ブロックを構成する画素の色が所定数以下の数の代表色に置き換えられるため、各ブロックの圧縮後のデータサイズを一定に維持することができるという利点がある一方で、画像の色再現性が低いという問題がある。たとえば、圧縮対象のブロックが５つの色を含み、代表色として４つ以下の色が抽出される場合、ブロックの圧縮後のデータは４つの代表色の色情報を有し、伸長処理後のデータにおいて５つの色を再現することができない。
【０００５】
この問題を解決するために、下記の特許文献１には、各ブロックを構成する画素の色数を確認し、色数が多いブロックについては、色情報を格納するデータ領域を大きくする技術が開示されている。しかしながら、この技術では、各ブロックの圧縮後のデータサイズが一定に維持されない。
【０００６】
また、下記の特許文献２には、代表色の数が所定数未満の場合、画素の色を代表色に置き換える圧縮処理を行ない、代表色の数が所定数以上の場合、非可逆圧縮を行う技術が開示されている。この技術によれば、圧縮率を設定可能な非可逆圧縮を用いることにより各ブロックの圧縮後のデータサイズが一定に維持される。しかしながら、この技術では、画像の色再現性を向上させる効果が期待できない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−２７５３９号公報
【特許文献２】特開２０００−３３３０１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、上述した課題に鑑みてなされたものである。したがって、本発明の目的は、画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して各画素の色を代表色に置き換えることにより画像データを圧縮する圧縮処理において、各ブロックの圧縮後のデータサイズを一定に維持しつつ、画像の色再現性を向上させることができる画像処理装置および画像処理方法を提供することである。
【課題を解決するための手段】
【０００９】
本発明の上記目的は、下記の手段によって達成される。
【００１０】
（１）画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して前記ブロック内の各画素の色を前記代表色に置き換え前記代表色の色情報を格納した代表色情報格納領域と前記代表色が適用される画素の前記ブロック内の位置を示す位置情報を格納した位置情報格納領域とを有する一定サイズの圧縮データを生成する画像処理装置であって、所定数より少ない数の代表色を有する第１のブロックと、前記第１のブロックに隣接し前記所定数より多い数の代表色を有する第２のブロックとを認識する認識部と、前記第２のブロックの前記所定数より多い数の代表色のうち特定の代表色の色情報を、前記第１のブロックの前記代表色情報格納領域に格納する色情報格納処理部と、前記特定の代表色が適用される画素の前記第２のブロック内の位置を特定するための位置特定情報を、前記第１のブロックの前記位置情報格納領域に格納する位置情報格納処理部と、を有し、前記第１のブロックの前記代表色情報格納領域は、２つ以上の代表色の色情報を格納可能な空き領域を含み、前記空き領域には、前記特定の代表色の色情報と、前記第１のブロックの前記代表色情報格納領域に前記特定の代表色の色情報が格納されていることを認識するために用いられる色情報とが格納されることを特徴とする画像処理装置。
【００１２】
（２）前記位置情報は、前記ブロック内の複数の画素の位置にそれぞれ対応付けられ画素に適用される代表色を示す複数の代表色識別情報を含み、前記位置特定情報には、前記第１のブロックの前記位置情報格納領域に格納される前記複数の代表色識別情報が用いられることを特徴とする上記（１）に記載の画像処理装置。
【００１３】
（３）前記第２のブロックの前記代表色情報格納領域には、前記特定の代表色を除く前記所定数の代表色の色情報が格納され、前記第２のブロックの前記位置情報格納領域には、前記所定数の代表色が適用される各画素の前記第２のブロック内の位置を示す位置情報が格納されることを特徴とする上記（１）または（２）に記載の画像処理装置。
【００１４】
（４）画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して前記ブロック内の各画素の色を前記代表色に置き換え前記代表色の色情報を格納した代表色情報格納領域と前記代表色が適用される画素の前記ブロック内の位置を示す位置情報を格納した位置情報格納領域とを有する一定サイズの圧縮データを生成する画像処理方法であって、所定数より少ない数の代表色を有する第１のブロックと、前記第１のブロックに隣接し前記所定数より多い数の代表色を有する第２のブロックとを認識するステップ（ａ）と、前記第２のブロックの前記所定数より多い数の代表色のうち特定の代表色の色情報を、前記第１のブロックの前記代表色情報格納領域に格納するとともに、前記特定の代表色が適用される画素の前記第２のブロック内の位置を特定するための位置特定情報を、前記第１のブロックの前記位置情報格納領域に格納するステップ（ｂ）と、を有し、前記第１のブロックの前記代表色情報格納領域は、２つ以上の代表色の色情報を格納可能な空き領域を含み、前記空き領域には、前記特定の代表色の色情報と、前記第１のブロックの前記代表色情報格納領域に前記特定の代表色の色情報が格納されていることを認識するために用いられる色情報とが格納されることを特徴とする画像処理方法。
【００１６】
（５）前記位置情報は、前記ブロック内の複数の画素の位置にそれぞれ対応付けられ画素に適用される代表色を示す複数の代表色識別情報を含み、前記位置特定情報には、前記第１のブロックの前記位置情報格納領域に格納される前記複数の代表色識別情報が用いられることを特徴とする上記（４）に記載の画像処理方法。
【００１７】
（６）前記第２のブロックの前記代表色情報格納領域には、前記特定の代表色を除く前記所定数の代表色の色情報が格納され、前記第２のブロックの前記位置情報格納領域には、前記所定数の代表色が適用される各画素の前記第２のブロック内の位置を示す位置情報が格納されることを特徴とする上記（４）または（５）に記載の画像処理方法。
【発明の効果】
【００１８】
本発明によれば、所定数より少ない数の代表色を有する第１のブロックの圧縮データに所定数より多い数の代表色を有する第２のブロックの代表色に関する情報が格納されるため、第２のブロックの圧縮データのサイズを増やすことなく、第２のブロックに対して所定数より多い数の代表色を適用することが可能となる。すなわち、画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して各画素の色を代表色に置き換えることにより画像データを圧縮する圧縮処理において、各ブロックの圧縮後のデータサイズを一定に維持しつつ、画像の色再現性を向上させることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態における画像処理装置を備えたプリンタの概略構成を示す構成図である。
【図２】図１に示されるプリンタにおける画像処理部の概略構成を示すブロック図である。
【図３】図２に示される画像処理部における圧縮モジュールの概略構成を示すブロック図である。
【図４】代表色圧縮を説明するための図である。
【図５】代表色圧縮により得られる圧縮データを説明するための図である。
【図６】図３に示される圧縮モジュールにより実行される圧縮処理の手順を示すフローチャートである。
【図７】２つの色を含むブロックの圧縮処理を説明するための図である。
【図８】ワークメモリに格納される代表色情報および位置情報をバックアップメモリに退避させる処理を説明するための図である。
【図９】５つの色を含むブロックの圧縮処理を説明するための図である。
【図１０】識別情報の上位ビットの値が変更された圧縮データを説明するための図である。
【図１１】５つの色を含むブロックの圧縮データを説明するための図である。
【図１２】図１に示されるデータ出力部により実行される伸長処理の手順を示すフローチャートである。
【図１３】本発明の第２の実施形態における圧縮処理の手順を示すフローチャートである。
【図１４】本発明の第２の実施形態における伸長処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００２１】
（第１の実施形態）
図１は、本発明の第１の実施形態における画像処理装置を備えたプリンタの概略構成を示すブロック図である。
【００２２】
プリンタ１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３、画像処理部１４、データ出力部１５、印刷部１６、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）制御部１７、およびホストＩ／Ｆ１８を含む。ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、画像処理部１４、データ出力部１５、Ｉ／Ｆ制御部１７、およびホストＩ／Ｆ１８は、バスを介して相互に接続されている。印刷部１６は、データ出力部１５に接続されている。
【００２３】
プリンタ１は、文書の印刷を指示するホストＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）２にネットワークを介して接続されており、ホストＰＣ２からの印刷指示に基づいて印刷を行う。なお、プリンタ１とホストＰＣ２とは、ネットワークを介することなく直接機器間で接続（ローカル接続）されていてもよい。
【００２４】
ＣＰＵ１１は、プログラムにしたがって上記各部の制御や各種の演算処理を実行する。ＲＯＭ１２は、各種プログラムおよび各種データを格納する。
【００２５】
ＲＡＭ１３は、作業領域として一時的にプログラムおよびデータを記憶する。ＲＡＭ１３は、ビットマップ形式の画像データ３０、および画像データ３０を圧縮して得られる圧縮済み画像データ４０を格納する。
【００２６】
画像処理部１４は、ビットマップ形式の画像データ３０に対して色変換およびスクリーン処理等の画像処理を実行する。また、画像処理部１４は、画像データ３０を圧縮してデータサイズが縮小されている圧縮済み画像データ４０を生成する。
【００２７】
データ出力部１５は、ＲＡＭ１３から圧縮済み画像データ４０を読み出してリアルタイムに伸長しつつ、印刷部１６に転送する。データ出力部１５は、印刷部１６における用紙の搬送速度等に応じて圧縮済み画像データ４０を伸長しつつ、印刷部１６に転送する。
【００２８】
印刷部１６は、電子写真式プロセス等の周知の作像プロセスを用いて、データ出力部１５から転送される画像データに基づく画像を用紙等の記録媒体に印刷する。
【００２９】
Ｉ／Ｆ制御部１７は、ホストＩ／Ｆ１８を制御する。ホストＩ／Ｆ１８は、ネットワークを介して他の機器と通信するためのインタフェースであり、イーサネット（登録商標）、トークンリング、ＦＤＤＩ（Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）等の規格が用いられる。
【００３０】
図２は、図１に示されるプリンタにおける画像処理部の概略構成を示すブロック図である。
【００３１】
画像処理部１４は、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）として構成されており、ＲｅａｄＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）回路１０１、画像処理モジュール１０２、圧縮モジュール１０３、およびＷｒｉｔｅＤＭＡ回路１０４を含む。
【００３２】
ＲｅａｄＤＭＡ回路１０１は、処理対象の画像データを取得する。ＲｅａｄＤＭＡ１０１は、ＲＡＭ１３に格納されているビットマップ形式の画像データ３０を所定ライン数のバンド単位で読み出し、画像処理モジュール１０２に渡す。
【００３３】
画像処理モジュール１０２は、画像データに対して画像処理を実行する。画像処理モジュール１０２は、ＲｅａｄＤＭＡ回路１０１から渡される１バンド分の画像データに対して、色変換処理、スクリーン処理、γ補正処理、および輪郭強調処理等の画像処理を実行する。
【００３４】
圧縮モジュール１０３は、画像処理済みの画像データを圧縮する。圧縮モジュール１０３は、画像処理モジュール１０２により画像処理された１バンド分の画像データを所定のブロック単位で圧縮する。
【００３５】
ＷｒｉｔｅＤＭＡ回路１０４は、圧縮済み画像データを出力する。ＷｒｉｔｅＤＭＡ回路１０４は、圧縮モジュール１０３により圧縮された１バンド分の画像データをＲＡＭ１３に書き戻す。
【００３６】
図３は、図２に示される画像処理部における圧縮モジュールの概略構成を示すブロック図である。
【００３７】
圧縮モジュール１０３は、入力バッファ１１０、代表色抽出回路１２０、ピクセル評価回路１３０、ワークメモリ１４０、バックアップメモリ１５０、代表色数判定回路１６０、データ制御回路１７０、および出力バッファ１８０を含む。
【００３８】
入力バッファ１１０は、所定数の画素のブロックを一時的に格納する。入力バッファ１１０には、画像データを分割して得られる８×８画素のブロック２００が入力され、８×８画素のブロック２００が格納される。
【００３９】
代表色抽出回路１２０は、入力バッファ１１０に格納される８×８画素のブロックから代表色を抽出する。代表色抽出回路１２０は、１つのブロックを構成する６４個の画素の色を認識し、出現頻度の高い順に４つ以下の代表色を抽出する。また、代表色抽出回路１２０は、８×８画素のブロックで使用される色の数（以下、「色数」と称する）を示す色数情報を、代表色数判定回路１６０に渡す。
【００４０】
ピクセル評価回路１３０は、８×８画素のブロックを構成する画素の色を評価する。ピクセル評価回路１３０は、８×８画素のブロックの各画素の色について、各色が最も類似している１つの代表色を４つの代表色の中から選定する。ピクセル評価回路１３０は、評価結果を代表色識別情報（以下、単に「識別情報」と称する）としてワークメモリ１４０に出力する。
【００４１】
ワークメモリ１４０は、代表色の色情報と識別情報とを格納する。ワークメモリ１４０は、代表色抽出回路１２０により抽出された代表色の色情報と、ピクセル評価回路１３０から出力される識別情報とを格納する。ワークメモリ１４０には、４つの色情報を格納するための格納領域と、６４個の識別情報を格納するための格納領域とが設けられている。なお、６４個の識別情報のセットを位置情報と称する。
【００４２】
バックアップメモリ１５０は、ワークメモリ１４０に格納される代表色の色情報と６４個の識別情報とを一時的に格納する。バックアップメモリ１５０にも、４つの色情報を格納するための格納領域と、６４個の識別情報を格納するための格納領域とが設けられている。
【００４３】
代表色数判定回路１６０は、８×８画素のブロックの色数に応じて、通常の圧縮処理を行うか、または、特殊処理を行うかを判断し、判断結果をデータ制御回路１７０に通知する。代表色数判定回路１６０は、代表色抽出回路１２０から渡される色数情報が示す色数が２以下の場合、特殊処理を行うと判断する。
【００４４】
データ制御回路１７０は、上記各部の動作および各種情報の移動についての制御を行う。データ制御回路１７０は、ワークメモリ１４０に格納されているデータをバックアップメモリ１５０に渡す。また、データ制御回路１７０は、ワークメモリ１４０およびバックアップメモリ１５０に格納されているデータを出力バッファ１８０に渡す。
【００４５】
出力バッファ１８０は、外部に出力されるデータを一時的に格納する。出力バッファ１８０は、ワークメモリ１４０およびバックアップメモリ１５０から渡されるデータを圧縮データ３００として格納する。
【００４６】
次に、図４および図５を参照して、代表色圧縮について説明する。
【００４７】
図４（Ａ）は、８×８画素のブロックの一例を示す図である。図４（Ａ）に示されるブロック２００は、７つの色を含み、ブロック２００を構成する６４個の画素のそれぞれは、７つの色のうちいずれか１つの色を有する。代表色圧縮では、まず、７つの色の出現頻度（画素数）にしたがって、７つの色の中から４つの色が代表色として抽出される（図４（Ｂ）参照）。そして、代表色として抽出されない残りの３つの色の画素（図４（Ｃ）において黒色で塗り潰された画素）については、４つの代表色のうち最も近い１つの代表色に画素の色が置き換えられる（図４（Ｄ）参照）。
【００４８】
図５は、代表色圧縮により得られる圧縮データを説明するための図である。圧縮データ３００は、代表色情報と位置情報とを含む。代表色情報および位置情報は、圧縮データの代表色情報格納領域および位置情報格納領域にそれぞれ格納されている。代表色情報は、４つの代表色の色情報を含み、各色情報は、たとえば、ＣＭＹＫの各８ビットの情報からなる３２ビットの情報である。位置情報は、６４個の画像に適用される代表色をそれぞれ示す６４個の識別情報を含み、識別情報には、対応する画素に適用される代表色を示す２ビットの数値が設定される。たとえば、図４（Ａ）に示されるブロックの圧縮データでは、４つの代表色をなす代表色１〜代表色４に対して「００」、「０１」、「１０」、および「１１」の２ビットの数値がそれぞれ割り当てられ、６４個の識別情報に対して、上記の２ビットの数値のいずれか１つがそれぞれ設定される。
【００４９】
次に、圧縮モジュール１０３の動作について説明する。図６は、圧縮モジュールにより実行される圧縮処理の手順を示すフローチャートである。圧縮処理では、１バンド分の画像データ内に隣接して配置される８×８画素のブロックが順次に処理される。
【００５０】
まず、対象ブロックから色が抽出される（ステップＳ１０１）。本実施形態では、代表色抽出回路１２０により、入力バッファ１１０に格納されている８×８画素のブロックから６４個の画素の色が抽出される。
【００５１】
続いて、対象ブロックの色数が２以下であるか否かが判断される（ステップＳ１０２）。本実施形態では、代表色判定回路１６０により、ステップＳ１０１に示す処理で抽出された色の数が２以下であるか否かが判断される。
【００５２】
色数が２以下でないと判断される場合（ステップＳ１０２：ＮＯ）、対象ブロックに対して通常の代表色圧縮処理が実施される（ステップＳ１０３）。本実施形態では、入力バッファ１１０に格納されている８×８画素のブロックに対して一般的な代表色圧縮が施され、４つの色情報と、６４個の識別情報とが生成される。４つの色情報および６４個の識別情報は、代表色抽出回路１２０およびピクセル評価回路１３０によりワークメモリ１４０の所定の格納領域にそれぞれ格納される。
【００５３】
続いて、圧縮データが出力され、対象ブロックが１つ進められる（ステップＳ１０４）。本実施形態では、ステップＳ１０３に示す処理で生成された４つの色情報と６４個の識別情報とがワークメモリ１４０から出力バッファ１８０に渡され、出力バッファ１８０から圧縮データとして出力される。そして、入力バッファ１１０に新たに格納される８×８画素のブロックの処理に移行する。
【００５４】
一方、ステップＳ１０２に示す処理で、対象ブロックの色数が２以下であると判断される場合（ステップＳ１０２：ＹＥＳ）、対象ブロックに対して通常の代表色圧縮処理が実施される（ステップＳ１０５）。本実施形態では、８×８画素のブロックに対して一般的な代表色圧縮処理が施され、ワークメモリ１４０の所定の格納領域に２つの色情報と６４個の識別情報とが格納される。
【００５５】
図７（Ａ）は、２つの色を含む８×８画素のブロックの一例を示す図であり、図７（Ｂ）は、図７（Ａ）に示されるブロックに適用される代表色情報および位置情報を示す図である。２つの色を含む８×８画素のブロック２１０からは２つの代表色が抽出される。２つの代表色が抽出されるブロック２１０については、２つの代表色１，２に対して「００」および「０１」の数値がそれぞれ割り当てられ、６４個の画素に対して「００」および「０１」のいずれか一方の数値が識別情報として設定される。２つの色情報と６４個の識別情報とは、ワークメモリ１４０の所定の格納領域に格納される。
【００５６】
続いて、圧縮データがバックアップメモリ１５０に退避される（ステップＳ１０６）。本実施形態では、ステップＳ１０５に示す処理で生成された対象ブロックの２つの色情報と６４個の識別情報とが、データ制御回路１７０によりワークメモリ１４０からバックアップメモリ１５０に渡される（図８参照）。上述したとおり、バックアップメモリ１５０には４つの色情報を格納するための格納領域が設けられており、２つの色情報が渡される場合、代表色３および代表色４の色情報を格納するための領域は空き領域となる。
【００５７】
続いて、後続ブロックから色が抽出される（ステップＳ１０７）。本実施形態では、ステップＳ１０６に示す処理で圧縮処理が施されたブロックに続いて入力バッファ１１０に格納される新たなブロックから画素の色が抽出される。そして、後続ブロックの色数が５以上であるか否かが判断される（ステップＳ１０８）。
【００５８】
後続ブロックの色数が５未満であると判断される場合（ステップＳ１０８：ＮＯ）、対象ブロックの圧縮データが出力され、対象ブロックが１つ進められる（ステップＳ１０９）。本実施形態では、ステップＳ１０６に示す処理でバックアップメモリ１５０に退避された２つの色情報と６４個の識別情報とが、出力バッファ１８０に渡され、出力バッファ１８０から出力される。なお、圧縮データのサイズを一定に維持する見地から、圧縮データの代表色情報格納領域の代表色３，４の色情報を格納するための領域には、印刷結果に影響を与えない情報が格納される。
【００５９】
一方、ステップＳ１０８に示す処理で、後続ブロックの色数が５以上であると判断される場合（ステップＳ１０８：ＹＥＳ）、後続ブロックの代表色５の色情報が、対象ブロックの代表色４の色情報を格納するための格納領域に格納される（ステップＳ１１０）。本実施形態では、まず、後続ブロックにおける色の出現頻度にしたがって、５以上の色の中から５つの代表色が抽出される。そして、バックアップメモリ１５０に設けられている、対象ブロックの代表色４の色情報を格納するための格納領域に、代表色５の色情報が格納される。このとき、対象ブロックの代表色３の色情報を格納するための格納領域には、対象ブロックの代表色１の色情報と同一の色情報が格納される。
【００６０】
図９（Ａ）は、５つの色を含む８×８画素のブロックの一例を示す図であり、図９（Ｂ）は、図９（Ａ）に示されるブロックに適用される代表色情報および位置情報を示す図である。５つの色を含む８×８画素のブロック２２０からは５つの代表色が抽出される。しかしながら、５つの代表色が抽出されるブロック２１０については、４つの代表色１〜４に対して「００」、「０１」、「１０」、および「１１」の数値がそれぞれ割り当てられる一方、代表色５に対しては数値が割り当てられない。また、ワークメモリ１４０には、代表色１〜４の色情報を格納するための領域のみが設けられており、代表色５の色情報を格納するための格納領域は設けられていない。ステップＳ１１０に示す処理では、ワークメモリ１４０に格納領域が設けられていない代表色５の色情報が、バックアップメモリ１５０に設けられている、２つの代表色１，２を有する対象ブロックの代表色４の色情報を格納するための格納領域に格納される。
【００６１】
なお、図９（Ｃ）に示されるとおり、５つの色を含むブロック２２０は、図７（Ａ）に示される２つの色を含むブロック２１０に隣接して配置されている。２つのブロック２１０，２２０は、図９（Ｃ）に示される矢印の向きに順次に圧縮される。このような画素の配列は、たとえば、スキャナにより読み込まれた画像の下地部分と画像部分との境界部において見受けられる。
【００６２】
続いて、対象ブロックの６４個の識別情報のうち、後続ブロックの代表色５が適用される画素の位置と同一の位置の画素に対応付けられている識別情報のＢｉｔ１が「１」に設定される（ステップＳ１１１）。具体的には、まず、後続ブロックにおいて代表色５が適用される画素の位置が抽出される。そして、バックアップメモリ１５０に格納されている、対象ブロックの６４個の識別情報のうち、抽出された画素の位置と同一の位置の画素に対応付けられている識別情報について、上位ビットの値が「０」から「１」に変更される。すなわち、識別情報の数値「０１」が「１１」に変更され、数値「００」が「１０」に変更される。
【００６３】
図１０は、識別情報の上位ビットの値が変更された対象ブロックの圧縮データを説明するための図である。上述したとおり、２つの代表色１，２を有する対象ブロックについては、識別情報として「００」および「０１」の２つが用いられる（図７（Ｂ）参照）。圧縮データ３１０では、６４個の識別情報のうち、図９（Ｂ）に示されるブロックにおいて代表色５が適用される７つの画素の位置と同一位置の画素に対応付けられている７つの識別情報について、識別情報の上位ビットの値が「１」に変更されている（図１０において太枠で囲まれる画素を参照）。また、上述したとおり、対象ブロックの圧縮データにおける代表色４の色情報を格納するための領域には、後続ブロックの代表色５の色情報が格納されている。このような構成によれば、後述する伸長処理において、対象ブロックの識別情報の上位ビットの値を参照して、後続ブロックにおいて代表色５が適用される画素の位置を特定することが可能になる。
【００６４】
続いて、２つのブロックの圧縮データが順次に出力され、対象ブロックが２つ進められる（ステップＳ１１２）。本実施形態では、バックアップメモリ１５０に格納されている対象ブロックの圧縮データ（図１０参照）と、ワークメモリ１４０に格納されている後続ブロックの圧縮データとが順次に出力される。対象ブロックの圧縮データには、後続ブロックの代表色５に関する情報が含まれている。
【００６５】
図１１は、後続ブロックの圧縮データを説明するための図である。圧縮データ３２０は、代表色１〜４の色をそれぞれ示す４つの色情報と、６４個の識別情報とを含む。圧縮データ３２０では、代表色５が適用されるべき画素（図１１において太枠で囲まれる画素）については、代表色１〜４の中から代表色５に最も近い１つの代表色が選定され、選定された代表色を示す識別情報が設定される。このような構成によれば、後述する伸長処理において、たとえば、画像が形成される用紙の向きとの関係により圧縮データの９０度回転が必要となり、圧縮データから５つの色を含む伸長データを生成できない場合でも、圧縮データから４つの色を含む伸長データを生成することができる。
【００６６】
続いて、最終ブロックまで圧縮が完了したか否かが判断される（ステップＳ１１３）。たとえば、１バンド分の画像データを構成するすべてのブロックについて、圧縮処理が完了したか否かが判断される。最終ブロックまで圧縮が完了していないと判断される場合（ステップＳ１１３：ＮＯ）、ステップＳ１０１の処理に戻る。一方、最終ブロックまで圧縮が完了したと判断される場合（ステップＳ１１３：ＹＥＳ）、処理が終了される。
【００６７】
以上のとおり、図６に示されるフローチャートの処理によれば、対象ブロックの色数が２以下であり、かつ、後続ブロックの色数が５以上であることが認識される場合、後続ブロックについて、５つの代表色が抽出される。そして、代表色５の色情報が、対象ブロックの圧縮データの代表色情報格納領域に格納される。加えて、対象ブロックの圧縮データの位置情報格納領域に、後続ブロックにおいて代表色５が適用される画素の位置を特定するための位置特定情報が格納される。
【００６８】
このような構成によれば、後述する伸長処理において、対象ブロックの圧縮データに含まれる情報を利用して、後続ブロックの伸長データに５つの色を適用することが可能になる。たとえば、図１０および図１１に示される圧縮データ３１０，３２０から、図９（Ａ）に示されるような５つの色を含む伸長データを生成することができる。
【００６９】
以上のとおり、本実施形態によれば、後続ブロックの圧縮データのサイズを増やすことなく、後続ブロックに対して５つの代表色を適用することが可能になる。すなわち、画素のブロックの圧縮後のデータサイズを一定に維持しつつ、画像の色再現性を向上することができる。
【００７０】
なお、上述した実施形態では、専用のハードウエア回路により圧縮処理が行われた。しかしながら、圧縮処理は、プリンタ１のＲＯＭ１２等の記憶部にプログラムとして記憶され、ＣＰＵ１１によって実行されてもよい。
【００７１】
次に、図１２を参照して、圧縮データを伸長する伸長処理について説明する。
【００７２】
図１２は、データ出力部により実行される伸長処理の手順を示すフローチャートである。伸長処理では、圧縮処理と同じ順序で各ブロックの圧縮データが順次に処理される。
【００７３】
まず、対象ブロックから代表色の色情報が読み出され、代表色１の色情報と代表色３の色情報とが同一であるか否かが判断される（ステップＳ２０１，Ｓ２０２）。本実施形態では、圧縮データに含まれる４つ以下の色情報のうち、代表色１の色情報と代表色３の色情報とが同一であるか否かが判断される。
【００７４】
代表色１の色情報と代表色３の色情報とが同一でないと判断される場合（ステップＳ２０２：ＮＯ）、対象ブロックに対して通常の伸長処理が実施される（ステップＳ２０３）。本実施形態では、対象ブロックの圧縮データに対して一般的な伸長処理が施され、伸長データが生成される。そして、伸長データが出力され、対象ブロックが１つ進められる（ステップＳ２０４）。
【００７５】
一方、ステップＳ２０２に示す処理で、代表色１の色情報と代表色３の色情報とが同一であると判断される場合（ステップＳ２０２：ＹＥＳ）、識別情報のＢｉｔ０の値に応じて代表色１と代表色２を適用しつつ、伸長処理が実施される（ステップＳ２０５）。たとえば、識別情報が「００」または「１０」である画素については代表色１が適用され、識別情報が「０１」または「１１」である画素については代表色２が適用され、伸長処理が実施される。その結果、２つの色を含む伸長データが生成される。伸長データは、データ出力部１５に設けられた出力バッファ（不図示）に一時的に格納される。
【００７６】
続いて、後続ブロックに対して伸長処理が実施される（ステップＳ２０６）。本実施形態では、後続ブロックの圧縮データに基づいて通常の伸長処理が施され、４つの代表色を有する伸長データが生成される。
【００７７】
続いて、対象ブロックの６４個の画素の中から１つの画素が選択され、選択された画素のＢｉｔ１が「１」であるか否かが判断される（ステップＳ２０７）。本実施形態では、ステップＳ２０５に示す処理で伸長処理が施された圧縮データに含まれる６４個の画素の中から１つの画素が選択され、選択された画素に対応付けられている識別情報の上位ビットの値が「１」であるか否かが判断される。
【００７８】
識別情報のＢｉｔ１が「１」でないと判断される場合（ステップＳ２０７：ＮＯ）、ステップＳ２０９の処理に移行する。一方、識別情報のＢｉｔ１が「１」であると判断される場合（ステップＳ２０７：ＹＥＳ）、後続ブロックの対応する位置の画素に、対象ブロックの代表色４（すなわち、後続ブロックの代表色５）が適用（上書き）される（ステップＳ２０８）。その結果、ステップＳ２０６に示す処理で生成された後続ブロックの伸長データの１つの画素の色が代表色５に変更される。
【００７９】
続いて、対象画素が１つ進められ、最終画素まで評価が完了したか否かが判断される（ステップＳ２０９，Ｓ２１０）。最終画素まで評価が完了していないと判断される場合（ステップＳ２１０：ＮＯ）、ステップＳ２０７の処理に戻る。一方、最終画素まで評価が完了したと判断される場合（ステップＳ２１０：ＹＥＳ）、２つのブロックの伸長データが順次に出力され、対象ブロックが２つ進められる（ステップＳ２１１）。
【００８０】
そして、最終ブロックまで伸長処理が完了したか否かが判断される（ステップＳ２１２）。最終ブロックまで伸長処理が完了していないと判断される場合（ステップＳ２１２：ＮＯ）、ステップＳ２０１の処理に戻る。一方、最終ブロックまで伸長処理が完了したと判断される場合（ステップＳ２１２：ＹＥＳ）、処理が終了される。
【００８１】
以上のとおり、図１２に示されるフローチャートの処理によれば、まず、対象ブロックの代表色１と代表色３とが同一色であることが認識されることにより、対象ブロックの圧縮データに後続ブロックの代表色５に関する情報が含まれていることが認識される。そして、対象ブロックの位置情報格納領域に格納されている６４個の識別情報の上位ビットの値が順次に確認され、上位ビットの値が「１」である画素が認識される場合、後続ブロックの対応する位置の画素の色が代表色５に変更される。その結果、５つの色を含む後続ブロックの伸長データが生成される。たとえば、図１０および図１１に示される圧縮データ３１０，３２０から、図９（Ａ）に示されるような５つの色を含む伸長データが生成される。
【００８２】
なお、伸長処理は、プリンタ１のＲＯＭ１２等の記憶部にプログラムとして記憶され、ＣＰＵ１１によって実行されてもよい。
【００８３】
以上のとおり、本実施形態によれば、画像データを複数のブロックに分割して得られる各ブロックから代表色を抽出して各画素の色を代表色に置き換えることにより画像データを圧縮する圧縮処理において、圧縮データのサイズを増やすことなく、５つの代表色を適用することが可能となる。すなわち、本実施形態によれば、各ブロックの圧縮後のデータサイズを一定に維持しつつ、画像の色再現性を向上させることができる。とりわけ、下地部分と画像部分の境界部のように、色調が大きく変わり色数が増加するエッジ部分の色表現性を向上させることができる。
【００８４】
また、本実施形態によれば、圧縮データの代表色１の色情報と代表色３の色情報とを同一にすることにより、対象ブロックの圧縮データに後続ブロックの情報が含まれることが認識される。したがって、対象ブロックの圧縮データに後続ブロックの情報が含まれていることを示す別途の情報を設ける必要がなく、圧縮データのサイズを増やすことなく必要な情報が追加される。
【００８５】
また、本実施形態では、２ビットの識別情報の上位ビットの値を利用して、後続ブロックにおける代表色５が適用される画素の位置が特定される。したがって、代表色５が適用される画素の位置を特定するための別途の情報を設ける必要がなく、圧縮データのサイズを増やすことなく必要な情報が追加される。
【００８６】
（第２の実施形態）
第１の実施形態では、２つ以下の色を含むブロックの後に５つ以上の色を含むブロックが続いた場合について述べた。本実施形態では、５つ以上の色を含むブロックの後に２つ以下の色を含むブロックが続く場合について述べる。
【００８７】
図１３は、本発明の第２の実施形態における圧縮処理の手順を示すフローチャートである。
【００８８】
まず、対象ブロックから色が抽出され、対象ブロックの色数が５以上であるか否かが判断される（ステップＳ３０１，Ｓ３０２）。色数が５以上でないと判断される場合（ステップＳ３０２：ＮＯ）、通常の代表色圧縮処理が実施される（ステップＳ３０３）。そして、圧縮データが出力され、対象ブロックが１つ進められる（ステップＳ３０４）。
【００８９】
一方、ステップＳ３０２に示す処理で、色数が５以上であると判断される場合（ステップＳ３０２：ＹＥＳ）、後続ブロックから色が抽出される（ステップＳ３０５）。そして、後続ブロックの色数が２以下であるか否かが判断される（ステップＳ３０６）。
【００９０】
後続ブロックの色数が２以下でないと判断される場合（ステップＳ３０６：ＮＯ）、対象ブロックに対して通常の代表色圧縮処理が実施される（ステップＳ３０７）。そして、圧縮データが出力され、対象ブロックが１つ進められる（ステップＳ３０８）。
【００９１】
一方、後続ブロックの色数が２以下であると判断される場合（ステップＳ３０６：ＹＥＳ）、後続ブロックに対して通常の代表色圧縮処理が実施される（ステップＳ３０９）。本実施形態では、対象ブロックに対して圧縮処理を施す前に、後続ブロックに対して圧縮処理が施される。その結果、６４個の画素に「００」または「０１」の識別情報が設定されている後続ブロックの圧縮データが生成される。
【００９２】
続いて、後続ブロックの代表色４の色情報を格納するための格納領域に、対象ブロックの代表色５の色情報が格納される（ステップＳ３１０）。
【００９３】
続いて、対象ブロックを構成する６４個の画素の中から１つの画素が選択され、画素の色が代表色５であるか否かが判断される（ステップＳ３１１）。画素の色が代表色５でないと判断される場合（ステップＳ３１１：ＮＯ）、画素の色が代表色１〜４のいずれか１つの色に置き換えられる（ステップＳ３１２）。
【００９４】
一方、画素の色が代表色５であると判断される場合（ステップＳ３１１：ＹＥＳ）、まず、代表色５の画素の色が代表色１〜４のいずれか１つの色に置き換えられる（ステップＳ３１３）。そして、後続ブロックの対応する位置の画素に対応付けられている識別情報のＢｉｔ１が「１」に変更される（ステップＳ３１４）。
【００９５】
続いて、対象画素が１つ進められ、最終画素まで評価が完了したか否かが判断される（ステップＳ３１５，Ｓ３１６）。最終画素まで評価が完了していないと判断される場合（ステップＳ３１６：ＮＯ）、ステップＳ３１１の処理に戻る。
【００９６】
一方、最終画素まで評価が完了したと判断される場合（ステップＳ３１６：ＹＥＳ）、２つのブロックの圧縮データが順次に出力される（ステップＳ３１７）。後に出力される圧縮データには、先に出力される圧縮データの代表色５に関する情報が含まれている。
【００９７】
そして、最終ブロックまで圧縮が完了したか否かが判断される（ステップＳ３１８）。最終ブロックまで圧縮が完了していないと判断される場合（ステップＳ３１８：ＮＯ）、ステップＳ３０１の処理に戻る。一方、最終ブロックまで圧縮が完了したと判断される場合（ステップＳ３１８：ＹＥＳ）、処理が終了される。
【００９８】
以上のとおり、図１３に示されるフローチャートの処理によれば、対象ブロックの色数が５以上であり、かつ、後続ブロックの色数が２以下であることが認識される場合、まず、後続ブロックに対して圧縮処理が施される。そして、対象ブロックの代表色５の色情報が、後続ブロックの圧縮データの代表色情報格納領域に格納される。加えて、後続ブロックの圧縮データの位置情報格納領域に、対象ブロックにおいて代表色５が適用される画素の位置を特定するための位置特定情報が格納される。
【００９９】
図１４は、本実施形態における伸長処理の手順を示すフローチャートである。
【０１００】
まず、後続ブロックから代表色の色情報が読み出される（ステップＳ４０１）。ステップＳ４０２〜Ｓ４０４に示す処理は、図１２のステップＳ２０２〜Ｓ２０４に示す処理と同様であるため、説明は省略する。
【０１０１】
ステップＳ４０５に示す処理では、対象ブロックに対して通常の伸長処理が実施される（ステップＳ４０５）。そして、後続ブロックに対して伸長処理が実施される（ステップＳ４０６）。
【０１０２】
続いて、後続ブロックの６４個の画素の中から１つの画素が選択され、選択された画素のＢｉｔ１が「１」であるか否かが判断される（ステップＳ４０７）。
【０１０３】
識別情報のＢｉｔ１が「１」でないと判断される場合（ステップＳ４０７：ＮＯ）、ステップＳ４０９の処理に移行する。一方、識別情報のＢｉｔ１が「１」であると判断される場合（ステップＳ４０７：ＹＥＳ）、対象ブロックの対応する位置の画素に後続ブロックの代表色４（すなわち、対象ブロックの代表色５）が適用される（ステップＳ４０８）。ステップＳ４０９〜Ｓ４１２に示す処理は、図１２のステップＳ２０９〜Ｓ２１２に示す処理と同様であるため、説明は省略する。
【０１０４】
以上のとおり、図１４に示されるフローチャートの処理によれば、後続ブロックの圧縮データに含まれる情報に基づいて、５つの色を含む対象ブロックの伸長データが生成される。
【０１０５】
（第３の実施形態）
本実施形態は、第１の実施形態と第２の実施形態とを組み合わせて実行する実施形態である。
【０１０６】
本実施形態の圧縮処理では、図６に示されるフローチャートの処理と図１３に示されるフローチャートの処理とが組み合わされる。また、伸長処理では、図１２に示されるフローチャートの処理と図１４に示されるフローチャートの処理とが組み合わされる。
【０１０７】
この場合、対象ブロックの圧縮データの代表色４の色情報を格納するための領域に格納されている色情報が、直前のブロックの代表色５の色情報であるか、または、直後のブロックの代表色５の色情報であるかを区別するために、対象ブロックの代表色３の色情報を格納するための格納領域に格納される色情報が利用される。具体的には、代表色３の色情報が代表色１の色情報と同一である場合、たとえば、対象ブロックの代表色情報格納領域には、直後のブロックの代表色５の色情報が格納されていることを示し、代表色３の色情報が代表色２の色情報と同一の色情報である場合、対象ブロックの代表色情報格納領域には、直前のブロックの代表色５の色情報が格納されていることを示す。
【０１０８】
このような構成によれば、２つ以下の色を含むブロックと５つ以上の色を含むブロックの前後関係に関係なく、隣接する一対のブロックを効率良く利用して処理を行うことが可能になる。
【０１０９】
（第４の実施形態）
隣接する一対のブロックの圧縮データを用いて５つの色を含む伸長データを生成する処理は、圧縮処理における２つのブロックの並びと伸長処理における２つのブロックの並びとが同一の場合に実行される。たとえば、画像データが９０度回転して出力される場合、特定のブロックに格納されている代表色５に関する情報が参照されることなく、４つの代表色を用いて伸長データが生成される。
【０１１０】
本実施形態は、ブロックを１８０度回転して出力する実施形態である。本実施形態では、図６に示されるフローチャートの処理により得られる圧縮データの伸長処理として、図１４に示されるフローチャートの処理が実行される。一方、図１３に示されるフローチャートの処理により得られる圧縮データの伸長処理として、図１２に示されるフローチャートの処理が実行される。
【０１１１】
このような構成によれば、たとえば、画像データを１８０度回転して出力する場合にも画像の色再現性を向上させることができる。
【０１１２】
本発明は、上記した実施形態のみに限定されるものではなく、特許請求の範囲内において、種々改変することができる。
【０１１３】
たとえば、上記実施形態では、８×８画素のブロックが圧縮モジュールに順次に入力され、各ブロックに対して圧縮処理が順次に施された。しかしながら、本実施形態とは異なり、たとえば、代表色抽出回路やワークメモリを２つ設け、２つのブロックが並列的に処理されてもよい。
【０１１４】
また、上記実施形態では、８×８画素のブロックから４つ以下の代表色が抽出された。しかしながら、ブロックから抽出される代表色の数は４つ以下に限定されるものではない。また、隣接する一対のブロックに適用される代表色の数もそれぞれ２つと５つに限定されるものではない。
【０１１５】
また、上記実施形態では、画像処理装置を備えるプリンタを例に挙げて説明した。しかしながら、本発明の画像処理装置は、ＭＦＰ（Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）や複写機に備えられてもよい。
【符号の説明】
【０１１６】
１  プリンタ、
１１  ＣＰＵ、
１２  ＲＯＭ、
１３  ＲＡＭ、
１４  画像処理部、
１５  データ出力部、
１６  印刷部、
１７  Ｉ／Ｆ制御部、
１８  ホストＩ／Ｆ、
２  ホストＰＣ、
１０１  ＲｅａｄＤＭＡ回路、
１０２  画像処理モジュール、
１０３  圧縮モジュール、
１０４  ＷｒｉｔｅＤＭＡ回路、
１１０  入力バッファ、
１２０  代表色抽出回路
１３０  ピクセル評価回路、
１４０  ワークメモリ、
１５０  バックアップメモリ、
１６０  代表色数判定回路、
１７０  データ制御回路、
１８０  出力バッファ、
２００  ８×８画素のブロック、
３００  圧縮データ。
【図１】
0005549434.tif 000002
【図２】
0005549434.tif 000003
【図３】
0005549434.tif 000004
【図４】
0005549434.tif 000005
【図５】
0005549434.tif 000006
【図６】
0005549434.tif 000007
【図７】
0005549434.tif 000008
【図８】
0005549434.tif 000009
【図９】
0005549434.tif 000010
【図１０】
0005549434.tif 000011
【図１１】
0005549434.tif 000012
【図１２】
0005549434.tif 000013
【図１３】
0005549434.tif 000014
【図１４】
0005549434.tif 000015