(57)【要約】【課題】  少ないラインバッファーを使用して、画像縮小処理とフィルター処理の両方をまとめて行う。【解決手段】  演算部１３は、あるラインについて、（ａ）主走査方向において、主走査方向の画像縮小率の逆数ごとに、主走査方向のフィルターサイズと同数の、縮小後の画素位置を含む連続した画素位置の画素値に対して主走査方向のフィルター演算を行う第１演算、および（ｂ）主走査方向のフィルター演算の演算結果とそのラインに対応する副走査方向のフィルター係数との積を、主走査方向における画素位置ごとに、ラインバッファーにおける画素位置に加算していく第２演算を行う。そして、演算部１３は、（ｃ）副走査方向の画像縮小率での縮小後のラインに対してラインバッファーを順番に割り当て、（ｄ）割り当てられたラインバッファーにおいて主走査方向のフィルター演算の演算結果とそのラインに対応する副走査方向のフィルター係数との積を加算していく。【選択図】  図１
2016208440.tif 000002
【特許請求の範囲】
【請求項１】
１または複数のラインバッファーと、
あるラインについて、（ａ）主走査方向において、主走査方向の画像縮小率の逆数ごとに、主走査方向のフィルターサイズと同数の、縮小後の画素位置を含む連続した画素位置の画素値に対して主走査方向のフィルター演算を行う第１演算、および（ｂ）前記主走査方向のフィルター演算の演算結果と前記ラインに対応する副走査方向のフィルター係数との積を、主走査方向における画素位置ごとに、前記ラインバッファーにおける前記画素位置に加算していく第２演算を行う演算部とを備え、
前記演算部は、前記第２演算において、（ｃ）副走査方向の画像縮小率での縮小後のラインに対して前記ラインバッファーを順番に割り当て、（ｄ）割り当てられた前記ラインバッファーにおいて、前記主走査方向のフィルター演算の演算結果と前記ラインに対応する副走査方向のフィルター係数との積を加算していくこと、
を特徴とする画像処理装置。  
【請求項２】
前記演算部は、前記副走査方向のフィルターサイズ分のラインについての前記第２演算が完了した前記ラインバッファーから演算結果が出力された後に、そのラインバッファーを解放し、縮小後の別のラインに再度割り当て可能とすることを特徴とする請求項１記載の画像処理装置。
【請求項３】
１または複数の積算バッファーと、
１または複数のレジスターとをさらに備え、
前記演算部は、前記主走査方向の画像縮小率の逆数ごとに選択された前記画素位置に対して、前記積算バッファーおよび前記レジスターを順番に繰り返し割り当て、選択した前記画素位置を含む連続した第１画素数の画素位置の画素値を前記積算バッファーに格納し、前記積算バッファーに格納された前記画素値と前記主走査方向のフィルター係数との積和を前記レジスターにおいて演算し、前記積和に基づく前記主走査方向のフィルター演算の演算結果と前記ラインに対応する副走査方向のフィルター係数との積を演算すること、
を特徴とする請求項１または請求項２記載の画像処理装置。
【請求項４】
副走査方向のフィルターサイズは、副走査方向の画像縮小率の逆数以上であることを特徴とする請求項１から請求項３のうちのいずれか１項載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関するものである。
【背景技術】
【０００２】
通常、フィルター処理を行う場合、フィルターサイズに応じた数のラインバッファーが必要になる（例えば特許文献１参照）。
【０００３】
他方、ある画像処理装置では、少ないラインバッファーを使用して画像縮小処理を行っている（例えば特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２５３７５９号公報
【特許文献２】特開２００５−３２３００９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、画像縮小後にノイズ除去のためのフィルター処理をただちに行うことがある。そのような場合、上述の技術では、少ないラインバッファーで、画像縮小処理とフィルター処理の両方を行うことは困難である。
【０００６】
本発明は、上記の問題に鑑みてなされたものであり、少ないラインバッファーを使用して、画像縮小処理とフィルター処理の両方をまとめて行う画像処理装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る画像処理装置は、１または複数のラインバッファーと、あるラインについて、（ａ）主走査方向において、主走査方向の画像縮小率の逆数ごとに、主走査方向のフィルターサイズと同数の、縮小後の画素位置を含む連続した画素位置の画素値に対して主走査方向のフィルター演算を行う第１演算、および（ｂ）前記主走査方向のフィルター演算の演算結果と前記ラインに対応する副走査方向のフィルター係数との積を、主走査方向における画素位置ごとに、前記ラインバッファーにおける前記画素位置に加算していく第２演算を行う演算部とを備える。そして、前記演算部は、（ｃ）副走査方向の画像縮小率での縮小後のラインに対して前記ラインバッファーを順番に割り当て、（ｄ）割り当てられた前記ラインバッファーにおいて、前記主走査方向のフィルター演算の演算結果と前記ラインに対応する副走査方向のフィルター係数との積を加算していく。
【発明の効果】
【０００８】
本発明によれば、少ないラインバッファーを使用して、画像縮小処理とフィルター処理の両方をまとめて行うことができる
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の実施の形態に係る画像処理装置の構成を示すブロック図である。
【図２】図２は、図１に示す画像処理装置の動作を説明するフローチャートである。
【図３】図３は、主走査方向のフィルターサイズが５であり、主走査方向の画像縮小率が１／３である場合の主走査方向についての、図１に示す画像処理装置における処理を説明する図である。
【図４】図４は、副走査方向のフィルターサイズが５であり、副走査方向の画像縮小率が１／３である場合の副走査方向についての、図１に示す画像処理装置における処理を説明する図である。
【発明を実施するための形態】
【００１０】
以下、図に基づいて本発明の実施の形態を説明する。
【００１１】
図１は、本発明の実施の形態に係る画像処理装置の構成を示すブロック図である。図１に示す画像処理装置は、コンピューター、ＡＳＩＣ（Application Specific Integrated Circuit）などの演算処理装置１、ＤＲＡＭ（Dynamic Random Access Memory）などの記憶装置２、液晶ディスプレイなどの表示装置３、およびキーボードなどの入力装置４を備える。
【００１２】
演算処理装置１は、縮小率特定部１１、データ入力部１２、演算部１３、レジスター１４，１５、およびデータ出力部１６を備える。また、記憶装置２では、積算バッファー２１，２２およびラインバッファー２３，２４が確保される。
【００１３】
なお、積算バッファー２１，２２は、主走査方向のフィルターサイズ分の画素値を記憶するサイズをそれぞれ有し、ラインバッファー２３，２４は、主走査方向に縮小後の１ライン分の画素値を記憶するサイズをそれぞれ有する。
【００１４】
縮小率特定部１１は、入力装置４に対するユーザー操作などに基づいて画像縮小率を特定する。
【００１５】
データ入力部１２は、図示せぬ装置（画像読取装置、ストレージなど）から画像データを、主走査方向の画像縮小率ごとに、主走査方向のフィルターサイズと同数の、縮小後の画素位置を含む連続した画素位置の画素値ずつ、積算バッファー２１，２２に格納する。なお、ライン終端において、フィルターサイズ未満の画素値しか残っていない場合、ゼロを追加して、フィルターサイズと同数の画素値とする。
【００１６】
演算部１３は、積算バッファー２１，２２に格納された画素値に対して、レジスター１４，１５を使用して、主走査方向のフィルター演算を行い、その演算結果に対して、副走査方向のフィルター係数の乗算を行い、その演算結果を、ラインバッファー２３，２４において順番に加算していく。
【００１７】
このように、演算部１３は、画像縮小処理とフィルター処理を同時に並行して進行させていく。なお、フィルター処理は、例えば、画像縮小処理に伴うノイズを除去するためのフィルター処理である。そして、主走査方向のフィルターサイズは、主走査方向の画像縮小率の逆数以上とされ、副走査方向のフィルターサイズは、副走査方向の画像縮小率の逆数以上とされる。
【００１８】
具体的には、演算部１３は、縮小前の画像から順番にラインを選択し、そのラインについて、（ａ）主走査方向において、主走査方向の画像縮小率の逆数ごとに、主走査方向のフィルターサイズと同数の、縮小後の画素位置を含む連続した画素位置の画素値に対して主走査方向のフィルター演算を行う第１演算、および（ｂ）主走査方向のフィルター演算の演算結果とそのラインに対応する副走査方向のフィルター係数との積を、主走査方向における画素位置ごとに、ラインバッファー２３，２４における画素位置に加算していく第２演算を行う。
【００１９】
演算部１３は、副走査方向のフィルターサイズ分のラインについての第２演算において、（ｃ）副走査方向の画像縮小率での縮小後のラインに対してラインバッファー２３，２４を順番に割り当て、（ｄ）割り当てられたラインバッファー２３，２４において、主走査方向のフィルター演算の演算結果とそのラインに対応する副走査方向のフィルター係数との積を加算していく。つまり、副走査方向のフィルターサイズ分のラインについての、同一の画素位置についての主走査方向の演算結果と副走査方向のフィルター係数との積と、その画素位置のラインバッファー２３（またはラインバッファー２４）内の画素値との和が、その画素位置のラインバッファー２３（またはラインバッファー２４）内の画素値に順番にセットされていく。
【００２０】
また、演算部１３は、副走査方向のフィルターサイズ分のラインについての第２演算が完了したラインバッファー２３，２４から演算結果が出力された後に、そのラインバッファー２３，２４を解放し、縮小後の後続のラインに再度割り当て可能とする。
【００２１】
また、演算部１３は、主走査方向の画像縮小率の逆数ごとに選択された画素位置に対して、積算バッファー２１，２２およびレジスター１４，１５を順番に繰り返し割り当て、選択した画素位置を含む連続した第１画素数の画素位置の画素値をその積算バッファー２１，２２に格納し、その積算バッファー２１，２２に格納された画素値と主走査方向のフィルター係数との積和をそのレジスター１４，１５において演算し、その積和に基づく主走査方向のフィルター演算の演算結果と、そのラインに対応する副走査方向のフィルター係数との積を演算し、その演算結果を加算していく。
【００２２】
レジスター１４，１５は、演算処理装置１内のＳＲＡＭ（Static RAM）などのメモリーである。
【００２３】
データ出力部１６は、主走査方向および副走査方向についての画像縮小処理およびフィルター処理が完了した画像データを出力する。例えば、データ出力部１６は、主走査方向および副走査方向についての画像縮小処理およびフィルター処理の演算結果を画素ごとにラインバッファー２３，２４から読み出し、所定の定数（例えば８）で除算して得られた結果（小数点以下四捨五入）を出力する。
【００２４】
次に、上記画像処理装置の動作について説明する。図２は、図１に示す画像処理装置の動作を説明するフローチャートである。
【００２５】
ここでは、一例として、フィルターサイズが５画素×５画素であり、画像縮小率が１／３である場合について説明する。例えば、元の画像が３００ｄｐｉであり縮小後の画像１００ｄｐｉである場合、画像縮小率が１／３となる。図３は、主走査方向のフィルターサイズが５であり、主走査方向の画像縮小率が１／３である場合の主走査方向についての、図１に示す画像処理装置における処理を説明する図である。図４は、副走査方向のフィルターサイズが５であり、副走査方向の画像縮小率が１／３である場合の副走査方向についての、図１に示す画像処理装置における処理を説明する図である。フィルターサイズおよび画像縮小率に基づいて、ここでは、２つのレジスター１４，１５、２つの積算バッファー２１，２２、および２つのラインバッファー２３，２４が使用される。
【００２６】
まず、演算部１３は、注目ラインおよび注目画素をリセットする（ステップＳ１，Ｓ２）。これにより、注目ラインが第１ラインにセットされ、注目画素は、注目ライン内の第１画素にセットされる。
【００２７】
次に、データ入力部１２は、注目ラインの注目画素から主走査方向のフィルターサイズ分（ここでは５画素）の画素値を積算バッファー２１にセットする（ステップＳ３）。
【００２８】
そして、演算部１３は、レジスター１４を使用して、積算バッファー２１に格納されている画素値と主走査方向のフィルター係数との積和を演算する（ステップＳ４）。
【００２９】
具体的には、演算部１３は、（ａ）レジスター１４の値をゼロにリセットし、（ｂ）積算バッファー２１の第１画素の画素値とその画素に対応するフィルター係数との積を演算し、その演算結果をレジスター１４に加算し（つまり、その演算結果とレジスター１４の値との和をレジスター１４にセットし）、以下、積算バッファー２１の最終画素まで同様に積の演算およびレジスター１４への加算を繰り返す。
【００３０】
次に、演算部１３は、その積和をレジスター１４から読み出し、その積和に基づく主走査方向についての演算結果に対して、注目ラインに対応する副走査方向のフィルター係数を乗算し、その演算結果を、ラインバッファー２３における注目画素の画素位置に加算する（ステップＳ５）。
【００３１】
例えば、図３に示すように、画素Ｄ０が注目画素である場合、積算バッファー２１が割り当てられ、積算バッファー２１に注目ラインのＤ０〜Ｄ４の画素値が格納される。そして、Ｄ０〜Ｄ４の画素値とフィルター係数Ａ〜Ｅとの積和が演算され、その積和を所定の定数（例えば８）で除算した結果（小数点以下四捨五入）が主走査方向の演算結果（つまり、主走査方向の画像縮小処理およびフィルター処理の結果である画素ＳＤ０の画素値）とされる。
【００３２】
このとき、縮小後のラインＳＬｉに対してラインバッファー２３，２４が順番に繰り返し割り当てられ、注目ラインに対応する縮小後のラインＳＬｉに対応するラインバッファー２３にその演算結果が加算される。
【００３３】
縮小後のラインＳＬｉは、副走査方向の画像圧縮率の逆数と同数のラインＬｉに対して１本設定される。つまり、副走査方向において副走査方向の画像圧縮率の逆数ごとに１本の縮小後のラインＳＬｉが設定される。これにより、副走査方向における間引きが行われる。
【００３４】
具体的には、図４に示すように、縮小後のラインＳＬｉに対してラインバッファー２３，２４を順番に繰り返し割り当て、副走査方向における画像縮小処理とフィルター処理を順番に行う。そのとき、縮小後のラインＳＬｉ（ｉ＝０，２，４，６，・・・）については、ラインバッファー２３が割り当てられ、縮小後のラインＳＬ（ｉ＋１）については、ラインバッファー２４が割り当てられる。
【００３５】
さらに、ラインバッファー２３，２４を順番に繰り返し割り当てつつ、縮小後のラインＳＬｉについての処理と、縮小後のラインＳＬ（ｉ＋１）についての処理を並行に行うようにしてもよい。つまり、注目ラインが縮小後の複数のラインＳＬｉ，ＳＬ（ｉ＋１）に対応する場合、並行して、縮小後の複数のラインＳＬｉ，ＳＬ（ｉ＋１）のそれぞれに対して、主走査方向についての演算結果と、その縮小後のラインＳＬｉ，ＳＬ（ｉ＋１）についての注目ラインに対応するフィルター係数との積がそれぞれ演算され、ラインバッファー２３，２４に加算されるようにしてもよい。
【００３６】
例えば図４に示すように、注目ラインに対応する副走査方向のフィルター係数（Ｆ〜Ｊのうちのいずれか）が画素ＳＤ０の画素値に乗算され、その演算結果がラインバッファー２３またはラインバッファー２４における、画素ＳＤ０の位置に加算される。例えば、注目ラインがＬ０である場合、画素ＳＤ０の画素値に、フィルター係数Ｆが乗算され、縮小後のラインＳＬ０の画素値を得るために、その乗算結果がラインバッファー２３の、画素ＳＤ０の位置に加算される。
【００３７】
なお、図４では、画素ＳＤ０についてのみ図示しているが、画素ＳＤ１以降の画素についても同様である。
【００３８】
また、例えば、注目ラインがＬ３である場合、縮小後のラインＳＬ０の画素値を得るために、画素ＳＤ０の画素値とフィルター係数Ｉとの積がラインバッファー２３に加算され、縮小後のラインＳＬ１の画素値を得るために、画素ＳＤ０の画素値とフィルター係数Ｆとの積がラインバッファー２４に加算される。
【００３９】
次に、演算部１３は、縮小後のラインＳＬｊの画素値を得るための副走査方向のフィルターサイズ分のラインＬｉの処理が完了したか否かを判定する（ステップＳ６）。
【００４０】
注目画素に対応する縮小後の画素ＳＤ０について、縮小後のラインＳＬｊの画素値を得るための副走査方向のフィルターサイズ分のラインＬｉの処理が完了した場合、データ出力部１６は、副走査方向についての画像縮小処理およびフィルター処理が完了しているため、その画素値を読み出し、所定の定数で除算した結果を後段の画像処理部などに出力する（ステップＳ７）。
【００４１】
その後、演算部１３は、注目画素の画素位置から主走査方向のフィルターサイズ分の画素位置がライン終端に到達しているか否かを判定する（ステップＳ８）。
【００４２】
注目画素の画素位置から主走査方向のフィルターサイズ分の画素位置がライン終端に到達していない場合、演算部１３は、図３に示すように、注目画素を画像圧縮率の逆数（ここでは、３）だけ進め（ステップＳ９）、ステップＳ３に戻り、以降の処理を繰り返し行う。つまり、注目画素を画像圧縮率の逆数だけ進めることで、主走査方向における間引きが行われる。
【００４３】
このとき、図３に示すように、注目画素に対して積算バッファー２１，２２を順番に繰り返し割り当てて、主走査方向における画像縮小処理とフィルター処理を順番に行う。そのとき、縮小後の画素ＳＤｉ（ｉ＝０，２，４，６，・・・）については、積算バッファー２１が割り当てられ、縮小後の画素ＳＤ（ｉ＋１）については、積算バッファー２２が割り当てられる。
【００４４】
さらに、積算バッファー２１，２２を交互に割り当てつつ、縮小後の画素ＳＤｉについての処理と、縮小後の画素ＳＤ（ｉ＋１）についての処理を並行に行うようにしてもよい。つまり、積算バッファー２１に対するフィルター演算が完了する前に、積算バッファー２２についての画素値の格納およびフィルター演算を開始してもよい。
【００４５】
一方、注目画素の画素位置から主走査方向のフィルターサイズ分の画素位置がライン終端に到達している場合、演算部１３は、注目ラインについての主走査方向の処理は完了したと判断し、注目ラインが最終ラインでなければ（ステップＳ１１）、注目ラインを１ライン進め（ステップＳ１２）、ステップＳ２に戻り、以降の処理を繰り返し行う。
【００４６】
このようにして、最終ラインの処理が完了するまで、ステップＳ２以降の処理が繰り返し実行され、最終ラインの処理が完了すると、対象画像についての画像縮小処理およびフィルター処理が完了する。
【００４７】
なお、注目画素の画素位置から主走査方向のフィルターサイズ分の画素位置がライン終端に到達している場合、ステップＳ４では、画像の外側に対応する画素位置の画素値をゼロとみなしてフィルター演算を行う。また、注目画素の画素位置から主走査方向のフィルターサイズ分の画素位置がライン終端に到達しているとステップＳ１１で判定された場合、積算バッファー２１，２２内の画素値は破棄される。
【００４８】
以上のように、上記実施の形態によれば、演算部１３は、あるラインについて、（ａ）主走査方向において、主走査方向の画像縮小率の逆数ごとに、主走査方向のフィルターサイズと同数の、縮小後の画素位置を含む連続した画素位置の画素値に対して主走査方向のフィルター演算を行う第１演算、および（ｂ）主走査方向のフィルター演算の演算結果とそのラインに対応する副走査方向のフィルター係数との積を、主走査方向における画素位置ごとに、ラインバッファーにおける画素位置に加算していく第２演算を行う。そして、演算部１３は、（ｃ）副走査方向の画像縮小率での縮小後のラインに対してラインバッファーを順番に割り当て、（ｄ）割り当てられたラインバッファーにおいて、主走査方向のフィルター演算の演算結果とそのラインに対応する副走査方向のフィルター係数との積を加算していく。
【００４９】
これにより、少ないラインバッファーを使用して、画像縮小処理とフィルター処理の両方をまとめて行うことができる。
【００５０】
例えば、通常、副走査方向のフィルターサイズが５である場合、４本のラインバッファーが必要となるが、この実施の形態では、上述のように、副走査方向のフィルターサイズが５であり、副走査方向の画像縮小率が１／３である場合、２本のラインバッファー２３，２４があれば、十分である。
【００５１】
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【００５２】
例えば、上記実施の形態では、一例として、フィルターサイズが、５画素×５画素であって、画像縮小率が１／３であり、ラインバッファーが２本である場合の処理を説明しているが、フィルターサイズが画像縮小率の逆数より大きければ、副走査方向のフィルターサイズに対する画像縮小率の逆数の商（または商に端数がある場合には切り上げた数）と同数のラインバッファーを使用して同様の処理を行うことができる。例えば、フィルターサイズが５であり、画像縮小率が１／２である場合には、３本のラインバッファーがあればよい。また、フィルターサイズが画像縮小率の逆数と同一である場合には、上述の積算バッファーおよびラインバッファーは１つずつあればよい。
【産業上の利用可能性】
【００５３】
本発明は、例えば、複写機、複合機などの画像形成装置に適用可能である。
【符号の説明】
【００５４】
１３  演算部
１４，１５  レジスター
２１，２２  積算バッファー
２３，２４  ラインバッファー
【図１】
2016208440.tif 000003
【図２】
2016208440.tif 000004
【図３】
2016208440.tif 000005
【図４】
2016208440.tif 000006