(57)【要約】【課題】高速な画像処理を実現することのできる画像処理装置の提供。【解決手段】画像データのうち、誤差拡散処理を行う必要がない領域を特定し、特定された領域を基準にして画像データを分割する。分割された画像データに対して誤差拡散処理を行う。【選択図】図１
2015033092.tif 000002
【特許請求の範囲】
【請求項１】
画像データのうち、誤差拡散処理を行う必要がない領域を特定する特定手段と、
前記特定手段により特定された領域を基準にして、前記画像データを分割する分割手段と、
前記分割手段により分割された画像データに対して誤差拡散処理を行う誤差拡散処理手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記特定手段は、前記画像データにおける画像の空白領域およびページ単位での区切り位置を特定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記特定手段は、前記画像データにおいて、一様に最大濃度の画像となる領域を特定することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記誤差拡散処理手段は、第１の誤差拡散処理部と、第２の誤差拡散処理部と、を有し、
前記第１の誤差拡散処理部および前記第２の誤差拡散処理部は、並列動作が可能であるように構成されていることを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記第２の誤差拡散処理部は、前記分割手段から前記第１の誤差拡散処理部が受け取る画像データとは別の画像データを受け取り、該別の画像データに対して誤差拡散処理を行うことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記特定手段により特定された領域の位置情報を記憶し、これに基づいてダイレクトメモリアクセスを行うことで、前記分割手段による分割を行う制御手段をさらに備えることを特徴とする請求項１〜５のいずれか１項に記載の画像処理装置。
【請求項７】
画像データのうち、誤差拡散処理を行う必要がない領域を特定する特定工程と、
前記特定工程により特定された領域を基準にして、前記画像データを分割する分割工程と、
前記分割工程により分割された画像データに対して誤差拡散処理を行う誤差拡散処理工程と、
を備えることを特徴とする画像処理方法。
【請求項８】
請求項１〜６のいずれか１項に記載の画像処理装置の各手段としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤差拡散処理を行う画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
誤差拡散処理は、画素の画素値と閾値との誤差を隣接画素に分散させる。誤差拡散処理を行うに当たっては、先のデータが後のデータに対して影響を及ぼすので、データをシリアルに処理しなくてはならず、処理に時間がかかる。そのため、誤差拡散処理の影響により、画像の大きさに比例して画像処理に時間がかかってしまっていた。
【０００３】
誤差拡散処理を高速で行うために、画像を複数の領域に区切り、各領域についての誤差拡散処理を並列して行なう画像処理装置および画像処理方法が知られている（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０６−３０１３６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、画像の区切り位置で通常の誤差拡散処理が不可能であるため、多重誤差拡散処理を使用しなければならず、処理が複雑になるという課題がある。
【０００６】
したがって、本発明の目的は、多重誤差拡散などの特別な処理を必要とせずに高速な画像処理を実現することのできる画像処理装置および画像処理方法を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するための本発明の画像処理装置は、画像データのうち、誤差拡散処理を行う必要がない領域を特定する特定手段と、前記特定手段により特定された領域を基準にして、前記画像データを分割する分割手段と、前記分割手段により分割された画像データに対して誤差拡散処理を行う誤差拡散処理手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明は、複雑な処理を用いることなく誤差拡散処理の時間を短縮することができる効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】画像処理装置の構成を示すブロック図である。
【図２】画像処理の流れを示すフローチャートである。
【図３】入力原稿の例を示す図である。
【図４】構成の違いによる処理時間の違いを示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しつつ、本発明の実施の形態について詳細に説明する。  
（第１の実施形態）
図１は、第１の実施形態の画像処理装置のブロック構成図である。図２は、第１の実施形態の画像処理の流れを示すフローチャートである。図１および図２を参照して、第１の実施形態の画像処理装置による画像処理を説明する。  画像処理装置は、図示しないＣＰＵと、ＲＯＭと、ＲＡＭを備える。さらに、本実施形態の画像処理装置は、読取部１、白バンド判定部２、入力データバッファ３、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）４，５，８，９、誤差拡散処理部６，７、ＤＭＡＣ制御部１０、および処理後データバッファ１１を備える。さらに、例えば、図示しない２次記憶装置、表示装置、入力装置、記録部などを備えている。これらは、制御バス／データバスにより相互に接続されている。
【００１１】
画像処理装置は、例えば、スキャナ機能、プリンタ機能、ファクシミリ機能等の複数の機能を備えた複合機（ＭＦＰ：Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ装置）である。ＣＰＵ（中央演算装置）は、所定の情報処理をプログラムに従って実行する。ＲＯＭは、ＣＰＵにより実行されるプログラムが記憶されている。ＲＡＭは、ＣＰＵによるプログラムの実行時に、各種情報を一時的に記憶するためのメモリを提供する。
【００１２】
ＤＭＡＣ制御部１０は、上述したＣＰＵが初期設定を行うことにより、ＣＰＵを介さずに動作する。読取部１、白バンド判定部２、入力データバッファ３、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）４，５，８，９、誤差拡散処理部６，７、及び処理後データバッファ１１は、ＤＭＡＣ制御部１０により制御される。
【００１３】
読取部１は、画像処理装置に入力される画像を読取る。
【００１４】
白バンド判定部２は、画像データにおける白バンドの領域を判定する。ここでいう白バンドとは、記録すべき画像データが存在しないライン状の空白部分をいう。白バンドとしては、例えば、画像内において記録すべき画像データ（目的画像）が存在しない空白部分、ページの区切り部分が挙げられる。本実施形態では、白バンド判定部２は、入力された画像データについて、ページ単位での区切り位置の検知や、画像内に存在するライン状の空白部分（白バンド)の判定を行い、白バンドで区切る。すなわち、白バンド判定部２は、画像データを白バンドの領域（空白領域）と、それ以外の領域とに分ける。
【００１５】
入力データバッファ３は、白バンド判定された画像データなどを格納する。
【００１６】
また、ＤＭＡＣ４，５は、バンド単位のデータを処理順に、誤差拡散処理部６及び７に振り分ける。ＤＭＡＣ８，９は、誤差拡散処理された画像データを、元の原稿と同じ並び順になるように制御を行う。
【００１７】
誤差拡散処理部６，７は、画像データに対して誤差拡散処理を行う。誤差拡散処理は、濃度保存法の一つであり、中間調画像の再現性が高い。本実施形態では、第１の誤差拡散処理部６と、第２の誤差拡散処理部７を並列に動作させて、複数列（本実施形態では２列）の誤差拡散処理を並行して行う。すなわち、誤差拡散処理部６，７は、画像データのうち異なる列（異なる領域）の誤差拡散処理を実行する。
【００１８】
処理後データバッファ１１は、誤差拡散処理後の画像データを格納する。このとき、詳細は後述するが、ＤＭＡＣ制御部１０によって保持されている画像ブロックの先頭位置および終了位置の座標情報をもとに、画像データが整列されて格納される。また、図示しない２次記憶装置は、ハードディスク等であり、画像ファイルや画像解析結果を保存するデータベース等を保存するための記憶媒体である。表示装置は、例えば、ディスプレイであり、処理結果やＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等をユーザに提示する装置である。表示装置は、タッチパネル機能を備えても良い。入力装置は、ユーザが画像補正の処理の指示等を入力するためのマウスやキーボード等である。
【００１９】
なお、複合機はさらにインターネット上に接続され、無線ＬＡＮ経由でプリントデータのやり取りをすることもできるようにしてもよい。
【００２０】
図２は、ＤＭＡＣ制御部が実行する処理のフローチャートである。
ステップＳ１０１において、画像処理装置における画像読取動作が開始される。読取部１は、画像処理装置に入力される原稿２０を、単ページ単位でまたは複数ページまとめて読み取る。読み取られた原稿は読み取られたライン毎に順に画像データとしてバンド判定部２へ入力される。  ステップＳ１０２において、読取部１によって読み取られたラインが、入力される原稿の最終ラインであるか否かを判定する。最終ラインである場合は、ステップＳ１０３へ進み、読取動作を終了する。最終ラインでない場合は、ステップＳ１０４へ進み、バンド判定処理を行う。白バンド判定部２は、入力された画像データについて、白バンドの領域を判定する。本実施形態では、ページ単位での区切り位置の検知や、画像内に存在するライン状の空白部分の判定を行う。白バンド領域、すなわち、ページの区切り位置や画像内の空白部分は、記録すべき画像（目的画像）のデータが存在しない領域であるため、誤差拡散処理を行う必要がない。入力された画像データは、白バンド判定処理により、画像データを白バンドの領域と、それ以外の領域とに分け、さらに、それ以外の領域を画像ブロック単位に分ける。なお、ここでいう「それ以外の領域」とは、誤差拡散処理を行う必要のある、記録すべき画像（目的画像）のデータが存在する領域である。
【００２１】
ステップＳ１０３およびステップＳ１０４の結果として、画像ブロックの先頭位置および終了位置の座標データが得られる。これらのデータは、ステップＳ１０５において、ＤＭＡＣ制御部１０の区切り位置データメモリ内に格納される。本実施形態において、区切り位置データメモリには、区切り位置であるラインの位置情報が記憶される。
【００２２】
一方、読み取られた画像データは、ステップＳ１０４において白バンド判定がされた後に、ステップＳ１０６において、入力データバッファ３に格納される。
【００２３】
次いでステップＳ１０７において、ＤＭＡＣ制御部１０は、白バンドの判定をもとに、画像ブロックのデータが全て入力されたか否かを検知する。画像ブロックのデータが全て入力されるまで、ステップＳ１０６およびステップＳ１０７を繰り返す。ステップＳ１０７において、画像ブロックのデータが全て入力されたことを検知すると、ステップＳ１０８に進む。
【００２４】
ステップＳ１０８では、第１の誤差拡散処理部６が待機中であるか否かを確認する。第１の誤差拡散処理部６がデータ待ちの状態、すなわち待機中である場合は、ステップＳ１１０に進む。ステップＳ１１０では、ＤＭＡＣ制御部１０は、第１のＤＭＡＣ４に対して、処理する画像ブロックの先頭位置の座標と終了位置の座標とを送り、動作開始命令を出して、第１の誤差拡散処理部６により画像データに対して誤差拡散処理を行う。ステップＳ１０８において第１の誤差拡散処理部６が待機中ではない場合、すなわち駆動中である場合は、ステップＳ１０９に進む。
【００２５】
ステップＳ１０９では、第２の誤差拡散処理部７が待機中であるか否かを確認する。第２の誤差拡散処理部７がデータ待ちの状態、すなわち待機中である場合は、ステップＳ１１１に進む。ステップＳ１１１では、ＤＭＡＣ制御部１０は、第２のＤＭＡＣ５に対して、処理する画像ブロックの先頭位置の座標と終了位置の座標とを送り、動作開始命令を出して、第２の誤差拡散処理部７により画像データに対して誤差拡散処理を行う。ステップＳ１０９において第２の誤差拡散処理部７が駆動中である場合は、ステップＳ１０８に戻る。
【００２６】
すなわち、第１の誤差拡散処理部６および第２の誤差拡散処理部７は、並列動作が可能であるように構成されている。第１の誤差拡散処理部６および第２の誤差拡散処理部７の稼働状況を確認し、いずれもが稼働中であった場合には、待機して、どちらかの誤差拡散処理部が処理終了後にデータ待ちになるまで監視を行う。どちらかがデータ待ちになった後に、データ待ちとなった誤差拡散処理部に対して画像データの入力を開始する。
【００２７】
ステップＳ１１０において第１の誤差拡散処理部６により誤差拡散処理が行われた処理後の画像データは、ステップＳ１１２において、データの整列が行われる。すなわち、誤差拡散処理後の画像データは、ＤＭＡＣ制御部１０によって保持されている画像ブロックの先頭位置および終了位置の座標情報をもとに、処理後データバッファ１１へと格納される。このとき、区切り位置データメモリ内に格納された画像ブロックの区切り位置であるラインの情報を参照することで、画像ブロック毎に処理された画像データを、元の画像位置に戻すことが可能である。画像ブロック毎に処理された画像データは、元どおりの画像位置に戻るように、処理後データバッファ１１へと出力される。
【００２８】
ステップＳ１１３において、全てのデータについての処理が終了したか否かを判断する。全てのデータについての処理が終了するまで、ステップＳ１０７に戻り、処理を継続する。このようにして画像ブロックのデータに対する誤差拡散処理を繰り返し、ステップＳ１１３において全てのデータについての処理が終了したと判断されたら、本フローの画像処理を終了する。
【００２９】
図３は、画像処理装置に入力される原稿の例を示している。白バンド部分２１，２３，２５，２７，２９は、文字原稿や複数の画像がレイアウトされている原稿における記録すべき画像のデータが存在しない部分に相当する。これらの白バンド部分は、データの空白部分であり、誤差拡散処理が行われる必要がないため、誤差拡散処理のデータを保持する必要がない。誤差拡散処理のデータを必要とする部分は、画像ブロック２２，２４，２６，２８のそれぞれである。このように、画像ブロック間、すなわちバンド部分ではデータを保持する必要がないため、画像を画像ブロック毎に分割して誤差拡散処理を行うことが可能である。本実施形態では、白バンド判定部２は、上述した白バンド部分２１，２３，２５，２７，２９と、画像ブロック２２，２４，２６，２８とに画像データを分割する。
【００３０】
図４（ａ）〜（ｃ）は、画像処理全体に必要な処理時間を表したものである。横軸は時間であり、複数の処理のそれぞれに掛かる時間の長さ、およびそれらの処理間の時間関係（開始時間、終了時間の関係）等が示されている。
【００３１】
図４（ａ）は、従来の画像処理装置の処理の説明図を示す。従来は、画像を誤差拡散処理部と同じ数に均等の大きさに分割していた。誤差拡散処理部を３つ備える場合、図４（ａ）に示すように、均等の大きさの画像ａ，ｂ，ｃに分割していた。この例の構成によると、画像の読み取りを終えた順に誤差拡散処理を行うため、時間に無駄が無いように見える。しかしながら、誤差拡散処理部の稼働率は低い。また、別々に誤差拡散処理を行った後に画像間を繋ぎ合わせる処理が必要となる。したがって、全体の処理時間はさらに掛かる。
【００３２】
図４（ｂ）は、白バンドを除いて画像がブロック毎に区切られている場合であって、誤差拡散処理部が１つのみの場合を示す図である。この場合、処理が必要ない白バンド部分には誤差拡散処理を実行せず、画像の記録すべき画像のデータが存在する領域に誤差拡散処理を実行することで処理時間を低減させることができる。さらに、誤差拡散処理を行った後に画像間をつなぎ合わせる必要がなく、処理時間を低減させることができる。ただし、誤差拡散処理に読み取りよりも長い時間が必要であるため、画像処理全体の処理に時間が掛かる。
【００３３】
図４（ｃ）は、本実施形態の画像処理を表したものである。白バンドにより画像がブロック毎に区切られている。この場合、処理が必要ない白バンド部分には誤差拡散処理を実行せず、画像の記録すべき画像のデータが存在する領域に誤差拡散処理を実行することで処理時間を低減させることができる。さらに、誤差拡散処理を行った後に画像間をつなぎ合わせる必要がなく、処理時間を低減させることができる。ここで、本実施形態では、画像ブロック毎に、処理を行っていない待機中の状態の誤差拡散処理部を順次割り当てている。そのため、本実施形態の構成によれば、誤差拡散処理部を効率良く使うことができ、画像処理全体に掛かる時間が短縮される。
【００３４】
上述したように、処理が必要ない白バンド部分には誤差拡散処理を実行せず、画像の記録すべき画像のデータが存在する領域に誤差拡散処理を実行することで処理時間を低減させることができる。さらに、誤差拡散処理を行った後に画像間をつなぎ合わせる必要がなく、処理時間を低減させることができる。
【００３５】
さらに、本実施形態では、画像ブロック毎に、処理を行っていない待機中の状態の誤差拡散処理部を順次割り当てることで、誤差拡散処理部を効率良く行うことができる。
【００３６】
（第２の実施形態）
本実施形態では、第１の実施形態と同様の構成については説明を省略する。
【００３７】
本実施形態では、図３に示す画像１の画像ブロック２２についてのバンド始点３０およびバンド終点３１は、ライン位置として示すことにより、２次元の座標で表現できる。第１の実施形態では、バンド判定処理によってライン状の空白部分（白バンド)を見出すことにより、画像ブロックを入力された画像データから切り分けて形成した。また、画像ブロックの区切り位置であるラインの位置情報を参照することで、画像ブロック毎に処理された画像データを元の画像位置となるように統合した。これに対し、第２の実施形態は、画像ブロックについてのバンド始点およびバンド終点の位置の座標の値を、２次元の座標で表現する。図３の例では、２次元の座標で表現されたバンド始点３０の位置座標が画像１についての画像ブロック２２の先頭位置の座標となり、バンド終点３１の位置座標が終了位置の座標となる。２次元の座標を使用することにより、入力された画像データからの画像ブロックの切り分けと統合とが可能となる。第２の実施形態によれば、写真画像などを複数枚貼り付けたレイアウト画像についても、誤差拡散の並列処理が可能である。また、単位画像ブロックをさらに細かく分けることにより、誤差拡散処理部のリソースを効率よく有効活用することができる。
【００３８】
（第３の実施形態）
本実施形態では、第１の実施形態と同様の構成については説明を省略する。
【００３９】
記録すべき画像のデータが存在しない白バンド部分は、誤差拡散処理を行う必要がないため、誤差拡散処理のデータを保持する必要がない。これに対し、画像が黒いベタ画像（黒バンド）である場合にも、誤差拡散処理を行う必要がないため、誤差拡散処理のデータを保持する必要がない。ここで、黒いベタ画像とは、バンド内の画像が全て一様の最大濃度の黒である画像のことを指す。そのため、第３の実施形態においては、バンド判定処理により黒バンドを判定して、その位置を基準として、入力された画像データから画像ブロックの領域を特定し切り分けを行う。そして、黒バンド部分には誤差拡散処理を実行せずに、黒バンド以外の領域に誤差拡散処理を実行する。  第３の実施形態によっても、第１の実施形態と同様の効果を得ることができる。すなわち、第３の実施形態では、誤差拡散処理が必要ない黒バンド部分には誤差拡散処理を実行せず、それ以外の領域に誤差拡散処理を実行することで処理時間を低減させることができる。
【００４０】
誤差拡散処理部を効率良く使うことができ、画像処理全体に掛かる時間が短縮される。
【００４１】
なお、ここでは、「黒いベタ画像」を例に挙げて説明したが、他の色のベタ画像、すなわち、バンド内の画像が全て、ある色の最大濃度である画像についても同様である。
【００４２】
（他の実施形態）
以上説明した実施例は本発明の効果を得るための一手段であり、類似の別手法を用いたり、異なるパラメータを用いたとしても、本発明と同等の効果が得られる場合は、本発明の範疇に含まれる。
【００４３】
例えば、バンド判定処理を行う場合に、白バンド判定と黒バンド判定のいずれか一方のみではなく、白バンド判定と黒バンド判定の両方を行うようにしてもよい。この場合は、
画像ブロックの切り分けを、白バンドおよび黒バンドの両方により行い、白バンドおよび黒バンドのいずれの場合も誤差拡散処理を実行しない。そして、白バンド及び黒バンドのいずれにも該当しない領域に対して誤差拡散処理を実行する。これにより、処理時間を低減させることができる。
【００４４】
また、図４（ｃ）では、複数の誤差拡散処理部が、それぞれ異なるブロック（画像１ａ、２ａ、３ａ、４ａ）の処理を行う場合について説明したが、これに限定されるものではない。すなわち、複数の誤差拡散処理部が、それぞれ同じブロックの異なる列の処理を行うようにしてもよい。この場合も、上述した実施形態と同様の効果を得ることができる。
【００４５】
本発明において、誤差拡散処理部の数は２つ以上であればよいが、より多くの数の誤差拡散処理部を用いることで、画像処理のさらなる高速化が期待できる。
【００４６】
上述した実施形態では、ＤＭＡＣ及びＤＭＡＣ制御部により、画像処理を実行するものとしたが、これに限定されず、ＣＰＵやＭＰＵが画像処理を実行するようにしてもよい。
【００４７】
上述した実施形態では、画像処理装置として複合機を例に挙げて説明したが、これに限定されるものではない。例えば、パーソナルコンピュータ（ＰＣ）、プリンタ、複写機、ファクシミリ装置、携帯電話、ＰＤＡ、画像ビューワー、デジタルカメラ、などの画像処理を行う装置において、本発明を適用可能である。
【００４８】
また、本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、プリンタ、複写機、ファクシミリ装置等）に適用しても良い。
【００４９】
上述した実施形態は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、プログラムは、１つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、一部又は全部をハードウェアによって実現するようにしてもよい。
【符号の説明】
【００５０】
１  読取部
２  バンド判定部
３  入力データバッファ
４  第１のＤＭＡＣ
５  第２のＤＭＡＣ
６  第１の誤差拡散処理部
７  第２の誤差拡散処理部
８  第３のＤＭＡＣ
９  第４のＤＭＡＣ
１０  ＤＭＡＣ制御部
１１  処理後データバッファ
２０  入力原稿
２１、２３、２５、２７、２９  白バンド部
２２、２４、２６、２８  画像ブロック
３０  バンド始点
３１  バンド終点
【図１】
2015033092.tif 000003
【図２】
2015033092.tif 000004
【図３】
2015033092.tif 000005
【図４】
2015033092.tif 000006