(57)【要約】【課題】従来、濃度ムラ、色ムラの補正を行う場合、人手を介して補正箇所の指定や補正方法の指定を行う方法により、多くのハードウェアとともに、補正処理のための長い処理時間が必要となっていた。また、人手を介さない場合、ハードウェアで実現する際には、大規模な処理回路と、かなりの処理時間が必要であった。【解決手段】タイルに含まれる画素の値から代表値を算出する代表値算出手段と、第一のタイル数からなる第一エリアにおける各タイルの前記代表値の分布に基づき、前記第一エリアに含まれる注目タイルを補正するか否かを判定する判定手段と、第二のタイル数からなる第二エリアにおける各タイルの前記代表値に基づき、前記注目タイルに対する補正値を算出する補正値算出手段と、前記圧縮手段により圧縮された画像データにおける前記タイルそれぞれに対し、前記代表値と、前記判定手段による判定結果と、前記補正値とを付加する付加手段とを有する。【選択図】  図２５
2012010089.tif 000002
【特許請求の範囲】
【請求項１】
入力された画像データに対し、補正処理を適用する画像処理装置であって、
前記画像データを、所定の画素数からなるタイルごとに画素の値および画素の配置に基づいて圧縮する圧縮手段と、
前記タイルに含まれる画素の値から代表値を算出する代表値算出手段と、
第一のタイル数からなる第一エリアにおける各タイルの前記代表値の分布に基づき、前記第一エリアに含まれる注目タイルを補正するか否かを判定する判定手段と、
第二のタイル数からなる第二エリアにおける各タイルの前記代表値に基づき、前記注目タイルに対する補正値を算出する補正値算出手段と、
前記圧縮手段により圧縮された画像データにおける前記タイルそれぞれに対し、前記代表値と、前記判定手段による判定結果と、前記補正値とを付加する付加手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記圧縮された画像データを展開する展開手段を更に有し、
前記展開手段は、前記付加手段により前記圧縮された画像データに付加された前記代表値と前記判定手段による判定結果と前記補正値とを用いて、前記圧縮された画像データを展開する際に、前記画像データに対する補正を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記代表値算出手段は、前記タイルに含まれる画素の値の平均値を前記代表値として算出することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記代表値算出手段は、前記タイルに含まれる画素の値のうち、最も頻度の多い値を代表値とすることを特徴とする請求項１または２に記載の画像処理装置。
【請求項５】
前記判定手段は、前記第一エリアに含まれるタイルの代表値の分布が所定の範囲内であれば、前記注目タイルに対し、補正を行うと判定することを特徴とする請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
入力された画像データにおいて、グラデーションの領域を判定する領域判定手段を更に有し、
前記判定手段は、前記注目タイルが前記グラデーションの領域に含まれる場合、前記注目タイルに対し、補正を行わないと判定することを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
前記領域判定手段は、判定を行う領域に含まれる各タイルの代表値が、走査線方向および副走査線方向の両方において、常に増加、常に減少、もしくは一定のいずれかである場合、当該領域はグラデーションの領域であると判定することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記判定手段において判定を行う前記第一エリアと前記補正値算出手段において算出を行う前記第二エリアとは、同一の範囲のエリアであることを特徴とする請求項１乃至７のいずれか一項に記載の画像処理装置。
【請求項９】
前記判定手段において判定を行う前記第一エリアと前記補正値算出手段において算出を行う前記第二エリアとは異なる範囲のエリアであることを特徴とする請求項１乃至７のいずれか一項に記載の画像処理装置。
【請求項１０】
前記補正値算出手段は、前記第二エリアに含まれる各タイルの代表値の平均値を補正値として算出することを特徴とする請求項１乃至９のいずれか一項に記載の画像処理装置。
【請求項１１】
前記補正値算出手段は、前記第二エリアに含まれる各タイルの代表値のうち、最も頻度の高い値を補正値として算出することを特徴とする請求項１乃至９のいずれか一項に記載の画像処理装置。
【請求項１２】
前記補正値を受け付ける受付手段を更に有し、
前記展開手段は、前記補正値算出手段により算出された補正値に代えて、前記受付手段にて受け付けた補正値を用いて展開処理を行うことを特徴とする請求項２に記載の画像処理装置。
【請求項１３】
入力された前記画像データは、カラー画像データであり、
前記代表値算出手段は、前記タイルに含まれる画素の値から色属性それぞれの代表値を算出し、
前記補正値算出手段は、前記注目タイルにおける前記色属性それぞれに対する補正値を算出することを特徴とする請求項１乃至１２のいずれか一項に記載の画像処理装置。
【請求項１４】
前記タイルを構成する前記所定の画素数は、３２ｘ３２画素の構成からなる数であることを特徴とする請求項１乃至１３のいずれか一項に記載の画像処理装置。
【請求項１５】
入力された画像データに対し、補正処理を適用する画像処理装置の制御方法であって、
前記画像処理装置の圧縮手段が、前記画像データを、所定の画素数からなるタイルごとに画素の値および画素の配置に基づいて圧縮する圧縮工程と、
前記画像処理装置の代表値算出手段が、前記タイルに含まれる画素の値から代表値を算出する代表値算出工程と、
前記画像処理装置の判定手段が、第一のタイル数からなる第一エリアにおける各タイルの前記代表値の分布に基づき、前記第一エリアに含まれる注目タイルを補正するか否かを判定する判定工程と、
前記画像処理装置の補正値算出手段が、第二のタイル数からなる第二エリアにおける各タイルの前記代表値に基づき、前記注目タイルに対する補正値を算出する補正値算出工程と、
前記画像処理装置の付加手段が、前記圧縮工程において圧縮された画像データにおける前記タイルそれぞれに対し、前記代表値と、前記判定手段による判定結果と、前記補正値とを付加する付加工程と
を有することを特徴とする制御方法。
【請求項１６】
コンピュータを、
画像データを、所定の画素数からなるタイルごとに画素の値および画素の配置に基づいて圧縮する圧縮手段、
前記タイルに含まれる画素の値から代表値を算出する代表値算出手段、
第一のタイル数からなる第一エリアにおける各タイルの前記代表値の分布に基づき、前記第一エリアに含まれる注目タイルを補正するか否かを判定する判定手段、
第二のタイル数からなる第二エリアにおける各タイルの前記代表値に基づき、前記注目タイルに対する補正値を算出する補正値算出手段、
前記圧縮手段により圧縮された画像データにおける前記タイルそれぞれに対し、前記代表値と、前記判定手段による判定結果と、前記補正値とを付加する付加手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原稿をスキャナ等から入力し、画像データを所定のブロック単位で圧縮する画像データ圧縮及びそれらブロック単位に圧縮されたデータの画像データへの復元処理を行う技術に関する。特に画像データ復元において、原稿の均一色部分に関して、濃度や色味の補正を行う技術に関する。
【背景技術】
【０００２】
スキャナ等によって入力された画像データは、原稿の浮きや原稿を照らす光源の光量ムラ等により、原稿上では均一の濃度及び均一の色によってプリントされている部分でも、画像データ上では濃度や色味が異なって入力される。前記濃度ムラや色味ムラは、入力された画像データをプリントする場合、画像の劣化として目立つ事となる。
【０００３】
従来、前記濃度ムラや色味ムラを補正する場合、入力された画像データをモニタ等に表示し、オペレータが指定した補正箇所や補正処理内容の指示に従って、画像データに対して補正を行っていた（特許文献１等参照）。つまり、人手による各種設定が必要となっていた。
【０００４】
また、人手を介さずに前記ムラの補正を行おうとした場合は、元画像データの全てのデータに対して、補正部分や補正量の認識処理を行い、どの部分をどのように補正するかの認識を行う必要があった。その後、認識した情報を元に、再度、元画像データの全てのデータに対して、補正を行う処理を実行する事となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２７８５２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以上のように、従来、濃度ムラ、色ムラの補正を行う場合、人手を介して補正箇所の指定や補正方法の指定を行う方法により、多くのハードウェア（機材）とともに、補正処理のための長い処理時間が必要となっていた。
【０００７】
また、人手を介さない場合、元画像の全てのデータに対して、認識処理と補正処理の２回の処理を施さなければいけないため、ハードウェアで実現する際には、大規模な処理回路と、かなりの処理時間が必要である。
【０００８】
また、ソフトウェアで実現させる場合に関しても、その処理内容には大きな処理時間がかかる。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本願発明は以下の構成を有する。入力された画像データに対し、補正処理を適用する画像処理装置であって、前記画像データを、所定の画素数からなるタイルごとに画素の値および画素の配置に基づいて圧縮する圧縮手段と、前記タイルに含まれる画素の値から代表値を算出する代表値算出手段と、第一のタイル数からなる第一エリアにおける各タイルの前記代表値の分布に基づき、前記第一エリアに含まれる注目タイルを補正するか否かを判定する判定手段と、第二のタイル数からなる第二エリアにおける各タイルの前記代表値に基づき、前記注目タイルに対する補正値を算出する補正値算出手段と、前記圧縮手段により圧縮された画像データにおける前記タイルそれぞれに対し、前記代表値と、前記判定手段による判定結果と、前記補正値とを付加する付加手段とを有する。
【発明の効果】
【００１０】
色ムラ・濃度ムラ補正の処理に関して、補正処理に必要なハードウェアの増加分の削減、補正処理に必要な処理時間の大幅な削減が可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明に係るＭＦＰシステムの概要示した図。
【図２】本発明に係るコントローラの概要を示した図。
【図３】画像データをブロック分割した際のブロックのパターンを列挙した図。
【図４】ブロックのパターンとその識別子を列挙した図。
【図５】本発明の基礎となる画像圧縮のフローを示した図。
【図６】ブロックのパターンとパターンフラグとの対応を示す図。
【図７】本発明に係る圧縮処理における入力データと出力データとの関係を示す図。
【図８】圧縮データのメモリ空間上において格納される構成図。
【図９】本発明に係る画像圧縮処理のフローを示す図。
【図１０】第一の実施形態に係るページとタイルとブロックの関係を示す図。
【図１１】第一の実施形態に係るパケットおよびヘッダの構成を示す図。
【図１２】第一の実施形態に係るパケット管理テーブルの例を示す図。
【図１３】第一の実施形態に係る圧縮データのメモリ空間上でのレイアウトを示す図。
【図１４】第一の実施形態に係るＴｏｐヘッダの構成を示す図。
【図１５】第一の実施形態に係る圧縮処理のためのハード構成を示すブロック図。
【図１６】第一の実施形態に係る画像展開処理のフローを示す図。
【図１７】第一の実施形態に係る展開処理のためのハード構成を示すブロック図。
【図１８】本実施形態に係るページとタイルとブロックの関係を示す図。
【図１９】本実施形態に係るページとタイルとエリアの関係を示す図。
【図２０】本実施形態に係る補正対象の判定方法を示す図。
【図２１】第一の実施形態に係る補正値の算出方法を示す図。
【図２２】第一の実施形態に係るパケットおよびヘッダの構成を示す図。
【図２３】本実施形態に係るＴｏｐヘッダの構成を示す図。
【図２４】第一の実施形態に係る画像圧縮及び補正前処理のフローを示す図。
【図２５】第一の実施形態に係る圧縮及び補正前処理のためのハード構成を示す図。
【図２６】第一の実施形態に係る画像展開及び補正処理のフローを示す図。
【図２７】第一の実施形態に係る展開及び補正処理のためのハード構成を示す図。
【図２８】第二の実施形態に係るパケットおよびヘッダの構成を示す図。
【図２９】第二の実施形態に係る画像圧縮及び補正前処理のフローを示す図。
【図３０】第二の実施形態に係る圧縮及び補正前処理のためのハード構成を示す図。
【図３１】第二の実施形態に係る画像展開及び補正処理のフローを示す図。
【図３２】第二の実施形態に係る展開及び補正処理のためのハード構成を示す図。
【図３３】第三の実施形態に係るグラデーション画像の特徴を示す図。
【図３４】第三の実施形態に係るグラデーション画像抽出を説明するための図。
【図３５】第三の実施形態に係る圧縮処理のフローを示す図。
【図３６】第四の実施形態に係る展開処理のフローを示す図。
【図３７】第四の実施形態に係る展開処理のためのハード構成を示すブロック図。
【発明を実施するための形態】
【００１２】
＜第一の実施形態＞
以下、本発明を実施するための圧縮処理及び、展開処理の形態について図面を用いて説明する。図１に、本発明の実施形態のスキャン、プリント、コピーを行うデジタル複合機システム（以降ＭＦＰと称する）の全体構成図を示す。
【００１３】
［システム構成］
コントローラ１０１は画像入力デバイスであるスキャナ１０２や画像出力デバイスであるプリンタ１０３と接続する。また一方では、ＬＡＮや公衆回線（ＷＡＮ）等ネットワーク１０４と接続することで、画像情報やデバイス情報の入出力、ＰＤＬデータのイメージ展開を行うためのコントローラである。ＣＰＵ１０５はシステム全体を制御するプロセッサである。メモリ１０６はＣＰＵ１０５が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＨＤＤ記憶部１０７はハードディスクドライブで、システムソフトウェア、画像データを格納する。ユーザーインターフェイス１０８は、ＭＦＰの状態や画像データの表示を行うディスプレイ、ユーザーが本ＭＦＰを使用する際に各種設定を行うボタンやスイッチ、テンキー、もしくはディスプレイやボタン等を兼ねたタッチパネルなどが含まれるものとする。
【００１４】
［コントローラの動作］
図２を用いて、図１のコントローラ１０１の動作に関して詳細に説明する。まず、スキャンデータを読み込む場合を説明する。スキャナ１０２からＲＧＢ（ＲＥＤ、ＧＲＥＥＮ、ＢＬＵＥ）３色の読み取り画像データを受け取ったコントローラ１０１では、まずスキャナ用画像処理部２０１にてシェーディング処理やフィルタ処理等の画像処理を行う。そして、圧縮部２０２にて画像圧縮処理を行う。その圧縮データをＤＭＡＣ（ＤＩＲＥＣＴ  ＭＥＭＯＲＹ  ＡＣＣＥＳＳ  ＣＯＮＴＲＯＬＬＥＲ）２０３を介してメモリ１０６へ格納する。スキャンデータをプリントする場合は、メモリ１０６に格納されている圧縮データをＤＭＡＣ２１１を介して色処理部２１２へ入力しＣＭＹＫ（ＣＹＡＮ、ＭＡＧＥＮＴＡ、ＹＥＬＬＯＷ、ＢＬＡＣＫ）色空間へ変換する。そして、それらＣＭＹＫの値に対して濃度調整、プリンタガンマ補正等の調整の色処理を行った後、ＤＭＡＣ２１１を介して再度メモリ１０６へ格納する。その後プリント用の画像処理を行うために、ＤＭＡＣ２２１を介して、メモリ１０６に格納されている圧縮データを読み込み、展開部２２２にてラスタ画像データへ展開する。ラスタのＣＭＹＫ画像データをプリント用画像処理部２２３に入力し、そこでディザ法や誤差拡散法による面積階調処理を行った後、プリンタ１０３へ出力する。スキャンデータをネットワークへ送信する場合には、メモリ１０６に格納されている圧縮データをＤＭＡＣ２１１を介して色処理部２１２へ入力し色変換を行う。具体的には、ディスプレイガンマ調整や用紙地色調整等を行った後にＹＣｂＣｒ（輝度、ＢＬＵＥ色差、ＲＥＤ色差）色空間へ変換する。その後再度、ＤＭＡＣ２１１を介してメモリ１０６へ格納する。その後送信用の画像処理を行うために、ＤＭＡＣ２３１を介して、メモリ１０６に格納されている圧縮データを読み込み、展開部２３２にてラスタ画像データへ展開する。ラスタのＹＣｂＣｒ画像データに対して送信処理部２３３ではカラー画像送信であればＪＰＥＧ圧縮処理を行い、モノクロ２値画像送信であればＹデータに対して２値化を行ってからＪＢＩＧ圧縮等を行い、ネットワーク１０４へ出力する。
【００１５】
スキャンデータを保存する場合には、メモリ１０６に格納されている圧縮データをＤＭＡＣ２４１を介してディスクスプール高圧縮／展開部２４２へ入力する。ディスクスプール高圧縮／展開部２４２では、ＨＤＤの書き込みスピードがメモリに対して遅いため、さらに高圧縮のＪＰＥＧ圧縮を施す。その後、ディスクアクセスコントローラ２４３を介してＨＤＤ記憶部１０７へ圧縮データを保存する。保存されているデータを再度メモリへ展開する場合は、ここまで述べた流れと逆処理を行う。
【００１６】
［メモリへの書き込み］
ＰＤＬのデータをメモリへ書き込む場合を説明する。図２では図示していないが、図１にてネットワークから送られてきたＰＤＬデータをＣＰＵ１０５にてインタープリットしメモリ１０６へディスプレイリストを出力する。その後、メモリ１０６に格納されているディスプレイリストをレンダリング部２５１にてラスタのＲＧＢ画像データへレンダリングを行い、圧縮部２５２にて画像圧縮処理を行う。その圧縮データをＤＭＡＣ２５３を介してメモリ１０６へ格納する。ＰＤＬ画像データをプリント、ネットワークへ送信、保存する場合はスキャンデータのそれと同様の処理を行うことで実現する事が可能になる。
【００１７】
［圧縮処理およびパターンフラグ］
以降ではラスタ画像データの圧縮部の詳細に関して説明を行う。まずページ単位のラスタ画像データから２ｘ２画素のブロックを抽出し、そのブロック単位でデータの圧縮を行う。処理の説明の前に、２ｘ２の４画素データ中に占める色数に応じてその組み合わせの場合の数を考える。画素数が４画素なので、そこに占める色数は最大４色になり、ブロック内でたかだか１〜４色の組み合わせしか存在しない。それら４色のパターンのとりうる組み合わせの場合の数を、図３を用いて説明する。
【００１８】
まずブロック内が１色の場合、４画素が同色で構成されている事になるので、その組み合わせは１通りである。次にブロック内が２色の場合を考える。２色が４画素内へレイアウトされる場合の数は、左上の画素を第１色、他方を第２色として考えると、左上以外残りの３画素へ第１色もしくは第２色が入るので、４画素同色の場合を除くと、全部で７通りの組み合わせが考えられる。
【００１９】
次にブロック内が３色の場合を考える。３色が４画素内へレイアウトされる場合の数は、３色のうち１色だけ２度使われる場合の数と言い換える事ができ、４画素の座標のうち、２画素が同じ色になる場合の数を求めればよい。つまり３色の場合の数は、４つの座標から２つの座標を取る組み合わせとなり、全部で６通りとなる。
【００２０】
最後にブロック内が４色の場合は１色の場合と同様１パターンしか存在しない。これら１〜４色すべての場合の数を合計すると全部で１５通りのパターンが考えられる。これらすべてのパターンを識別するためにフラグを付与する事を考えると、データ量としては４ｂｉｔ必要となる。図示すると図４のようになり、以降このフラグをパターンフラグと呼ぶ。
【００２１】
上記のように２ｘ２画素の取りうる組み合わせを踏まえて、圧縮部２０２、２５２にて行われる処理フローを、図５を用いて説明する。入力としては、例えばＲＧＢそれぞれ８ｂｉｔの２５６階調を持っており、またデータとしては８ｂｉｔデータの点順次で１画素あたり２４ｂｉｔ画像として説明を行う。
【００２２】
まず２ｘ２画素のブロックを入力する（Ｓ５０１）。そして、そのブロック内全ての２画素の組み合わせに対して２４ｂｉｔのコンペアを取る（Ｓ５０２）。このコンペアを取った結果、全ビット一致していた場合１を、不一致の場合０を出力する。
【００２３】
図６に示すように、２ｘ２画素内の左上から右上、左下、右下の順に座標１、２、３、４とすると、２画素の組は、１−２、１−３、１−４、２−３、２−４、３−４の全部で６通りあるので、６回コンペアを取る必要があり、結果は６ｂｉｔ出力される。例えば全画素同色の場合には、全てのコンペア結果が１を出力し、逆に４画素全てバラバラの画素値を持っている場合には、全てのコンペア結果が０を出力する。前述の通り、４画素で色の一致から出現しうるパターン数は１５通りなので、その６ｂｉｔのコンペア結果に対して４ｂｉｔのパターンフラグへ変換することが可能である（Ｓ５０３）。４ｂｉｔのパターンフラグへ変換したら続いて、４画素内で出現した色数および色データを抽出する（Ｓ５０４）。パターンフラグから、左上を第１色とした場合の第２色以降がどの位置にあるか求める事が出来る。
【００２４】
ここで、図７を参照しながら入力データに対する出力データの構成について説明を行う。例えば４画素内が１色で構成されていることが確定した場合には、２色目以降は存在しないので、パターンフラグ４ｂｉｔと１色目の２４ｂｉｔを出力する（Ｓ５０６）。また４画素内が２色で構成されていることが確定した場合（Ｓ５０７）には、その２色目の座標をパターンフラグより算出し、パターンフラグ４ｂｉｔと２色分の画素値４８ｂｉｔを出力する（Ｓ５０８）。３色、４色の場合も同様である（Ｓ５０９、Ｓ５１０、Ｓ５１１）。この時ブロック内の座標（左上から右上、左下、右下の順に１、２、３、４）順にこれまで出現していなかった色データを記憶する。以上により、処理を終了する。
【００２５】
このように、２ｘ２画素のブロック内の４色９６ｂｉｔの入力データを４ｂｉｔのパターンフラグとそこに存在する色数だけ画素値を出力することで、比較的簡単な処理で出力データ量を削減することが可能になる。またパターンフラグを参照することで、そのブロック内の色数及びその配置パターンを特定することが可能になる。この処理を画像ブロック全てに対して行うことで、画像全面のデータ圧縮が可能になる。
【００２６】
なお、ブロックを構成する画素数は２ｘ２画素に限定するものではなく、必要に応じて増加させても良い。その場合には、パターンフラグとして必要とする値も変更になることはいうまでも無い。
【００２７】
［データ書き込み構造］
このようにして求めたパターンフラグと、色データをＤＭＡＣを通じてメモリに書き込むが、その時ＤＭＡＣではパターンフラグと第１色のデータと、第２，３，４色の書き込み位置を変える。ＤＭＡＣにはパターンフラグ書き込みのためのメモリ先頭アドレスと、第１色データの書き込みのためのメモリ先頭アドレスと、第２，３，４色データの書き込みのためのメモリ先頭アドレスの３つのアドレスを指定する。図８にその例を図示する。
【００２８】
例えばサイズがＭｘＮ画素のＲＧＢ各色８ビット画像を圧縮部へ入力する場合、パターンフラグのデータサイズはＭｘＮ／８バイトである。また、第１色のデータサイズはＭｘＮｘ３／４バイト、第２，３，４色のデータサイズは画像によって不定（画像によって異なる）の出力となる。ここで第１色書き込み位置以降のメモリ領域に関しては、画素データがピクセル単位で量子化や符号化されることなく格納されている。つまり、１画素入力、１画素出力で完結する色処理、例えばＬＵＴを用いた色変換や、ガンマ補正処理、行列演算を用いた色空間変換処理等は特にパターンフラグを参照する必要はなく、直接処理を行うことが可能になる。図２に示している色処理部ではメモリ上の第１色書き込み先頭アドレス以降の画素データをＤＭＡＣ経由で読み込み、画素単位での処理を済ませた後にメモリ上へ書き戻す。この時なんらかの画素単位処理によって画素のビット数が変わらない場合には、メモリ上同じ場所へ上書きすることでメモリの節約も可能である。
【００２９】
このように圧縮データを直接用いることで、メモリバス上の転送効率が向上し、かつオリジナルの画像に対して少ない画素数のデータに対して処理することになるので、高速処理が可能になる。また図８に示したように、画像データを離散的にメモリ上へ格納することで、第１色部に限ってみると、画像を２ｘ２単位に左上の座標の画素をサンプリングした画像結果がメモリ上で連続して存在することになる。本実施形態で説明しているＭＦＰにおいては、蓄積したＰＤＬ画像データやスキャンの画像データのプレビュー表示や、前述したネットワーク送信などの機能も有している。例えばプリント解像度が６００ｄｐｉであったとしてもプレビューや送信時にそこまでの解像度は通常必要とされず、３００ｄｐｉやそれ以下で十分な場合が多い。こういった縮小データを得る必要がある場合は、パターンフラグや第２，３，４色を捨て、第１色の画像データのみ扱うことで、簡単に半分のサイズのラスタ画像を得る事が出来る。
【００３０】
例えば前述の例において、６００ｄｐｉで蓄積されていた場合の縮小送信時を説明する。解像度として４００ｄｐｉなどサンプリングされている３００ｄｐｉより大きい解像度が指定されている場合にはパターンフラグも含めて圧縮されているデータを一度展開し公知の変倍を用いて送信する。逆に３００ｄｐｉより小さい送信解像度指定がされている場合には第１色部のデータのみ用い、指定の解像度へ変倍処理を行うといったように必要な画像サイズに応じて切り替えながらデータの読み込みを行う。
【００３１】
次に、圧縮部と対になる展開部２２２、２３２に関して説明する。展開部では前述したようなパターンフラグ、画素データをもとにもとのラスタ画像データへ戻す処理の事を指す。
【００３２】
メモリ上に図８のように配置されている圧縮データのパターンフラグ書き込み先頭アドレス、第１色書き込み先頭アドレス、および第２，３，４色書き込み先頭アドレスの３つのアドレスをＤＭＡＣへ指定する。ＤＭＡＣはその３つのアドレスからデータを読み出し、展開部へ入力する。展開部ではまず４ｂｉｔのパターンフラグを解釈し、そのブロック内の色数を算出する。第１色データに加え、色数に応じて第２，３，４色データを読み出し、パターンフラグの形状に応じて画素データを再配置する。これにより、２ｘ２画素ブロックを展開、復号する。
【００３３】
また、展開部で画像サイズ１／２を行う場合には、前述したように、パターンフラグと２，３，４色データを必要としないので、ＤＭＡＣには第１色書き込み先頭アドレスのみ指定し、メモリからは第１色データのみ読み込みを行い、画像を構成する。これにより、メモリバスの帯域を節約することが可能になる。
【００３４】
以上説明してきた構成により、比較的単純な圧縮方式でメモリ容量やメモリバス帯域の節約が可能になるだけでなく、画素単位での画像処理や縮小変倍の処理負荷も削減することが可能になる。
【００３５】
なお本実施形態では２ｘ２画素のブロックを最小単位として記述していたが、これに限るものではない。ブロックの画素サイズを変更する場合には、パターンフラグにて必要とするビット数も変更になることはいうまでもない。また圧縮の説明の際画像データとしてＲＧＢ８ｂｉｔを例として説明していたが、ＣＭＹＫの色空間を取るものや、グレースケールのデータ、また８ｂｉｔ以外の画素値をとるものでも良い。
【００３６】
［ラスタ画像データ圧縮］
次に、前に述べたラスタ画像データの圧縮部に関して、ランダムアクセス性を高めた実施形態を説明する。前記圧縮方法は画像データに依存してその圧縮データサイズが変わる可変長圧縮処理となっている。そのため圧縮データに対してのランダムアクセス性はなく、画像の一部だけ切り出して処理するなどといった目的には向かない。そこでこれまでに述べた方法に対してよりランダムアクセス性を高める事に着目した圧縮方法に関して説明する。
【００３７】
図９を用いて詳細を説明する。まずページ単位にラスタ画像データを入力する（Ｓ９０１）。続いて圧縮部の入力となる前記画像データを所定の大きさへ分割する（Ｓ９０２）。本実施形態では３２ｘ３２画素とする。今後の説明ではこれまでの２ｘ２画素のブロックと区別するために、この構成要素をタイルと呼ぶこととする。図１０にタイルとブロックとの関係を図示する。このタイル単位に前述の方法で説明してきた圧縮処理を適用する（Ｓ９０３）。この圧縮処理に関しての説明は割愛する。なお、本実施形態において、タイルを３２ｘ３２画素から構成されるとして扱っているが、このサイズに限定されるものではなく、必要に応じて増減しても構わない。なお、その場合にはブロックのサイズを考慮して構成することが望ましい。
【００３８】
続いてその圧縮されたタイルデータのデータサイズを算出する。これはパターンフラグサイズ、第１色データサイズ、第２，３，４色データサイズの合計になる。パターンフラグがタイル単位で３２ｘ３２ｂｉｔ必ず付与されるので、必ずしもオリジナルの画像データよりデータサイズが圧縮される保証はない。そのため、もし圧縮処理を行った圧縮データがオリジナルの画像データサイズを超えてしまった場合には、生の画像データ（すなわち、元の画像データ：以下、生データと称す）を出力する方が画像を保持するトータルの容量として効率が良い。そのため圧縮データと生データとのサイズの比較を行う（Ｓ９０４）。
【００３９】
もし、圧縮データが生データのサイズを超えていた場合には（Ｓ９０４にてＹＥＳ）、ヘッダ中の圧縮フラグを０にする（Ｓ９０５）。一方、超えていなかった場合（Ｓ９０４にてＮＯ）にはフラグを１にする（Ｓ９０７）。それらの結果を受けてデータサイズが小さいいずれかのデータ（圧縮データもしくは生データ）を１つのデータにパッキングする（Ｓ９０６、Ｓ９０８）。このデータ構造を図１１に示す。以後このヘッダも含めたデータの単位を“パケット”と呼ぶことにする。
【００４０】
パケットデータには所定の固定長のヘッダ情報が付与される（Ｓ９０９）。本実施形態において、ヘッダ情報にはページＩＤ、タイル座標、色空間、画素データのビット数、タイルのデータサイズ、属性情報の有無、圧縮フラグを記述する。ページＩＤには、ページ単位にユニークなＩＤ番号を付与する。
【００４１】
タイル座標には、そのタイルがページ単位のラスタ画像上どの位置にあるかを記述してある。ここには、Ｘ座標とＹ座標と２次元で座標が書かれているとする。色空間には、そのタイルがＲＧＢ画像、ＣＭＹＫ画像、ＧＲＡＹ−ＳＣＡＬＥ画像のうちのいずれであるかを示す識別子が記述されている。画素データのビット数には、タイル内の１画素あたりのビット長が書かれている。データサイズには、そのタイルの第１色のデータサイズと第２，３，４色のデータのデータサイズがＢｙｔｅ単位で記述されている。属性情報の有無には、その画像データに文字や写真といった属性情報が画素単位で付与されているか否かが記述されている。圧縮フラグには、そのタイルが圧縮されたデータが格納されているか、非圧縮のデータが格納されているかのフラグが記述されている。なお、ヘッダ情報に含まれる情報は、上記に限定するものではなく、必要に応じて追加しても良い。
【００４２】
図１１のようなパケットにするために、タイル単位で圧縮処理が終了しデータサイズが確定した後、第１色格納部と第２，３，４色格納部の間は詰めた状態でデータをパッキングする。そうした後にＤＭＡＣを経由し、メモリ上へ出力する（Ｓ９１０）。それに続いてそのパケットの座標とサイズをリストとして列挙し、パケット管理テーブルとして作成する（Ｓ９１１）。パケット管理テーブルの例として図１２に示す。これを最後のタイルまで繰り返す（Ｓ９１２）。
【００４３】
このようにしてタイル単位で画像をメモリへ書き出すと図１２のようにパケット毎にサイズが異なり、それぞれのパケットの先頭アドレスが不規則になってしまう。そのため先のフローで書き出したパケット管理テーブルを用いて、任意の座標のパケットの先頭アドレスを探索する。先頭パケットの書き込みアドレスが既知であれば、パケット管理テーブルに記載されている座標までのデータサイズをオフセットとして任意のパケットの先頭アドレスを求める事が可能になる。
【００４４】
例えば図１３における第３パケットを読み込む場合を考える。その場合、第１、第２パケットのサイズ合計をパケット管理テーブルより求め、先頭パケットのアドレスに対して、オフセットをかけることで第３パケットアドレスを算出する。そして、そこからデータを読み込むことで第３パケットのデータを取得することが可能になる。このようにタイル単位に任意のデータへのアクセスが可能になるので、圧縮した画像データに対する部分的な処理が可能になる。
【００４５】
画像データに対する全てのパケットの処理が完了した時点で、ページ単位のヘッダ情報をＴｏｐヘッダとして付加する（Ｓ９１３）。Ｔｏｐヘッダの内容は、図１４のように、ページ内で共通となっている情報を付加するものとして、ページＩＤ、タイル数、色空間、画像データのビット数等の情報を付加する。また、圧縮後の画像データをメモリや磁気ディスク等に保存する場合には、前記処理の最後に付加されたＴｏｐヘッダの格納スペースを各パケットの前に予め空けておき、各パケットデータの格納を行い、最後に出力されてくるＴｏｐヘッダを空きスペースに格納する。なお、Ｔｏｐヘッダの構成は、上記で述べたものに限定されるわけではなく、必要に応じて情報を追加しても良い。以上が、圧縮時のフローとなる。
【００４６】
［ハードウェア構成（圧縮処理向け）］
前記圧縮処理を実現する為のハードウェア構成の例を図１５に示す。入力Ｉ／Ｆ１５０１は、ラスタ画像データの入力を行う。タイル切り出し部１５０２は、入力されたラスタ画像データを、一旦第１メモリ１５０３に格納し、３２ｘ３２画素のタイルデータへの切り出しを行う。圧縮処理部１５００は、タイル切り出し部１５０２によって切り出されたタイルの画像データに対して、圧縮処理を行う。ブロック切り出し部１５０４は、パターン認識を行う為に、タイルデータ内からブロック（本実施形態では２ｘ２の画素）の切り出しを行う。パターン認識部１５０５は、ブロックにおけるパターンの認識を行う。色数判定部１５０６は、ブロック内の色情報を抽出する。
【００４７】
圧縮データ生成部１５０７は、タイル内の各ブロックのパターン情報と色情報とを、第２メモリ１５０８に格納しておき、タイル内の全ブロックの処理が完了した時点で１タイル分の圧縮データとしてパッキングを行う。比較部１５０９は、圧縮データ生成部１５０７によって生成された圧縮後のデータ量と、圧縮を行わない生データのデータ量の比較を行う。また、比較結果をセレクタ部１５１０へ出力を行う。セレクタ部１５１０には、第３メモリ１５１１に格納しておいたタイルの生データと、圧縮データ生成部１５０７から出力された圧縮後データの入力を行う。さらに、圧縮後のデータが生データのデータ量を超える場合は生データを、圧縮後のデータが生データのデータ量より小さい場合は圧縮後のデータの出力を行う。ヘッダ情報付加部１５１２は、セレクタ部１５１０から出力されたデータに対して、図１１に示したようなヘッダ情報を付加する。ヘッダ情報付加部１５１２でヘッダ情報を付加されたデータは出力Ｉ／Ｆ１５１３から出力される。
【００４８】
なお、ここで、各メモリの役割を明確にするため、第１メモリ、第２メモリと記載したが、実装においては、同一のメモリであっても良い。
【００４９】
［圧縮データ展開処理］
次に、前記圧縮データを展開する場合の詳細な例について説明を行う。図１６は、展開処理を行う場合のフローの例である。処理が開始されると、圧縮データが入力される（Ｓ１６０１）。そして、Ｔｏｐヘッダの情報の参照が行われる（Ｓ１６０２）。その後、順次未処理のタイルのパケットデータの入力が行われる（Ｓ１６０３）。タイルデータが入力されると、まずタイル毎のヘッダ情報が認識される（Ｓ１６０４）。次に、ヘッダ情報内の圧縮フラグを参照し、圧縮フラグが「１」の場合（Ｓ１６０５にてＹＥＳ）は、圧縮されたデータが入っていると認識し、後の展開処理へと移行する。一方、圧縮フラグが「０」の場合（Ｓ１６０５にてＮＯ）は、圧縮されていない生データが入っていると認識し、展開処理は行わず、そのまま生データが出力（Ｓ１６０６）される。
【００５０】
展開処理には、ヘッダよりパターンフラグ格納位置、第１色のデータ格納位置、及び第２，３，４色格納位置が求められる。例えばパターンフラグの位置は固定長のヘッダなのでオフセットすることで求められる。続いて第１色のデータは、タイルのサイズが３２ｘ３２画素であればパターンフラグのサイズが３２ｘ３２ｂｉｔで固定になるので、パターンフラグ位置からオフセットをかければ求められる。最後に第２，３，４色のデータは第１色のデータが不定長なので、ヘッダに記載されている第１色サイズを参照し、第１色のデータ位置からオフセットをかけることで求められる。Ｓ１６０５にてＹＳＥと判定された場合、パターンフラグの抽出（Ｓ１６０７）する。その後、色情報の抽出が行われる（Ｓ１６０８）。そして、元画像へと復元される（Ｓ１６０９）。復元された画像データは、展開データとして出力される（Ｓ１６１０）。以上の処理を画像データの全てのタイルに対して完了した時点（Ｓ１６１１にてＹＥＳ）で展開処理は終了となる（Ｓ１６１２）。
【００５１】
［ハードウェア構成（展開処理向け）］
展開処理を実現する為のハードウェア構成の例を図１７に示す。入力Ｉ／Ｆ１７０１は、圧縮データの入力を行う。ヘッダ情報解析部１７０２は、入力された圧縮データのヘッダ情報を入力し、内容の解析を行う。展開処理制御部１７０３は、ヘッダ情報解析部１７０２によって認識されたヘッダ情報を元に、展開処理を行う展開処理部１７００の制御を行う。パターン情報抽出部１７０４は入力されたタイルデータから、２ｘ２画素のパターンデータの抽出を行う。色数情報抽出部１７０５は入力されたタイルデータから、２ｘ２画素のパターンデータの色情報の抽出を行う。元画像再生部１７０６は、パターン情報抽出部１７０４によって認識されたパターン情報と、色数情報抽出部１７０５によって認識された色情報を元に、元の２ｘ２画素の状態の復元を行う。セレクタ部１７０７は、ヘッダ情報解析部１７０２によって認識された圧縮フラグの情報に基づいて、入力されたパケットデータが圧縮されていない生データであった場合は、入力されたパケットデータからヘッダ部分を除いた生データの出力を行う。これに対し、入力されたパケットデータが圧縮データであった場合には、元画像再生部１７０６によって復元された画像データの出力を行う。以上の処理を行った復元データは、出力Ｉ／Ｆ１７０８から出力される。
【００５２】
［濃度ムラおよび色ムラ補正処理］
次に、上記の圧縮処理及び展開処理に、濃度ムラ及び色ムラの補正処理を付加する処理について説明を行う。本実施形態では、グレースケールのデータによる例にて説明を行う。最初に、圧縮処理と併せて行う補正前処理についての詳細な説明を行う。図１８（Ａ）に示すように、前述と同様にページ内の画像データから３２ｘ３２画素のタイルデータの切り出しを行う。座標（Ｍ、Ｎ）のタイルには、タイル内の座標（０、０）から座標（３１、３１）までのデータが含まれている。本実施形態の場合、グレースケールのデータ（ＢＷ）として、８ｂｉｔのデータがそれぞれの画素に含まれている。まずは、タイル代表値（ＢＷａｖｅ）の算出を行う。本実施形態では、タイル内の全画素データの平均値を求めて、タイル代表値（ＢＷａｖｅ）とする。次に、タイル代表値を使用して、各タイルが補正処理対象か否かの判定を行う。その方法を、図１９（Ａ）を用いて説明を行う。
【００５３】
注目タイルを座標（Ｍ、Ｎ）のタイルとする。注目タイルを中心として、主走査方向にＡ、副走査方向にＢの複数のタイルを含んだ領域をエリアとする。本実施形態では、Ａ＝５、Ｂ＝５としたと場合を例とする。この場合、注目タイルを中心として、座標（Ｍ−２、Ｎ−２）から座標（Ｍ＋２、Ｎ＋２）の領域内のタイルが注目タイル（Ｍ、Ｎ）のエリアとなる。エリアに含まれるタイルのタイル代表値のヒストグラムをとる。エリア内の全てのタイル代表値が予め設定した値（ＳＬ）の範囲内に入っている場合（言い換えると、エリア内のタイル代表値の最大値と最小値の差がＳＬ以内である場合）、ＡｘＢのエリアは「均一部分である」と判定する。そして、注目タイルは「補正処理を実施する」タイルと判定する。エリア内のタイル代表値が特定の範囲内に入っていない場合、ＡｘＢのエリアは「均一部分ではない」と判定し、注目タイルは「補正処理を実施しない」タイルと判定する。また、エリア内の全ての代表値の中で、最も多い値をそのエリア代表値（ＡＲＥＡＤ）とする。
【００５４】
図１９（Ａ）、図２０（Ａ）を元に、具体的な例をあげる。図１９（Ａ）のように、座標（Ｍ、Ｎ）を注目タイルとした５ｘ５タイルのエリア内のタイル代表値（ＢＷａｖｅ）が、「１２」から「１５」までの値を持っていたとする。このエリア内のタイル代表値のヒストグラムを取ると、図２０（Ａ）のようになる。このヒストグラムを用いて、補正対象を判定するためのエリアにおけるタイル代表値の分布を確認する。本実施形態の場合、図２０（Ａ）に示すように、エリア内の全てのタイル代表値が予め設定した値（ＳＬ＝５とする）の範囲内に含まれている。つまり、エリア内のタイル代表値において、最大値と最小値の差が５以内である。よって、ＡｘＢのエリアは「均一部分である」と判定し、注目タイルは「補正処理を実施する」タイルと判定する。また、エリア内のタイル代表値の中で、最も多くエリア内に存在するタイル代表値「１２」（すなわち、最頻値）を、座標（Ｍ、Ｎ）を注目タイルとした場合のエリア代表値ＡＲＥＡＤ（Ｍ、Ｎ）とする。
【００５５】
次に、補正値（ＢＷＨ）の算出を行う。補正値（ＢＷＨ）とは、補正処理対象か否かの判定によって、補正対象と判定されたタイルの値をどのような値に補正するかを示す値である。図２１を用いて、本実施形態における補正値（ＢＷＨ）の算出方法の説明を行う。補正値（ＢＷＨ）の算出は、画像データ内の補正対象タイルと判定されたタイルに関して、エリア代表値（ＡＲＥＡＤ）のヒストグラムを取り、最も多い値をそのページの補正値（ＢＷＨ）とする。すなわち、タイルに含まれるエリア代表値のうち、最も出現する頻度が多い値を補正値としている。図２１の例は、ＴＩＬＥ（Ｍ−２，Ｎ−２）からＴＩＬＥ（Ｍ＋２，Ｎ＋２）の範囲内のタイルが、非補正対象タイルと判定されている場合の例である。ここでは、画像データ内のＴＩＬＥ（Ｍ−２，Ｎ−２）からＴＩＬＥ（Ｍ＋２，Ｎ＋２）の範囲以外のエリア代表値（ＡＲＥＡＤ）で最も多い値を補正値（ＢＷＨ）とする。
【００５６】
以上の処理を行う事により、各タイルに、タイル代表値（ＢＷａｖｅ）と補正対象か否かの判定の情報を出力する。また、画像データ全体に対して、補正値（ＢＷＨ）の情報を出力する。なお、本実施形態において、図２１の例から分かるように、注目タイルに対し、補正を行うか否かの判定を行うために対象としたエリアの範囲と、注目タイルに対する補正値を求めるために対象としたエリアの範囲は異なっている。しかし、これに限定されるものではなく、例えば、判定のためのエリア（第一エリア）の範囲と補正値算出のためのエリア（第二エリア）の範囲を同一の範囲とし、その中のエリア代表値を用いてもよい。また、第一エリアを構成するタイル数（第一のタイル数）と第二エリアを構成するタイル数（第二のタイル数）についても本実施形態に挙げられたものに限定するものではなく、必要に応じて増減してもよい。
【００５７】
前記タイル代表値や補正対象のタイルを示す情報は、圧縮されたデータのヘッダ部分に付加される。タイル代表値（ＢＷａｖｅ）に関しては、各タイルのパケットデータのヘッダ部分に付加される。また、タイルが補正対象か否かの情報も、補正対象フラグとして、各タイルのパケットデータのヘッダ部分に付加される。この情報により、圧縮時における注目タイルに対する補正を行うか否かの判定結果が反映されている。図２２は、タイルのパケットデータに付加されたヘッダ情報の例である。圧縮時のヘッダ情報に加えて、ＴＩＬＥ（Ｍ、Ｎ）の代表値（ＢＷａｖｅ）の値と、補正対象フラグ（本実施形態の場合、補正対象タイルであった場合は「１」、非補正対象タイルであった場合は、「０」）を有する。また、補正値（ＢＷＨ）に関しては、図２３（Ａ）に示すように、通常圧縮時のＴｏｐヘッダ情報に加えて、補正値（ＢＷＨ）の値を付加することとする。
【００５８】
図２４は、本実施形態のフローチャートを示した図である。圧縮処理に関しては、図９と同じとなるため、重複した参照番号の詳細な説明は割愛する。本実施形態における補正前処理に関する処理は、Ｓ２４０１からＳ２４０５となる。
【００５９】
タイルの切り出しが行われた後、圧縮処理に関しては、２ｘ２画素ずつのパターンの認識や、色情報の認識等の処理が行われる。その処理と平行して、タイル内の画像データからタイル毎にタイル代表値（ＢＷａｖｅ）の算出が行われる（Ｓ２４０１）。そして、タイル代表値を元に、ＡｘＢのエリアのタイル代表値（ＢＷａｖｅ）の解析が実施される（Ｓ２４０２）。その後、補正対象か否かの認識処理が実行される（Ｓ２４０３）。それら処理の結果、タイルの代表値と補正対象フラグがヘッダ部分に付加され（Ｓ９０９）、パケットデータが出力される（Ｓ９１０）。また、すべてのタイルへの処理が完了した時点で（Ｓ９１２にてＹＥＳ）、補正値の算出が行われる（Ｓ２４０４）。そして、補正値がＴｏｐヘッダに付加される（Ｓ９１３）。以上により、本処理が終了する。圧縮後の画像データをメモリや磁気ディスク等に保存する場合には、上記の処理の最後に付加されたＴｏｐヘッダの格納スペースを各パケットが格納される位置の前に予め空けておく。この領域に対し、各パケットデータの格納を行い、最後に出力されてくるＴｏｐヘッダを空きスペースに格納する。以上が、圧縮時に本特許の補正前処理を行う場合のフローとなる。
【００６０】
［ハードウェア構成（補正付き圧縮処理向け）］
上記の圧縮処理を実現する為のハードウェア構成の例を図２５に示す。図１５と重複する箇所については、同じ参照番号で示し、ここでは詳細な説明は省くこととする。
【００６１】
入力Ｉ／Ｆ１５０１は、ラスタ画像データの入力を行う。タイル切り出し部１５０２は、入力されたラスタ画像データを、一旦第１メモリ１５０３に格納し、３２ｘ３２画素のタイルデータへの切り出しを行う。圧縮処理部１５００は、タイル切り出し部１５０２によって切り出されたタイルの画像データに対して、圧縮処理を行う。圧縮処理部１５００に関しては、詳細な説明は割愛する。
【００６２】
補正前処理部２５００は、タイル切り出し部１５０２によって切り出されたタイルの画像データに対して、タイル代表値の算出や、各タイルが補正対象か否かの判定を行う。タイル代表値算出部２５０１は、入力されたタイル内のデータの平均値を算出する。各画素の値の加算を行う加算器（不図示）や、加算結果から平均値を求めるための除算器（不図示）等が含まれているものとなる。エリア切り出し部２５０２は、第４メモリ２５０３等のメモリ手段を内部に備え、各タイルのタイル代表値（ＢＷａｖｅ）の格納を行い、図１９（Ａ）で示したようなＡｘＢのエリア情報を作成する。補正部認識部２５０４は、エリア切り出し部２５０２によって生成されたエリア内のタイル代表値（ＢＷａｖｅ）から、補正を行うべきタイルか否かの判定を行う。エリア代表値算出部２５０５は、エリア代表値（ＡＲＥＡＤ）を算出する。ここでは、エリア切り出し部２５０２によって生成されたエリア内のタイル代表値（ＢＷａｖｅ）の中で最も多くエリア内に存在するタイル代表値（ＢＷａｖｅ）を、エリア代表値（ＡＲＥＡＤ）とする。補正値算出部２５０６は、本実施形態では、画像データ内の補正対象タイルと判定されたタイルに関して、エリア代表値（ＡＲＥＡＤ）のヒストグラムを取り、最も多い値をそのページの補正値（ＢＷＨ）とする。ヘッダ情報付加部２５０７は、セレクタ部１５１０から出力されたデータに対して、タイル代表値算出部２５０１からのタイル代表値（ＢＷａｖｅ）及び、補正部認識部２５０４からの補正対象フラグ等を付加する。そして、図２２に示したようなヘッダ情報を付加されたデータは出力Ｉ／Ｆ１５１３から出力される。画像データ内のすべてのタイルに関して処理が完了した時点で、図２３（Ａ）で示したようなＴｏｐヘッダの付加も行われる。
【００６３】
［濃度補正処理］
次に、前記圧縮データを展開する場合に、同時に濃度の補正処理を行う場合の詳細な例について説明を行う。図２６は、展開処理を行う場合のフローの例である。まず処理が開始されると、圧縮データが入力される（Ｓ２６０１）。続いて、Ｔｏｐヘッダの情報の参照が行われる（Ｓ２６０２）。この時、Ｔｏｐヘッダに付加されている補正値の認識が行われる。その後、順次、未処理のタイルに対するタイルデータの入力が行われる（Ｓ２６０３）。タイルデータが入力されると、まずタイル毎のヘッダ情報が認識される（Ｓ２６０４）。この時、各タイルのヘッダ部分に付加されている各タイル代表値（ＢＷａｖｅ）の認識及び、入力されたタイルが、補正対象か否かの認識が、補正対象フラグを見ることにより認識される。
【００６４】
次に、ヘッダ情報内の圧縮フラグを参照する（Ｓ２６０５）。圧縮フラグが「１」の場合は（Ｓ２６０５にてＹＥＳ）、圧縮されたデータが入っていると認識し、後の展開処理へと移行する。一方、圧縮フラグが「０」の場合は（Ｓ２６０５にてＮＯ）、圧縮されていない生データが入っていると認識し、展開処理は行わず、そのまま生データが出力される（Ｓ２６０６）。圧縮フラグが「１」の場合（Ｓ２６０５にてＹＥＳ）は、圧縮されたデータが入っていると認識され、次に、補正対象フラグの値から、そのタイルが補正対象か否かの判定を行う（Ｓ２６０７）。本実施形態の場合、補正対象フラグが「０」の場合（Ｓ２６０７にてＮＯ）は前述の通り、通常の展開処理を行う（Ｓ２６０８）。通常の展開処理に関しては、図１６のフローチャートによって詳細な説明を行ったように、パターンフラグの抽出、色情報抽出、元画像復元の各処理を行う。ここでは、通常の展開処理に関しては割愛する。
【００６５】
補正対象フラグが「１」の場合は（Ｓ２６０７にてＹＥＳ）、通常の展開処理に加えて、補正処理も同時に行う。その場合はまず、補正量の算出が行われる（Ｓ２６０９）。補正量の算出は、タイルヘッダ部に付加されていたタイル代表値（ＢＷａｖｅ）から、Ｔｏｐヘッダに付加されていた補正値（ＢＷＨ）を引くことにより、算出する。次に、補正処理を行った上で展開処理を行う。この場合、パターンフラグの抽出（Ｓ２６１０）、色情報の抽出（Ｓ２６１１）が行われた後、抽出された色情報に対して、色情報補正の処理が行われる（Ｓ２６１２）。本実施形態では、抽出された各色情報に対して、先に算出を行った補正量を加算する事により、色情報の補正を行う。さらに、抽出されたパターン情報に対して、補正を行った色情報を当てはめることにより、補正画像生成を行い（Ｓ２６１３）、展開データとして出力する（Ｓ２６１４）。以上の処理を画像データの全てのタイルに対して完了した時点（Ｓ２６１５にてＹＥＳ）で補正処理を行った展開処理の終了となる（Ｓ２６１６）。未処理のタイルが有る場合（Ｓ２６１５にてＮＯ）には、Ｓ２６０３へ戻り、次の未処理のタイルに対し処理を繰り返す。
【００６６】
［ハードウェア構成（補正付き展開処理向け）］
前記展開処理を実現する為のハードウェア構成の例を図２７に示す。入力Ｉ／Ｆ２７０１は、圧縮データの入力を行う。ヘッダ情報解析部２７０２は、入力された圧縮データのヘッダ情報を入力し、内容の解析を行う。展開・補正処理制御部２７０３は、ヘッダ情報解析部２７０２によって認識されたヘッダ情報を元に、展開処理を行う展開・補正処理部２７００の制御を行う。パターン情報抽出部２７０４は、入力されたタイルデータから、２ｘ２画素のパターンデータの抽出を行う。色数情報抽出部２７０５は、入力されたタイルデータから、２ｘ２画素の元画像データの色情報の抽出を行う。補正量算出部２７０６は、ヘッダ情報解析部２７０２によって認識されたタイル代表値（ＢＷａｖｅ）と補正値（ＢＷＨ）から、補正量の算出を行う。補正値からタイル代表値を引くための減算器（不図示）が含まれる。補正処理部２７０７は、ヘッダ情報解析部２７０２によって認識された補正対象フラグを元に、処理を行っているタイルが補正対象で無い場合には、抽出された色情報に対して補正を行わない状態で、次の元画像再生部２７０８へデータの出力を行う。また、処理を行っているタイルが補正対象であった場合には、抽出された色情報に対して先に算出した補正量の加算を行ってから、次の元画像再生部２７０８へデータの出力を行う。元画像再生部２７０８は、パターン情報抽出部２７０４によって認識されたパターン情報と、補正処理部２７０７から出力された色情報を元に、元の２ｘ２画素の状態の復元を行う。セレクタ部２７０９は、ヘッダ情報解析部２７０２によって認識された圧縮フラグの情報を元に、入力されたパケットデータが圧縮されていない生データであった場合は、入力されたパケットデータからヘッダ部分を除いた生データの出力を行う。一方、圧縮データであった場合には、元画像再生部２７０８によって復元された画像データの出力を行う。以上の処理を行った復元データは、出力Ｉ／Ｆ２７１０から出力される事となる。
【００６７】
以上のように、本発明は、データ圧縮と同時に、ムラの検知、補正値の算出等の補正前処理を行い、データ展開と同時に、データ補正を行う。これにより、従来は人手による補正設定や複数回のページ全体への画像処理を行い、回路規模、処理時間とも大きな負荷のある処理となっていた色ムラ・濃度ムラ補正の処理に関して、効率化が図れる。つまり、補正処理に必要なハードウェアの増加分の削減、補正処理に必要としていた処理時間の大幅な削減が可能となる。
【００６８】
＜第二の実施形態＞
第一の実施形態では、グレースケールのデータに対する補正について説明を行ったが、第二の実施形態では、ＲＧＢカラー画像データに対する補正処理の説明を行う。第一の実施形態と異なる点は、以下の点となる。
【００６９】
タイル代表値に関して、グレースケールの場合、１色分のデータ（ＢＷａｖｅ）を保持していたが、本実施形態ではＲＧＢそれぞれの色属性に対するタイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）をタイル代表値として保持する。また、補正対象か否かの判定をグレースケールの場合、タイル代表値（ＢＷａｖｅ）を使用して行ったが、本実施形態では、ＲＧＢの各タイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）の全データの平均値（ＡＶＥ）を使用して判定を行う。また、補正値に関しても、グレースケールの場合、１色分のデータ（ＢＷＨ）を保持していたが、本実施形態ではＲＧＢそれぞれの色属性に対する補正値（ＲＨ、ＧＨ、ＢＨ）を補正値として保持する。
【００７０】
以下に、ＲＧＢカラー画像データに対する補正処理の詳細な説明を行う。但し、画像データの圧縮及び、展開処理に関しては、第一の実施形態と同様な処理となるため、本実施形態では詳細な説明は割愛する。
【００７１】
［補正前処理］
最初に、圧縮と同時に行う補正前処理についての詳細な説明を行う。図１８（Ｂ）に示すように、第一の実施形態と同様、ページ内の画像データから３２ｘ３２画素のタイルデータの切り出しを行う。座標（Ｍ、Ｎ）のタイルには、タイル内の座標（０、０）から座標（３１、３１）までのデータが含まれている。本実施形態の場合、ＲＧＢデータ（Ｒ、Ｇ、Ｂ）として、８ｂｉｔのデータがそれぞれ含まれている。
【００７２】
まずは、ＲＧＢの各色のタイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）の算出を行なう。本実施形態では、タイル内の全画素のＲＧＢにおける各データの平均値を求め、各色のタイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）とする。次に、各タイルが補正処理対象か否かの判定を行う為、全データの平均値（ＡＶＥ）の算出を行う。この場合、全データの平均値は、各色のタイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）の平均から算出される。次に、全データの平均値（ＡＶＥ）を使用して、各タイルが補正処理対象か否かの判定を行う。その方法を、図１９（Ｂ）を用いて説明を行う。注目タイルを座標（Ｍ、Ｎ）のタイルとする。注目タイルを中心として、主走査方向にＡ、副走査方向にＢの複数のタイルを含んだ領域をエリアとする。
【００７３】
本実施形態では、Ａ＝５、Ｂ＝５としたと場合を例とする。この場合、注目タイルを中心として、座標（Ｍ−２、Ｎ−２）から座標（Ｍ＋２、Ｎ＋２）の領域内のタイルが注目タイル（Ｍ、Ｎ）のエリアとなる。エリアに含まれるタイルの全データの平均値（ＡＶＥ）のヒストグラムをとる。エリア内の全てのタイルの全データの平均値（ＡＶＥ）が予め設定した値（ＳＬ）の範囲内に入っている場合、ＡｘＢのエリアは「均一部分である」と判定し、注目タイルは「補正処理を実施する」タイルと判定する。エリア内のタイル代表値が特定の範囲内に入っていない場合、ＡｘＢのエリアは「均一部分ではない」と判定し、注目タイルは「補正処理を実施しない」タイルと判定する。また、エリア内の全ての代表値の中で、最も多い値をそのエリア代表値（ＡＲＥＡＤ）とする。
【００７４】
図１９（Ｂ）、図２０（Ｂ）を元に、具体的な例をあげる。図１９（Ｂ）のように、座標（Ｍ、Ｎ）を注目タイルとした５ｘ５タイルのエリア内の全データの平均値（ＡＶＥ）が、「１２」から「１５」までの値を有しているとする。このエリア内のタイル代表値のヒストグラムを取ると、図２０（Ｂ）のようになる。このヒストグラムを用いて、補正対象を判定するためのエリアにおけるタイル代表値の分布を確認する。本実施形態の場合、エリア内の全データの平均値（ＡＶＥ）が予め設定した値（本実施形態では、ＳＬ＝５とする）の範囲内に入っているので、ＡｘＢのエリアは「均一部分である」と判定し、注目タイルは「補正処理を実施する」タイルと判定する。また、エリア内のタイル代表値の中で、最も多くエリア内に存在するタイル代表値「１２」を、座標（Ｍ、Ｎ）を注目タイルとした場合のエリア代表値ＡＲＥＡＤ（Ｍ、Ｎ）とする。すなわち、出現する頻度が最も多い値をエリア代表値としている。
【００７５】
次に、ＲＧＢ各色の補正値（ＲＨ、ＧＨ、ＢＨ）の算出を行なう。ＲＧＢ各色の補正値（ＲＨ、ＧＨ、ＢＨ）は、前記補正処理対象か否かの判定によって、補正対象と判定されたタイルのＲＧＢの各値をどのような値に補正するかを示す値となる。ＲＧＢ各色の補正値（ＲＨ、ＧＨ、ＢＨ）の算出は、以下のように行うこととする。画像データ内の補正対象タイルと判定されたタイルに関して、エリア代表値（ＡＲＥＡＤ）のヒストグラムを取り、最も多い値をそのページの代表平均値（ＡＶＥＤ）とする。画像データ内の補正対象タイルと判定されたタイルに関して、ページの代表平均値（ＡＶＥＤ）と一致するタイルのＲＧＢの各色のタイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）を各色ごとに平均値を取り、ＲＧＢ各色の補正値（ＲＨ、ＧＨ、ＢＨ）とする。
【００７６】
以上の処理により、各タイルに対してＲＧＢの各色のタイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）と補正対象か否かの判定の情報の認識が行われる。また、画像データ全体に対してＲＧＢ各色の補正値（ＲＨ、ＧＨ、ＢＨ）の情報の認識が行われる。それらの情報は、圧縮されたデータのヘッダ部分に付加される。ＲＧＢの各色のタイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）に関しては、各タイルのパケットデータのヘッダ部分に、また、タイルが補正対象か否かの情報も、補正対象フラグとして、各タイルのパケットデータのヘッダ部分に付加される。
【００７７】
図２８は、タイルのパケットデータに付加されたヘッダ情報の例である。圧縮時のヘッダ情報に加えて、ＴＩＬＥ（Ｍ、Ｎ）のＲＧＢの各色のタイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）の値と、補正対象フラグとを有する。本実施形態の場合、当該タイルが補正対象タイルであった場合は「１」、非補正対象タイルであった場合は「０」を、補正対象フラグとして保持する。
【００７８】
また、ＲＧＢ各色の補正値（ＲＨ、ＧＨ、ＢＨ）に関しては、図２３（Ｂ）に示すように、図１４にて詳細な説明を行った、通常圧縮時のＴｏｐヘッダ情報に加えて、ＲＧＢ各色の補正値（ＲＨ、ＧＨ、ＢＨ）の値を付加することとする。
【００７９】
図２９は、本実施形態の圧縮時に行う補正前処理のフローチャートを示した図である。圧縮処理に関しては、図９と同一であるため、同じ参照番号にて示す処理の詳細な説明は割愛する。本実施形態における補正前処理に関する処理は、Ｓ３３０１からＳ３３０５となる。タイルの切り出しが行われた後、圧縮処理に関しては、２ｘ２画素ずつのパターンの認識や、色情報の認識等の処理が行われる。それと平行して、タイル内の画像データからタイル毎にＲＧＢの各色のタイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）の算出が行われる（Ｓ３３０１）。そして、その各色の代表値を元に、タイル内の全てのデータ平均値（ＡＶＥ）が算出される（Ｓ３３０２）。その後、ＡｘＢエリアのタイル内の全てのデータ平均値（ＡＶＥ）の解析が実施される（Ｓ３３０３）。その後、解析の結果に基づいて、補正対象か否かの認識処理が実行される（Ｓ３３０４）。Ｓ３３０４の処理の結果、Ｓ９０８もしくはＳ９０６にてパッキングされたデータに対し、ＲＧＢの各色のタイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）と補正対象フラグがヘッダ部分に付加される（Ｓ９０９）。そして、パケットデータが出力される（Ｓ９１０）。
【００８０】
また、すべてのタイルの処理が完了した時点で（Ｓ９１２にてＹＥＳ）、ＲＧＢ各色の補正値（ＲＨ、ＧＨ、ＢＨ）の算出が行われる（Ｓ３３０５）。そして、補正に値に関してはＴｏｐヘッダに付加されて（Ｓ９１３）、出力される（Ｓ９１４）。圧縮後の画像データをメモリや磁気ディスク等に保存する場合には、処理の最後に付加されたＴｏｐヘッダの格納スペースを各パケットの前に予め空けておき、各パケットデータの格納を行う。そして、最後に出力されてくるＴｏｐヘッダを前記空きスペースに格納する。以上が、圧縮時に本特許の補正前処理を行う場合のフローとなる。
【００８１】
［ハードウェア構成（カラー画像用補正処理付き圧縮処理向け）］
上記の圧縮処理を実現する為のハードウェア構成の例を図３０に示す。ここでは、先に図１５によって説明を行っている部分に関しては、図１５と同じ番号を振っておく事により、詳細な説明は省くこととする。
【００８２】
入力Ｉ／Ｆ１５０１は、ラスタ画像データの入力を行う。タイル切り出し部１５０２は、入力されたラスタ画像データを、一旦第１メモリ１５０３に格納し、３２ｘ３２画素のタイルデータへの切り出しを行う。圧縮処理部１５００は、タイル切り出し部１５０２によって切り出されたタイルの画像データに対して、圧縮処理を行う。圧縮処理部１５００に関しては、すでに述べているため詳細な説明は割愛する。
【００８３】
補正前処理部３４００は、タイル切り出し部１５０２によって切り出されたタイルの画像データに対して、タイル代表値の算出や、各タイルが補正対象か否かの判定を行う。ＲＧＢタイル代表値算出部３４０１は、入力されたタイル内のデータのＲＧＢ各色の平均値を算出する。各画素の値の加算を行う加算器（不図示）や、加算結果から平均値を求めるための除算器（不図示）等が含まれている。全データ平均値算出部３４０２は、タイル内の全データの平均値（ＡＶＥ）を算出する。本実施形態では、入力されたＲＧＢの各色のタイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）の平均値を算出するために、各色のタイル代表値の加算を行う加算器（不図示）や、加算結果から平均値を求めるための除算器（不図示）等が含まれている。
【００８４】
エリア切り出し部３４０３は、第４メモリ３４０４等のメモリ手段を内部有する。また、各タイルの全データの平均値（ＡＶＥ）の格納を行い、図１９（Ｂ）で示したようなＡｘＢのエリア情報を作成する。補正部認識部３４０５は、エリア切り出し部３４０３によって生成されたエリア内の各タイルの全データの平均値（ＡＶＥ）から、補正を行うべきタイルか否かの判定を行う。エリア代表値算出部３４０６は、エリア代表値を算出する。本実施形態においては、エリア切り出し部３４０３によって生成されたエリア内の各タイルの全データの平均値（ＡＶＥ）の中で最も多くエリア内に存在する全データの平均値（ＡＶＥ）を、エリア代表値（ＡＲＥＡＤ）とする。補正値算出部３４０７は、ＲＧＢ各色の補正値（ＲＨ、ＧＨ、ＢＨ）の算出を行う。画像データ内の補正対象タイルと判定されたタイルに関して、エリア代表値（ＡＲＥＡＤ）のヒストグラムを取り、最も多い値をそのページの代表平均値（ＡＶＥＤ）とする。
【００８５】
画像データ内の補正対象タイルと判定されたタイルに関して、ページの代表平均値（ＡＶＥＤ）と一致するタイルのＲＧＢの各色のタイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）を各色ごとに平均値を取り、ＲＧＢ各色の補正値（ＲＨ、ＧＨ、ＢＨ）とする。ヘッダ情報付加部３４０８は、セレクタ部１５１０から出力された圧縮後の画像データに対して、ＲＧＢタイル代表値算出部３４０１からのＲＧＢの各色のタイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）及び、補正部認識部３４０５からの補正対象フラグ等を付加する。ここでは、図２８に示したようなヘッダ情報を付加されたデータは出力Ｉ／Ｆ１５１３から出力される。画像データ内のすべてのタイルに関して処理が完了した時点で、図２３（Ｂ）で示したようなＴｏｐヘッダの付加もヘッダ情報付加部３４０８にて行われる。
【００８６】
［濃度補正処理］
次に、前記圧縮データを展開する場合に、同時に濃度の補正処理を行う場合の詳細な例について説明を行う。図３１は、展開処理を行う場合のフローの例である。処理が開始されると、圧縮データが入力される（Ｓ３５０１）。そして、Ｔｏｐヘッダの情報の参照が行われる（Ｓ３５０２）。この時、Ｔｏｐヘッダ部に付加されている補正値の認識が行われる。その後、順次タイルのパケットデータの入力が行われる（Ｓ３５０３）。タイルデータが入力されると、まずタイル毎のヘッダ情報が認識される（Ｓ３５０４）。この時、各タイルのヘッダ部分に付加されているＲＧＢの各色のタイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）の認識及び、入力されたタイルが、補正対象か否かの認識が、補正対象フラグを見ることにより認識される。
【００８７】
次に、ヘッダ情報内の圧縮フラグを参照する（Ｓ３５０５）。ここで、圧縮フラグが「１」の場合は（Ｓ３５０５にてＹＥＳ）、圧縮されたデータが入っていると認識し、後の展開処理へと移行する。一方、圧縮フラグが「０」の場合は（Ｓ３５０５にてＮＯ）、圧縮されていない生データが入っていると認識し、展開処理は行わず、そのまま生データが出力される（Ｓ３５０６）。圧縮フラグが「１」の場合は（Ｓ３５０５にてＹＥＳ）、圧縮されたデータが入っていると認識され、次に補正対象フラグの値から、そのタイルが補正対象か否かの判定を行う（Ｓ３５０７）。
【００８８】
本実施形態の場合、補正対象フラグが「０」の場合は（Ｓ３５０７にてＮＯ）、先に詳細な説明を行ったように、通常の展開処理を行う（Ｓ３５０８）。通常の展開処理に関しては、図１６のフローチャートによって詳細な説明を行ったように、パターンフラグの抽出、色情報抽出、元画像復元の各処理を行う。ここでは、通常の展開処理に関しては割愛する。補正対象フラグが「１」の場合は（Ｓ３５０７にてＹＥＳ）、通常の展開処理に加えて、補正処理も同時に行う。その場合はまず、ＲＧＢの各色に対する補正量の算出が行われる（Ｓ３５０９）。補正量の算出は、タイルヘッダに付加されていたＲＧＢの各色のタイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）から、Ｔｏｐヘッダに付加されていたＲＧＢ各色の補正値（ＲＨ、ＧＨ、ＢＨ）を各色からに引くことにより、算出する。
【００８９】
次に、補正処理を行ったうえで展開処理を行う。この場合、パターンフラグの抽出（Ｓ３５１０）、色情報の抽出（Ｓ３５１１）が行われた後、抽出されたＲＧＢ各色情報に対して、色情報補正の処理が行われる（Ｓ３５１２）。本実施形態では、抽出された各色情報のＲＧＢデータに対して、先に算出を行ったＲＧＢ各色の補正量を加算する事により、色情報の補正を行う。抽出されたパターン情報に対して、補正を行った色情報を当てはめることにより、補正画像生成を行う（Ｓ３５１３）。そして、Ｓ３５１３もしくはＳ３５０８の後に展開データとして出力する（Ｓ３５１４）。以上の処理を画像データの全てのタイルに対して完了した時点（Ｓ３５１５にてＹＥＳ）で、補正処理を行った展開処理の終了となる（Ｓ３５１６）。
【００９０】
［ハードウェア構成（カラー画像用補正付き展開処理向け）］
上記の展開処理を実現する為のハードウェア構成の例を図３２に示す。入力Ｉ／Ｆ３６０１は、圧縮データの入力を行う。ヘッダ情報解析部３６０２は、入力された圧縮データのヘッダ情報を入力し、内容の解析を行う。展開・補正処理制御部３６０３は、ヘッダ情報解析部３６０２によって認識されたヘッダ情報を元に展開処理を行う展開・補正処理部３６００の制御を行う。パターン情報抽出部３６０４は、入力されたタイルデータから、２ｘ２画素のパターンデータの抽出を行う。色数情報抽出部３６０５は、入力されたタイルデータから、２ｘ２画素の元画像データの色情報の抽出を行う。
【００９１】
ＲＧＢ補正量算出部３６０６は、ヘッダ情報解析部３６０２によって認識されたＲＧＢの各色のタイル代表値（Ｒａｖｅ、Ｇａｖｅ、Ｂａｖｅ）とＲＧＢ各色の補正値（ＲＨ、ＧＨ、ＢＨ）から、ＲＧＢ各色の補正量の算出を行う。ここでは各色の補正値から各色のタイル代表値を引くための減算器（不図示）が含まれるものとなる。補正処理部３６０７は、ヘッダ情報解析部３６０２によって認識された補正対象フラグが、処理を行っているタイルが補正対象で無い場合には、抽出された色情報に対して補正を行わない状態で、次の元画像再生部３６０８へデータの出力を行う。また、処理を行っているタイルが補正対象であった場合には、抽出された色情報のＲＧＢデータに対して先に算出したＲＧＢ各色の補正量の加算を行って、次の元画像再生部３６０８へデータの出力を行う。
【００９２】
元画像再生部３６０８は、パターン情報抽出部３６０４によって認識されたパターン情報と、補正処理部３６０７から出力された色情報を元に、元の２ｘ２画素の状態の復元を行う。セレクタ部３６０９は、ヘッダ情報解析部３６０２によって認識された圧縮フラグの情報を元に、入力されたパケットデータが圧縮されていない生データであった場合は、入力されたパケットデータからヘッダ部分を除いた生データを出力する。一方、入力されたパケットデータが圧縮データであった場合には、元画像再生部３６０８によって復元された画像データの出力を行う。以上の処理を行った復元データは、出力Ｉ／Ｆ３６１０から出力される。
【００９３】
以上のように、ＲＧＢのカラー画像データに対しても、データ圧縮と同時に、ムラの検知、補正値の算出等の補正前処理を行い、データ展開と同時に、データ補正を行う。これにより、従来は人手による補正設定や複数回のページ全体への画像処理を行い、回路規模、処理時間とも大きな負荷のある処理となっていた色ムラ・濃度ムラ補正の処理に関して、効率化ができる。すなわち、補正処理に必要なハードウェアの増加分の削減、補正処理に必要としていた処理時間の大幅な削減が可能となる。
【００９４】
＜第三の実施形態＞
第一の実施形態では、グレースケールのデータに対する補正について、第二の実施形態では、ＲＧＢカラー画像データに対する補正処理について説明を行った。しかし、前記補正処理では、グラデーション画像に関して補正を行ってしまうという問題点が挙げられる。
【００９５】
例えば、ＡｘＢのエリア内が、グレースケールデータで右下方向に暗くなるようなグラデーション画像であるデータが入力された場合、タイル代表値（ＢＷａｖｅ）は、図１９（Ｃ）のような値となる。
【００９６】
このエリア内のタイル代表値のヒストグラムを取ると、図２０（Ｃ）のようになる。第一の実施形態の場合、エリア内の全てのタイル代表値が予め設定した値（本実施形態では、ＳＬ＝５とする）の範囲内に入っているので、ＡｘＢのエリアは「均一部分である」と判定し、注目タイルは「補正処理を実施する」タイルと判定される。この場合、展開・補正処理時にグラデーション中のタイルに関して、補正値（ＢＷＨ）を基にした補正処理が実行される事となり、グラデーション画像が乱れることとなる。
【００９７】
そこで、本実施形態では、前記補正前処理中の補正対象か否かの判定を行う部分（ＡｘＢタイルエリア解析）に関して、グラデーションの領域判定を実行する。これにより、注目タイルがグラデーションの領域に含まれると認識した場合には、非補正対象とし、グラデーション部分の補正処理による画像の乱れを防ぐ。
【００９８】
本実施形態は、第一の実施形態で述べた図２４のフローチャートにおける補正対象タイル認識（Ｓ２４０３）にて処理を行う。また、図２５のブロック図における補正前処理部２５００内での処理に関するものである。よって、すでに述べた他の処理に対する詳細な説明は割愛することとする。
【００９９】
［グラデーション画像の認識］
グラデーション画像のデータの特徴として、図３３で示すように、エリアのＡ方向（主走査線方向）において、座標が大きくなるに従って、ＢＷａｖｅの値が常に上がり続けるか（増加）、常に下がり続けるか（減少）、同じ値が続くか（一定）の３つの状態を示す。また、エリアのＢ方向（副走査線方向）に関して、Ｎの座標が大きくなるに従って、ＢＷａｖｅの値が常に上がり続けるか（増加）、常に下がり続けるか（減少）、同じ値が続くか（一定）の３つの状態を示す。
【０１００】
すなわち、本実施形態では、主走査線方向と副走査線方向との両方において、画素の値が常に増加、減少、もしくは一定であるかの判定を行い、グラデーションの領域を判定する。このグラデーションにおける特徴の認識を行い、注目エリアの補正に関する判定に利用する。
【０１０１】
グラデーション認識に関して、図３４を用いて詳細な説明を行う。ＡｘＢのエリアのＡ方向に関して、図３４（Ａ）のように（Ａ−２）列、（Ａ−１）列、（Ａ）列、（Ａ＋１）列、（Ａ＋２）列と、各列の設定を行う。そして、各列に対して、隣り合ったタイル代表値の差を計算する。例えば、（Ａ−２）列に関しては、以下の演算を行う。
【０１０２】
ＢＷａｖｅ（Ｍ−２，Ｎ−２）−ＢＷａｖｅ（Ｍ−１，Ｎ−２）
ＢＷａｖｅ（Ｍ−１，Ｎ−２）−ＢＷａｖｅ（Ｍ，Ｎ−２）
ＢＷａｖｅ（Ｍ，Ｎ−２）−ＢＷａｖｅ（Ｍ＋１，Ｎ−２）
ＢＷａｖｅ（Ｍ＋１，Ｎ−２）−ＢＷａｖｅ（Ｍ＋２，Ｎ−２）
同様に、（Ａ）列に関しては、以下の演算を行う。
【０１０３】
ＢＷａｖｅ（Ｍ−２，Ｎ）−ＢＷａｖｅ（Ｍ−１，Ｎ）
ＢＷａｖｅ（Ｍ−１，Ｎ）−ＢＷａｖｅ（Ｍ，Ｎ）
ＢＷａｖｅ（Ｍ，Ｎ）−ＢＷａｖｅ（Ｍ＋１，Ｎ）
ＢＷａｖｅ（Ｍ＋１，Ｎ）−ＢＷａｖｅ（Ｍ＋２，Ｎ）
また、ＡｘＢのエリアのＡ方向に関して、図３４（Ｂ）のように（Ｂ−２）列、（Ｂ−１）列、（Ｂ）列、（Ｂ＋１）列、（Ｂ＋２）列と、各列の設定を行う。そして、各列に対して、隣り合ったタイル代表値の差を計算する。例えば、（Ｂ−１）列に関しては、以下の演算を行う。
【０１０４】
ＢＷａｖｅ（Ｍ−１，Ｎ−２）−ＢＷａｖｅ（Ｍ−１，Ｎ−１）
ＢＷａｖｅ（Ｍ−１，Ｎ−１）−ＢＷａｖｅ（Ｍ−１，Ｎ）
ＢＷａｖｅ（Ｍ−１，Ｎ）−ＢＷａｖｅ（Ｍ−１，Ｎ＋１）
ＢＷａｖｅ（Ｍ−１，Ｎ＋１）−ＢＷａｖｅ（Ｍ−１，Ｎ＋２）
同様に、（Ｂ＋２）列に関しては、以下の演算を行う。
【０１０５】
ＢＷａｖｅ（Ｍ＋２，Ｎ−２）−ＢＷａｖｅ（Ｍ＋２，Ｎ−１）
ＢＷａｖｅ（Ｍ＋２，Ｎ−１）−ＢＷａｖｅ（Ｍ＋２，Ｎ）
ＢＷａｖｅ（Ｍ＋２，Ｎ）−ＢＷａｖｅ（Ｍ＋２，Ｎ＋１）
ＢＷａｖｅ（Ｍ＋２，Ｎ＋１）−ＢＷａｖｅ（Ｍ＋２，Ｎ＋２）
以上のＡ列、Ｂ列の各演算結果の解析を行い、参照しているエリアがグラデーションであるか否かの判定を行う。その判定方法は以下のようになる。
【０１０６】
Ａ列の全ての演算結果が正の値であったとき、Ｂ列の演算結果が全て正の値、Ｂ列の演算結果が全て負の値、もしくは「０」であった場合には、参照しているエリアはグラデーションであると判定し、注目タイルは「非補正対象」とする。
【０１０７】
Ａ列の全ての演算結果が負の値であったとき、Ｂ列の演算結果が全て正の値、Ｂ列の演算結果が全て負の値、もしくは「０」であった場合には、参照しているエリアはグラデーションであると判定し、注目タイルは「非補正対象」とする。
【０１０８】
Ａ列の全ての演算結果が「０」であったとき、Ｂ列の演算結果が全て正の値、Ｂ列の演算結果が全て負の値であった場合には、参照しているエリアはグラデーションであると判定し、注目タイルは「非補正対象」とする。
【０１０９】
Ａ列の全ての演算結果が「０」で、Ｂ列の全ての演算結果が「０」あった場合には、参照しているエリアは全て同じ値であり、補正の必要は無いため、注目タイルは「非補正対象」とする。
【０１１０】
［圧縮処理］
図３５は、本実施形態のフローチャートを示した図である。圧縮処理に関しては、図９と同様であるため、同一の参照番号を付与した処理に関して詳細な説明は割愛する。本実施形態における補正前処理に関する処理は、Ｓ４２０１からＳ４２１１となる。
【０１１１】
本実施形態において、従来のヒストグラムの解析結果以外に、グラデーションの認識を平行して行う。まずＳ９０２にてタイルの切り出しが行われた後、タイル内の画像データからタイル毎にタイル代表値（ＢＷａｖｅ）の算出する（Ｓ４２０１）。続いて、ＡｘＢのエリアの切り出しを行う（Ｓ４２０２）。そして、ヒストグラムの処理と平行して、切り出したＡｘＢのエリアのＡ方向に対して、図３４（Ａ）で説明を行ったような列へと、さらに領域の分割を行う（Ｓ４２０５）。その後、各列のタイル代表値（ＢＷａｖｅ）に対して、隣り合ったタイル代表値（ＢＷａｖｅ）ごとの差の算出を行う（Ｓ４２０６）。同様に、ＡｘＢのエリアのＢ方向に対して、図３４（Ｂ）で説明を行ったような列へと、さらに領域の分割を行う（Ｓ４２０７）。その後、各列のタイル代表値（ＢＷａｖｅ）に対して、隣り合ったタイル代表値（ＢＷａｖｅ）ごとの差の算出を行う（Ｓ４２０８）。
【０１１２】
Ｓ４２０６におけるＡ方向の列ごとの演算結果及び、Ｓ４２０８におけるＢ方向の列ごとの演算結果から、上述した判定基準に基づいて、エリアがグラデーションか否かの認識を行うこととなる（Ｓ４２０９）。補正対象タイル認識（Ｓ４２１０）では、前記ヒストグラム解析（Ｓ４２０４）の結果と、グラデーション認識（Ｓ４２０９）の結果に基づき、ヒストグラム解析（Ｓ４２０４）において補正対象と判定されたタイルに対し補正対象か否かの判定を行う。ここでは補正対象と判定された場合でも、グラデーション認識（Ｓ４２０９）によってグラデーション部分と認識されたタイルに関しては、非補正対象と判定する。
【０１１３】
上記の処理の結果、タイルの代表値と補正対象フラグがヘッダ部分に付加される（Ｓ９０９）。そして、パケットデータが出力される（Ｓ９１０）。また、すべてのタイルの処理が完了した時点（Ｓ９１２にてＹＥＳ）で、第二の実施形態と同様に、補正値の算出が行われる（Ｓ４２１１）。そして、補正に値に関してはＴｏｐヘッダに付加され（Ｓ９１３）、出力される（Ｓ９１４）。
【０１１４】
圧縮後の画像データをメモリや磁気ディスク等に保存する場合には、上記の処理の最後に付加されたＴｏｐヘッダの格納スペースを各パケットの前に予め空けておく。そして、各パケットデータの格納を行い、最後に出力されてくるＴｏｐヘッダを前記空きスペースに格納する。以上が、圧縮時に本実施形態の補正前処理を行う場合のフローとなる。
【０１１５】
展開処理に関しては、第二の実施形態と同じ処理であるため本実施形態では詳細な説明は割愛することとする。
【０１１６】
以上のように、参照しているエリアがグラデーションであるか否かの判定を行い、グラデーションと判定した場合には、当該グラデーションの領域に含まれるタイルには補正処理を行わない。つまり、図２４のフローチャートにおける補正対象タイル認識（Ｓ２４０３及び、図２５のブロック図における補正前処理部２５００の従来の処理において、補正対象であると判定された場合でも、注目タイルは、非補正対象のタイルであると判定する。
【０１１７】
以上により、第一の実施形態、第二の実施形態の効果に加え、グラデーション画像に対し不必要な補正を行ってしまい、画像を乱すという問題を防ぐことが可能となる。
【０１１８】
＜第四の実施形態＞
第一の実施形態及び、第二の実施形態では、画像データに対する補正を全て自動で行っていた。しかし、本実施形態では、圧縮データの展開時に、補正前処理によって認識された補正値の変更することにより、画像データに対する補正量を変え、均一画像部分の濃度や色味を変える処理の説明を行う。
【０１１９】
［処理フロー］
本実施形態のフローチャートを、図３６に示す。本実施形態は、グレースケール画像に関しての説明とする。また、図３６のフローチャートに関しては、第一の実施形態にて示した図２６に対して、補正値の変更の処理を加えた流れとなる。よって、第一の実施形態から変更の無い部分に関しては、同一の参照番号とし詳細な説明は割愛する。
【０１２０】
本実施形態の特徴は、補正量算出（Ｓ２６０９）の処理を行う前に、補正値修正（Ｓ４２０１）の処理を行う点である。補正値修正の処理では、Ｔｏｐヘッダ情報入力（Ｓ２６０２）によって認識された補正値（ＢＷＨ）の値に対して、ユーザーが指定した値を加算もしくは、減算することにより、補正値の変更を行う処理となる。
【０１２１】
具体的には、図１におけるＭＦＰのユーザーインターフェイスのディスプレイに、Ｔｏｐヘッダ情報入力（Ｓ２６０２）によって認識された補正値（ＢＷＨ）の値を表示し、それに対して、加算もしくは減算すべき値を、テンキー等の入力部から入力する。画像データが、グレースケールの場合、補正値（ＢＷＨ）の値を大きくすることによって、補正対象部分の濃度は薄く、小さくすることによって補正対象部分の濃度は濃くなる。
【０１２２】
また、ユーザーインターフェイス１０８の表示部に、画像データの表示が可能な場合、一度、補正値の変更を行う前の展開画像データの表示を行う。更に、併せて補正値の変更の設定を行った補正値変更後の展開データの表示を行うことで、変更の効果が確認出来るような構成をとることも可能である。
【０１２３】
［ハードウェア構成（補正値入力用展開処理向け）］
図３７は、本実施形態のハードウェアの構成を示したブロック図である。展開及び補正処理に関しては、図２７と同じであるため同一の参照番号を付した構成についての詳細な説明は割愛する。
【０１２４】
図３７は、第一の実施形態の展開・補正処理のハードウェア構成（図２７）に、図１で示したユーザーインターフェイス１０８が接続されている構成となっている。図１におけるＭＦＰのユーザーインターフェイス１０８に、ヘッダ情報解析部２７０２から、認識された補正値（ＢＷＨ）が入力されることとなる。これにより、ユーザーからの補正値の入力を受け付ける受付手段を実現する。ユーザーインターフェイス１０８の表示部４４０１では、ディスプレイ等を使用し、補正値（ＢＷＨ）の値を表示する。
【０１２５】
それに対してユーザーは、表示された補正値（ＢＷＨ）に、加算もしくは減算すべき値を、テンキー等の入力部４４０２から入力する。ユーザーインターフェイス１０８の表示部４４０１に、画像データの表示が可能な場合、一度、補正値の変更を行う前の展開画像データを出力Ｉ／Ｆ２７１０から出力を行い、展開データ表示を行う。そしてユーザーが、補正値の変更の設定を行った時点で、補正値変更後の展開データの表示に切り替える事により、補正値の変更の効果が確認出来るような構成としてもよい。
【０１２６】
以上のように、圧縮データの展開時に、補正前処理によって認識された補正値の変更することにより、補正量を変え、均一画像部分の濃度や色味の変更を容易に行うことが可能となる。
【０１２７】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2012010089.tif 000003
【図２】
2012010089.tif 000004
【図３】
2012010089.tif 000005
【図４】
2012010089.tif 000006
【図５】
2012010089.tif 000007
【図６】
2012010089.tif 000008
【図７】
2012010089.tif 000009
【図８】
2012010089.tif 000010
【図９】
2012010089.tif 000011
【図１０】
2012010089.tif 000012
【図１１】
2012010089.tif 000013
【図１２】
2012010089.tif 000014
【図１３】
2012010089.tif 000015
【図１４】
2012010089.tif 000016
【図１５】
2012010089.tif 000017
【図１６】
2012010089.tif 000018
【図１７】
2012010089.tif 000019
【図１８】
2012010089.tif 000020
【図１９】
2012010089.tif 000021
【図２０】
2012010089.tif 000022
【図２１】
2012010089.tif 000023
【図２２】
2012010089.tif 000024
【図２３】
2012010089.tif 000025
【図２４】
2012010089.tif 000026
【図２５】
2012010089.tif 000027
【図２６】
2012010089.tif 000028
【図２７】
2012010089.tif 000029
【図２８】
2012010089.tif 000030
【図２９】
2012010089.tif 000031
【図３０】
2012010089.tif 000032
【図３１】
2012010089.tif 000033
【図３２】
2012010089.tif 000034
【図３４】
2012010089.tif 000035
【図３５】
2012010089.tif 000036
【図３６】
2012010089.tif 000037
【図３７】
2012010089.tif 000038
【図３３】
2012010089.tif 000039