(57)【要約】【課題】画像処理装置において、種々のフィルタ演算に適用可能であり、かつ、メモリを効率良く使用することを可能にする。【解決手段】ＲＡＭ２０４には、列方向に連続する４個の階調データが記憶され、これらの階調データはフリップフロップ２０５に保持される。シフト演算器２０７ｅに上述の４個の階調データに連続する５番目の階調データが供給されるときに、フリップフロップ２０５からは対応する４個の階調データが読み出される。このとき、フリップフロップ２０５から読み出された階調データが記憶されていたＲＡＭ２０４の記憶領域の書き換えが行われる。具体的には、上述の４個の階調データのうち、１番目の階調データが記憶されていた記憶領域に２番目の階調データが書き込まれ、以下同様に、２番目、３番目、４番目の階調データが記憶されていた記憶領域に、３番目、４番目、５番目の階調データがそれぞれ書き込まれる。【選択図】図３
2008017044.tif 000002
【特許請求の範囲】
【請求項１】
行方向および列方向に配列されることにより所定の画像を表す複数の階調データに対して、ｍ行ｎ列（ｍおよびｎは、ｍ≧２、ｎ≧１をそれぞれ満たす整数）のフィルタ係数の集合によるフィルタ演算を実行する画像処理装置であって、
前記階調データの入力を受け付ける受付手段と、
少なくともｍ−１個の前記階調データを連続的に読み出し可能に記憶する記憶領域を有する記憶手段と、
前記受付手段に入力され、または、前記記憶手段に記憶された階調データに対して、所定のフィルタ係数に応じたフィルタ演算を実行する演算手段と、
前記記憶手段に対する前記階調データの読み出しおよび書き込みと、前記演算手段に対する前記階調データの入力とを制御する制御手段とを備え、
前記制御手段は、
列方向に連続するｍ個の前記階調データのうち、１番目からｍ−１番目までの階調データを前記記憶手段に書き込み、
前記ｍ−１番目の階調データに連続するｍ番目の階調データが前記受付手段に入力されるときに、前記記憶手段に記憶された１番目からｍ−１番目までの階調データを読み出し、これらｍ個の階調データを前記演算手段に入力し、
前記１番目からｍ−１番目までの階調データが読み出された前記記憶手段の記憶領域に、２番目からｍ−１番目までの階調データと、前記入力手段に入力されたｍ番目の階調データとを書き込む
ことを特徴とする画像処理装置。
【請求項２】
前記記憶手段は、第１のメモリと第２のメモリとを備え、
前記制御手段は、
前記１番目からｍ−１番目までの階調データのうち、１番目からｘ−１番目（ｘは、２＜ｘ＜ｍ−１を満たす整数）までの階調データを前記第１のメモリに書き込むとともに、ｘ番目からｍ−１番目までの階調データを前記第２のメモリに書き込み、
前記ｍ個の階調データを前記演算手段に入力した後に、前記１番目からｘ−１番目までの階調データが読み出された前記第１のメモリの記憶領域に、２番目からｘ−１番目までの前記階調データと、ｘ番目の階調データとを書き込むとともに、前記ｘ番目からｍ−１番目までの階調データが読み出された前記第２のメモリの記憶領域に、ｘ＋１番目からｍ−１番目までの階調データと、前記入力手段に入力されたｍ番目の階調データとを書き込む
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記記憶手段は、少なくとも第１のメモリと第２のメモリとを備え、
前記制御手段は、
前記１番目からｍ−１番目までの階調データのうち、１番目からｘ−１番目（ｘは、２＜ｘ＜ｍ−１を満たす整数）までの階調データを前記第１のメモリに書き込むとともに、ｘ番目からｙ番目（ｙは、ｘ＜ｙ＜ｍ−１を満たす整数）までの階調データを前記第２のメモリに書き込み、
前記ｍ個の階調データを前記演算手段に入力した後に、前記１番目からｘ−１番目までの階調データが読み出された前記第１のメモリの記憶領域に、２番目からｘ−１番目までの前記階調データと、ｘ番目の階調データとを書き込むとともに、前記ｘ番目からｙ番目までの階調データが読み出された前記第２のメモリの記憶領域に、ｘ＋１番目からｙ番目までの階調データと、ｙ＋１番目の階調データとを書き込む
ことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
請求項１ないし３に記載の画像処理装置を備えることを特徴とする画像形成装置。
【請求項５】
行方向および列方向に配列されることにより所定の画像を表す複数の階調データに対して、ｍ行ｎ列（ｍおよびｎは、ｍ≧２、ｎ≧１をそれぞれ満たす整数）のフィルタ係数の集合によるフィルタ演算を実行するコンピュータであって、
前記階調データの入力を受け付ける受付手段と、
少なくともｍ−１個の前記階調データを連続的に読み出し可能に記憶する記憶領域を有する記憶手段と、
前記受付手段に入力され、または、前記記憶手段に記憶された階調データに対して、所定のフィルタ係数に応じたフィルタ演算を実行する演算手段と、
前記記憶手段に対する前記階調データの読み出しおよび書き込みと、前記演算手段に対する前記階調データの入力とを制御する制御手段とを備えるコンピュータに、
列方向に連続するｍ個の前記階調データのうち、１番目からｍ−１番目までの階調データを前記記憶手段に書き込む処理と、
前記ｍ−１番目の階調データに連続するｍ番目の階調データが前記受付手段に入力されるときに、前記記憶手段に記憶された１番目からｍ−１番目までの階調データを読み出し、これらｍ個の階調データを前記演算手段に入力する処理と、
前記１番目からｍ−１番目までの階調データが読み出された前記記憶手段の記憶領域に、２番目からｍ−１番目までの階調データと、前記入力手段に入力されたｍ番目の階調データとを書き込む処理と
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像形成装置およびプログラムに関する。
【背景技術】
【０００２】
画像データに対してフィルタ処理を行う画像処理装置においては、フィルタサイズに応じた容量のメモリを備える構成が一般的である。このようなメモリは、ラインメモリやラインバッファと呼ばれる。例えば、フィルタサイズが５×５（画素）である場合には、４行分または５行分のラインメモリを設けることが多い（図１３参照）。
【特許文献１】特開２００３−３１７０９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上述の従来例のような構成においては、それぞれのラインメモリにはそれぞれの行に応じた画像データが記憶される。このような構成においては、フィルタサイズが大きくなるほど、多くのラインメモリを備える必要があった。また、画像データのサイズやフィルタサイズが変化した場合には、有効に使用されない記憶領域がラインメモリに生じることがあった。
【０００４】
一方、特許文献１には、１個のラインメモリで所定のフィルタ効果を得るための発明が開示されている。しかしながら、特許文献１に記載の発明は特定のフィルタにのみ適用可能なものであるため、汎用性に乏しいという不都合がある。
【０００５】
本発明はかかる事情に鑑みてなされたものであり、その目的は、画像処理装置において、種々のフィルタ演算に適用可能であり、かつ、メモリを効率良く使用することを可能にする技術を提供することにある。
【課題を解決するための手段】
【０００６】
上述の目的を達成するために、本発明は、行方向および列方向に配列されることにより所定の画像を表す複数の階調データに対して、ｍ行ｎ列（ｍおよびｎは、ｍ≧２、ｎ≧１をそれぞれ満たす整数）のフィルタ係数の集合によるフィルタ演算を実行する画像処理装置であって、前記階調データの入力を受け付ける受付手段と、少なくともｍ−１個の前記階調データを連続的に読み出し可能に記憶する記憶領域を有する記憶手段と、前記受付手段に入力され、または、前記記憶手段に記憶された階調データに対して、所定のフィルタ係数に応じたフィルタ演算を実行する演算手段と、前記記憶手段に対する前記階調データの読み出しおよび書き込みと、前記演算手段に対する前記階調データの入力とを制御する制御手段とを備え、前記制御手段は、列方向に連続するｍ個の前記階調データのうち、１番目からｍ−１番目までの階調データを前記記憶手段に書き込み、前記ｍ−１番目の階調データに連続するｍ番目の階調データが前記受付手段に入力されるときに、前記記憶手段に記憶された１番目からｍ−１番目までの階調データを読み出し、これらｍ個の階調データを前記演算手段に入力し、前記１番目からｍ−１番目までの階調データが読み出された前記記憶手段の記憶領域に、２番目からｍ−１番目までの階調データと、前記入力手段に入力されたｍ番目の階調データとを書き込むことを特徴とする画像処理装置を提供する。
【０００７】
この態様において、前記記憶手段は、複数のメモリによって構成されていてもよい。例えば、前記記憶手段が２つのメモリ（第１のメモリと第２のメモリ）を備え、前記制御手段が、前記１番目からｍ−１番目までの階調データのうち、１番目からｘ−１番目（ｘは、２＜ｘ＜ｍ−１を満たす整数）までの階調データを前記第１のメモリに書き込むとともに、ｘ番目からｍ−１番目までの階調データを前記第２のメモリに書き込み、前記ｍ個の階調データを前記演算手段に入力した後に、前記１番目からｘ−１番目までの階調データが読み出された前記第１のメモリの記憶領域に、２番目からｘ−１番目までの階調データと、ｘ番目の階調データとを書き込むとともに、前記ｘ番目からｍ−１番目までの階調データが読み出された前記第２のメモリの記憶領域に、ｘ＋１番目からｍ−１番目までの階調データと、前記入力手段に入力されたｍ番目の階調データとを書き込む構成であってもよい。
また、前記記憶手段が３つ以上のメモリを備える構成としてもよい。すなわち、前記記憶手段は、少なくとも第１のメモリと第２のメモリとを備え、前記制御手段は、前記１番目からｍ−１番目までの階調データのうち、１番目からｘ−１番目（ｘは、２＜ｘ＜ｍ−１を満たす整数）までの階調データを前記第１のメモリに書き込むとともに、ｘ番目からｙ番目（ｙは、ｘ＜ｙ＜ｍ−１を満たす整数）までの階調データを前記第２のメモリに書き込み、前記ｍ個の階調データを前記演算手段に入力した後に、前記１番目からｘ−１番目までの階調データが読み出された前記第１のメモリの記憶領域に、２番目からｘ−１番目までの前記階調データと、ｘ番目の階調データとを書き込むとともに、前記ｘ番目からｙ番目までの階調データが読み出された前記第２のメモリの記憶領域に、ｘ＋１番目からｙ番目までの階調データと、ｙ＋１番目の階調データとを書き込む構成であってもよい。
【０００８】
なお、上述した複数のメモリを備える構成においては、例えば、「２番目からｘ−１番目までの階調データ」や「ｘ＋１番目からｍ−１番目までの階調データ」などが、１個の階調データとなることを妨げない。具体的には、例えば、前記ｍが「５」であり、前記ｘが「３」である場合には、前記制御手段は、１番目から２（ｘ−１）番目の階調データを前記第１のメモリに書き込むとともに、３（ｘ）番目から４（ｍ−１）番目の階調データを前記第２のメモリに書き込み、５（ｍ）個の階調データを前記演算手段に入力した後に、１番目から２（ｘ−１）番目までの階調データが読み出された前記第１のメモリの記憶領域に、２（ｘ−１）番目の階調データと、３（ｘ）番目の階調データとを書き込むとともに、３（ｘ）番目から４（ｍ−１）番目までの階調データが読み出された前記第２のメモリの記憶領域に、４（ｘ＋１、ｍ−１）番目の階調データと、前記入力手段に入力された５番目の階調データとを書き込む、といったようになる。すなわち、この場合においては、「２番目からｘ−１番目までの階調データ」は「２番目の階調データ」と同意であり、「ｘ＋１番目からｍ−１番目までの階調データ」は「４番目の階調データ」と同意である。
【０００９】
また、本発明は、上述した形態と異なる形態によっても提供され得る。例えば、本発明は、上述の画像処理装置を備える画像形成装置の形態によって提供されることも可能であるし、また、上述の画像処理装置が有する機能を実現させるためのプログラムの形態で提供されることも可能である。例えば、本発明に係るプログラムには、行方向および列方向に配列されることにより所定の画像を表す複数の階調データに対して、ｍ行ｎ列（ｍおよびｎは、ｍ≧２、ｎ≧１をそれぞれ満たす整数）のフィルタ係数の集合によるフィルタ演算を実行するコンピュータであって、前記階調データの入力を受け付ける受付手段と、少なくともｍ−１個の前記階調データを連続的に読み出し可能に記憶する記憶領域を有する記憶手段と、前記受付手段に入力され、または、前記記憶手段に記憶された階調データに対して、所定のフィルタ係数に応じたフィルタ演算を実行する演算手段と、前記記憶手段に対する前記階調データの読み出しおよび書き込みと、前記演算手段に対する前記階調データの入力とを制御する制御手段とを備えるコンピュータに、列方向に連続するｍ個の前記階調データのうち、１番目からｍ−１番目までの階調データを前記記憶手段に書き込む処理と、前記ｍ−１番目の階調データに連続するｍ番目の階調データが前記受付手段に入力されるときに、前記記憶手段に記憶された１番目からｍ−１番目までの階調データを読み出し、これらｍ個の階調データを前記演算手段に入力する処理と、前記１番目からｍ−１番目までの階調データが読み出された前記記憶手段の記憶領域に、２番目からｍ−１番目までの階調データと、前記入力手段に入力されたｍ番目の階調データとを書き込む処理とを実行させることを特徴とするものがある。
【発明の効果】
【００１０】
本発明によれば、画像処理装置において、メモリを効率良く使用しつつも、種々のフィルタ演算に適用することが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について図面を参照しつつ説明する。なお、以下に説明する実施形態においては、「階調データ」とは、階調を表す８ビット（すなわち２５６階調）のモノクロデータであるとする。また、「画像データ」とは、上述の階調データを行方向および列方向に配列した集合であり、それぞれの階調データが表す階調により所定のグレースケール画像を表すデータであるとする。
【００１２】
［第１実施形態］
図１は、本発明の第１の実施形態である画像形成装置１００の構成を示すブロック図であり、図２は、この画像形成装置１００が備える画像処理装置２００の構成を示すブロック図である。図１に示すように、画像形成装置１００は、画像読取部１と、画像加工部２と、画像形成部３とを備える。画像読取部１はいわゆるスキャナの機能を有し、原稿を光学的に読み取って画像データを生成する。画像加工部２は、画像読取部１により生成された画像データに対して種々の画像処理を実行する。画像形成部３はいわゆるプリンタの機能を有し、画像加工部２により画像処理が実行された画像データに応じた画像を用紙等のシート状物に形成する。
【００１３】
画像処理装置２００は、画像加工部２の一部を構成するものである。図２に示すように、画像処理装置２００は、画像メモリ１０と、画像処理部２０と、制御部３０とを備え、これらの各部はバス４０によって互いに接続されている。画像メモリ１０は、１ページ分または１ページを所定のバンド単位で分割した分の階調データを記憶する。画像メモリ１０としては、例えばＤＲＡＭ（Dynamic Random Access Memory）を用いることができる。画像処理部２０は、加算器やシフト演算器などにより構成され、画像メモリ１０からバス４０を介して階調データの入力を受け付けて、所定のフィルタ演算を実行する。制御部３０はＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）等を備えた演算装置であり、ＣＰＵがＲＡＭをワークエリアとして用いながらＲＯＭに記憶されたプログラムを実行し、これにより画像処理装置２００全体の動作を制御する。なお、制御部３０は、画像形成装置１００全体の動作を制御するものであってもよい。
【００１４】
ここで、画像処理部２０の詳細な構成を図３に示す。同図に示すように、画像処理部２０は、フリップフロップ（ＦＦ）２０１と、シフト演算器２０２と、ＯＲ演算器２０３と、ＲＡＭ２０４と、フリップフロップ２０５と、選択スイッチ２０６と、シフト演算器２０７ａ、２０７ｂ、２０７ｃ、２０７ｄおよび２０７ｅと、加算器２０８ａおよび２０８ｂと、フリップフロップ２０９と、加算器２１０と、フリップフロップ２１１ａ、２１１ｂ、２１１ｃ、２１１ｄおよび２１１ｅと、シフト演算器２１２ａ、２１２ｂ、２１２ｃ、２１２ｄおよび２１２ｅと、加算器２１３と、除算器２１４とを備える。なお、同図に示す矢印は、データの流れを表している。また、同図においてシフト演算器のブロックに示す数字は、その演算器におけるシフト演算のビット数を表している。
【００１５】
フリップフロップ２０１は、８ビット分のデータを保持可能な記憶回路である。フリップフロップ２０１に保持されたデータは、シフト演算器２０７ｅとＯＲ演算器２０３とに供給される。シフト演算器２０２は、フリップフロップ２０５から供給される１６ビットのデータに対して、左方向に８ビットのシフト演算（ビットシフト）を行う演算回路である。なお、このとき桁あふれする上位８ビットのデータは、演算結果に影響を与えない（すなわち無視される）。つまり、シフト演算器２０２は、例えば二進数で「１１１１１１１１１１１１１１１１」なるデータが供給された場合には、二進数で「１１１１１１１１００００００００」なるデータを出力する。ＯＲ演算器２０３は、フリップフロップ２０１または２０５からのデータとシフト演算器２０２からのデータの論理和を出力する演算回路である。つまり、ＯＲ演算器２０３は、例えばフリップフロップ２０１から「１０１０１０１０」、シフト演算器２０２から「１１１１１１１１００００００００」なる二進数のデータが供給された場合には、二進数で「１１１１１１１１１０１０１０１０」なるデータを出力する。
【００１６】
ＲＡＭ２０４は、フィルタ演算を実行するためのデータを記憶するメモリであり、いわゆるラインメモリに相当する。ＲＡＭ２０４は、１ワードあたり１６ビットのデータを一時的に保持し、その全体としての記憶容量は、４ライン分の階調データに相当する容量であると望ましい。このようなＲＡＭ２０４としては、例えばＳＲＡＭ（Static RAM）を用いることができる。
【００１７】
フリップフロップ２０５は、３２ビット分のデータを保持可能な記憶回路であり、ＲＡＭ２０４から供給されたデータを保持する。選択スイッチ２０６は、フリップフロップ２０５から供給されるデータを選択的に振り分ける回路である。選択スイッチ２０６は、シフト演算器２０７ａ、２０７ｂ、２０７ｃおよび２０７ｄに対して、連続する８ビットのデータを供給する。
【００１８】
シフト演算器２０７ａ、２０７ｂ、２０７ｃ、２０７ｄおよび２０７ｅは、それぞれ、左方向に所定のビット数のシフト演算を実行する演算回路である。シフト演算器２０７ａ、２０７ｂ、２０７ｃ、２０７ｄおよび２０７ｅのそれぞれにおけるシフト演算のビット数は、画像処理装置２００が実現するフィルタ演算に相当するフィルタのフィルタ係数に応じて決められるが、詳細については後述する。本実施形態においては、それぞれのシフト演算器におけるシフト演算のビット数は、シフト演算器２０７ａが「０」、２０７ｂが「１」、２０７ｃが「２」、２０７ｄが「１」、２０７ｅが「０」である。なお、ここにおいて、シフト演算のビット数が「０」であるというのは、シフト演算を実行しないことと同意である。本実施形態においては、説明の便宜上、シフト演算のビット数が「０」である部分にもシフト演算器を設けた表示としている。
【００１９】
加算器２０８ａは、シフト演算器２０７ａおよび２０７ｂによる演算結果を表すデータを加算する演算回路であり、加算器２０８ｂは、シフト演算器２０７ｃ、２０７ｄおよび２０７ｅによる演算結果を表すデータを加算する演算回路である。フリップフロップ２０９は、加算器２０８ｂによる演算結果を表すデータを保持する記憶回路である。加算器２１０は、加算器２０８ａから供給されるデータとフリップフロップ２０９から供給されるデータとを加算する演算回路である。
【００２０】
フリップフロップ２１１ａ、２１１ｂ、２１１ｃ、２１１ｄおよび２１１ｅは、それぞれ、加算器２１０から供給されるデータを保持する記憶回路である。フリップフロップ２１１ｅは、加算器２１０から供給されるデータを保持し、加算器２１０から新たなデータが供給されてきたときには、これを上書きして保持する。なお、上書きされる前にフリップフロップ２１１ｅに保持されていたデータは、フリップフロップ２１１ｄに供給される。また、フリップフロップ２１１ｄは、フリップフロップ２１１ｅから供給されるデータを保持し、フリップフロップ２１１ｅから新たなデータが供給されてきたときには、これを上書きして保持する。また、フリップフロップ２１１ｃ、２１１ｂおよび２１１ａも同様に動作するが、フリップフロップ２１１ａには、データを供給すべき後段のフリップフロップが存在しない。
【００２１】
シフト演算器２１２ａ、２１２ｂ、２１２ｃ、２１２ｄおよび２１２ｅは、それぞれ、左方向に所定のビット数のシフト演算を実行する演算回路である。シフト演算器２１２ａ、２１２ｂ、２１２ｃ、２１２ｄおよび２１２ｅのそれぞれにおけるシフト演算のビット数は、シフト演算器２０７ａ、２０７ｂ、２０７ｃ、２０７ｄおよび２０７ｅのそれと同様に、画像処理装置２００が実現するフィルタ演算に相当するフィルタのフィルタ係数に応じて決められるが、詳細については後述する。本実施形態においては、それぞれのシフト演算器におけるシフト演算のビット数は、シフト演算器２１２ａが「０」、２１２ｂが「１」、２１２ｃが「２」、２１２ｄが「１」、２１２ｅが「０」である。なお、ここにおいても、シフト演算のビット数が「０」であるというのは、シフト演算を実行しないことと同意である。
【００２２】
加算器２１３は、シフト演算器２１２ａ、２１２ｂ、２１２ｃ、２１２ｄおよび２１２ｅによる演算結果を表すデータを加算する演算回路である。除算器２１４は、加算器２１３により供給されるデータを所定の値Ｃで除算する演算回路である。除算器２１４における値Ｃ、すなわち除数は、画像処理装置２００が実現するフィルタ演算に相当するフィルタに応じて決められる正規化のための値であるが、詳細については後述する。
【００２３】
なお、以下においては、シフト演算器２０７ａ、２０７ｂ、２０７ｃ、２０７ｄおよび２０７ｅの各々を区別する必要がない場合には、これらを総称して「シフト演算器２０７」という。同様に、フリップフロップ２１１ａ〜２１１ｅおよびシフト演算器２１２ａ〜２１２ｅについても、各々を区別する必要がない場合には、これらを総称して「フリップフロップ２１１」および「シフト演算器２１２」という。
【００２４】
画像処理部２０のうち、シフト演算器２０７、加算器２０８ａ、２０８ｂ、フリップフロップ２０９、加算器２１０、フリップフロップ２１１、シフト演算器２１２、加算器２１３および除算器２１４は、フィルタ係数の集合（説明の便宜上、以下においては単に「フィルタ」ともいう。）で表されるフィルタ演算を実現するものである。そこで、以下では、これらの各部を総称して「フィルタ演算部５０」という。
【００２５】
フィルタ演算部５０は、図４に示すフィルタに相当するフィルタ演算を実行するものである。つまり、画像処理部２０におけるフィルタ演算を行列で表現すると、行列Ｍは以下の（１）式のようになる。
【数１】
2008017044.tif 000003
【００２６】
本実施形態におけるフィルタ、すなわち行列Ｍには、以下の特徴がある。すなわち、第ｉ行第ｊ列（ただし、ｉおよびｊは、２≦ｉ≦５、２≦ｊ≦５をそれぞれ満たす整数）のフィルタ係数の分子は、第１行第ｊ列のフィルタ係数の分子と第ｉ行第１列のフィルタ係数の分子の積により表される。
【００２７】
また、第１行のフィルタ係数の分子と第１列のフィルタ係数の分子は、シフト演算器２０７ａ〜２０７ｅおよびシフト演算器２１２ａ〜２１２ｅにおけるシフト演算のビット数と所定の対応関係を有する。具体的には、シフト演算器２０７ｂ、２０７ｃ、２０７ｄおよび２０７ｅにおけるシフト演算のビット数は、それぞれ、第１行第１列、第２行第１列、第３行第１列、第４行第１列および第５行第１列のフィルタ係数の分子によって定められ、シフト演算器２１２ａ、２１２ｂ、２１２ｃ、２１２ｄおよび２１２ｅにおけるシフト演算のビット数は、それぞれ、第１行第１列、第１行第２列、第１行第３列、第１行第４列および第１行第５列のフィルタ係数の分子によって定められる。これらの値の間には、それぞれのシフト演算のビット数をｎ、それぞれのフィルタ係数の分子をｍとしたとき、以下の（２）式の関係が成立する。
【数２】
2008017044.tif 000004
【００２８】
つまり、例えば左方向に１ビットのシフト演算を行う場合には、２の１乗が「２」であることから、対応するフィルタ係数の分子ｍは「２」となる。これは、第１行第２列のフィルタ係数の分子とシフト演算器２０７ｂにおけるシフト演算のビット数の関係に対応する。また、第１行第４列とシフト演算器２０７ｄ、第２行第１列とシフト演算器２１２ｂおよび第４行第１列とシフト演算器２１２ｄのそれぞれについても同様の関係を有している。また、例えば左方向に２ビットのシフト演算を行う場合には、２の２乗が「４」であることから、対応するフィルタ係数の分子ｍは「４」となる。これは、第１行第３列のフィルタ係数の分子とシフト演算器２０７ｃにおけるシフト演算のビット数の関係や、第３行第１列のフィルタ係数の分子とシフト演算器２１２ｃにおけるシフト演算のビット数の関係に対応する。
【００２９】
なお、正規化のための値Ｃ、すなわち各フィルタ係数の分母に相当する値は、例えば、各フィルタ係数の分子の総和であると望ましい。この場合、本実施形態における値Ｃは「１００」となる。しかしながら、もちろん、値Ｃは他の方法により決定されてもよい。
【００３０】
以上の構成のもと、画像形成装置１００は、読み取った原稿に基づいて画像データを生成し、生成した画像データに種々の画像処理を実行し、その後、画像データに応じた画像を形成する。このとき、画像処理装置２００は、上記（１）式によって定められるフィルタ演算を画像処理の一部として実行する。以下では、画像処理装置２００がフィルタ演算を実行する際の動作について説明する。
【００３１】
画像読取部１から階調データが入力されると、画像処理装置２００の制御部３０は、これを画像メモリ１０に順次格納する。そして、所定量の階調データが画像メモリ１０に格納されると、制御部３０は画像メモリ１０から階調データを読み出し、画像処理部２０のＲＡＭ２０４に書き込んでいく。このときＲＡＭ２０４に書き込まれる階調データは、画像データの４行分に相当する。
【００３２】
ＲＡＭ２０４に書き込まれる階調データについて、図５および図６を参照しながら説明する。図５は、画像メモリ１０に格納された状態の階調データを模式的に示す図であり、図６は、ＲＡＭ２０４に書き込まれた状態の階調データを模式的に示す図である。なお、これらの図においては、説明の便宜上、行をアルファベットで表記し、列を数字で表記している。ここにおいて、第Ａ行が第１行、第Ｂ行が第２行に対応しており、以下同様に、第Ｃ行（第３行）、第Ｄ行（第４行）、…、というように続く。
【００３３】
図５に示すように、階調データは、画像メモリ１０においては行方向および列方向に連続的に格納されている。制御部３０は、このように格納された階調データを読み出し、階調データが図６に示すような順序で並ぶようにＲＡＭ２０４に書き込む。つまり、制御部３０は、列方向に連続する行（第Ａ行と第Ｂ行、第Ｃ行と第Ｄ行）の隣り合う階調データが同一ワード内に記憶されるように階調データを書き込む。その結果、ＲＡＭ２０４においては、第１ワードには第Ａ行第１列と第Ｂ行第１列、第２ワードには第Ｃ行第１列と第Ｄ行第１列、第３ワードには第Ａ行第２列と第Ｂ行第２列、というように階調データが書き込まれていく。なお、図６においては、第Ａ行第１列の階調データ（８ビット）が上位側にあり、第Ｂ行第１列の階調データ（８ビット）が下位側にある。これらは合わせて１６ビットであり、ワード全体を占めている。
【００３４】
このように階調データが書き込まれると、制御部３０が読み出しアドレスとして第１ワードのアドレスを指定することで、第Ａ行第１列と第Ｂ行第１列の階調データを連続的に読み出すことができる。また、制御部３０が読み出しアドレスとして第２ワードのアドレスを指定することで、第Ｃ行第１列と第Ｄ行第１列の階調データを連続的に読み出すことができる。そして、このような読み出し動作を連続的に行うことによって、４行分の階調データを連続的に読み出すことができる。
【００３５】
なお、以下においては、階調データのそれぞれを区別するために、画像メモリ１０に格納されているときの行と列の位置に応じた表記を行う。具体的には、例えば、第Ａ行第１列の階調データを「Ａ１」、第Ｂ行第２列の階調データを「Ｂ２」、というように、それぞれの行と列の位置に対応する符号を階調データに付す。
【００３６】
さて、上述のように階調データがＲＡＭ２０４に書き込まれると、制御部３０は、フィルタ演算部５０に階調データを入力すべく、各階調データの読み出しを行う。本実施形態におけるフィルタは５×５（画素）のフィルタサイズを有するため、制御部３０は５行分の階調データの読み出しを行う。５行分の階調データのうちの４行分はＲＡＭ２０４に書き込まれているから、制御部３０は４行分の階調データをＲＡＭ２０４から読み出す。一方、これら４行に後続する５行目の階調データは画像メモリ１０に格納されているから、制御部３０はこの５行目の階調データを画像メモリ１０から読み出す。このとき制御部３０が行う動作は、以下の通りである。
【００３７】
図７は、ＲＡＭ２０４の記憶内容の変化を模式的に示す図である。以下、同図を適宜参照しながら、制御部３０が行う動作を説明する。まず、制御部３０は、第Ｅ行第１列の階調データ、すなわち階調データＥ１を画像メモリ１０から読み出し、これをフリップフロップ２０１に記憶させる。次に、制御部３０は、４行分の階調データＡ１、Ｂ１、Ｃ１およびＤ１をＲＡＭ２０４の第１および第２ワードから連続的に読み出し、これをフリップフロップ２０５に記憶させる。そして、制御部３０は、フリップフロップ２０１およびフリップフロップ２０５から５行分の階調データＡ１、Ｂ１、Ｃ１、Ｄ１およびＥ１を読み出し、それぞれをフィルタ演算部５０に入力する。
【００３８】
フィルタ演算部５０は、対応する階調データのそれぞれについて、図４に示すフィルタ係数を乗じ、その総和を算出して出力する。フィルタ演算部５０から出力されるデータは、例えば、フィルタの中央に位置する階調データの演算結果に対応する。なお、フィルタ演算部５０において、シフト演算器２０７による演算結果を加算する処理（すなわち前段の処理）は、階調データの演算（シフト演算）結果どうしの総和を列単位で算出する処理に対応している。また、フィルタ演算部５０において、シフト演算器２１２による演算結果を加算する処理（すなわち後段の処理）は、階調データの演算（シフト演算）結果どうしの総和を行単位で算出する処理に対応している。すなわち、加算器２１０において各列の階調データの演算結果を加算し、その加算結果に対してシフト演算器２１２ａ、２１２ｂ、２１２ｃ、２１２ｄおよび２１２ｅにおいて各行に対応するシフト演算を行い、その結果を加算器２１３において加算することにより、図４に示すフィルタに相当するフィルタ演算を実行している。
【００３９】
このようなフィルタ演算を実行している間に、制御部３０は、ＲＡＭ２０４の書き換えを適当なタイミングで行っている。制御部３０は、５行１列分の階調データをフィルタ演算部５０に入力する毎に、その階調データを読み出した記憶領域を書き換える。例えば、階調データＡ１〜Ｅ１をフィルタ演算部５０に入力したときには、制御部３０はＲＡＭ２０４の第１および第２ワードに記憶されたデータの書き換えを行う。具体的には、制御部３０は、フリップフロップ２０５から第１ワードの階調データＡ１、Ｂ１を読み出し、これをシフト演算器２０２に入力するとともに、フリップフロップ２０５から第２ワードの階調データＣ１を読み出し、これをＯＲ演算器２０３に入力する。
【００４０】
ＯＲ演算器２０３には、シフト演算器２０２による演算結果と階調データＣ１とが入力される。シフト演算器２０２では８ビットのビットシフトが行われるので、ＯＲ演算器２０３による演算結果は、上位８ビットが階調データＢ１と同等であり、下位８ビットが階調データＣ１と同等であるデータとなる。そして、制御部３０は、このデータをＲＡＭ２０４の第１ワードに書き込む。その結果、この書き込みの前後において、ＲＡＭ２０４の記憶内容は図７の（ａ）から（ｂ）のように変化する。
【００４１】
このようにして第１ワードの書き換えを行ったら、制御部３０は第２ワードの書き換えを行う。具体的には、制御部３０は、フリップフロップ２０５から第２ワードの階調データＣ１、Ｄ１を読み出し、これをシフト演算器２０２に入力するとともに、フリップフロップ２０１から階調データＥ１を読み出し、これをＯＲ演算器２０３に入力する。
【００４２】
ＯＲ演算器２０３には、シフト演算器２０２による演算結果と階調データＥ１とが入力されるので、ＯＲ演算器２０３による演算結果は、上位８ビットが階調データＤ１と同等であり、下位８ビットが階調データＥ１と同等であるデータとなる。そして、制御部３０は、このデータをＲＡＭ２０４の第２ワードに書き込む。その結果、この書き込みの前後において、ＲＡＭ２０４の記憶内容は図７の（ｂ）から（ｃ）のように変化する。
【００４３】
以上の処理が第１列の第Ａ行〜第Ｅ行に相当する処理である。制御部３０は、このような処理を第２列についても同様に実行する。すなわち、制御部３０は、階調データＥ２を画像メモリ１０から読み出すとともに、階調データＡ２、Ｂ２、Ｃ２およびＤ２をＲＡＭ２０４から読み出し、その後第３および第４ワードの書き換えを行う。これにより、ＲＡＭ２０４の記憶内容は、図７の（ｃ）から（ｄ）、そして（ｅ）のように変化する。そしてさらに、制御部３０は、このような処理を第３列以降についても同様に実行する。
【００４４】
このような処理をＲＡＭ２０４の全体について実行すると、図７の（ｆ）に示すように、記憶されていた第Ａ行〜第Ｄ行の階調データのうち、第Ａ行の階調データのみが削除される。そして、第Ａ行の階調データにかわって、第Ｅ行の階調データが記憶される。第Ｂ行〜第Ｅ行の階調データは、第Ｂ行と第Ｃ行が同一ワードに記憶され、第Ｄ行と第Ｅ行が同一ワードに記憶されるとともに、これらのワードが交互に並ぶように配置される。そのため、第Ｂ行〜第Ｆ行についても、第Ａ行〜第Ｅ行の場合と同様の要領でフィルタ演算を実行することが可能となる。
【００４５】
このように、本実施形態の画像処理装置２００によれば、フィルタ演算部５０に階調データを入力するためのメモリ（ＲＡＭ２０４）を１個とすることが可能となる。また、この画像処理装置２００によれば、制御部３０が、必要な階調データが連続的に読み出されるようにメモリに対して書き込みおよび読み出しを行うので、１個のメモリであっても処理速度の低下を抑制することが可能となる。加えて、この画像処理装置２００によれば、メモリの数がフィルタサイズに依存しないので、使用するフィルタが異なるサイズのものに切り替えられた場合であっても、メモリを無駄なく効率的に使用することが可能となる。
【００４６】
なお、この画像処理装置２００において、使用するフィルタに応じて変化するのは、画像処理部２０のうちフィルタ演算部５０のみであって、それ以外の部分の構成については、本質的には同様である。ゆえに、本実施形態の画像処理装置２００は、種々のフィルタ演算に適用可能であるといえる。ただし、フィルタサイズが異なる場合には、選択スイッチ２０６の振り分け先の数が変化する。
【００４７】
［第２実施形態］
続いて、本発明の第２の実施形態について説明する。本実施形態は、画像処理装置内の構成および動作を除けば、上述した第１実施形態と同様である。そこで、以下においては、上述した第１実施形態と異なる部分を中心に説明する。なお、上述した第１実施形態と同様の構成要素については、本実施形態においても同じ符号を付し、その説明を適宜省略する。また、上述した第１実施形態の画像処理装置２００および画像処理部２０と区別するために、本実施形態の画像処理装置および画像処理部には、それぞれ、「画像処理装置２００ａ」、「画像処理部２０ａ」と符号を付す。
【００４８】
図８は、画像処理部２０ａの構成を示す図である。本実施形態の画像処理部２０ａを図３に示した第１実施形態の画像処理部２０と比較すると、画像処理部２０のメモリは１個（ＲＡＭ２０４）であるのに対して、画像処理部２０ａのメモリは２個（ＲＡＭ２０４ａ、２０４ｂ）である点に主たる相違がある。また、これに伴い、画像処理部２０では１個ずつであったＲＡＭ２０４周辺の構成（シフト演算器２０２、ＯＲ演算器２０３およびフリップフロップ２０５）も、それぞれ２個ずつ（シフト演算器２０２ａ、２０２ｂ、ＯＲ演算器２０３ａ、２０３ｂおよびフリップフロップ２０５ａ、２０５ｂ）となり、選択スイッチ２０６に相当する部分はなくなっている。
【００４９】
なお、フィルタ演算部５０ａの内部構成は、上述した第１実施形態のフィルタ演算部５０とほぼ同様であり、対応するフィルタも、上述した第１実施形態のフィルタ（図４）と同様である。図８において、加算器２１０ａは、第１実施形態の加算器２０８ａ、２０８ｂ、フリップフロップ２０９および加算器２１０に相当するものである。第１実施形態においては、第Ａ行および第Ｂ行の階調データと第Ｃ行〜第Ｅ行の階調データの出力タイミングが一致しないためにフリップフロップ２０９を設けていたが、本実施形態においてはこれらの出力タイミングが一致するため、１個の加算器で加算をすることが可能である。
【００５０】
ＲＡＭ２０４ａおよび２０４ｂは、それぞれ２ライン分の階調データを記憶する記憶容量を有する。つまり、ＲＡＭ２０４ａ、２０４ｂそれぞれの記憶容量は、上述したＲＡＭ２０４の記憶容量の半分である。また、フリップフロップ２０５ａおよび２０５ｂは、それぞれ１６ビット分のデータを保持する。つまりこれも、フリップフロップ２０５が保持するデータの半分である。
【００５１】
続いて、画像処理装置２００ａにおける動作を説明する。まず、画像読取部１から階調データが入力されると、画像処理装置２００ａの制御部３０は、これを画像メモリ１０に順次格納する。このとき、階調データは図５に示すような状態で画像メモリ１０に格納される。そして、所定量の階調データが画像メモリ１０に格納されると、制御部３０は画像メモリ１０から階調データを読み出し、画像処理部２０のＲＡＭ２０４ａおよび２０４ｂに書き込んでいく。このときＲＡＭ２０４ａおよび２０４ｂに書き込まれる階調データは、それぞれ２行分である。
【００５２】
ＲＡＭ２０４ａおよび２０４ｂに書き込まれる階調データについて、図９および図１０を参照しながら説明する。図９は、ＲＡＭ２０４ａに書き込まれた状態の階調データを模式的に示す図であり、図１０は、ＲＡＭ２０４ｂに書き込まれた状態の階調データを模式的に示す図である。なお、階調データの表記方法は、上述した第１実施形態の図６に準じている。
【００５３】
これらの図に示すように、ＲＡＭ２０４ａには第Ａ行と第Ｂ行の階調データが格納され、ＲＡＭ２０４ｂには第Ｃ行と第Ｄ行の階調データが格納される。ＲＡＭ２０４ａにおいては、第１ワードには第Ａ行第１列と第Ｂ行第１列、第２ワードには第Ａ行第２列と第Ｂ行第２列、第３ワードには第Ａ行第３列と第Ｂ行第３列、というように階調データが書き込まれていく。また、ＲＡＭ２０４ｂにおいては、第１ワードには第Ｃ行第１列と第Ｄ行第１列、第２ワードには第Ｃ行第２列と第Ｄ行第２列、第３ワードには第Ｃ行第３列と第Ｄ行第３列、というように階調データが書き込まれていく。
【００５４】
このようにして階調データがＲＡＭ２０４ａおよび２０４ｂに書き込まれると、制御部３０は、フィルタ演算部５０ａに階調データを入力すべく、各階調データの読み出しを行う。本実施形態におけるフィルタは５×５（画素）のフィルタサイズを有するため、制御部３０は５行分の階調データの読み出しを行う。５行分の階調データのうちの４行分はＲＡＭ２０４ａおよび２０４ｂに書き込まれているから、制御部３０は４行分の階調データをＲＡＭ２０４ａおよび２０４ｂから読み出す。一方、これら４行に後続する５行目の階調データは画像メモリ１０に格納されているから、制御部３０はこの５行目の階調データを画像メモリ１０から読み出す。このとき制御部３０が行う動作は、以下の通りである。
【００５５】
図１１は、ＲＡＭ２０４ａの記憶内容の変化を模式的に示す図であり、図１２は、ＲＡＭ２０４ｂの記憶内容の変化を模式的に示す図である。以下、これらの図を適宜参照しながら、制御部３０が行う動作を説明する。まず、制御部３０は、第Ｅ行第１列の階調データ、すなわち階調データＥ１を画像メモリ１０から読み出し、これをフリップフロップ２０１に記憶させる。次に、制御部３０は、４行分の階調データＡ１、Ｂ１、Ｃ１およびＤ１をＲＡＭ２０４ａおよび２０４ｂの第１ワードからそれぞれ読み出し、これをフリップフロップ２０５ａおよび２０５ｂに記憶させる。そして、制御部３０は、フリップフロップ２０１およびフリップフロップ２０５ａおよび２０５ｂから５行分の階調データＡ１、Ｂ１、Ｃ１、Ｄ１およびＥ１を読み出し、それぞれをフィルタ演算部５０ａに入力する。フィルタ演算部５０ａは、対応する階調データのそれぞれについて、図４に示すフィルタ係数を乗じ、その総和を算出して出力する。
【００５６】
フィルタ演算を実行している間に、制御部３０は、ＲＡＭ２０４ａおよび２０４ｂの書き換えを適当なタイミングで行っている。制御部３０は、５行１列分の階調データをフィルタ演算部５０ａに入力する毎に、その階調データを読み出した記憶領域を書き換える。例えば、階調データＡ１〜Ｅ１をフィルタ演算部５０ａに入力したときには、制御部３０はＲＡＭ２０４ａの第１ワードに記憶されたデータの書き換えを行う。具体的には、制御部３０は、フリップフロップ２０５ａから第１ワードの階調データＡ１、Ｂ１を読み出し、これをシフト演算器２０２ａに入力するとともに、フリップフロップ２０５ｂから第１ワードの階調データＣ１を読み出し、これをＯＲ演算器２０３ａに入力する。
【００５７】
ＯＲ演算器２０３ａには、シフト演算器２０２ａによる演算結果と階調データＣ１とが入力される。シフト演算器２０２ａでは８ビットのビットシフトが行われるので、ＯＲ演算器２０３ａによる演算結果は、上位８ビットが階調データＢ１と同等であり、下位８ビットが階調データＣ１と同等であるデータとなる。そして、制御部３０は、このデータをＲＡＭ２０４ａの第１ワードに書き込む。その結果、この書き込みの前後において、ＲＡＭ２０４ａの記憶内容は図１１の（ａ）から（ｂ）のように変化する。
【００５８】
また、ＲＡＭ２０４ａの書き換えに並行して、制御部３０はＲＡＭ２０４ｂの第１ワードに記憶されたデータの書き換えを行う。制御部３０は、フリップフロップ２０５ｂから第１ワードの階調データＣ１、Ｄ１を読み出し、これをシフト演算器２０２ｂに入力するとともに、フリップフロップ２０１から第１ワードの階調データＥ１を読み出し、これをＯＲ演算器２０３ｂに入力する。
【００５９】
ＯＲ演算器２０３ｂには、シフト演算器２０２ｂによる演算結果と階調データＥ１とが入力される。シフト演算器２０２ｂでは８ビットのビットシフトが行われるので、ＯＲ演算器２０３ｂによる演算結果は、上位８ビットが階調データＤ１と同等であり、下位８ビットが階調データＥ１と同等であるデータとなる。そして、制御部３０は、このデータをＲＡＭ２０４ｂの第１ワードに書き込む。その結果、この書き込みの前後において、ＲＡＭ２０４ｂの記憶内容は図１２の（ａ）から（ｂ）のように変化する。
【００６０】
このようにして第１ワードの書き換えを行ったら、制御部３０は第２ワードの書き換えを行う。具体的には、制御部３０は、フリップフロップ２０５ａから第２ワードの階調データＡ２、Ｂ２を読み出し、これをシフト演算器２０２ａに入力するとともに、フリップフロップ２０５ｂから階調データＣ２を読み出し、これをＯＲ演算器２０３ａに入力する。ここで、制御部３０は、ＲＡＭ２０４ａの第１ワードを書き換えたときと同様の処理を実行することによって、上位８ビットが階調データＢ２と同等であり、下位８ビットが階調データＣ２と同等であるデータをＲＡＭ２０４ａの第２ワードに書き込む。その結果、この書き込みの前後において、ＲＡＭ２０４ａの記憶内容は図１１の（ｂ）から（ｃ）のように変化する。また、ＲＡＭ２０４ｂについても同様の処理を実行することによって、ＲＡＭ２０４ｂの記憶内容は図１２の（ｂ）から（ｃ）のように変化する。
【００６１】
このような処理をＲＡＭ２０４ａの全体について実行すると、ＲＡＭ２０４ａの記憶内容は図１１の（ｄ）のようになる。つまり、第Ａ行および第Ｂ行について記憶されていた階調データのうち第Ａ行の階調データが削除され、かわりに第Ｃ行の階調データが記憶される。このとき、各ワードの下位８ビット側に記憶されていた第Ｂ行の階調データは、上位８ビット側へと移動する。また、同様に、ＲＡＭ２０４ｂについても同様に、その記憶内容は図１２の（ｄ）のようになる。つまり、第Ｃ行および第Ｄ行について記憶されていた階調データのうち第Ｃ行の階調データが削除され、かわりに第Ｅ行の階調データが記憶される。このとき、各ワードの下位８ビット側に記憶されていた第Ｄ行の階調データは、上位８ビット側へと移動する。
【００６２】
本実施形態の画像処理装置２００ａによっても、上述した第１実施形態とほぼ同様の効果が得られる。本実施形態の画像処理装置２００ａによれば、メモリの個数が２個に増加するが、そのぶん、階調データの読み書きを第１実施形態の画像処理装置２００よりも高速にすることが可能となる。
【００６３】
［変形例］
以上においては、２つの好適な実施形態を例示して本発明を説明したが、本発明は上述した実施形態に限定されるものではなく、その他の種々の態様にて実施することも可能である。本発明においては、例えば、上述した実施形態に対して以下のような変形を適用することができる。なお、これらの変形は、各々を適宜に組み合わせることも可能である。
【００６４】
上述した実施形態は、本発明に係る画像処理装置を画像形成装置に搭載した場合を例示したものであるが、本発明に係る画像処理装置は、画像を出力（表示、プリント等）する種々の電子機器に対して適用することが可能である。また、本発明は、画像処理装置のみならず、この画像処理装置の機能をコンピュータに実行させるためのプログラムや、このプログラムを記憶した記録媒体として提供することも可能である。
【００６５】
また、本発明において適用されるフィルタの種類も、上述した実施形態に例示されたものに限定されない。例えば、フィルタサイズやフィルタ係数は適宜に変更可能である。上述した実施形態の例によれば、フィルタ係数を変更することによって、近傍の画素に対する種々の重み付け平均を実現することができる。また、上述した実施形態においては、その構成上、フィルタ係数の分子は２のｎ乗に限定されていたが、ビットシフトと加算（または減算）とを組み合わせることによって、その他のフィルタ係数とすることもできる。
【００６６】
また、上述の実施形態においては、ラインメモリに相当するメモリを１個設ける構成（第１実施形態）と、２個設ける構成（第２実施形態）とを示したが、同様のメモリを３個以上設ける構成であってもよい。例えば、フィルタサイズが７×７（画素）の場合であれば、第２実施形態に示した構成に、同実施形態のシフト演算器２０２ａ（２０２ｂ）、ＯＲ演算器２０３ａ（２０３ｂ）、ＲＡＭ２０４ａ（２０５ｂ）およびフリップフロップ２０５ａ（２０５ｂ）と同様の構成をさらに加え、３個のＲＡＭからそれぞれ２行分ずつの階調データを供給する構成とすればよい。また、あるいは、第１実施形態に示した構成において、選択スイッチ２０６の分岐を増やすことによっても実現可能である。このように、上述の２つの実施形態の構成を適宜変更することによって、フィルタサイズを５行よりも大きくすることもできるし、逆に小さくすることもできる。
【図面の簡単な説明】
【００６７】
【図１】本発明の一実施形態である画像形成装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態に係る画像処理装置の構成を示すブロック図である。
【図３】同実施形態の画像処理部の構成を示すブロック図である。
【図４】同実施形態の画像処理部が実行するフィルタ演算に相当するフィルタを示す図である。
【図５】同実施形態の画像メモリに格納された状態の階調データを模式的に示す図である。
【図６】同実施形態のＲＡＭに書き込まれた状態の階調データを模式的に示す図である。
【図７】同実施形態のＲＡＭの記憶内容の変化を模式的に示す図である。
【図８】本発明の第２の実施形態に係る画像処理部の構成を示す図である。
【図９】同実施形態の第１のＲＡＭに書き込まれた状態の階調データを模式的に示す図である。
【図１０】同実施形態の第２のＲＡＭに書き込まれた状態の階調データを模式的に示す図である。
【図１１】同実施形態の第１のＲＡＭの記憶内容の変化を模式的に示す図である。
【図１２】同実施形態の第２のＲＡＭの記憶内容の変化を模式的に示す図である。
【図１３】一般的なラインメモリの構成を例示した図である。
【符号の説明】
【００６８】
１００…画像形成装置、１…画像読取部、２…画像加工部、３…画像形成部、２００…画像処理装置、１０…画像メモリ、２０…画像処理部、３０…制御部、４０…バス、５０…フィルタ演算部、２０１、２０５、２０５ａ、２０５ｂ、２０９、２１１ａ、２１１ｂ、２１１ｃ、２１１ｄ、２１１ｅ…フリップフロップ、２０２、２０２ａ、２０２ｂ、２０７ａ、２０７ｂ、２０７ｃ、２０７ｄ、２０７ｅ、２１２ａ、２１２ｂ、２１２ｃ、２１２ｄ、２１２ｅ…シフト演算器、２０３、２０３ａ、２０３ｂ…ＯＲ演算器、２０４、２０４ａ、２０４ｂ…ＲＡＭ、２０６…選択スイッチ、２０８ａ、２０８ｂ、２１０、２１３…加算器、２１４…除算器
【図１】
2008017044.tif 000005
【図２】
2008017044.tif 000006
【図３】
2008017044.tif 000007
【図４】
2008017044.tif 000008
【図５】
2008017044.tif 000009
【図６】
2008017044.tif 000010
【図７】
2008017044.tif 000011
【図８】
2008017044.tif 000012
【図９】
2008017044.tif 000013
【図１０】
2008017044.tif 000014
【図１１】
2008017044.tif 000015
【図１２】
2008017044.tif 000016
【図１３】
2008017044.tif 000017