(57)【要約】【課題】  ＳＩＭＤ演算により画像処理の処理効率を向上させるとともに、スキャン画像を構成する画像領域毎にその属性に応じた画像処理を施すことを可能にする。【解決手段】  画像データが入力される入力手段と、前記画像データの表す画像を複数のブロックに分割する分割手段と、前記分割手段により分割されたブロックの各々を解析し、そのブロックの属性を判別する判別手段と、前記分割手段により分割されたブロックの各々について、そのブロックに属する画素の画素値を主走査方向にそのブロックについて前記判別手段により判別された属性に応じた画素数分ずつ前記画像データから読み取って記憶するレジスタと、前記レジスタに記憶されている画素値の各々に、前記判別手段により判別された属性に応じた画像処理をＳＩＭＤ演算で施す画像処理手段と、を有することを特徴とする画像処理装置を提供する。【選択図】    図５
2007087191.tif 000002
【特許請求の範囲】
【請求項１】
画像データが入力される入力手段と、
前記画像データの表す画像を複数のブロックに分割する分割手段と、
前記分割手段により分割されたブロックの各々を解析し、そのブロックの属性を判別する判別手段と、
前記分割手段により分割されたブロックの各々について、そのブロックに属する画素の画素値を主走査方向にそのブロックについて前記判別手段により判別された属性に応じた画素数分ずつ前記画像データから読み取って記憶するレジスタと、
前記レジスタに記憶されている画素値の各々に、前記判別手段により判別された属性に応じた画像処理をＳＩＭＤ演算で施す画像処理手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記分割手段は、
前記レジスタに格納可能な画素数の最大値がＮである場合に、前記主走査方向の画素数がＮの倍数になるように前記各ブロックの大きさを決定し、前記画像データの表す画像を複数のブロックに分割する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像処理手段により実行される画像処理にウィンドウ処理が含まれている場合に、そのウィンドウ処理により失われる画素数をそのウィンドウ処理にて用いられるウィンドウのサイズおよびウィンドウ処理の総数から算出する算出手段を備え、
前記分割手段は、
前記入力手段へ入力された画像データに、付加する画素の和が前記算出手段により算出された画素数以上となるように画像の上下および左右の両端もしくは片端に画素を付加して得られる画像を、複数の前記ブロックに分割する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記分割手段は、
前記所定の画素値を有する画素を付加して得られる画像の前記主走査方向の画素数が、前記レジスタに格納可能な画素数の最大値Ｎの倍数ではない場合には、前記主走査方向の末尾にダミー画素を付加して前記主走査方向の画素数を前記最大値Ｎの倍数にした後に、複数の前記ブロックに分割する
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記画像処理手段により実行される画像処理にウィンドウ処理が含まれている場合に、そのウィンドウ処理により失われる画素数をそのウィンドウ処理にて用いられるウィンドウのサイズおよびウィンドウ処理の総数から算出する算出手段を備え、
前記分割手段は、
所定の画素値を有する画素を、前記算出手段により算出された画素数の半分以上の数であって、かつ、前記レジスタに格納可能な画素数の最大値Ｎの倍数である数だけ前記入力手段へ入力された画像データの両端に付加して得られる画像を、複数の前記ブロックに分割する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項６】
前記画像処理手段は、連続する２つのブロックにウィンドウが跨るウィンドウ処理を実行する場合には、手前のブロック内でそのウィンドウに含まれる画素の画素値を用いて得られる演算結果と、他方のブロック内でそのウィンドウに含まれる画素の画素値を用いて得られる演算結果とを個別に算出し、その両者からそのウィンドウ処理の処理結果を算出する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項７】
前記画像処理手段は、連続する２つのブロックにウィンドウが跨るウィンドウ処理を実行する場合に、手前のブロックについて前記レジスタに格納される画素数と、他方のブロックについて前記レジスタに格納される画素数とが異なっている場合には、前記ウィンドウ処理の注目画素が属するブロックにて画素値を表すビット数に、他方のブロックにて画素値を表すビット数と一致させるビット数変換を行った後に、前者についての演算結果と後者についての演算結果とからそのウィンドウ処理の処理結果を算出する
ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記画像処理手段は、連続する２つのブロックのうち、手前のブロックに対する画像処理にウィンドウ処理が含まれていない場合であっても、次のブロックに対する画像処理にウィンドウ処理が含まれている場合には、前記手前のブロックに属する画素のうち次のブロックについてのウィンドウ処理でウィンドウが跨る画素については、そのウィンドウ処理による演算を行う
ことを特徴とする請求項６に記載の画像処理装置。
【請求項９】
コンピュータ装置に、
入力された画像データの表す画像を複数のブロックに分割する第１のステップと、
前記第１のステップにて分割されたブロックの各々を解析し、そのブロックの属性を判別する第２のステップと、
前記第１のステップにて分割されたブロックの各々について、そのブロックに属する画素の画素値を主走査方向にそのブロックについて前記第２のステップにて判別された属性に応じた画素数分ずつ前記画像データから読み取って該コンピュータ装置のレジスタに記憶する第３のステップと、
前記第３のステップにて前記レジスタに記憶された画素値の各々に前記第２のステップにて判別された属性に応じた画像処理をＳＩＭＤ演算で施す第４のステップと、
を実行させる特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャン画像に画像処理を施して出力する技術に関し、特に、そのスキャン画像を構成する各オブジェクト毎にその特性に応じた画像処理を施して出力する技術に関する。
【背景技術】
【０００２】
スキャナ装置などの画像読取装置によって読み取られる画像（以下、スキャン画像）に色変換処理（例えば、ＲＧＢ画像からＹＭＣＫ画像への変換処理）などの画像処理を施し、その処理結果である画像を印刷用紙など記録材上に形成して出力することが一般に行われている。従来、この種の画像処理については、画像処理プロセッサなどの専用のハードウェアで実行されることが一般的であったが、ＤＳＰ（Digital Signal Processor）やＣＰＵ（Central Processing Unit）などの汎用プロセッサの動作クロックの向上および複数のデータに対して同一の処理を同時に施すＳＩＭＤ（Single Instruction Multiple Data stream）命令への対応により、これら汎用プロセッサを用いて画像処理を実行することが実用可能なレベルに達しつつある。なお、以下では、ＳＩＭＤ命令に対応している汎用プロセッサを「ＳＩＭＤ演算器」と呼び、ＳＩＭＤ演算器がＳＩＭＤ命令にしたがって行う演算を「ＳＩＭＤ演算」と呼ぶ。
例えば、特許文献１には、画像を構成する各画素の画素値を配列して成る画像データに２次元離散コサイン変換処理を施す際に、それら画素値の並び順をＳＩＭＤ演算に適した順に並び替えた後に、２次元離散コサイン変換処理をＳＩＭＤ演算で実行する技術が開示されている。
【特許文献１】特開２０００−６９４７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、スキャン画像の中には、文字や写真、下地等（以下、文字、写真、下地等を「属性」とも呼ぶ）の異なる属性を有する複数の画像領域で構成されているものもあり、係るスキャン画像に対して画像処理を施す際には、画像領域毎にその属性に応じた画像処理を施すことが望ましい。例えば、文字領域については、文字の輪郭がぼやけてしまうことを回避するため、解像性を重視した画像処理を施すことが望ましく、写真領域については、階調性を重視した画像処理を施すことが望ましい。
しかしながら、特許文献１に開示された技術では、画像データ全体に対して一様な処理を施すことを前提としているため、画像領域毎にその属性に応じて処理を施すようにすることは難しいといった問題点がある。また、特許文献１に開示された技術には、フィルタ処理のようにウィンドウを画像全体に対して移動させつつ行う画像処理を実行することができないといった問題点もある。
本発明は、上記課題に鑑みて為されたものであり、ＳＩＭＤ演算により画像処理の処理効率を向上させるとともに、スキャン画像を構成する画像領域毎にその属性に応じた画像処理を施すことを可能にする技術を提供することを目的としている。
【課題を解決するための手段】
【０００４】
上記課題を解決するために本発明は、画像データが入力される入力手段と、前記画像データの表す画像を複数のブロックに分割する分割手段と、前記分割手段により分割されたブロックの各々を解析し、そのブロックの属性を判別する判別手段と、前記分割手段により分割されたブロックの各々について、そのブロックに属する画素の画素値を主走査方向にそのブロックについて前記判別手段により判別された属性に応じた画素数分ずつ前記画像データから読み取って記憶するレジスタと、前記レジスタに記憶されている画素値の各々に前記判別手段により判別された属性に応じた画像処理を同時に施す画像処理手段とを有することを特徴とする画像処理装置を提供する。
【０００５】
より好ましい態様においては、前記分割手段は、前記レジスタに格納可能な画素数の最大値がＮである場合に、前記主走査方向の画素数がＮの倍数になるように前記各ブロックの大きさを決定し、前記画像データの表す画像を複数のブロックに分割することを特徴とする。
【０００６】
別の好ましい態様においては、前記画像処理手段により実行される画像処理にウィンドウ処理が含まれている場合に、そのウィンドウ処理により失われる画素数をそのウィンドウ処理にて用いられるウィンドウのサイズおよびウィンドウ処理の総数から算出する算出手段を備え、前記分割手段は、前記入力手段へ入力された画像データに、付加する画素の和が前記算出手段により算出された画素数以上となるように画像の上下および左右の両端もしくは片端に画素を付加して得られる画像を、複数の前記ブロックに分割することを特徴とする。
【０００７】
別の好ましい態様においては、前記分割手段は、前記所定の画素値を有する画素を付加して得られる画像の前記主走査方向の画素数が、前記レジスタに格納可能な画素数の最大値Ｎの倍数ではない場合には、前記主走査方向の末尾にダミー画素を付加して前記主走査方向の画素数を前記最大値Ｎの倍数にした後に、複数の前記ブロックに分割することを特徴とする。
【０００８】
別の好ましい態様においては、前記画像処理手段により実行される画像処理にウィンドウ処理が含まれている場合に、そのウィンドウ処理により失われる画素数をそのウィンドウ処理にて用いられるウィンドウのサイズおよびウィンドウ処理の総数から算出する算出手段を備え、前記分割手段は、所定の画素値を有する画素を、前記算出手段により算出された画素数の半分以上であって、かつ、前記レジスタに格納可能な画素数の最大値Ｎの倍数である数だけ前記入力手段へ入力された画像データの両端に付加して得られる画像を、複数の前記ブロックに分割することを特徴とする。
【０００９】
別の好ましい態様においては、前記画像処理手段は、連続する２つのブロックにウィンドウが跨るウィンドウ処理を実行する場合には、手前のブロック内でそのウィンドウに含まれる画素の画素値を用いて得られる演算結果と、他方のブロック内でそのウィンドウに含まれる画素の画素値を用いて得られる演算結果とを個別に算出し、その両者からそのウィンドウ処理の処理結果を算出することを特徴とする。
【００１０】
別の好ましい態様においては、前記画像処理手段は、連続する２つのブロックにウィンドウが跨るウィンドウ処理を実行する場合に、手前のブロックについて前記レジスタに格納される画素数と、他方のブロックについて前記レジスタに格納される画素数とが異なっている場合には、前記ウィンドウ処理の注目画素が属するブロックにて画素値を表すビット数に、他方のブロックにて画素値を表すビット数と一致させるビット数変換を行った後に、前者についての演算結果と後者についての演算結果とからそのウィンドウ処理の処理結果を算出することを特徴とする。
【００１１】
別の好ましい態様においては、前記画像処理手段は、連続する２つのブロックのうち、手前のブロックに対する画像処理にウィンドウ処理が含まれていない場合であっても、次のブロックに対する画像処理にウィンドウ処理が含まれている場合には、前記手前のブロックに属する画素のうち次のブロックについてのウィンドウ処理でウィンドウが跨る画素については、そのウィンドウ処理による演算を行うことを特徴とする。
【００１２】
また、上記課題を解決するために本発明は、コンピュータ装置に、入力された画像データの表す画像を複数のブロックに分割する第１のステップと、前記第１のステップにて分割されたブロックの各々を解析し、そのブロックの属性を判別する第２のステップと、前記第１のステップにて分割されたブロックの各々について、そのブロックに属する画素の画素値を主走査方向にそのブロックについて前記第２のステップにて判別された属性に応じた画素数分ずつ前記画像データから読み取って該コンピュータ装置のレジスタに記憶する第３のステップと、前記第３のステップにて前記レジスタに記憶された画素値の各々に前記第２のステップにて判別された属性に応じた画像処理をＳＩＭＤ演算で施す第４のステップと、を実行させる特徴とするプログラムを提供する。
【発明の効果】
【００１３】
本発明によれば、ＳＩＭＤ演算により画像処理の処理効率を向上させるとともに、スキャン画像を構成する画像領域毎にその属性に応じた画像処理を施すことが可能になる、といった効果を奏する。
【発明を実施するための最良の形態】
【００１４】
以下、本発明を実施する際の最良の形態について図面を参照しつつ説明する。
（Ａ．構成）
図１は、本発明の１実施形態に係る画像処理装置１２０を含んでいる画像処理システムの構成例を示すブロック図である。図１に示すように、この画像処理システムには、画像読取装置１１０と、画像処理装置１２０と、画像形成装置１３０とが含まれており、画像処理装置１２０は、例えばＵＳＢ（Universal Serial Bus）ケーブルなどの通信線１４０ａおよび１４０ｂで画像読取装置１１０と画像形成装置１３０とに接続されている。
【００１５】
画像読取装置１１０は、例えばＡＤＦ（Auto Document Feeder）などの自動給紙機構を備えたスキャナ装置であり、ＡＤＦにセットされた紙文書を１ページずつ読み取り、読み取った画像に対応するＲＧＢ画像データを通信線１４０ａを介して画像処理装置１２０へ引渡す。ここで、ＲＧＢ画像データとは、光の３原色である赤（Ｒ）、緑（Ｇ）および青（Ｂ）の組み合わせで画素の色が表された画像データである。
【００１６】
画像処理装置１２０は、通信線１４０ａを介して画像読取装置１１０から引渡されたＲＧＢ画像データを、ＹＭＣＫ画像データに変換し通信線１４０ｂを介して画像形成装置１３０へ引渡す。なお、画像処理装置１２０の構成および動作については、後に詳細に説明する。ここで、ＹＭＣＫ画像データとは、印刷の基本色であるイエロー（Ｙ）、マゼンダ（Ｍ）、シアン（Ｃ）および墨（Ｋ）の４色の組み合わせで画素の色が表された画像データである。
【００１７】
画像形成装置１３０は、例えば電子写真方式のプリンタ装置であり、通信線１４０ｂを介して画像処理装置１２０から引渡されたＹＭＣＫ画像データに応じた画像を電子写真方式で印刷用紙などの記録材上に形成して出力する。なお、本実施形態では、画像形成装置１３０が電子写真方式のプリンタ装置である場合について説明するが、例えばインクジェット方式など他の方式で画像形成を行うプリンタ装置であっても勿論良い。
【００１８】
本実施形態では、ＵＳＢケーブルを介して画像処理装置１２０が画像読取装置１１０や画像形成装置１３０に接続されている場合について説明するが、ＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）、インターネットなどの通信網を介して画像処理装置１２０が画像読取装置１１０や画像形成装置１３０に接続されているとしても良いことは勿論である。また、本実施形態では、画像読取装置１１０、画像処理装置１２０および画像形成装置１３０を夫々個別のハードウェアで構成する場合について説明するが、これらを一体のハードウェアで構成するとしても良いことは勿論である。このような態様にあっては、係るハードウェア内で画像読取装置１１０、画像処理装置１２０および画像形成装置１３０を接続する内部バスが、上記通信線の役割を担うことになる。
【００１９】
図２は、画像処理装置１２０のハードウェア構成の一例を示す図である。
図２に示すように、画像処理装置１２０は、制御部２１０、インターフェイス（以下、ＩＦ）部２２０、記憶部２３０、および、これら各構成要素間のデータ授受を仲介するバス２４０、を備えている。
【００２０】
制御部２１０は、例えばＣＰＵ（Central Processing Unit）であり、記憶部２３０に格納されているプログラムを実行することによって、画像処理装置１２０の各部を中枢的に制御するものである。この制御部２１０は、図２に示すようにＳＩＭＤ演算レジスタ２１０ａを有しており、このＳＩＭＤ演算レジスタ２１０ａを用いてＳＩＭＤ演算を実行することができる。
より詳細に説明すると、ＳＩＭＤ演算レジスタ２１０ａは、１２８ビット分の記憶容量を有しており、制御部２１０は、ＳＩＭＤ演算の並列数（以下、パック数）に応じてレジスタ２１０ａ内の記憶領域を分割することにより、そのパック数分のデータをＳＩＭＤ演算レジスタ２１０ａに書き込み、それらデータに同一の演算を同時に施すことができる。例えば、パック数が４である場合には、制御部２１０は、４個の３２ビットデータに同一の演算を同時に施すことが可能であり、パック数が８である場合には、８個の１６ビットデータに同一の演算を同時に施すことが可能である。なお、本実施形態では、制御部２１０が１つのＳＩＭＤ演算レジスタを有している場合について説明するが、複数のＳＩＭＤ演算用レジスタを有しているとしても良いことは勿論である。また、図２においては詳細な図示は省略したが、制御部２１０は、ＳＩＭＤ演算レジスタ２１０ａの他に、汎用的に利用可能な汎用レジスタも有している。
【００２１】
ＩＦ部２２０は、ＵＳＢインターフェイスであり、通信線１４０ａや１４０ｂが接続されている。このＩＦ部２２０は、通信線１４０ａを介して画像読取装置１１０から送られてくるＲＧＢ画像データを受取り、制御部２１０へ引渡す一方、制御部２１０から引渡されたＹＭＣＫ画像データを通信線１４０ｂを介して画像形成装置１３０へ引渡す。つまり、このＩＦ部２２０は、画像読取装置１１０から送られてくる画像データが入力される入力手段として機能する一方、画像処理装置１２０による処理結果を出力する出力手段として機能する。なお、ＬＡＮなどの通信網を介して画像読取装置１１０や画像形成装置１３０を接続する場合には、ＩＦ部２２０をＮＩＣ（Network Interface Card）で構成するようにすれば良い。
【００２２】
記憶部２３０は、図２に示すように、不揮発性記憶部２３０ａと揮発性記憶部２３０ｂとを含んでいる。
不揮発性記憶部２３０ａは、例えば、ハードディスクである。この不揮発性記憶部２３０ａには、ＲＧＢ画像データをＹＭＣＫ画像データに変換する画像処理を制御部２１０に実行させるためのプログラムやその実行過程で参照される各種データが予め格納されている。一方、揮発性記憶部２３０ｂは、例えばＲＡＭ（Random Access Memory）であり、上記プログラムにしたがって作動している制御部２１０によってワークエリアとして利用される。
【００２３】
不揮発性記憶部２３０ａに格納されているデータの一例としては、上記画像処理の実行過程で適宜参照されるルックアップテーブル（以下、ＬＵＴ）や、画像領域の属性を判別する際に参照される属性判別テーブル、および、画像領域の属性に応じたパック数（並列度）を設定するためのパック数管理テーブルが挙げられる。
【００２４】
属性判別テーブルには、文字や写真（或いは絵柄）などの画像素材の属性に応じた明度（Ｌ）のヒストグラムと彩度（ａ、ｂ）のヒストグラムの基準パターンを表すデータが各属性毎に格納されている。例えば、図３（ａ）は黒文字、図３（ｂ）は色文字、図３（ｃ）はカラー写真、図３（ｄ）は白黒写真、図３（ｅ）は下地、の上記基準パターンである。
図３（ａ）に示すように、黒文字についての基準パターンは、ハイライトと高濃度にピークのある明度ヒストグラムおよび中央に１つピークがある彩度ヒストグラムであり、色文字について基準パターンは、図３（ｂ）に示すように、ハイライトと高濃度にピークのある明度ヒストグラムおよび中央と中央からずれた位置に２つピークがある彩度ヒストグラムである。カラー写真についての基準パターンは、図３（ｃ）に示すように、なだらかでピークが不定な明度ヒストグラムおよびなだらかでピークが不定な彩度ヒストグラムであり、白黒写真についての基準パターンは、図３（ｄ）に示すように、なだらかでピークが不定な明度ヒストグラムおよび中央に１つのピークがある彩度ヒストグラムである。そして、下地についての基準パターンは、図３（ｅ）に示すように、ハイライトに１つのピークがある明度ヒストグラムおよび中央に１つのピークがある彩度ヒストグラムとなる。
このように、属性判別テーブルには、各属性についての基準パターンを表すデータが属性毎に格納されているため、制御部２１０は、各画像領域についてその基準パターンを算出し、その算出結果を上記属性判別テーブルの格納内容と比較することによって、その画像領域の属性を判別することができる。
【００２５】
図４は、パック数管理テーブルの一例を表す図である。
図４に示すように、パック数管理テーブルには、ＳＩＭＤ演算で画像処理を実行する際のパック数が画像領域の属性毎に書き込まれている。例えば、図４に示すパック数管理テーブルの格納内容は、以下の３つのことを表している。第１に、属性が下地である画像領域（以下、「下地領域」）については、パック数を１６にしてＳＩＭＤ演算を実行すべきこと（すなわち、下地領域については、１６個分の画素データをＳＩＭＤ演算レジスタ２１０ａに読み込み、同時に同一の処理を施すべきこと）である。第２に、属性が文字である画像領域（以下、「文字領域」）については、パック数を８にしてＳＩＭＤ演算を実行すべきこと（すなわち、下地領域については、８個分の画素データをＳＩＭＤ演算レジスタ２１０ａに読み込み、同時に同一の処理を施すべきこと）である。そして、第３に、属性が写真である画像領域（以下、「写真領域」）については、パック数を４にしてＳＩＭＤ演算を実行すべきこと（すなわち、写真領域については、４個分の画素データをＳＩＭＤ演算レジスタ２１０ａに読み込み、同時に同一の処理を施すこと）である。
【００２６】
以上に説明したように、本実施形態に係る画像処理装置１２０のハードウェア構成は一般的なコンピュータ装置のハードウェア構成と同一であり、不揮発性記憶部２３０ａに格納されているプログラムにしたがって制御部２１０を作動させることによって、本発明に係る画像処理装置に特有な機能が実現される。
【００２７】
（Ｂ．動作）
次いで、上記プログラムにしたがって作動している制御部２１０が実行する動作について図面を参照しつつ説明する。
画像読取装置１１０のＡＤＦに紙文書がセットされ、画像読取装置１１０の操作部（図示省略）に設けられているスタートボタンなど所定の操作子が操作されると、画像読取装置１１０は、上記ＡＤＦにセットされている紙文書の画像を光学的に読み取り、読み取った画像に対応するＲＧＢ画像データを生成し通信線１４０ａを介して画像処理装置１２０へ引渡す。画像処理装置１２０の制御部２１０は、ＩＦ部２２０を介してＲＧＢ画像データを受取ると、不揮発性記憶部２３０ａに格納されているＬＵＴを適宜参照してそのＲＧＢ画像データをＬ＊ａ＊ｂ＊画像データに変換する。ここで、Ｌ＊ａ＊ｂ＊画像データとは、画像を明度（Ｌ）と彩度（ａ，ｂ）とで表す画像データである。そして、制御部２１０は、このＬ＊ａ＊ｂ＊画像データに対して、図４に示す画像処理を施し、さらに、その処理結果をＹＭＣＫ画像データに変換しＩＦ部２２０を介して画像形成装置１３０へと引渡し、その処理結果に応じた画像を記録紙上に形成させる。なお、以下に説明する動作例では、上記各画像データでは、各画素の画素値が８ビットで表れているものとする。
【００２８】
図５は、上記プログラムにしたがって作動している制御部２１０が実行する画像処理動作の流れを示すフローチャートとである。制御部２１０は、まず、ウィンドウ処理により損失する画素数Ｃをそのウィンドウ処理にて使用するウィンドウ（デジタルフィルタ）のサイズから算出する（ステップＳＡ１００）。
次いで、制御部２１０は、揮発性記憶部２３０ｂに格納されている画像データの表す画像を複数のブロックに分割する際のブロックのブロックサイズＭを、ＳＩＭＤ演算レジスタ２１０ａのパック数の最大値Ｎの整数倍に設定する（ステップＳＡ１１０）。例えば、本実施形態では、制御部２１０は、上記ブロックサイズＭに３２（すなわち、パック数Ｎの２倍の値）を設定する。なお、本実施形態では、ブロックサイズＭにパック数の最大値Ｎの２倍の値を設定する場合について説明したが、その１倍の値（すなわち、１６）を設定するとしても良く、また、３倍の値を設定するとしても勿論良い。但し、上記ブロックサイズＭの値が大きいほど、画像処理の処理効率が向上する反面、ブロックの属性を判別する際の判別精度が低下してしまうので、要求される処理効率と画像処理を施すことにより得られる画像の画質を総合的に判断し、適切な大きさのブロックサイズを設定するのが好ましい。
【００２９】
次いで、制御部２１０は、図６に示すように、上記画像データの両端に所定の画素値（本実施形態では、上記画像の端部の画素値）を有するＷ（ステップＳＡ１００にて算出された画素数Ｃの半分の値、但し、Ｃが奇数の場合は、小数点以下を切り上げた値）個の画素を付加し、さらに主走査方向の末尾にその主走査方向の画素数が上記パック数の最大値Ｎの倍数になるようダミー画素（図６では、ハッチングで表記）を付加する（ステップＳＡ１２０）。より詳細に説明すると、制御部２１０は、まず、上記Ｗを２倍した値に上記画像データの主走査方向の画素数を加算して得られる値を、パック数の最大値Ｎで除算して余りを求める。次いで、制御部２１０は、パック数Ｎから上記余りを減算して得られる値を、主走査方向の末尾に付加するべきダミー画素の個数として算出する。なお、上記余りが“０”である場合には、ダミー画素を付加しない状態で、主走査方向の画素数がパック数の最大値Ｎの倍数になっていることを意味しているのであるから、この場合にはダミー画素の付加は不要である。上記のようにしてダミー画素を付加することによって、所定のパック数でＳＩＭＤ演算レジスタ２１０ａに画素データを読み込んでゆく過程で、主走査方向の末尾周辺の画素データを読み込む際に、画像データ以外のデータが書き込まれたメモリ領域にアクセスしてしまうことが確実に回避される。なお、本実施形態では、パック数Ｎから上記余りを減算して得られる値分のダミー画素を付加する場合について説明したが、パック数Ｎから上記余りを減算して得られる値にＮの自然数倍の値を加算して得られえる値分のダミー画素を付加するようにしても勿論良い。
【００３０】
次いで、制御部２１０は、ステップＳＡ１２０にてダミー画素を付加した画像データに対応する画像を、ステップＳＡ１１０にて設定したブロックサイズＭを有するブロック（本実施形態では、Ｍ＝３２であるから、３２×３２のマトリクス状のブロック）に分割し、各ブロックの属性を判別する（ステップＳＡ１３０）。より詳細に説明すると、制御部２１０は、各ブロックについて明度（Ｌ）のヒストグラムと彩度（ａ、ｂ）のヒストグラムを算出し、それを前述した属性判別テーブルに格納されている基準パターンと比較することによって、各ブロックの属性を判別する。この場合、制御部２１０は、例えば、基準パターンとの乖離度を適当な計算方法で算出し、一番乖離度が小さい基準パターンを選択する。
【００３１】
次いで、制御部２１０は、上記ブロックの各々について、その属性に応じたパック数を前述したパック数管理テーブルを参照して特定し、そのブロックの画像データを主走査方向に沿ってその属性に応じたパック数分ずつ読み取ってＳＩＭＤ演算用レジスタに格納し、所定の画像処理（本実施形態では、属性に応じたデジタルフィルタを用いたウィンドウ処理）をＳＩＭＤ命令を使用して実行する（ステップＳＡ１４０）。例えば、属性が写真であるとステップＳＡ１３０にて判別されたブロックについては、属性が写真である場合のパック数は４であるから、制御部２１０は、そのブロックに属する画素の画素値を表すデータを４画素分ずつ読み込んでＳＩＭＤ演算レジスタ２１０ａに格納し、ＳＩＭＤ演算を実行することによって、それら４個のデータに同時に同一の処理を施す。
【００３２】
ここで注目すべき点は、ＳＩＭＤ演算レジスタの記憶容量は１２８ビットであり、パック数を４にした場合には、１画素当り３２ビットの記憶領域が割り当てられることになる。本実施形態では、各画素の画素値は８ビットで表されているのであるから、属性が写真であると判別されたブロックについては、実際の画素データのデータサイズに比較して充分に大きい記憶領域が割り当てられることになる。このため、属性が写真であるブロックについて画像処理過程で、演算結果が８ビットの範囲に収まらなくなること（桁あふれ）が回避される。従来は、桁あふれの発生に対処するために、画素データの下位１ビットを捨てる（当然に画質は劣化する）などしていたが、本実施形態に係る画像処理装置では、このようなことを行う必要がないため、高精度な画像処理を施すことができる。
【００３３】
これに対して、属性が文字や下地であるブロックについては、８並列（１画素当りに割り当てられる記憶容量は１６ビット）または１６並列（１画素当りに割り当てられる記憶容量は８ビット）で画像処理が実行されるため、画像処理の実行過程で演算結果の桁あふれが発生する可能性が高く、その処理精度は低下するものの、高速に画像処理を実行することが可能になる。なお、属性が文字や写真であるブロックについては、元来、属性が写真であるブロックほど高い処理精度を要求されないため、上記のような処理精度の低下が生じたとしても、特段の影響は生じない。
【００３４】
ところで、ウィンドウ処理の実行過程では、図７に示すように、連続する２つのブロックにウィンドウが跨ることが起こり得る。このような場合には、制御部２１０は、以下のようにそのウィンドウ処理の処理結果を算出する。まず、制御部２１０は、主走査方向で手前のブロック内の画素のうち上記ウィンドウに含まれる画素の画素値を用いてそのウィンドウ処理に応じた演算を行い、その演算結果を第１の部分結果として前述した汎用レジスタに書き込み記憶する。次いで、制御部２１０は、主走査方向で上記手前のブロックに後続するブロック（現ブロック）内の画素のうち、上記ウィンドウに含まれる画素の画素値を用いてそのウィンドウ処理に応じた演算を行い、その演算結果（以下、第２の部分結果）と上記汎用レジスタに格納されている第１の部分結果とからそのウィンドウ処理の処理結果を算出する。なお、ウィンドウが跨る２つのブロックの属性が異なっている場合には、第１の部分結果のビット長と第２の部分結果のビット長が異なってしまうことになるが、このような場合には、第１および第２の部分結果のうち上記ウィンドウ処理の注目画素を含んでいるブロックについての部分結果のビット長に合わせるように他方の部分結果にビット数変換を施すようにすれば良い。なお、ビット長が短い方を他方のビット長に一致するようにビット数変換を施した後に上記ウィンドウ処理の処理結果を算出するようにしても勿論良い。
【００３５】
そして、制御部２１０は、全てのブロックに対して画像処理を完了すると、その処理結果からステップＳＡ１２０にて付加したダミー画素に対応する部分を削除し、前述したＹＭＣＫ画像データに変換して画像形成装置１３０へ引渡す（ステップＳＡ１５０）。
【００３６】
以上に説明したように、本実施形態に係る画像処理装置１２０によれば、スキャン画像を構成する各画像領域の属性に応じてＳＩＭＤ演算のパック数が切り替えられ、各画像領域に属する画素の画素値をその属性に応じたビット数分のデータで表して演算を行うことが可能になり、高速かつ高画質な画像処理を実現することが可能になる、といった効果を奏する。
また、本実施形態に係る画像処理装置１２０によれば、各画像領域の主走査方向の画素数を、ＳＩＭＤ演算のパック数の最大値の倍数にすることによって、各画像領域に属する全ての画素について一様な処理をＳＩＭＤ演算で施すことが可能になり、ＳＩＭＤ演算を用いてその画像処理の処理効率を向上させることが可能になる、といった効果を奏する。
【００３７】
（Ｃ．変形例）
以上、本発明の１実施形態について説明したが、係る実施形態に以下に述べるような変形を加えても良いことは勿論である。
（Ｃ−１：変形例１）
上述した実施形態では、画像処理装置１２０へ入力される画像データがＲＧＢ画像データである場合について説明したが、他の形式の画像データであっても勿論良い。また、画像処理装置１２０が出力する画像データについてもＹＭＣＫ画像データに限定されるものではなく、他の形式の画像データであっても良い。また、上述した実施形態では、入力されたＲＧＢ画像データをＬ＊ａ＊ｂ＊画像データに変換して属性判別を行う場合について説明したが、他の形式の画像データに変換して属性判別を行うとしても良く、また、入力画像データをそのまま用いて属性判別を行うようにしても良い。
【００３８】
（Ｃ−２：変形例２）
上述した実施形態では、入力された画像データの両端に所定の画素値を有する画素を、ウィンドウ処理にて損失する画素数の半分以上ずつ付加し、さらに、ダミー画素を付加して主走査方向の画素数がパック数の最大値Ｎの倍数になるようにする場合について説明したが、ウィンドウ処理にて損失する画素数の半分以上の値であって、かつ、パック数の最大値Ｎの整数倍である数分の上記所定の画素値を有する画素を付加して主走査方向の画素数を調節するようにしても良い。このようにすると、例えば、１画素ずつシフトしたデータをＳＩＭＤ演算レジスタに格納する必要がある処理において、ＳＩＭＤ演算を効率良く実行することが可能になる。具体的には、パック数が４である３つのＳＩＭＤ演算レジスタを用いて、３×３ウィンドウ内で、上下行の画素値の和の差を求める処理を行う場合には、図８（ａ）に示すように、ウィンドウ処理にて損失する画素数の半分以上の値であって、かつ、パック数の最大値Ｎの整数倍個（本変形例では、１倍、すなわち、４個）分の画素を処理対象である画素配列の端部に付加することによって、各ＳＩＭＤ演算レジスタに１画素ずつシフトしたデータが読み込まれ、効率良く行の和を並列で演算することが可能になる。
【００３９】
（Ｃ−３：変形例３）
上述した実施形態では、画像読取装置１１０から引渡された画像データに所定の画像処理を施し、その処理結果を画像形成装置１３０へ引渡す場合について説明したが、その処理結果の出力先は画像形成装置に限定されるものではなく、例えば液晶ディスプレイなどの表示装置を備えたコンピュータ装置へ上記処理結果を引渡し、その処理結果に応じた画像を上記表示装置に表示させるようにしても良く、また、データベースを備えたコンピュータ装置に上記処理結果を引渡しそのデータベースに登録させるようにしても良い。
【００４０】
（Ｃ−４：変形例４）
上述した実施形態では、本発明に係る画像処理装置に特徴的な画像処理を制御部２１０に実行させるためのプログラムが不揮発性記憶部２３０ａに予め格納されている場合について説明した。しかしながら、例えばＣＤ−ＲＯＭ（Compact Disk- Read Only Memory）やＤＶＤ（Digital Versatile Disk）などのコンピュータ装置読み取り可能な記録媒体に、上記プログラムを記録して配布し、その記録媒体を用いて一般的なコンピュータ装置に上記プログラムをインストールするとしても良いことは勿論である。このようにすると、一般的なコンピュータ装置を本発明に係る画像処理装置として機能させることが可能になるといった効果を奏する。また、上述した実施形態では、本発明に係る画像処理装置に特徴的な各手段をソフトウェアモジュールで実現する場合について説明したが、ハードウェアモジュールで実現するとしても良いことは勿論である。
【図面の簡単な説明】
【００４１】
【図１】本発明の１実施形態に係る画像処理装置１２０を含んでいる画像処理システムの構成例を示す図である。
【図２】同画像処理装置１２０の構成例を示す図である。
【図３】属性判別の際に使用する基準パターンの一例を示す図である。
【図４】同画像処理装置１２０の不揮発性記憶部２３０ａに格納されているパック数管理テーブルの一例を示す図である。
【図５】同画像処理装置１２０の制御部２１０が実行する画像処理の流れを示すフローチャートである。
【図６】同画像処理の対象である画像の一例を示す図である。
【図７】２つのブロックに跨るウィンドウ処理について説明するための図である。
【図８】変形例２に係る処理を説明するための図である。
【符号の説明】
【００４２】
１１０…画像読取装置、１２０…画像処理装置、１３０…画像形成装置、２１０…制御部、２２０…ＩＦ部、２３０…記憶部、２３０ａ…不揮発性記憶部、２３０ｂ…揮発性記憶部、２４０…バス。
【図１】
2007087191.tif 000003
【図２】
2007087191.tif 000004
【図３】
2007087191.tif 000005
【図４】
2007087191.tif 000006
【図５】
2007087191.tif 000007
【図６】
2007087191.tif 000008
【図７】
2007087191.tif 000009
【図８】
2007087191.tif 000010