(57)【要約】      （修正有）【課題】圧縮された画像データが単一色で構成されているかを高速に判定する。【解決手段】画像データの予め定められた画素数のブロックを単位に画像データを処理する画像処理装置において、ブロック内で画素値の異なる画素の数を算出する。算出された画素値の異なる画素の数と、その異なる画素の位置とに応じて、そのブロックに対して予め定められたパターンを特定し、そのパターンと画素値の異なる画素の数だけの各画素値とを出力することにより画像データを圧縮する。そして、出力されたパターンと画素値とに基づいて、画像データが単一色で構成されているかを判定する。【選択図】図８
2011139164.tif 000002
【特許請求の範囲】
【請求項１】
画像データの予め定められた画素数のブロックを単位に前記画像データを処理する画像処理装置であって、
ブロック内で画素値の異なる画素の数を算出する算出手段と、
前記算出手段によって算出された前記画素値の異なる画素の数と該異なる画素の位置とに応じて、前記ブロックに対して予め定められたパターンを特定する特定手段と、
前記特定手段によって特定された前記パターンと前記画素値の異なる画素の数の各画素値とを出力することにより前記画像データを圧縮する圧縮手段と、
前記圧縮手段によって出力された前記パターンと画素値とに基づいて、前記画像データが単一色で構成されているかを判定する判定手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記判定手段は、全てのブロックに対して前記出力されたパターンが同じで、かつ、前記出力された画素値が全て同じ値の場合、前記画像データが単一色で構成されていると判定し、該判定された単一色の画像データを破棄することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記判定手段は、特定のブロックに対して前記出力されたパターンが同じで、かつ、前記出力された画素値が全て同じ値の場合、前記画像データが単一色で構成されていると判定することを特徴とする請求項１記載の画像処理装置。
【請求項４】
画像データの予め定められた画素数のブロックを単位に前記画像データを処理する画像処理装置の処理方法であって、
算出手段が、ブロック内で画素値の異なる画素の数を算出する算出工程と、
特定手段が、前記算出工程において算出された前記画素値の異なる画素の数と該異なる画素の位置とに応じて、前記ブロックに対して予め定められたパターンを特定する特定工程と、
圧縮手段が、前記特定工程において特定された前記パターンと前記画素値の異なる画素の数の各画素値とを出力することにより前記画像データを圧縮する圧縮工程と、
画像処理手段が、前記圧縮工程において出力された前記パターンと画素値とに基づいて、前記画像データが単一色で構成されているかを判定する判定工程と、
を有することを特徴とする画像処理装置の処理方法。
【請求項５】
コンピュータを請求項１乃至３の何れか１項記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びその処理方法に関する。
【背景技術】
【０００２】
従来、画像形成毎に白画像か否かの判定を行い、判定結果に基づいて画像処理装置から出力するか否かを制御する画像処理装置が広く用いられている。
【０００３】
画像処理装置は、ＰＤＬデータ（ページ記述データ）を受信して解釈し、画像読取装置から原稿を読み取り、画像データを生成する。そのような画像データは、例えばブロック状の小領域に分割された状態で、付随する情報と共に順次、生成される場合がある。ここで生成された小領域に分割された画像データは、付随する情報に基づいて、順次それぞれイメージ処理が行われ、圧縮されてメモリに保存される。このようにメモリに保存される際に、画像データの圧縮が行われるのでメモリを節約することができる。
【０００４】
従来においては、圧縮された画像データを解凍した後に、画像データの画素値を走査して画像データがオブジェクトを含むか否かを判定することにより、白画像といった単一色画像か否かの判定を行う。そして、判定した結果に基づいて単一色画像の出力を行わないようにすることにより、画像出力時の不要な出力資源の消費を防ぐように制御している（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１０４６２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来技術では、単一色画像が生成されるか否かを、圧縮された画像データを解凍した後に、画素値をソフトウェア処理で走査して判定しており、処理時間が増大してしまうという問題があった。
【０００７】
本発明は、圧縮された画像データの状態で、高速に単一色画像判定を行うことができる画像処理装置及びその処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、画像データの予め定められた画素数のブロックを単位に前記画像データを処理する画像処理装置であって、
ブロック内で画素値の異なる画素の数を算出する算出手段と、
前記算出手段によって算出された前記画素値の異なる画素の数と該異なる画素の位置とに応じて、前記ブロックに対して予め定められたパターンを特定する特定手段と、
前記特定手段によって特定された前記パターンと前記画素値の異なる画素の数の各画素値とを出力することにより前記画像データを圧縮する圧縮手段と、
前記圧縮手段によって出力された前記パターンと画素値とに基づいて、前記画像データが単一色で構成されているかを判定する判定手段と、
を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、圧縮された画像データを解凍することなく、圧縮された画像データにおけるブロックのパターンと画素値とに基づいて、画像データが単一色で構成されているかを判定できる。これにより、画像データの処理速度を劣化させることなく、単一色画像判定を実現することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態における画像処理装置の構成の一例を示すブロック図。
【図２】図１に示すコントローラの構成例を示す図。
【図３】２×２画素のブロックにおける４色のパターンの取り得る組み合わせの場合の数を示す図。
【図４】図３に示すパターンとパターンフラグの関係を示す図。
【図５】異なる画素の数とパターンフラグを特定する処理を示すフローチャート。
【図６】画素値が異なる画素の位置を判定する処理を説明するための図。
【図７】ＤＭＡＣによる画像データのメモリ空間への書き込み例を示す図。
【図８】第１の実施形態における単一色画像判定処理を示すフローチャート。
【図９】第２の実施形態における単一色画像判定処理を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら発明を実施するための形態について詳細に説明する。本実施形態では、画像処理装置として、スキャン、プリント、コピーなどの複数の機能を有するデジタル複合機（ＭＦＰ）を例に説明する。
【００１２】
［第１の実施形態］
図１に示すように、コントローラ１０１は、画像入力機器であるスキャナ１０２や画像出力機器であるプリンタ１０３と接続される。また、コントローラ１０１はＬＡＮや公衆回線（ＷＡＮ）などのネットワーク１０４と接続することで、画像情報やデバイス情報の入出力、ＰＤＬデータのイメージ展開を行う。
【００１３】
ＣＰＵ１０５は、後述するＨＤＤ記憶部１０７に格納されたプログラムに従ってＭＦＰ全体を制御するプロセッサである。メモリ１０６は、ＣＰＵ１０５が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＨＤＤ記憶部１０７は、ハードディスクドライブであり、システムソフトウェアやプログラム、画像データなどを格納する。
【００１４】
次に、図２に示すコントローラ１０１の構成例を参照してコントローラ１０１の各部の詳細な処理を説明する。まず、スキャナ１０２によってスキャンされた画像データを読み込む場合を説明する。スキャナ１０２で読み取られたＲＧＢ（レッド、グリーン、ブルー）３色の画像データをスキャナ用画像処理部２０１が受け取り、その画像データに対してシェーディング処理やフィルタ処理等の画像処理を行い、圧縮部２０２が画像圧縮処理を行う。そして、圧縮されたデータ（圧縮データ）をＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２０３が画像メモリバスを介してメモリ１０６に格納する。
【００１５】
次に、スキャンされた画像データをプリントする場合、メモリ１０６に格納された圧縮データをＤＭＡＣ２１１が画像メモリバスを介して色処理部２１２へ転送する。そして、色処理部２１２がＣＭＹＫ（シアン、マゼンタ、イエロー、ブラック）色空間へ変換する。その後、ＣＭＹＫの各値に対して濃度調整やプリンタガンマ補正などの色処理を行った後、ＤＭＡＣ２１１が画像メモリバスを介して再度メモリ１０６に格納する。その後プリント用の画像処理を行うために、ＤＭＡＣ２２１が画像メモリバスを介してメモリ１０６に格納されている圧縮データを読み込み、展開部２２２がラスタ画像データに展開する。そして、ラスタのＣＭＹＫ画像データをプリント用画像処理部２２３が入力し、ディザ法や誤差拡散法による面積階調処理を行い、プリンタ１０３へ出力する。
【００１６】
また、スキャンされた画像データをネットワークへ送信する場合、メモリ１０６に格納されている圧縮データをＤＭＡＣ２１１が画像メモリバスを介して色処理部２１２へ転送する。そして、色処理部２１２がディスプレイガンマ調整や用紙地色調整等を行った後、ＹＣｂＣｒ（輝度、ＢＬＵＥ色差、ＲＥＤ色差）色空間へ変換する。そして、再度ＤＭＡＣ２１１が画像メモリバスを介してメモリ１０６に格納する。その後、送信用の画像処理を行うために、ＤＭＡＣ２３１が画像メモリバスを介してメモリ１０６に格納されている圧縮データを展開部２３２へ転送する。そして、展開部２３２が圧縮データをラスタ画像データに展開する。その後、ラスタのＹＣｂＣｒ画像データに対して送信処理部２３３がカラー画像送信であればＪＰＥＧ圧縮処理を行い、モノクロ２値画像送信であればＹデータに対して２値化を行い、ＪＢＩＧ圧縮等を行い、ネットワーク１０４へ出力する。
【００１７】
また、スキャンされた画像データを保存する場合、メモリ１０６に格納されている圧縮データをＤＭＡＣ２４１が画像メモリバスを介してディスクスプール高圧縮／展開部２４２へ転送する。ディスクスプール高圧縮／展開部２４２では、ＨＤＤの書き込みスピードがメモリに対して遅いため、更に高圧縮のＪＰＥＧ圧縮を施す。その後ディスクアクセスコントローラ２４３を介してＨＤＤ記憶部１０７へ圧縮データを保存する。また、ＨＤＤ記憶部１０７に保存されている圧縮データを再度メモリ１０６に転送する場合には、上述した処理を逆に行えば良い。
【００１８】
ここで、図１に示すネットワーク１０４から送られてきたＰＤＬデータをメモリ１０６へ書き込む場合を説明する。図２にはＰＤＬ解釈部が図示されていないが、ＰＤＬ解釈部として機能するＣＰＵ１０５がＰＤＬデータを解釈し、その結果のディスプレイリストをメモリ１０６に出力する。その後、メモリ１０６に格納されているディスプレイリストをレンダリング部２５１がラスタのＲＧＢ画像データへレンダリングを行い、圧縮部２５２が画像圧縮処理を行う。そして、圧縮データをＤＭＡＣ２５３が画像メモリバスを介してメモリ１０６に格納する。
【００１９】
尚、ＰＤＬデータをプリント、ネットワークへ送信、保存する処理は、スキャンされた画像データの場合と同様の処理を行うことで実現可能である。
【００２０】
次に、本発明の特徴であるラスタ画像データの圧縮処理を詳細に説明する。まずページ単位のラスタ画像データから２×２画素のブロックを抽出し、抽出されたブロックを単位にデータの圧縮処理を行う。
【００２１】
ここで圧縮処理を説明する前に、２×２の４画素データの中に占める色数に応じてその組み合わせの場合の数を考える。画素数が４画素なので、そこに占める色数は最大４色になり、ブロック内で高々１色〜４色の組み合わせしか存在しない。その４色のパターンの取り得る組み合わせの場合の数を図３に示す。
【００２２】
まず、ブロック内が１色の場合、４画素が同色で構成されていることになるので、その組み合わせは１通りである。次に、ブロック内が２色の場合を考える。図３に示すように、２色が４画素内にレイアウトされる場合の数は、左上の画素を第１色、他方を第２色として考えると、左上以外残りの３画素へ第１色もしくは第２色が入るので、４画素同色の場合を除くと、全部で７通りの組み合わせが考えられる。
【００２３】
次に、ブロック内が３色の場合を考える。３色が４画素内にレイアウトされる場合の数は、３色のうち１色だけ２度使われる場合の数と言い換えることが可能であり、４画素の座標のうち、２画素が同じ色になる場合の数を求めれば良い。つまり、３色の場合の数は、４つの座標から２つの座標を取る組み合わせとなり、全部で６通りとなる。そして最後に、ブロック内が４色の場合は１色の場合と同様で１パターンしか存在しない。
【００２４】
１色〜４色の全ての場合の数を合計すると、全部で１５通りのパターンが考えられる。また、これら全てのパターンを識別するためにフラグを付与することを考えると、データ量としては４ビット必要となる。この１５通りのパターンとフラグとの関係は図４に示すようになり、以下、このフラグを「パターンフラグ」と呼ぶ。
【００２５】
上述のように、２×２画素の取り得る組み合わせを踏まえて、圧縮部２０２、２５２で行われる処理を、図５を用いて説明する。入力としては、例えばＲＧＢそれぞれ８ビットの２５６階調を持っており、またデータとしては８ビットデータの点順次で１画素当たり２４ビットの画像として説明する。
【００２６】
まず、２×２画素のブロックを入力し（Ｓ５０１）、そのブロック内の全ての２画素の組み合わせに対して２４ビットのコンペアを取る（Ｓ５０２）。ここでコンペアを取った結果、全ビット一致していた場合は“１”を、不一致の場合は“０”を出力をする。
【００２７】
ここで、２×２画素内の左上から右上、左下、右下の順に、座標１、２、３、４とする（図４に示す４０１）。２画素の組は１−２、１−３、１−４、２−３、２−４、３−４の全部で６通り（図４に示す４０２）あるので、６回コンペアを取る必要があり、結果は６ビット出力される。図４に示すコンペア結果のように、全画素が同色であれば、全てのコンペア結果が１を出力し、逆に４画素が全てバラバラの画素値を持っていれば、全てのコンペア結果が０を出力する。
【００２８】
この例では、４画素で色の一致から出現し得るパターンの数は１５通りなので、図４に示すように、６ビットのコンペア結果に応じて、４ビットのパターンフラグを特定する（Ｓ５０３）。そして、４ビットのパターンフラグの特定が終了すると、４画素内で出現した色数及び色データを抽出する（Ｓ５０４）。そして、入力されたブロックの色数を判定する（Ｓ５０５、Ｓ５０７、Ｓ５０９）。ここでは、パターンフラグから、左上を第１色とした場合の第２色以降がどの位置にあるかを求めることで判定する。この判定処理を、図６を用いて説明する。
【００２９】
図６に示すように、例えば４画素内が１色で構成されていることが確定した場合には、２色目以降は存在しないので、パターンフラグの４ビットと１色目の画素（２４ビット）とを出力する（Ｓ５０６）。また、４画素内が２色で構成されていることが確定した場合（Ｓ５０７でＹＥＳ）には、その２色目の座標をパターンフラグより算出し、パターンフラグの４ビットと２色分の画素値４８ビットを出力する（Ｓ５０８）。また、３色の場合（Ｓ５０９でＹＥＳ）、パターンフラグの４ビットと３色分の画素値７２ビットとを出力する（Ｓ５１０）。そして、４色の場合（Ｓ５０９でＮＯ）、パターンフラグの４ビットと４色分の画素値９６ビットとを出力する（Ｓ５１１）。このとき、ブロック内の座標（左上から右上、左下、右下の順に１、２、３、４）順に、これまで出現していなかった色データを記憶する。
【００３０】
このように、２×２画素のブロック内の４色（９６ビット）の入力データを４ビットのパターンフラグと、そこに存在する色数だけ画素値を出力することで、比較的簡単な処理で出力データ量を削減することが可能になる。逆に、パターンフラグを参照することで、そのブロック内の色数を特定することが可能になる。このような処理を画像ブロック全てに対して行うことで、画像全面をデータ圧縮することが可能になる。
【００３１】
このようにして求めたパターンフラグと、色データとをＤＭＡＣがメモリに書き込むが、そのとき、ＤＭＡＣではパターンフラグと第１色のデータと第２色、第３色、第４色のデータとの書き込み位置を変える。ＤＭＡＣにはパターンフラグ書き込みのためのメモリ先頭アドレスと、第１色データの書き込みのためのメモリ先頭アドレスと、第２色以降のデータの書き込みのためのメモリ先頭アドレスの３つのアドレスを指定する。
【００３２】
図７は、ＤＭＡＣによる画像データのメモリ空間への書き込み例を示す図である。尚、サイズがＭ×Ｎ画素のＲＧＢ各色８ビット画像を圧縮部へ入力する場合、パターンフラグのデータサイズはＭ×Ｎ／８バイトとなる。また、第１色のデータサイズはＭ×Ｎ×３／４バイトとなるが、第２色、第３色、第４色のデータサイズは画像によって不定（画像によって異なるサイズ）となる。
【００３３】
ここで、第１色書き込み位置以降のメモリ領域に関しては、画素データがピクセル単位で量子化や符号化されることなく格納される。つまり、パターンフラグ及び画素データを参照することにより圧縮された画像データがどのような画素値の画素で構成されているかを判断することが可能となる。
【００３４】
次に、第１の実施形態における単一色画像判定処理を、図８を用いて説明する。まず、ＣＰＵ１０５は、メモリ１０６に格納されている圧縮された画像データのパターンフラグ領域から各パターンフラグを参照し（Ｓ８０１）、全てのパターンフラグが“０”であるか否かを判定する（Ｓ８０２）。そして、Ｓ８０２で、全てのパターンフラグが“０”であると判定した場合には、第１色のデータ領域を参照し（Ｓ８０３）、第１色のデータの値が全て同じ値であるか判定する（Ｓ８０４）。判定の結果、第１色のデータの値が全て同じ値であった場合には、全面が単一画素値で構成される単一色画像データであると判定してメモリ１０６上の画像データを破棄する（Ｓ８０５）。一方、第１色のデータの値と異なるものがあれば、Ｓ８０４で、単一色画像データでないと判定してメモリ１０６上の画像データの破棄は行わない（Ｓ８０６）。
【００３５】
また、上述のＳ８０２において、全てのパターンフラグが“０”でないと判定した場合も、ＣＰＵ１０５は単一色画像データではないと判定してメモリ１０６上の画像データの破棄は行わない（Ｓ８０６）。
【００３６】
次に、圧縮部２０２、２５２と対になる展開部２２２、２３２を説明する。尚、展開部２２２、２３２では、上述したようなパターンフラグ、画素データをラスタ画像データへ戻す処理のことを指す。メモリ１０６上に図７に示すように配置されている圧縮データのパターンフラグ書き込み先頭アドレス、第１色書き込み先頭アドレス、及び第２、３、４色書き込み先頭アドレスの３つのアドレスをＤＭＡＣ２２１、２３１へ指定する。ＤＭＡＣ２２１、２３１は３つのアドレスからデータを読み出し、展開部２２２、２３２へ転送する。
【００３７】
展開部２２２、２３２では、まず４ビットのパターンフラグを解釈し、そのブロック内の色数を算出する。第１色データに加え、色数に応じて第２、３、４色データを読み出し、パターンフラグの形状に応じて画素データを再配置する。このようにすることで２×２画素ブロックを展開、復号する。
【００３８】
また、展開部２２２、２３２で画像サイズを１／２にする場合には、上述したように、パターンフラグと２、３、４色データを必要としないので、ＤＭＡＣ２２１、２３１には第１色書き込み先頭アドレスのみ指定する。これにより、メモリ１０６から第１色データのみの読み込みが行われ、画像が構成される。このように処理することで、メモリバスの帯域を節約することが可能になる。
【００３９】
第１の実施形態によれば、比較的に単純な圧縮方式で圧縮された画像データの状態で、単一色画像判定を行え、解凍処理の負荷を削減することが可能になる。
【００４０】
尚、第１の実施形態では、２×２のブロックを最小単位として説明してきたが、これに限るものではない。また、圧縮の説明の際に画像データとしてＲＧＢ８ビットを例に説明してきたが、ＣＭＹＫの色空間を取るものやＧＲＡＹスケールのデータ、或いは８ビット以外の画素値をとるものでも良い。
【００４１】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態を詳細に説明する。尚、第２の実施形態でも、画像処理装置として、第１の実施形態と同様に、ＭＦＰを例に説明する。第２の実施形態では、第１の実施形態における単一色画像判定方法をスキャンされた画像データに適用した場合の別の判定方法を説明する。
【００４２】
第１の実施形態で単一色画像になることが期待される画像は、画像内で隣接画素値が１レベルたりとも違わないような領域が多い画像である。つまり、高解像度のＰＤＬデータとしてレンダリングしたラスタ画像データに関してはこのようになっている期待が高いが、スキャンで入力された画像ではスキャナでのノイズ成分が画像に重畳され、通常画素値として数レベルの違いが出てくる。このような場合に、圧縮データとしては２×２画素のブロックが１色と判断されないことがある。
【００４３】
そこで、第２の実施形態では、第１の実施形態で説明した単一色画像判定方法においてスキャンの画像データにおけるスキャナでのノイズを加味した判定方法を、図９を用いて説明する。
【００４４】
まず、ＣＰＵ１０５はノイズが画像全体の何ブロック分に相当するかをノイズブロック数として予めメモリ１０６に保持しておく。そして、ＣＰＵ１０５はメモリ１０６に格納されている圧縮された画像データのパターンフラグ領域から各パターンフラグを参照する（Ｓ９０１）。次に、ＣＰＵ１０５は画像全体のブロック数からノイズブロック数を引いたブロック数のパターンフラグが“０”であるか否かを判定する（Ｓ９０２）。ここで、画像全体のブロック数からノイズブロック数を引いたブロック数以上のパターンフラグが“０”であると判定した場合、ＣＰＵ１０５はＳ９０３へ処理を進める。
【００４５】
Ｓ９０３では、ＣＰＵ１０５は第１色のデータ領域を参照し、パターンフラグが“０”であるブロックの第１色のデータの値が全て同じ値であるか判定する（Ｓ９０４）。ここで、第１色のデータの値が全て同じ値であった場合、ＣＰＵ１０５は全面が単一画素値で構成される単一色画像データであると判定してメモリ１０６上で画像データを破棄する（Ｓ９０５）。一方、Ｓ９０４で第１色のデータの値に異なるものがあれば、ＣＰＵ１０５は単一色画像データではないと判定してメモリ１０６上の画像データの破棄は行わない（Ｓ９０６）。
【００４６】
また、上述のＳ９０２において、“０”でないパターンフラグがノイズブロック数以上存在すると判定した場合も、ＣＰＵ１０５は単一色画像データではないと判定してメモリ１０６上の画像データの破棄は行わない（Ｓ９０６）。
【００４７】
第２の実施形態によれば、スキャン画像に代表されるようなノイズによって単一色画像判定が困難な画像に対しても、正常に判定を行うことが可能になる。
【００４８】
［他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011139164.tif 000003
【図２】
2011139164.tif 000004
【図５】
2011139164.tif 000005
【図８】
2011139164.tif 000006
【図９】
2011139164.tif 000007
【図３】
2011139164.tif 000008
【図４】
2011139164.tif 000009
【図６】
2011139164.tif 000010
【図７】
2011139164.tif 000011