(57)【要約】【課題】主走査方向のブロック境界で、ラスタ形式と比べて画素データが非連続となってしまい、画素データの補正において影響を与え、画質が著しく劣化してしまうことを抑制する。【解決手段】本発明に係る画像処理装置は、ラスタ形式の１ページの画像データに対してラスタ形式で画素解析を実行し、その画像解析により解析された結果を、注目画素を含むブロックの座標とともに保持する。またラスタ形式の画像データをブロック形式で読み出し、当該ブロックの画素データに対してブロック形式で画素解析を実行する。そして、ブロック形式での画素解析により解析されたブロックに対応する、保持された前記結果と、前記ブロック形式での画素解析により解析された結果とに基づいて、前記ブロックに含まれる注目画素を補正する。【選択図】  図４
2020145661.tif 000002
【特許請求の範囲】
【請求項１】
ラスタ形式の１ページの画像データに対してラスタ形式で画素解析を実行する第１画素解析手段と、
前記第１画素解析手段により解析された結果を、注目画素を含むブロックの座標とともに保持する保持手段と、
前記ラスタ形式の画像データをブロック形式で読み出し、当該ブロックの画素データに対してブロック形式で画素解析を実行する第２画素解析手段と、
前記第２画素解析手段により解析されたブロックに対応する前記保持手段に保持された前記結果と、前記第２画素解析手段により解析された結果とに基づいて、前記ブロックに含まれる注目画素を補正する補正手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記第１画素解析手段は、
前記ラスタ形式の１ページの画像データから所定サイズのブロックの画素データを抽出する抽出手段と、
前記抽出手段により抽出された各ブロックの画素データの平均値の最大値を取得する第１取得手段と、
前記各ブロックの画素データの標準偏差を取得する第２取得手段と、を有し、
前記第１画素解析手段により解析された結果は、前記標準偏差を分類した分類値と、当該分類値に対応する平均値の最大値とを含むことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２画素解析手段は、
前記ブロック形式で読み出された画素データの各ブロックの平均値を取得する第３取得手段と、
前記ブロック形式で読み出された画素データの各ブロックの標準偏差を取得する第４取得手段と、を有し、
前記第２画素解析手段により解析された結果は、前記平均値、前記標準偏差、及び前記１ページにおける前記ブロックの位置を示す座標情報を含むことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記補正手段は、前記座標情報に基づいて、前記保持手段に保持された前記ブロックに対応する前記平均値の最大値と、前記保持手段に保持された前記１ページの画像データの副走査方向で前記ブロックの前後に位置しているブロックの前記平均値の最大値とに基づいて、前記ブロックに対応する前記平均値の最大値を変換し、
前記注目画素に応じて、前記変換した前記ブロックに対応する平均値の最大値、或いは前記保持手段に保持された前記ブロックに対応する前記結果に基づいて、前記ブロックに含まれる注目画素を補正することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記ブロックに対応する前記平均値の最大値の変換は、前記保持手段に保持された前記ブロックに対応する前記平均値の最大値と、前記１ページの画像データの副走査方向で前記ブロックの前後に位置しているブロックの前記平均値の最大値とを補間した値であることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記第２画素解析手段により解析された結果はさらに、前記注目画素が白画素か否かを示す情報を含み、
前記補正手段は、前記注目画素が白画素の場合は、前記変換した前記ブロックに対応する平均値の最大値に基づいて前記注目画素を補正し、前記注目画素が白画素でない場合は、前記保持手段に保持された前記ブロックに対応する前記結果に基づいて前記注目画素を補正することを特徴とする請求項４又は５に記載の画像処理装置。
【請求項７】
前記ラスタ形式の１ページの画像データは、１枚の原稿をスキャナにより読み取って得られたラスタ形式の画像データであることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項８】
画像処理装置を制御する制御方法であって、
ラスタ形式の１ページの画像データに対してラスタ形式で画素解析を実行する第１画素解析工程と、
前記第１画素解析工程で解析された結果を、注目画素を含むブロックの座標とともに保持する保持工程と、
前記ラスタ形式の画像データをブロック形式で読み出し、当該ブロックの画素データに対してブロック形式で画素解析を実行する第２画素解析工程と、
前記第２画素解析工程で解析されたブロックに対応する前記保持工程で保持された前記結果と、前記第２画素解析工程で解析された結果とに基づいて、前記ブロックに含まれる注目画素を補正する補正工程と、
を有することを特徴とする制御方法。
【請求項９】
コンピュータを、請求項１乃至７のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置とその制御方法、及びプログラムに関する。
【背景技術】
【０００２】
マルチファンクションペリフェラル（以後、ＭＦＰと呼ぶ）では、スキャナで原稿を読み取って得られた画像データに対して、各種スキャン用の画像処理を実施している。この画像処理は、スキャナのセンサに依存する画素の並びの補正や、センサの読み取りスペックを補うＭＴＦ補正等の各種画素補正処理、原稿の下地を飛ばす下地除去処理、原稿の裏写りを抑制する画素補正処理等を含む。特許文献１では、原稿の裏写りを抑制する画素補正処理として、スキャナで読み取った画像データを解析した上で、補正量を算出して画素補正処理を行っている。
【０００３】
スキャナのセンサは、１ライン単位に主走査方向に読み出しを実施し、その読み出しを副走査方向に繰り返す。このようなデータの並びをラスタ又はラスタ形式と定義する。このため、通常、スキャン用の画像処理部は、スキャナのセンサの配置に合わせてラスタ形式で構成される。一方で、この画像処理において、画像データを複数のブロックに分割し、そのブロック毎に処理する構成が知られている。このように、画像データを複数のブロックに分割し、ブロック内の主走査、副走査の画素順で画像処理を実行することをブロック形式と定義する。このようにブロック形式で画像データを処理することにより、ラスタ形式と比べてラインバッファ等のメモリ容量を大幅に削減でき、回路規模のサイズの増大を抑えることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１７１０９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、原稿の裏写りを抑制する画素補正処理のように、画素データを解析した上で、補正量を算出して画素補正を実施するような処理を、ブロック形式での処理で構成すると、画素データの解析順序が保たれないといった課題がある。これに対してラスタ形式の場合は、画素データはラスタ形式で入力されるため、画素データの解析もラスタ形式で行われ、ラスタ方向に連続性を維持した形で解析を行うことができる。
【０００６】
これに対してブロック形式で画素データを処理する場合は、画素データをブロック形式で入力し、その解析も同様にブロック形式で行われてしまう。特に主走査方向のブロック境界では、ラスタ形式と比べて画素データが非連続となってしまうため、画素データの補正において影響を与え、画質が著しく劣化してしまうおそれがある。
【０００７】
本発明の目的は、上記従来技術の問題点の少なくとも一つを解決することにある。
【０００８】
本発明の目的は、画素解析処理をラスタ形式で実施し、画素補正処理をブロック形式で行うことにより、ブロック形式での画素データの補正による画質の低下を防止できる技術を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
ラスタ形式の１ページの画像データに対してラスタ形式で画素解析を実行する第１画素解析手段と、
前記第１画素解析手段により解析された結果を、注目画素を含むブロックの座標とともに保持する保持手段と、
前記ラスタ形式の画像データをブロック形式で読み出し、当該ブロックの画素データに対してブロック形式で画素解析を実行する第２画素解析手段と、
前記第２画素解析手段により解析されたブロックに対応する前記保持手段に保持された前記結果と、前記第２画素解析手段により解析された結果とに基づいて、前記ブロックに含まれる注目画素を補正する補正手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、画素解析処理をラスタ形式で実施し、画素補正処理をブロック形式で行うことにより、ブロック形式での画素データの補正による画質の低下を防止できるという効果がある。
【００１１】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１２】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】実施形態に係るＭＦＰの構成を説明するブロック図。
【図２】実施形態に係るスキャン画像処理部の機能を説明する機能ブロック図。
【図３】実施形態に係る画素解析部の機能を説明する機能ブロック図。
【図４】実施形態に係る画素補正処理部の機能を説明する機能ブロック図。
【図５】実施形態に係るＭＦＰにおけるスキャナ部による原稿の読み取りと、原稿を読み取って得られた画像データの保存処理を説明するフローチャート。
【図６】実施形態に係るＭＦＰによるスキャン実行時の内部動作の概要を説明する模式図。
【図７】実施形態に係る画素解析部の動作を説明するフローチャート。
【図８】実施形態に係る画素解析部に画像データが入力された際の動作タイミングを説明するタイミングチャート。
【図９】実施形態に係る最大平均値記憶部にデータが入力された際に実施される処理を説明するフローチャート。
【図１０】実施形態に係る係数記憶部にデータが入力された際に実施される処理を説明するフローチャート。
【図１１】実施形態に係る最大平均値記憶部及び係数記憶部にデータが入力された際の処理を説明するタイミングチャート。
【図１２】実施形態に係る画素補正処理部に画素データが入力された際に実施される処理を説明するフローチャート。
【図１３】実施形態に係る画素補正処理部に画素データが入力されたときの内部の動作を示すタイミングチャート。
【図１４】原稿の所定面積分のラインの読み込みに関する説明を捕捉する図。
【図１５】実施形態に係る画素の補間処理を説明する図。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これら複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一もしくは同様の構成に同一の参照番号を付し、重複した説明は省略する。尚、以下の実施形態では、本発明に係る画像処理装置を、複合機（ＭＦＰ）を例に説明する。尚、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、本発明を適用できることは言うまでもない。
【００１４】
図１は、実施形態に係るＭＦＰ１０１の構成を説明するブロック図である。
【００１５】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０２は、ＭＦＰ１０１全体の制御を司る。ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３は、ＣＰＵ１０２で実行されるプログラムを格納すると共に、一時的なデータのワークエリアとして機能する。操作部１０４は、シリアルＩ／Ｆ（インタフェース）１０５を介してＣＰＵ１０２からの指示を受け取るとともに、操作部１０４を介したユーザの操作をＣＰＵ１０２に伝える。シリアルＩ／Ｆ１０５は、操作部１０４とシステムバス１１４とを相互に接続する。フラッシュメモリ１０６は、ＣＰＵ１０２のプログラムを格納すると共に、ＭＦＰ１０１のデフォルト設定値、ユーザごとのデフォルト設定値、一時的なカスタム設定値等を記憶する。ＨＤＤ（ハードデスクドライブ）１０７は、ＣＰＵ１０２で実行されるプログラムを格納すると共に、プリントジョブやスキャンジョブ等のスプール領域としても利用される。ネットワークＩ／Ｆ１０８は、ＬＡＮ１０９と接続して外部機器と通信を行う。ＣＰＵ１０２は、フラッシュメモリ１０６或いはＨＤＤ１０７に記憶されているプログラムをＤＲＡＭ１０３に展開し、その展開したプログラムを実行することにより、ＭＦＰ１０１全体の制御を司る。
【００１６】
スキャナ部１１０は、紙面上の画像を光学的に読み取り、電気信号に変換してスキャン画像データを生成する。スキャン画像処理部１１１は、スキャナ部１１０で読み取った原稿の画像データに対して画像処理を実施する。その詳細は後述する。プリンタ部１１２は、画像データに基づいて紙面上に画像を印刷する。プリンタ画像処理部１１３は、プリンタ部２０５で印刷するのに適するように画像データを変換する。システムバス１１４は、上述した各モジュール（デバイス）を相互に通信可能に接続する。
【００１７】
図２は、実施形態に係るスキャン画像処理部１１１の機能を説明する機能ブロック図である。
【００１８】
スキャン画像処理部１１１は、大別して、ラスタ処理部２０１とブロック処理部２０２とを含む。ラスタ処理部２０１は、文字通り、スキャナ部１１０からラスタ順で入力される画像データをラスタ順のまま処理する画像処理部である。２次元ＤＭＡコントローラ２０７は、画像データをラスタ順のままＤＲＡＭ１０３に書き込む。ＡＦＥフォーマット変換部２０３は、スキャナ部１１０から出力されるＡＦＥ（Analog Front End）信号を受信し、ラスタ処理部２０１の内部バスで転送するためのフォーマット変換処理を実施する。主走査画素整列部２０４は、スキャナ部１１０のセンサの構成に応じて、主走査方向の画素の並び変え処理を実施する。この段階で画像データの主走査方向の並びが原稿の画素順となる。副走査画素整列部２０５は、スキャナ部１１０のセンサの構成に応じて、コンポーネント毎の副走査方向のライン位置の補正を行う。この段階で画像データが点順次のデータ形式となる。画素解析部２０６は、後述するブロック処理部２０２の画素補正処理部２１２とセットで動作する処理部であり、入力された画素データを所定の方式により解析し、その解析した結果を、画素補正処理部２１２で活用する。
【００１９】
実施形態では、裏写り除去のアルゴリズムの解析処理を画素解析部２０６により実行し、裏写り除去のアルゴリズムの画素補正処理を画素補正処理部２１２で実施するとしている。但し、アルゴリズムはこれに限るものでない。また、入力された画素データはそのまま後段へ出力される。その詳細は後述する。２次元ＤＭＡコントローラ２０７は、入力された画像データをＤＲＡＭ１０３に書き込む。２次元ＤＭＡコントローラ２０７は、画像データの主走査方向と副走査方向の概念を持つため、２次元としている。主走査方向には連続した空間にデータを書き込み、副走査方向には、ライン間で所定のオフセットを設けて画像データの書き込みを行う。
【００２０】
一方、ブロック処理部２０２は、ＤＲＡＭ１０３記憶された画像データをブロック分割して読み出して、ブロック順に処理する。４次元ＤＭＡコントローラ２０８は、ＤＲＡＭ１０３に保存された画像データをブロック形式で読み出す。４次元ＤＭＡコントローラ２０８は、ＤＲＡＭ１０３にラスタ形式の画像データが書き込まれていることを前提とし、画像データをブロックに分割して読み出す。ここで、そのブロックの並びに対して主走査方向と副走査方向の概念を持ち、ブロック内部の画素に並びに対しても主走査方向と副走査方向の概念を持つため４次元としている。４次元ＤＭＡコントローラ２０８は、ブロック順にブロック内の画素データをリードする。色ずれ補正部２０９は、主走査方向に構成されたウインドウによる主走査方向の色ずれ処理と、副走査方向に構成されたウインドウによる副走査方向の色ずれ処理を行う。ＭＴＦ補正部２１０は、フィルタ処理により、スキャナ部１１０で得られた画像データに対してＭＴＦ補正を行う。ノイズ除去部２１１は、スキャナ部１１０で得られた画像データに対してバイラテラルフィルタ処理又はコアリング処理を実施し、読み取り時のノイズ成分を除去する。画素補正処理部２１２は、入力した画素データに対して、画素解析部２０６の解析結果に応じて決定される補正量を用いた画素補正処理を行う。その詳細は後述する。
【００２１】
色変換部２１３は、所定格子点数の色空間変換を施す３次元テーブル変換を行う。これにより、スキャナ部１１０に依存する色空間を、統一的な色空間に補正する。彩度強調処理部２１４は、ウインドウを構成したフィルタ処理であり、注目画素の有彩色判定の結果に応じて、フィルタ処理の係数を切り替え、彩度の強調を実施する。マスク処理部２１５は、画像データに対して白マスク処理又は黒マスク処理を実施する。そして４次元ＤＭＡコントローラ２０８は、ブロック形式の画像データをラスタ形式の画像データに変換してＤＲＡＭ１０３に書き込む。
【００２２】
図３は、実施形態に係る画素解析部２０６の機能を説明する機能ブロック図である。
【００２３】
画素解析部２０６は、１個の入力（INPUT）と３個の出力（OUTPUT1〜OUTPUT3）を有する。これら各入出力において、入力（INPUT1）は副走査画素整列部２０５の出力と接続される。また出力（OUTPU1）は、２次元ＤＭＡコントローラ２０７と接続され、出力（OUTPUT2）は画素補正処理部２１２の入力（INPUT2：図４）と接続される。OUTPUT3は、画素補正処理部２１２の入力（INPUT3：図４）と接続される。尚、画素解析部２０６の出力（OUTPUT1）は、入力（INPUT）から入力した画素データをそのまま出力する。
【００２４】
ウインドウ生成部３０１は、入力（INPUT）から入力された画素データを受け取ってバッファに蓄積した上で、ウインドウ分の画素データを抽出してウインドウを生成する。実施形態では、ウインドウのサイズは所定サイズとし、ここでは３×３として説明する。３×３のウインドウを生成すると、そのウインドウデータを後段のブロックへ出力する。尚、画像データの主走査方向或いは副走査方向の端部のウインドウでは、内部で所定値を補足してウインドウを構成する。
【００２５】
座標判定部３０２は、ウインドウ生成部３０１から受け取ったウインドウのデータ数から画像データの主走査方向の座標と副走査方向の座標を算出する。これは主走査方向の座標をカウントするカウンタと、副走査方向の座標をカウントするカウンタを用いて行われる。尚、画像データの主走査幅と副走査幅は、ＣＰＵ１０２が、図示しないレジスタ部に予め設定しているものとする。
【００２６】
平均値生成部３０３は、３×３ウインドウの画素データの平均値を算出する。これは単純に９画素の平均値を算出すればよい。こうして得られた平均値は、標準偏差生成部３０４、平均値最大判定部３０６、係数更新判定部３０７へ出力される。
【００２７】
標準偏差生成部３０４は、３×３ウインドウの画素データとその平均値とに基づいて、そのウインドウの標準偏差を算出する。ここでの標準偏差の算出について説明する。まず、ウインドウのそれぞれの画素データから平均値を減算し、その減算後の画素値の絶対値を算出する。こうして算出した絶対値を、ウインドウ毎に全て足し合わせる。実施形態では、９個の絶対値を足し合わせる。標準偏差は、足し合わせた絶対値の合計を所定値で除算して算出される値である。
【００２８】
ドットフラグ生成部３０５は、３×３ウインドウの画素データから、網点画素であるか孤立点画素であるかを判定し、その結果を示すドットフラグを生成する。網点画素及び孤立点画素の判定は公知の手法で構わないので、その説明を省略する。ここでドットフラグが「１」であれば、孤立点画素であることを示す。
【００２９】
平均値最大判定部３０６は、新たに算出した平均値がこれまでの平均値よりも大きい場合は、その新たに算出した平均値を最大値として判定し、その値を保持する。但し、スキャナ部１１０で読み取った原稿が変わる場合には、この最大値はクリアされる。つまり、平均値最大判定部３０６は、一つの原稿の全てのウインドウの平均値の最大値を判定する処理である。平均値最大判定部３０６は、保持している平均値の最大値が新しい値に更新された場合には、その平均値とその画素データが含まれるライン座標をセットとしたデータを出力する。尚、ライン座標が切り替わった場合も平均値最大判定部３０６は、現在保持されている平均値の最大値と、ライン座標とをセットにしたデータを出力する。
【００３０】
係数更新判定部３０７は、標準偏差生成部３０４が算出した標準偏差に基づいて、標準偏差毎の平均値の最大値を判定する。実施形態では、算出した標準偏差を３つの範囲に分類し、それらの分類毎の平均値の最大値を判定する。保持している平均値の最大値が新しい値に更新された場合は、その平均値と、標準偏差の分類値とをセットにしたデータを出力する。
【００３１】
図４は、実施形態に係る画素補正処理部２１２の機能を説明する機能ブロック図である。
【００３２】
画素補正処理部２１２は、３個の入力（INPUT1，INPUT2，INPUT3）と１個の出力（OUTPUT）を有する。各入出力において、入力（INPUT1）はノイズ除去部２１１と接続され、入力（INPUT2）は、ラスタ処理部２０１の画素解析部２０６の出力（OUTPUT2）と接続される。また入力（INPUT3）は、同じ画素解析部２０６の出力（OUTPUT3）と接続される。
【００３３】
ウインドウ生成部４０１は、入力（INPUT1）から画素データを受け取り、その画素データをバッファに蓄積した上でウインドウを生成する。実施形態では、ウインドウのサイズを３×３として説明する。ウインドウ生成部４０１は３×３のウインドウが生成できたら、そのウインドウデータを後段ブロックへ出力する。尚、上述したように、画像データの端部は内部で所定値を補足してウインドウを構成する。
【００３４】
最大平均値記憶部４０２は、画素解析部２０６の出力（OUTPUT2）を入力（INPUT2）を介して受け取る。入力（INPUT2）は、平均値とライン座標とのセットのデータを受け取る。その詳細は後述する。係数記憶部４０３は、画素解析部２０６の出力（OUTPUT3）を入力（INPUT3）を介して受け取る。入力（INPUT3）は、係数値と標準偏差の分類値とのセットのデータを受け取る。その詳細は後述する。
【００３５】
平均値生成部４０４は、３×３ウインドウの画素データの平均値を算出する。ここでは単純に９画素の平均値を算出すればよい。算出した平均値は、補正量決定部４０９へ出力される。標準偏差生成部４０５は、３×３ウインドウの画素データの標準偏差を算出する。標準偏差の算出方法は上述した通りである。白フラグ生成部４０６は、３×３ウインドウの画素データから注目画素が白画素であるかを否か判定し、その判定結果であるフラグを生成する。その判定方法は公知であるため、その説明を省略する。実施形態では、白画素であると判定した場合に白フラグを「１」とする。
【００３６】
ブロック座標判定部４０７は、ウインドウのデータ数から、画像データのブロック内部の主走査方向の座標と副走査方向の座標の算出し、更に画像データ全体に対するブロック座標を算出する。これはブロック内部の主走査方向の座標をカウントするカウンタと、ブロック内部の副走査方向の座標をカウントするカウンタ、ブロック数をカウントするカウンタを使用して行われれる。画像データの各ブロックの主走査方向の幅と副走査方向の幅、ブロック数は、ＣＰＵ１０２が、図示しないレジスタ部に予め設定しているものとする。
【００３７】
係数補間部４０８は、ブロック座標判定部４０７から出力される、該当ウインドウのライン位置に応じて、最大平均値記憶部４０２に保持している最大平均値を選択し、その選択した複数の最大平均値で補間処理を実施する。これによって、ライン間で適用する値が線形化されるようになる。その詳細は後述する。補正量決定部４０９は、補正部４１０での補正処理で使用する補正量を算出する。その詳細は後述する。補正部４１０は、ウインドウ生成部４０１から受信したウインドウデータの注目画素に対する補正処理を実施する。この補正処理は、注目画素に対して補正量決定部４０９で算出した補正量を加算する処理である。
【００３８】
次に、実施形態に係るＭＦＰ１０１におけるスキャン実行時の全体制御について図５、図６、及び図１４を参照して説明する。
【００３９】
図５は、実施形態に係るＭＦＰ１０１におけるスキャナ部１１０による原稿の読み取りと、原稿を読み取って得られた画像データの保存処理を説明するフローチャートである。尚、このフローチャートで示す処理はＣＰＵ１０２が、前述したようにＤＲＡＭ１０３に展開したプログラムを実行することにより達成される。
【００４０】
また図６は、実施形態に係るＭＦＰ１０１によるスキャン実行時の内部動作の概要を説明する模式図である。尚、図６（Ａ）は、原稿の先端部における処理を示し、ず６（Ｂ）は、、原稿の後端部における処理を示している。尚、図５のフローチャートは、ユーザによって既に原稿がスキャナ部１１０のＡＤＦ（自動原稿給紙装置（不図示））等に置かれ、ユーザが操作部１０４を介してスキャン開始指示が行ったときの処理に関するものである。
【００４１】
まずＳ５０１でＣＰＵ１０２は、スキャン画像処理部１１１の初期設定を行う。これによりスキャン画像処理部１１１で実施したい処理の設定が行われる。これはＭＦＰ１０１の操作部１０４で指定されたジョブの内容に従って決定されるものである。基本的にスキャン画像処理部１１１の全てのモジュールは図示しないレジスタ部を備え、ＣＰＵ１０２からアクセス可能な構成をとる。ＣＰＵ１０２は、それらのレジスタに対して、必要な設定をライトする。これは図６（Ａ）の参照番号６０１で示される。これは、スキャン画像処理部１１１のラスタ処理部２０１とブロック処理部２０２への初期設定を示す。
【００４２】
次にＳ５０２に進みＣＰＵ１０２は、スキャナ部１１０に対して原稿の読み取り開始を指示する。これによって、ＡＤＦ等の紙送り制御や、ＣＩＳ（Contact Image Sensor）センサによる原稿の走査が行わる。これは図６（Ａ）の参照番号６０２で示される。このタイミングでスキャナ部１１０の読み取りが開始され、スキャナ部１１０は、原稿の先頭ラインから順にスキャンを実施する。次にＳ５０３に進みＣＰＵ１０２は、原稿の所定面積分のラインの読み込みが完了したかを否か判定する。ここで所定面積分のラインの読み込みが完了した場合はＳ５０４に進むが、そうでないときはＳ５０３を引き続き実行する。
【００４３】
こうして所定面積分のラインの読み込みが完了した時点は、図６（Ａ）の参照番号６０３で示される。Ｓ５０３における読み込みライン数は、画素解析部２０６の座標判定部３０２の副走査方向の座標値をＣＰＵ１０２が読み取ることによって取得できる。こうして取得したライン数を用いて、原稿の所定面積分のラインの読み込みが完了しているか否かを判定することができる。
【００４４】
図１４は、１枚の原稿の所定面積分のラインの読み込みに関する説明を捕捉する図である。
【００４５】
スキャンした１枚の原稿に対して、補正処理前に事前の解析を実施したいエリアを参照番号１４００で示す。このエリア１４００の面積に応じて、副走査方向のライン数を決定する。実施形態では、事前に解析したい原稿の面積を６００ｄｐｉで約２センチとし、それをライン数に換算して４７２ラインとしている。但し、このライン数に限るものではない。また、より詳細には、スキャナ部１１０の読み取り解像度が３００ｄｐｉの場合は、解析対象面積に対応するライン数は、６００ｄｐｉと比べて約半分となる。従って、原稿のスキャン時の読み込みライン数は、原稿の解析対象面積とスキャナ部１１０の読み取り解像度に依存する。
【００４６】
次にＳ５０４に進みＣＰＵ１０２は、ブロック処理部２０２の４次元ＤＭＡコントローラ２０８を起動させる。これによって、２次元ＤＭＡコントローラ２０７によってＤＲＡＭ１０３に書き込まれた画像データの読み出しが行われ、こうして読み出された画像データがブロック処理部２０２へ入力される。これは図６（Ａ）の参照番号６０４で示される。そしてＳ５０５でＣＰＵ１０２は、スキャン画像処理部１１１から原稿の読み取り終了の割り込みが発生したかどうか判定する。この終了割り込みは、４次元ＤＭＡコントローラ２０８が、ブロック処理部２０２での画像処理が完了した画像データを、ＤＲＡＭ１０３に書き鋳込む処理が完了したことによりアサートされる。この終了割り込みのタイミングは、図６（Ｂ）の参照番号６０５で示される。
【００４７】
図７は、実施形態に係る画素解析部２０６の動作を説明するフローチャートである。図８は、実施形態に係る画素解析部２０６に画像データが入力された際の動作タイミングを説明するタイミングチャートである。
【００４８】
まずＳ７０１で画素解析部２０６は、前段の副走査画素整列部２０５から入力した画素データの値を取得する。これは図８の参照番号８０１で示される。次にＳ７０２に進み画素解析部２０６は、その取得した画素データを後段処理部（ここでは２次元ＤＭＡコントローラ２０７）へ出力する。これは画素解析部２０６から、入力した画素データを補正等の処理を実施せずにそのまま出力するもので、図３の出力（OUTPUT1）に相当し、図８の参照番号８０２で示される。
【００４９】
次にＳ７０３に進みウインドウ生成部３０１は、取得した画素データを蓄積し、ウインドウの生成処理を行う。このウインドウ生成部３０１は、内部に非図示のバッファを備えており、それらバッファにより画素データを蓄積する。この画素データの蓄積によって、例えば、３×３のウインドウデータを生成して出力する。こうして得られたウインドウデータは、座標判定部３０２、平均値生成部３０３、標準偏差生成部３０４、ドットフラグ生成部３０５へ出力される。これは図８の参照番号８０３で示される。
【００５０】
次にＳ７０４に進み座標判定部３０２は、主走査方向座標及び副走査方向の座標を算出する。これは前述した２つのカウンタを使用してなされる処理である。これは図８の参照番号８０７で示される。次にＳ７０５に進み平均値生成部３０３は、上述したようにウインドウデータから平均値を求める。これは図８の参照番号８０４で示される。次にＳ７０６に進み標準偏差生成部３０４は、上述したようにウインドウデータから標準偏差を生成する。これは図８の参照番号８０５で示される。そしてＳ７０７に進みドットフラグ生成部３０５は、上述したようにウインドウデータからドットフラグを生成する。これは図８の参照番号８０６で示される。
【００５１】
次にＳ７０８に進み平均値最大判定部３０６は、Ｓ７０５で生成した平均値が平均値最大判定部３０６の内部で保持している暫定最大値と比べて大きいかを否か判定する。つまり、この処理は原稿内の平均値の最大値を判定する処理である。原稿の最初の画素を処理する場合には、内部で保持している暫定最大値は「０」とする。Ｓ７０５で生成した平均値が、暫定最大値よりも大きいと判定するとＳ７０９に進み、そうでないときはＳ７１１に遷移する。図８のタイミングチャートでは、内部で保持している暫定最大値は、参照番号８０８で示される。
【００５２】
Ｓ７０９で平均値最大判定部３０６は、保持している暫定最大値を、Ｓ７０５で算出した平均値に更新する。これによって内部で保持している暫定最大値は、より大きな値が保持されることになる。これは図８の参照番号８０９及び８１０のタイミングで、暫定最大値が０からＤ１、またＤ１からＤ２へ更新されていることに該当する。次にＳ７１０に進み平均値最大判定部３０６は、内部で保持している暫定最大値を出力してＳ７１２に進む。暫定最大値を出力する際は、座標判定部３０２の副走査方向の座標とのセットのデータとして出力する。これは図８の参照番号８１１，８１２及び８１３で示される。上段のデータが暫定最大値であり、下段のデータが副走査方向の座標値を示す。
【００５３】
一方、Ｓ７１１で平均値最大判定部３０６は、現在判定した平均値の画素の座標がラインの先頭の座標であるかを判定する。これは座標判定部３０２からの主走査方向の座標を用いることにより判定可能である。ラインの先頭の座標であると判定した場合はＳ７１０に進み、ラインの先頭の座標ではないと判定した場合はＳ７１２に遷移する。
【００５４】
Ｓ７１２で係数更新判定部３０７は、Ｓ７０７で生成したドットフラグを用いて、ドットフラグが「１」であるかを判定する。ドットフラグが「１」である場合は、網点画素または孤立点画素であるためＳ７１３に遷移する。ドットフラグが「０」である場合は、この処理を終了する。
【００５５】
Ｓ７１３で係数更新判定部３０７は、Ｓ７０５で算出した平均値と、Ｓ７０６で算出した標準偏差に基づいて、その偏差の平均値が最大であるかを否か判定する。実施形態では、算出した標準偏差を３つの範囲で分類し、分類値を「０」〜「２」とする。分類値毎に保持している平均値を暫定係数値とし、合計で３つの暫定係数値を保持する。ここでは、この暫定係数値の１つと、Ｓ７０５で求めた平均値とを比較する。ここで最大であると判定した場合はＳ７１４に進み、最大ではないと判定した場合は、この処理を終了する。図８では、暫定係数値は、参照番号８１４，８１５，及び８１６で示される。参照番号８１４は分類値が「０」の暫定係数値であり、参照番号８１５は分類値が「１」の暫定係数値であり、参照番号８１６は分類値が「２」の暫定係数値である。
【００５６】
Ｓ７１４で係数更新判定部３０７は、内部で保持している暫定係数値を、Ｓ７０５で求めた平均値で更新する。これによって内部で保持している暫定係数値には、より大きな値が保持される。これは図８の参照番号８１７，８１８，及び８１９で示すタイミングであり、暫定最大値がそれぞれ０からＫ１、０からＫ２、０からＫ３へ更新されている。そしてＳ７１５に進み係数更新判定部３０７は、内部で保持している最大平均値を、係数値として出力する。尚、係数値を出力する際は、標準偏差の分類値とセットのデータとして出力する。これは図８の参照番号８２０，８２１及び８２２で示される。上段のデータが暫定係数値であり、下段のデータが分類値を示す。
【００５７】
次に実施形態に係る最大平均値記憶部４０２の動作を図９、図１１を参照して説明する。
【００５８】
図９は、実施形態に係る最大平均値記憶部４０２にデータが入力された際に実施される処理を説明するフローチャートである。図１１は、実施形態に係る最大平均値記憶部４０２及び係数記憶部４０３にデータが入力された際の処理を説明するタイミングチャートである。ここで図１１（Ａ）は、原稿の１ライン目の解析結果を入力して記憶する処理を示し、図１１（Ｂ）は、原稿の２ライン目の解析結果を入力して記憶する処理を示す。
【００５９】
Ｓ９０１で最大平均値記憶部４０２は、INPUT2に入力されるデータを取得する。このデータは、画素解析部２０６の平均値最大判定部３０６から出力される。上述したように、これは、暫定最大値と副走査方向の座標値をセットとしたデータである。これは図１１の参照番号１１０１，１１０２及び１１０３で示される。
【００６０】
次にＳ９０２に進み最大平均値記憶部４０２は、Ｓ９０１で取得したデータから副走査方向の座標値を取得する。これは図１１の参照番号１１０１，１１０２及び１１０３の下段のデータである。
【００６１】
次にＳ９０３に進み最大平均値記憶部４０２は、Ｓ９０２で取得した副走査方向の座標値から、書き込むべきレジスタを特定する。このレジスタは、暫定最大値を保持するためのものである。実施形態では、レジスタを１０００個備えており、最大１０００ライン分の暫定最大値を保持できるものとする。また実施形態では、この処理は１０００個のレジスタからか書き込むべきレジスタの特定を含む。この書き込むべきレジスタの特定は、単純に、副走査方向の座標値を１０００で割った剰余とする。このようにすれば、１００１ライン目から再度１番目のレジスタを使用するようになり、リングバッファ制御が実現される。これは図１１のタイミングチャートにおいては、レジスタは、参照番号１１０４，１１０５及び１１０６で示される。参照番号１１０４はレジスタ１、参照番号１１０５はレジスタ２、参照番号１１０６はレジスタ１０００を示す。
【００６２】
そしてＳ９０４に進み最大平均値記憶部４０２は、Ｓ９０１で取得したデータから暫定最大値を取得し、Ｓ９０３で特定したレジスタに書き込む。これは図１１の参照番号１１０７，１１０８及び１１０９で示すタイミングであり、これらタイミングでレジスタの値が更新される。
【００６３】
次に、実施形態に係る係数記憶部４０３の動作を図１０、図１１を参照して説明する。
【００６４】
図１０は、実施形態に係る係数記憶部４０３にデータが入力された際に実施される処理を説明するフローチャートである。図１１は、実施形態に係る係数記憶部４０３にデータが入力された際の内部のタイミングチャートである。
【００６５】
Ｓ１００１で係数記憶部４０３は、画素解析部２０６の出力（OUTPUT3）を、入力（INPUT3）に入力されるデータとして取得する。このデータは、画素解析部２０６の係数更新判定部３０７から出力される。上述したように、これは、暫定係数値と分類値をセットとしたデータである。これは図１１の参照番号１１１０，１１１１及び１１１２で示される。
【００６６】
次にＳ１００２で係数記憶部４０３は、Ｓ１００１で取得したデータから分類値を取得する。これは図１１のタイミングチャートにおいて、分類値は、参照番号１１１０，１１１１及び１１１２の下段のデータである。
【００６７】
次にＳ１００３に進み係数記憶部４０３は、Ｓ１００２で取得した分類値に基づいて、書き込むべきレジスタを特定する。このレジスタは、分類値毎に暫定係数値を保持するためのものである。実施形態では、分類値を３つとして想定したため、レジスタを３個備えており、最大３個分の暫定係数値を保持できる。また実施形態では、この処理は３個のレジスタからか書き込むべきレジスタを特定するものである。書き込むべきレジスタは、単純に分類値で対応をつければよい。これは図１１のタイミングチャートにおいては、レジスタは、参照番号１１１３，１１１４及び１１１５で示される。参照番号１１１３はレジスタ１、参照番号１１１４はレジスタ２、参照番号１１１５はレジスタ１０００を示す。そしてＳ１００４に進み係数記憶部４０２は、Ｓ１００１で取得したデータから暫定係数値を取得し、Ｓ１００３で特定したレジスタに書き込む。これは図１１のタイミングチャートでは、参照番号１１１６，１１１７及び１１１８のタイミングで示し、このタイミングでレジスタの値が更新される。
【００６８】
次に、実施形態に係る画素補正処理部２１２の動作を図１２及び図１３を参照して説明する。
【００６９】
図１２は、実施形態に係る画素補正処理部２１２に画素データが入力された際に実施される処理を説明するフローチャートである。図１３は、実施形態に係る画素補正処理部２１２に画素データが入力されたときの内部の動作を示すタイミングチャートである。
【００７０】
Ｓ１２０１で画素補正処理部２１２は、画素値は前段のノイズ除去部２１１から入力した画素データを取得する。これは図１３のタイミングチャートでは、参照番号１３０１で示される。次にＳ１２０２に進みウインドウ生成部４０１は、取得した画素データを蓄積してウインドウを生成する。ウインドウ生成部４０１は、内部に非図示のバッファを有しており、入力した画素データを蓄積する。これら画素データを蓄積することにより、例えば、３×３のウインドウデータを生成して出力する。こうして生成されたウインドウデータは、平均値生成部４０４、標準偏差生成部４０５、白フラグ生成部４０６、ブロック座標判定部４０７へ出力される。図１３のタイミングチャートでは、これは参照番号１３０２で示される。
【００７１】
次にＳ１２０３に進み平均値生成部４０４は、上述したようにウインドウデータから平均値を取得する。これは図１３のタイミングチャートでは参照番号１３０３で示される。次にＳ１２０４に進み標準偏差生成部４０５は、上述したようにウインドウデータから標準偏差を取得する。これは図１３のタイミングチャートにおいて、参照番号１３０４で示される。次にＳ１２０５に進み白フラグ生成部４０６は、上述したように３×３ウインドウの画素データから注目画素が白画素であるかを否か判定し、その判定結果であるフラグを生成する。これは図１３のタイミングチャートでは、参照番号１３０５で示される。次にＳ１２０６に進みブロック座標判定部４０７は、入力されたデータ数をカウントして、入力データのブロック座標、ブロック内の画素座標を判定する。このときＣＰＵ１０２は、図示しないレジスタに、ブロックの主走査方向の幅と副走査方向の幅、ブロックの主走査数、ブロックの副走査数を予め設定している。そして、これらブロックの座標情報に応じて、ブロック座標、ブロック内の画素座標を判定する。これは図１３のタイミングチャートにおいて、参照番号１３０６はページ内のブロックの主走査方向の座標である。参照番号１３０７は、ページ内のブロックの副走査方向の座標である。参照番号１３０８はブロック内の画素の主走査方向の座標、参照番号１３０９はブロック内の画素の副走査方向の座標をそれぞれ示している。
【００７２】
そしてＳ１２０７に進み係数補間部４０８は、まず、Ｓ１２０６で生成した各種ブロック座標情報から、そのページの副走査方向の座標を算出する。ページの副走査方向の座標は、ブロックの副走査方向の座標、ブロックの副走査幅、ブロック内の画素の副走査方向の座標から算出できる。次にＳ１２０８に進み係数補間部４０８は、最大平均値記憶部４０２から、算出したページの副走査方向の座標値に対応する最大平均値を取得する。この対応付けは、上述したように副走査方向の座標値を１０００で割った剰余を用いることで可能である。このように対応するレジスタ値を取得することで、所望の最大平均値を取得できる。
【００７３】
そしてＳ１２０９に進み係数補間部４０８は、更に、算出したページの副走査方向の座標値の前後の値に対応する最大平均値も取得する。この副走査方向の座標値とレジスタの対応付けは上述した通りである。これによって更に２つの最大平均値が取得される。
【００７４】
そしてＳ１２１０に進み係数補間部４０８は、Ｓ１２０８とＳ１２０９で取得した最大平均値の補間処理を実施する。即ち、ここでは、まずＳ１２０９で取得した２つの最大平均値と、Ｓ１２０８で取得した画像補正処理部２１２に入力された画素の、そのページにおける副走査方向の座標値に対応した最大平均値の３つのデータを利用する。そして、これら最大平均値の３つのデータから、最終的に画素補正を行う際に用いられる最大平均値を生成する。この補間処理の内容は特に限定するものではない。この補間処理を図１５を参照して説明する。
【００７５】
図１５は、実施形態に係る画素の補間処理を説明する図である。図１５では、縦軸を最大平均値、横軸を副走査方向の座標値としている。
【００７６】
ここでは、Ｓ１２０９で取得した３つの最大平均値がそれぞれ参照番号１５０１，１５０２，１５０３で示されている。但し、図１５の例では、各最大値の副走査方向の座標値は、Ｎ−１，Ｎ，Ｎ＋１としている。ここでＮは、補正対象の画素の副走査方向の座標値である。参照番号１５０４は、副走査方向の座標（Ｎ−１）の最大平均値１５０１と、副走査方向の座標（Ｎ＋１）の最大平均値１５０３を結んだ直線を示す。この直線１５０４で定まる点１５０５と、副走査方向の座標値Ｎの実際に解析して得られた最大平均値１５０２とを結ぶ直線を直線１５０６とする。この処理によって、直線１５０６上のいずれかの値に、最大平均値が補間される。これは、最大平均値１５０２と点１５０５の２つの値の重み付け演算によって、直線１５０６上の全ての値を表現できる。従って、最大平均値１５０２の値をそのまま使用することも可能であるし、点１５０５の値を使用することも可能である。また、その中間値を使用することも可能である。
【００７７】
尚、この処理の目的は、画素補正の際に用いられる補正量を副走査方向の座標間で極力なめらかな変化させるためである。この補正量は、最大平均値の大きさに依存するため、副走査方向の座標間での最大平均値の大きさが極力なめらかに変化するようにする。但し、補間処理に限定するものではない。
【００７８】
図１５の例では、座標（Ｎ−１）から座標Ｎにかけて最大平均値の変化量が大きいが、この補間処理によって最大平均値をなめらかな変化量とすることができる。また実施形態では、説明の簡略化のため、３点による補間処理を実施したが、当然これに限るものではない。上記目的に対しては、より多くの点による補間処理を実施したほうが効果的であることは言うまでもない。実施形態では、最大１０００ラインの最大平均値を保持できる構成であるため、より多くの値を用いた補間処理も可能である。また実施形態では、ライン単位で最大平均値を保持し、それを利用する構成として説明したが、これに限るものではなく、画素単位で最大平均値を保持して活用する構成としても良い。
【００７９】
一方で、係数記憶部４０３で保持している係数値は、原稿の１ページ全体で１つの値を保持している。つまり、係数記憶部４０３は累積値を保持し、その累積値を補正量として活用している。このように、ライン単位で解析結果を取得したい処理と、ページ単位での累積値となる解析結果を取得したい処理の両方を実施形態では構成している。
【００８０】
再び図１２に戻り、Ｓ１２１１で補正量決定部４０９は、Ｓ１２０５で生成した白フラグが「１」であるかを否か判定する。ここで白フラグが「１」である場合はＳ１２１２に進み、白フラグが「０」の場合はＳ１２１３に遷移する。Ｓ１２１２で補正量決定部４０９は、Ｓ１２１０の補間処理により算出した最大平均値に基づいた補正量を算出する。一方、Ｓ１２１３で補正量決定部４０９は、Ｓ１２０４で生成した標準偏差から対応する係数値（最大平均値）を係数記憶部４０３から取得し、その係数値とＳ１２０３で求めた平均値との差に基づく補正量を算出する。
【００８１】
Ｓ１２１４で補正部４１０は、Ｓ１２０１で取得した入力画素データに対して、Ｓ１２１２或いはＳ１２１３で算出した補正量で演算することにより出力画素データを生成し、出力する。
【００８２】
以上説明したように実施形態によれば、まず、ラスタ処理部２０１の画素解析部２０６でラスタ処理順に画素データを解析し、その解析結果をブロック処理部２０２の画素補正処理部２１２の最大平均値記憶部４０２と係数記憶部４０３に保持する。そしてブロック処理部２０２での画素補正処理を実施する際に、保持した最大平均値記憶部４０２と係数記憶部４０３の解析結果を使用するように処理を構成した。これらの構成によって、画素解析処理はラスタ形式で実施しながらも、画素補正処理をブロック形式で行うことが可能となる。
【００８３】
また画素解析部２０６での解析結果をライン単位で保持して、ブロック処理部２０２の画素補正処理部２１２で補正処理に適用する際に、最大平均値を補間した。実施形態ではライン単位で解析結果を保持して活用する構成と、ページ単位での累積値となる解析結果を保持して活用する構成を説明した。このようにアルゴリズムの処理と回路規模に対して最適な構成を実現することも可能である。
【００８４】
また、原稿の面積から算出した、事前に画素解析を実施すべきライン数が読み込まれたことに応じて、画素補正処理が開始できる点も特徴である。これによって、画像データのスプール容量を最低限にでき、かつ、リアルタイム性を持った処理を実現できる。
【００８５】
これにより、例えば、裏写りを抑制する画素補正処理のように、画素の解析処理と解析結果に基づいて画素補正処理を行う処理において、画素解析をラスタ形式で行い、画素補正処理をブロック形式で行うことができる。これによって、ブロック形式で画像処理を行った場合でも画質を維持することが可能となる。また、スキャン画像処理の処理順の制約によって、ブロック形式で処理できなかった他の画像処理アルゴリズムをブロック画像処理部に構成できるようになり、スキャン画像処理部全体の回路規模を抑制することが可能となる。
【００８６】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８７】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から逸脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００８８】
１１１…スキャン画像処理部、２０１…ラスタ処理部、２０２…スキャン画像処理部、２０６…画素解析部、２１２…画素補正処理部、３０６…平均値最大判定部、３０７…係数更新判定部、４０２…最大平均値記憶部、４０３…係数記憶部、４０８…係数補間部、４０９…補正量決定部
【図１】
2020145661.tif 000003
【図２】
2020145661.tif 000004
【図３】
2020145661.tif 000005
【図４】
2020145661.tif 000006
【図５】
2020145661.tif 000007
【図６】
2020145661.tif 000008
【図７】
2020145661.tif 000009
【図８】
2020145661.tif 000010
【図９】
2020145661.tif 000011
【図１０】
2020145661.tif 000012
【図１１】
2020145661.tif 000013
【図１２】
2020145661.tif 000014
【図１３】
2020145661.tif 000015
【図１４】
2020145661.tif 000016
【図１５】
2020145661.tif 000017