(57)【要約】  Ｃ、Ｍ、Ｙ、およびＫによって表されるカラーの画像データに含まれる小領域ごとにそれぞれの小領域を所定の個数の代表色で表す画像処理において、１つの小領域について、その小領域内の画素ごとに、Ｃ、Ｍ、およびＹの各色変数の値から、Ｋの値が大きくなるほどそのグループ内における値のばらつきの程度が小さくなる色変数の値を求め、求めた各色変数の値のそれぞれの、そのグループ内におけるばらつきの程度に基づいて、１つの着目色変数を選択し（＃１０４）、そのグループ内における着目色変数の値とそのグループ内の画素の個数との関係に基づいて、画素のグループ分けのための基準値を求め、その基準値に基づいて、画素をグループ分けし（＃１０６）、各グループの代表色を求める（＃１０９）。
2009001549.tif 000002
【特許請求の範囲】
【請求項１】
カラーの画像内の複数の画素を含む小領域ごとに、それぞれの前記小領域を所定数以下の代表色で表す画像処理方法であって、
各画素を表すシアン、マゼンタ、イエローおよびブラックの各色変数の値を取得する取得ステップと、
シアン、マゼンタおよびイエローの各色変数の値から、ブラックの値が大きくなるほど値のばらつきの程度が小さくなる変換後の各色変数の値を求める値算出ステップと、
１つの前記小領域内の複数の画素について、前記値算出ステップにおいて求めた変換後の各色変数の値のそれぞれの、当該小領域内におけるばらつきの程度を示すばらつき値に基づいて、着目する１つの変換後の色変数を選択する選択ステップと、
当該小領域内における当該着目する変換後の色変数の値に基づいて、画素のグループ分けのための基準値を求める基準値算出ステップと、
前記基準値算出ステップで求めた前記基準値に基づいて、当該小領域内の画素をグループ分けするグループ化ステップと、
当該小領域内のグループごとに、当該グループに属する各画素の各色変数の値に基づいて代表色を求める代表色算出ステップと、
を有することを特徴とする画像処理方法。
【請求項２】
前記基準値算出ステップにおいて、当該小領域内における当該着目する変換後の色変数の最小値から最大値までの値のうちで、当該変換後の色変数の値と当該小領域内の画素の個数との関係において当該個数が「０」となる当該変換後の色変数の値がある場合は当該値を前記基準値として求める、
請求項１記載の画像処理方法。
【請求項３】
前記値算出ステップにおいて求めた変換後の各色変数の値についての、前記小領域内の各グループにおけるばらつき値に基づいて、着目するグループおよび着目する変換後の色変数を選択する第２選択ステップと、
当該着目するグループ内における当該着目する変換後の色変数の最小値から最大値までの値のうちで、当該変換後の色変数の値と当該グループ内の画素の個数との関係において当該個数が「０」となる当該変換後の色変数の値がある場合は当該値を第２の基準値として求める第２基準値算出ステップと、
前記第２基準値算出ステップで求めた前記第２の基準値に基づいて、当該着目するグループ内の画素をグループ分けする第２グループ化ステップと、を有し、
前記代表色算出ステップにおいては、前記第２グループ化ステップの後の前記小領域内の各グループに対して代表色を求める、
請求項２記載の画像処理方法。
【請求項４】
前記選択ステップおよび前記第２選択ステップにおいて、前記ばらつき値を、値の変化によって色が大きく変化する、変換後の色変数ほど当該ばらつき値が大きくなるように重み付けを行って求め、求めた当該ばらつき値に基づいて選択する、
請求項３記載の画像処理方法。
【請求項５】
前記第２選択ステップにおいて、前記小領域内のグループごとに、グループ内の画素の個数が多いほどばらつき値が大きくなるように重み付けを行って前記ばらつき値を求め、求めた当該ばらつき値に基づいて選択する、
請求項４記載の画像処理方法。
【請求項６】
前記基準値算出ステップおよび前記第２基準値算出ステップにおいて、グループ内における着目する変換後の色変数の最大値から最小値までの値のうちで当該変換後の色変数の値と当該グループ内の画素の個数との関係において当該個数が「０」となる当該変換後の色変数の値がない場合は、当該最大値および当該最小値の中央の値に最も近い値を前記基準値として求める、
請求項５記載の画像処理方法。
【請求項７】
前記小領域内のグループの個数が所定の個数になるまで、当該小領域について、前記第２選択ステップ、前記第２基準値算出ステップ、および前記第２グループ化ステップを繰り返す、
請求項３ないし６のいずれかに記載の画像処理方法。
【請求項８】
前記小領域内の各グループのそれぞれにおける変換後の各色変数のばらつき値のいずれもが所定の閾値以下である場合は、当該小領域内のグループの個数が前記所定の個数より少ない場合であっても、前記グループ化ステップおよび前記第２グループ化ステップにおけるグループ分けを行わず、前記代表色算出ステップの処理を行う、
請求項７記載の画像処理方法。
【請求項９】
前記基準値算出ステップにおいては、着目する変換後の色変数の値とグループ内の画素の個数との関係において当該個数が「０」となる当該変換後の色変数の値が複数ある場合に、当該グループ内における当該変換後の色変数の最大値および最小値の中央の値に最も近い値を前記基準値とする、
請求項１ないし８のいずれかに記載の画像処理方法。
【請求項１０】
当該グループ内における前記着目する変換後の色変数の値の中央値を前記基準値として求める、
請求項１記載の画像処理方法。
【請求項１１】
当該グループ内における前記着目する変換後の色変数の値の平均値を前記基準値として求める、
請求項１記載の画像処理方法。
【請求項１２】
カラーの画像内の複数の画素を含む小領域ごとにそれぞれの前記小領域を所定数以下の代表色で表す画像処理を行う画像処理装置であって、
各画素を表すシアン、マゼンタ、イエローおよびブラックの各色変数の値を取得する取得手段と、
シアン、マゼンタおよびイエローの各色変数の値から、ブラックの値が大きくなるほど値のばらつきの程度が小さくなる色変換後の各色変数の値を求める値算出手段と、
１つの前記小領域内の複数の画素について、前記値算出手段において求めた変換後の各色変数の値のそれぞれの、当該小領域内におけるばらつきの程度を示すばらつき値に基づいて、着目する１つの変換後の色変数を選択する選択手段と、
当該小領域内における当該着目する変換後の色変数の値に基づいて、画素のグループ分けのための基準値を求める基準値算出手段と、
前記基準値算出手段が求めた前記基準値に基づいて、当該小領域内の画素をグループ分けするグループ化手段と、
当該小領域内のグループごとに、当該グループに属する各画素の各色変数の値に基づいて代表色を求める代表色算出手段と、
を有することを特徴とする画像処理装置。
【請求項１３】
シアン、マゼンタ、イエローおよびブラックによって表されるカラーの画像データを圧縮する画像データ圧縮装置であって、
前記画像データを複数の小領域ごとに区画する区画手段と、
シアン、マゼンタおよびイエローの各色変数の値から、ブラックの値が大きくなるほど値のばらつきの程度が小さくなる変換後の各色変数の値を求める値算出手段と、
１つの前記小領域内の複数の画素について、前記値算出手段が求めた変換後の各色変数の値のそれぞれの、当該小領域内におけるばらつきの程度を示すばらつき値に基づいて、着目する１つの変換後の色変数を選択する選択手段と、
当該小領域内における当該着目する変換後の色変数の値に基づいて、画素のグループ分けのための基準値を求める基準値算出手段と、
前記基準値算出手段が求めた前記基準値に基づいて、当該小領域内の画素をグループ分けするグループ化手段と、
当該小領域内のグループごとに、当該グループに属する各画素の各色変数の値に基づいて代表色を求める代表色算出手段と、
前記画像データに含まれる各小領域に対して前記代表色算出手段が求めた前記代表色を用いて、当該画像データについての圧縮データを生成する圧縮データ生成手段と、
を有することを特徴とする画像データ圧縮装置。
【請求項１４】
カラーの画像内の複数の画素を含む小領域ごとにそれぞれの前記小領域を所定数以下の代表色で表す画像処理をコンピュータに実行させるコンピュータプログラムであって、
各画素を表すシアン、マゼンタ、イエローおよびブラックの各色変数の値を取得する取得処理と、
シアン、マゼンタおよびイエローの各色変数の値から、ブラックの値が大きくなるほど値のばらつきの程度が小さくなる変換後の各色変数の値を求める値算出処理と、
１つの前記小領域内の複数の画素について、前記値算出処理において求めた変換後の各色変数の値のそれぞれの、当該小領域内におけるばらつきの程度を示すばらつき値に基づいて、着目する１つの変換後の色変数を選択する選択処理と、
当該小領域内における当該着目する変換後の色変数の値に基づいて、画素のグループ分けのための基準値を求める基準値算出処理と、
前記基準値算出処理で求めた前記基準値に基づいて、当該小領域内の画素をグループ分けするグループ化処理と、
当該小領域内のグループごとに、当該グループに属する各画素の各色変数の値に基づいて代表色を求める代表色算出処理と、
を実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データの圧縮に係る画像処理方法および装置に関する。
【背景技術】
【０００２】
従来、画像データの圧縮方法として様々な手法が用いられており、その一つとして、「ＢＴＣ（Block Truncation Coding）」と呼ばれる方法がある。【０００３】
この方法では、画像データ（以下、単に「画像」と記載することがある。）を複数のブロックに区画し、各ブロック内の画素を近似色で表すことによってそのブロック内の色数を減らし、それによってデータ量を削減する。【０００４】
具体的には、例えば次のようにする。まず、区画したブロック内の画素の濃度値の平均値を求め、各画素をその平均値よりも濃度値が高い画素のグループと低い画素のグループとに分ける。さらに、各グループにおける、Ｒ（赤）、Ｇ（緑）、およびＢ（青）などの各色成分の濃度値の平均値を求める。そして、その平均値によって表される色をそのグループの近似色（代表色）とする。すなわち、そのグループ内の画素の色を全て同じ代表色とする。このような処理を画像データに含まれる全てのブロックに対して行う。このような方法に関連する技術として、以下に示す特開２００１−３３８２８４に開示されるような方法が提案されている。【０００５】
特開２００１−３３８２８４の方法によると、画像データに含まれる小領域（ブロック）内で各色（色成分）の分散を算出し、この分散が最も大きい色（色成分）を着目色とする。小領域内におけるこの着目色の平均値を求める。そして、小領域内の画素を、その平均値に基づいてグループ分けする。すなわち、その着目色について、その平均値よりも濃度値が高いグループと低いグループとに分ける。次に、さらに、各グループ内の画素の各色成分の濃度値の平均値を求め、それによって表される色をそれぞれのグループの代表色とする。そして、得られた代表色の個数が所望する色数以上かどうか判断し、所望する色数未満であればさらにグループ分けを行う。所望の色数以上であれば、次の小領域の処理に移る。【０００６】
ＢＴＣでは、このように、ブロック内の画像が色数の少ない画像に変換される。それによるある程度の画質の低下を許容することによって、データ量を削減する。【０００７】
ここで、ＢＴＣの圧縮率について、図１６を参照して説明する。図１６（ａ）には、縦８画素および横８画素の大きさのブロックＢＫが示される。このブロックＢＫには、線図部分ＪＳおよびその背景部分を表す画像が含まれている。なお、この例では、線図部分ＪＳは青（ハッチングで示す）、背景部分は右下から左上に色が薄くなる赤のグラデーションである。【０００８】
図１６（ａ）において、ブロックＢＫ内の画像が、Ｒ、Ｇ、およびＢの２４ビット（各色成分につき８ビット）で表されている場合、この画像のデータ量は、２４ビット×６４画素より、１５３６ビットとなる。【０００９】
このブロック内の画像をＢＴＣによって、例えば図１６（ｂ）のような４色の近似色で表される画像〔図１６（ｃ）〕に変換すると次のようなデータ量になる。なお、２ビットの「００」、「０１」、「１０」、および「１１」で示される４色は、それぞれ、青、淡い赤、それよりも濃い赤、およびさらに濃い赤である。【００１０】
まず、近似色のデータ量が、２４ビット×４色より、９６ビットとなる。近似色が４色であるので、２ビットでそれぞれを識別できる。ブロックＢＫ内の画素数は、６４（８×８）個であるので、ブロックＢＫ内の各画像と代表色との対応関係は、２ビット×６４画素より、１２８ビットとなる。これにより、変換後の画像は、９６ビット＋１２８ビットより、２２４ビットで表すことができる。よって、この例の場合は、変換前のデータ量である１５３６ビットおよび変換後のデータ量である２２４ビットより、約１４．６％に圧縮されたことになる。【００１１】
この圧縮率は、近似色の個数を減らしまたはブロックのサイズを大きくするほど高くなる。図１７には、ブロックのサイズと圧縮率の関係が示される。なお、効果的な圧縮を行うためには、ブロック内から適切に代表色を選び出すことが重要である。
【発明の開示】
【００１２】
ここで、図１８（ａ）に示すようなブロックＢＫに対して、ＢＴＣによる画像の変換を行う場合を考える。図１８（ａ）に示すように、ブロックＢＫは、縦８画素および横８画素の大きさのブロックである。ブロックＢＫにおいて、各画素の色は、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロー）、およびＫ（ブラック）の４色の２５６階調で表されており、Ｃ、Ｍ、Ｙ、およびＫが、それぞれ、「０」、「０」、「０」、および「１２０」である領域Ｂ１（グレー）と、「０」、「０」、「０」、および「２４０」である領域Ｂ２（黒に近いグレー）と、「２３０」、「０」、「０」、および「２４０」である領域Ｂ３（黒に近いが青みがかった色）が含まれる。領域Ｂ２およびＢ３は、Ｋの濃度値が高いので、領域Ｂ１に比べて色の濃さが際立っている。よって、このブロックＢＫ内の画像を２色の近似色で表される画像に変換することを考えた場合、画質をできるだけ低下させないためには、領域Ｂ２およびＢ３を同じ近似色として、図１８（ｂ）のような画像に変換することが望ましい。
【００１３】
ところが、このブロックＢＫに対して特開２００１−３３８２８４の方法を適用すると次のようになる。まず、Ｃ、Ｍ、Ｙ、およびＫのうちでブロックＢＫにおける分散を算出し、それが最大となる色成分を求める。図１８（ａ）に示す各領域の各色成分の濃度値より、Ｃの分散値が最大となる。よって、Ｃを着目色として選択する。
【００１４】
ブロックＢＫにおけるＣの平均値は、「１１５（４画素×８画素×２３０÷６４画素）」となる。この「１１５」を基準として、色成分のＣについてグループ分けを行うと、図１９（ａ）に示すように、領域Ｂ１および領域Ｂ２内の画素のグループＧＪ１と領域Ｂ３内の画素のグループＧＪ２とに分けられる。さらに、各グループについて各色成分の平均値を求め、それを各グループの代表色とする。そして、ブロックＢＫ内の画像を、求めた平均値によって表される画像に変換する。この例の場合、グループごとの各色成分の平均値は、図２０のようになる。これによって、ブロックＢＫ内の画像は、図１９（ｂ）のような画像に変換される。
【００１５】
このようにＣ、Ｍ、Ｙ、およびＫで表される画像に対して特開２００１−３３８２８４の方法を適用した場合には、区画したブロックＢＫ内の画像によって、ブロック内の画素に対して望ましいグループ分けができず、それによって無駄に画質を低下さてしまうことがある。
【００１６】
本発明はこのような問題点に鑑み、Ｃ、Ｍ、Ｙ、およびＫによって表される画像データの色数を減らすことによってデータ量を削減する画像処理において、従来よりも画質の低下を抑えることを目的とする。
【００１７】
本発明の一形態に係る画像処理方法は、カラーの画像内の複数の画素を含む小領域ごとに、それぞれの前記小領域を所定数以下の代表色で表す画像処理方法であって、各画素を表すシアン、マゼンタ、イエローおよびブラックの各色変数の値を取得する取得ステップと、シアン、マゼンタおよびイエローの各色変数の値から、ブラックの値が大きくなるほど値のばらつきの程度が小さくなる変換後の各色変数の値を求める値算出ステップと、１つの前記小領域内の複数の画素について、前記値算出ステップにおいて求めた変換後の各色変数の値のそれぞれの、当該小領域内におけるばらつきの程度を示すばらつき値に基づいて、着目する１つの変換後の色変数を選択する選択ステップと、当該小領域内における当該着目する変換後の色変数の値に基づいて、画素のグループ分けのための基準値を求める基準値算出ステップと、前記基準値算出ステップで求めた前記基準値に基づいて、当該小領域内の画素をグループ分けするグループ化ステップと、当該小領域内のグループごとに、当該グループに属する各画素の各色変数の値に基づいて代表色を求める代表色算出ステップと、を有する。
【００１８】
好ましくは、前記基準値算出ステップにおいて、当該小領域内における当該着目する変換後の色変数の最小値から最大値までの値のうちで、当該変換後の色変数の値と当該小領域内の画素の個数との関係において当該個数が「０」となる当該変換後の色変数の値がある場合は当該値を前記基準値として求める。
【００１９】
または、前記値算出ステップにおいて求めた変換後の各色変数の値についての、前記小領域内の各グループにおけるばらつき値に基づいて、着目するグループおよび着目する変換後の色変数を選択する第２選択ステップと、当該着目するグループ内における当該着目する変換後の色変数の最小値から最大値までの値のうちで、当該変換後の色変数の値と当該グループ内の画素の個数との関係において当該個数が「０」となる当該変換後の色変数の値がある場合は当該値を第２の基準値として求める第２基準値算出ステップと、前記第２基準値算出ステップで求めた前記第２の基準値に基づいて、当該着目するグループ内の画素をグループ分けする第２グループ化ステップと、を有し、前記代表色算出ステップにおいては、前記第２グループ化ステップの後の前記小領域内の各グループに対して代表色を求める。
【００２０】
または、前記選択ステップおよび前記第２選択ステップにおいて、前記ばらつき値を、値の変化によって色が大きく変化する、変換後の色変数ほど当該ばらつき値が大きくなるように重み付けを行って求め、求めた当該ばらつき値に基づいて選択する。
【００２１】
または、前記第２選択ステップにおいて、前記小領域内のグループごとに、グループ内の画素の個数が多いほどばらつき値が大きくなるように重み付けを行って前記ばらつき値を求め、求めた当該ばらつき値に基づいて選択する。
【００２２】
または、前記基準値算出ステップおよび前記第２基準値算出ステップにおいて、グループ内における着目する変換後の色変数の最大値から最小値までの値のうちで当該変換後の色変数の値と当該グループ内の画素の個数との関係において当該個数が「０」となる当該変換後の色変数の値がない場合は、当該最大値および当該最小値の中央の値に最も近い値を前記基準値として求める。
【００２３】
または、前記小領域内のグループの個数が所定の個数になるまで、当該小領域について、前記第２選択ステップ、前記第２基準値算出ステップ、および前記第２グループ化ステップを繰り返す。
【００２４】
または、前記小領域内の各グループのそれぞれにおける変換後の各色変数のばらつき値のいずれもが所定の閾値以下である場合は、当該小領域内のグループの個数が前記所定の個数より少ない場合であっても、前記グループ化ステップおよび前記第２グループ化ステップにおけるグループ分けを行わず、前記代表色算出ステップの処理を行う。
【００２５】
または、前記基準値算出ステップにおいては、着目する変換後の色変数の値とグループ内の画素の個数との関係において当該個数が「０」となる当該変換後の色変数の値が複数ある場合に、当該グループ内における当該変換後の色変数の最大値および最小値の中央の値に最も近い値を前記基準値とする。
【００２６】
または、当該グループ内における前記着目する変換後の色変数の値の中央値を前記基準値として求める。
【００２７】
または、当該グループ内における前記着目する変換後の色変数の値の平均値を前記基準値として求める。
【００２８】
本発明によると、Ｃ、Ｍ、Ｙ、およびＫによって表される画像データの色数を減らすことによってデータ量を削減する画像処理において、従来よりも画質の低下を抑えることができる。
【図面の簡単な説明】
【００２９】
【図１】本発明に係る画像データの圧縮方法を適用したプリントシステムの全体構成を示す図である。
【図２】プリンタのハードウェア構成の例を示す図である。
【図３】プリンタの機能的構成の例を示す図である。
【図４】区画されたブロックを説明するための図である。
【図５】ブロック処理部の構成の例を示す図である。
【図６】着目変数の値とブロック内の画素の個数との関係についてのヒストグラムを示す図である。
【図７】Ｌ、Ｒ＿Ｇ、およびＢの色空間で見た場合の画素のグループ分けを説明するための図である。
【図８】ブロック処理部における各部の処理の流れの例を説明するためのフローチャートである。
【図９】グループ化処理の流れを説明するためのフローチャートである。
【図１０】参考例のＢＴＣの処理を適用した後のブロックの画像を示す図である。
【図１１】実施例に係るブロック処理部の構成の例を示す図である。
【図１２】ＲＧＢの色空間におけるＲおよびＧの値の変化とＬａｂの色空間におけるＬおよびａの値の変化との関係を示す図である。
【図１３】ＣＭＹＫの色空間におけるＣおよびＭの値の変化とＬａｂの色空間におけるＬおよびａの値の変化との関係を示す図である。
【図１４】ブロックの例を示す図である。
【図１５】図１４に示すブロックに係る各色変数の値を示す図である。
【図１６】線図部分および背景部分の画像を含むブロックの例を示す図である。
【図１７】圧縮率とブロックのサイズとの関係を示す図である。
【図１８】３個の領域を有する画像を含むブロックの例を示す図である。
【図１９】従来のＢＴＣにおけるグループ分けを説明するための図である。
【図２０】ブロック内の各グループにおける各色成分の濃度値の平均値を示す図である。
【発明を実施するための最良の形態】
【００３０】
図１において、プリントシステム１は、ユーザがコンピュータ本体１１に対して入力した指令に基づいて、プリンタ１３で画像を印刷するためのシステムである。プリントシステム１は、コンピュータ本体１１、ディスプレイ１２、キーボード１４、マウス１５、およびプリンタ１３などから構成される。コンピュータ本体１１およびプリンタ１３は、ＵＳＢまたはＲＳ−２３２Ｃなどの通信ケーブルによって接続される。ＬＡＮなどの通信ネットワークを介して接続するようにしてもよい。【００３１】
コンピュータ本体１１は、外部から入力されまたは内部で生成した画像または文書などのデータを自らのハードディスクなどの記憶媒体に保存している。キーボード１４またはマウス１５などによってユーザから印刷実行の指令が与えられると、その指令に係る印刷対象のデータをページ記述言語などの、印刷のための所定の形式のデータに変換してプリンタ１３に送信する。以下、コンピュータ本体１１からプリンタ１３に送信される印刷対象のデータを「印刷対象データＤＰ」と記載することがある。【００３２】
プリンタ１３は、コンピュータ本体１１から送信されて来る印刷対象データＤＰを、本実施形態に係るＢＴＣ（Block Truncation Coding）の圧縮方式で圧縮し、内部のメモリなどの記憶媒体に保存する。そして、１ページ分のデータを保存するとそのページの印刷を開始する。【００３３】
なお、コンピュータ本体１１としてパーソナルコンピュータまたはワークステーションなどが用いられる。プリンタ１３としてカラー対応のレーザプリンタまたはＭＦＰなどが用いられる。【００３４】
図２に示すように、プリンタ１３は、ＣＰＵ１０ａ、ＲＡＭ１０ｂ、ＲＯＭ１０ｃ、ハードディスク１０ｄ、制御用回路１０ｅ、表示装置１０ｆ、通信インタフェース１０ｇ、および印刷装置１０ｈなどによって構成される。【００３５】
ＣＰＵ１０ａは、プリンタ１３の全体的な制御を行う。ハードディスク１０ｄには、種々のプログラムおよびデータがインストールされており、それらは必要に応じてＲＡＭ１０ｂに読み出され、読み出されたプログラムがＣＰＵ１０ａによって実行される。プログラムまたはデータの一部または全部を、ＲＯＭ１０ｃに記憶させておいてもよい。【００３６】
印刷装置１０ｈは、コンピュータ本体１１などから送信されてきた印刷対象データに基づいて、画像を用紙に印刷する装置である。【００３７】
通信インタフェース１０ｇは、他の装置と通信を行うための、ＲＳ―２３２ＣまたはＵＳＢなどの形式のインタフェースである。ＮＩＣ（Network Interface Card）またはモデムなどであってもよい。【００３８】
表示装置１０ｆは、プリンタ１３を操作するユーザへのメッセージまたはユーザが設定した内容などを表示する。【００３９】
制御用回路１０ｅは、ハードディスク１０ｄ、印刷装置１０ｈ、通信インタフェース１０ｇ、および表示装置１０ｆなどの装置を制御するための回路である。【００４０】
図３に示すように、プリンタ１３は、印刷対象データ取得部１０１、画像変換部１０２、画像区画処理部１０３、ブロック処理部１０４、圧縮データ生成部１０５、および圧縮データ保存部１０６などによって構成される。【００４１】
なお、これら各部の機能を実現するためのプログラムおよびデータは、ハードディスク１０ｄにインストールされている。これらのプログラムおよびデータは必要に応じてＲＡＭ１０ｂに読み出され、ＣＰＵ１０ａによってそのプログラムが実行される。これらのプログラムまたはデータの一部または全部を、ＲＯＭ１０ｃに記憶させておいてもよい。または、図３に示す機能の一部または全部を、制御用回路１０ｅなどのハードウェアによって実現するようにしてもよい。【００４２】
印刷対象データ取得部１０１は、コンピュータ本体１１などから送られてくる印刷対象データＤＰを取得する。画像変換部１０２は、取得した印刷対象データＤＰをビットマップなどの形式の画像データＤＧに変換（展開）する。Ｒ（赤）、Ｇ（緑）、およびＢ（青）の各原色（ＲＧＢ）によって表される画像データ、またはＣ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロー）、およびＫ（ブラック）の各原色（ＣＭＹＫ）によって表される画像データに変換することが可能である。本実施形態では、各原色が８ビットの２５６階調である画像データを用いるものとする。【００４３】
以下、画像データの「データ」を省略して単に「画像」と記載することがある。また、ＲＧＢによって表される画像を「ＲＧＢ画像」、ＣＭＹＫによって表される画像を「ＣＭＹＫ画像」と記載することがある。【００４４】
画像区画処理部１０３は、図４に示すように、画像データＤＧを所定のサイズの小領域であるブロックＢＫごとに区画する処理を行う。なお、本実施形態では、縦８画素および横８画素のサイズのブロックＢＫごとに区画する。以下、ブロックＢＫを「ブロックＢＫ１」、「ブロックＢＫ２」、…と連番を付して区別して記載することがある。他の符号についても同様に、符号に連番を付して区別して記載し、符号を省略することによって総称して記載することがある。【００４５】
この処理において、画像区画処理部１０３は、各ブロックＢＫについてのブロックデータＤＫを生成する。ブロックデータＤＫには、そのブロックＢＫの座標、サイズ、およびそのブロック内の各画素の濃度値などが含まれる。ブロックＢＫの座標としては、例えば、画像データＤＧの左上端を原点とした場合の、そのブロックＢＫの左上端の画素の座標を用いる。濃度値は、画素の色を表すＲＧＢなどの色成分のそれぞれの濃度値である。【００４６】
以下、本明細書において、「Ｒ」、「Ｇ」、および「Ｂ」を、それぞれ、Ｒ、Ｇ、およびＢの各色成分の濃度値を示す変数である色変数として記載することがある。Ｃ、Ｍ、Ｙ、Ｋ、Ｌ（明度）、Ｒ＿Ｇ（赤緑度）、およびＢ（青度）などの他の色成分についても同様に対応するアルファベットを色変数として記載することがある。【００４７】
ブロック処理部１０４は、ブロックＢＫごとに、本実施形態に係るＢＴＣの処理を施し、処理済ブロックデータＤＳを出力する。【００４８】
本実施形態では、ここにおいて、ブロックＢＫ内の各画素の濃度値を所定のルールに従って補正し、補正した後の値に基づいて各画素をグループ分けする。このブループ分けは、グループの個数などに関する所定の条件が満たされるまで繰り返す。【００４９】
そして、各グループの代表色を求め、その代表色をそのグループに属する画素の近似色とすることで、ブロック内の色数を減らし、データ量を削減する。【００５０】
具体的な処理の手順については、後に、ＲＧＢ画像およびＣＭＹＫ画像のそれぞれの場合に分けて説明する。【００５１】
圧縮データ生成部１０５は、各ブロックＢＫの処理済ブロックデータＤＳを用いて、画像データＤＧについての圧縮データＤＡを生成する。圧縮データ保存部１０６は、生成された圧縮データＤＡを保存する。１ページ分の圧縮データＤＡが保存されると、そのページの印刷が開始される。【００５２】
以下、参考例および実施例において、ブロック処理部１０４の処理についてさらに詳しく説明する。
〔参考例〕
本例では、画像変換部１０２において印刷対象データＤＰをＲＧＢの画像データＤＧに変換する場合における、ブロック処理部１０４の処理について説明する。【００５３】
図５に示すようにブロック処理部１０４は、ブロックデータ取得部１１１、色変換部１１２、明度補正部１１３、ばらつき値算出部１１４、ばらつき値判定部１１５、グループ化処理部１１６、グループ数判定部１１７、代表色算出部１１８、および処理済ブロックデータ生成部１１９などによって構成される。【００５４】
ブロックデータ取得部１１１は、画像区画処理部１０３からブロックデータＤＫを取得する。以下、取得したブロックデータＤＫに係るブロックＢＫ１について処理を行うものとして説明する。【００５５】
色変換部１１２は、これ以降の処理において色変数の値を変換し補正する際に適切な重み付けを行うために、ブロックデータＤＫに示されるブロックＢＫ１内の各画素のＲＧＢの各色変数の値（濃度値）から、Ｌ、Ｒ＿Ｇ、およびＢの色空間の値を求める。具体的には、画素ごとに、その画素のＲＧＢの各色変数の値を右辺に代入することによって、左辺のＬ、Ｒ＿Ｇ、およびＢ（ブルー信号）の各色変数の値を求める。【００５６】
Ｌ      ＝  （Ｒ×３＋Ｇ×６）÷８
Ｒ＿Ｇ  ＝  （Ｒ×６＋（２５５−Ｇ）×３）÷８
Ｂ      ＝  Ｂ                                    ……（１）
明度補正部１１３は、ブロックＢＫ１内の画素の明度を強調するための補正を行う。具体的には、色変換部１１２で求めた明度のＬの値を、以下の式（２）の右辺に代入することによって左辺の「Ｌ２」を求める。なお、「Ｌ２」は、補正後の明度の値を示す色変数である。【００５７】
Ｌ２＝Ｌ＋（（Ｌ−（Ｌｍａｘ−ＨＲ））×（Ｌ−（Ｌｍａｘ−ＨＲ）））÷ＨＲ
……（２）
ただし、
Ｌ２  ：補正後の明度
Ｌ  ：補正前の明度
Ｌｍａｘ  ： 定数（本例では、「２５５×（３＋６）÷８」）
ＨＲ（Highlight Range）  ：定数（本例では、「３０」）
とする。なお、本例では、
Ｌ  ＞  Ｌｍａｘ−ＨＲ  ……（３）
の条件を満たす場合にのみこの補正を行う。【００５８】
これによって、各画素の明度が、その値が高いほどさらに高くなるように補正される。画像の中の明るい部分（ハイライト部分）における見た目の色の変化は、暗い部分における変化よりも目立つことが経験的に分かっている。この補正はその性質を考慮したものである。【００５９】
このようにして求めた各色変数のＬ２、Ｒ＿Ｇ、およびＢの値は、画素ごとに、例えばブロックＢＫ１内におけるその画素の座標と対応付けて所定の記憶領域に保存する。【００６０】
ばらつき値算出部１１４は、ブロックＢＫ１における各色変数のばらつき具合またはばらつきの程度を示すばらつき値を求める。具体的には、ブロックＢＫ１内の各画素を一つのグループとして、次の式（４）によって求める。【００６１】
Ｒ１＝（ＲＧｍａｘ−ＲＧｍｉｎ）×（Ｎ＋３）×２
Ｒ２＝（Ｌｍａｘ−Ｌｍｉｎ）×（Ｎ＋３）×３
Ｒ３＝（Ｂｍａｘ−Ｂｍｉｎ）×（Ｎ＋３）×１  ……（４）
ただし、
Ｒ１  ：グループ内におけるＲ＿Ｇのばらつき値
Ｒ２  ：グループ内におけるＬ２のばらつき値
Ｒ３  ：グループ内におけるＢのばらつき値
ＲＧｍａｘ  ：グループ内におけるＲ＿Ｇの最大値
ＲＧｍｉｎ  ：グループ内におけるＲ＿Ｇの最小値
Ｌｍａｘ  ：グループ内におけるＬ２の最大値
Ｌｍｉｎ  ：グループ内におけるＬ２の最小値
Ｂｍａｘ  ：グループ内におけるＢの最大値
Ｂｍｉｎ  ：グループ内におけるＢの最小値
Ｎ  ：グループ内の画素数
とする。【００６２】
式（４）に示すように、本例では、ばらつき値として、ブロックＢＫ１内におけるＬ２、Ｒ＿Ｇ、およびＢの各色変数の変化量、すなわち最大値と最小値との差を求める。そして、この際に、ブロックＢＫ１内の画素の個数が多いほどばらつき値が大きくなるように重み付け（重み掛け）を行う。なお、このばらつき値として、ブロックＢＫにおける各色変数の値の分散値を求めるようにしてもよい。【００６３】
ばらつき値判定部１１５は、求めた各色変数のばらつき値のうちの最大値が所定の閾値以下であるか否か、すなわち以下の式（５）の条件を満たすか否かを判定する。所定の閾値以下である場合は、後に説明する代表色算出部１１８の処理が行われる。【００６４】
なお、この式は、式（４）における画素の個数に関する重み付けである「Ｎ＋３」をばらつき値から除外した値が「６」以下であるかどうかについて判定している。また、Ｒ＿Ｇの変化幅の「６」以下に対応する。【００６５】
Ｒｍａｘ  ＜  ６×（Ｎ＋３）  ……（５）
ただし、
Ｒｍａｘ：求めたばらつき値の最大値
Ｎ：グループ内の画素数
とする。【００６６】
グループ化処理部１１６は、ばらつき値が所定の閾値より大きい場合に、ブロックＢＫ１内の各画素を２つのグループに分けるための処理を行う。この処理は以下のようにして行う。【００６７】
まず、Ｌ２、Ｒ＿Ｇ、およびＢの各色変数のうちで、ばらつき値が最大であるものを着目変数（着目色）として選択する。ブロックＢＫ１内におけるその着目変数の最小値および最大値を求める。その最小値から最大値までを１６等分する。以下、１６等分されてできた個々の範囲のことを「セクタ」と記載することがある。さらに、セクタごとに、着目変数の値がセクタの範囲内であるブロックＢＫ１内の画素の個数をカウントし、セクタとその個数との関係を示すヒストグラムを生成する。【００６８】
ブロックＢＫ１が図１６（ａ）に示すようなブロックＢＫであった場合は、例えば、図６のようなヒストグラムが得られる。なお、この図１６（ａ）に示されるブロックＢＫには、線図部分ＪＳおよびその背景の部分（背景部分）を表す画像が含まれている。【００６９】
このヒストグラムにおいて、左側のセクタ群が線図部分ＪＳの画素についてのセクタを示す。右側のセクタ群が背景部分画素についてのセクタを示す。なお、このヒストグラムでは、色変数の値が大きいほど見た目が明るくなる（薄くなる）ものとしている。【００７０】
図６のヒストグラムにおいて、中央付近のセクタから順番に、個数が「０」であるセクタ、すなわちヒストグラムの切れ目となる不連続点を探索する。なお、この際に両端のセクタは探索対象から除外する。図６の例では、左のセクタから順に「１」から「１６」までの番号を割り振った場合において、６番目のセクタがこの探索によって検出される。【００７１】
検出したセクタに基づく値（例えば、そのセクタ内の最大値）を閾値として、着目変数の値がその閾値よりも大きい画素のグループと小さい画素のグループとに分ける。グループ分けの際の具体的な処理としては、各画素に、その画素が属するグループの識別番号を割り振り、画素の座標とその識別番号とが対応付けて保存する。【００７２】
なお、ヒストグラムにおいて個数が「０」のセクタがない場合は、ばらつき値の最大値および最小値の中間の値または中間に最も近いセクタに基づく値をグループ分けのための閾値とする。【００７３】
グループ数判定部１１７は、ブロックＢＫ１内のグループが所定の個数（本例では、４個）に達したか否か判定する。以下、この個数のことを「目標個数」と記載することがある。【００７４】
グループの個数が「目標個数」に達していない場合は、ばらつき値算出部１１４、ばらつき値判定部１１５、グループ化処理部１１６、およびグループ数判定部１１７によって、再度グループ分けのための処理を行う。この処理は以下のような手順で行う。【００７５】
まず、ばらつき値算出部１１４は、ブロックＢＫ１内のグループごとに、そのグループにおける各色変数のばらつき値を既に説明した式（４）を用いて求める。グループの個数が２個である場合、本例では、ここで６個のばらつき値が求められる。ばらつき値判定部１１５は、求めたばらつき値の最大値が所定の閾値より小さいか否か、すなわち求めたばらつき値のいずれもが所定の閾値より小さいか否かを判定する。小さい場合は、グループ分けは行わず、代表色算出部１１８の処理に移る。いずれかのばらつき値が閾値以上である場合は、グループ分けの処理に移る。【００７６】
グループ分けの処理に際して、グループ化処理部１１６は、求めた６個のばらつき値のうちで最大のばらつき値である色変数およびそのばらつき値に係るグループを、それぞれ、着目変数および着目グループとして選択する。その着目ブループにおけるその着目変数の最大値および最小値を求め、図６の場合と同様にしてヒストグラムを生成する。さらに、そのヒストグラムの不連続点を探索し、それに基づいてグループ分けのための閾値を求める。そして、その閾値に基づいて、着目グループに属する各画素を２つのグループに分ける。【００７７】
この後、グループ数判定部１１７において、グループの個数が目標個数に達したことが確認されると、グループ分けの処理を終了し、代表色算出部１１８の処理に移る。目標個数に達していない場合は、ばらつき値算出部１１４、ばらつき値判定部１１５、グループ化処理部１１６、およびグループ数判定部１１７によって再度グループ分けの処理を行う。【００７８】
代表色算出部１１８は、ブロックＢＫ１内の各グループについて、そのグループの代表色を求める。具体的には、以下のようにして求める。【００７９】
まず、代表色を求めるグループの各画素のＲ、Ｇ、およびＢの値を取得する。この各色変数の値は、ブロックデータ取得部１１１が取得したブロックデータＤＫに示される。Ｒ、Ｇ、およびＢのそれぞれについて、そのグループにおける平均値を求める。求めたＲ、Ｇ、およびＢの各平均値によって表される色をそのグループの代表色とする。本例では、ＲＧＢのそれぞれが８ビットである２４ビットの代表色を求める。求めた代表色は、その代表色に係るグループの識別番号と対応付けて所定の記憶領域に保存する。【００８０】
処理済ブロックデータ生成部１１９は、ブロックＢＫ１内の画像を求めた代表色で表すためのデータである処理済ブロックデータＤＳを生成する。処理済ブロックデータＤＳには、各グループの代表色、グループの識別番号、グループと代表色との対応関係、および画素とその画素が属するグループの識別番号との対応関係が示される。【００８１】
ここで、Ｌ、Ｒ＿Ｇ、およびＢの色空間で見た場合の画素のグループ分けについて図７を参照しながら説明する。【００８２】
図７には、ブロックＢＫ内の各画素について、Ｌ２、Ｒ＿Ｇ、およびＢの各色変数の値に基づいて、Ｌ、Ｒ＿Ｇ、およびＢの色空間に点をプロットした場合における分布範囲Ｇ１が示される。ここでは、分布範囲Ｇ１を「グループＧ１」と呼ぶことがある。なお、図７においては、画素の分布をＬ軸およびＢ軸を通る平面に投影したものとして、２次元で考える。すなわち、Ｒ＿Ｇの方向は考慮しないものとする。また、分布範囲Ｇ１は、Ｂ軸の方向に長いものとする。【００８３】
グループ分けに先立って、グループＧ１に対して２ビットの識別番号を割り振っておく。ここでは、その識別番号を「００」とする。【００８４】
図７において、レンジＲＬ１およびＲＢ１は、それぞれ、Ｌ軸方向およびＢ軸方向の分布範囲Ｇ１の長さである。ここでは、このレンジＲＬ１およびＲＢ１がこのブロックＢＫにおけるＬおよびＢの各色変数のばらつき値として説明する。【００８５】
この例では、レンジＲＢ１の方が長いので、まず、Ｂを着目変数として選択する。この着目変数のばらつき値であるレンジＲＢ１が所定の閾値より大きい場合は、レンジＲＢ１の中央値でグループＧ１を分割して、図７（ｂ）に示すように、新たなグループＧ２を作る。ここで、グループＧ２の識別番号として「０１」を割り振る。以下、グループＧ１の残りの部分を「グループＧ１ｂ」と記載する。【００８６】
分割の後、各グループＧ１ｂおよびＧ２について、各方向の長さ（レンジＲＬ２、ＲＢ２、ＲＬ１ｂ、およびＲＢ１ｂ）を求める。ここでは、レンジＲＬ２が最も長かったものとする。【００８７】
この場合において、レンジＲＬ２が所定の閾値より大きい場合は、さらに、グループ分けを行う。この場合は、レンジＲＬ２の中央値に基づいて、グループＲＬ２を分割して、図７（ｃ）に示すように新たなグループＧ３を作る。ここで、グループＧ３の識別番号として「１０」を割り振る。以下、グループＧ２の残りの部分を「グループＧ２ｂ」と記載する。【００８８】
図７（ｃ）においても、同様にして、各グループＧ１ｂ、Ｇ２ｂ、およびＧ３の各方向の長さを求める。そして、その最大値が所定の閾値以下である場合には、グループ分けを行う。このような処理をグループの個数が４個になるまで繰り返す。【００８９】
図８において、まず、画像区画処理部１０３からブロックデータＤＫを取得する。そのブロックデータＤＫに示されるブロックＢＫ内の各画素について、ＲＧＢの色空間の値を見た目の色の変化に比例して値が変化する色空間（Ｌ、Ｒ＿Ｇ、およびＢの色空間）の値に変換する（＃１０１）。さらに、明度に関連する色変数（Ｌ）の値を、その値が大きいほどさらに大きくなるように補正する（＃１０２）。【００９０】
ステップ＃１０１および＃１０２の後の各色変数について、ブロックＢＫ内における変化の幅（レンジ）であるばらつき値を求める（＃１０３）。求めた各ばらつき値のうちの最大値を保存し、ばらつき値が最大となった色変数を着目変数に設定する（＃１０４）。【００９１】
最大値が所定の閾値以下である場合は（＃１０５でＹｅｓ）、ブロックＢＫについての代表値を求める（＃１０９）。最大値が所定の閾値より大きいである場合は（＃１０５でＮｏ）、ブロックＢＫ全体を着目グループとして、着目グループに属する画素をグループ分けするグループ化処理を行う（＃１０６）。【００９２】
図９のグループ化処理において、まず、その着目変数の値と着目グループ内における画素の個数との関係を表すヒストグラムを生成する（＃２０１）。なお、ここでは、図６のヒストグラムが生成されたものとして説明する。【００９３】
まず、ヒストグラムにおけるセクタの番号をカウントするためのカウンタである「ｎ」の値を「０」に初期化する（＃２０２）。「８＋ｎ」の番号のセクタである８番目のセクタの個数をチェックする。その個数が「０」である場合は（＃２０３でＹｅｓ）、そのセクタの最大値をグループ分けのための閾値として決定する（＃２０４）。なお、この場合において、そのセクタにおける最小値または中央値などの他の値を閾値としてもよい。そして、求めた閾値に基づいて、着目グループ内の画素を２つのグループに分ける（＃２０５）。【００９４】
ステップ＃２０３において、図６の例では８番目のセクタの画素の個数は「０」ではないので、ステップ＃２０６に進む。ステップ＃２０６において、ｎの値をチェックする。その値が「７」である場合は、着目変数の着目グループ内におけるばらつき値の最大値および最小値の中間の値をグループ分けのための閾値として決定する（＃２０８）。そして、求めた閾値に基づいて、グループ分けを行う（＃２０５）。ここではｎの値は「０」であるので、ステップ＃２０７に進む（＃２０６でＮｏ）。【００９５】
ステップ＃２０７において、「８−ｎ」の番号のセクタの個数をチェックする。「０」である場合は（＃２０７でＹｅｓ）、ステップ＃２０４に進む。ここでは、「０」ではないので、ｎの値を１つインクリメントする（＃２０９）。そして、ステップ＃２０３に戻り、以降同様の処理を繰り返す。この繰り返しによって、中央のセクタから両端に向かって順に、画素の個数が「０」であるセクタの探索が行われる。【００９６】
処理を繰り返している間に、あるタイミングでｎの値が「２」にインクリメントされる。すると、ステップ＃２０７からステップ＃２０４に進む。そして、「８−ｎ」の番号のセクタである６番のセクタの個数は「０」であるので、そのセクタの値に基づいて閾値が決定され（＃２０４）、グループ分けが行われる（＃２０５）。【００９７】
もしも、画素の個数が「０」であるセクタがなかった場合は、ステップ＃２０３以降の処理が繰り返され、ｎの値が「７」になったときに、ステップ＃２０６からステップ＃２０８の処理に進む（＃２０６でＹｅｓ）。すなわち、１５番目のセクタまでの探索が終了すると、探索の処理を終了し、そのグループにおける着目変数の最大値および最小値の中央値を閾値として決定する（＃２０８）。【００９８】
以上の処理によって、両端のセクタである1番目および１６番目のセクタを除く全てのセクタについて、中央付近の８番目のセクタから始まり、９番目、７番目、１０番目、…のように順番に端のセクタに向かって探索が行われる。これによって、個数が「０」となる不連続点のうちで中央の値に最も近いセクタが検出される。【００９９】
なお、ここでは、このグループ分けによってできたいずれか片方のグループを新しくできた新グループとし、残りの画素のグループを旧グループと呼ぶことにする。【０１００】
図８に戻って、まず、旧グループにおける各色変数のばらつき値を求める（＃１０７）。この際に、グループ内の画素の個数が多いほどばらつき値が大きくなるように重み付けをする。また、値が大きくなるほど見た目の明るさが増す色変数ほどばらつき値が大きくなるように重み付けをする。グループの個数が４個に達した場合は（１０８でＮｏ）、各グループの代表値を算出する（＃１０９）。【０１０１】
グループの個数が４個未満である場合は（＃１０８でＹｅｓ）、ステップ＃１０３以降の処理を繰り返す。その場合においてステップ＃１０３では、新グループについての各色変数のばらつき値を求める。この際に、グループ内の画素の個数が多いほどばらつき値が大きくなるように重み付けをする。また、値が大きくなるほど見た目の明るさが増す色変数ほどばらつき値が大きくなるように重み付けをする。【０１０２】
求めたばらつき値のうちの最大値を保存する（＃１０４）。そして、その最大値に係る色変数およびグループを、それぞれ、着目変数および着目グループとして、グループ化処理を行う（＃１０６）。以下同様にして、ステップ＃１０３以降の処理を繰り返し、グループの個数が４個に達するかまたは求めたばらつき値のうちの最大値が所定の閾値以下になるまでグループ分けを繰り返す。そして、ブロックＢＫ内に定義されたグループごとに代表値を算出し（＃１０９）、それに基づいて、処理済ブロックデータＤＳを生成し、保存する。【０１０３】
以上の処理を区画した全てのブロックＢＫに対して行い、画像データＤＧの圧縮データＤＡを生成する。【０１０４】
ところで、特開２００１−３３８２８４に示される従来の方法では、ブロックＢＫ内における着目変数の平均値を閾値としてグループ分けを行う。従って、ブロックＢＫ内の画像が図１６（ａ）のような画像である場合、グループ分けの閾値が、画素数の少ない線図部分ＪＳの画素の濃度値よりも画素数の多い背景部分の画素の濃度値に近い値になる。それによって、その閾値が、例えば図６に示す値ＳＫのように、背景部分の画素を二分する値となることがある。そうすると、背景部分の一部が線図部分の画素と同じグループに分類され、線図部分と同じ近似色に変換されるので、大きく画質を低下させてしまう。【０１０５】
しかし、本例によると、ヒストグラムにおいて画素の個数が「０」となるセクタに基づいてこの閾値を決定するので、線図部分の画素のグループと背景部分の画素のグループとに適切にグループ分けすることができ、そのような画質の低下を防ぐことができる。【０１０６】
図１６（ａ）のブロックＢＫに本例の方法を適用してブロックＢＫ内を２色の代表色で表す場合、すわなち２個のグループに分ける場合は、例えば図１０（ａ）のようになる。４色の代表色で表す場合は、図１０（ｂ）のようになる。【０１０７】
なお、２色の代表色で表す場合は、元のブロックＢＫ内の画像（２４ビットのフルカラーの画像）のデータ量が「２４ビット×６４画素」より１５３６ビットであり、圧縮後のデータ量が「１ビット×６４画素＋２４ビット×２色」より１１２ビットとなるので概ね７％に圧縮できたことになる。４色の代表色で表す場合は、圧縮後のデータ量が「２ビット×６４画素＋２４ビット×４色」より２２４ビットとなるので概ね１５％に圧縮できたことになる。【０１０８】
また、本例によると、ブロックＢＫ内で用いられている色が４色以下の場合、色ごとに正しくグループ分けされるので、色の変化による画質の低下がない。４色よりも多い場合は、近い色の画素同士が同じグループに分類されるので、画素の色を変色の少ない適切な色に変換できる。【０１０９】
さらに、グループの個数が所定の個数に達していなくても、ブロックＢＫ内の各グループについて求めた各ばらつき値が所定の閾値以下である場合は、それ以上グループ分けは行ない。これによって、画質を大きく低下させることなくグループ分けの処理の回数を減らすことができ、処理の効率を上げることができる。
〔実施例〕
本実施例では、画像変換部１０２において印刷対象データＤＰをＣＭＹＫの画像データＤＧに変換する場合における、ブロック処理部１０４（以下、本実施例では、「ブロック処理部１０４Ｂ」と記載する。）の処理について説明する。概ね参考例と同様の処理であるため、参考例とは異なる点を中心に説明を行う。【０１１０】
本実施例に係るブロック処理部１０４Ｂは、参考例における図５のブロック処理部１０４にさらに「ＲＧＢ変換部」を設けることによって図１１のように構成される。【０１１１】
図１１において、ブロックデータ取得部１１１は、ブロックＢＫ１内の各画素のＣ、Ｍ、Ｙ、およびＫの各色変数（色成分）の値（濃度値）を含むブロックデータＤＫを取得する。【０１１２】
ＲＧＢ色変換部１２０は、そのブロックＢＫ１内の各画素の各色変数の値から、Ｒ、Ｇ、およびＢの各色変数の値を求める。ここでは、インクおよびトナーの特性を考慮して以下の式（６）を用いる。具体的には、式（６）の右辺にＣ、Ｍ、Ｙ、およびＫの値を代入することによって、Ｒ、Ｇ、およびＢの値を求める。【０１１３】
Ｒ  ＝  （２５５−Ｃ）×（２５５＋２０−Ｋ）÷２５６
Ｇ  ＝  （２５５−Ｍ）×（２５５＋２０−Ｋ）÷２５６
Ｂ  ＝  （２５５−Ｙ）×（２５５＋２０−Ｋ）÷２５６      ……（６）
上記式（６）内の定数の「２０」は、Ｋの値が１００％（２５６階調の場合は「２５６」）のときでも、Ｃ、Ｍ、およびＹが変化すれば色調が変わることを考慮した係数である。この式によって、Ｋの値が大きいほど、Ｒ、Ｇ、およびＢの値の変化量が小さくなる変換がなされる。【０１１４】
色変換部１１２は、求めたＲ、Ｇ、およびＢの各色変数の値から、Ｌ、Ｒ＿Ｇ、およびＢの各色変数の値を求める。ここでは、上述の式（１）の代わりに以下の式（７）を用いる。なお、式（１）をそのまま用いてもよい。【０１１５】
Ｌ      ＝  （Ｒ＋Ｇ）÷２
Ｒ＿Ｇ  ＝  （Ｒ＋２５５＋３０−Ｇ）÷２
Ｂ      ＝  Ｂ                            ……（７）
明度補正部１１３は、上述の式（２）を用いて明度を強調するための補正を行う。ただし、ＣＭＹＫ画像を対象とする本実施例では、式（２）の「Ｌｍａｘ」の値を「２８５（２５５＋３０）」として計算する。【０１１６】
ＣＭＹＫ画像の場合は、実際の色調とここで用いた定義との差のため、実際には色が変化しているにもかかわらず、Ｌ、Ｒ＿Ｇ、およびＢの３次元量が変化しない場合がある。そのような場合においてもグループ分けが適切に行われるようにするために、Ｋを含めた４次元空間にてグループ分けを行う。既にＲ、Ｇ、およびＢにＫの要素が含まれているため、Ｋの値に対して以下の式（８）のようにウェイトを下げる補正をする。すなわち、以下の式（８）の右辺にＫの値を代入してＫ２を求める。【０１１７】
Ｋ２＝Ｋ÷４    ……（８）
ばらつき値算出部１１４は、ブロックＢＫ１における各色変数のばらつき具合を示すばらつき値を求める。本実施例では、式（４）の代わりに以下の式（９）を用いる。この場合において、ＢよりもＲ＿Ｇ、Ｒ＿ＧよりもＬに大きな重み付けをする。これは、値の変化によって色が大きく変化する色変数ほどばらつき値が大きくなるようにするためである。また、この式（９）においても、ブロックＢＫ１内の画素数Ｎが多いほどばらつき値が大きくなるように重み付けがされる。【０１１８】
Ｒ１＝（ＲＧｍａｘ−ＲＧｍｉｎ）×（Ｎ＋３）×３
Ｒ２＝（Ｌｍａｘ−Ｌｍｉｎ）×（Ｎ＋３）×４
Ｒ３＝（Ｂｍａｘ−Ｂｍｉｎ）×（Ｎ＋３）×２
Ｒ４＝（Ｋｍａｘ−Ｋｍｉｎ）×（Ｎ＋３）×２  ……（９）
ただし、
Ｒ１  ：Ｒ＿Ｇのばらつき値
Ｒ２  ：Ｌ２のばらつき値
Ｒ３  ：Ｂのばらつき値
Ｒ４  ：Ｋ２のばらつき値
ＲＧｍａｘ  ：ブロックＢＫ内におけるＲ＿Ｇの補正値の最大値
ＲＧｍｉｎ  ：ブロックＢＫ内におけるＲ＿Ｇの補正値の最小値
Ｌｍａｘ  ：ブロックＢＫ内におけるＬ２の補正値の最大値
Ｌｍｉｎ  ：ブロックＢＫ内におけるＬ２の補正値の最小値
Ｂｍａｘ  ：ブロックＢＫ内におけるＢの補正値の最大値
Ｂｍｉｎ  ：ブロックＢＫ内におけるＢの補正値の最小値
Ｋｍａｘ  ：ブロックＢＫ内におけるＫ２の補正値の最大値
Ｋｍｉｎ  ：ブロックＢＫ内におけるＫ２の補正値の最小値
Ｎ  ：ブロックＢＫ内の画素数
とする。【０１１９】
ばらつき値判定部１１５は、求めた各色変数のばらつき値が所定の閾値以下であるか否かを判定する。グループ化処理部１１６は、ばらつき値が所定の閾値より大きい場合に、ブロックＢＫ１内の各画素を２つのグループに分けるための処理を行う。【０１２０】
グループ数判定部１１７は、ブロックＢＫ１内のグループが目標個数に達したか否かを判定する。これら、ばらつき値判定部１１５、グループ化処理部１１６、およびグループ数判定部１１７の処理の詳細については、参考例において既に説明したとおりである。【０１２１】
ＲＧＢ色空間において、ＲおよびＧの値を変化させた際のＬａｂ（Ｌ＊ａ＊ｂ＊）の色空間の値の変化をＬ軸およびａ軸を通る平面（Ｌａ平面）上にプロットすると、図１２に示す領域Ｓ１の範囲内にその値が分布する。【０１２２】
これに対して、ＣＭＹＫ色空間の場合は、ＣおよびＭの値を変化に対して図１３のようにＬａ平面上に値が分布する。図１３より、ＣＭＹＫの場合は、Ｋの値が大きくなるに従って、Ｌａ平面における値の分布範囲が領域Ｔ１、Ｔ２、…のように変化し、徐々に値の変化の割合が減少していくことが分かる。【０１２３】
Ｌａｂ色空間においては、Ｌ、ａ、およびｂの各変数の値の変化と実際の見た目に色合いの変化とが概ね比例することが知られている。よって、図１３のようにＫの値が大きくなるに従ってＬａ平面上の値の変化の割合が減少することは、Ｋの値が大きいほど、ＣおよびＭの値の変化に対して見た目があまり変化しないことを示している。これは、ＣＭＹＫの各色変数の値の変化と見え方の変化とが比例関係から大きく隔たっていることを意味する。【０１２４】
ＢＴＣの処理による画像の変換において画質の低下を抑えるためには、実際の見た目の色合いが近い画素同士が同じグループとなるようにグループ分けをして各グループの色を近似色に置き換える必要があり、ＣＭＹＫ画像の場合は、そのために、Ｋの値を考慮する必要がある。そこで本実施例では、上述の式（６）によって、Ｋの値に応じて、Ｒ、Ｇ、およびＢの各色変数の値が変化するように変換を行っている。【０１２５】
ここで、図１４（ａ）に示すブロックＢＫ２に対して本実施例の処理を適用する場合を考える。【０１２６】
図１４（ａ）に示すように、ブロックＢＫ２は、縦８画素および横８画素のサイズのブロックであり、３つの領域Ｂ１、Ｂ２、およびＢ３が含まれる。各領域は、それぞれ、同じ色の画素によって構成される。各領域におけるＣ、Ｍ、Ｙ、およびＫの各色変数の値は、図１４（ａ）に示すとおりである。【０１２７】
ここにおいて、まず、ＣＭＹＫ色空間の値をＲＧＢ色空間の値に変換する。式（６）に基づいてＲ、Ｇ、およびＢの値を求めると、各領域についてそれぞれ図１５（ａ）に示す値が得られる。なお、ここでは、少数第一位以下は切り捨てて計算するものとする。【０１２８】
求めたＲ、Ｇ、およびＢの各値を式（７）に代入すると各領域についてそれぞれ図１５（ｂ）に示すＬ、Ｒ＿Ｇ、およびＢの値が得られる。図１５（ｂ）より各領域におけるＬの値は、式（３）の条件を満たさないので、式（２）による明度の補正は行わない。【０１２９】
次に、各領域Ｂ１、Ｂ２、およびＢ３におけるＫの値を式（８）を用いて、それぞれ、「３０」、「６０」、および「６０」に補正する。【０１３０】
そして、求めたＬ、Ｒ＿Ｇ、Ｂ、およびＫの値を用い、式（９）に基づいてばらつき値を求める。【０１３１】
式（９）より、Ｒ＿Ｇ、Ｌ、Ｂ、およびＫのばらつき値は、それぞれ、「３０１５」、「３６４４８」、「１６０８０」、および「４０２０」となる。ここで、ばらつき値が最大であるＬを着目変数として選択する。【０１３２】
図１５（ｂ）より、ブロックＢＫ２におけるＬの最大値および最小値は、それぞれ、「１５４」および「１９」であるので、グループ分けのための閾値は、その中央値の「８７」となる。【０１３３】
ブロックＢＫ２内の画素を、Ｌの値がこの閾値以上のグループと閾値未満のグループとに分けると、図１４（ｂ）に示すように、領域Ｂ１に含まれる画素のグループと領域Ｂ２およびＢ３に含まれる画素のグループとに分けることができる。【０１３４】
ＣＭＹＫ画像の場合は、Ｋの値が大きい画像にいては、Ｃ、Ｍ、およびＹの値の変化が大きくても見た目の色の変化は小さくなる。しかし、従来は、Ｃ、Ｍ、およびＹの値の変化が大きい場合には、見た目の色の変化にかかわらず、図１４（ｃ）に示すようなグループ分けがされることがあった。【０１３５】
しかし、本実施例の方法を適用によると、Ｋの値を考慮するので、見た目の色合いに対応した適切なグループ分けを行うことができ、ＢＴＣによる画質の低下を従来よりも抑えることができる。【０１３６】
本実施形態では、グループ分けのための閾値をヒストグラムに基づいて求める場合を示したが、グループ内における着目変数の中央値または平均値などをその閾値として用いるようにしてもよい。【０１３７】
本実施形態では、グループ分けのために、Ｌ、Ｒ＿Ｇ、およびＢの色空間の値についてばらつき値を求めたが、ＲＧＢ色空間の値のばらつき値を求めてもよい。【０１３８】
なお、本実施形態に係るＢＴＣの処理をコンピュータ本体１１などの、プリンタ１３以外の装置において実行することも可能である。【０１３９】
その他、プリントシステム１およびプリンタ１３の全体または各部の構成、機能、目標個数、各閾値、各データが示す内容、処理の内容または順序などは、本発明の趣旨に沿って適宜変更することができる。
【図１】
2009001549.tif 000003
【図２】
2009001549.tif 000004
【図３】
2009001549.tif 000005
【図４】
2009001549.tif 000006
【図５】
2009001549.tif 000007
【図６】
2009001549.tif 000008
【図７】
2009001549.tif 000009
【図８】
2009001549.tif 000010
【図９】
2009001549.tif 000011
【図１０】
2009001549.tif 000012
【図１１】
2009001549.tif 000013
【図１２】
2009001549.tif 000014
【図１３】
2009001549.tif 000015
【図１４】
2009001549.tif 000016
【図１５】
2009001549.tif 000017
【図１６】
2009001549.tif 000018
【図１７】
2009001549.tif 000019
【図１８】
2009001549.tif 000020
【図１９】
2009001549.tif 000021
【図２０】
2009001549.tif 000022
【手続補正書】
【提出日】平成21年12月18日(2009.12.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
カラーの画像内の複数の画素を含む小領域ごとに、それぞれの前記小領域を所定数以下の代表色で表す画像処理方法であって、
各画素を表すシアン、マゼンタ、イエローおよびブラックの各色変数の値を取得する取得ステップと、
シアン、マゼンタ、イエロー、およびブラックの各色変数の値に基づいて変換後の色変数の値を求める色変数の変換において、ブラックの値が大きくなるほど、変換前のシアンまたはマゼンタまたはイエローの各色変数の値の差に対する変換後の色変数の差の割合が小さくなるよう、シアン、マゼンタ、イエロー、およびブラックの各色変数の値を変換して変換後の色変数の値を求める値算出ステップと、
１つの前記小領域内の複数の画素について、前記値算出ステップにおいて求めた変換後の各色変数の値のそれぞれの、当該小領域内におけるばらつきの程度を示すばらつき値に基づいて、着目する１つの変換後の色変数を選択する選択ステップと、
当該小領域内における当該着目する変換後の色変数の値に基づいて、画素のグループ分けのための基準値を求める基準値算出ステップと、
前記基準値算出ステップで求めた前記基準値に基づいて、当該小領域内の画素をグループ分けするグループ化ステップと、
当該小領域内のグループごとに、当該グループに属する各画素の各色変数の値に基づいて代表色を求める代表色算出ステップと、
を有することを特徴とする画像処理方法。
【請求項２】
前記基準値算出ステップにおいて、当該小領域内における当該着目する変換後の色変数の最小値から最大値までの値のうちで、当該変換後の色変数の値と当該小領域内の画素の個数との関係において当該個数が「０」となる当該変換後の色変数の値がある場合は当該値を前記基準値として求める、
請求項１記載の画像処理方法。
【請求項３】
前記値算出ステップにおいて求めた変換後の各色変数の値についての、前記小領域内の各グループにおけるばらつき値に基づいて、着目するグループおよび着目する変換後の色変数を選択する第２選択ステップと、
当該着目するグループ内における当該着目する変換後の色変数の最小値から最大値までの値のうちで、当該変換後の色変数の値と当該グループ内の画素の個数との関係において当該個数が「０」となる当該変換後の色変数の値がある場合は当該値を第２の基準値として求める第２基準値算出ステップと、
前記第２基準値算出ステップで求めた前記第２の基準値に基づいて、当該着目するグループ内の画素をグループ分けする第２グループ化ステップと、を有し、
前記代表色算出ステップにおいては、前記第２グループ化ステップの後の前記小領域内の各グループに対して代表色を求める、
請求項２記載の画像処理方法。
【請求項４】
前記選択ステップおよび前記第２選択ステップにおいて、前記ばらつき値を、値の変化によって色が大きく変化する、変換後の色変数ほど当該ばらつき値が大きくなるように重み付けを行って求め、求めた当該ばらつき値に基づいて選択する、
請求項３記載の画像処理方法。
【請求項５】
前記第２選択ステップにおいて、前記小領域内のグループごとに、グループ内の画素の個数が多いほどばらつき値が大きくなるように重み付けを行って前記ばらつき値を求め、求めた当該ばらつき値に基づいて選択する、
請求項４記載の画像処理方法。
【請求項６】
前記基準値算出ステップおよび前記第２基準値算出ステップにおいて、グループ内における着目する変換後の色変数の最大値から最小値までの値のうちで当該変換後の色変数の値と当該グループ内の画素の個数との関係において当該個数が「０」となる当該変換後の色変数の値がない場合は、当該最大値および当該最小値の中央の値に最も近い値を前記基準値として求める、
請求項５記載の画像処理方法。
【請求項７】
前記小領域内のグループの個数が所定の個数になるまで、当該小領域について、前記第２選択ステップ、前記第２基準値算出ステップ、および前記第２グループ化ステップを繰り返す、
請求項３ないし６のいずれかに記載の画像処理方法。
【請求項８】
前記小領域内の各グループのそれぞれにおける変換後の各色変数のばらつき値のいずれもが所定の閾値以下である場合は、当該小領域内のグループの個数が前記所定の個数より少ない場合であっても、前記グループ化ステップおよび前記第２グループ化ステップにおけるグループ分けを行わず、前記代表色算出ステップの処理を行う、
請求項７記載の画像処理方法。
【請求項９】
前記基準値算出ステップにおいては、着目する変換後の色変数の値とグループ内の画素の個数との関係において当該個数が「０」となる当該変換後の色変数の値が複数ある場合に、当該グループ内における当該変換後の色変数の最大値および最小値の中央の値に最も近い値を前記基準値とする、
請求項１ないし８のいずれかに記載の画像処理方法。
【請求項１０】
当該グループ内における前記着目する変換後の色変数の値の中央値を前記基準値として求める、
請求項１記載の画像処理方法。
【請求項１１】
当該グループ内における前記着目する変換後の色変数の値の平均値を前記基準値として求める、
請求項１記載の画像処理方法。
【請求項１２】
カラーの画像内の複数の画素を含む小領域ごとにそれぞれの前記小領域を所定数以下の代表色で表す画像処理を行う画像処理装置であって、
各画素を表すシアン、マゼンタ、イエローおよびブラックの各色変数の値を取得する取得手段と、
シアン、マゼンタ、イエロー、およびブラックの各色変数の値に基づいて変換後の色変数の値を求める色変数の変換において、ブラックの値が大きくなるほど、変換前のシアンまたはマゼンタまたはイエローの各色変数の値の差に対する変換後の色変数の差の割合が小さくなるよう、シアン、マゼンタ、イエロー、およびブラックの各色変数の値を変換して変換後の色変数の値を求める値算出手段と、
１つの前記小領域内の複数の画素について、前記値算出手段において求めた変換後の各色変数の値のそれぞれの、当該小領域内におけるばらつきの程度を示すばらつき値に基づいて、着目する１つの変換後の色変数を選択する選択手段と、
当該小領域内における当該着目する変換後の色変数の値に基づいて、画素のグループ分けのための基準値を求める基準値算出手段と、
前記基準値算出手段が求めた前記基準値に基づいて、当該小領域内の画素をグループ分けするグループ化手段と、
当該小領域内のグループごとに、当該グループに属する各画素の各色変数の値に基づいて代表色を求める代表色算出手段と、
を有することを特徴とする画像処理装置。
【請求項１３】
シアン、マゼンタ、イエローおよびブラックによって表されるカラーの画像データを圧縮する画像データ圧縮装置であって、
前記画像データを複数の小領域ごとに区画する区画手段と、
シアン、マゼンタ、イエロー、およびブラックの各色変数の値に基づいて変換後の色変数の値を求める色変数の変換において、ブラックの値が大きくなるほど、変換前のシアンまたはマゼンタまたはイエローの各色変数の値の差に対する変換後の色変数の差の割合が小さくなるよう、シアン、マゼンタ、イエロー、およびブラックの各色変数の値を変換して変換後の色変数の値を求める値算出手段と、
１つの前記小領域内の複数の画素について、前記値算出手段が求めた変換後の各色変数の値のそれぞれの、当該小領域内におけるばらつきの程度を示すばらつき値に基づいて、着目する１つの変換後の色変数を選択する選択手段と、
当該小領域内における当該着目する変換後の色変数の値に基づいて、画素のグループ分けのための基準値を求める基準値算出手段と、
前記基準値算出手段が求めた前記基準値に基づいて、当該小領域内の画素をグループ分けするグループ化手段と、
当該小領域内のグループごとに、当該グループに属する各画素の各色変数の値に基づいて代表色を求める代表色算出手段と、
前記画像データに含まれる各小領域に対して前記代表色算出手段が求めた前記代表色を用いて、当該画像データについての圧縮データを生成する圧縮データ生成手段と、
を有することを特徴とする画像データ圧縮装置。
【請求項１４】
カラーの画像内の複数の画素を含む小領域ごとにそれぞれの前記小領域を所定数以下の代表色で表す画像処理をコンピュータに実行させるコンピュータプログラムであって、
各画素を表すシアン、マゼンタ、イエローおよびブラックの各色変数の値を取得する取得処理と、
シアン、マゼンタ、イエロー、およびブラックの各色変数の値に基づいて変換後の色変数の値を求める色変数の変換において、ブラックの値が大きくなるほど、変換前のシアンまたはマゼンタまたはイエローの各色変数の値の差に対する変換後の色変数の差の割合が小さくなるよう、シアン、マゼンタ、イエロー、およびブラックの各色変数の値を変換して変換後の色変数の値を求める値算出処理と、
１つの前記小領域内の複数の画素について、前記値算出処理において求めた変換後の各色変数の値のそれぞれの、当該小領域内におけるばらつきの程度を示すばらつき値に基づいて、着目する１つの変換後の色変数を選択する選択処理と、
当該小領域内における当該着目する変換後の色変数の値に基づいて、画素のグループ分けのための基準値を求める基準値算出処理と、
前記基準値算出処理で求めた前記基準値に基づいて、当該小領域内の画素をグループ分けするグループ化処理と、
当該小領域内のグループごとに、当該グループに属する各画素の各色変数の値に基づいて代表色を求める代表色算出処理と、
を実行させることを特徴とするコンピュータプログラム。
【国際調査報告】
2009001549.tif 000023
2009001549.tif 000024