(57)【特許請求の範囲】
【請求項１】
制御装置から書き込まれ、第１画像処理プログラムの生成に使用される１以上のパラメータで構成される１のパラメータ情報を記憶するデータ領域と、前記第１画像処理プログラムを生成するための生成プログラムを記憶するプログラム領域と、を有する記憶手段と、
前記１のパラメータ情報及び前記生成プログラムを用いて、前記１のパラメータ情報の内容に応じて実行する処理が異なる前記第１画像処理プログラムを生成する生成手段と、
前記第１画像処理プログラムを実行して画像処理を行わせる実行手段と、
を備え、
前記記憶手段は、更に、前記プログラム領域に、予め定められた１以上のパラメータで構成される所定パラメータ情報の内容に応じた処理を実行する第２画像処理プログラムを記憶し、
前記１のパラメータ情報と前記所定パラメータ情報とにおいて構成する各パラメータ同士が全て同一であるか否かを判定する判定手段を更に備え、
前記生成手段は、前記１のパラメータ情報が前記所定パラメータ情報と同一でない場合、前記第１画像処理プログラムを生成し、
前記実行手段は、前記１のパラメータ情報が前記所定パラメータ情報と同一でない場合、前記第１画像処理プログラムを実行して画像処理を行わせ、前記１のパラメータ情報が前記所定パラメータ情報と同一である場合、前記第２画像処理プログラムを実行して画像処理を行わせることを特徴とする画像処理装置。
【請求項２】
制御装置から書き込まれ、第１画像処理プログラムの生成に使用される１以上のパラメータで構成されるパラメータ情報を記憶するデータ領域と、前記第１画像処理プログラムを生成するための生成プログラムを記憶するプログラム領域と、を有する記憶手段と、
前記パラメータ情報及び前記生成プログラムを用いて、前記パラメータ情報の内容に応じて実行する処理が異なる前記第１画像処理プログラムを生成する生成手段と、
前記第１画像処理プログラムを実行して画像処理を行わせる実行手段と、
を備え、
前記記憶手段は、更に、前記データ領域に前記制御装置から書き込まれる情報であって画像処理対象の画像データの生成モードが特定生成モードであるか否かを示す生成モード情報を記憶するとともに、前記プログラム領域に前記特定生成モードに応じた処理を実行する第２画像処理プログラムを記憶し、
前記生成モード情報が前記特定生成モードを示すか否かを判定する判定手段を更に備え、
前記生成手段は、前記生成モード情報が前記特定生成モードを示さない場合、前記第１画像処理プログラムを生成し、
前記実行手段は、前記生成モード情報が前記特定生成モードを示さない場合、前記第１画像処理プログラムを実行して画像処理を行わせ、前記生成モード情報が前記特定生成モードを示す場合、前記第２画像処理プログラムを実行して画像処理を行わせることを特徴とする画像処理装置。
【請求項３】
前記特定生成モード及び前記第２画像処理プログラムは、過去に画像処理された画像データの生成モードの履歴に応じて、前記制御装置により更新されることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記生成手段は、乗算をビットシフトと加減算との組み合わせに展開して、前記第１画像処理プログラムを生成することを特徴とする請求項１〜３のいずれか１つに記載の画像処理装置。
【請求項５】
前記生成手段は、複数種類の乗数の値が同一である場合、被乗数を加算してから乗算をビットシフトと加減算との組み合わせに展開して、前記第１画像処理プログラムを生成することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記第１画像処理プログラムは、フィルタ演算プログラムであり、
前記１のパラメータ情報は、前記１以上のパラメータとして、フィルタ係数の係数値と平滑強度の強度値と前記フィルタ係数及び前記平滑強度いずれかを指定する指定情報とを含み、
前記生成手段は、前記指定情報で指定された情報の値及び前記生成プログラムを用いて、前記フィルタ演算プログラムを生成することを特徴とする請求項１〜５のいずれか１つに記載の画像処理装置。
【請求項７】
請求項１〜６のいずれか１つに記載の画像処理装置と、
前記パラメータ情報を１以上記憶する不揮発性の記憶手段と、
前記１以上のパラメータ情報のいずれか１つを前記画像処理装置の前記記憶手段に書き込む書込手段と、
を備えることを特徴とする画像形成装置。
【請求項８】
画像処理装置で実行される画像処理方法であって、
前記画像処理装置は、
制御装置から書き込まれ、第１画像処理プログラムの生成に使用される１以上のパラメータで構成される１のパラメータ情報を記憶するデータ領域と、前記第１画像処理プログラムを生成するための生成プログラムを記憶するプログラム領域と、を有する記憶手段を備え、
生成手段が、前記１のパラメータ情報及び前記生成プログラムを用いて、前記１のパラメータ情報の内容に応じて実行する処理が異なる前記第１画像処理プログラムを生成する生成ステップと、
実行手段が、前記第１画像処理プログラムを実行して画像処理を行わせる実行ステップと、
を含み、
前記記憶手段は、更に、前記プログラム領域に、予め定められた１以上のパラメータで構成される所定パラメータ情報の内容に応じた処理を実行する第２画像処理プログラムを記憶し、
判定手段が、前記１のパラメータ情報と前記所定パラメータ情報とにおいて構成する各パラメータ同士が全て同一であるか否かを判定する判定ステップを更に含み、
前記生成ステップでは、前記１のパラメータ情報が前記所定パラメータ情報と同一でない場合、前記第１画像処理プログラムを生成し、
前記実行ステップでは、前記１のパラメータ情報が前記所定パラメータ情報と同一でない場合、前記第１画像処理プログラムを実行して画像処理を行わせ、前記１のパラメータ情報が前記所定パラメータ情報と同一である場合、前記第２画像処理プログラムを実行して画像処理を行わせることを特徴とする画像処理方法。
【請求項９】
画像処理装置で実行される画像処理方法であって、
前記画像処理装置は、
制御装置から書き込まれ、第１画像処理プログラムの生成に使用される１以上のパラメータで構成されるパラメータ情報を記憶するデータ領域と、前記第１画像処理プログラムを生成するための生成プログラムを記憶するプログラム領域と、を有する記憶手段を備え、
生成手段が、前記パラメータ情報及び前記生成プログラムを用いて、前記パラメータ情報の内容に応じて実行する処理が異なる前記第１画像処理プログラムを生成する生成ステップと、
実行手段が、前記第１画像処理プログラムを実行して画像処理を行わせる実行ステップと、
を含み、
前記記憶手段は、更に、前記データ領域に前記制御装置から書き込まれる情報であって画像処理対象の画像データの生成モードが特定生成モードであるか否かを示す生成モード情報を記憶するとともに、前記プログラム領域に前記特定生成モードに応じた処理を実行する第２画像処理プログラムを記憶し、
判定手段が、前記生成モード情報が前記特定生成モードを示すか否かを判定する判定ステップを更に含み、
前記生成ステップでは、前記生成モード情報が前記特定生成モードを示さない場合、前記第１画像処理プログラムを生成し、
前記実行ステップでは、前記生成モード情報が前記特定生成モードを示さない場合、前記第１画像処理プログラムを実行して画像処理を行わせ、前記生成モード情報が前記特定生成モードを示す場合、前記第２画像処理プログラムを実行して画像処理を行わせることを特徴とする画像処理方法。
【請求項１０】
制御装置から書き込まれ、第１画像処理プログラムの生成に使用される１以上のパラメータで構成される１のパラメータ情報を記憶するデータ領域と前記第１画像処理プログラムを生成するための生成プログラムを記憶するプログラム領域とを有する記憶手段を備えるコンピュータに、
前記１のパラメータ情報及び前記生成プログラムを用いて、前記１のパラメータ情報の内容に応じて実行する処理が異なる前記第１画像処理プログラムを生成する生成ステップと、
前記第１画像処理プログラムを実行して画像処理を行わせる実行ステップと、
を実行させ、
前記記憶手段は、更に、前記プログラム領域に、予め定められた１以上のパラメータで構成される所定パラメータ情報の内容に応じた処理を実行する第２画像処理プログラムを記憶し、
前記１のパラメータ情報と前記所定パラメータ情報とにおいて構成する各パラメータ同士が全て同一であるか否かを判定する判定ステップを前記コンピュータに更に実行させ、
前記生成ステップでは、前記１のパラメータ情報が前記所定パラメータ情報と同一でない場合、前記第１画像処理プログラムを生成し、
前記実行ステップでは、前記１のパラメータ情報が前記所定パラメータ情報と同一でない場合、前記第１画像処理プログラムを実行して画像処理を行わせ、前記１のパラメータ情報が前記所定パラメータ情報と同一である場合、前記第２画像処理プログラムを実行して画像処理を行わせるための画像処理プログラム。
【請求項１１】
制御装置から書き込まれ、第１画像処理プログラムの生成に使用される１以上のパラメータで構成されるパラメータ情報を記憶するデータ領域と前記第１画像処理プログラムを生成するための生成プログラムを記憶するプログラム領域とを有する記憶手段を備えるコンピュータに、
前記パラメータ情報及び前記生成プログラムを用いて、前記パラメータ情報の内容に応じて実行する処理が異なる前記第１画像処理プログラムを生成する生成ステップと、
前記第１画像処理プログラムを実行して画像処理を行わせる実行ステップと、
を実行させ、
前記記憶手段は、更に、前記データ領域に前記制御装置から書き込まれる情報であって画像処理対象の画像データの生成モードが特定生成モードであるか否かを示す生成モード情報を記憶するとともに、前記プログラム領域に前記特定生成モードに応じた処理を実行する第２画像処理プログラムを記憶し、
前記生成モード情報が前記特定生成モードを示すか否かを判定する判定ステップを前記コンピュータに更に実行させ、
前記生成ステップでは、前記生成モード情報が前記特定生成モードを示さない場合、前記第１画像処理プログラムを生成し、
前記実行ステップでは、前記生成モード情報が前記特定生成モードを示さない場合、前記第１画像処理プログラムを実行して画像処理を行わせ、前記生成モード情報が前記特定生成モードを示す場合、前記第２画像処理プログラムを実行して画像処理を行わせるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像形成装置、画像処理方法及び画像処理プログラムに関する。
【背景技術】
【０００２】
従来から、画像処理装置では、リアルタイム処理（高速処理）が求められており、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＤＳＰ（Digital  Signal  Processor）又はＳＩＭＤ（Single  Instruction  Stream/Multiple  Data  Stream）型プロセッサなどの画像認識や画像処理に特化した特殊なプロセッサが用いられている。
【０００３】
このようなプロセッサは、処理の高速化のため、データ領域やプログラム領域を有するＲＡＭ（Random  Access  Memory）を内部に備えているが、当然ながらその記憶容量には制限がある。このため例えば特許文献１には、プロセッサの外部に備えられているＲＯＭ（Read  Only  Memory）に当該プロセッサで実行される複数種類のプログラムを予め記憶しておき、処理対象の原稿の読取条件に応じて、ＲＯＭからプロセッサにプログラムをロードする技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述したような従来技術では、ＲＯＭなどの不揮発性の記憶装置に予め記憶しておくプログラムの数が増加すると、不揮発性の記憶装置の記憶容量を逼迫してしまうことになる。
【０００５】
本発明は、上記事情に鑑みてなされたものであり、記憶装置の記憶容量を逼迫せずに、多様なプログラムを実行できる画像処理装置、画像形成装置、画像処理方法及び画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明の一態様にかかる画像処理装置は、制御装置から書き込まれ、第１画像処理プログラムの生成に使用される１以上のパラメータで構成される１のパラメータ情報を記憶するデータ領域と、前記第１画像処理プログラムを生成するための生成プログラムを記憶するプログラム領域と、を有する記憶手段と、前記１のパラメータ情報及び前記生成プログラムを用いて、前記１のパラメータ情報の内容に応じて実行する処理が異なる前記第１画像処理プログラムを生成する生成手段と、前記第１画像処理プログラムを実行して画像処理を行わせる実行手段と、を備え、前記記憶手段は、更に、前記プログラム領域に、予め定められた１以上のパラメータで構成される所定パラメータ情報の内容に応じた処理を実行する第２画像処理プログラムを記憶し、前記１のパラメータ情報と前記所定パラメータ情報とにおいて構成する各パラメータ同士が全て同一であるか否かを判定する判定手段を更に備え、前記生成手段は、前記１のパラメータ情報が前記所定パラメータ情報と同一でない場合、前記第１画像処理プログラムを生成し、前記実行手段は、前記１のパラメータ情報が前記所定パラメータ情報と同一でない場合、前記第１画像処理プログラムを実行して画像処理を行わせ、前記１のパラメータ情報が前記所定パラメータ情報と同一である場合、前記第２画像処理プログラムを実行して画像処理を行わせることを特徴とする。
また、本発明の別の態様にかかる画像処理装置は、制御装置から書き込まれ、第１画像処理プログラムの生成に使用される１以上のパラメータで構成されるパラメータ情報を記憶するデータ領域と、前記第１画像処理プログラムを生成するための生成プログラムを記憶するプログラム領域と、を有する記憶手段と、前記パラメータ情報及び前記生成プログラムを用いて、前記パラメータ情報の内容に応じて実行する処理が異なる前記第１画像処理プログラムを生成する生成手段と、前記第１画像処理プログラムを実行して画像処理を行わせる実行手段と、を備え、前記記憶手段は、更に、前記データ領域に前記制御装置から書き込まれる情報であって画像処理対象の画像データの生成モードが特定生成モードであるか否かを示す生成モード情報を記憶するとともに、前記プログラム領域に前記特定生成モードに応じた処理を実行する第２画像処理プログラムを記憶し、前記生成モード情報が前記特定生成モードを示すか否かを判定する判定手段を更に備え、前記生成手段は、前記生成モード情報が前記特定生成モードを示さない場合、前記第１画像処理プログラムを生成し、前記実行手段は、前記生成モード情報が前記特定生成モードを示さない場合、前記第１画像処理プログラムを実行して画像処理を行わせ、前記生成モード情報が前記特定生成モードを示す場合、前記第２画像処理プログラムを実行して画像処理を行わせることを特徴とする。
【０００７】
また、本発明の別の態様にかかる画像形成装置は、上記画像処理装置と、前記パラメータを記憶する不揮発性の記憶手段と、前記パラメータを前記画像処理装置の前記記憶手段に書き込む書込手段と、を備えることを特徴とする。
【０００８】
また、本発明の別の態様にかかる画像処理方法は、画像処理装置で実行される画像処理方法であって、前記画像処理装置は、制御装置から書き込まれ、第１画像処理プログラムの生成に使用される１以上のパラメータで構成される１のパラメータ情報を記憶するデータ領域と、前記第１画像処理プログラムを生成するための生成プログラムを記憶するプログラム領域と、を有する記憶手段を備え、生成手段が、前記１のパラメータ情報及び前記生成プログラムを用いて、前記１のパラメータ情報の内容に応じて実行する処理が異なる前記第１画像処理プログラムを生成する生成ステップと、実行手段が、前記第１画像処理プログラムを実行して画像処理を行わせる実行ステップと、を含み、前記記憶手段は、更に、前記プログラム領域に、予め定められた１以上のパラメータで構成される所定パラメータ情報の内容に応じた処理を実行する第２画像処理プログラムを記憶し、判定手段が、前記１のパラメータ情報と前記所定パラメータ情報とにおいて構成する各パラメータ同士が全て同一であるか否かを判定する判定ステップを更に含み、前記生成ステップでは、前記１のパラメータ情報が前記所定パラメータ情報と同一でない場合、前記第１画像処理プログラムを生成し、前記実行ステップでは、前記１のパラメータ情報が前記所定パラメータ情報と同一でない場合、前記第１画像処理プログラムを実行して画像処理を行わせ、前記１のパラメータ情報が前記所定パラメータ情報と同一である場合、前記第２画像処理プログラムを実行して画像処理を行わせることを特徴とする。
また、本発明の別の態様にかかる画像処理方法は、画像処理装置で実行される画像処理方法であって、前記画像処理装置は、制御装置から書き込まれ、第１画像処理プログラムの生成に使用される１以上のパラメータで構成されるパラメータ情報を記憶するデータ領域と、前記第１画像処理プログラムを生成するための生成プログラムを記憶するプログラム領域と、を有する記憶手段を備え、生成手段が、前記パラメータ情報及び前記生成プログラムを用いて、前記パラメータ情報の内容に応じて実行する処理が異なる前記第１画像処理プログラムを生成する生成ステップと、実行手段が、前記第１画像処理プログラムを実行して画像処理を行わせる実行ステップと、を含み、前記記憶手段は、更に、前記データ領域に前記制御装置から書き込まれる情報であって画像処理対象の画像データの生成モードが特定生成モードであるか否かを示す生成モード情報を記憶するとともに、前記プログラム領域に前記特定生成モードに応じた処理を実行する第２画像処理プログラムを記憶し、判定手段が、前記生成モード情報が前記特定生成モードを示すか否かを判定する判定ステップを更に含み、前記生成ステップでは、前記生成モード情報が前記特定生成モードを示さない場合、前記第１画像処理プログラムを生成し、前記実行ステップでは、前記生成モード情報が前記特定生成モードを示さない場合、前記第１画像処理プログラムを実行して画像処理を行わせ、前記生成モード情報が前記特定生成モードを示す場合、前記第２画像処理プログラムを実行して画像処理を行わせることを特徴とする。
【０００９】
また、本発明の別の態様にかかる画像処理プログラムは、制御装置から書き込まれ、第１画像処理プログラムの生成に使用される１以上のパラメータで構成される１のパラメータ情報を記憶するデータ領域と前記第１画像処理プログラムを生成するための生成プログラムを記憶するプログラム領域とを有する記憶手段を備えるコンピュータに、前記１のパラメータ情報及び前記生成プログラムを用いて、前記１のパラメータ情報の内容に応じて実行する処理が異なる前記第１画像処理プログラムを生成する生成ステップと、前記第１画像処理プログラムを実行して画像処理を行わせる実行ステップと、を実行させ、前記記憶手段は、更に、前記プログラム領域に、予め定められた１以上のパラメータで構成される所定パラメータ情報の内容に応じた処理を実行する第２画像処理プログラムを記憶し、前記１のパラメータ情報と前記所定パラメータ情報とにおいて構成する各パラメータ同士が全て同一であるか否かを判定する判定ステップを前記コンピュータに更に実行させ、前記生成ステップでは、前記１のパラメータ情報が前記所定パラメータ情報と同一でない場合、前記第１画像処理プログラムを生成し、前記実行ステップでは、前記１のパラメータ情報が前記所定パラメータ情報と同一でない場合、前記第１画像処理プログラムを実行して画像処理を行わせ、前記１のパラメータ情報が前記所定パラメータ情報と同一である場合、前記第２画像処理プログラムを実行して画像処理を行わせるためのものである。
また、本発明の別の態様にかかる画像処理プログラムは、制御装置から書き込まれ、第１画像処理プログラムの生成に使用される１以上のパラメータで構成されるパラメータ情報を記憶するデータ領域と前記第１画像処理プログラムを生成するための生成プログラムを記憶するプログラム領域とを有する記憶手段を備えるコンピュータに、前記パラメータ情報及び前記生成プログラムを用いて、前記パラメータ情報の内容に応じて実行する処理が異なる前記第１画像処理プログラムを生成する生成ステップと、前記第１画像処理プログラムを実行して画像処理を行わせる実行ステップと、を実行させ、前記記憶手段は、更に、前記データ領域に前記制御装置から書き込まれる情報であって画像処理対象の画像データの生成モードが特定生成モードであるか否かを示す生成モード情報を記憶するとともに、前記プログラム領域に前記特定生成モードに応じた処理を実行する第２画像処理プログラムを記憶し、前記生成モード情報が前記特定生成モードを示すか否かを判定する判定ステップを前記コンピュータに更に実行させ、前記生成ステップでは、前記生成モード情報が前記特定生成モードを示さない場合、前記第１画像処理プログラムを生成し、前記実行ステップでは、前記生成モード情報が前記特定生成モードを示さない場合、前記第１画像処理プログラムを実行して画像処理を行わせ、前記生成モード情報が前記特定生成モードを示す場合、前記第２画像処理プログラムを実行して画像処理を行わせるためのものである。
【発明の効果】
【００１０】
本発明によれば、記憶装置の記憶容量を逼迫せずに、多様なプログラムを実行できるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、第１実施形態の複合機の構成例を示すブロック図である。
【図２】図２は、第１実施形態のＲＯＭに記憶されているデータ例を示す図である。
【図３】図３は、第１実施形態のプロセッサのＲＡＭに記憶されるデータ例を示す図である。
【図４】図４は、第１実施形態の複合機のフィルタ処理例を示すフローチャートである。
【図５】図５は、フィルタ係数例を示す図である。
【図６】図６は、フィルタ処理対象の入力画像データ例を示す図である。
【図７】図７は、フィルタ処理プログラム例を示す図である。
【図８】図８は、第１実施形態の生成部で行われるフィルタ処理アルゴリズムの乗算をビットシフトと加減算との組み合わせに展開する処理例を示すフローチャートである。
【図９】図９は、第２実施形態の複合機の構成例を示すブロック図である。
【図１０】図１０は、第２実施形態のプロセッサのＲＡＭに記憶されるデータ例を示す図である。
【図１１】図１１は、第２実施形態の複合機のフィルタ処理例を示すフローチャートである。
【図１２】図１２は、第３実施形態の複合機の構成例を示すブロック図である。
【図１３】図１３は、第３実施形態のＲＯＭに記憶されているデータ例を示す図である。
【図１４】図１４は、第３実施形態のプロセッサのＲＡＭに記憶されるデータ例を示す図である。
【図１５】図１５は、第３実施形態の複合機のフィルタ処理例を示すフローチャートである。
【図１６】図１６は、フィルタ係数例を示す図である。
【図１７】図１７は、平滑強度の強度値が１の場合の平滑係数例を示す図である。
【図１８】図１８は、平滑強度の強度値が２の場合の平滑係数例を示す図である。
【図１９】図１９は、平滑強度の強度値が３の場合の平滑係数例を示す図である。
【図２０】図２０は、平滑強度の強度値が４の場合の平滑係数例を示す図である。
【図２１】図２１は、平滑強度の強度値が５の場合の平滑係数例を示す図である。
【図２２】図２２は、各実施形態及び各変形例の複合機のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照しながら、本発明にかかる画像処理装置、画像形成装置、画像処理方法及び画像処理プログラムの実施形態を詳細に説明する。なお以下の各実施形態では、フィルタ処理を例に取り本発明について説明するが、これに限定されるものではなく、他の画像処理についても本発明を適用できる。また以下の各実施形態では、本発明の画像処理装置を、コピー機能に加え、プリンタ機能、スキャナ機能、及びファクシミリ機能の少なくともいずれかの機能を有する複合機（ＭＦＰ：Multifunction  Peripheral）に適用した場合を例に取り説明するが、これに限定されるものではない。本発明の画像処理装置は、例えば、複写機、スキャナ、プリンタ、及びファクシミリなどに対しても適用することができる。
【００１３】
（第１実施形態）
まず、第１実施形態の複合機の構成について説明する。
【００１４】
図１は、第１実施形態の複合機１００の構成の一例を示すブロック図である。図１に示すように、複合機１００は、操作表示部１１０と、コントローラ１２０と、スキャナ１３０と、画像処理装置１４０と、プロッタ１７０と、を備える。
【００１５】
操作表示部１１０は、各種画面の表示や各種操作の入力を行うものであり、オペレーションパネルやタッチパネル式ディスプレイなどにより実現できる。操作表示部１１０は、例えば原稿の読取条件の入力や原稿の読取開始の入力などを行う。なお、操作部と表示部とを別々に実現してもよい。
【００１６】
コントローラ１２０は、複合機１００の各部を制御するものであり、ＲＯＭ（Read  Only  Memory）１２１と、ＣＰＵ（Central  Processing  Unit）１２３と、ＲＡＭ（Random  Access  Memory）１２５と、を備える。
【００１７】
ＲＯＭ１２１は、不揮発性の読出専用の記憶装置であり、複合機１００で行われる各種処理に使用されるデータなどを記憶する。特に本実施形態のＲＯＭ１２１は、フィルタ処理プログラムの生成に用いられるフィルタ係数（パラメータの一例）を記憶する。
【００１８】
図２は、ＲＯＭ１２１に記憶されているデータの一例を示す図である。図２に示す例では、ＲＯＭ１２１は、フィルタ処理プログラムの生成に用いられるフィルタ係数としてフィルタ係数１〜フィルタ係数４を記憶している。なおフィルタ処理プログラムは、画像処理装置１４０で生成及び実行される。
【００１９】
ＣＰＵ１２３（制御装置、書込手段の一例）は、操作表示部１１０から各種操作入力を受け付け、受け付けた操作入力に応じて、スキャナ１３０、画像処理装置１４０、プロッタ１７０、及び操作表示部１１０を制御する。例えばＣＰＵ１２３は、操作表示部１１０から原稿の読取条件の入力を受け付けると、受け付けた読取条件に応じたフィルタ係数をＲＯＭ１２１から読み出して画像処理装置１４０に書き込むとともに、フィルタ処理プログラムの生成を指示する生成コマンドを画像処理装置１４０に発行する。また例えばＣＰＵ１２３は、操作表示部１１０から原稿の読取開始の入力を受け付けると、スキャナ１３０、画像処理装置１４０、及びプロッタ１７０を制御して読取条件に応じた原稿の複写を行わせる。この際、ＣＰＵ１２３は、画像処理の実行を指示する実行コマンドを画像処理装置１４０に発行する。なおＣＰＵ１２３は、ＲＡＭ１２５をワーク領域として上述した各種処理を行う。
【００２０】
ＲＡＭ１２５は、揮発性の記憶装置であり、ＣＰＵ１２３のワーク領域として機能する。
【００２１】
スキャナ１３０は、コントローラ１２０からの指示に従い、スキャナ１３０にセットされた原稿の画像を光学的に読み取って、画像データを生成する。
【００２２】
画像処理装置１４０は、スキャナ１３０により生成された画像データに対して各種画像処理を施すものであり、画像処理部１５０と、プロセッサ１６０とを備える。
【００２３】
画像処理部１５０は、プロセッサ１６０からの指示に従い、スキャナ１３０により生成された画像データに対して、シェーディング補正、フィルタ処理、変倍処理、γ変換、及び階調処理などの各種画像処理を施す。特に本実施形態の画像処理部１５０は、プロセッサ１６０により生成されたフィルタ処理プログラムに従ってフィルタ処理を行う。
【００２４】
プロセッサ１６０は、コントローラ１２０からの指示に従い、画像処理部１５０に上述した各種画像処理を行わせるものであり、ＤＳＰやＳＩＭＤ型プロセッサにより実現できる。プロセッサ１６０は、ＲＡＭ１６１と、生成部１６３と、実行部１６５とを、備える。
【００２５】
ＲＡＭ１６１は、揮発性の記憶装置であり、データを記憶するデータ領域と、フィルタ処理プログラム（画像処理プログラムの一例）を生成するための生成プログラム（以下、「フィルタ処理プログラム生成プログラム」と称する）などのプログラムを記憶するプログラム領域と、を有する。なおＲＡＭ１６１のデータ領域には、コントローラ１２０からフィルタ係数が書き込まれ、プログラム領域には、生成部１６３により動的に生成されるフィルタ処理プログラムも記憶される。
【００２６】
図３は、ＲＡＭ１６１に記憶されているデータの一例を示す図である。図３に示す例では、ＲＡＭ１６１は、データ領域にコントローラ１２０から書き込まれたフィルタ係数１を記憶しており、プログラム領域にＭａｉｎプログラム及びフィルタ処理プログラム生成プログラムを記憶している。Ｍａｉｎプログラムは、プロセッサ１６０が画像処理部１５０を制御するために用いるプログラムである。またプログラム領域には、フィルタ処理プログラム生成プログラムによって動的に生成されるフィルタ処理プログラムを記憶する記憶領域（以下、「可変フィルタ処理プログラム記憶領域」と称する）も確保されている。
【００２７】
生成部１６３は、コントローラ１２０から発行された生成コマンドに従い、コントローラ１２０によりＲＡＭ１６１のデータ領域に書き込まれたフィルタ係数及びプログラム領域に記憶されているフィルタ処理プログラム生成プログラムを用いて、フィルタ係数に応じたフィルタ処理プログラムを動的に生成する。図３に示す例の場合、生成部１６３は、フィルタ係数１及びフィルタ処理プログラム生成プログラムを用いて、フィルタ係数１に応じたフィルタ処理プログラム（以下、「フィルタ係数１用フィルタ処理プログラム」と称する）を動的に生成し、ＲＡＭ１６１の可変フィルタ処理プログラム記憶領域に記憶する。
【００２８】
実行部１６５は、コントローラ１２０から発行された実行コマンドに従い、生成部１６３により生成されたフィルタ処理プログラム、即ち、ＲＡＭ１６１の可変フィルタ処理プログラム記憶領域に記憶されているフィルタ処理プログラムを実行して画像処理部１５０にフィルタ処理を行わせる。図３に示す例の場合、実行部１６５は、ＲＡＭ１６１の可変フィルタ処理プログラム記憶領域に記憶されるフィルタ係数１用フィルタ処理プログラムを実行して画像処理部１５０にフィルタ処理を行わせる。
【００２９】
プロッタ１７０は、コントローラ１２０からの指示に従い、画像処理装置１４０により画像処理が施された画像データを記録紙などの記録媒体に印刷して、出力する。
【００３０】
次に、第１実施形態の複合機の動作について説明する。
【００３１】
図４は、第１実施形態の複合機１００で行われるフィルタ処理の手順の流れの一例を示すフローチャートである。
【００３２】
まず、コントローラ１２０のＣＰＵ１２３は、操作表示部１１０から原稿の読取条件の入力を受け付けると、受け付けた読取条件に応じたフィルタ係数をコントローラ１２０のＲＯＭ１２１から読み出して画像処理装置１４０のＲＡＭ１６１のデータ領域に書き込むとともに、生成コマンドを画像処理装置１４０に発行する（ステップＳ１００）。
【００３３】
続いて、画像処理装置１４０の生成部１６３は、ＣＰＵ１２３からの発行コマンドに従い、ＲＡＭ１６１のデータ領域に書き込まれたフィルタ係数及びプログラム領域に記憶されているフィルタ処理プログラム生成プログラムを用いて、フィルタ係数に応じたフィルタ処理プログラムをＲＡＭ１６１の可変フィルタ処理プログラム記憶領域に生成する（ステップＳ１０２）。
【００３４】
続いて、ＣＰＵ１２３は、操作表示部１１０から原稿の読取開始の入力を受け付けると、画像処理装置１４０に実行コマンドを発行するなど、スキャナ１３０、画像処理装置１４０、及びプロッタ１７０に読取条件に応じた原稿の複写を指示する。そして画像処理装置１４０の実行部１６５は、ＣＰＵ１２３からの実行コマンドに従い、ＲＡＭ１６１の可変フィルタ処理プログラム記憶領域に生成されたフィルタ処理プログラムを実行して画像処理部１５０にフィルタ処理を行わせる（ステップＳ１０４）。これにより、画像処理部１５０は、スキャナ１３０により生成された原稿の画像データに生成部１６３により生成されたフィルタ処理プログラムに応じたフィルタ処理を施す。
【００３５】
次に、第１実施形態のフィルタ処理プログラム生成の具体的手法について説明する。
【００３６】
図５は、フィルタ係数の一例を示す図であり、図６は、フィルタ処理対象の入力画像データの一例を示す図であり、数式（１）は、フィルタ処理プログラム生成プログラムに含まれているフィルタ処理アルゴリズムの一例を示す数式である。
【００３７】
Ｄｏｕｔｘｙ＝Ｄｘｙ＋（Ｄｘ（ｙ−１）＊Ａ＋Ｄｘ（ｙ＋１）＊Ａ＋Ｄ（ｘ−１）ｙ＊Ｂ＋Ｄ（ｘ＋１）ｙ＊Ｂ−Ｄｘｙ（２Ａ＋２Ｂ））／Ｍ      …（１）
【００３８】
但し、図５において、フィルタ係数の係数値Ａ，Ｂは、１６未満の正の整数とする。また図６において、ｓ，ｔは、正の整数とする。また数式（１）において、Ｄｏｕｔｘｙは入力画像データの入力画素Ｄｘｙにフィルタ処理を行った結果である出力画素Ｄｘｙを示し、ｘはｓ以下の正の整数、ｙはｔ以下の正の整数、Ａ，Ｂは図５の値、Ｍは１，２，４，８，１６，３２のいずれかの値とする。
【００３９】
ここでは、生成部１６３が、数式（１）にＡ＝１，Ｂ＝２，Ｍ＝８を代入して数式（２）を算出し、算出した数式（２）からフィルタ処理プログラムを生成する例について説明する。
【００４０】
Ｄｏｕｔｘｙ＝Ｄｘｙ＋（Ｄｘ（ｙ−１）＊１＋Ｄｘ（ｙ＋１）＊１＋Ｄ（ｘ−１）ｙ＊２＋Ｄ（ｘ＋１）ｙ＊２−Ｄｘｙ＊６）／８      …（２）
【００４１】
本実施形態の生成部１６３は、数式（２）に示すフィルタ処理アルゴリズムの乗算をビットシフトと加減算との組み合わせに展開することで、図７に示すフィルタ処理プログラムを生成する。
【００４２】
図８は、第１実施形態の生成部１６３で行われるフィルタ処理アルゴリズムの乗算Ｄｘｙ＊Ｃをビットシフトと加減算との組み合わせに展開する処理の手順の流れの一例を示すフローチャートである。
【００４３】
まず、生成部１６３は、変数ｉに初期値０を設定する（ステップＳ１１０）。
【００４４】
続いて、生成部１６３は、乗数Ｃを２進数に変換する（ステップＳ１１２）。なお、乗数Ｃは、２５５以下の正の整数とする。
【００４５】
続いて、生成部１６３は、２進数に変換した乗数Ｃの桁数Ｎを算出する（ステップＳ１１４）。
【００４６】
続いて、生成部１６３は、２進数に変換した乗数Ｃの０の数Ｎ０を算出する（ステップＳ１１６）。
【００４７】
続いて、生成部１６３は、２進数に変換した乗数Ｃの１の数Ｎ１を算出する（ステップＳ１１８）。
【００４８】
続いて、生成部１６３は、２進数に変換した乗数Ｃの各桁の値Ｃ０〜Ｃ７を算出する（ステップＳ１２０）。
【００４９】
続いて、生成部１６３は、Ｎ１＞Ｎ０の場合には（ステップＳ１２２でＹｅｓ）、まずコード展開として、Ｄｘｙ＜＜Ｎをロードする（ステップＳ１２４）。
【００５０】
続いて、生成部１６３は、コード展開として、Ｄｘｙを減算する（ステップＳ１２６）。
【００５１】
続いて、生成部１６３は、Ｃｉ＝０であれば（ステップＳ１２８でＹｅｓ）、コード展開として、Ｄｘｙ＜＜ｉを減算する（ステップＳ１３０）。一方、生成部１６３は、Ｃｉ≠０であれば（ステップＳ１２８でＮｏ）、ステップＳ１３０のコード展開を行わない。
【００５２】
続いて、生成部１６３は、変数ｉの値をインクリメントする（ステップＳ１３２）。
【００５３】
そして、生成部１６３は、ｉ≦Ｎ−１の間（ステップＳ１３４でＮｏ）、ステップＳ１２８〜Ｓ１３２の処理を繰り返し、ｉ＞Ｎ−１になると（ステップＳ１３４でＹｅｓ）、処理を終了する。
【００５４】
一方、Ｎ１≦Ｎ０の場合には（ステップＳ１２２でＮｏ）、生成部１６３は、まず、コード展開として、０をロードする（ステップＳ１３６）。
【００５５】
続いて、生成部１６３は、Ｃｉ＝１であれば（ステップＳ１３８でＹｅｓ）、コード展開として、Ｄｘｙ＜＜ｉを加算する（ステップＳ１４０）。一方、生成部１６３は、Ｃｉ≠０であれば（ステップＳ１３８でＮｏ）、ステップＳ１４０のコード展開を行わない。
【００５６】
続いて、生成部１６３は、変数ｉの値をインクリメントする（ステップＳ１４２）。
【００５７】
そして、生成部１６３は、ｉ≦Ｎ−１の間（ステップＳ１４４でＮｏ）、ステップＳ１３８〜Ｓ１４２の処理を繰り返し、ｉ＞Ｎ−１になると（ステップＳ１４４でＹｅｓ）、処理を終了する。
【００５８】
ここで、図８のフローチャートを参照しながら、数式（２）の乗算Ｄｘ（ｙ−１）＊１をビットシフトと加減算との組み合わせに展開する例を具体的に説明する。なおこの例では、乗数Ｃの値は１となる。
【００５９】
ステップＳ１１０では、生成部１６３は、変数ｉに初期値０を設定する。
【００６０】
ステップＳ１１２では、生成部１６３は、乗数Ｃを２進数「０００００００１」に変換する。
【００６１】
ステップＳ１１４では、生成部１６３は、２進数に変換した乗数Ｃの桁数Ｎ＝８を算出する。
【００６２】
ステップＳ１１６では、生成部１６３は、２進数に変換した乗数Ｃの０の数Ｎ０＝７を算出する。
【００６３】
ステップＳ１１８では、生成部１６３は、２進数に変換した乗数Ｃの１の数Ｎ１＝１を算出する。
【００６４】
ステップＳ１２０では、生成部１６３は、２進数に変換した乗数Ｃの各桁の値Ｃ０＝１、Ｃ１＝０、Ｃ２＝０、Ｃ３＝０、Ｃ４＝０、Ｃ５＝０、Ｃ６＝０、Ｃ７＝０を算出する。
【００６５】
ステップＳ１２２では、Ｎ０＝７、Ｎ１＝１であるため、生成部１６３は、Ｎ１≦Ｎ０と判定し、ステップＳ１３６へ進む。
【００６６】
ステップＳ１３６では、生成部１６３は、コード展開として、０をロードする。
【００６７】
ステップＳ１３８では、Ｃ０＝１であるため、生成部１６３は、Ｃ０＝１と判定し、ステップＳ１４０へ進む。
【００６８】
ステップＳ１４０では、生成部１６３は、コード展開として、Ｄｘ（ｙ−１）＜＜０を加算する。
【００６９】
ステップＳ１４２では、生成部１６３は、変数ｉの値を「１」にインクリメントする。
【００７０】
ステップＳ１４４では、変数ｉ＝１であるため、生成部１６３は、１≦７と判定し、ステップＳ１３８へ戻る。
【００７１】
ステップＳ１３８では、Ｃ１＝０であるため、生成部１６３は、Ｃ０≠１と判定し、ステップＳ１４２へ進む。
【００７２】
ステップＳ１４２では、生成部１６３は、変数ｉの値を「２」にインクリメントする。
【００７３】
以降、変数ｉの値が「８」にインクリメントされるまで、ステップＳ１４４でＮｏ、ステップＳ１３８でＮｏ、ステップＳ１４２の処理を繰り返す。
【００７４】
そしてステップＳ１４２で変数ｉの値が「８」にインクリメントされると、ステップＳ１４４では、変数ｉ＝８であるため、生成部１６３は、８＞７と判定し、処理を終了する。
【００７５】
これにより、図７に示すフィルタ処理プログラムのステップ１、２が生成される。以降、数式（２）の乗算、除算を順次行うことにより、図７に示すフィルタ処理プログラムが生成される。
【００７６】
以上のように第１実施形態によれば、プロセッサがコントローラから設定されたフィルタ係数に応じたフィルタ処理プログラムを生成するので、コントローラ内のＲＯＭにフィルタ処理プログラムを格納しておく必要がなく、コントローラ内のＲＯＭの記憶容量を逼迫せずに、多様なフィルタ処理プログラムを実行できる。
【００７７】
また第１実施形態によれば、フィルタ処理プログラムを生成する際に、乗算をビットシフトと加減算との組み合わせに展開するので、フィルタ処理プログラムのステップ数を大幅に削減することができる。
【００７８】
例えば、数式（２）に示すフィルタ処理アルゴリズムを演算式どおりに実装すると、８ｂｉｔの乗算は通常８ステップ程度に展開され、８ｂｉｔの除算は通常２５ステップ程度に展開されるため、乗算３回及び除算１回の約５０ステップのフィルタ処理プログラムとなる。
【００７９】
これに対し、第１実施形態では、数式（２）に示すフィルタ処理アルゴリズムの乗算を、図８に示すフローチャートに従ってビットシフトと加減算との組み合わせに展開しているので、８ｂｉｔの乗算を５ステップ以下に展開することができる。また第１実施形態では、除算をビットシフトに展開している。これにより第１実施形態では、数式（２）に示すフィルタ処理アルゴリズムが図７に示すように９ステップのフィルタ処理プログラムとなり、フィルタ処理プログラムのステップ数を大幅に削減することができている。
【００８０】
（第２実施形態）
第２実施形態では、特定のフィルタ処理プログラムの生成を省略する例について説明する。なお以下では、第１実施形態との相違点の説明を主に行い、第１実施形態と同様の機能を有する構成要素については、第１実施形態と同様の名称・符号を付し、その説明を省略する。
【００８１】
図９は、第２実施形態の複合機２００の構成の一例を示すブロック図である。図９に示すように、第２実施形態では、複合機２００の画像処理装置２４０のプロセッサ２６０が判定部２６２を含む点、生成部２６３及び実行部２６５の処理内容、並びにＲＡＭ２６１の記憶内容が第１実施形態と相違する。
【００８２】
ＲＡＭ２６１は、プログラム領域に、所定のフィルタ係数（所定パラメータの一例）に応じたフィルタ処理プログラム（以下、「所定フィルタ係数用フィルタ処理プログラム」と称する）を更に静的に記憶する（配置する）。以下第２実施形態では、所定フィルタ係数用フィルタ処理プログラムを静的に記憶するプログラム領域の記憶領域を固定フィルタ処理プログラム記憶領域と称するものとする。図１０は、ＲＡＭ２６１に記憶されているデータの一例を示す図である。図１０に示すように、ＲＡＭ２６１は、プログラム領域（固定フィルタ処理プログラム記憶領域）に、フィルタ係数１用フィルタ処理プログラムを更に静的に記憶している。
【００８３】
判定部２６２は、コントローラ１２０から生成コマンドが発行されると、コントローラ１２０によりＲＡＭ２６１のデータ領域に書き込まれたフィルタ係数と所定のフィルタ係数とが同一であるか否かを判定する。図１０に示す例の場合、ＲＡＭ２６１のデータ領域にはコントローラ１２０から書き込まれたフィルタ係数１が記憶されている。また、ＲＡＭ２６１のプログラム領域（固定フィルタ処理プログラム記憶領域）にフィルタ係数１用フィルタ処理プログラムが記憶されており所定のフィルタ係数がフィルタ係数１となる。従って判定部２６２は、両フィルタ係数が同一であると判定する。
【００８４】
判定部２６２によりＲＡＭ２６１のデータ領域に書き込まれたフィルタ係数と所定のフィルタ係数とが同一でない（異なる）と判定されたとする。この場合、生成部２６３は、データ領域に書き込まれたフィルタ係数及びプログラム領域に記憶されているフィルタ処理プログラム生成プログラムを用いて、フィルタ係数に応じたフィルタ処理プログラムをＲＡＭ２６１の可変フィルタ処理プログラム記憶領域に生成し、実行対象に設定する。一方、判定部２６２によりＲＡＭ２６１のデータ領域に書き込まれたフィルタ係数と所定のフィルタ係数とが同一であると判定されたとする。この場合、生成部２６３は、フィルタ処理プログラムの生成を省略し、ＲＡＭ２６１の固定フィルタ処理プログラム記憶領域に記憶されている所定フィルタ係数用フィルタ処理プログラムを実行対象に設定する。従って図１０に示す例の場合、生成部２６３は、フィルタ処理プログラムを生成しない。
【００８５】
判定部２６２によりＲＡＭ２６１のデータ領域に書き込まれたフィルタ係数と所定のフィルタ係数とが同一でないと判定されたとする。この場合、実行部２６５は、コントローラ１２０から発行された実行コマンドに従い、生成部２６３により生成されたフィルタ処理プログラム、即ち、ＲＡＭ２６１の可変フィルタ処理プログラム記憶領域に記憶されているフィルタ処理プログラムを実行して画像処理部１５０にフィルタ処理を行わせる。一方、判定部２６２によりＲＡＭ２６１のデータ領域に書き込まれたフィルタ係数と所定のフィルタ係数とが同一であると判定されたとする。この場合、実行部２６５は、ＲＡＭ２６１の固定フィルタ処理プログラム記憶領域に記憶されている所定フィルタ係数用フィルタ処理プログラムを実行して画像処理部１５０にフィルタ処理を行わせる。従って図１０に示す例の場合、実行部２６５は、ＲＡＭ２６１のプログラム領域（固定フィルタ処理プログラム記憶領域）に記憶されているフィルタ係数１用フィルタ処理プログラムを実行して画像処理部１５０にフィルタ処理を行わせる。
【００８６】
図１１は、第２実施形態の複合機２００で行われるフィルタ処理の手順の流れの一例を示すフローチャートである。
【００８７】
まず、ステップＳ２００の処理は、図４のフローチャートのステップＳ１００と同様である。
【００８８】
続いて、判定部２６２は、ＣＰＵ１２３から生成コマンドが発行されると、ＣＰＵ１２３によりＲＡＭ２６１のデータ領域に書き込まれたフィルタ係数と所定のフィルタ係数とが同一であるか否かを判定する（ステップＳ２０２）。
【００８９】
判定部２６２により両フィルタ係数が同一でないと判定されたとする（ステップＳ２０２でＮｏ）。この場合、生成部２６３は、ＲＡＭ２６１のデータ領域に書き込まれたフィルタ係数及びプログラム領域に記憶されているフィルタ処理プログラム生成プログラムを用いて、フィルタ係数に応じたフィルタ処理プログラムをＲＡＭ２６１の可変フィルタ処理プログラム記憶領域に生成する（ステップＳ２０４）。一方、判定部２６２により両フィルタ係数が同一であると判定された場合（ステップＳ２０２でＹｅｓ）、生成部２６３は、ステップＳ２０４の処理を行わない。
【００９０】
続いて、ＣＰＵ１２３は、操作表示部１１０から原稿の読取開始の入力を受け付けると、画像処理装置２４０に実行コマンドを発行するなど、スキャナ１３０、画像処理装置２４０、及びプロッタ１７０に読取条件に応じた原稿の複写を指示する。そして実行部２６５は、ＣＰＵ１２３からの実行コマンドに従い、生成部２６３によりフィルタ処理プログラムが生成されている場合には、ＲＡＭ２６１の可変フィルタ処理プログラム記憶領域に記憶されているフィルタ処理プログラムを実行して画像処理部１５０にフィルタ処理を行わせる。（ステップＳ２０６）。一方、生成部２６３によりフィルタ処理プログラムが生成されていない場合には、実行部２６５は、ＲＡＭ２６１の固定フィルタ処理プログラム記憶領域に記憶されている所定フィルタ係数用フィルタ処理プログラムを実行して画像処理部１５０にフィルタ処理を行わせる（ステップＳ２０８）。
【００９１】
以上のように第２実施形態によれば、特定のフィルタ処理プログラムの生成を省略するので、特定のフィルタ処理プログラムの生成に要する時間を省略することができ、生産性を高めることができる。例えば、最も利用される可能性が高いフィルタ係数を所定のフィルタ係数としておけば、フィルタ処理プログラムの生成を省略できるケースが増え、生産性を高めることができる。
【００９２】
（第３実施形態）
第３実施形態では、特定の読取モードのフィルタ処理プログラムの生成を省略する例について説明する。なお以下では、第１実施形態との相違点の説明を主に行い、第１実施形態と同様の機能を有する構成要素については、第１実施形態と同様の名称・符号を付し、その説明を省略する。
【００９３】
図１２は、第３実施形態の複合機３００の構成の一例を示すブロック図である。図１２に示すように、第３実施形態では、複合機３００のコントローラ３２０のＲＯＭ３２１の記憶内容、ＣＰＵ３２３の処理内容、複合機３００の画像処理装置３４０のプロセッサ３６０が判定部３６２を含む点、生成部３６３及び実行部３６５の処理内容、並びにＲＡＭ３６１の記憶内容が第１実施形態と相違する。
【００９４】
ＲＯＭ３２１は、図１３に示すように、フィルタ処理プログラムの生成に用いられるフィルタ係数として、文字写真モード用フィルタ係数、文字モード用フィルタ係数、写真モード用フィルタ係数、及び地図モード用フィルタ係数を記憶している。
【００９５】
ＣＰＵ３２３は、操作表示部１１０から原稿の読取条件の入力を受け付けると、受け付けた読取条件が示す読取モード（画像処理対象の画像データの生成モードの一例）が特定読取モード（特定生成モードの一例）であるか否かを判定する。なお第３実施形態では、ユーザが操作表示部１１０を用いて特定読取モードを文字写真モード、文字モード、写真モード、及び地図モードなどのいずれかに予め設定しているものとする。そしてＣＰＵ３２３は、読取モードが特定読取モードである場合、画像処理装置３４０の後述の特定読取モードフラグをＯＮに設定し、フィルタ処理プログラムの生成を指示する生成コマンドを画像処理装置３４０に発行する。一方、ＣＰＵ３２３は、読取モードが特定読取モードでない場合、画像処理装置３４０の特定読取モードフラグをＯＦＦに設定するとともに、読取モードに応じたフィルタ係数をＲＯＭ３２１から読み出して画像処理装置３４０に書き込み、生成コマンドを画像処理装置３４０に発行する。
【００９６】
ＲＡＭ３６１は、データ領域に、原稿の読取モードが特定読取モードであるか否かを示す特定読取モードフラグ（生成モード情報の一例）を更に記憶し、プログラム領域に、特定読取モード用のフィルタ係数に応じたフィルタ処理プログラム（以下、「特定読取モード用フィルタ処理プログラム」と称する）を更に静的に記憶する（配置する）。以下第３実施形態では、特定読取モード用フィルタ処理プログラムを静的に記憶するプログラム領域の記憶領域を固定フィルタ処理プログラム記憶領域と称するものとする。
【００９７】
図１４は、ＲＡＭ３６１に記憶されているデータの一例を示す図である。図１４に示す例では、ＲＡＭ３６１は、データ領域に、コントローラ３２０により値がＯＮに設定された特定読取モードフラグを更に記憶しているとともに、プログラム領域（固定フィルタ処理プログラム記憶領域）に、文字モード用フィルタ処理プログラムを更に静的に記憶している。また、データ領域にはコントローラ３２０からフィルタ係数が書き込まれていない。つまり図１４に示す例では、特定読取モードが文字モードとなっている。
【００９８】
判定部３６２は、コントローラ３２０から生成コマンドが発行されると、ＲＡＭ３６１のデータ領域に記憶されている特定読取モードフラグを参照して、特定読取モードか否かを判定する。図１４に示す例の場合、特定読取モードフラグがＯＮに設定されているため、判定部３６２は、特定読取モードと判定する。
【００９９】
判定部３６２により特定読取モードと判定されなかったとする。この場合、生成部３６３は、ＲＡＭ３６１のデータ領域に書き込まれたフィルタ係数及びプログラム領域に記憶されているフィルタ処理プログラム生成プログラムを用いて、フィルタ係数に応じたフィルタ処理プログラムをＲＡＭ３６１の可変フィルタ処理プログラム記憶領域に生成し、実行対象に設定する。一方、判定部３６２により特定読取モードと判定された場合、生成部３６３は、フィルタ処理プログラムの生成を省略し、ＲＡＭ３６１の固定フィルタ処理プログラム記憶領域に記憶されている特定読取モード用フィルタ処理プログラムを実行対象に設定する。従って図１４に示す例の場合、生成部３６３は、フィルタ処理プログラムを生成しない。
【０１００】
判定部３６２により特定読取モードと判定されなかったとする。この場合、実行部３６５は、コントローラ３２０から発行された実行コマンドに従い、生成部３６３により生成されたフィルタ処理プログラム、即ち、ＲＡＭ３６１の可変フィルタ処理プログラム記憶領域に記憶されているフィルタ処理プログラムを実行して画像処理部１５０にフィルタ処理を行わせる。一方、判定部３６２により特定読取モードと判定された場合、実行部３６５は、ＲＡＭ３６１の固定フィルタ処理プログラム記憶領域に記憶されている特定読取モード用フィルタ処理プログラムを実行して画像処理部１５０にフィルタ処理を行わせる。従って図１４に示す例の場合、実行部３６５は、ＲＡＭ３６１のプログラム領域（固定フィルタ処理プログラム記憶領域）に記憶されている文字モード用フィルタ処理プログラムを実行して画像処理部１５０にフィルタ処理を行わせる。
【０１０１】
図１５は、第３実施形態の複合機３００で行われるフィルタ処理の手順の流れの一例を示すフローチャートである。
【０１０２】
まず、ＣＰＵ３２３は、操作表示部１１０から原稿の読取条件の入力を受け付けると、受け付けた読取条件が示す読取モードが特定読取モードであるか否かを判定する（ステップＳ３００）。
【０１０３】
ＣＰＵ３２３は、読取モードが特定読取モードである場合（ステップＳ３００でＹｅｓ）、ＲＡＭ３６１のデータ領域に記憶されている特定読取モードフラグをＯＮに設定し、生成コマンドを画像処理装置３４０に発行する（ステップＳ３０２）。一方、ＣＰＵ３２３は、読取モードが特定読取モードでない場合（ステップＳ３００でＮｏ）、ＲＡＭ３６１のデータ領域に記憶されている特定読取モードフラグをＯＦＦに設定するとともに、読取モードに応じたフィルタ係数をＲＯＭ３２１から読み出してＲＡＭ３６１のデータ領域に書き込み、生成コマンドを画像処理装置３４０に発行する（ステップＳ３０４）。
【０１０４】
続いて、判定部３６２は、ＣＰＵ３２３から生成コマンドが発行されると、ＲＡＭ３６１のデータ領域に記憶されている特定読取モードフラグを参照して、特定読取モードか否かを判定する（ステップＳ３０６）。
【０１０５】
特定読取モードフラグがＯＦＦに設定されており、判定部３６２により特定読取モードと判定されなかったとする（ステップＳ３０６でＮｏ）。この場合、生成部３６３は、ＲＡＭ３６１のデータ領域に書き込まれたフィルタ係数及びプログラム領域に記憶されているフィルタ処理プログラム生成プログラムを用いて、フィルタ係数に応じたフィルタ処理プログラムをＲＡＭ３６１の可変フィルタ処理プログラム記憶領域に生成する（ステップＳ３０８）。一方、特定読取モードフラグがＯＮに設定されており、判定部３６２により特定読取モードと判定された場合（ステップＳ３０６でＹｅｓ）、生成部３６３は、ステップＳ３０８の処理を行わない。
【０１０６】
続いて、ＣＰＵ３２３は、操作表示部１１０から原稿の読取開始の入力を受け付けると、画像処理装置３４０に実行コマンドを発行するなど、スキャナ１３０、画像処理装置３４０、及びプロッタ１７０に読取条件に応じた原稿の複写を指示する。そして実行部３６５は、ＣＰＵ３２３からの実行コマンドに従い、生成部３６３によりフィルタ処理プログラムが生成されている場合には、ＲＡＭ３６１の可変フィルタ処理プログラム記憶領域に記憶されているフィルタ処理プログラムを実行して画像処理部１５０にフィルタ処理を行わせる（ステップＳ３１０）。一方、生成部３６３によりフィルタ処理プログラムが生成されていない場合には、実行部３６５は、ＲＡＭ３６１の固定フィルタ処理プログラム記憶領域に記憶されている特定読取モード用フィルタ処理プログラムを実行して画像処理部１５０にフィルタ処理を行わせる（ステップＳ３１２）。
【０１０７】
以上のように第３実施形態によれば、特定の読取モードのフィルタ処理プログラムの生成を省略するので、特定の読取モードのフィルタ処理プログラムの生成に要する時間を省略することができ、生産性を高めることができる。例えば、ユーザにより利用される可能性が最も高い読取モードを予め特定読取モードに設定しておけば、フィルタ処理プログラムの生成を省略できるケースが増え、生産性を高めることができる。
【０１０８】
（変形例）
なお、本発明は、上記実施形態に限定されるものではなく、種々の変形が可能である。
【０１０９】
（変形例１）
上記各実施形態において、生成部は、複数種類の乗数の値が同一である場合、被乗数を加算してから乗算をビットシフトと加減算との組み合わせに展開してフィルタ処理プログラムを生成するようにしてもよい。
【０１１０】
例えば数式（２）において、Ｄｘ（ｙ−１）及びＤｘ（ｙ＋１）の乗数は１であり、Ｄ（ｘ−１）ｙ及びＤ（ｘ＋１）ｙの乗数は２であるので、生成部は、被乗数を加算した数式（３）を算出し、算出した数式（３）からフィルタ処理プログラムを生成するようにしてもよい。
【０１１１】
Ｄｏｕｔｘｙ＝Ｄｘｙ＋（（Ｄｘ（ｙ−１）＋Ｄｘ（ｙ＋１））＊１＋（Ｄ（ｘ−１）ｙ＋Ｄ（ｘ＋１）ｙ）＊２−Ｄｘｙ＊６）／８      …（３）
【０１１２】
また数式（１）において、Ａ＝１，Ｂ＝１，Ｍ＝８の場合には、生成部は、被乗数を加算した数式（４）を算出し、算出した数式（４）からフィルタ処理プログラムを生成するようにしてもよい。
【０１１３】
Ｄｏｕｔｘｙ＝Ｄｘｙ＋（（Ｄｘ（ｙ−１）＋Ｄｘ（ｙ＋１）＋Ｄ（ｘ−１）ｙ＋Ｄ（ｘ＋１）ｙ）＊１−Ｄｘｙ＊４）／８      …（４）
【０１１４】
このようにすれば、フィルタ処理プログラムのステップ数を更に削減することができる。
【０１１５】
（変形例２）
上記各実施形態において、フィルタ係数にフィルタ係数の係数値だけでなく、平滑強度の強度値及びフィルタ係数及び平滑強度いずれかを指定する指定情報を含め、生成部は、指定情報で指定された情報（フィルタ係数ｏｒ平滑強度）の値（係数値ｏｒ強度値）を用いてフィルタ処理を行うようにしてもよい。
【０１１６】
図１６は、フィルタ係数の一例を示す図であり、図１７は、平滑強度の強度値が１の場合の平滑係数の一例を示す図であり、図１８は、平滑強度の強度値が２の場合の平滑係数の一例を示す図であり、図１９は、平滑強度の強度値が３の場合の平滑係数の一例を示す図であり、図２０は、平滑強度の強度値が４の場合の平滑係数の一例を示す図であり、図２１は、平滑強度の強度値が５の場合の平滑係数の一例を示す図である。
【０１１７】
生成部は、フィルタ処理プログラムを生成する際に、フィルタ係数に含まれる指定情報を確認し、指定情報がフィルタ係数を指定していれば、フィルタ係数の係数値に応じた乗算のフィルタ処理プログラムを生成する。一方、生成部は、指定情報が平滑強度を指定していれば、平滑強度の強度値に応じた平滑係数の加算のフィルタ処理プログラムを生成する。
【０１１８】
平滑強度に応じた平滑係数を用意しておくことで、マトリクスサイズの制限なく平滑フィルタのフィルタ処理プログラムを生成することができる。
【０１１９】
（変形例３）
上記第３実施形態において、コントローラが、過去に画像処理された画像データの読取モードの履歴に応じて、特定読取モード及び特定読取モード用フィルタ処理プログラムを更新するようにしてもよい。
【０１２０】
例えば、ＣＰＵは、コントローラのＲＡＭに過去１００枚分の原稿の読取モードを履歴しておき、最も使用頻度の高い読取モードを特定読取モードに設定しておくようにする。ＣＰＵは、特定読取モードを設定した場合、当該特定読取モードに応じた特定読取モード用フィルタ処理プログラムでプロセッサのＲＡＭのプログラム領域に静的に記憶されている特定読取モード用フィルタ処理プログラムを更新する。なお、新たな原稿の読取モードが履歴されると、最も古い原稿の読取モードの履歴が破棄される。
【０１２１】
（変形例４）
上記各実施形態及び上記各変形例は適宜組み合わせることができる。
【０１２２】
（ハードウェア構成）
上記各実施形態及び変形例の複合機のハードウェア構成の一例について説明する。
【０１２３】
図２２は、上記各実施形態及び変形例の複合機のハードウェア構成の一例を示すブロック図である。なお、図２２では、コントローラ１２０、３２０をコントローラ９１０と称し、ＲＯＭ１２１、３２１をＲＯＭ９１２ａと称し、ＣＰＵ１２３、３２３をＣＰＵ９１１と称し、ＲＡＭ１２５をＲＡＭ９１２ｂと称し、画像処理装置１４０、２４０、３４０をＡＳＩＣ９１６と称する。
【０１２４】
図２２に示すように、上記各実施形態及び変形例の複合機は、コントローラ９１０とエンジン部（Engine）９６０とをＰＣＩ（Peripheral  Component  Interconnect）バスで接続した構成となる。コントローラ９１０は、複合機全体の制御、描画、通信、及び操作表示部９２０からの入力を制御するコントローラである。エンジン部９６０は、ＰＣＩバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、１ドラムカラープロッタ、４ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部９６０には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。
【０１２５】
コントローラ９１０は、ＣＰＵ９１１と、ノースブリッジ（ＮＢ）９１３と、システムメモリ（ＭＥＭ−Ｐ）９１２と、サウスブリッジ（ＳＢ）９１４と、ローカルメモリ（ＭＥＭ−Ｃ）９１７と、ＡＳＩＣ（Application  Specific  Integrated  Circuit）９１６と、ハードディスクドライブ（ＨＤＤ）９１８とを有し、ノースブリッジ（ＮＢ）９１３とＡＳＩＣ９１６との間をＡＧＰ（Accelerated  Graphics  Port）バス９１５で接続した構成となる。また、ＭＥＭ−Ｐ９１２は、ＲＯＭ９１２ａと、ＲＡＭ９１２ｂとをさらに有する。
【０１２６】
ＣＰＵ９１１は、複合機の全体制御をおこなうものであり、ＮＢ９１３、ＭＥＭ−Ｐ９１２およびＳＢ９１４からなるチップセットを有し、このチップセットを介して他の機器と接続される。
【０１２７】
ＮＢ９１３は、ＣＰＵ９１１とＭＥＭ−Ｐ９１２、ＳＢ９１４、ＡＧＰバス９１５とを接続するためのブリッジであり、ＭＥＭ−Ｐ９１２に対する読み書きなどを制御するメモリコントローラと、ＰＣＩマスタおよびＡＧＰターゲットとを有する。
【０１２８】
ＭＥＭ−Ｐ９１２は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ＲＯＭ９１２ａとＲＡＭ９１２ｂとからなる。ＲＯＭ９１２ａは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ９１２ｂは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
【０１２９】
ＳＢ９１４は、ＮＢ９１３とＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。このＳＢ９１４は、ＰＣＩバスを介してＮＢ９１３と接続されており、このＰＣＩバスには、ネットワークインタフェース（Ｉ／Ｆ）部なども接続される。
【０１３０】
ＡＳＩＣ９１６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ（Integrated  Circuit）であり、ＡＧＰバス９１５、ＰＣＩバス、ＨＤＤ９１８およびＭＥＭ−Ｃ９１７をそれぞれ接続するブリッジの役割を有する。このＡＳＩＣ９１６は、ＰＣＩターゲットおよびＡＧＰマスタと、ＡＳＩＣ９１６の中核をなすアービタ（ＡＲＢ）と、ＭＥＭ−Ｃ９１７を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のＤＭＡＣ（Direct  Memory  Access  Controller）と、エンジン部９６０との間でＰＣＩバスを介したデータ転送をおこなうＰＣＩユニットとからなる。このＡＳＩＣ９１６には、ＰＣＩバスを介してＦＣＵ（Fax  Control  Unit）９３０、ＵＳＢ（Universal  Serial  Bus）９４０、ＩＥＥＥ１３９４（the  Institute  of  Electrical  and  Electronics  Engineers  1394）インタフェース９５０が接続される。操作表示部９２０はＡＳＩＣ９１６に直接接続されている。
【０１３１】
ＭＥＭ−Ｃ９１７は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、ＨＤＤ９１８は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
【０１３２】
ＡＧＰバス９１５は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、ＭＥＭ−Ｐ９１２に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
【０１３３】
なお、上記各実施形態及び変形例の複合機のプロセッサで実行されるプログラムは、ＲＯＭ等に予め組み込まれて提供される。
【０１３４】
上記各実施形態及び変形例の複合機のプロセッサで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記憶媒体に記録して提供するように構成してもよい。
【０１３５】
さらに、上記各実施形態及び変形例の複合機のプロセッサで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、上記各実施形態及び変形例の複合機で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１３６】
上記各実施形態及び変形例の複合機のプロセッサで実行されるプログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしてはプロセッサがＲＯＭからプログラムをＲＡＭ上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。
【符号の説明】
【０１３７】
１００、２００、３００  複合機
１１０  操作表示部
１２０、３２０  コントローラ
１２１、３２１  ＲＯＭ
１２３、３２３  ＣＰＵ
１２５  ＲＡＭ
１３０  スキャナ
１４０、２４０、３４０  画像処理装置
１５０  画像処理部
１６０、２６０、３６０  プロセッサ
１６１、２６１、３６１  ＲＡＭ
１６３、２６３、３６３  生成部
１６５、２６５、３６５  実行部
１７０  プロッタ
２６２、３６２  判定部
９１０  コントローラ
９１１  ＣＰＵ
９１２  システムメモリ
９１２ａ  ＲＯＭ
９１２ｂ  ＲＡＭ
９１３  ノースブリッジ
９１４  サウスブリッジ
９１５  ＡＧＰバス
９１６  ＡＳＩＣ
９１７  ローカルメモリ
９１８  ハードディスクドライブ
９２０  操作表示部
９３０  ＦＣＵ
９４０  ＵＳＢ
９５０  ＩＥＥＥ１３９４インタフェース
９６０  エンジン部
【先行技術文献】
【特許文献】
【０１３８】
【特許文献１】特開２００５−１４２８３９号公報
【図１】
0005609341.tif 000002
【図２】
0005609341.tif 000003
【図３】
0005609341.tif 000004
【図４】
0005609341.tif 000005
【図５】
0005609341.tif 000006
【図６】
0005609341.tif 000007
【図７】
0005609341.tif 000008
【図８】
0005609341.tif 000009
【図９】
0005609341.tif 000010
【図１０】
0005609341.tif 000011
【図１１】
0005609341.tif 000012
【図１２】
0005609341.tif 000013
【図１３】
0005609341.tif 000014
【図１４】
0005609341.tif 000015
【図１５】
0005609341.tif 000016
【図１６】
0005609341.tif 000017
【図１７】
0005609341.tif 000018
【図１８】
0005609341.tif 000019
【図１９】
0005609341.tif 000020
【図２０】
0005609341.tif 000021
【図２１】
0005609341.tif 000022
【図２２】
0005609341.tif 000023