(57)【要約】【課題】  回転処理後のバンドの演算効率や記憶領域の使用効率の低下を抑制する。【解決手段】  リード回路２ｂは、入力画素ブロックをラインバッファー３ａに出力する。演算処理回路３は、ラインバッファー３ａから入力画素ブロックを読み出し回転処理を実行して出力画素ブロックを導出する。他方、コントローラー５は、入力画素座標系において、出力画素ブロックが入力バンドに収まるように、出力ブロック高を出力バンド高の整数分の１から最も大きいものに設定し、入力画素座標系において入力画素ブロック最大幅に収まるように出力画素ブロックの幅を伸ばし、入力画素座標系における出力画素ブロックのサイズやラインバッファー３ａの画素ライン数に応じて出力画素ブロックの幅を縮め、出力画素ブロックのサイズに基づいてリード回路２ｂに入力画素ブロックのサイズを設定する。【選択図】  図１
2020005075.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を分割して得られる入力バンドを記憶する入力バンドバッファーと、
前記入力バンドバッファーに記憶されている前記入力バンドから入力画素ブロックを読み出し所定画素ライン数のラインバッファーに出力するリード回路と、
出力バンドを記憶する出力バンドバッファーと、
前記ラインバッファーから前記入力画素ブロックの画素ラインを読み出して前記入力画素ブロックに対して回転処理を実行して出力画素ブロックを導出し前記出力バンドの一部として前記出力バンドバッファーに記憶する演算処理回路と、
前記回転処理の回転角度に応じて、前記出力画素ブロックのサイズを決定し、前記出力画素ブロックのサイズに基づいて、前記リード回路に前記入力画素ブロックのサイズを設定するコントローラーとを備え、
前記コントローラーは、（ａ）前記出力画素ブロックのサイズを決定するブロックサイズ決定処理を実行し、（ｂ）前記ブロックサイズ決定処理において、（ｂ１）入力画素座標系において前記出力画素ブロックが前記入力バンドに収まるように、前記出力画素ブロックの出力ブロック高を、前記出力バンドの出力バンド高の整数分の１から最も大きいものに設定し、（ｂ２）前記入力画素座標系において、前記入力画素ブロックの所定最大幅に収まるように、前記出力画素ブロックの幅を伸ばし、（ｂ３）前記入力画素座標系において、前記出力画素ブロックの幅を伸ばした後の前記出力画素ブロックが前記入力バンドに収まらない場合には、前記出力画素ブロックが前記入力バンドに収まりかつ前記出力画素ブロックの幅が最も大きくなるように、前記出力画素ブロックの幅を縮め、（ｂ４）入力画素座標系において、前記出力画素ブロックの１画素ラインに対応する前記入力画素ブロックの画素ライン数が前記ラインバッファーの前記画素ライン数を超えている場合には、前記出力画素ブロックの幅を縮めた後の前記出力画素ブロックの１画素ラインに対応する前記入力画素ブロックの画素ライン数が前記ラインバッファーの前記画素ライン数以下になるように、前記出力画素ブロックの幅を縮め、（ｂ５）前記出力画素ブロックの出力ブロック高および前記出力画素ブロックの幅に基づいて、前記リード回路に前記入力画素ブロックのサイズを設定すること、
を特徴とする画像処理装置。
【請求項２】
前記演算処理回路は、前記回転処理とともにフィルター処理を実行し、
前記コントローラーは、前記ブロックサイズ決定処理において、（ｂ１）前記入力画素座標系において、前記フィルター処理のフィルターサイズに応じた前記出力画素ブロックの周辺領域および前記出力画素ブロックが前記入力バンドに収まるように、前記出力画素ブロックの出力ブロック高を、前記出力バンドの出力バンド高の整数分の１から最も大きいものに設定し、（ｂ２）前記入力画素座標系において、前記周辺領域および前記出力画素ブロックが前記入力画素ブロックの所定最大幅に収まるように、前記出力画素ブロックの幅を伸ばし、（ｂ３）前記入力画素座標系において、前記出力画素ブロックの幅を伸ばした後の前記周辺領域および前記出力画素ブロックが前記入力バンドに収まらない場合には、前記周辺領域および前記出力画素ブロックが前記入力バンドに収まりかつ前記出力画素ブロックの幅が最も大きくなるように、前記出力画素ブロックの幅を縮め、（ｂ４）前記周辺領域および前記出力画素ブロックの１画素ラインに対応する前記入力画素ブロックの画素ライン数が前記ラインバッファーの前記画素ライン数を超えている場合には、前記出力画素ブロックの幅を縮めた後の前記周辺領域および前記出力画素ブロックの１画素ラインに対応する前記入力画素ブロックの画素ライン数が前記ラインバッファーの前記画素ライン数以下になるように、前記出力画素ブロックの幅を縮め、（ｂ５）前記出力画素ブロックの出力ブロック高および前記出力画素ブロックの幅に基づいて、前記リード回路に前記入力画素ブロックのサイズを設定すること、
を特徴とする請求項１記載の画像処理装置。
【請求項３】
前記ブロックサイズ決定処理において、前記出力画素ブロックの出力ブロック高および幅の初期値は、互いに同一であることを特徴とする請求項１または請求項２記載の画像処理装置。
【請求項４】
前記入力画素ブロックの高さは、前記入力バンドの高さ以下であり、
前記出力画素ブロックの高さは、前記出力バンドの高さ以下であり、
前記出力バンドにおける前記出力画素ブロックは、互いにオーバーラップせず、
前記入力バンドにおける前記入力画素ブロックは、互いにオーバーラップすること、
を特徴とする請求項１から請求項３のうちのいずれか１項記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関するものである。
【背景技術】
【０００２】
ある画像処理装置は、入力画像（ページ画像）から入力画素ブロックを抽出し、その画素ブロックを回転させることで、回転補正された出力画素ブロックを得ている（例えば特許文献１参照）。その際、その画像処理装置では、入力画素ブロックのサイズがメモリー容量などに基づいて設定され、入力画素ブロックのサイズから出力画素ブロックのサイズが特定されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１７５４６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
画像処理装置において、回転後の画像に対してバンドごとにハードウェア（つまり専用回路）で画像処理を施す場合、バンドの演算効率や記憶領域の使用効率の観点から、出力画素ブロックの高さは出力バンド高の整数分の１であることが好ましい。
【０００５】
しかしながら、上述の画像処理装置では、まず、入力画素ブロックのサイズが決定され、それに伴い、入力画素ブロックのサイズに従って出力画素ブロックのサイズが決定されているため、出力画素ブロックの高さが出力バンド高の整数分の１とならず、バンドの演算効率や記憶領域の使用効率が低下する可能性がある。
【０００６】
本発明は、上記の問題に鑑みてなされたものであり、回転処理後のバンドの演算効率や記憶領域の使用効率の低下を抑制する画像処理装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る画像処理装置は、入力画像を分割して得られる入力バンドを記憶する入力バンドバッファーと、前記入力バンドバッファーに記憶されている前記入力バンドから入力画素ブロックを読み出し所定画素ライン数のラインバッファーに出力するリード回路と、出力バンドを記憶する出力バンドバッファーと、前記ラインバッファーから前記入力画素ブロックの画素ラインを読み出して前記入力画素ブロックに対して回転処理を実行して出力画素ブロックを導出し前記出力バンドの一部として前記出力バンドバッファーに記憶する演算処理回路と、前記回転処理の回転角度に応じて、前記出力画素ブロックのサイズを決定し、前記出力画素ブロックのサイズに基づいて、前記リード回路に前記入力画素ブロックのサイズを設定するコントローラーとを備える。そして、前記コントローラーは、（ａ）前記出力画素ブロックのサイズを決定するブロックサイズ決定処理を実行し、（ｂ）前記ブロックサイズ決定処理において、（ｂ１）入力画素座標系において、前記出力画素ブロックが前記入力バンドに収まるように、前記出力画素ブロックの出力ブロック高を、前記出力バンドの出力バンド高の整数分の１から最も大きいものに設定し、（ｂ２）前記入力画素座標系において、前記入力画素ブロックの所定最大幅に収まるように、前記出力画素ブロックの幅を伸ばし、（ｂ３）前記入力画素座標系において、前記出力画素ブロックの幅を伸ばした後の前記出力画素ブロックが前記入力バンドに収まらない場合には、前記出力画素ブロックが前記入力バンドに収まりかつ前記出力画素ブロックの幅が最も大きくなるように、前記出力画素ブロックの幅を縮め、（ｂ４）前記出力画素ブロックの１画素ラインに対応する前記入力画素ブロックの画素ライン数が前記ラインバッファーの前記画素ライン数を超えている場合には、前記出力画素ブロックの幅を縮めた後の前記出力画素ブロックの１画素ラインに対応する前記入力画素ブロックの画素ライン数が前記ラインバッファーの前記画素ライン数以下になるように、前記出力画素ブロックの幅を縮め、（ｂ５）前記出力画素ブロックの出力ブロック高および前記出力画素ブロックの幅に基づいて、前記リード回路に前記入力画素ブロックのサイズを設定する。
【発明の効果】
【０００８】
本発明によれば、回転処理後のバンドの演算効率や記憶領域の使用効率の低下を抑制する画像処理装置が得られる。
【０００９】
本発明の上記又は他の目的、特徴および優位性は、添付の図面とともに以下の詳細な説明から更に明らかになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の実施の形態に係る画像処理装置の構成を示すブロック図である。
【図２】図２は、入力画素座標系における入力画素ブロックおよび出力画素ブロックの対応関係を説明する図である。
【図３】図３は、入力バンドにおける入力画素ブロックのサイズおよび出力バンドにおける出力画素ブロックのサイズを説明する図である。
【図４】図４は、実施の形態１における入力バンド高による制限に基づく出力ブロック高の選択について説明する図である。
【図５】図５は、実施の形態１における入力画素ブロックの最大幅による制限に基づく出力画素ブロックの幅の設定について説明する図である。
【図６】図６は、実施の形態１における入力バンド高による制限に基づく出力画素ブロックの幅の縮小について説明する図である。
【図７】図７は、実施の形態１におけるラインバッファー高による制限に基づく出力画素ブロックの幅の縮小について説明する図である。
【図８】図８は、実施の形態１に係る画像処理装置の動作を説明するフローチャートである。
【図９】図９は、実施の形態２におけるブロックサイズ決定処理について説明する図である。
【発明を実施するための形態】
【００１１】
以下、図に基づいて本発明の実施の形態を説明する。
【００１２】
実施の形態１．
【００１３】
図１は、本発明の実施の形態に係る画像処理装置の構成を示すブロック図である。図１に示す画像処理装置は、例えば、スキャナー、コピー機、ファクシミリ機、複合機などであって、原稿から原稿画像を光学的に読み取り、ハードウェア処理で、その原稿画像を回転させる。
【００１４】
図１に示す画像処理装置は、画像読取部１、ブロック出力部２、演算処理回路３、出力バンドバッファー４、およびコントローラー５を備える。
【００１５】
画像読取部１は、プラテングラス、自動原稿送り器、画像読取光学系、撮像素子、画像データ生成回路などを備え、プラテングラスに載置された原稿、または自動原稿送り器により搬送されてきた原稿の原稿画像を、画像読取光学系によって撮像素子に撮像させ、画像データ生成回路によって、撮像素子により読み取られた原稿画像（入力画像）の画像データを出力する。ここでは、撮像素子はラインセンサーであり、画像読取部１は、１画素ラインずつ入力画像の画像データを出力する。
【００１６】
画像読取部１は、自動原稿送り器により搬送されてきた原稿から原稿画像を読み取る第１モード、および、プラテンガラスに載置された原稿から原稿画像を読み取る第２モードを動作モードとして実行可能である。
【００１７】
例えば、自動原稿送り器は、自動原稿送り器に原稿がセットされたことを検知するセンサーを備え、画像読取部１は、そのセンサーにより原稿が検出された場合には、第１モードで画像読取を実行し、そうではない場合には、第２モードで画像読取を実行する。
【００１８】
ブロック出力部２は、画像読取部１から出力される画像データを入力画像の１画素ラインずつ受け付け、入力バンドバッファー２ａに記憶し、リード回路２ｂで入力バンドバッファー２ａから入力画素ブロックを順番に読み出し、出力する。
【００１９】
具体的には、入力バンドバッファー２ａは、入力画像（ここではページ画像）を分割して得られる１または複数の入力バンド（所定数の画素ライン）を記憶する。また、リード回路２ｂは、入力バンドバッファー２ａに記憶されている入力バンドから入力画素ブロックを読み出し、１画素ラインずつ順番に所定画素ライン数のラインバッファー３ａに出力する。
【００２０】
演算処理回路３は、ラインバッファー３ａから入力画素ブロックの画素ラインを順番に読み出して入力画素ブロックに対して演算部３ｂで（任意角度で）回転処理を実行して出力画素ブロックを導出し出力バンドの一部として出力バンドバッファー４に記憶する。
【００２１】
出力バンドバッファー４は、１または複数の出力バンド（所定数の画素ライン）を記憶する。図示せぬ後段の画像処理回路は、出力バンドバッファー４から画像データを順次読み出して、所定の画像処理を実行する。
【００２２】
例えば、ラインバッファー３ａは、図示せぬスタティックＲＡＭにおいて確保されたメモリー領域である。ラインバッファー３ａは、所定のＮ本（Ｎ＞１）の画素ラインの画像データを記憶するのに十分なメモリー領域を有する。
【００２３】
また、例えば、入力バンドバッファー２ａおよび出力バンドバッファー４は、図示せぬスタティックＲＡＭまたはダイナミックＲＡＭにおいて確保されたメモリー領域である。
【００２４】
コントローラー５は、画像読取部１、ブロック出力部２、演算処理回路３などを制御する。特に、コントローラー５は、上述の画像ブロックのブロックサイズを回転角度に応じた値に設定する。ここで、回転角度は、ユーザーにより任意の角度に設定されてもよいし、既知の方法で読取画像から自動的に検出される原稿画像（入力画像）の傾き角をゼロにするように自動的に設定されるようにしてもよい。
【００２５】
具体的には、コントローラー５は、上述の回転処理の回転角度に応じて、まず出力画素ブロックのサイズ（副走査方向の高さと主走査方向の幅）を決定して演算処理回路３に設定し、その出力画素ブロックのサイズに対応する入力画素ブロックのサイズを特定しリード回路２ｂに設定する。
【００２６】
その際、コントローラー５は、出力画素ブロックのサイズを決定するブロックサイズ決定処理を実行する。
【００２７】
図２は、入力画素座標系における入力画素ブロックおよび出力画素ブロックの対応関係を説明する図である。図３は、入力バンドにおける入力画素ブロックのサイズおよび出力バンドにおける出力画素ブロックのサイズを説明する図である。演算処理回路３での回転処理のため、入力画素ブロックは出力画素ブロックより大きくする必要がある。また、入力画素ブロックのサイズは、出力画素ブロックのサイズに応じて決定され、入力画素ブロック内の画素のうち、出力画素ブロックの画素値の導出に寄与しない画素が少ないほど、入力画素ブロックの記憶効率などが良好となる。また、図３に示すように、回転処理に起因して入力画素ブロックのサイズは出力画素ブロックのサイズより大きくなるため、互いに隣接する入力画素ブロックは、互いにオーバーラップする。
【００２８】
具体的には、コントローラー５は、ブロックサイズ決定処理において、まず、入力画素座標系において出力画素ブロックが入力バンドに収まるように、出力画素ブロックの出力ブロック高（つまり、出力画素ブロックの画素ライン数）を、出力バンドの出力バンド高（つまり、出力バンドの画素ライン数）の整数（正数）分の１から最も大きいものに設定する。
【００２９】
図４は、実施の形態１における入力バンド高による制限に基づく出力ブロック高の選択について説明する図である。
【００３０】
まず、コントローラー５は、出力ブロック高を出力バンド高と同一にし（つまり出力ブロック高を最大値とし）、演算処理回路３での回転角度に基づいて、その出力画素ブロックを図２に示すように入力画素座標系に写像し、図４に示すように高さ方向において入力バンド高に収まるか否かを判定する。このときの入力画素座標系に写像した出力画素ブロックが高さ方向において入力バンド高に収まれば、出力ブロック高を出力バンド高と同一に確定する。
【００３１】
なお、出力画素座標系から入力画素座標系への写像は、指定された回転角度に基づいて行われる。また、入力画素座標系での、写像された出力画素ブロックの各画素の位置は、サブピクセル単位（例えば１／６５５３６画素単位）で計算される。
【００３２】
一方、出力ブロック高を出力バンド高と同一にした場合、入力画素座標系に写像した出力画素ブロックが高さ方向において入力バンド高に収まらなければ、コントローラー５は、出力ブロック高を出力バンド高の２分の１にし、その出力画素ブロックを入力画素座標系に写像し、高さ方向において入力バンド高に収まるか否かを判定する。このときの入力画素座標系に写像した出力画素ブロックが高さ方向において入力バンド高に収まれば、出力ブロック高を、出力バンド高の２分の１に確定する。
【００３３】
一方、出力ブロック高を出力バンド高の２分の１にした場合、入力画素座標系に写像した出力画素ブロックが高さ方向において入力バンド高に収まらなければ、コントローラー５は、出力ブロック高を出力バンド高の３分の１にし、その出力画素ブロックを入力画素座標系に写像し、高さ方向において入力バンド高に収まるか否かを判定する。このときの入力画素座標系に写像した出力画素ブロックが高さ方向において入力バンド高に収まれば、出力ブロック高を、出力バンド高の３分の１に確定する。
【００３４】
以下同様にして、入力画素座標系に写像した出力画素ブロックが高さ方向において入力バンド高に収まるまで出力ブロック高を減らしていき、入力画素座標系に写像した出力画素ブロックが高さ方向において入力バンド高に収まったときの出力ブロック高が選択される。
【００３５】
例えば図３に示す場合では、出力ブロック高は、出力バンド高の２分の１とされている。なお、図３では、出力画素ブロックの幅は、出力ブロック高と同一とされている。
【００３６】
図５は、実施の形態１における入力画素ブロックの最大幅による制限に基づく出力画素ブロックの幅の設定について説明する図である。
【００３７】
ブロックサイズ決定処理において、次に、コントローラー５は、図５に示すように、入力画素座標系において、入力画素ブロックの所定最大幅に収まるように、出力画素ブロックの幅（画素数）を伸ばす。つまり、コントローラー５は、入力画素座標系において、幅方向において入力画素ブロックの所定最大幅に収まる範囲内で、出力画素ブロックの幅を最大にする。
【００３８】
なお、入力画素ブロックの所定最大幅（画素数）は、ハードウェアの構成（例えば、後段の演算処理回路３のラインバッファー３ａの幅（つまり、１画素ラインについて画素値を記憶可能な画素数））によって決められる。
【００３９】
図６は、実施の形態１における入力バンド高による制限に基づく出力画素ブロックの幅の縮小について説明する図である。
【００４０】
ブロックサイズ決定処理において、次に、コントローラー５は、図６に示すように、入力画素座標系において、出力画素ブロックの幅を伸ばした後の出力画素ブロックが入力バンドに収まらない場合には、出力画素ブロックが入力バンドに収まりかつ出力画素ブロックの幅が最も大きくなるように、出力画素ブロックの幅を縮める。
【００４１】
具体的には、出力画素ブロックの幅を伸ばした後の出力画素ブロックが、入力画素座標系の高さ方向において入力バンド高に収まらない場合、上述のように出力画素ブロックの幅が縮められる。
【００４２】
なお、出力画素ブロックの幅を伸ばした後の出力画素ブロックが、入力画素座標系の高さ方向において入力バンド高に収まる場合には、ここでは、コントローラー５は、上述のように出力画素ブロックの幅を縮めず、そのままの幅とする。
【００４３】
図７は、実施の形態１におけるラインバッファー高による制限に基づく出力画素ブロックの幅の縮小について説明する図である。
【００４４】
ブロックサイズ決定処理において、次に、コントローラー５は、図７に示すように、現時点のサイズでの出力画素ブロックの１画素ラインに対応する入力画素ブロックの画素ライン数（つまり、回転処理で出力画素ブロックの１画素ラインを得るのに必要な入力画素ブロックの画素ライン数）がラインバッファー３ａの画素ライン数（ラインバッファー高）を超えている場合には、出力画素ブロックの幅を、出力画素ブロックの１画素ラインに対応する入力画素ブロックの画素ライン数がラインバッファーの画素ライン数以下になるように縮める。
【００４５】
なお、現時点のサイズでの出力画素ブロックの１画素ラインに対応する入力画素ブロックの画素ライン数がラインバッファー３ａの画素ライン数を超えていない場合には、ここでは、コントローラー５は、上述のように出力画素ブロックの幅を縮めず、そのままの幅とする。
【００４６】
そして、コントローラー５は、このようにして設定した出力画素ブロックのサイズ（出力ブロック高および出力画素ブロックの幅）に基づいて、リード回路２ｂに入力画素ブロックのサイズを設定する。
【００４７】
ここで、ブロックサイズ決定処理において、出力画素ブロックの出力ブロック高および幅の初期値は、互いに同一とされる。
【００４８】
また、入力画素ブロックの高さは、入力バンドの高さ以下とされ、出力画素ブロックの高さは、出力バンドの高さ以下とされる。さらに、出力バンドにおける出力画素ブロックは、互いにオーバーラップせず、入力バンドにおける入力画素ブロックは、互いにオーバーラップする。
【００４９】
次に、上記画像処理装置の動作について説明する。図８は、実施の形態１に係る画像処理装置の動作を説明するフローチャートである。
【００５０】
コントローラー５は、当該画像処理装置が画像読取部１により生成された入力画像を処理する前に、指定された回転角度に基づき、以下のブロックサイズ決定処理を実行する。
【００５１】
コントローラー５は、まず、カウンターｉに初期値１をセットし（ステップＳ１）、出力ブロック高を出力バンド高のｉ分の１とした場合に入力画素座標系の高さ方向において出力画素ブロックが入力バンド高に収まるか否かを判定する（ステップＳ２）。
【００５２】
出力ブロック高を出力バンド高のｉ分の１とした場合に入力画素座標系の高さ方向において出力画素ブロックが入力バンド高に収まらない場合、コントローラー５は、カウンターｉを１だけ増加し（ステップＳ３）、ステップＳ２に戻る。
【００５３】
出力ブロック高を出力バンド高のｉ分の１とした場合に入力画素座標系の高さ方向において出力画素ブロックが入力バンド高に収まる場合、コントローラー５は、現時点のカウンターｉの値に基づき、出力ブロック高を出力バンド高のｉ分の１に設定する（ステップＳ４）。
【００５４】
次に、コントローラー５は、上述のように、入力画素ブロックの最大幅に応じて、出力画素ブロックの幅を伸ばす（ステップＳ５）。
【００５５】
そして、コントローラー５は、現時点のサイズ（高さおよび幅）の出力画素ブロックが入力画素座標系の高さ方向において入力バンド高に収まるか否かを判定する（ステップＳ６）。現時点のサイズの出力画素ブロックが入力画素座標系の高さ方向において入力バンド高に収まらない場合には、コントローラー５は、出力画素ブロックの幅を上述のように縮める（ステップＳ７）。
【００５６】
さらに、コントローラー５は、現時点のサイズ（高さおよび幅）の出力画素ブロックの１画素ラインに必要な入力画素ブロックの画素ライン数がラインバッファー３ａの画素ライン数を超えているか否かを判定する（ステップＳ８）。現時点のサイズの出力画素ブロックの１画素ラインに必要な入力画素ブロックの画素ライン数がラインバッファー３ａの画素ライン数を超えている場合、コントローラー５は、出力画素ブロックの幅を上述のように縮める（ステップＳ９）。
【００５７】
そして、コントローラー５は、このようにして設定された出力画素ブロックのサイズを演算処理回路３に設定するとともに、そのサイズの出力画素ブロックに必要な入力画素ブロックのサイズをリード回路２ｂに設定する（ステップＳ１０）。
【００５８】
このようにして、ブロックサイズ決定処理が実行された後、画像読取部１により生成された入力画像に対して、ブロック出力部２、演算処理回路３、および後段の画像処理部がパイプライン処理を行い、回転処理を含む画像処理が実行される。
【００５９】
その際、リード回路２ｂは、入力画素ブロックを１つずつ順番に選択し、入力バンドにおける、選択した入力画素ブロックの位置を回転角度に基づいて特定し、特定した入力画素ブロックの位置から順番に１画素ラインずつ入力画素ブロックを読み出しラインバッファー３ａに出力する。そして、演算部３ｂは、入力画素ブロックに対応する、出力バンドにおける出力画素ブロックの位置を特定し、ラインバッファー３ａから１画素ラインずつ入力画素ブロックを読み出し、回転処理を行い、出力画素ブロックを１画素ラインずつ生成し、上述の特定した位置に出力バンドバッファー４に書き込む。例えば、図３に示すように、入力画素ブロック１０１−１，１０１−２，１０１−３の位置が順番に特定され、入力画素ブロック１０１−１，１０１−２，１０１−３に対応する出力画素ブロック１０２−１，１０２−２，１０２−３の各画素値が導出される。
【００６０】
以上のように、上記実施の形態１によれば、リード回路２ｂは、入力バンドバッファー２ａに記憶されている入力バンドから入力画素ブロックを読み出し所定画素ライン数のラインバッファー３ａに出力する。演算処理回路３は、ラインバッファー３ａから入力画素ブロックの画素ラインを読み出して入力画素ブロックに対して回転処理を実行して出力画素ブロックを導出し出力バンドの一部として出力バンドバッファー４に記憶する。コントローラー５は、回転処理の回転角度に応じて、リード回路２ｂに入力画素ブロックのサイズを設定する。具体的には、コントローラー５は、出力画素ブロックのサイズを決定するブロックサイズ決定処理を実行し、出力画素ブロックの出力ブロック高および出力画素ブロックの幅に基づいて、リード回路２ｂに入力画素ブロックのサイズを設定する。ブロックサイズ決定処理において、コントローラー５は、（ａ）入力画素座標系において、出力画素ブロックが入力バンドに収まるように、出力画素ブロックの出力ブロック高を、出力バンドの出力バンド高の整数分の１から最も大きいものに設定し、（ｂ）入力画素座標系において、入力画素ブロックの所定最大幅に収まるように、出力画素ブロックの幅を伸ばし、（ｃ）入力画素座標系において、出力画素ブロックの幅を伸ばした後の出力画素ブロックが入力バンドに収まらない場合には、出力画素ブロックが入力バンドに収まりかつ出力画素ブロックの幅が最も大きくなるように、出力画素ブロックの幅を縮め、（ｄ）出力画素ブロックの１画素ラインに対応する入力画素ブロックの画素ライン数がラインバッファー３ａの画素ライン数を超えている場合には、出力画素ブロックの幅を縮めた後の出力画素ブロックの１画素ラインに対応する入力画素ブロックの画素ライン数がラインバッファー３ａの画素ライン数以下になるように、出力画素ブロックの幅を縮める。
【００６１】
これにより、出力バンドにおいて出力画素ブロックが稠密に配置されるとともに入力画素ブロックにおける出力画素ブロックに不要な部分が少なくなり、回転処理後のバンドの演算効率や記憶領域の使用効率の低下が抑制される。
【００６２】
実施の形態２．
【００６３】
実施の形態２では、演算処理回路３は、演算部３ｂで回転処理とともに所定フィルターサイズ（Ｎ×Ｍ）のフィルター処理を実行する。なお、フィルター処理は、中心となる注目画素およびその周辺画素の画素値と、フィルターサイズに対応するマトリクスの所定のフィルター係数との積和を演算する処理である。
【００６４】
そのため、入力画素ブロックには、フィルター処理のフィルターサイズに対応した周辺領域を出力画素ブロックに追加した領域に対応するサイズが要求される。例えばフィルターサイズの幅がＮ画素でありフィルターサイズの高さがＭ画素である場合、出力画素ブロックの横方向（主走査方向の前後）における周辺領域の幅は、それぞれ、（Ｎ−１）／２画素となり、出力画素ブロックの縦方向（副走査方向の前後）における周辺領域の高さは、それぞれ、（Ｍ−１）／２画素となる。
【００６５】
したがって、コントローラー５は、ブロックサイズ決定処理において、上述の周辺領域を考慮して出力画素ブロックのサイズ（高さおよび幅）を決定し、それに対応して入力画素ブロックのサイズを特定する。
【００６６】
図９は、実施の形態２におけるブロックサイズ決定処理について説明する図である。
【００６７】
具体的には、図９に示すように、コントローラー５は、ブロックサイズ決定処理において、（ａ）上述のフィルター処理のフィルターサイズに応じた出力画素ブロックの周辺領域および出力画素ブロックが入力バンドに収まるように、出力画素ブロックの出力ブロック高を、出力バンドの出力バンド高の整数分の１から最も大きいものに設定し、（ｂ）周辺領域および出力画素ブロックが入力画素ブロックの所定最大幅に収まるように、出力画素ブロックの幅を伸ばし、（ｃ）出力画素ブロックの幅を伸ばした後の周辺領域および出力画素ブロックが入力バンドに収まらない場合には、周辺領域および出力画素ブロックが入力バンドに収まりかつ出力画素ブロックの幅が最も大きくなるように、出力画素ブロックの幅を縮め、（ｄ）出力画素ブロックの幅を縮めた後の周辺領域および出力画素ブロックの１画素ラインに対応する入力画素ブロックの画素ライン数がラインバッファー３ａの画素ライン数を超えている場合には、出力画素ブロックの幅を縮めた後の周辺領域および出力画素ブロックの１画素ラインに対応する入力画素ブロックの画素ライン数がラインバッファー３ａの画素ライン数以下になるように、出力画素ブロックの幅を縮め、（ｅ）出力画素ブロックの出力ブロック高および出力画素ブロックの幅に基づいて、リード回路２ｂに入力画素ブロックのサイズを設定する。
【００６８】
なお、実施の形態２に係る画像処理装置のその他の構成および動作については実施の形態１と同様であるので、その説明を省略する。
【００６９】
なお、上述の実施の形態に対する様々な変更および修正については、当業者には明らかである。そのような変更および修正は、その主題の趣旨および範囲から離れることなく、かつ、意図された利点を弱めることなく行われてもよい。つまり、そのような変更および修正が請求の範囲に含まれることを意図している。
【００７０】
例えば、上記実施の形態１，２において、演算部３ｂで回転処理とともに変倍処理を行うようにしてもよい。その場合、回転処理の回転角度および変倍処理の変倍率に基づいて、出力画素ブロックが入力画素座標系に写像され、入力画素座標系において、そのように写像された出力画素ブロックに基づいて上述のブロックサイズ決定処理が行われる。また、出力画素ブロックのサイズから、出力画素ブロックの導出に必要な入力画素ブロックのサイズが特定される。
【産業上の利用可能性】
【００７１】
本発明は、例えば、複合機などの画像形成装置に適用可能である。
【符号の説明】
【００７２】
２ａ  入力バンドバッファー
２ｂ  リード回路
３  演算処理回路
３ａ  ラインバッファー
３ｂ  演算部
４  出力バンドバッファー
５  コントローラー
【図１】
2020005075.tif 000003
【図２】
2020005075.tif 000004
【図３】
2020005075.tif 000005
【図４】
2020005075.tif 000006
【図５】
2020005075.tif 000007
【図６】
2020005075.tif 000008
【図７】
2020005075.tif 000009
【図８】
2020005075.tif 000010
【図９】
2020005075.tif 000011