(57)【要約】      （修正有）【課題】ＰＤＬ処理モジュールに割り当てられたメモリ領域を好適なタイミングで解放することができる画像形成装置を提供する。【解決手段】ページ記述言語で記述された印刷データを解釈する解釈手段と、解釈手段に対するメモリ領域の割り当てを制御するメモリ制御手段と、メモリ領域が割り当てられた解釈手段によって印刷データを解釈させて印刷を行う実行手段と、を有する画像形成装置において、メモリ制御手段は、印刷データの解釈の後の、メモリ領域が割り当てられている解釈手段による印刷データの解釈が少なくとも行われずに経過した時間にしたがって、当該割り当てられているメモリ領域を解放することを特徴とする。【選択図】図７
2019072968.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語で記述された印刷データを解釈する解釈手段と、前記解釈手段に対するメモリ領域の割り当てを制御するメモリ制御手段と、メモリ領域が割り当てられた前記解釈手段によって前記印刷データを解釈させて印刷を行う実行手段と、を有する画像形成装置において、
前記メモリ制御手段は、前記印刷データの前記解釈の後の、前記メモリ領域が割り当てられている前記解釈手段による印刷データの解釈が少なくとも行われずに経過した時間にしたがって、当該割り当てられているメモリ領域を解放することを特徴とする画像形成装置。
【請求項２】
前記ページ記述言語とは異なる種類のページ記述言語で記述された印刷データを解釈する別の解釈手段を有し、、
前記メモリ制御手段は、前記別の解釈手段に対するメモリ領域の割り当てを制御するのであって、前記経過した時間にしたがって、前記解釈手段に対して割り当てられている前記メモリ領域を解放し、かつ、前記別の解釈手段に対してメモリ領域を割り当てることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記経過した時間とは、前記画像形成装置が有する前記解釈手段を含む複数の解釈手段のいずれによる印刷データの解釈も行われずに経過した時間であることを特徴とする請求項１または２に記載の画像形成装置。
【請求項４】
前記メモリ制御手段は、前記経過した時間が所定の時間を超えた場合に、前記メモリ領域を解放することを特徴とする請求項１乃至３の何れか１項に記載の画像形成装置。
【請求項５】
前記メモリ制御手段によって割り当てられるメモリ領域は、当該メモリが割り当てられた解釈手段によってワークエリアとして利用されることを特徴とする請求項１乃至４の何れか１項に記載の画像形成装置。
【請求項６】
異なる種類のページ記述言語で記述された印刷データを解釈する複数の解釈手段と、印刷対象の印刷データのページ記述言語の種類に応じた解釈手段に対してメモリ領域を割り当てるメモリ制御手段と、メモリ領域が割り当てられた解釈手段に印刷データを解釈させて印刷を実行する実行手段と、を有する画像形成装置であって、
前記メモリ制御手段は、メモリ領域が割り当てられた解釈手段による印刷データの解釈が少なくとも行われずに経過した時間にしたがって、当該解釈手段に対して割り当てられた当該メモリ領域を解放することを特徴とする画像形成装置。
【請求項７】
前記メモリ制御手段は、前記経過した時間が所定の時間を超えた場合に、前記メモリ領域の解放を行うことを特徴とする請求項６に記載の画像形成装置。
【請求項８】
前記メモリ制御手段は、前記経過した時間にしたがって、前記メモリ領域の解放を行い、かつ、所定の解釈手段に対してメモリ領域を割り当てることを特徴とする請求項６または７に記載の画像形成装置。
【請求項９】
前記メモリ制御手段は、前記経過した時間が前記所定の時間を超えた場合に、前記メモリ領域の前記解放を行い、かつ、前記所定の解釈手段に対してメモリ領域を割り当てることを特徴とする請求項８に記載の画像形成装置。
【請求項１０】
前記経過した時間とは、前記複数の解釈手段のいずれによる印刷データの解釈も行われずに経過した時間であることを特徴とする請求項６乃至９の何れか１項に記載の画像形成装置。
【請求項１１】
ページ記述言語で記述された印刷データを解釈する解釈手段に対してメモリ領域を割り当てる工程と、
メモリ領域が割り当てられた前記解釈手段によって前記印刷データを解釈させて印刷を行う工程と、
前記印刷データの前記解釈の後の、前記メモリ領域が割り当てられている前記解釈手段による印刷データの解釈が少なくとも行われずに経過した時間にしたがって、当該割り当てられているメモリ領域を解放する工程と、
を有することを特徴とする画像形成方法。
【請求項１２】
前記経過した時間にしたがって、前記ページ記述言語とは異なる種類のページ記述言語で記述された印刷データを解釈する別の解釈手段に対してメモリ領域を割り当てる工程をさらに有することを特徴とする請求項１１に記載の画像形成方法。
【請求項１３】
前記別の解釈手段に対してメモリ領域を割り当てる工程は、前記メモリ領域を解放する工程の後に行われることを特徴とする請求項１２に記載の画像形成方法。
【請求項１４】
前記経過した時間とは、前記解釈手段を含む複数の解釈手段のいずれによる印刷データの解釈も行われずに経過した時間であることを特徴とする請求項１１乃至１３の何れか１項に記載の画像形成方法。
【請求項１５】
前記メモリ領域を解放する工程は、前記経過した時間が所定の時間を超えた場合に行われることを特徴とする請求項１１乃至１４の何れか１項に記載の画像形成方法。
【請求項１６】
解釈手段に対して割り当てられたメモリ領域は、当該解釈手段による印刷データの解釈の際にワークエリアとして利用されることを特徴とする請求項１１乃至１５の何れか１項に記載の画像形成方法。
【請求項１７】
請求項１乃至１１の何れか１項に記載の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ページ記述言語で記述された印刷データを解釈する解釈手段に対するメモリ領域の割り当て技術に関する。
【背景技術】
【０００２】
コンピュータが印刷装置等の画像形成装置に対して描画指示を行うために用いられる、種々のページ記述言語（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ，以下、ＰＤＬと記す）が知られている。代表的なＰＤＬとしては、例えばＬＩＰＳ、Ｐｏｓｔｓｃｒｉｐｔ（ＰＳ）、ＰＤＦ、ＰＣＬ、ＸＰＳなどが存在する。
【０００３】
近年の画像形成装置は、複数のＰＤＬ種別での印刷をサポートしている。これらの画像形成装置は、サポートしているＰＤＬ種別で記述された描画命令を解釈することができ、その解釈された描画命令に基づいてページデータ（ビットマップデータ）を生成する。さらに、これらの画像形成装置は、生成されたページデータに基づいて印刷を行う。
【０００４】
特許文献１は、サポートしているＰＤＬ種別ごとにＰＤＬ処理モジュールを持ち、それらＰＤＬ処理モジュールのうち、限られたＰＤＬ処理モジュールのみを有効化する画像形成装置を開示する。この画像形成装置は、ＬＡＮなどのネットワークを介してＰＤＬデータ（印刷データ）をコンピュータから受信すると、そのＰＤＬデータを解釈可能なＰＤＬ処理モジュールのみを有効化する。ＰＤＬ処理モジュールの有効化では、そのＰＤＬ処理モジュールによって使用されるワーク領域用のメモリを確保する（割り当てる）ことが行われる。ここでＰＤＬデータを解釈不可能なＰＤＬ処理モジュールが有効化されていた場合にそのＰＤＬ処理モジュールを無効化してから（確保されていたメモリを解放してから）、必要なＰＤＬ処理モジュールの有効化が行われる。この無効化および有効化のことをＰＤＬ処理モジュールの切り替えと呼び、ＰＤＬ処理モジュールの切り替えによって、すべてのＰＤＬ処理モジュール分のメモリを確保しておく場合よりも省メモリ化を図ることができる。またこの特許文献１の画像形成装置は、印刷データの解釈が完了すると、使用したＰＤＬ処理モジュールに対して確保したメモリを解放する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−１３２１１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１では、印刷データの解釈を完了すると、ＰＤＬ処理モジュール用に確保していたメモリを解放する。そのため、例えば、そのＰＤＬ処理モジュールによって解釈される印刷データが複数、連続して受信する場合に、その印刷データの解釈が完了する度に、メモリが解放されてしまい、メモリ解放に要する時間によりパフォーマンスが低下しうる。本発明は、ＰＤＬ処理モジュールに割り当てられたメモリ領域を好適なタイミングで解放することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の画像形成装置は、ページ記述言語で記述された印刷データを解釈する解釈手段と、前記解釈手段に対するメモリ領域の割り当てを制御するメモリ制御手段と、メモリ領域が割り当てられた前記解釈手段によって前記印刷データを解釈させて印刷を行う実行手段と、を有する画像形成装置において、前記メモリ制御手段は、前記印刷データの前記解釈の後の、前記メモリ領域が割り当てられている前記解釈手段による印刷データの解釈が少なくとも行われずに経過した時間にしたがって、当該割り当てられているメモリ領域を解放することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、メモリ領域が割り当てられている解釈手段による印刷データの解釈が少なくとも行われずに経過した時間にしたがって、そのメモリ領域を解放することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態におけるシステム構成図である。
【図２】実施形態における画像形成装置のハードウェア構成図である。
【図３】実施形態における画像形成装置のソフトウェア構成図である。
【図４】実施形態における画像形成装置の操作パネルに表示されるホーム画面を示す図である。
【図５】実施形態における画像形成装置のＲＡＭ２０１２の内部データを示す図である。
【図６】実施形態における画像形成装置によるＰＤＬデータの印刷に係るフローチャートである。
【図７】実施形態における画像形成装置による特定のＰＤＬ処理モジュールの有効化に係るフローチャートである。
【発明を実施するための形態】
【００１０】
（実施形態）
以下、本発明の画像形成装置の一実施形態を説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらに限定する趣旨のものではない。また、実施形態で説明されている構成要素の組み合わせのすべてが、課題を解決するための手段に必須のものとは限らない。
【００１１】
図１は、本実施形態におけるシステム構成の一例である。画像形成装置１０１はＬＡＮ等のネットワーク１０２でホストＰＣ等のコンピュータ１０３と接続されている。ホストＰＣ１０３は画像形成装置１０１のプリンタドライバによって、印刷対象のＰＤＬデータ（印刷データ）を生成し、そのＰＤＬデータを、ネットワーク１０２を介して画像形成装置１０１に送信する。画像形成装置１０１は、ＰＤＬデータを受け取ると、そのＰＤＬデータを記述しているページ記述言語（ＰＤＬ）の種別（種類）を判定し、そのＰＤＬ種別に対応するＰＤＬ処理モジュールを用いてそのＰＤＬデータを解釈して印刷する。また後述するように、画像形成装置１０１は、メディアプリントと呼ばれる機能を有する。この機能は、画像形成装置１０１に装着されたＵＳＢメモリに記憶されているＰＤＦファイルやＸＰＳファイルなどのＰＤＬデータを印刷する機能である。この機能を使う場合、ユーザはまず、画像形成装置１０１の操作パネルのホーム画面（図４参照）に表示されている所定のボタン（メディアプリントボタン）を押す。すると、画像形成装置１０１は、操作パネルに、ＵＳＢメモリに記憶されている印刷可能なファイル一覧を表示する。そしてユーザは、操作パネルを介して、印刷対象のファイルを選択して印刷実行を指示する。すると画像形成装置１０１は、印刷対象のファイル（ＰＤＬデータ）を記述しているＰＤＬの種別を判定し、そのＰＤＬ種別に対応するＰＤＬ処理モジュールを用いてそのＰＤＬデータを解釈して印刷する。
【００１２】
ここで画像形成装置１０１は、必要なＰＤＬ処理モジュールが無効化されている場合、有効化されているＰＤＬ処理モジュールを無効化し、必要なＰＤＬ処理モジュール（およびこのＰＤＬ処理モジュールと同じグループのＰＤＬ処理モジュール）を有効化する。すなわち一部のＰＤＬ処理モジュールだけが有効化される。このようなＰＤＬ処理モジュールの切り替えには、１秒ほどの時間がかかる。
【００１３】
本実施形態における画像形成装置１０１は、有効化されたＰＤＬ処理モジュールを用いてＰＤＬデータを解釈して印刷する。ここで有効化されたＰＤＬ処理モジュールが、ＰＤＬ処理モジュールの切り替えのために無効化された他のＰＤＬ処理モジュールと比べて利用頻度が少ない場合がある。すなわち、ここで有効化されたＰＤＬ処理モジュールよりも相対的に利用頻度が高いＰＤＬ処理モジュール（特定のＰＤＬ処理モジュール）が無効化されることがある。この場合に、有効化されたＰＤＬ処理モジュールを用いた印刷が完了した後、この特定のＰＤＬ処理モジュールを有効化しておけば、特定のＰＤＬ処理モジュールに対応するＰＤＬデータを受信してからＰＤＬ処理モジュールを有効化する時間を省くことができる。
【００１４】
しかしながら、印刷終了の直後に特定のＰＤＬ処理モジュールを有効化すると、同じＰＤＬ処理モジュールに対応する複数のＰＤＬデータが連続して受け付けられた場合に、ＰＤＬデータの印刷が終了する度にＰＤＬ処理モジュールの切り替えが発生してしまう。これでは、切り替え時間によるオーバーヘッドが大きくなるため、生産性の低下を招き得る。
【００１５】
そこで、本実施形態では、適切なタイミングで特定のＰＤＬ処理モジュールを有効化することを図る。ここでいう適切なタイミングとは、ＰＤＬデータの印刷完了から他のＰＤＬデータを受け付ける（解釈する）ことなく所定時間が経過したタイミングであってもよい。またあるいは、操作パネルを介したユーザの操作によってＰＤＬ処理モジュールの切り替えを行ったが、切り替え後にＰＤＬデータを受け付けることなく（ＰＤＬデータの解釈が行われることなく）所定時間が経過したタイミングであってもよい。またあるいは、ユーザ認証機能が有効な画像形成装置では、ログイン後の操作パネルに表示されたログアウトボタンがユーザによって押下されてから他のＰＤＬデータを受け付ける（解釈する）ことなく所定時間が経過したタイミングであってもよい。すなわち、本実施形態の画像形成装置は、画像形成装置が所定の状態のまま、所定時間が経過したときに、特定のＰＤＬ処理モジュールを有効化する。この所定の状態とは、画像形成装置のＰＤＬ解釈機能（ＰＤＬ処理モジュール）が使用されていない状態のことである。具体的には例えば、特定のＰＤＬ処理モジュールが無効化され、かつ、別のＰＤＬ処理モジュールが有効化されているが、ＰＤＬデータが処理されていない状態のことを指す。別の言い方をすると、所定イベント（ＰＤＬデータの印刷ジョブ終了や、ＰＤＬ処理モジュールの切り替えを伴う操作パネルのユーザ操作）が生じてから、ＰＤＬデータの処理が行われずに所定時間が経過すると、特定のＰＤＬ処理モジュールが有効化される。
【００１６】
なお本実施形態でいう、ＰＤＬ処理モジュールの有効化とは、画像形成装置がＰＤＬ処理モジュールを用いてＰＤＬデータを解釈可能な状態にすることである。例えばＰＤＬ処理モジュールがプログラムであれば、そのプログラムを実行してワークエリアを確保して起動することであってもよい。あるいはＰＤＬ処理モジュールのプログラムが画像形成装置の電源ＯＮ時に実行されて起動されるのであれば、このプログラムにしたがってＰＤＬデータを解釈する際に利用されるワークメモリを確保することであってもよい。またあるいは、このプログラムにしたがってＰＤＬデータを解釈する際に利用される文字フォントリソースなどをワークメモリに読み込むことであってもよい。本実施形態では、ワークメモリは、ワークエリア、作業用メモリ領域、ヒープメモリとも呼ばれる。
【００１７】
また本実施形態でいう、ＰＤＬ処理モジュールの無効化とは、画像形成装置がＰＤＬ処理モジュールを用いてＰＤＬデータを解釈不可能な状態にすることである。例えばＰＤＬ処理モジュールがプログラムであれば、そのプログラムを終了して停止することであってもよい。あるいはＰＤＬ処理モジュールのプログラムが画像形成装置の電源ＯＮ時から起動され続けるのであれば、このプログラムにしたがってＰＤＬデータを解釈する際に利用されるワークメモリを解放することであってもよい。またあるいは、このプログラムにしたがってＰＤＬデータを解釈する際に利用される文字フォントリソースなどをワークメモリから削除することであってもよい。
【００１８】
そして、あるＰＤＬ処理モジュールを無効化して別のＰＤＬ処理モジュールを有効化することを、本実施形態では、ＰＤＬ処理モジュールの切り替えと呼ぶ。
【００１９】
図２は、本実施形態における画像形成装置１０１のハードウェア構成の一例である。
【００２０】
ＣＰＵ２０１１を含む制御部（コントローラ）２０１０は画像形成装置１０１全体の動作を制御する。
【００２１】
ＣＰＵ２０１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。図３で後述するソフトウェアモジュールは全てこのＣＰＵ２０１１上で動作する。ＣＰＵ２０１１はシステムバス２０１８を介して、画像形成装置１０１内の各構成要素の制御を司る。
【００２２】
ＲＡＭ２０１２は、ＣＰＵ２０１１がアクセスできるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。後述のフトウェアの動作に必要なワークメモリ（作業用のメモリ領域、ワーク領域）の確保先として利用される。
【００２３】
ＲＯＭ２０１３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）である。図３で後述するソフトウェアモジュールはここに格納され、ＣＰＵ２０１１に読み込まれ、実行される。
【００２４】
プリンタＩ／Ｆ２０１４は、プリンタ２０２０（プリンタエンジン）と制御部２０１０を接続する。プリンタ２０２０に画像信号を出力するインターフェースを担う。
【００２５】
ＵＳＢ  Ｉ／Ｆ２０１５は、ＵＳＢコネクタ２０３０と制御部２０１０を接続する。
【００２６】
ネットワークＩ／Ｆ２０１６は、外部のネットワークと制御部２０１０を接続する。
【００２７】
操作パネルＩ／Ｆ２０１７は、入力部２０４０と制御部２０１０、表示部２０５０と制御部を接続する。入力部２０４０はユーザのタッチ操作を受け付けるタッチパネルであり、表示部２０５０は画面を表示するＬＣＤである。画像形成装置１０１のユーザインタフェースでもある操作パネルは、これら入力部２０４０と表示部２０５０とで構成されるタッチスクリーンを含む。
【００２８】
図３は、本実施形態における画像形成装置１０１のソフトウェアモジュール構成の一例である。
【００２９】
入力制御部３０１は、入力部２０４０を制御する。操作パネルを介したユーザからの指示入力を待ち受け、受け付けた指示内容をジョブ制御部３０５などの他の機能部に通知する。
【００３０】
表示制御部３０２は、他の機能部からの指示にしたがって、操作メニューを含むホーム画面や指示結果を表示部２０５０（操作パネル）に表示する。
【００３１】
ＵＳＢドライバ３０３は、ＵＳＢ  Ｉ／Ｆ２０１５を制御する。他の機能部からの指示にしたがって、画像形成装置１０１とＵＳＢメモリ間でＰＤＬデータなどのデータ入出力を行う。
【００３２】
ネットワーク制御部３０４は、ネットワークＩ／Ｆ２０１６を制御し、ネットワークＩ／Ｆ２０１６を介して、ＰＣ、スマートフォンなどの外部コンピュータからＰＤＬデータなどのデータを受け取る。
【００３３】
ジョブ制御部３０５は、入力制御部３０１やネットワーク制御部３０４からのユーザ指示の受け付けやＰＤＬデータの受信の通知を受けてジョブを作成し、作成したジョブを処理する。他の機能部に適切なタイミングで指示を出すことで、作成されたジョブを一定の順序で処理する。また、画像形成装置１０１の電源ＯＮ時に、他の機能部に起動処理の指示を出す。またこのジョブ制御部３０５は、ＰＤＬ有効化判定部３０６に対してＰＤＬ種別を通知し、そのＰＤＬ有効化判定部３０６から通知される判定結果に従って、そのＰＤＬ種別に対応するＰＤＬ処理モジュールを有効化することをＰＤＬ処理部３０７に指示する。またジョブ制御部３０５は、どのＰＤＬ処理モジュール（どのＰＤＬ処理モジュールのグループ）が有効化されているかを示す有効ＰＤＬ情報をＲＡＭ２０１２に記憶する。またジョブ制御部３０５は、所定イベントの発生を検知すると、タイマー処理部３１２に所定時間の経過を計測させる。
【００３４】
ＰＤＬ有効化判定部３０６は、ジョブ制御部３０５から通知されたＰＤＬ種別に対応するＰＤＬ処理モジュールが現在有効化されているかを判定し、判定結果をジョブ制御部３０５に返答する。この判定は、例えば、ＰＤＬ有効化判定部３０６は、対象のＰＤＬ種別に対応するＰＤＬ処理モジュールを特定し、そのＰＤＬ処理モジュールが有効化されているか否かを、ＲＡＭ２０１２に記憶されている有効ＰＤＬ情報を参照して判定すればよい。
【００３５】
ＰＤＬ処理部３０７は、メモリ領域の割り当てを制御するメモリ制御手段として機能する。このＰＤＬ処理部３０７は、ＰＤＬデータを解釈するための各ＰＤＬ処理グループ（ＬＩＰＳ処理グループ３０７１、ＰＣＬ処理グループ３０７２、及びＰＤＦ処理グループ３０７３）を管理する。ＰＤＬ処理部３０７は、ジョブ制御部３０５のＰＤＬ処理モジュールを有効化する指示にしたがって、そのときに有効化されているＰＤＬ処理グループ用に割り当てられているワークメモリを解放する。これにより、そのＰＤＬ処理グループのＰＤＬ処理モジュールを無効化する。すなわち、ＰＤＬ処理部３０７は、それらＰＤＬ処理モジュールによるＰＤＬデータの解釈を不可能な状態にする。その後、ＰＤＬ処理部３０７は、ジョブ制御部３０５から指定されたＰＤＬ処理モジュールが属するＰＤＬ処理グループ用にワークメモリを確保する。これにより、そのＰＤＬ処理グループに含まれるＰＤＬ処理モジュールは有効化される。すなわち、ＰＤＬ処理部３０７は、有効化されたＰＤＬ処理モジュールによるＰＤＬデータの解釈を可能な状態にする。このときＰＤＬ処理部３０７は、ＰＤＬ処理モジュールの切り替えが完了したことをジョブ制御部３０５に通知する。そして、ジョブ制御部３０５の指示にしたがって、ＰＤＬ処理部３０７は、有効化されたＰＤＬ処理モジュールのうち、適切なモジュールを用いて、ＰＤＬデータに含まれる描画命令を解釈する。そしてＰＤＬ処理部３０７は、その解釈によって得られたデータを基に、不図示の描画モジュールを用いて、ページデータ（ページのビットマップ）を生成する。この解釈および生成の処理を、以下ではＰＤＬ処理と呼ぶ。
【００３６】
本実施形態においては、描画モジュールが共通であるものをグループとしている。具体的には、ＰＤＦ処理グループ３０７３にはＰＳ処理モジュール（ＰＳに従ったＰＤＬデータを解釈するモジュール）とＰＤＦ処理モジュール（ＰＤＦに従ったＰＤＬデータを解釈するモジュール）が含まれる。ＰＤＦデータの描画にはＰＳデータ用の描画モジュールを使用していることから同一グループとしている。またＬＩＰＳ処理グループ３０７１にはＬＩＰＳ処理モジュール（ＬＩＰＳに従ったＰＤＬデータを解釈するモジュール）が含まれる。またＰＣＬ処理グループ３０７２には、ＰＣＬ処理モジュール（ＰＣＬに従ったＰＤＬデータを解釈するモジュール）とＸＰＳ処理モジュール（ＸＰＳに従ったＰＤＬデータを解釈するモジュール）が含まれる。
【００３７】
尚、本実施形態におけるＰＤＬ処理モジュールのグループ分けは一例であり、実施形態に応じた任意のグループ分けが可能である。どのＰＤＬ処理モジュールどうしが同じグループであるかを示す情報は、電源ＯＮ時にＲＯＭ２０１３からＲＡＭ２０１２に記憶される。
【００３８】
画像処理部３０８は、ＪＰＥＧなどの画像データやＰＤＬ処理部３０７により生成されたページデータに対して、キャリブレーションや色変換等の画像処理を行う。
【００３９】
プリンタドライバ３０９は、プリンタＩ／Ｆ２０１４を制御する。ジョブ制御部３０５からの指示にしたがって、印刷処理（画像処理部３０８によって処理されたページデータを、プリンタ２０２０が処理可能な画像信号に変換してプリンタＩ／Ｆ２０１４を介してプリンタ２０２０に送信する処理）を行う。
【００４０】
記憶部３１０は、他の機能部からの指示にしたがって、指定されたデータをＲＡＭ２０１２やＲＯＭ２０１３に書き込む、あるいは記憶しているデータを読み出す。なお、図３の点線は他のすべての機能部と接続していることを意味する。本実施形態では、特に、ジョブ制御部３０５やＰＤＬ種別判定部３１１からの指示にしたがって、後述するＰＤＬ処理グループ準備完了フラグ９０１の書き込みと読み出しを行う。入力制御部３０１の操作によりユーザが設定したよく使うＰＤＬ情報や、ジョブ制御部３０５によりユーザの各ＰＤＬジョブ投入回数のカウント値もＲＯＭ２０１３に記憶され、特定のＰＤＬ種別を特定する要素に使用することができる。
【００４１】
ＰＤＬ種別判定部３１１は、ジョブ制御部３０５の指示に従い、ネットワーク制御部３０４から受信したＰＤＬデータが、どのＰＤＬ種別のデータであるかを判定する。ＰＤＬ種別判定部３１１は、判定されたＰＤＬ種別をジョブ制御部３０５に返答する。ＰＤＬ種別判定部３１１は、例えばデータの先頭に％！ＰＳの文字列がある場合は、ＰＤＬデータがＰＳデータ（ＰＳ）であると判定し、それをジョブ制御部３０５に返答する。なおＰＤＬの種別は、ＰＤＬデータとして受信したファイルのファイル名の拡張子から判断してもよいし、ＰＤＬデータのヘッダ解析で判断してもよい。ジョブ制御部３０５はＰＤＬ種別判定部３１１により判定されたＰＤＬ種別をＰＤＬ有効化判定部３０６に通知する。
【００４２】
タイマー処理部３１２は、ジョブ制御部３０５からの指示に従い、所定時間の経過を測定する。たとえば、ジョブ制御部３０５は、ジョブ終了を検知した時に、タイマー処理部３１２に対して、所定時間の経過を測定することを指示する。所定時間は例えば５分である。ここでタイマー処理部３１２は、所定時間が経過したことを検知すると、そのことをジョブ制御部３０５に通知する。その通知を受けたジョブ制御部３０５は、ＰＤＬ有効化判定部３０６に特定のＰＤＬ種別を通知する。
【００４３】
図４は、本実施形態における画像形成装置１０１のホーム画面（基本画面と呼ばれることもある）４００の一例である。画像形成装置１０１で実行可能なファンクション（コピー、ファクス、スキャン等）のボタンが表示されている。ユーザは任意のボタンを押下することでそれらのファンクションを選択できる。このホーム画面には前述のように「メディアプリントボタン」が表示されており、ＵＳＢメモリに記憶されているＰＤＬデータが印刷可能である。またユーザ認証機能が有効な画像形成装置では、このホーム画面に前述の「ログアウトボタン」が表示されており、このボタンをユーザが押すことでユーザは画像形成装置からログアウトすることができる。ログアウトされた状態の画像形成装置は、ＰＤＬデータの印刷指示をユーザから操作パネルを介して受け付けることはできない。
【００４４】
なお、本実施形態では画像形成装置１０１が搭載しているユーザインタフェースとして、ユーザが画面に直接触ることで操作するタッチスクリーン式の操作パネルを想定して説明しているが、本発明にタッチスクリーンが必須の構成要素というわけではない。
【００４５】
図５は、本実施形態における画像形成装置１０１のＲＡＭ２０１２の内部データの一例を示す図である。ＰＤＬ処理グループ準備完了フラグ９０１はＰＤＬ処理グループがＰＤＬ処理を開始できるか否かの状態を示すフラグであり、「準備完了」、「準備未完了」を表す２つの値のいずれかが格納される。「準備未完了」の値は、ジョブ制御部３０５がＰＤＬ処理部３０７にＰＤＬ処理モジュールの切り替えを指示するタイミングで、ジョブ制御部３０５がフラグ９０１に書き込む。そして「準備完了」の値は、ジョブ制御部３０５がＰＤＬ処理部３０７からＰＤＬ処理モジュールの切り替えが完了したことを示す通知を受け取ると、ジョブ制御部３０５がフラグ９０１に書き込む。情報テーブル９０２は、各ＰＤＬ処理モジュールがどのＰＤＬ処理グループに属するかのグループメンバー情報が記録されたテーブルを含む。
【００４６】
図６は、本実施形態における画像形成装置１０１におけるＰＤＬデータの印刷に係るフローチャートである。
【００４７】
画像形成装置１０１のユーザが操作可能な電源スイッチ（不図示）がＯＮされると（Ｓ１００１）、ジョブ制御部３０５は、ＰＤＬ処理部３０７に対して、特定のＰＤＬ処理モジュールを有効化することを指示する。ＰＤＬ処理部３０７はジョブ制御部３０５からの指示にしたがって、特定のＰＤＬ処理モジュールが属するグループのＰＤＬ処理モジュールを有効化する（Ｓ１００２）。本実施形態では、この特定のＰＤＬ処理モジュールが属するグループのことを規定のＰＤＬ処理グループと呼び、この規定のＰＤＬ処理グループとしてＬＩＰＳ処理グループ３０７１が予め定められているものとする。ＰＣＬ処理グループ３０７２とＰＤＦ処理グループ３０７３は有効化されない。また、表示制御部３０２はジョブ制御部３０５からの指示にしたがって、電源ＯＮ後の待機画面であるホーム画面４００を表示する（Ｓ１００２）。
【００４８】
ネットワーク制御部３０４がネットワークＩ／Ｆ２０１６を介してＰＤＬデータを外部コンピュータから受信すると（Ｓ１００５）、ジョブ制御部３０５は受信したＰＤＬデータをもとに印刷ジョブを作成し、ジョブ処理を開始する（Ｓ１００６）。ジョブ制御部３０５は、ＰＤＬ種別判定部３１１にＰＤＬデータのＰＤＬ種別の判定を依頼し、その結果をＰＤＬ種別判定部３１１から受け付ける（Ｓ１００８）。
【００４９】
続いてジョブ制御部３０５は、ＰＤＬ有効化判定部３０６にＰＤＬ種別判定部３１１から受け取ったＰＤＬ種別を通知し、ＰＤＬ有効化判定部３０６からそのＰＤＬ種別に対応するＰＤＬ処理モジュールが有効化されているか否かの通知を受け取る。その通知に従い、ジョブ制御部３０５は、ＰＤＬデータに対応するＰＤＬ処理モジュールが有効化されているかを判定する（Ｓ１００９）。
【００５０】
ＰＤＬデータに対応するＰＤＬ処理モジュールが有効化されている場合（Ｓ１００９でＹｅｓ）、ジョブ制御部３０５は、ＰＤＬ処理部３０７に対して受信したＰＤＬデータの解釈処理を指示する。すると、ＰＤＬ処理部３０７は有効化されているＰＤＬ処理モジュールのうち適切なモジュールを用いてＰＤＬデータのＰＤＬ処理を行う（Ｓ１０１１）。一方、ＰＤＬデータに対応するＰＤＬ処理モジュールが有効化されていない場合（Ｓ１００９でＮｏ）、ジョブ制御部３０５は、ＰＤＬ処理部３０７に対して受信したＰＤＬデータのＰＤＬ種別に対応するＰＤＬ処理モジュールを有効化するように指示する。そしてジョブ制御部３０５は、有効ＰＤＬ情報を更新する。この指示を受けたＰＤＬ処理部３０７は、現在有効化されているＰＤＬ処理モジュールを無効化し、指示されたＰＤＬ処理モジュール（およびそのグループに含まれる他のＰＤＬ処理モジュール）を有効化する（Ｓ１０１０）。すなわち、ＰＤＬ処理部３０７は、有効化対象のＰＤＬ処理モジュールを切り替える。そしてジョブ制御部３０５は、ＰＤＬ処理部３０７から有効化完了の通知を受け取り、ＰＤＬデータの解釈処理をＰＤＬ処理部３０７に指示する。すると、ＰＤＬ処理部３０７は有効化されているＰＤＬ処理モジュールのうちの適切なモジュールを用いてＰＤＬデータのＰＤＬ処理を行う（Ｓ１０１１）。
【００５１】
続いてジョブ制御部３０５は、ＰＤＬ処理により得られたページデータに画像処理を行うよう、画像処理部３０８に指示する。画像処理部３０８はＰＤＬ処理部３０７により生成されたページデータに色変換やディザ処理などの画像処理を実行する（Ｓ１０１２）。
【００５２】
次にジョブ制御部３０５はプリンタドライバ３０９に印刷処理を指示し、プリンタドライバ３０９はプリンタＩ／Ｆ２０１４を介しプリンタ２０２０に生成されたページデータの画像信号を出力し印刷処理を実行する（Ｓ１０１３）。そしてジョブ制御部３０５はジョブ処理を終了する（Ｓ１０１４）。
【００５３】
ここで、Ｓ１０１０で切り替えられた（ワークメモリが確保された）ＰＤＬモジュールを用いたジョブが終了した後のことを考えてみる。ジョブの終了後、同じＰＤＬ種のＰＤＬデータが続いて受信される場合がある。この場合に備えて暫くはそのＰＤＬモジュールのワークメモリを確保したままにしておくのが好ましい。一方で、ジョブの終了後、ＰＤＬモジュールを用いるジョブが暫く受信されなかったり、ＰＤＬモジュールを用いるジョブを実行するために行われるユーザ操作が暫く行われなかったりする場合もある。この場合には、適切なＰＤＬモジュールに切り替える（ＰＤＬモジュールで使用されるワークメモリを確保しておく）ことが望ましい。そこで本実施形態の画像形成装置は、所定のタイマーを用いて、ＰＤＬモジュールの切り替え制御（ワークメモリの解放および確保）を行う。この制御について図７を用いて説明する。
【００５４】
図７は、本実施形態における画像形成装置１０１における特定のＰＤＬ処理モジュールの有効化に係るフローチャートである。本処理は、ＰＤＬデータのジョブ処理の終了（Ｓ１０１４）や、操作パネルに対するユーザ操作などの所定のイベントがジョブ制御部３０５によって検知されると開始される。
【００５５】
ジョブ制御部３０５は、タイマー処理部３１２に対して所定のタイマーを初期化するように指示し、タイマー処理部３１２は、その所定のタイマーを０に初期化する（Ｓ１１０１）。そしてタイマー処理部３１２は、所定のイベントからの経過時間の計測を行う（Ｓ１１０２）。本実施形態のタイマー処理部は、経過時間の計測において、１分間隔など、任意の時間単位でＲＡＭ２０１２に保存されたタイマーをカウントアップする。
【００５６】
次にジョブ制御部３０５は、この所定のタイマーを初期化するイベント（初期化イベント）が発生しているかを判定する（Ｓ１１０３）。ジョブ制御部３０５は、新たなＰＤＬデータの印刷指示（受信）（Ｓ１００５）や、そのＰＤＬデータを印刷するためのジョブの作成（Ｓ１００６）を検出した場合に初期化イベントが発生していると判定する。また、メディアプリントボタンの押下等の操作パネルのユーザ操作などを検出した場合にも、初期化イベントが発生していると判定する。連続してメディアプリント機能が使われることを想定しているためである。
【００５７】
またジョブ制御部３０５は、ＰＤＬ処理の終了（Ｓ１０１１）や画像処理の終了（Ｓ１０１２）や印刷処理の終了（Ｓ１０１３）やジョブの終了（Ｓ１０１４）を検出した場合にも、初期化イベントが発生していると判定する。すなわち、ジョブ制御部３０５は、ＰＤＬデータの印刷（図３のＳ１００５〜Ｓ１０１４）の最中は、初期化イベントが発生していると判定する。さらに、ユーザが入力制御部３０１を操作時、ネットワーク制御部３０４、ＵＳＢドライバ３０３による外部からの問い合わせ時に、タイマー初期化することもできる。このような初期化イベントが発生していると判定された場合に、ジョブ制御部３０５は、タイマー処理部３１２に対して所定のタイマーを初期化するように指示する（Ｓ１１０３でＹｅｓ、Ｓ１１０１）。
【００５８】
一方、初期化イベントが発生していると判定されなければ、ジョブ制御部３０５はタイマー処理部３１２に対して何も指示せず、処理はＳ１１０４に進む。ここでタイマー処理部３１２は、タイマーカウントが規定値（例えば５分に相当する値）に達したか（すなわち経過時間が所定時間（例えば５分）を超えるか）を判定する。タイマーカウントが規定値に達していない場合は、処理はＳ１１０２に戻り、タイマーカウントが規定値に達した場合は、タイマー処理部３１２は、ジョブ制御部３０５に対して、所定時間が経過したことを通知する。そして処理はＳ１１０５に進む。ここでタイマーカウントが規定値に達する（経過時間が所定時間を超える）とは、画像形成装置がＰＤＬデータの印刷（ＰＤＬ処理）を行っていない状態が、所定時間続いている、ということである。すなわち、画像形成装置が所定状態のままで所定時間が経過した、ということである。このような場合に、本実施形態の画像形成装置は、次のＳ１１０５において特定のＰＤＬ処理モジュールを有効化する。
【００５９】
そして通知を受けたジョブ制御部３０５は、ＰＤＬ処理部３０７に対して、特定のＰＤＬ処理モジュールを有効化するように指示する。するとＰＤＬ処理部３０７は、（特定のＰＤＬ処理モジュールが有効化されていない場合に）、現在有効化されているＰＤＬ処理モジュールを無効化し、特定のＰＤＬ処理モジュールを含む既定のＰＤＬ処理グループを有効化する（Ｓ１１０５）。以上の処理により、特定のＰＤＬ処理モジュールをＰＤＬデータの受信前に予め有効にしておくことが可能となる。また、所定時間の経過に伴い特定のＰＤＬ処理モジュールを有効化するので、他のＰＤＬ種別の複数のＰＤＬデータ（複数のジョブ）が連続して処理される際であっても、ＰＤＬ処理モジュールの頻繁な切り替えによるオーバーヘッドを抑制することができる。
【００６０】
（その他の実施形態）
上記実施形態では、タイマーカウントをカウントアップさせるようにしていたが、タイマー処理部３１２は、タイマーの初期化において規定値（閾値時間）をタイマーにセットし、タイマーカウントをカウントダウンさせるようにしてもよい。この場合、タイマーカウントが０以下になった場合にＳ１１０４でＹｅｓと判定され、０よりも大きい場合にＮｏと判定される。また、別の実施形態では、図７のＳ１１０１〜Ｓ１１０４の代わりに、次のようにしてもよい。タイマー処理部３１２はジョブ処理の終了時刻を不図示のＲＴＣから取得してその終了時刻に所定時間を足した時刻（切り替え時刻）を求める。そしてタイマー処理部３１２は、ジョブ処理の終了後、別のＰＤＬデータの処理が行われていなければ一定の時間間隔でＲＴＣから現在時刻を取得し、その時刻が切り替え時刻を超えていれば、ジョブ制御部３０５に対して、所定時間が経過したことを通知する。
【００６１】
上記実施形態では、既定のＰＤＬ処理グループは、ＬＩＰＳ処理グループとしていたが、他のＰＤＬ処理グループとしてもよく、またユーザが設定したＰＤＬ処理グループとしてもよい。または、ＰＤＬ種別ごとにＰＤＬデータの印刷枚数をカウントしておき、もっともカウント値が大きい（つまり最も利用されている）ＰＤＬ種別のＰＤＬ処理モジュールを含むＰＤＬ処理グループを既定のＰＤＬ処理グループとしてもよい。
【００６２】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述の実施例の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2019072968.tif 000003
【図２】
2019072968.tif 000004
【図３】
2019072968.tif 000005
【図４】
2019072968.tif 000006
【図５】
2019072968.tif 000007
【図６】
2019072968.tif 000008
【図７】
2019072968.tif 000009