(57)【要約】【課題】  画像形成装置において複数のフィルタプログラムを同時に実行させる場合、フィルタリングのための処理が画像形成のパフォーマンスを阻害してしまう。【解決手段】  フィルタプログラムに特有の、フィルタ対象となるデータ列を探索する処理を共通化する。【選択図】        図２
2007072575.tif 000002
【特許請求の範囲】
【請求項１】
複数のフィルタプログラムを組み合わせて動作させる画像形成装置において、
実行フィルタプログラムリストから各々のフィルタプログラムのフィルタ対象データ列を探索する処理を共通化できるフィルタプログラムの組み合わせを探索する合成可能フィルタプログラムグループ探索手段と、
前記合成可能フィルタプログラムグループ探索手段で発見された各々のフィルタプログラムのフィルタ対象データ列を探索する処理を共通化するフィルタプログラム合成手段と、
前記実行フィルタプログラムリストから前記合成可能フィルタプログラムグループ探索手段によって発見されたフィルタプログラムを取り除いて前記フィルタプログラム合成手段によって合成されたフィルタプログラムを追加する実行フィルタプログラムリスト修正手段と、
を具備することを特徴とする画像形成装置。
【請求項２】
前記合成可能フィルタプログラムグループ探索手段において、各々のフィルタのフィルタ対象データ列を探索する処理を共通化できるフィルタの組み合わせを、各々のフィルタプログラムの処理対象データ列に関連が無いことを条件として探索することを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記合成可能フィルタプログラムグループ探索手段において、各々のフィルタプログラムのフィルタ対象データ列を探索する処理を共通化できるフィルタプログラムの組み合わせを、各々のフィルタプログラムが影響する画像上の領域に関連が無いことを条件として探索することを特徴とする請求項１記載の画像形成装置。
【請求項４】
前記フィルタプログラム合成手段において、
前記合成可能フィルタプログラムグループ探索手段で発見された各々のフィルタプログラムのフィルタ対象データ列を取得するフィルタ対象取得手段と、
前記フィルタ対象取得手段によって得られた各々のフィルタプログラムのフィルタ対象データ列を各々のフィルタプログラムに関連付けて探索対象リストとして記憶するフィルタ対象記憶手段と、
を備え、更に、
前記実行フィルタプログラムリストの合成されたフィルタプログラムが実行される際に前記フィルタ対象記憶手段によって記憶されたフィルタ対象リストのデータ列を探索するフィルタ対象探索手段と、
前記フィルタ対象探索手段によって前記フィルタ対象リストのデータ列が発見された際にデータ列に関連付けられたフィルタプログラムが備えるインタフェースを呼び出して所定のフィルタ処理を実行するインタフェース呼び出し手段と、
を備えることを特徴とする請求項１記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像形成装置に関し、詳しくは、画像形成装置内で処理されるデータストリームに対するフィルタプログラムの管理方法に関する。
【背景技術】
【０００２】
プリンタや複写機、複合機に代表される画像形成装置の開発では、特殊な環境下における障害回避や、個別要望機能への対応のために、それぞれ個別のファームウェアを作成し、そのファームウェアを顧客のデバイスにインストールすることが一般的に行われている。
【０００３】
しかし、ファームウェアの改造による個別対応には、装置全体の品質の再評価を含め開発期間や開発費などが多くかかり、また顧客環境に納品した装置に組み込まれたファームウェアの更新にはフィールドエンジニアなどによる高度なメンテナンスの手間を要する。そのため、顧客要望に速やかに応えるためにもまた費用対効果の面でも課題を残している。
【０００４】
こういった状況に対する解決策として、デバイス内で遣り取りされるデータストリームをフィルタするプログラムをファームウェアとは別のモジュールとしてデバイスにインストールし、ファームウェアから呼び出して利用することで、前述のような障害回避や個別要望機能を実現することが考えられている。データストリームは、大抵の場合ＰＤＬデータであるが、場合によっては画像データそのものや、ネットワーク上を伝送されるパケットデータに対してもフィルタを行うことが可能である。このような形態をとるメリットは、巨大なファームウェアに修正を入れる必要が無く、比較的小さなプログラムを作成すれば良いことから、開発工数の低減が見込める点である。また、ファームウェアの入れ替え等と比較して、メンテナンスの手間も少ないことが期待できる。
【０００５】
このように、フィルタプログラムは、一度顧客環境に納品した装置に対して何らかの処理を追加するための有効な手段であり、特に障害対応や個別対応時の開発コストやメンテナンスコストを低減させる、優れた技術である。
【０００６】
しかし、フィルタプログラムのデメリットとして、画像形成のパフォーマンスを劣化させる点が挙げられる。このパフォーマンス劣化は、フィルタプログラム数の増加に比例して大きくなっていくため、特に複数のフィルタプログラムを用いる場合には、パフォーマンスへの悪影響が懸念される。
【０００７】
一般的に、複数のプログラムを実行させた場合に線形的にパフォーマンスが低下することを防ぐ場合、プログラム間に共通するボトルネックとなる処理を抜き出し、まとめて実行する方法が有効である。こうすることで、少なくともプログラムの数が増加しても、ボトルネックとなる処理の実行回数は増加しないため、劇的なパフォーマンス劣化を防ぐことができる。
【０００８】
こういった方法に関して、例えば、特許文献１では、シミュレーションの高速化のために、同じイベント駆動によって発生する複数の代入文を合成することで、イベント処理のオーバヘッドを削減する方法を提案している。
【０００９】
また、一般的な最適化コンパイラでは、複数のループのイタレーションで実行される命令間の依存関係を判別し、依存関係がない場合にはイタレーションを結合して複数のループを一つにまとめることを行っている。これによって、ループ内で実行される処理の回数は変化しないものの、ループそのものを実行する計算コストが減少するため、全体的なパフォーマンスを向上させることができる。
【特許文献１】特開平０５−０６１９３２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、複数のフィルタプログラムのパフォーマンスを向上させたい場合、これらの技術をそのまま利用することは難しい。
【００１１】
前者は、イベント駆動によって発生する代入文のみにフォーカスした最適化方法であったため、特許文献１に説明されるような特別な環境では非常に効果を発揮するが、フィルタプログラムに対しての効果は疑問である。
【００１２】
後者は、命令間の依存関係を解析する必要があるため、プログラムの中身を詳細に見なければならない。また、その上で実行ファイルを作り直すため、今回のフィルタプログラムに適用することは難しい。
【００１３】
よって、複数のフィルタプログラムを効率的に実行させるための仕組みが望まれる。
【００１４】
本発明は、上記課題を解決するために提案されたものであって、フィルタプログラムの多くが特定のデータ列を探索する処理を内包していることに着目した発明である。複数のフィルタプログラムが実行される場合、この特定のデータ列を探し出す処理が各々のフィルタプログラムによって繰り返し実行されるため、効率が悪い。そこで本発明は、各々のフィルタプログラムが探索したいデータ列を取得し、それらを一括して探索するモジュールを用意することで効率化する。
【００１５】
しかしながら、全てのフィルタプログラムが上記の方法で効率化可能であるとは限らない。例えば、チェックサムを取るような、データストリーム全体に処理を行うフィルタプログラムに関しては、上記のような効率化を行うことができない。また、あるフィルタプログラムの実行結果に別のフィルタプログラムの処理が依存している場合、前者のフィルタプログラムの実行を終えてから後者のフィルタプログラムを実行する必要があるため、上記のような効率化を行うことができない。
【００１６】
本発明は、上述のような問題点を解決することのできる画像形成装置の提供を目的とするものである。
【課題を解決するための手段】
【００１７】
本発明の画像形成装置は、以下のような構成によって課題を解決するものである。
【００１８】
（１）複数のフィルタプログラムを組み合わせて動作させる画像形成装置であって、実行するフィルタプログラムリストから各々のフィルタプログラムのフィルタ対象データ列を探索する処理を共通化できるフィルタプログラムの組み合わせを探索する合成可能フィルタプログラムグループ探索手段と、前記合成可能フィルタプログラムグループ探索手段で発見された各々のフィルタのフィルタ対象データ列を探索する処理を共通化するフィルタプログラム合成手段と、前記実行フィルタプログラムリストの中から前記合成可能フィルタプログラムグループ探索手段によって発見されたフィルタプログラムグループを取り除いて前記フィルタプログラム合成手段によって合成されたフィルタプログラムを追加する実行フィルタプログラムリスト修正手段とを具備することを特徴とする。
【００１９】
（２）前記合成可能フィルタプログラムグループ探索手段において、各々のフィルタプログラムのフィルタ対象データ列を探索する処理を共通化できるフィルタプログラムの組み合わせを、各々のフィルタプログラムのフィルタ対象データ列に関連が無いことを条件として探索することを特徴とする。
【００２０】
（３）前記合成可能フィルタプログラムグループ探索手段において、各々のフィルタプログラムのフィルタ対象データ列を探索する処理を共通化できるフィルタプログラムの組み合わせを、各々のフィルタプログラムが影響する画像上の領域に関連が無いことを条件として探索することを特徴とする。
【００２１】
（４）前記フィルタプログラム合成手段において、前記合成可能フィルタプログラムグループ探索手段で発見された各々のフィルタプログラムのフィルタ対象データ列を取得するフィルタ対象取得手段と、前記フィルタ対象取得手段によって得られた各々のフィルタプログラムのフィルタ対象データ列を各々のフィルタプログラムに関連付けて探索対象リストとして記憶するフィルタ対象記憶手段とを備え、更に、前記実行フィルタプログラムリストの合成されたフィルタプログラムが実行される際に前記フィルタ対象記憶手段によって記憶されたフィルタ対象リストのデータ列を探索するフィルタ対象探索手段と、前記フィルタ対象探索手段によって前記フィルタ対象リストのデータ列が発見された際にデータ列に関連付けられたフィルタプログラムが備えるインタフェースを呼び出して所定のフィルタ処理を実行するインタフェース呼び出し手段とを備えることを特徴とする。
【発明の効果】
【００２２】
本発明によって、多数のフィルタプログラムを実行させたとしても、フィルタ対象となるデータ列を探索する処理の負荷はフィルタプログラム数に比例して増加しなくなるため、全体としてフィルタ処理の効率化を図ることができる。
【発明を実施するための最良の形態】
【００２３】
発明を実施するための最良の形態として、以下に実施例を説明する。
【実施例】
【００２４】
［ハードウェア構成］
図１は、本実施例のシステムのハードウェア構成図である。
【００２５】
１００は画像形成装置であって、ＣＰＵ１０１、メモリ１０２、補助記憶装置１０３、スキャナ装置１０４、送受信装置１０５、印刷装置１０６、タッチパネルディスプレイ１０７が、内部バス１０８によって接続されている。
【００２６】
ＣＰＵ１０１は、主にプログラムの実行を行う。
【００２７】
メモリ１０２は、ＲＡＭやＲＯＭから構成され、プログラム、データの格納場所として利用される。
【００２８】
補助記憶装置１０３は、ハードディスクやＲＡＭドライブ等の大容量記憶装置から構成され、大容量データの保管、プログラムの実行コードの保持を行う。前記メモリ１０２と比較して、長時間保持する必要があるデータを記憶する。
【００２９】
スキャナ装置１０４は、紙原稿の光学的なスキャンを行う。
【００３０】
送受信装置１０５は、デジタルデータの送受信を行う。Ｆａｘデータの送受信や、Ｅ−Ｍａｉｌ送信、ＳＭＢ送信などが考えられる。また、ＰＤＬジョブ等を受け付け、ネットワークプリンタとしても動作する。
【００３１】
印刷装置１０６は、トナーを利用してデジタルデータを紙媒体に印刷する。インクによる印刷を行う構成も考えられる。
【００３２】
タッチパネルディスプレイ１０７は、ユーザに対する情報の提供や、ユーザからの指示の入力を行う。
【００３３】
これらの装置は、いずれも内部バス１０８で接続され、デジタルデータのやり取りが行われる。
【００３４】
本実施例では、前記送受信装置１０５によってネットワークから受信したＰＤＬジョブを前記印刷装置１０６によって出力する際に発生する内部的なデータストリームに対してフィルタを行うシステムについて説明を行う。
【００３５】
この他の実施の形態として、前記補助記憶装置１０３に保存された画像データを前記印刷装置１０６で印刷する際のデータストリームにも本実施例から実現することができる。また、前記補助記憶装置１０３に保存された画像データを前記送受信装置１０５で送信する際のデータストリームや、前記スキャナ装置１０４で画像を形成して前記補助記憶装置１０３に保存する際のデータストリームなど、様々な形態が考えられる。これらは、どれも本実施例から容易に実現可能である。
【００３６】
［ソフトウェア構成］
図２は、本実施例のシステムのソフトウェア構成図である。矢印は、データの参照、書き込みと機能の呼び出しといった依存関係を示している。
【００３７】
各手段の説明の前に、フィルタプログラムの合成とは何か、どのようなフィルタプログラムが合成可能かを定義、説明しておく。
【００３８】
まず、フィルタプログラムの合成とは、フィルタプログラムに特有な、フィルタ対象となるデータ列の探索処理を複数個のフィルタプログラムから抜き出して共通化することである。
【００３９】
例えば、フィルタプログラムＡとＢが合成可能な場合で、フィルタプログラムＡがデータＡというデータ列を探索して処理Ａを行い、フィルタプログラムＢがデータＢというデータ列を探索して処理Ｂを行う場合を想定する。この場合、フィルタプログラムＡとＢが合成されると、データＡとデータＢを探索する処理が共通化される。そして、データＡが見つかればフィルタプログラムＡの処理Ａを呼び出して実行し、データＢが見つかればフィルタプログラムＢの処理Ｂを呼び出して実行するフィルタプログラムとなる。一見同じ処理が行われているように見えるが、データＡを探索してデータストリームを全て読み込み、その後データＢを探索して同じことを繰り返す場合より、データＡとデータＢを探索して一度だけデータストリームを全て読み込む方が効率的である。
【００４０】
ここで、フィルタプログラムの合成とは、必ずしも複数のフィルタプログラムの機能を代替するための一つのフィルタプログラムを作り出すことを示すものではない。例えば、フィルタ対象となるデータ列の探索処理を一括して管理するためのシステムが存在しても良く、そのシステムがフィルタとプログラムは区別した扱いをされることもありえる。
【００４１】
それでは次に、どのようなフィルタプログラムが合成可能となるか説明する。
【００４２】
上述の合成ができないフィルタプログラムとしては、フィルタ対象となるデータ列の探索処理を持たないフィルタプログラムが挙げられる。合成可能なフィルタプログラムを探索する場合、フィルタ対象となるデータ列を持ったフィルタプログラムから探索することが必要である。
【００４３】
また、他の例として、フィルタプログラム同士が関連し合っているフィルタプログラムも合成することが難しい。例えば、フィルタプログラムＡがフィルタプログラムＢの前に実行される場合に、フィルタプログラムＡによって変更されたデータに対してフィルタプログラムＢが実行されることが期待される場合である。フィルタプログラムＡの処理の一部だけを簡単に修正したい場合などにこのようなケースがあり得る。この場合、フィルタプログラムＡとフィルタプログラムＢは定められた順序で実行されることが期待されるため、前述のフィルタの合成を行うことが難しい。
【００４４】
以上のことから、合成可能なフィルタプログラムとして、フィルタプログラム同士が関連しあっていないフィルタプログラムが挙げられる。
【００４５】
これらを踏まえて、本実施例の各手段について説明する。
【００４６】
合成可能フィルタプログラムグループ探索手段２０１は、実行フィルタプログラムリスト２１１から、フィルタプログラム同士を合成して１つのフィルタプログラムにまとめることができるフィルタプログラムグループを探索する。このフィルタプログラムグループは、合成可能フィルタプログラムリスト２１２として、補助記憶装置１０３内に一時的に保存される。
【００４７】
このために、各フィルタが探索したいデータストリームや、追加したいデータストリーム、削除したいデータストリーム等の情報が必要となる。これらの情報は、フィルタプログラムの性質上、コントローラソフトの開発時には入手できないため、フィルタプログラムのインストール時などに得る必要がある。例えば、Ｊａｖａ(登録商標)のプログラムを後から追加する方法であれば、マニフェストファイルに記載することを義務付けることで、その情報を読み込む方法が考えられる。もしくは、一般的なＤＬＬを利用して後から追加する方法であれば、予め定められたインタフェースによって前記の情報をプログラム的に取得させる方法が考えられる。もしくは、新しいフィルタをインストールする際に、これらの情報を、ユーザインタフェース装置を介して入力したり選択したりさせる方法が考えられる。
【００４８】
取得した情報を元に、合成可能であるかを判別する。最も単純な判別方法は、全ての関連する情報が交わることのない、実行順序の連続したフィルタグループだけを選択する方法である。もう少し正確に判別したい場合、実行順序が先のフィルタが変更するデータを実行順序がより後のフィルタプログラムが参照していることのない、実行順序の連続したフィルタプログラムグループを選択する方法が考えられる。これらの方法によって、合成しても全体としての処理内容が変化しないフィルタグループを探索する。
【００４９】
実行フィルタプログラムリスト修正手段２０２は、前記合成可能フィルタプログラムグループ探索手段２０１によって発見された合成可能なフィルタプログラムグループ（合成可能フィルタプログラムリスト）２１２を実行フィルタプログラムリスト２１１から取り除き、合成後のフィルタが実行されるように、実行フィルタプログラムリスト２１１を編集する手段である。
【００５０】
フィルタ対象取得手段２０３は、前記合成可能フィルタプログラムグループ探索手段２０１によって発見された合成可能フィルタプログラムグループ２１２の各フィルタプログラムグループについて、探索したいデータストリームの情報を取得する手段である。この際に必要となる情報は、前記のマニフェストファイル等の方法が考えられる。
【００５１】
フィルタ対象記憶手段２０４は、前記フィルタ対象取得手段２０３によって取得された情報を、探索対象リスト２１３として記憶する手段である。この際に、どのデータ列がどのフィルタプログラムのフィルタ対象であるかを含めて記憶しておく必要がある。
【００５２】
フィルタ対象探索手段２０５は、合成されたフィルタプログラムを実行するための手段の一つである。このフィルタ対象探索手段２０５は、前記フィルタ対象記憶手段２０４が記憶した探索対象リスト２１３に含まれるいずれかのデータ列が発見されるか発見できないことが分かるまで、ＰＤＬのデータストリームを探索する手段である。
【００５３】
インタフェース呼び出し手段２０６は、前記フィルタ対象探索手段２０５によって該当するデータ列が発見された場合に、前記探索対象リスト２１３を参照して該当するフィルタプログラムが保持する所定のインタフェースを呼び出す手段である。ここで、所定のインタフェースとは、フィルタプログラムが探索しているデータ列が発見された場合に実行する処理を呼び出すための呼び口である。
【００５４】
［処理フロー］
図３は、実施例におけるフィルタプログラムを合成する際のフローチャートである。矢印は処理の流れを示しており、その順序に従って処理が実行される。この図３に従ってフィルタプログラム合成時の処理フローの説明を行う。
【００５５】
ステップ３０１では、実行するフィルタ情報を取得する。取得した情報は、前記実行フィルタプログラムリスト２１１として記憶される。
【００５６】
ステップ３０２では、合成可能フィルタプログラムグループの探索を行う。前記合成可能フィルタプログラムグループ探索手段２０１の処理に等価である。
【００５７】
ステップ３０３では、合成可能なフィルタプログラムグループが発見されたかを判別する。前記合成可能フィルタプログラムリスト２１２を参照してフィルタプログラムグループが無かった場合、フィルタプログラムの合成シーケンスは終了する。合成可能なフィルタプログラムグループが見つかった場合、ステップ３０４の処理を行う。
【００５８】
ステップ３０４では、前記ステップ３０２で発見した合成可能なフィルタプログラムグループを、前記実行フィルタプログラムリスト２１１から取り除く。これは、合成可能なフィルタプログラムグループは合成されて一つのフィルタプログラムになるため、２重に実行されるのを防ぐための処理である。この処理は、前記実行フィルタプログラムリスト修正手段２０２に含まれる処理である。
【００５９】
ステップ３０５では、前記ステップ３０２の探索で発見された合成可能なフィルタプログラムグループがデータストリームから探索したいデータ列の情報を取得し、その情報をフィルタプログラムの識別子と関連付けて記憶する。前記フィルタ対象探索手段２０３、前記フィルタ対象記憶手段２０４の処理である。
【００６０】
ステップ３０６では、前記ステップ３０５で記憶された探索対象のデータ列を探索するためのフィルタプログラムを、前記実行フィルタプログラムリストの所定の位置に挿入する。この処理は、前記実行フィルタプログラムリスト修正手段２０２に含まれる処理である。
【００６１】
ステップ３０６の処理が終わったら、再び合成可能なフィルタプログラムグループを探索する。
【００６２】
以上がフィルタプログラム合成の処理フローである。ここでは、ステップ３０２において１つの合成可能なフィルタプログラムグループが発見された時点で合成処理を行っている。しかし、別の実施の形態として、予め全ての合成可能なフィルタプログラムグループを探索しておいてから、それらの合成処理を繰り返すことも容易に可能である。
【００６３】
ここで説明したフィルタプログラムの合成処理は、様々なタイミングで行うことが考えられる。例えば、ネットワークから受信したＰＤＬジョブデータに対して実行されるフィルタプログラムが決定したタイミングで行う方法が考えられる。
【００６４】
もしくは、フィルタプログラムをインストールした際に、そのフィルタプログラムと共に実行される可能性のあるフィルタプログラムを最適化する方法がある。もしくは、前記タッチパネルディスプレイ等のＵＩからフィルタプログラムの最適化が選択された場合に実行する方法がある。
【００６５】
以上述べたように、このフィルタプログラムの合成処理を実行するタイミングは様々であるが、基本的な手順は、ここで説明したものと同等である。
【００６６】
［処理フロー］
図４は、実施例における合成されたフィルタプログラムを実行するフローチャートである。矢印は処理の流れを示しており、その順序に従って処理が実行される。この図４に従って合成されたフィルタプログラムの実行処理フローの説明を行う。
【００６７】
まず全体としては、実行フィルタプログラムリストから一つずつフィルタプログラムを取り出し、そのフィルタプログラムを実行し、処理が終わったら次のフィルタプログラムを取り出すという流れで全てのフィルタプログラムを実行させる方式である。
【００６８】
ステップ４０１では、実行フィルタプログラムリスト２１１から先頭のフィルタプログラムを取り出す処理を行う。
【００６９】
ステップ４０２では、前記ステップ４０１でフィルタプログラムを取得できたか判別する。既に全てのフィルタプログラムを実行し終えている場合、実行フィルタプログラムリスト２１１は空であるため、フィルタプログラムの実行は終了される。取得できている場合、ステップ４０３の処理を行う。
【００７０】
ステップ４０３では、前記ステップ４０１で取得したフィルタプログラムが合成されたフィルタプログラムであるかを判別する。合成されたフィルタプログラムでなければステップ４０４の処理を行う。また、合成されたフィルタプログラムであればステップ４０５の処理を行う。
【００７１】
ステップ４０４では、前記ステップ４０１で取得したフィルタプログラムを実行させる。実行が終わったら、再びステップ４０１の処理に戻り、次のフィルタプログラムの実行を試行する。
【００７２】
以降の、ステップ４０５からステップ４０８は、合成されたフィルタプログラムの処理の詳細を説明したものである。
【００７３】
ステップ４０５では、フィルタ対象リストのデータ列を、ＰＤＬデータストリームから探索する。
【００７４】
ステップ４０６では、前記ステップ４０５における探索で、フィルタ対象リストのデータ列が発見されたかを判別する。データ列が発見されなかった場合、合成されたフィルタプログラムの処理は終了し、ステップ４０１で次のフィルタプログラムの実行を試行する。データ列が発見された場合、ステップ４０７の処理を行う。
【００７５】
ステップ４０７では、前記ステップ４０５で発見されたデータ列に関連付けられたフィルタプログラム識別子から、どのフィルタプログラムの探索対象であったかの情報を取得する。
【００７６】
ステップ４０８では、前記ステップ４０７で取得されたフィルタプログラムに予め定められたインタフェースを呼び出す。処理が終わると、再びステップ４０５に戻って、フィルタ対象リストのデータ列の探索を行う。
【００７７】
以上で、フィルタプログラムの処理フローの説明を終える。
【図面の簡単な説明】
【００７８】
【図１】本発明の実施例におけるハードウェアブロック図である。
【図２】本発明の実施例におけるソフトウェアブロック図である。
【図３】本発明の実施例におけるフィルタプログラムを合成するフロー図である。
【図４】本発明の実施例におけるフィルタプログラムを実行するフロー図である。
【符号の説明】
【００７９】
１００  画像形成装置
２０１  合成可能フィルタプログラム探索手段
２０２  実行フィルタプログラムリスト修正手段
２０３  フィルタ対象取得手段
２０４  フィルタ対象記憶手段
２０５  フィルタ対象探索手段
２０６  インタフェース呼び出し手段
【図１】
2007072575.tif 000003
【図２】
2007072575.tif 000004
【図３】
2007072575.tif 000005
【図４】
2007072575.tif 000006