(57)【特許請求の範囲】
【請求項１】
処理対象の画像を複数の領域に分割し、分割した領域毎に代表色を抽出し、領域内の各ピクセルを、抽出した代表色のいずれかに割り当てて圧縮する画像圧縮方式を用いて、前記画像を圧縮して圧縮データを生成する圧縮部と、前記圧縮データを伸張して出力画像を生成する伸張部と、を備える画像処理装置において、
前記圧縮部は、前記画像を圧縮する際に、各々の領域で抽出した代表色の数と予め定めた代表色数とを比較し、前記抽出した代表色の数が前記代表色数を超える所定の領域に対して、前記所定の領域を特定する情報と、前記抽出した代表色から外れた色の所定のピクセルを特定する情報と、前記所定のピクセルの元の色を特定する情報と、を含む減色情報を生成して可逆圧縮すると共に、前記所定の領域の数を第１のカウンタでカウントし、前記第１のカウンタのカウント値が予め定めたカウント閾値を超える場合は、前記減色情報のサイズと予め定めたサイズ閾値とを比較し、前記減色情報のサイズが前記サイズ閾値以下の場合は、前記画像の圧縮データと可逆圧縮した減色情報とを出力し、
前記伸張部は、前記画像の圧縮データと前記可逆圧縮した減色情報とを伸張した後、前記所定の領域の前記所定のピクセルの色を前記元の色に置き換えて前記画像を復元する、
ことを特徴とする画像処理装置。
【請求項２】
前記圧縮部は、更に、前記画像の圧縮データに対して回転処理が適用されるかを判断し、前記減色情報のサイズが前記サイズ閾値以下であり、かつ、前記画像の圧縮データに対して回転処理が適用されない場合は、前記画像の圧縮データと前記可逆圧縮した減色情報とを出力する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記圧縮部は、前記減色情報のサイズが前記サイズ閾値を超えるか、若しくは、前記画像の圧縮データに対して回転処理が適用される場合は、前記画像の圧縮データと前記可逆圧縮した減色情報とを用いて、前記代表色数に１を加算した新たな代表色数に基づく圧縮データを生成して出力する、
ことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記圧縮部は、更に、前記所定の領域に対して、前記抽出した代表色の数と前記代表色数に１を加算した代表色数とを比較し、前記抽出した代表色の数が前記１を加算した代表色数を超える領域の数を第２のカウンタでカウントし、前記第１のカウンタが前記カウント閾値を超え、かつ、前記第２のカウンタのカウント値が予め定めたカウント閾値を超える場合は、前記画像の圧縮データと前記可逆圧縮した減色情報とを用いて、前記代表色数に２を加算した新たな代表色数に基づく圧縮データを生成して出力する、
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記圧縮部は、更に、前記抽出した代表色の数が前記代表色数以下となる領域に対して、前記抽出した代表色の数と前記代表色数から１を減算した代表色数とを比較し、前記抽出した代表色の数が前記１を減算した代表色数以下となる領域の数を第３のカウンタでカウントし、前記第１のカウンタのカウント値が前記カウント閾値以下であり、かつ、前記第３のカウンタのカウント値が予め定めたカウント閾値以上の場合は、前記画像の圧縮データと前記可逆圧縮した減色情報とを用いて、前記代表色数から１を減算した新たな代表色数に基づく圧縮データを生成して出力する、
ことを特徴とする請求項１又２に記載の画像処理装置。
【請求項６】
処理対象の画像を複数の領域に分割し、分割した領域毎に代表色を抽出し、領域内の各ピクセルを、抽出した代表色のいずれかに割り当てて圧縮する画像圧縮方式を用いて、前記画像を圧縮して圧縮データを生成し、前記圧縮データを伸張して出力画像を生成する装置における画像処理方法であって、
前記画像を圧縮する際に、各々の領域で抽出した代表色の数と予め定めた代表色数とを比較し、前記抽出した代表色の数が前記代表色数を超える所定の領域に対して、前記所定の領域を特定する情報と、前記抽出した代表色から外れた色の所定のピクセルを特定する情報と、前記所定のピクセルの元の色を特定する情報と、を含む減色情報を生成して可逆圧縮すると共に、前記所定の領域の数を第１のカウンタでカウントする第１の処理と、
前記第１のカウンタのカウント値が予め定めたカウント閾値を超える場合は、前記減色情報のサイズと予め定めたサイズ閾値とを比較し、前記減色情報のサイズが前記サイズ閾値以下の場合は、前記画像の圧縮データと可逆圧縮した減色情報とを出力する第２の処理と、
前記画像の圧縮データと前記可逆圧縮した減色情報とを伸張した後、前記所定の領域の前記所定のピクセルの色を前記元の色に置き換えて前記画像を復元する第３の処理と、を実行する、
ことを特徴とする画像処理方法。
【請求項７】
前記第２の処理では、更に、前記画像の圧縮データに対して回転処理が適用されるかを判断し、前記減色情報のサイズが前記サイズ閾値以下であり、かつ、前記画像の圧縮データに対して回転処理が適用されない場合は、前記画像の圧縮データと前記可逆圧縮した減色情報とを出力する、
ことを特徴とする請求項６に記載の画像処理方法。
【請求項８】
前記第２の処理では、前記減色情報のサイズが前記サイズ閾値を超えるか、若しくは、前記画像の圧縮データに対して回転処理が適用される場合は、前記画像の圧縮データと前記可逆圧縮した減色情報とを用いて、前記代表色数に１を加算した新たな代表色数に基づく圧縮データを生成して出力する、
ことを特徴とする請求項６又は７に記載の画像処理方法。
【請求項９】
前記第１の処理では、更に、前記所定の領域に対して、前記抽出した代表色の数と前記代表色数に１を加算した代表色数とを比較し、前記抽出した代表色の数が前記１を加算した代表色数を超える領域の数を第２のカウンタでカウントし、
前記第２の処理では、前記第１のカウンタが前記カウント閾値を超え、かつ、前記第２のカウンタのカウント値が予め定めたカウント閾値を超える場合は、前記画像の圧縮データと前記可逆圧縮した減色情報とを用いて、前記代表色数に２を加算した新たな代表色数に基づく圧縮データを生成して出力する、
ことを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
前記第１の処理では、更に、前記抽出した代表色の数が前記代表色数以下となる領域に対して、前記抽出した代表色の数と前記代表色数から１を減算した代表色数とを比較し、前記抽出した代表色の数が前記１を減算した代表色数以下となる領域の数を第３のカウンタでカウントし、
前記第２の処理では、前記第１のカウンタのカウント値が前記カウント閾値以下であり、かつ、前記第３のカウンタのカウント値が予め定めたカウント閾値以上の場合は、前記画像の圧縮データと前記可逆圧縮した減色情報とを用いて、前記代表色数から１を減算した新たな代表色数に基づく圧縮データを生成して出力する、
ことを特徴とする請求項６又７に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関し、特に、代表色に置き換えることによって画像を圧縮する画像処理装置及び当該画像処理装置における画像処理方法に関する。
【背景技術】
【０００２】
画像を特定のブロックに分割して、ブロック毎に代表的な色（代表色と呼ぶ。）を抽出して、ブロック内の各ピクセルの色を抽出した代表色のいずれかに置き換えるという方式は、一般的な画像の圧縮方法として知られている。
【０００３】
通常、この方式では、一定のブロック内の代表色の色数は固定として制御する。これは代表色に置き換えた後の各ブロックのサイズを一定にするためであり、ブロックサイズを一定にすることにより、圧縮後のサイズが固定になり、任意の領域に対してアドレス計算が可能になり、画像回転、裏面用上下反転出力等の制御が比較的容易に実現できる、というメリットが得られる。
【０００４】
このような画像の圧縮方法に関して、例えば、下記特許文献１には、ドット毎に色データを有する画像データに対して圧縮及び伸長を行う画像処理装置において、前記画像データから、所定領域内のドット群の色数を検出し、前記検出された色数が第１の色数の時に、当該所定領域のドット群の画像データを可逆圧縮方式で圧縮、伸長し、前記検出された色数が前記第１の色数よりも多い第２の色数の時に、当該所定領域のドット群の画像データを非可逆圧縮方式で圧縮、伸長する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−３３３０１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、ブロック内の代表色をＮ色に固定した場合、ブロック内で使用されている色数がＮ色以下の場合は正確に色を再現することができるが、ブロック内で使用されている色数がＮ色よりも多い場合、代表色として選択されなかった色は、代表色Ｎのうちのどれかに書き換えられる（減色処理が発生する）ことになり、結果的に色の再現性が犠牲になってしまう。
【０００７】
色の再現性を確保するためには、実際に使用されている色数に応じて代表色数Ｎを設定する必要があるが、圧縮対象となる画像内に、減色が発生するブロックがどの程度存在するかは、実際に圧縮処理を行ってみなくては分からない。そのため、減色が発生したブロックの数によっては、代表色数Ｎの値を変更して再度圧縮処理を行わなければならず、その結果、圧縮処理が完了するまで圧縮対象となる元の画像を保持しなければならなくなり、メモリを占有してしまう。
【０００８】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、使用されている色の数が予め定めた代表色数より多い場合であっても、元の画像を使用することなく、色の再現性を確保できるように画像を圧縮することができる画像処理装置及び画像処理方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明は、処理対象の画像を複数の領域に分割し、分割した領域毎に代表色を抽出し、領域内の各ピクセルを、抽出した代表色のいずれかに割り当てて圧縮する画像圧縮方式を用いて、前記画像を圧縮して圧縮データを生成する圧縮部と、前記圧縮データを伸張して出力画像を生成する伸張部と、を備える画像処理装置において、前記圧縮部は、前記画像を圧縮する際に、各々の領域で抽出した代表色の数と予め定めた代表色数とを比較し、前記抽出した代表色の数が前記代表色数を超える所定の領域に対して、前記所定の領域を特定する情報と、前記抽出した代表色から外れた色の所定のピクセルを特定する情報と、前記所定のピクセルの元の色を特定する情報と、を含む減色情報を生成して可逆圧縮すると共に、前記所定の領域の数を第１のカウンタでカウントし、前記第１のカウンタのカウント値が予め定めたカウント閾値を超える場合は、前記減色情報のサイズと予め定めたサイズ閾値とを比較し、前記減色情報のサイズが前記サイズ閾値以下の場合は、前記画像の圧縮データと可逆圧縮した減色情報とを出力し、前記伸張部は、前記画像の圧縮データと前記可逆圧縮した減色情報とを伸張した後、前記所定の領域の前記所定のピクセルの色を前記元の色に置き換えて前記画像を復元するものである。
【００１０】
また、本発明は、処理対象の画像を複数の領域に分割し、分割した領域毎に代表色を抽出し、領域内の各ピクセルを、抽出した代表色のいずれかに割り当てて圧縮する画像圧縮方式を用いて、前記画像を圧縮して圧縮データを生成し、前記圧縮データを伸張して出力画像を生成する装置における画像処理方法であって、前記画像を圧縮する際に、各々の領域で抽出した代表色の数と予め定めた代表色数とを比較し、前記抽出した代表色の数が前記代表色数を超える所定の領域に対して、前記所定の領域を特定する情報と、前記抽出した代表色から外れた色の所定のピクセルを特定する情報と、前記所定のピクセルの元の色を特定する情報と、を含む減色情報を生成して可逆圧縮すると共に、前記所定の領域の数を第１のカウンタでカウントする第１の処理と、前記第１のカウンタのカウント値が予め定めたカウント閾値を超える場合は、前記減色情報のサイズと予め定めたサイズ閾値とを比較し、前記減色情報のサイズが前記サイズ閾値以下の場合は、前記画像の圧縮データと可逆圧縮した減色情報とを出力する第２の処理と、前記画像の圧縮データと前記可逆圧縮した減色情報とを伸張した後、前記所定の領域の前記所定のピクセルの色を前記元の色に置き換えて前記画像を復元する第３の処理と、を実行するものである。
【発明の効果】
【００１１】
本発明の画像処理装置及び画像処理方法によれば、使用されている色の数が予め定めた代表色数より多い場合であっても、元の画像を使用することなく、色の再現性を確保できるように画像を圧縮することができる。
【００１２】
その理由は、画像処理装置の圧縮部では、処理対象の画像を分割した各領域に対して予め定めた代表色数で圧縮して代表色圧縮データを生成する際に、代表色以外の色に関する減色情報を生成し、減色が発生した領域の数や減色情報のサイズ、回転処理の要否に基づいて、代表色圧縮データのみを出力するか、代表色圧縮データと減色情報を出力するか、代表色圧縮データと減色情報を用い、代表色数を変更した代表色圧縮データを生成して出力するか、のいずれかの処理を実施し、代表色圧縮データと減色情報とが出力された場合には、伸張部では、減色が発生した部分を減色情報で上書きして画像を復元するからである。
【図面の簡単な説明】
【００１３】
【図１】代表色数が４の場合の画像処理方法を説明する図である。
【図２】減色が生じた場合の従来の処理を説明する図である。
【図３】本発明の第１の実施例に係る減色情報のフォーマットを示す図である。
【図４】代表色数が５の場合の画像処理方法を説明する図である。
【図５】本発明の第１の実施例に係る画像処理装置の構成を示すブロック図である。
【図６】本発明の第１の実施例に係る画像処理装置の圧縮モジュールの構成を示すブロック図である。
【図７】本発明の第１の実施例に係る圧縮部（圧縮モジュール）の動作を示すフローチャート図である。
【図８】本発明の第２の実施例に係る圧縮部（圧縮モジュール）の動作を示すフローチャート図である。
【図９】本発明の第３の実施例に係る圧縮部（圧縮モジュール）の動作を示すフローチャート図である。
【発明を実施するための形態】
【００１４】
背景技術で示したように、一般的な画像の圧縮方法として、ブロック内の各ピクセルの色を代表色に置き換えるという画像圧縮方式が用いられているが、ブロック内で使用されている色数が予め定めた代表色数よりも多い場合は、代表色に当てはまらない色をいずれかの代表色に置き換える（すなわち、減色が発生する）ため、色の再現性が犠牲になってしまう。色の再現性を保つためには、代表色数を増やして再度圧縮処理を実施する必要があるが、減色が発生するか否かは実際に圧縮処理を行ってみなければ分からないため、代表色数を増やして再度圧縮処理を実施できるようにするためには、圧縮処理が完了するまで元の画像を保持しなくてはならず、メモリを占有してしまう。
【００１５】
そこで、本発明の一実施の形態では、画像を特定のサイズの領域（例えば、矩形ブロック）に分割し、矩形ブロック内で代表色を抽出し、ブロック内の各ピクセルの色を抽出した代表色のいずれかに置き換えることで画像を圧縮する画像圧縮方式を採用して画像を圧縮する際に、処理対象のブロックから抽出した代表色数と予め定めた代表色数Ｎとを比較し、ブロックから抽出した代表色数がＮを超えた場合に、矩形ブロックを一意に特定する情報と、色の置き換えが発生したピクセルを特定する情報と、そのピクセルの置き換え前の色の情報と、を含む減色情報を可逆圧縮形式によって生成する。
【００１６】
そして、減色が発生したブロック数、減色情報のサイズ、回転処理の要否に基づいて、（１）減色が発生したブロック数が予め定めた閾値以下の場合は、減色情報は破棄して代表色数Ｎの圧縮データのみを出力し、（２）減色が発生したブロック数が閾値を超えた場合で、減色情報のサイズが予め定めた閾値以下であり、かつ、圧縮データに回転処理を施す必要がない場合は、代表色数Ｎの圧縮データと圧縮した減色情報の２つを出力し、（３）減色が発生したブロック数が閾値を超えた場合で、減色情報のサイズが予め定めた閾値を超えた場合、または、圧縮データに回転処理を施す必要がある場合は、代表色数Ｎの圧縮データと減色情報とを用いて代表色数Ｎ＋１の圧縮データを生成して出力する。
【００１７】
このような制御を行うことにより、ブロックに使用されている色の数が予め定めた代表色数Ｎより多い場合であっても、元の画像を使用することなく、色の再現性を確保することができる。
【実施例１】
【００１８】
上記した本発明の一実施の形態についてさらに詳細に説明すべく、本発明の第１の実施例に係る画像処理装置及び画像処理方法について、図１乃至図７を参照して説明する。図１は、代表色数が４の場合の画像処理方法を説明する図であり、図２は、使用されている色数が代表色数を超える場合の従来の画像処理方法を説明する図である。また、図３は、本実施例の減色情報のフォーマットを示す図であり、図４は、代表色数が５の場合の画像処理方法を説明する図である。また、図５は、本実施例の画像処理装置の構成を示すブロック図であり、図６は、圧縮モジュールの構成を示すブロック図、図７は、圧縮部１０ｂ（圧縮モジュール）の動作を示すフローチャート図である。
【００１９】
本実施例の画像処理装置及び画像処理方法を説明する前に、代表色を用いて画像を圧縮する方法について説明する。
【００２０】
図１（ａ）は、代表色の構成（ハッチングの種類で色の違いを表現している。）を示し、図１（ｂ）は、処理対象の画像を分割した領域（本実施例ではブロックとする。）の各ピクセルに代表色を当てはめた画像の例を示している。この例では、１つのブロックを構成するピクセル数を８×８とし、１つのブロックが最大４色（代表色数をＮとしたときに、Ｎ＝４）の代表色を持つとしている。この場合、ブロック内の各ピクセルがどの代表色を使用するかは、２ｂｉｔで表現できることになる。
【００２１】
このような構成の場合、圧縮対象となるブロックに含まれる色の数（厳密には、ＲＧＢ値が所定の範囲内の色を同一色とした場合の色の数）が４色以下であれば、それらの色を代表色として、各ピクセルにどの代表色を使用しているかの情報を２ｂｉｔで示すことによって、対象となるブロックを可逆圧縮することができる。
【００２２】
しかしながら、図２（ａ）に示すように、圧縮対象となるブロックに含まれる色の数が５色以上（図では７色）となった場合には、ブロックの中での出現頻度の高い方から順に４色を代表色として設定するため、４つの代表色以外の色を使用しているピクセル（図２（ｂ）の黒四角で示したピクセル）については、４つの代表色の中で最も色の近い代表色を選択することになり（図２（ｃ）参照）、圧縮対象のブロックは非可逆圧縮となる。
【００２３】
この問題を回避するためには、ブロックに含まれる色数に合わせて代表色数を設定すればよいが、各ブロックの代表色として何色必要であるかは圧縮する画像に依存するため、通常、圧縮前に最適な代表色数Ｎを設定することは困難である。そのため、代表色による圧縮処理の実行中に減色が発生したブロックが大量に生じた場合には、代表色数Ｎを増やして最初から再度、圧縮処理を行わなければならず、再度、圧縮処理を行うためには、圧縮処理が終了するまで圧縮元の画像を保持しなければならず、その間、メモリを占有してしまう。
【００２４】
そこで、本実施例では、上記のような非可逆圧縮となった（使用されている色数が代表色数Ｎを上回った）ブロックについては、公知の手法を用いて圧縮処理を行った通常の圧縮データ（以下、代表色圧縮データと呼ぶ。）の他に、図３に表されるような減色情報を生成する。この減色情報は、例えば、非可逆圧縮となったブロックを特定する情報（ブロック番号）、代表色以外の色の数を示す減色数、代表色以外の各色の色情報（減色代表色情報）、その色を有するピクセルの数（対応ピクセル数）、各々のピクセルを特定する情報（対応ピクセル情報）などで構成される。
【００２５】
そして、この減色情報を、通常の代表色圧縮データとは別の領域に可逆圧縮形式によって出力を行う。その際、代表色圧縮データは圧縮後のデータサイズが固定であるため、通常、減色情報は代表色圧縮データの格納領域の直後の領域に出力される。
【００２６】
但し、代表色圧縮データに合わせて減色情報を出力する場合、減色情報のサイズが大きい場合は、やはりメモリを占有してしまう。また、代表色圧縮データに回転処理が適用されて、減色情報との対応づけが困難になった場合は、代表色圧縮データと減色情報によって圧縮前の画像を復元することができない。そのような場合は、代表色数を増やした新たな代表色圧縮データを生成することになるが、その際、元の画像を用いて代表色圧縮データを生成するのではなく、代表色圧縮データと減色情報を用いて、代表色数を増やした新たな代表色圧縮データを生成する。
【００２７】
以下、代表色の色数を４から５に増やした代表色圧縮データを生成する手法を説明する。
【００２８】
まず、図２（ｂ）のように、代表色以外の色を最も色の近い代表色に置き換えた代表色圧縮データに対して先頭からデータ伸張を行い、代表色数を５、位置情報表現ビット数を３のフォーマット（図４（ａ）参照）に変換する。その際、元々の画像は４色分の情報しか持たないため、この状態では代表色５はブランクで、位置情報の最上位ビットも０のままである。
【００２９】
次に、このフォーマットデータに対して、減色情報から各ブロックの５番目の代表色情報を抜き出し、上書きを実施することで、図４（ｂ）に示すように、代表色５の部分と、対応するピクセルの位置の情報を更新する。最後に、減色情報の６番目以降のデータをチェックして、代表色の１から５のどれに最も近いかを判断し、対応するピクセルのデータを最も近い代表色を示す位置情報に置き換える。この一連の処理を行なうことによって、代表色Ｎ＝５のデータを生成することができる。
【００３０】
このように、本実施例では、通常の代表色圧縮データの他に可逆圧縮した減色情報も合わせて出力されるため、使用されている色数が代表色数Ｎを超えた場合であっても、代表色圧縮データと減色情報を使用する（代表色圧縮データを先に伸張して、減色情報によって上書きする）ことによって、圧縮前の画像を復元することができる。また、減色情報のサイズが大きい場合や代表色圧縮データに回転処理が適用されている場合は、代表色圧縮データと減色情報を用いて代表色数を変更した代表色圧縮データを生成して出力するため、元の画像を保持する必要がなくなり、メモリの占有を抑制することができる。
【００３１】
次に、上記制御を行うための装置構成について説明する。図５は、本実施例の画像処理装置の構成を示すブロック図であり、図６は、画像処理装置に含まれる圧縮モジュールの構成を示すブロック図である。
【００３２】
本実施例の画像処理装置１０は、プリンタやスキャナなどであり、図５に示すように、制御部１０ａと、圧縮部１０ｂと、伸張部１０ｃと、原稿をスキャンした画像を圧縮部１０ｂに渡したり、伸張部１０ｃで伸張した画像を用いて印刷等を実行する処理部１０ｄなどで構成される。
【００３３】
制御部１０ａは、ＣＰＵ（Central Processing Unit）とＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などのメモリとで構成され、ＣＰＵは、ＲＯＭに記憶したプログラムをＲＡＭに展開して実行し、画像処理装置１０全体を制御する。
【００３４】
圧縮部１０ｂは、処理対象となる画像（例えば、処理部（画像読取部）で読み取った画像や他の装置から取得した画像）をブロックに分割し、各ブロックを代表色によって圧縮する部分であり、例えば、圧縮部１０ｂをハードウェアで構成した圧縮モジュールは、図６に示すように、入力バッファ１１、代表色抽出回路１２、第１ワークメモリ１３、第２ワークメモリ１４、代表色数比較回路１５、データ制御回路１６、第１出力バッファ１７、第２出力バッファ１８、ピクセル評価回路１９、可逆圧縮回路２０、カウンタ２１、代表色数Ｎ設定レジスタ２２、ブロックカウンタ２３などで構成される。この圧縮モジュールの各部の動作については後述する。
【００３５】
伸張部１０ｃは、代表色圧縮データを伸張して処理部１０ｄ（印刷部）で処理可能なデータに復元する部分であり、例えば、伸張部１０ｃをハードウェアで構成した伸張モジュールは、代表色圧縮データや減色情報を伸張する可逆伸張回路、伸張したデータを記録するメモリ、減色情報に基づいてブロック内のピクセルの色を変換する変換回路、ブロックを並び替えるセレクタ回路などで構成される。
【００３６】
処理部１０ｄは、画像読取部や印刷部などで構成される。画像読取部は、原稿を走査する光源と、原稿で反射された光を電気信号に変換するＣＣＤ（Charge Coupled Devices）等のイメージセンサと、電気信号をＡ／Ｄ変換して画像データとして出力するＡ／Ｄ変換器等により構成される。印刷部は、伸張部１０ｃで伸張した画像を用紙に転写する。具体的には、帯電装置により帯電された感光体ドラムに露光装置から画像に応じた光を照射して静電潜像を形成し、現像装置で帯電したトナーを付着させて現像し、そのトナー像を転写ベルトに１次転写し、転写ベルトから紙媒体に２次転写し、更に定着装置で紙媒体にトナー像を定着させる処理を行う。
【００３７】
なお、図５及び図６は、本実施例の画像処理装置１０の一例であり、その構成は適宜変更可能である。例えば、図５では、圧縮部１０ｂと伸張部１０ｃとを別々に設けているが、これらは１つにまとめてもよい。
【００３８】
次に、本実施例の特徴部分である圧縮モジュールの動作について、図６のブロック図及び図７のフローチャート図を参照して説明する。なお、以下の説明において、圧縮する画像は予め所定のサイズのブロックに分割され、代表色数Ｎ、減色ブロック数に対する閾値、減色情報のサイズに対する閾値などは予め設定されているものとし、カウンタのカウント値はリセットされているものとする。
【００３９】
まず、圧縮対象となるブロックの各ピクセルに使用されている色を抽出し、ブロック内の色数が予め定めた代表色数Ｎ以下であるかを判断する（Ｓ１０１）。具体的には、代表色抽出回路１２は、入力バッファ１１内に格納されている対象ブロックの各ピクセルの色をチェックして、出現頻度順に、代表色数Ｎ設定レジスタ２２に設定されているＮ色分の代表色を抽出する。この時、抽出した代表色の情報を、代表色情報として第１ワークメモリ１３上に出力する。同時に、対象となるブロックから抽出された色が合計何色であったかを示す情報を代表色数比較回路１５に渡す。代表色数比較回路１５では、ブロック内で抽出された代表色数と、代表色数Ｎ設定レジスタ２２に設定されている値Ｎとの比較を行う。
【００４０】
ブロック内で抽出された代表色数が予め定めた代表色数Ｎよりも大きい場合は、減色ブロック数カウンタをカウントアップし（Ｓ１０２）、減色情報を抽出して圧縮結果別領域に出力する（Ｓ１０３）。具体的には、代表色数比較回路１５は、カウンタ２１の値を１つインクリメントする。また、代表色数比較回路１５は、何色の減色が発生したか（代表色数Ｎ設定レジスタ２２に設定されている値Ｎとブロック内で抽出された代表色数との差）をデータ制御回路１６に減色数Ｍとして送ると共に、減色情報の“減色数”として第２ワークメモリ１４上に出力する。上記カウンタ２１の値は、最終的に、圧縮データの中に減色が発生したブロックがいくつ存在するかを示す値となり、圧縮が完了した後、カウンタ２１の値によって、どのデータを圧縮結果として採用するかの判断材料として使用する。
【００４１】
データ制御回路１６は、代表色数比較回路１５から減色数Ｍを受け取ると、代表色抽出回路１２を制御して、Ｎ＋１番目の代表色を第２ワークメモリ１４上に減色情報の“減色代表色情報１”として出力させる。次に、このＮ＋１番目の代表色の情報を、ピクセル評価回路１９に送り、ピクセル評価回路１９は、Ｎ＋１番目の代表色に対応するピクセルの数とその位置情報を、第２ワークメモリ１４上に減色情報の“対応ピクセル情報１”として出力する。そして、この動作をＮ＋Ｍ番目の代表色の出力が完了するまで繰り返す。
【００４２】
減色情報を出力した後、若しくは、ブロック内の色数がＮ以下の場合は、予め定めた代表色数Ｎで代表色圧縮を実施する（Ｓ１０４）。具体的には、ピクセル評価回路１９は、ブロック内の各ピクセルに対して、上記の代表色抽出回路１２が抽出したＮ色の代表色のうち、最も色が近いものを選択し、選択した代表色を表すバイナリコードを位置情報として、第１ワークメモリ１４上に出力する。この代表色情報と位置情報の組み合わせが代表色圧縮情報となる。そして、上記Ｓ１０１〜Ｓ１０３の処理を最終ブロックまで実施する（Ｓ１０５）。
【００４３】
次に、減色ブロック数（カウンタ２１の値）が予め定めた閾値以下であるかを判断する（Ｓ１０６）。
【００４４】
減色ブロック数が閾値以下の場合は、色の再現性が確保できると考えられることから、代表色数Ｎで代表色圧縮した結果を出力する（Ｓ１０７）。具体的には、データ制御回路１６は、第１出力バッファ１７を操作して、第１ワークメモリ１３に格納されているデータを、代表色圧縮データとして外部に出力する。
【００４５】
一方、減色ブロック数が閾値を超えている場合は、回転処理が必要であるかを判断し（Ｓ１０８）、回転処理が必要ない場合は、減色情報のサイズが予め定めた閾値以下であるかを判断する（Ｓ１０９）。
【００４６】
減色情報のサイズが閾値以下の場合は、代表色数Ｎで代表色圧縮した結果と減色情報を合わせて圧縮結果として出力する（Ｓ１１０）。具体的には、データ制御回路１６は、第１出力バッファ１７、第２出力バッファ１８を操作して、第１ワークメモリ１３、第２ワークメモリ１４に格納されているデータを、代表色圧縮データと、圧縮済み減色情報として外部に出力する。この際に、第２ワークメモリ１４側のデータについては、可逆圧縮回路２０によって、可逆データ圧縮が実行される。
【００４７】
一方、回転処理が必要な場合（Ｓ１０８のＹｅｓ）、若しくは、減色情報のサイズが閾値を超えている場合（Ｓ１０９のＮｏ）は、代表色数Ｎで代表色圧縮を行った結果と減色情報とを用いて、代表色数Ｎ＋１の代表色圧縮データを生成して出力する（Ｓ１１１）。
【００４８】
その後、伸張部では、圧縮モジュールから、代表色数Ｎで圧縮した代表色圧縮データ、若しくは代表色数Ｎで圧縮した代表色圧縮データと減色情報、若しくは代表色数Ｎ＋１で圧縮した代表色圧縮データを取得する。そして、代表色圧縮データのみを取得した場合は、代表色圧縮データを伸張して画像データを復元し、代表色圧縮データと減色情報を取得した場合は、代表色圧縮データを先に伸張して、減色情報によって上書きすることによって画像データを復元する。
【００４９】
そして、処理部（印刷部）では、伸張部から画像データを取得し、その画像データに基づいて印刷処理を行う。
【００５０】
このように、本実施例によれば、代表色圧縮データと減色情報と別々に保持することによって、圧縮処理が完了した後に、減色が発生したブロックの数が閾値を越えたか、減色情報のサイズが閾値を超えたか、圧縮データに対して回転処理が必要かなどの条件に応じて、（１）代表色数Ｎで代表色圧縮を行なったデータのみを圧縮結果として出力する、（２）代表色数Ｎの代表色圧縮データと圧縮した減色情報の両方を圧縮結果として出力する、（３）代表色数Ｎ＋１で代表色圧縮を行なった代表色圧縮データを生成して、これを圧縮結果として出力する、という３種類の形態から最適なものを選択することができ、これにより、使用されている色の数が予め定めた代表色数Ｎより多い場合であっても、元の画像を使用することなく、色の再現性を確保することができる。
【００５１】
なお、上記実施例では、代表色数が４の場合を例にして説明したが、任意の代表色数に対して同様に適用することができる。
【実施例２】
【００５２】
次に、本発明の第２の実施例に係る画像処理装置及び画像処理方法について、図８を参照して説明する。図８は、本実施例の画像処理装置の圧縮モジュールの動作を示すフローチャート図である。
【００５３】
前記した第１の実施例では、減色が発生したブロックの数を単純にカウントして、その値が予め定めた閾値を超えた場合に、代表色を１色増やす制御を行ったが、本実施例では、減色が発生したブロックの数をカウントするカウンタＧ１の他に、代表色を１色増やした場合でも減色が発生してしまうブロックの数をカウントするカウンタＧ２を設けて、代表色数を増やす場合に、カウンタＧ２のカウンタ値によって代表色を１色増やすのか、２色増やすのかの判定を行う。
【００５４】
この場合の圧縮モジュールの動作について、図８のフローチャート図を参照して説明する。なお、以下の説明においても、圧縮する画像は予め所定のサイズのブロックに分割され、代表色数Ｎ、減色ブロック数に対する閾値、減色情報のサイズに対する閾値は予め設定されているものとし、カウンタのカウント値はリセットされているものとする。
【００５５】
まず、圧縮対象となるブロックの各ピクセルに使用されている色を抽出し、ブロック内の色数が予め定めた代表色数Ｎ以下であるかを判断する（Ｓ２０１）。ブロック内で抽出された代表色数が予め定めた代表色数Ｎよりも大きい場合は、減色ブロック数カウンタＧ１をカウントアップする（Ｓ２０２）。
【００５６】
次に、本実施例では、ブロック内の色数がＮ＋１以下であるかを判断し（Ｓ２０３）、ブロック内で抽出された代表色数がＮ＋１よりも大きい場合は、減色ブロック数カウンタＧ２をカウントアップする（Ｓ２０４）。そして、減色情報を抽出して圧縮結果別領域に出力する（Ｓ２０５）。
【００５７】
減色情報を出力した後、若しくは、ブロック内の色数がＮ以下の場合は、予め定めた代表色数Ｎで代表色圧縮を実施し（Ｓ２０６）、上記Ｓ２０１〜Ｓ２０６の処理を最終ブロックまで実施する（Ｓ２０７）。
【００５８】
次に、減色ブロック数Ｇ１（減色ブロック数カウンタＧ１のカウント値）が予め定めた閾値以下であるかを判断する（Ｓ２０８）。
【００５９】
減色ブロック数Ｇ１が閾値以下の場合は、色の再現性が担保できると考えられることから、代表色数Ｎで代表色圧縮した結果を出力する（Ｓ２０９）。一方、減色ブロック数Ｇ１が閾値を超えている場合は、回転処理が必要であるかを判断し（Ｓ２１０）、回転処理が必要ない場合は、減色情報のサイズが予め定めた閾値以下であるかを判断する（Ｓ２１１）。そして、減色情報のサイズが閾値以下の場合は、代表色数Ｎで代表色圧縮した結果と減色情報を合わせて圧縮結果として出力する（Ｓ２１２）。
【００６０】
一方、回転処理が必要な場合（Ｓ２１０のＹｅｓ）、若しくは、減色情報のサイズが閾値を超えている場合（Ｓ２１１のＮｏ）は、減色ブロック数Ｇ２（減色ブロック数カウンタＧ２のカウント値）が予め定めた閾値（減色ブロック数Ｇ１の判定に使用する閾値と同じであっても異なっていてもよい。）以下であるかを判断する（Ｓ２１３）。そして、減色ブロック数Ｇ２が閾値以下の場合は、代表色数Ｎで代表色圧縮を行った結果と減色情報とを用いて、代表色数Ｎ＋１の代表色圧縮データを生成して出力し（Ｓ２１５）、減色ブロック数Ｇ２が閾値を超えている場合は、代表色数Ｎで代表色圧縮を行った結果と減色情報とを用いて、代表色数Ｎ＋２の代表色圧縮データを生成して出力する（Ｓ２１４）。
【００６１】
このように、減色が発生したブロックの内、代表色を１色増やした場合でも減色が発生するブロックの数をカウントすることにより、代表色数Ｎ＋１の代表色圧縮データを生成すべきか、代表色数Ｎ＋２の代表色圧縮データを生成すべきかを判断することができるため、色の再現性を高めることができる。
【００６２】
なお、上記実施例では、カウンタＧ１とカウンタＧ２の２つのカウンタを用いる場合について説明したが、例えば、代表色を２色増やした場合でも減色が発生してしまうブロックの個数をカウントするＧ３、代表色を３色増やした場合でも減色が発生してしまうブロックの個数をカウントするＧ４、とカウンタの数を増やしていき、増やす代表色の色数の最適化を図ることも可能である。
【実施例３】
【００６３】
次に、本発明の第３の実施例に係る画像処理装置及び画像処理方法について、図９を参照して説明する。図９は、本実施例の画像処理装置の圧縮モジュールの動作を示すフローチャート図である。
【００６４】
前記した第２の実施例では、代表色を１色増やした場合でも減色が発生してしまうブロックの個数をカウントするＧ２を設けたが、本実施例では、第２の実施例とは逆に、代表色数をＮ−１に減らしても減色が発生しないブロックの数をカウントするカウンタＧ３を実装し、このカウンタＧ３のカウンタ値が予め定めた閾値以上であれば、代表色圧縮情報から代表色数を１色減らした代表色圧縮情報を生成し、圧縮結果として出力する。
【００６５】
この場合の圧縮モジュールの動作について、図９のフローチャート図を参照して説明する。なお、以下の説明においても、圧縮する画像は予め所定のサイズのブロックに分割され、代表色数Ｎ、減色ブロック数及び減色可能ブロック数に対する閾値、減色情報のサイズに対する閾値は予め設定されているものとし、カウンタのカウント値はリセットされているものとする。
【００６６】
まず、圧縮対象となるブロックの各ピクセルに使用されている色を抽出し、ブロック内の色数が予め定めた代表色数Ｎ以下であるかを判断する（Ｓ３０１）。ブロック内で抽出された代表色数が代表色数Ｎよりも大きい場合は、減色ブロック数カウンタＧ１をカウントアップし（Ｓ３０２）、減色情報を抽出して圧縮結果別領域に出力する（Ｓ３０３）。
【００６７】
一方、ブロック内で抽出された代表色数が代表色数Ｎ以下の場合は、ブロック内の色数がＮ−１以下であるかを判断し（Ｓ３０４）、ブロック内で抽出された代表色数がＮ−１以下の場合は、減色可能ブロック数カウンタＧ３をカウントアップする（Ｓ３０５）。
【００６８】
減色情報を出力した後、若しくは減色可能ブロック数カウンタＧ３をカウントアップした後、若しくは、ブロック内の色数がＮ−１を超えている場合は、予め定めた代表色数Ｎで代表色圧縮を実施する（Ｓ３０６）。そして、上記Ｓ３０１〜Ｓ３０６の処理を最終ブロックまで実施する（Ｓ３０７）。
【００６９】
次に、減色ブロック数Ｇ１（減色ブロック数カウンタＧ１のカウント値）が予め定めた閾値以下であるかを判断する（Ｓ３０８）。
【００７０】
減色ブロック数Ｇ１が閾値以下の場合は、減色可能ブロック数Ｇ３（減色可能ブロック数カウンタＧ３のカウント値）が予め定めた閾値（減色ブロック数Ｇ１の判定に使用する閾値と同じであっても異なっていてもよい。）以上であるかを判断する（Ｓ３０９）。そして、減色可能ブロック数Ｇ３が閾値以上の場合は、代表色数Ｎで代表色圧縮を行った結果と減色情報とを用いて、代表色数Ｎ−１の代表色圧縮データを生成して出力し（Ｓ３１０）、減色可能ブロック数Ｇ３が閾値より小さい場合は、代表色数Ｎで代表色圧縮した結果を出力する（Ｓ３１１）。
【００７１】
一方、減色ブロック数Ｇ１が閾値を超えている場合は、回転処理が必要であるかを判断し（Ｓ３１２）、回転処理が必要ない場合は、減色情報のサイズが予め定めた閾値以下であるかを判断する（Ｓ３１３）。
【００７２】
減色情報のサイズが閾値以下の場合は、代表色数Ｎで代表色圧縮した結果と減色情報を合わせて圧縮結果として出力し（Ｓ３１４）、回転処理が必要な場合（Ｓ３１２のＹｅｓ）、若しくは、減色情報のサイズが閾値を超えている場合（Ｓ３１３のＮｏ）は、代表色数Ｎで代表色圧縮を行った結果と減色情報とを用いて、代表色数Ｎ＋１の代表色圧縮データを生成して出力する（Ｓ３１５）。
【００７３】
このように、代表色を１色減らしても減色が発生しないブロックの数をカウントすることにより、代表色数Ｎの代表色圧縮データを生成すべきか、代表色数Ｎ−１の代表色圧縮データを生成すべきかを判断することができるため、圧縮データのサイズを縮小することができる。
【００７４】
なお、第２の実施例では、代表色を増やした場合でも減色が発生してしまうブロックの数をカウントするカウンタを実装し、本実施例では、代表色数を減らした場合でも減色が発生しないブロックの数をカウントするカウンタを実装したが、双方のカウンタを同時に実装して制御することも可能である。
【００７５】
また、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りおいて、その構成や制御は適宜変更可能である。
【００７６】
例えば、前記した第１乃至第３の実施例では、回転処理が発生したら、減色情報のデータは代表色圧縮情報にフィードバック後に、破棄することを前提としている。これは、代表色圧縮データはブロック単位でサイズが固定であるため、データに対して９０°単位の回転処理を行う場合でも回転後のアドレス計算が容易であり、ブロック内のデータの位置情報のみを回転させれば良いため、比較的単純な処理で回転可能であるのに対して、減色情報のデータはデータ先頭からの圧縮であり、ブロック毎にサイズが不定であるため、圧縮状態での回転は非常に困難であるからである。
【００７７】
しかしながら、回転後の代表色圧縮データを伸張した結果に対して、伸張結果が連続した領域としてメモリ上に存在する場合には、ブロック番号から、対応するブロックが配置されているアドレスを計算で求めることは可能であり、求めたアドレスに対応するピクセル情報を、回転を考慮して上書きすることで、可逆伸張が可能となる。従って、回転処理が発生した場合であっても、代表色圧縮データと減色情報を出力することも可能である。
【産業上の利用可能性】
【００７８】
本発明は、圧縮／伸張した画像を用いて処理を行う装置、例えば、プリンタやスキャナ、複合機（ＭＦＰ：Multi Function Peripheral）などに利用可能である。
【符号の説明】
【００７９】
１０  画像処理装置
１０ａ  制御部
１０ｂ  圧縮部
１０ｃ  伸張部
１０ｄ  処理部
１１  入力バッファ
１２  代表色抽出回路
１３  第１ワークメモリ
１４  第２ワークメモリ
１５  代表色数比較回路
１６  データ制御回路
１７  第１出力バッファ
１８  第２出力バッファ
１９  ピクセル評価回路
２０  可逆圧縮回路
２１  カウンタ
２２  代表色数Ｎ設定レジスタ
２３  ブロックカウンタ
【図１】
0005549937.tif 000002
【図２】
0005549937.tif 000003
【図３】
0005549937.tif 000004
【図４】
0005549937.tif 000005
【図５】
0005549937.tif 000006
【図６】
0005549937.tif 000007
【図７】
0005549937.tif 000008
【図８】
0005549937.tif 000009
【図９】
0005549937.tif 000010