(57)【特許請求の範囲】
【請求項１】
プロセッサと、
該プロセッサに結合され、プログラム及びデータが格納される記憶手段と、
該プロセッサに結合された複数の画像データ入力手段と、
該プロセッサに結合され、指示を入力する指示入力手段と、
該プロセッサに結合された複数の画像データ出力手段と、
を有し、複数の機能を備えた画像形成装置において、
該プログラムは、該複数の機能のそれぞれを達成するために、該複数の画像データ入力手段のそれぞれから供給される画像データを該記憶手段に格納させるそれぞれの処理部を備えた第１ジョブステップ処理部群と、該記憶手段に格納された画像データを処理する複数種の処理部を備えた第２ジョブステップ処理部群と、該処理されたデータを該複数の出力手段のそれぞれで出力させるそれぞれの処理部を備えた第３ジョブステップ処理部群とを有し、
該データは、ジョブキューと、該複数の機能のそれぞれについて、該第１〜第３ジョブステップ処理部群のそれぞれから選択的に実行すべき処理部を識別する第１〜第３処理部識別コードが、機能と対応付けられたものとを有し、
該プログラムはさらに、
第１〜第３ジョブステップ制御部と、
該プロセッサに対し、該指示入力手段からの機能選択指示及び起動指示に応じて、ジョブ識別コードを生成させて該ジョブキューに入れ、選択された機能に対応した第１〜第３処理部識別コードを該記憶手段から取得させ、ｉ＝１〜３のそれぞれについて、該ジョブ識別コードと、第ｉ処理部識別コードと、該指示入力手段を介し指定された設定情報を該第１〜第３処理部のそれぞれに対応した第１〜第３設定情報に振り分けたときの第ｉ設定情報とを含む第ｉジョブステップ制御情報を、該記憶手段に格納させ、該第１ジョブステップ制御部に対し該ジョブ識別コードを含むジョブ生成完了通知をするジョブ制御部と、
を有し、
該第１ジョブステップ制御部は、該プロセッサに対し、該ジョブ生成完了通知に応じて、該通知に含まれるジョブ識別コードを含む第１ジョブステップ制御情報の第１処理部識別コードに基づき、第１処理部群の複数の処理部から１つの処理部を選択させ、この第１ジョブステップ制御情報に基づいて、選択された処理部を実行させ、該選択された処理部が１頁分の処理を完了する毎に、該ジョブ開始情報に含まれるジョブ識別コードと、該処理を完了した頁の番号と、レディ状態を示す状態情報とを含む第２処理対象情報を第２ジョブステップ制御部に対し該記憶手段内に生成させ、この頁が最後である場合にはその頁番号を最終頁番号として該ジョブ制御部に通知し、
ｉ＝２〜３の各々について、第ｉジョブステップ制御部は、該プロセッサに対し、状態情報がラン状態を示す第ｉ処理対象情報が該記憶手段内に存在しなければ、該ジョブキューに保持されているジョブ識別コードを順に参照させ、１つ参照する毎に、参照したジョブ識別コードを含む第ｉ処理対象情報について、状態情報がレディ状態か否かを判定させ、レディ状態であれば、このジョブ識別コードを含む第ｉジョブステップ制御情報の第ｉ処理部識別コードに基づき、第ｉ処理部群の複数の処理部から１つの処理部を選択させ、この第ｉジョブステップ制御情報とこの第ｉ設定情報とに基づいて、選択された処理部を実行させるとともに、このレディ状態がラン状態を示すようにこの状態情報を変更させ、該選択された処理部が１頁分の処理を完了する毎に、この第ｉ設定情報に含まれるジョブ識別コードと頁番号と同一のものを含み且つレディ状態を示す状態情報を含む第（ｉ＋１）処理対象情報を第（ｉ＋１）ジョブステップ制御部に対し該記憶手段内に生成させ、この第ｉ処理対象情報を該記憶手段内から消滅させ、
該ジョブ制御部は、該最終頁番号と同一の頁番号を持つ該第３処理対象情報の消滅に応答して、この第３処理対象情報が持つジョブ識別コードと同一のジョブ識別コードの第１〜３ジョブステップ制御情報を該記憶手段内から消滅させる、
ことを特徴とする画像形成装置。
【請求項２】
該ジョブ制御部が生成する該第１〜第３ジョブステップ制御情報はさらに、初期値１の頁番号を含み、
該第１〜第３ジョブステップ制御部はさらに、該プロセッサに対し、該選択された処理部が１頁分の処理を完了する毎に、それぞれ該第１〜第３ジョブステップ制御情報の頁番号を１だけインクリメントさせる、
ことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
表示手段をさらに有し、
該制御手段は、該指示入力手段からのジョブ状況表示指示に応答して、存在する該第１〜第３ジョブステップ制御情報に含まれるジョブ識別コードと、該第１〜第３ジョブステップ制御情報のそれぞれに含まれる頁番号から１だけ減じた値である処理済頁数とを含む情報を、ジョブ状況として該表示手段に表示させる、
ことを特徴とする請求項３に記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コピー、プリント、スキャン又はファクシミリ機能のうち２つ以上の機能を備えた画像形成装置に関する。
【背景技術】
【０００２】
画像形成装置の一種である複合機は、複数の機能で共通のハードウェア資源を用いるので、全体としてコストを低減できるとともに、省スペース化を図ることができる。
【０００３】
下記特許文献１には、ＵＮＩＸなどの汎用オペレーティングシステム（汎用ＯＳ）を用い、コピー、プリント、スキャン及びファクシミリの各アプリケーションの共通機能を括りだして汎用ＯＳとともにプラットフォームを構成することにより、各アプリケーションのプログラムステップ数を低減して、プログラム開発効率を高めることが開示されている。
【０００４】
しかしながら、ジョブ種別毎にアプリケーションを備え、各アプリケーションの共通機能を括り出しただけなので、アプリケーション毎に独自のジョブ生成モジュールが用いられ、各ジョブのジョブステップ間の関連性が低いので、全体の構成に統一性がなく、煩雑になり、アプリケーション開発効率を低下させる原因となる。
【０００５】
また、各ジョブのジョブステップ間の関連性が低いので、ユーザへの詳細なジョブ状況表示処理が複雑になる。
【特許文献１】特開２００２−８４３８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、このような問題点に鑑み、ジョブをジョブステップに分けジョブ種別によらずジョブステップ間を関連付けて統一化するとともに、より簡単な制御で複数のジョブを効率よく実行させることが可能な画像形成装置を提供することにある。
【０００７】
本発明のさらに他の目的は、ユーザへの詳細なジョブ状況表示処理を簡単化することが可能な画像形成装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明による画像形成装置の第１態様では、コピー、プリント、スキャン又はファクシミリ受信の機能のうち２つ以上の機能を備えた画像形成装置であって、
プログラムに従って動作するプロセッサと、
該プロセッサに結合され、該プログラムが格納される記憶手段と、
該プロセッサに結合され、該２つ以上のジョブにおいて使用される画像データ入力手段と、
該プロセッサに結合され、指示を入力する指示入力手段と、
該プロセッサに結合され、該２つ以上のジョブにおいて使用される画像データ出力手段と、
該プロセッサに結合された表示手段と、
を有し、該プログラムは、
各機能のジョブを、該画像データ入力手段から画像データを入力するインプットジョブステップと、該インプットジョブステップで入力された画像データを処理する画像処理ジョブステップと、該処理された画像データを該出力手段に供給するアウトプットジョブステップとに分けたときの各ジョブステップで実行される機能モジュールを含む機能モジュール群と、
該指示入力手段からのジョブ選択及び起動指示に応じて、各ジョブステップの機能モジュールを選択的に実行させるジョブ実行制御部とを有する。
【０００９】
本発明による画像形成装置の第２態様では、第１態様において、
該記憶手段にはさらに、ジョブ識別コードキューがジョブ制御情報として格納され、
該ジョブ実行制御部は、該指示入力手段からのジョブ選択及び起動指示に応じてジョブ識別コードを付与しこれを該ジョブ識別コードキューに追加し、該ジョブ識別コードキューからジョブ識別コードを順に取り出しそのジョブの各ジョブステップの機能モジュールを選択的に実行させる。
【００１０】
本発明による画像形成装置の第３態様では、第２態様において、該ジョブ実行制御部は、該画像処理ジョブステップと該アウトプットジョブステップとの各々において、頁毎に、該ジョブ識別コードキュー内のジョブ識別コードをジョブ実行順に参照し、未処理で実行可能なジョブ識別コードのジョブステップがあれば、対応する機能モジュールを実行させる。
【００１１】
本発明による画像形成装置の第４態様では、第３態様において、
該記憶手段にはさらに、各ジョブステップについて、処理対象頁のページナンバーと、該ページナンバーの処理状態とを対応させたジョブステップ制御情報が含まれ、
該ジョブ実行制御部は、該ジョブステップ制御情報を参照して、該未処理で実行可能なジョブ識別コードのジョブステップが有るか否かを判定する。
【００１２】
本発明による画像形成装置の第５態様では、第２乃至４態様のいずれか１つにおいて、
該プロセッサに結合された表示手段をさらに有し、
該ジョブステップ制御情報はさらに、各ジョブステップについて、処理未完ジョブに関するジョブ識別コードと処理済み頁数に関する情報とを対応させた情報を含み、
該プログラムはさらに、該指示入力手段からのジョブ状況表示指示に応答して、該ジョブ識別コードキュー及び該ジョブステップ制御情報を参照して、該表示手段に、処理未完ジョブに関するジョブ識別コードの情報と各ジョブステップの処理済み頁数に関する情報とを含むジョブ識別コード別ジョブ状況情報を、ジョブ実行順に、ジョブ状況として表示させるジョブ状況表示処理部を有する。
【発明の効果】
【００１３】
上記第１態様の構成によれば、各機能のジョブをインプットジョブステップと画像処理ジョブステップとアウトプットジョブステップとに統一的に分類し、各ジョブステップで実行される機能モジュールを、ジョブ実行制御部により、指示入力手段からのジョブ選択及び起動指示に応じて選択的に実行させるので、複数種のジョブを実行可能なアプリケーションが１つに統合されるとともに、複数のジョブ種別のジョブステップ間が関連付けられて統一化され、これにより、アプリケーションの構成が整理されて単純化され、アプリケーション開発効率を高めることが可能となる。
【００１４】
上記第２態様の構成によれば、該ジョブ実行制御部が、該指示入力手段からのジョブ選択及び起動指示に応じてジョブ識別コードを付与しこれを該ジョブ識別コードキューに追加し、該ジョブ識別コードキューからジョブ識別コードを順に取り出しそのジョブの各ジョブステップの機能モジュールを選択的に実行させるので、ジョブ識別コードキュー内のジョブ識別コードの順番を変えるだけで、ジョブ単位でジョブ実行順を変えることが可能となる。
【００１５】
上記第３態様の構成によれば、該ジョブ実行制御部が、該画像処理ジョブステップと該アウトプットジョブステップとの各々において、頁毎に、該ジョブ識別コードキュー内のジョブ識別コードをジョブ実行順に参照し、未処理で実行可能なジョブ識別コードのジョブステップがあれば、対応する機能モジュールを実行させるので、複数のジョブを効率よく実行させることが可能となる。
【００１６】
上記第４態様の構成によれば、各ジョブステップについて、処理対象頁のページナンバーと、該ページナンバーの処理状態とを対応させたジョブステップ制御情報を、該ジョブ実行制御部が参照して、該未処理で実行可能なジョブ識別コードのジョブステップが有るか否かを判定するので、ジョブ実行制御部によるジョブステップの実行制御が容易になる。
【００１７】
上記第５態様の構成によれば、ジョブを効率よく制御するのに必要なジョブ単位及びジョブステップ単位の情報に基づいてジョブ状況を表示させるので、詳細なジョブ状況を簡単な処理で表示させることが可能となる。
【００１８】
本発明の他の目的、構成及び効果は以下の説明から明らかになる。
【実施例１】
【００１９】
図１２は、本発明の実施例１に係る画像形成装置１０のハードウェア概略構成を示すブロック図である。
【００２０】
この画像形成装置１０は、コピー、プリント、スキャン、ファクシミリ送信及びファクシミリ受信機能を有し、プロセッサ１１に、チップセット１２を介してメモリ１３、ハードディスク装置１４、拡張カード１５〜１８、ネットワークインタフェースカード（ＮＩＣ）１９及び通信モデム２０が結合され、拡張カード１５〜１８にそれぞれ操作・表示パネル２５、搬送装置等２６、プリントエンジン２７及びスキャンエンジン２８が結合されている。例えば、拡張カード１５〜１７はＰＣＩカードであり、拡張カード１８はＰＣＩバス用ＳＣＳＩインタフェースカードである。また、ＮＩＣ１９及び通信モデム２０はそれぞれ、外部の通信モデム２０及び公衆回線３１に結合されている。搬送装置等２６は、用紙搬送装置、定着装置及びフィニッシャ等を含む。
【００２１】
ハードディスク装置１４には、マルチスレッド機能を備えた汎用オペレーティングシステム（ＯＳ）と、このＯＳ上で動作する画像形成装置用アプリケーションと、ＯＳの下で動作するデバイスドライバとを備えている。
【００２２】
図１は、このアプリケーション４０の要部全体構成を示す概略ブロック図である。
【００２３】
上記引用文献１がジョブ毎にアプリケーションを備えているのに対し、本実施例１の特徴の１つは、コピー、プリント、スキャン及びファクシミリ送信の各機能を１つの統合型アプリケーションで処理し、かつ、各機能のジョブをインプット、画像処理及びアウトプットのジョブステップに統一的に分割することにより、画像形成装置のソフトウェア構成を簡単化して、ソフトウェア開発効率を高めることができる点である。
【００２４】
各画像形成装置の各機能は、機能モジュール群４１から選択したものを順次実行することで遂行される。機能モジュール群４１は、これら３つのジョブステップに対応して、第１ジョブステップ処理部群としての入力機能モジュール群４１０、第２ジョブステップ処理部群としての画像処理機能モジュール群４１１及び第３ジョブステップ処理部群としての出力機能モジュール群４１２に分類される。
【００２５】
図２は、機能モジュール群４１の構成を示すブロック図である。各機能モジュールには、ジョブ制御及びジョブステップ制御において識別されるコードが付されている。コード１０及び１２の機能モジュールはそれぞれ複数種の圧縮処理及び複数種の伸長処理を行うが、図２では簡単化のためそれぞれ１つで表している。
【００２６】
入力機能モジュール群４１０は、第１〜第３処理部識別コードとしてのコード００、０１及び０２の機能モジュール（処理部）を含んでおり、それぞれ図１２のスキャンエンジン２８、ＮＩＣ１９及び通信モデム２０からデータを取得してメモリ１３に格納させる。
【００２７】
画像処理機能モジュール群４１１は、第１〜第３処理部識別コードとしてのコード１０、１１及び１２の機能モジュール（処理部）を含んでおり、それぞれコード００、０１及び０２の機能モジュールでメモリ１３に格納された画像データの１頁分を、出力装置のデータフォーマットに変換するものであり、コード１０の機能モジュールは、データを圧縮処理し、コード１１の機能モジュールは、ＲＩＰ処理を行い、コード１２の機能モジュールは、圧縮されたデータの伸長処理を行う。画像処理機能モジュール群４１１はさらに、頁付けや、複数頁分の原稿画像を１枚の用紙サイズに集約する処理などの編集処理を行う機能モジュールを含んでいてもよい。
【００２８】
出力機能モジュール群４１２は、第１〜第３処理部識別コードとしてのコード２０、２１及び２２の機能モジュール（処理部）を含んでおり、それぞれプリントエンジン２７、ハードディスク装置１４及び通信モデム２０に供給する。
【００２９】
図１に戻って、ＧＵＩモジュール４２は、ユーザによる操作・表示パネル２５の操作に応じて表示画面を変更するとともに、ユーザの操作に応じた入力データを設定情報としてメモリ１３に格納させる。ユーザがメインメメニューからコピー、プリント、スキャン又はファクシミリ送信のいずれかのジョブを選択すると、ＧＵＩモジュール４２は、そのジョブの設定画面を表示させる。ユーザが、このジョブについて各種設定をした後（ディフォールトの設定値を使用する場合を含む。）にスタートキーを押下すると、ＧＵＩモジュール４２は、選択されたジョブのコードと設定情報とをジョブ制御モジュール４３へ供給する。
【００３０】
図３に示すように、コピー、プリント、スキャン、ファクシミリ送信及びファクシミリ受信の機能識別コードをそれぞれ０〜４とする。また、以下では簡略化のため、ジョブステップ制御をＪＳＣと表記する。
【００３１】
ジョブ制御モジュール４３は、機能識別コードと設定情報の受け取りに応答して、ジョブステップ制御情報としてのジョブステップ制御ブロック（ＪＳＣブロック）４４０〜４４２を生成し、これらに情報を記入することにより、ジョブを生成し、さらに、インプットＪＳＣモジュール４５０に、ジョブ識別情報としてのジョブシリアルナンバーＪＳＮｏを含むジョブ生成完了通知をする。
【００３２】
プログラム的には、ＪＳＣブロックの生成は例えば、メソッドを含まないクラスのインスタンス生成に対応しており、また、モジュールＡからモジュールＢへの上記「通知」は例えば、モジュールＡが変数に値を代入し、モジュールＢが該変数の値を見ることを意味する。
【００３３】
図５（Ａ）は、ＪＳＣブロックの構成を示す。このブロックは、機能モジュールコードＦＭＣ、ジョブシリアルナンバーＪＳＮｏ及びページナンバーＰＮｏからなる制御情報のフィールドと、機能モジュールの起動時に引き渡す設定情報のフィールドとを含んでいる。
【００３４】
ジョブ制御モジュール４３は、図３に示すようなテーブルに従って、ＪＳＣブロック４４０、４４１及び４４２の機能モジュールコードＦＭＣ欄に、機能識別コードに対応した機能モジュールコードを記入する。
【００３５】
ジョブ制御モジュール４３は、ジョブカウンタ４３０及びジョブＩＤキュー４３１を備えており、そのジョブカウンタ４３０の値をＪＳＣブロック４４０〜４４２のジョブシリアルナンバーＪＳＮｏ欄に記入するとともに、ジョブカウンタ４３０の値の先頭に機能識別コードを付加したものをジョブＩＤキュー４３１に追加（図９参照）した後、ジョブカウンタ４３０を１だけインクリメントする。ジョブ制御モジュール４３はまた、ＪＳＣブロック４４０〜４４２のページナンバーＰＮｏ欄に初期値１を記入する。
【００３６】
ジョブ制御モジュール４３は、ＧＵＩモジュール４２からの設定情報を、予め定められた方法で、各ジョブステップで必要な設定情報に振り分けて、それぞれＪＳＣブロック４４０〜４４２の設定情報フィールドに記入する。
【００３７】
図５（Ｂ）は、インプットＪＳＣブロック４４０の具体例を示しており、スキャン入力の設定情報が、白黒、片面、Ａ４縦、４００ｄｐｉ及び明るさ１２８であることを示している。図５（Ｃ）は、画像処理ＪＳＣブロック４４１の具体例を示しており、画像処理に含まれる頁付けの設定情報が、中央上、マージン１０ｍｍ、書式が−？−（？は頁番号）、フォントがＭＳゴシック、標準及び斜体であり、字間が０ｍｍであることを示している。
【００３８】
ジョブステップ制御モジュール（ＪＳＣモジュール）４５０〜４５２はそれぞれ、後述のように、頁毎に（但し、ＪＳＣモジュール４５０は全ページについて）、機能モジュール群内の対応する機能モジュールを起動させ（スレッドを生成させ）、機能モジュールの実行終了に応じて、それぞれＪＳＣブロック４４０〜４４２の頁ナンバーＰＮｏを１だけインクリメントするとともに、右隣（下流側隣）のＪＳＣモジュールに対し後述のスレッド制御ブロックを生成させる。
【００３９】
ＪＳＣモジュール４５０〜４５２は、ジョブ制御モジュール及びＧＵＩモジュール４２とともに、例えば２０ｍｓｅｃ毎に起動されて、一巡処理される。これに対し機能モジュールは、ＪＳＣモジュール４５０〜４５２により起動されると、ＪＳＣモジュール４５０〜４５２とは独立にスレッドとして動作する。なお、ＧＵＩモジュール４２、ジョブ制御モジュール及びＪＳＣモジュール４５０〜４５２をスレッドとして動作させても同じ結果になる。
【００４０】
ここで、アプリケーション４０は、図１の構成に加えて、図６のスキャンエンジン管理モジュール４６、ＮＩＣ管理モジュール４７及びＭＯＤＥＭ管理モジュール４８を備えている。
【００４１】
スキャンエンジン管理モジュール４６、ＮＩＣ管理モジュール４７及びＭＯＤＥＭ管理モジュール４８はそれぞれ、ＦＭＣ＝００、０１及び０２の機能モジュールからの指示に応答して、汎用ＯＳ５０を介し、それぞれデバイスドライバであるスキャンエンジンドライバ５６、ＮＩＣドライバ５７及びＭＯＤＥＭドライバ５８とデータの授受を行い、それぞれ図１２のスキャンエンジン２８、ＮＩＣ１９及び通信モデム２０を制御する。汎用ＯＳ５０は、スキャンエンジン２８、ＮＩＣ１９及び通信モデム２０から入力された各頁の画像データをメモリ管理モジュール５０１に管理させる。スキャンエンジン管理モジュール４６、ＮＩＣ管理モジュール４７及びＭＯＤＥＭ管理モジュール４８はいずれも、該データの授受により、メモリ管理モジュール５０１が１頁分の画像データを図１２のメモリ１３に格納させたことを確認するとともに、その格納開始アドレス及び格納終了アドレスを知得し、対応する機能モジュールからの指示に応じてこれらのアドレスを該機能モジュールへ渡す。
【００４２】
上述のＪＳＣブロックが、対応するジョブステップにおける全ページに共通の制御情報であるのに対し、画像処理ＪＳＣモジュール４５１及びアウトプットＪＳＣモジュールはいずれも、図７（Ａ）に示すようなページ毎の制御情報として、スレッド制御ブロック４５１ａ及び４５２ａを用いる。
【００４３】
このスレッド制御ブロックは、ジョブシリアルナンバー６０と、機能モジュールによる処理対象のページナンバー６１と、スレッド制御状態６２と、このページナンバーの画像データの格納開始アドレス６３及び格納終了アドレス６４とのフィールドを有する。ジョブシリアルナンバー６０は、ＪＳＣブロックと対応させるためのものであり、また、後述のようにジョブ実行順の決定において用いられる。機能モジュールのインスタンスは、このアドレス範囲の画像データに対して処理を行う。
【００４４】
スレッド制御状態６２には、図７（Ｂ）に示す如く、実行可能であることを示すＲＥＡＤＹと、実行中を示すＲＵＮと、実行終了を示すＥＮＤとがある。スレッド制御ブロックは、上流側隣のＪＳＣモジュールによりＲＥＡＤＹ状態で生成される。このスレッド制御ブロックが属するＪＳＣモジュールにより機能モジュールが起動されてスレッド制御状態６２がＲＵＮにされる。この機能モジュールは、実行を終了する直前に後処理としてスレッド制御状態６２をＥＮＤにする。このスレッド制御ブロックが属するＪＳＣモジュールは、ＥＮＤのスレッド制御ブロックを消滅させる。
【００４５】
次に、インプットＪＳＣモジュール４５０の動作を説明する。
【００４６】
インプットＪＳＣモジュール４５０は、ジョブ制御モジュールからの上記ジョブ生成完了通知に応答して、インプットＪＳＣブロック４４０を参照し、そのＦＭＣで識別される機能モジュールＩＦＭにＪＳＣブロック４４０中の設定情報を与えて機能モジュールＩＦＭを起動させる（機能モジュールＩＦＭのインスタンスを生成する）。機能モジュールＩＦＭは、管理モジュール４６、４７又は４８を介して対応する入力装置に１頁分の画像データを入力させ、その格納開始及び終了アドレスを受け取ってインプットＪＳＣモジュール４５０へ渡す。インプットＪＳＣモジュール４５０はこれに応答して、画像処理ＪＳＣモジュール４５１に対し、図７（Ａ）に示すような画像処理スレッド制御ブロック４５１ａをＲＥＡＤＹ状態で生成させる。
【００４７】
インプットＪＳＣモジュール４５０は、入力頁が最後である場合、そのページナンバーＰＮｏを最終ページナンバーＰＥＮｏとして図１のジョブ制御モジュール４３へ通知する。
【００４８】
次に、図８を参照して、画像処理ＪＳＣモジュール４５１の動作を説明する。以下、括弧内は図中のステップ識別符号である。
【００４９】
（Ｓ１０）対応するジョブステップでＲＵＮ状態のスレッド制御ブロック（ＳＢＣ）が有れば処理を終了する。これにより、異なる頁又はジョブの画像処理が時分割並行処理されないので、プログラム切換のオーバーヘッドが生ぜず、スループットが向上する。ＲＵＮ状態のＳＢＣがなければステップＳ１１へ進む。
【００５０】
（Ｓ１１）ＥＮＤ状態のＳＢＣが有ればステップＳ１６へ進み、なければステップＳ１２へ進む。
【００５１】
（Ｓ１２、Ｓ１３）ジョブＩＤキュー４３１内の並び順に、次の（最初は先頭の）ジョブシリアルナンバーＪＳＮｏを１つ参照し、このジョブシリアルナンバーＪＳＮｏを含む、ＲＥＡＤＹ状態のスレッド制御ブロック（ＳＣＢ）が有ればステップＳ１５へ進み、なければステップＳ１４へ進む。
【００５２】
（Ｓ１４）ジョブＩＤキュー４３１に、次に参照すべきジョブシリアルナンバーＪＳＮｏがなければ、処理を終了する。
【００５３】
（Ｓ１５）このジョブシリアルナンバーＪＳＮｏを含む画像処理ＪＳＣブロック４４１に記載の設定情報と、該ＪＳＮｏ及び画像処理ＪＳＣブロック４４１に記載のページナンバーＰＮｏを含むＲＥＡＤＹ状態のスレッド制御ブロックに記載されている画像データ格納開始アドレス及び画像データ格納終了アドレスを、該画像処理ＪＳＣブロック４４１に記載の機能モジュールコードＦＭＣの機能ブロックに与えて、該機能ブロックを起動させ、スレッド制御状態をＲＵＮにして、処理を終了する。
【００５４】
この起動により、機能モジュールは、ＪＳＣモジュールの動作とは独立に、このアドレス範囲の画像データを処理して、ＯＳを介しメモリ１３に格納し、その格納開始及び終了アドレスを、画像処理ＪＳＣモジュール４５１に渡し、また、制御ブロック４５１ａのスレッド制御状態をＥＮＤにして、処理を終了する。
【００５５】
（Ｓ１６）後処理として、対応するＪＳＣブロックのページナンバーＰＮｏを１だけインクリメントし、スレッド制御状態がＥＮＤの制御ブロック４５１ａを消滅させ、さらに、アウトプットＪＳＣモジュール４５２に対し、図７に示すようなＲＥＡＤＹ状態のアウトプットスレッド制御ブロック４５２ａを生成させる。
【００５６】
アウトプットＪＳＣモジュール４５２の動作も、図８と同様である。この場合、ステップＳ１５での機能モジュール起動により、この機能モジュールは、与えられたアドレス範囲の画像データを、対応する出力装置から出力させる。また、ステップＳ１６では、対応するＪＳＣブロックのページナンバーＰＮｏを１だけインクリメントし、また、ＥＮＤ状態のスレッドの制御ブロック４５２ａを消滅させる。
【００５７】
図１のジョブ制御モジュール４３は、アウトプットＪＳＣモジュール４５２による最終ページナンバーＰＥＮｏのアウトプットスレッド制御ブロック消滅処理に応答して、このジョブシリアルナンバーＪＮｏのＪＳＣブロック４４０〜４４２を破棄するとともに、ジョブＩＤキュー４３１（図９参照）からこのジョブシリアルナンバーＪＮｏを含む行（機能識別コード＋ジョブシリアルナンバーＪＮｏ）を削除する。これにより、このジョブが終了する。
【００５８】
このような簡単な処理により、ジョブＩＤキュー４３１に格納されているジョブシリアルナンバーの並び順かつ同一ジョブシリアルナンバーについてはページナンバーＰＮｏ順にジョブが実行されるので、ユーザの操作によりジョブＩＤキュー４３１内のジョブシリアルナンバーの順番を変えれば、これに応じてジョブ実行順がジョブ単位で変更される。
【００５９】
次に、ジョブ実行順について説明する。
【００６０】
上述のように、ジョブが生成されるとジョブシリアルナンバーＪＳＮｏが機能識別コードとともにジョブＩＤキュー４３１に追加され、アウトプットジョブステップで１つのジョブの全頁出力が完了するとそのジョブシリアルナンバーＪＳＮｏを含む行がジョブＩＤキュー４３１から削除されるので、複数のジョブが残っている場合には、ジョブＩＤキュー４３１の内容は例えば図９（Ａ）に示す如くなる。これに対応して、ジョブＩＤキュー４３１内の各ジョブシリアルナンバーに対応したＪＳＣブロック４４０〜４４２が存在している。
【００６１】
ジョブＩＤキュー４３１及びＪＳＣブロック４４０〜４４２の内容は、ＧＵＩにも容易に利用することができる。すなわち、ユーザが操作・表示パネル２５上のジョブ状況表示キーを押下すると、ＧＵＩモジュール４２はジョブ制御モジュール４３に対しジョブ状況問い合わせをし、ジョブ制御モジュール４３はこれに応答して、ジョブＩＤキュー４３１の内容を読み出し、その各ジョブシリアルナンバーＪＳＮｏについて、ＪＳＣブロック４４０、４４１及び４４２に記載されているページナンバーＰＮｏを読み出し、これに基づいて出力完了予定時刻を概略計算し、これらをＧＵＩモジュール４２に渡す。ＧＵＩモジュール４２はこれを操作・表示パネル２５に表示させる。
【００６２】
これにより、例えば図１０（Ａ）に示すような表示が行われる。図中、Ｎｏ．はジョブシリアルナンバーＪＳＮｏであり、Ｎｏ．列は、図９（Ａ）のジョブＩＤキュー４３１のＪＳＮｏをその順に示している。入力、処理及び出力はそれぞれ、対応するＪＳＣブロック４４０、４４２及び４４２に記載されているページナンバーＰＮｏから１を減じた値であり、処理済みページ数を示している。
【００６３】
操作・表示パネル２５はタッチパネルを備え、これにはアップキー６６、ダウンキー６７、優先キー６８及び取消キー６９が表示されており、これらはジョブ実行順を変更する場合に、以下のように用いられる。
【００６４】
例えば、図１０（Ａ）においてユーザがＮｏ．３のジョブをＮｏ．２より先に実行させたい場合、ダウンキー６７を２回押して、Ｎｏ．１に在る矩形枠をＮｏ．３へ移動させ、優先キー６８を押す。これにより、図１０（Ｂ）に示すように矩形枠内に格子点が表示されて、移動対象が選択状態となる。次にアップキー６６を１回押すと、矩形枠が１つ上に移動して図１１（Ａ）に示す如くなり、この状態で優先キー６８を押すと移動が確定して、図１１（Ｂ）に示す如く格子点が消失する。これとともに、ＧＵＩモジュール４２によりこの順番のＮｏ．列に機能識別コードを結合したものがジョブＩＤキュー４３１に上書きされて、その内容が図９（Ｂ）に示す如く、図１１（Ｂ）のＮｏ．列と対応したものになる。もし、この優先キー６８の代わりに取消キー６９を押すと、図１０（Ａ）に示す初期状態に戻る。
【００６５】
以上説明したように、本実施例１によれば、画像形成装置用アプリケーション４０の構成が簡単かつ全ジョブについて統一的であるので、このアプリケーションの開発効率が高くなる。
【００６６】
また、機能モジュール群を備え、制御モジュールにより、ジョブ種別に応じて機能モジュールを選択的に起動させるので、各ジョブがジョブ実行順に関し対等の関係で取り扱われ、一方、制御モジュールで使用される制御情報を用いてジョブ状況を表示させ、これを用いてジョブ実行順を変更するので、簡単な構成で、ジョブ単位で実行順を変更することが可能となる。
【００６７】
さらに、各ジョブのジョブステップが統一されているので、アウトプットジョブステップのみならず画像処理ジョブステップにおいても、ジョブナンバーキュー内のジョブナンバーを並び順に参照し、未処理で実行可能なジョブナンバーのジョブステップがあれば、対応する機能モジュールを頁単位で実行させることが容易にでき、簡単なソフトウェア構成で、スループットを高く維持しつつ急ぎのジョブを優先的に処理して出力させることが可能となる。
【００６８】
また、引用文献１と異なり、メモリ資源管理は汎用ＯＳに任せればよいので、構成が簡単となる。
【００６９】
なお、本発明には外にも種々の変形例が含まれる。
【００７０】
例えば、上記実施例ではアプリケーション４０の論理構成を説明したが、この論理構成は各種の方法で実現可能であり、例えば、制御ブロックがＲＥＡＤＹになったときにイベントを発生させて機能モジュールを起動させるイベントドリブン型プログラムで実現することができる。
【００７１】
また、ジョブＩＤキュー４３１にジョブシリアルナンバーのみ入れ、ジョブシリアルナンバーと機能識別コードとをテーブル化した構成であってもよい。ＪＳＣテーブル４４０〜４４２には、機能モジュールコードを記入せず、ジョブＩＤキュー４３１内の機能識別コードと図３のテーブルとを用いて、機能モジュールコードを求める構成であってもよい。また、ジョブナンバーとしてのジョブシリアルナンバーは、機能識別コードと機能識別コード毎のシリアルナンバーであってもよい。すなわち、ジョブ種別の情報をジョブナンバーに付加したものであってもよい。ＪＳＣブロック４４０〜４４２はプログラム的には、それぞれＪＳＣ制御部としてのＪＳＣ制御モジュール４５０〜４５２又はジョブ制御モジュール４３のクラスの属性で表すこともできる。すなわち、制御モジュールに対するジョブ制御情報の与え方には種々の変形例が含まれる。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施例１に係る画像形成装置を構成するアプリケーションソフトウェアの全体構成を示す概略ブロック図である。
【図２】ジョブの種類に応じて選択的に実行される、４群に分類された複数の機能モジュールを示すブロック図である。
【図３】ジョブ制御モジュールで用いられるテーブルの説明図であって、コピー、プリント、スキャン、ファクシミリ送信及びファクシミリ受信の機能識別コードと、各ジョブで選択される、エディット以外の機能モジュールのコードとの対応関係を示すテーブルの説明図である。
【図４】（Ａ）〜（Ｅ）はそれぞれ、コピー、プリント、スキャン、ファクシミリ送信及びファクシミリ受信のジョブ実行時に順次起動される機能モジュールを示す概略シーケンス図である。
【図５】（Ａ）はジョブステップ制御（ＪＳＣ）ブロックの構成を示す図、（Ｂ）はインプットＪＳＣブロックに記述される情報の具体例を示す図、（Ｃ）は画像処理ＪＳＣブロックに記述される情報の具体例を示す図である。
【図６】画像入力に関するハードウェア資源管理部を示すブロック図である。
【図７】画像処理ＪＳＣモジュール及びアウトプットＪＳＣモジュールで取り扱われるページ毎の制御情報としてのスレッド制御ブロックの説明図である。
【図８】ジョブＩＤキューが示すジョブ順に従った、画像処理ＪＳＣモジュール又はアウトプットＪＳＣモジュールの処理を示すフローチャートである。
【図９】（Ａ）及び（Ｂ）はそれぞれジョブ実行順変更前と変更後のジョブＩＤキューの内容を説明する図である。
【図１０】（Ａ）及び（Ｂ）はジョブ実行順変更操作説明図である。
【図１１】図１０の続きを示すジョブ実行順変更操作説明図である。
【図１２】本発明の実施例１に係る画像形成装置のハードウェア概略構成を示すブロック図である。
【符号の説明】
【００７３】
１０  画像形成装置
１１  プロセッサ
１２  チップセット
１３  メモリ
１４  ハードディスク装置
１５〜１８  拡張カード
１９  ＮＩＣ
２０  通信モデム
２５  操作・表示パネル
２６  搬送装置等
２７  プリントエンジン
２８  スキャンエンジン
３０  ホストコンピュータ
３１  公衆回線
４０  アプリケーション
４１  機能モジュール群
４１０  入力機能モジュール群
４１１  画像処理機能モジュール群
４１２  出力機能モジュール群
４２  ＧＵＩモジュール
４３  ジョブ制御モジュール
４３０  ジョブカウンタ
４３１  ジョブＩＤキュー
４４０  インプットＪＳＣブロック
４４１  画像処理ＪＳＣブロック
４４２  アウトプットＪＳＣブロック
４５０  インプットＪＳＣモジュール
４５１  画像処理ＪＳＣモジュール
４５２  アウトプットＪＳＣモジュール
４６  スキャンエンジン管理モジュール
４７  ＮＩＣ管理モジュール
４８  ＭＯＤＥＭ管理モジュール
５０  汎用ＯＳ
５０１  メモリ管理モジュール
５６  スキャンエンジンドライバ
５７  ＮＩＣドライバ
５８  ＭＯＤＥＭドライバ
６０  ジョブシリアルナンバー
６１  ページナンバー
６２  状態
６３  格納開始アドレス
６４  格納終了アドレス
６６  アップキー
６７  ダウンキー
６８  優先キー
６９  取消キー
ＦＭＣ  機能モジュールコード
ＪＳＮｏ  ジョブシリアルナンバー
ＰＮｏ  ページナンバー
【図１】
0004482526.tif 000002
【図２】
0004482526.tif 000003
【図３】
0004482526.tif 000004
【図４】
0004482526.tif 000005
【図５】
0004482526.tif 000006
【図６】
0004482526.tif 000007
【図７】
0004482526.tif 000008
【図８】
0004482526.tif 000009
【図９】
0004482526.tif 000010
【図１０】
0004482526.tif 000011
【図１１】
0004482526.tif 000012
【図１２】
0004482526.tif 000013