(57)【要約】【課題】ビットマップ形式のデータを保存するための領域が不足した場合に、ラスタライズ処理を継続可能か否かの判断を適切に行い、デッドロックの発生を防ぐ。【解決手段】ＰＤＬデータを解析して中間データを生成し共有保存領域に保存させる解析処理、中間データをラスタライズしてビットマップデータを生成し共有保存領域に保存させ、当該ビットマップデータに対応する中間データの保存領域を解放するラスタライズ処理、ビットマップデータに基づいて印刷を行い、当該ビットマップデータの保存領域を解放する印刷処理を行う画像形成装置において、ラスタライズ処理で共有保存領域が不足した場合、（ラスタライズ済みのページ数）−（ビットマップデータの保存領域を解放済みのページ数）＞０の条件を満たすときには共有保存領域が空くのを待つこととし、条件を満たさないときにはメモリフルエラーとする。【選択図】図５
2008023897.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語形式のデータを受信するデータ受信部と、
前記ページ記述言語形式のデータに基づいて生成されるデータを一時的に保存する共有の保存領域を有する記憶部と、
前記ページ記述言語形式のデータを解析して、前記ページ記述言語形式のデータと前記ページ記述言語形式のデータに基づいて生成されるビットマップ形式のデータとの間の中間形式のデータを生成し、当該生成された中間形式のデータを前記共有の保存領域に保存させる解析部と、
前記共有の保存領域に保存されている中間形式のデータをラスタライズして前記ビットマップ形式のデータを生成し、当該生成されたビットマップ形式のデータを前記共有の保存領域に保存させ、当該保存されたビットマップ形式のデータに対応する中間形式のデータを保存するために確保されていた領域を解放するラスタライズ部と、
前記共有の保存領域に保存されているビットマップ形式のデータに基づいて印刷部に印刷を行わせ、当該印刷されたビットマップ形式のデータを保存するために確保されていた領域を解放する印刷制御部と、
を備え、
前記ラスタライズ部は、前記ビットマップ形式のデータの保存において前記共有の保存領域が不足した場合、
（ラスタライズ済みのページ数）−（ビットマップ形式のデータを保存するために確保されていた領域を解放済みのページ数）＞０
の条件を満たすときには、前記共有の保存領域が空くのを待つこととし、前記条件を満たさないときには、メモリフルエラーとしての処理に移行させる判断部を備えることを特徴とする画像形成装置。
【請求項２】
ページ記述言語形式のデータを受信するデータ受信工程と、
前記ページ記述言語形式のデータを解析して、前記ページ記述言語形式のデータと前記ページ記述言語形式のデータに基づいて生成されるビットマップ形式のデータとの間の中間形式のデータを生成し、当該生成された中間形式のデータを記憶部の共有の保存領域に保存させる解析工程と、
前記共有の保存領域に保存されている中間形式のデータをラスタライズして前記ビットマップ形式のデータを生成し、当該生成されたビットマップ形式のデータを前記共有の保存領域に保存させ、当該保存されたビットマップ形式のデータに対応する中間形式のデータを保存するために確保されていた領域を解放するラスタライズ工程と、
前記共有の保存領域に保存されているビットマップ形式のデータに基づいて印刷部に印刷を行わせ、当該印刷されたビットマップ形式のデータを保存するために確保されていた領域を解放する印刷制御工程と、
を含み、
前記ラスタライズ工程では、前記ビットマップ形式のデータの保存において前記共有の保存領域が不足した場合、
（ラスタライズ済みのページ数）−（ビットマップ形式のデータを保存するために確保されていた領域を解放済みのページ数）＞０
の条件を満たすときには、前記共有の保存領域が空くのを待つこととし、前記条件を満たさないときには、メモリフルエラーとしての処理に移行させることを特徴とする画像形成方法。
【請求項３】
コンピュータを、
ページ記述言語形式のデータを受信するデータ受信手段、
前記ページ記述言語形式のデータを解析して、前記ページ記述言語形式のデータと前記ページ記述言語形式のデータに基づいて生成されるビットマップ形式のデータとの間の中間形式のデータを生成し、当該生成された中間形式のデータを記憶部の共有の保存領域に保存させる解析手段、
前記共有の保存領域に保存されている中間形式のデータをラスタライズして前記ビットマップ形式のデータを生成し、当該生成されたビットマップ形式のデータを前記共有の保存領域に保存させ、当該保存されたビットマップ形式のデータに対応する中間形式のデータを保存するために確保されていた領域を解放するラスタライズ手段、
前記共有の保存領域に保存されているビットマップ形式のデータに基づいて印刷部に印刷を行わせ、当該印刷されたビットマップ形式のデータを保存するために確保されていた領域を解放する印刷制御手段、
として機能させるためのプログラムであって、
前記ラスタライズ手段は、前記ビットマップ形式のデータの保存において前記共有の保存領域が不足した場合、
（ラスタライズ済みのページ数）−（ビットマップ形式のデータを保存するために確保されていた領域を解放済みのページ数）＞０
の条件を満たすときには、前記共有の保存領域が空くのを待つこととし、前記条件を満たさないときには、メモリフルエラーとしての処理に移行させる判断手段を備えることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ページ記述言語形式のデータをビットマップ形式のデータに変換して印刷を行う画像形成装置、画像形成方法及びプログラムに関する。
【背景技術】
【０００２】
近年、ＰＣ（Personal Computer）等の外部装置で作成された印刷データ、すなわち、ポストスクリプト（登録商標）やＰＣＬ（Printer Control Language）に代表されるページ記述言語（ＰＤＬ：Page Description Language）形式のデータ（以下、ＰＤＬデータという。）を、ＬＡＮ（Local Area Network）等のネットワークを介して受信し、受信したデータを一旦中間形式のデータ（以下、中間データという。）に変換してメモリ上に保持し、このメモリ上に保持されている中間データを順次読み出してビットマップ形式のデータ（以下、ビットマップデータという。）に変換して印刷を行うネットワーク型の複写機、プリンタ、ＭＦＰ（Multi Function Peripheral）等の画像形成装置が普及している。
【０００３】
例えば、同一のメモリ領域内にワークエリアを展開する複数のＰＤＬインタプリタを備え、それぞれ別タスクとして動作する画像処理装置が提案されている（特許文献１参照）。これらの各インタプリタはメモリ領域を共有で使用するため、片方のインタプリタがメモリを使用していて他方のインタプリタがメモリ領域不足となった場合に、前者の処理が完了し、メモリ領域が解放されるまで後者のインタプリタは処理を停止する。
【０００４】
また、ＰＤＬデータを解析して中間データを生成する解析処理、中間データをラスタライズしてビットマップデータを生成するラスタライズ処理において、共有の保存領域に中間データ及びビットマップデータを保存する画像形成装置が存在する。この画像形成装置では、ビットマップデータを生成した後、生成されたビットマップデータに対応する中間データを保存するために確保されていた領域を解放し、ビットマップデータに基づいて印刷を行った後、印刷されたビットマップデータを保存するために確保されていた領域を解放する。
【０００５】
中間データ及びビットマップデータを保存するための共有の保存領域は限られているため、例えば、ラスタライズ処理においてビットマップデータを生成している途中でビットマップデータを保存するためのメモリ領域が不足する場合がある。その際、先行するページの印刷が行われて空き領域が発生するのであれば、空き領域が発生した後、ラスタライズ処理を継続すればよいし、空き領域が発生することがないのであれば、空き領域の発生を待つことなく、メモリフルエラーとして処理を行うべきである。「メモリフルエラー」とは、メモリ領域を使い果たし、これ以上処理を継続することができない状態のエラーをいう。したがって、先行するページの印刷を待つことにより、ラスタライズ処理を継続可能か否かをいかに判断するかが問題となる。
【０００６】
従来、共有の保存領域においてメモリ領域が不足した場合、ラスタライズ処理を継続可能か否かの判断は、条件式（１）に基づいて行われている。
（解析済みのページ数）−（ビットマップデータを保存するために確保されていた領域を解放済みのページ数）＞１                                          （１）
【０００７】
「解析済みのページ数」は、解析処理が既に行われ中間データを生成済みのページ数であって、ラスタライズ処理が既に行われビットマップデータを生成済みのページ数、印刷後にビットマップデータを保存するために確保されていた領域が解放されたページ数も含まれる。
【０００８】
図１０（ａ）は、ラスタライズ処理において、３ページ目のビットマップデータＢ３を生成する途中で、共有の保存領域２００が不足した場合の例である。具体的には、１ページ目の画像Ｐ１が印刷済みであって、共有の保存領域２００には、２ページ目のビットマップデータＢ２、生成中の３ページ目のビットマップデータＢ３、３ページ目の中間データＭ３、４ページ目の中間データＭ４が保存されている。
【０００９】
図１０（ａ）に示す例では、「解析済みのページ数」が４、「ビットマップデータを保存するために確保されていた領域を解放済みのページ数」が１であるから、条件式（１）を満たす。したがって、共有の保存領域２００が空くのを待つことにより、ラスタライズ処理を継続可能であると判断される。
【００１０】
実際、２ページ目のビットマップデータＢ２に基づく印刷処理が行われ、２ページ目のビットマップデータＢ２を保存するために確保されていた領域が解放されるため、空き領域が発生し、３ページ目のラスタライズ処理を継続することができる。
【特許文献１】特開２００１−２２８９９１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかし、従来の条件式（１）による判断では、ラスタライズ処理を継続可能か否かを正しく判断することができない場合があった。
【００１２】
図１０（ｂ）は、ラスタライズ処理において、３ページ目のビットマップデータＢ３を生成する途中で、共有の保存領域２００が不足した場合の他の例である。具体的には、１ページ目の画像Ｐ１及び２ページ目の画像Ｐ２が印刷済みであって、共有の保存領域２００には、生成中の３ページ目のビットマップデータＢ３、３ページ目の中間データＭ３、４ページ目の中間データＭ４が保存されている。
【００１３】
図１０（ｂ）に示す例では、「解析済みのページ数」が４、「ビットマップデータを保存するために確保されていた領域を解放済みのページ数」が２であるから、条件式（１）を満たす。したがって、共有の保存領域２００が空くのを待つことにより、ラスタライズ処理を継続可能であると判断される。
【００１４】
しかし、実際は、印刷可能なビットマップデータが存在しないため、印刷処理を行うことができず、また、メモリ領域不足のため、ラスタライズ処理を継続することもできない。このように、従来のようなラスタライズ処理を継続可能か否かの判断では、デッドロックが発生する場合があった。特に、画像形成装置におけるハードウェア構成の変化やＬＳＩ（Large Scale Integration）の高性能化により、処理速度が速くなってきているため、ラスタライズ処理において生成中のビットマップデータが共有の保存領域を使い果たした場合等にデッドロックが発生する。
【００１５】
本発明は上記の従来技術における問題に鑑みてなされたものであって、ビットマップ形式のデータを保存するための領域が不足した場合に、ラスタライズ処理を継続可能か否かの判断を適切に行い、デッドロックの発生を防ぐことを課題とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するために、請求項１に記載の画像形成装置は、ページ記述言語形式のデータを受信するデータ受信部と、前記ページ記述言語形式のデータに基づいて生成されるデータを一時的に保存する共有の保存領域を有する記憶部と、前記ページ記述言語形式のデータを解析して、前記ページ記述言語形式のデータと前記ページ記述言語形式のデータに基づいて生成されるビットマップ形式のデータとの間の中間形式のデータを生成し、当該生成された中間形式のデータを前記共有の保存領域に保存させる解析部と、前記共有の保存領域に保存されている中間形式のデータをラスタライズして前記ビットマップ形式のデータを生成し、当該生成されたビットマップ形式のデータを前記共有の保存領域に保存させ、当該保存されたビットマップ形式のデータに対応する中間形式のデータを保存するために確保されていた領域を解放するラスタライズ部と、前記共有の保存領域に保存されているビットマップ形式のデータに基づいて印刷部に印刷を行わせ、当該印刷されたビットマップ形式のデータを保存するために確保されていた領域を解放する印刷制御部と、を備え、前記ラスタライズ部は、前記ビットマップ形式のデータの保存において前記共有の保存領域が不足した場合、
（ラスタライズ済みのページ数）−（ビットマップ形式のデータを保存するために確保されていた領域を解放済みのページ数）＞０
の条件を満たすときには、前記共有の保存領域が空くのを待つこととし、前記条件を満たさないときには、メモリフルエラーとしての処理に移行させる判断部を備えることを特徴とする。
【００１７】
請求項２に記載の画像形成方法は、ページ記述言語形式のデータを受信するデータ受信工程と、前記ページ記述言語形式のデータを解析して、前記ページ記述言語形式のデータと前記ページ記述言語形式のデータに基づいて生成されるビットマップ形式のデータとの間の中間形式のデータを生成し、当該生成された中間形式のデータを記憶部の共有の保存領域に保存させる解析工程と、前記共有の保存領域に保存されている中間形式のデータをラスタライズして前記ビットマップ形式のデータを生成し、当該生成されたビットマップ形式のデータを前記共有の保存領域に保存させ、当該保存されたビットマップ形式のデータに対応する中間形式のデータを保存するために確保されていた領域を解放するラスタライズ工程と、前記共有の保存領域に保存されているビットマップ形式のデータに基づいて印刷部に印刷を行わせ、当該印刷されたビットマップ形式のデータを保存するために確保されていた領域を解放する印刷制御工程と、を含み、前記ラスタライズ工程では、前記ビットマップ形式のデータの保存において前記共有の保存領域が不足した場合、
（ラスタライズ済みのページ数）−（ビットマップ形式のデータを保存するために確保されていた領域を解放済みのページ数）＞０
の条件を満たすときには、前記共有の保存領域が空くのを待つこととし、前記条件を満たさないときには、メモリフルエラーとしての処理に移行させることを特徴とする。
【００１８】
請求項３に記載の発明は、コンピュータを、ページ記述言語形式のデータを受信するデータ受信手段、前記ページ記述言語形式のデータを解析して、前記ページ記述言語形式のデータと前記ページ記述言語形式のデータに基づいて生成されるビットマップ形式のデータとの間の中間形式のデータを生成し、当該生成された中間形式のデータを記憶部の共有の保存領域に保存させる解析手段、前記共有の保存領域に保存されている中間形式のデータをラスタライズして前記ビットマップ形式のデータを生成し、当該生成されたビットマップ形式のデータを前記共有の保存領域に保存させ、当該保存されたビットマップ形式のデータに対応する中間形式のデータを保存するために確保されていた領域を解放するラスタライズ手段、前記共有の保存領域に保存されているビットマップ形式のデータに基づいて印刷部に印刷を行わせ、当該印刷されたビットマップ形式のデータを保存するために確保されていた領域を解放する印刷制御手段、として機能させるためのプログラムであって、前記ラスタライズ手段は、前記ビットマップ形式のデータの保存において前記共有の保存領域が不足した場合、
（ラスタライズ済みのページ数）−（ビットマップ形式のデータを保存するために確保されていた領域を解放済みのページ数）＞０
の条件を満たすときには、前記共有の保存領域が空くのを待つこととし、前記条件を満たさないときには、メモリフルエラーとしての処理に移行させる判断手段を備えることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、ビットマップ形式のデータを保存するための領域が不足した場合に、ラスタライズ処理を継続可能か否かの判断を適切に行い、デッドロックの発生を防ぐことができる。
【発明を実施するための最良の形態】
【００２０】
以下、図を参照して本発明の実施の形態を詳細に説明する。
まず、構成を説明する。
図１は、本実施の形態における画像形成装置１の制御ブロック図である。
図１に示すように、画像形成装置１は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、操作表示部１４、印刷部１５、外部ＩＦ（Inter Face）１６、ＨＤＤ（Hard Disk Drive）１７を備え、各部はバス１８により接続されている。また、画像形成装置１は、外部ＩＦ１６を介して外部装置２と通信可能に接続されている。
【００２１】
画像形成装置１は、ＰＣ等の外部装置２から画像データを受信し、受信した画像データに基づいて記録媒体上に画像を形成して出力する。
【００２２】
ＣＰＵ１１は、ＲＯＭ１２内に記憶されている各種処理プログラムやデータをＲＡＭ１３に展開し、当該プログラムに基づいて画像形成装置１の各部の動作を集中制御する。
【００２３】
ＲＯＭ１２は、各種処理プログラム、各種処理で使用するデータ、各種処理プログラムで処理されたデータ、フォントデータ等を記憶する。具体的には、ＲＯＭ１２には、解析処理プログラム１２１、ラスタライズ処理プログラム１２２、印刷処理プログラム１２３等が記憶されている。なお、ＲＯＭ１２は読み出し可能な不揮発性の記憶媒体であればよく、磁気的、光学的記憶媒体又は半導体メモリで構成されていてもよい。また、このＲＯＭ１２は、制御基板等に固定的に設けられるもの、若しくは着脱自在に装着するものであってもよい。
【００２４】
ＣＰＵ１１は、外部装置２から外部ＩＦ１６を介して受信したポストスクリプトやＰＣＬ等のＰＤＬデータをＲＡＭ１３内のスプール領域１３２に保存させる。
【００２５】
ＣＰＵ１１は、ＲＯＭ１２に記憶されている解析処理プログラム１２１との協働により、ＲＡＭ１３内のスプール領域１３２に保存されているＰＤＬデータを読み出し、読み出されたＰＤＬデータを解析して当該ＰＤＬデータとビットマップデータとの間の中間データを生成し、生成された中間データをＲＡＭ１３内の共有保存領域１３３に保存させる（解析処理）。
【００２６】
中間データは、ＰＤＬデータに含まれるオブジェクト（テキストデータ、グラフィックスデータ、イメージデータ等）の特徴に応じて生成される。例えば、テキストデータやグラフィックスデータの中間データとしてはベクタ形式のデータ、イメージデータの中間データとしてはイメージ形式のデータを挙げることができる。
【００２７】
ＣＰＵ１１は、解析処理の中間データの保存において、共有保存領域１３３が不足した場合、条件式（２）に基づいて解析処理を継続可能か否かを判断する。具体的に、ＣＰＵ１１は、条件式（２）を満たす場合には、共有保存領域１３３が空くのを待つこととし、条件式（２）を満たさない場合には、メモリフルエラーとしての処理に移行させる。
（解析済みのページ数）−（ビットマップデータを保存するために確保されていた領域を解放済みのページ数）＞０                                          （２）
【００２８】
「解析済みのページ数」は、解析処理が既に行われ中間データを生成済みのページ数であって、ラスタライズ処理が既に行われビットマップデータを生成済みのページ数、印刷後にビットマップデータを保存するために確保されていた領域が解放されたページ数も含まれる。
【００２９】
ＣＰＵ１１は、ＲＯＭ１２に記憶されているラスタライズ処理プログラム１２２との協働により、共有保存領域１３３に保存されている中間データをラスタライズしてビットマップデータを生成し、生成されたビットマップデータをＲＡＭ１３の共有保存領域１３３に保存させ、共有保存領域１３３のうち、保存されたビットマップデータに対応する中間データを保存するために確保されていた領域を解放する（ラスタライズ処理）。
【００３０】
ＣＰＵ１１は、ラスタライズ処理のビットマップデータの保存において、共有保存領域１３３が不足した場合、条件式（３）に基づいてラスタライズ処理を継続可能か否かを判断する。具体的に、ＣＰＵ１１は、条件式（３）を満たす場合には、共有保存領域１３３が空くのを待つこととし、条件式（３）を満たさない場合には、メモリフルエラーとしての処理に移行させる。
（ラスタライズ済みのページ数）−（ビットマップデータを保存するために確保されていた領域を解放済みのページ数）＞０                                  （３）
【００３１】
「ラスタライズ済みのページ数」は、ラスタライズ処理が既に行われビットマップデータを生成済みのページ数であって、印刷後にビットマップデータを保存するために確保されていた領域が解放されたページ数も含まれる。
【００３２】
ＣＰＵ１１は、ＲＯＭ１２に記憶されている印刷処理プログラム１２３との協働により、共有保存領域１３３に保存されているビットマップデータに基づいて印刷部１５に印刷を行わせ、共有保存領域１３３のうち、印刷されたビットマップデータを保存するために確保されていた領域を解放する（印刷処理）。
【００３３】
ＲＡＭ１３は、ＣＰＵ１１により実行される各種処理プログラムや、これらプログラムに係るデータを一時的に記憶するワークエリアを形成する。ＲＡＭ１３は、展開領域１３１、スプール領域１３２、共有保存領域１３３を有している。なお、ＲＡＭ１３は、読み書き可能な記憶媒体であればよく、ＨＤＤ、ＭＲＡＭ（Magnetic Random Access Memory）又はフラッシュメモリ等で構成されていてもよく、この限りではない。また、このＲＡＭ１３は、制御基板等に固定的に設けられるもの、若しくは着脱自在に装着するものであってもよい。
【００３４】
展開領域１３１は、ＲＯＭ１２内に記憶された各種処理プログラムやデータが展開される領域である。
【００３５】
スプール領域１３２は、外部装置２から受信したＰＤＬデータを保存する領域である。
【００３６】
共有保存領域１３３は、図２に示すように、中間データとビットマップデータとが一時的に保存される共有の保存領域である。ビットマップデータは共有保存領域１３３内の上位アドレスから下位アドレスの方向に向かって保存され、中間データは共有保存領域１３３内の下位アドレスから上位アドレスの方向に向かって保存される。これにより、中間データとビットマップデータとにそれぞれ固定領域を割り当てるよりも有効にメモリを使用することができる。
【００３７】
共有保存領域１３３において、中間データを保存可能な領域とビットマップデータを保存可能な領域を共有保存領域１３３内で無制限に許可すると、ビットマップデータを保存する領域がなくなった場合に、印刷を行うことができなくなる。そこで、ビットマップデータに対しては共有保存領域１３３内で制限なく保存可能とし、中間データに対しては閾値を設けて保存を制限している。この閾値は、共有保存領域１３３の残りの領域に、１ページ分のビットマップデータとして想定されるサイズのデータを保存することができるように設定されているが、ページ毎にデータ量が異なるため、共有保存領域１３３の残りの領域だけでは１ページ分のビットマップデータを保存することができない場合もある。閾値は、画像形成装置１の解像度、画像形成装置１が備える現像装置の色の数、最低圧縮率に応じて設定される。
【００３８】
操作表示部１４は、ＬＣＤ（Liquid Crystal Display）、ＬＣＤを覆うように設けられたタッチパネルや操作キー群等から構成され、ＣＰＵ１１から入力される表示信号に従って、各種設定条件を入力するための各種設定画面や各種処理結果等をＬＣＤに表示させるとともに、操作キー群又はタッチパネルから入力される操作信号をＣＰＵ１１に出力する。
【００３９】
印刷部１５は、ビットマップデータに基づいて記録媒体上に印刷を行う。具体的には、印刷部１５は、像担持体である感光ドラム、感光ドラムの帯電を行う帯電部、ビットマップデータに基づいて感光ドラム表面を露光走査する露光部、感光ドラムにトナーを付着させる現像部、感光ドラム上に形成されたトナー像を記録媒体に転写する転写部、感光ドラム上の残トナーを除去するクリーニング部、記録媒体上に形成されたトナー像を定着させる定着部から構成される。
【００４０】
外部ＩＦ１６は、ＮＩＣ（Network Interface Card）やモデム等のＬＡＮ等のネットワークに接続するための通信インターフェースであり、外部装置２からＰＤＬデータを受信する。なお、画像形成装置１は、外部ＩＦ１６を介して、外部装置２とローカルに接続されることとしてもよい。
【００４１】
ＨＤＤ１７は、追加フォントデータ、ジョブデータ等を保存するための記憶装置である。
【００４２】
次に、画像形成装置１における動作を説明する。
図３は、画像形成装置１の印刷時におけるメインフロー図である。図３に示す動作は、ＣＰＵ１１において実行される。なお、以下のステップＳ１〜Ｓ４により実現される処理は、マルチタスクで動作するので、複数ページを並行して処理可能であるが、説明の都合上、これらステップＳ１〜Ｓ４は時系列的に記載されている。
【００４３】
まず、ＣＰＵ１１により、外部装置２から外部ＩＦ１６を介して受信されたＰＤＬデータがスプール領域１３２に保存される（ステップＳ１）。
【００４４】
ＰＤＬデータがスプール領域１３２に保存されると、ＣＰＵ１１により、スプール領域１３２に保存されているＰＤＬデータが読み出され、読み出されたＰＤＬデータが解析されて中間データが生成され、生成された中間データが共有保存領域１３３に保存される（解析処理）（ステップＳ２）。
【００４５】
１ページ分の中間データが共有保存領域１３３に保存されると、ＣＰＵ１１により、共有保存領域１３３に保存されている中間データが読み出され、読み出された中間データが予め設定された単位（バンド単位）でラスタライズされてビットマップデータが生成され、バンド単位で圧縮されて共有保存領域１３３に保存される（ラスタライズ処理）（ステップＳ３）。
【００４６】
１ページ分のビットマップデータが共有保存領域１３３に保存されると、ＣＰＵ１１により、共有保存領域１３３から１ページ分のビットマップデータが読み出されて解凍され、解凍したビットマップデータが印刷部１５に出力され、１ページ分の画像が記録媒体上に印刷される（印刷処理）（ステップＳ４）。
【００４７】
画像形成装置１において、図３に示した各処理（ＰＤＬデータ受信、解析処理、ラスタライズ処理、印刷処理）はマルチタスクで動作するため、複数ページの画像を印刷する場合には、各処理が同時に並行して実行される。マルチタスクで動作を行う場合には、ＰＤＬデータ受信、印刷処理、ラスタライズ処理、解析処理の順に優先順位が設定されている。例えば、複数ページを並行して処理する場合、あるページの１ページ分のビットマップデータが完成しているときには、他のページのラスタライズ処理、解析処理よりも、既に完成しているビットマップデータの印刷を優先させる。
【００４８】
次に、図４を参照して、図３のステップＳ２において実行される解析処理を説明する。解析処理は、ＰＤＬデータに基づいて１ページ分の中間データを生成して共有保存領域１３３に保存させる処理であって、ＣＰＵ１１により実行される。
【００４９】
まず、ＣＰＵ１１により、共有保存領域１３３において、中間データを保存するための領域が確保される（ステップＳ１１）。ここで、中間データを保存するための領域の確保が成功した場合には（ステップＳ１２；ＹＥＳ）、ＣＰＵ１１により、スプール領域１３２に保存されているＰＤＬデータが解析され、中間データが生成される（ステップＳ１３）。そして、ＣＰＵ１１により、生成された中間データがＲＡＭ１３内の共有保存領域１３３に保存される（ステップＳ１４）。
【００５０】
次に、ＣＰＵ１１により、１ページ分の解析が終了したか否かが判断される（ステップＳ１５）。１ページ分の解析が終了していない場合には（ステップＳ１５；ＮＯ）、ステップＳ１１に戻り、１ページ分の解析が終了した場合には（ステップＳ１５；ＹＥＳ）、解析処理が終了する。
【００５１】
ステップＳ１２において、中間データを保存するための領域が確保できなかった場合には（ステップＳ１２；ＮＯ）、ＣＰＵ１１により、条件式（２）を満たすか否かが判断される（ステップＳ１６）。
【００５２】
条件式（２）は、解析済みであって印刷前のページが存在することを示している。すなわち、条件式（２）を満たす場合には、ラスタライズ処理により中間データを保存するために確保されていた領域が解放されるか、印刷処理によりビットマップデータを保存するために確保されていた領域が解放され、共有保存領域１３３が空くことが保証される。
【００５３】
ステップＳ１６において、条件式（２）を満たす場合には（ステップＳ１６；ＹＥＳ）、ＣＰＵ１１により、共有保存領域１３３において中間データ又はビットマップデータを保存するために確保されていた領域が解放されたことを示す信号（以下、解放信号という。）が検出されるまで待機される（ステップＳ１７）。ＣＰＵ１１により、解放信号が検出されると（ステップＳ１７；ＹＥＳ）、ステップＳ１１に戻る。
【００５４】
ステップＳ１６において、条件式（２）を満たさない場合には（ステップＳ１６；ＮＯ）、メモリフルエラーとしての処理に移行する（ステップＳ１８）。例えば、操作表示部１４にメモリフルエラーを通知するためのメッセージが表示され、処理が中止される。
【００５５】
次に、図５を参照して、図３のステップＳ３において実行されるラスタライズ処理を説明する。ラスタライズ処理は、１ページ分の中間データに基づいてビットマップデータを生成して共有保存領域１３３に保存させる処理であって、ＣＰＵ１１により実行される。
【００５６】
まず、ＣＰＵ１１により、共有保存領域１３３から中間データが読み出され（ステップＳ２１）、読み出された中間データがバンド単位でラスタライズされ、ビットマップデータが生成される（ステップＳ２２）。以下、バンド単位で生成されたビットマップデータをバンドビットマップデータという。
【００５７】
次に、ＣＰＵ１１により、バンドビットマップデータに対して色変換処理（ステップＳ２３）、スクリーン処理（ステップＳ２４）、圧縮処理（ステップＳ２５）が行われる。
【００５８】
次に、ＣＰＵ１１により、バンドビットマップデータが共有保存領域１３３に保存され（ステップＳ２６）、バンドビットマップデータの保存が成功したか否かが判断される（ステップＳ２７）。バンドビットマップデータの保存が成功した場合には（ステップＳ２７；ＹＥＳ）、１ページ分のビットマップデータの生成が終了したか否かが判断される（ステップＳ２８）。
【００５９】
１ページ分のビットマップデータの生成が終了していない場合には（ステップＳ２８；ＮＯ）、ステップＳ２１に戻る。
【００６０】
１ページ分のビットマップデータの生成が終了した場合には（ステップＳ２８；ＹＥＳ）、ＣＰＵ１１により、共有保存領域１３３において、保存された１ページ分のビットマップデータに対応する中間データを保存するために確保されていた領域が解放される（ステップＳ２９）。そして、ＣＰＵ１１により、解放信号が出力され（ステップＳ３０）、ラスタライズ処理が終了する。
【００６１】
ステップＳ２７において、バンドビットマップデータの保存が失敗した場合には（ステップＳ２７；ＮＯ）、ＣＰＵ１１により、条件式（３）を満たすか否かが判断される（ステップＳ３１）。
【００６２】
条件式（３）は、ラスタライズ済みであって印刷前のページが存在することを示している。すなわち、条件式（３）を満たす場合には、印刷処理によりビットマップデータを保存するために確保されていた領域が解放され、共有保存領域１３３が空くことが保証される。
【００６３】
ステップＳ３１において、条件式（３）を満たす場合には（ステップＳ３１；ＹＥＳ）、ＣＰＵ１１により、解放信号が検出されるまで待機される（ステップＳ３２）。ＣＰＵ１１により、解放信号が検出されると（ステップＳ３２；ＹＥＳ）、ステップＳ２６に戻る。
【００６４】
ステップＳ３１において、条件式（３）を満たさない場合には（ステップＳ３１；ＮＯ）、メモリフルエラーとしての処理に移行する（ステップＳ３３）。
【００６５】
次に、図６を参照して、図３のステップＳ４において実行される印刷処理を説明する。印刷処理は、１ページ分のビットマップデータに基づいて記録媒体上に印刷を行わせる処理であって、ＣＰＵ１１により実行される。
【００６６】
まず、ＣＰＵ１１により、共有保存領域１３３からビットマップデータが順次読み出され、印刷部１５に出力される（ステップＳ４１）。
【００６７】
そして、ＣＰＵ１１により、印刷部１５において１ページ分のビットマップデータの印刷が完了したか否かが判断される（ステップＳ４２）。１ページ分のビットマップデータの印刷が完了していない場合には（ステップＳ４２；ＮＯ）、ステップＳ４１に戻る。
【００６８】
１ページ分のビットマップデータの印刷が完了した場合には（ステップＳ４２；ＹＥＳ）、ＣＰＵ１１により、共有保存領域１３３において、印刷が完了した１ページ分のビットマップデータを保存するために確保されていた領域が解放される（ステップＳ４３）。そして、ＣＰＵ１１により、解放信号が出力される（ステップＳ４４）。
【００６９】
図７（ａ）及び（ｂ）を参照して、解析処理において中間データを保存するための領域が不足した場合に、解析処理を継続可能か否かの判断について説明する。
【００７０】
図７（ａ）は、解析処理の途中で共有保存領域１３３の中間データを保存するための領域が閾値に達した場合の例である。具体的には、１ページ目の画像Ｐ１は印刷済みであり、１ページ目のビットマップデータが保存されていた領域は解放済みである。２ページ目はラスタライズ済みで、２ページ目のビットマップデータＢ２が共有保存領域１３３に保存されている。３ページ目及び４ページ目は解析済みで、３ページ目の中間データＭ３及び４ページ目の中間データＭ４が共有保存領域１３３に保存されている。５ページ目の解析処理において、５ページ目の中間データＭ５を生成する途中で、共有保存領域１３３の中間データを保存するための領域が閾値に達したため、解析処理を継続可能か否かの判断が行われる。
【００７１】
「解析済みのページ数」が４、「ビットマップデータを保存するために確保されていた領域を解放済みのページ数」が１であるから、条件式（２）を満たす。したがって、共有保存領域１３３において中間データを保存するための領域が空くのを待つことにより、解析処理を継続可能であると判断される。
【００７２】
図７（ｂ）に示すように、２ページ目のビットマップデータＢ２の印刷処理により２ページ目の画像Ｐ２が印刷され、３ページ目の中間データＭ３のラスタライズ処理により３ページ目のビットマップデータＢ３が生成されると、３ページ目の中間データＭ３を保存するために確保されていた領域が解放され、共有保存領域１３３に空き領域Ｅが発生するため、５ページ目の解析処理を継続することができる。
【００７３】
次に、図８（ａ）及び（ｂ）、図９を参照して、ラスタライズ処理においてビットマップデータを保存するための領域が不足した場合に、ラスタライズ処理を継続可能か否かの判断について説明する。
【００７４】
図８（ａ）は、ラスタライズ処理の途中で共有保存領域１３３が不足した場合の例である。具体的には、１ページ目の画像Ｐ１は印刷済みであり、１ページ目のビットマップデータが保存されていた領域は解放済みである。２ページ目はラスタライズ済みで、２ページ目のビットマップデータＢ２が共有保存領域１３３に保存されている。３ページ目及び４ページ目は解析済みで、３ページ目の中間データＭ３及び４ページ目の中間データＭ４が共有保存領域１３３に保存されている。３ページ目のラスタライズ処理において、３ページ目のビットマップデータＢ３を生成する途中で、共有保存領域１３３が不足したため、ラスタライズ処理を継続可能か否かの判断が行われる。
【００７５】
「ラスタライズ済みのページ数」が２、「ビットマップデータを保存するために確保されていた領域を解放済みのページ数」が１であるから、条件式（３）を満たす。したがって、共有保存領域１３３においてビットマップデータを保存するための領域が空くのを待つことにより、ラスタライズ処理を継続可能であると判断される。
【００７６】
図８（ｂ）に示すように、２ページ目のビットマップデータＢ２の印刷処理により２ページ目の画像Ｐ２が印刷されると、２ページ目のビットマップデータＢ２を保存するために確保されていた領域が解放され、共有保存領域１３３に空き領域Ｅが発生するため、３ページ目のラスタライズ処理を継続することができる。
【００７７】
図９は、ラスタライズ処理の途中で共有保存領域１３３が不足した場合の他の例である。具体的には、１ページ目の画像Ｐ１及び２ページ目の画像Ｐ２は印刷済みであり、１ページ目のビットマップデータ及び２ページ目のビットマップデータが保存されていた領域は解放済みである。３ページ目及び４ページ目は解析済みで、３ページ目の中間データＭ３及び４ページ目の中間データＭ４が共有保存領域１３３に保存されている。３ページ目のラスタライズ処理において、３ページ目のビットマップデータＢ３を生成する途中で、共有保存領域１３３が不足したため、ラスタライズ処理を継続可能か否かの判断が行われる。
【００７８】
「ラスタライズ済みのページ数」が２、「ビットマップデータを保存するために確保されていた領域を解放済みのページ数」が２であるから、条件式（３）を満たさない。したがって、メモリフルエラーとしての処理に移行すると判断される。
【００７９】
実際に、図９に示す例では、印刷可能なビットマップデータが存在しないため、印刷処理を行うことができず、また、メモリ領域不足のため、ラスタライズ処理を継続することもできない。仮に、メモリフルエラーとしての処理に移行しなかった場合には、空き領域が発生することがないにもかかわらず、いつまでも待ち状態を続けることになってしまう（デッドロックの発生）。したがって、メモリフルエラーという判断結果は、正しかったといえる。
【００８０】
以上説明したように、画像形成装置１によれば、ラスタライズ処理中に共有保存領域１３３においてビットマップデータを保存するための領域が不足した場合に、条件式（３）に基づいて、空き領域が発生するのを待つことによりラスタライズ処理を継続可能であるか、あるいは、空き領域が発生するのを待たずにメモリフルエラーとしての処理に移行すべきかを適切に判断することができる。このように、ラスタライズ処理を継続可能か否かの判断を適切に行うことができるので、デッドロックの発生を防ぐことができる。
【００８１】
なお、上記実施の形態における記述は、本発明に係る画像形成装置の例であり、これに限定されるものではない。画像形成装置を構成する各部の細部構成及び細部動作に関しても本発明の趣旨を逸脱することのない範囲で適宜変更可能である。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施の形態における画像形成装置１の制御ブロック図である。
【図２】共有保存領域１３３を説明するための図である。
【図３】画像形成装置１の印刷時におけるメインフロー図である。
【図４】解析処理を示すフローチャートである。
【図５】ラスタライズ処理を示すフローチャートである。
【図６】印刷処理を示すフローチャートである。
【図７】（ａ）は、解析処理の途中で共有保存領域１３３の中間データを保存するための領域が閾値に達した場合の例である。（ｂ）は、共有保存領域１３３に空き領域Ｅが発生することを説明するための図である。
【図８】（ａ）は、ラスタライズ処理の途中で共有保存領域１３３が不足した場合の例である。（ｂ）は、共有保存領域１３３に空き領域Ｅが発生することを説明するための図である。
【図９】ラスタライズ処理の途中で共有保存領域１３３が不足した場合の他の例である。
【図１０】（ａ）は、従来のラスタライズ処理において共有の保存領域２００が不足した場合の例である。（ｂ）は、従来のラスタライズ処理において共有の保存領域２００が不足した場合の他の例である。
【符号の説明】
【００８３】
１  画像形成装置
２  外部装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  操作表示部
１５  印刷部
１６  外部ＩＦ
１７  ＨＤＤ
１８  バス
１２１  解析処理プログラム
１２２  ラスタライズ処理プログラム
１２３  印刷処理プログラム
１３１  展開領域
１３２  スプール領域
１３３  共有保存領域
２００  共有の保存領域
Ｍ３  ３ページ目の中間データ
Ｍ４  ４ページ目の中間データ
Ｍ５  ５ページ目の中間データ
Ｂ２  ２ページ目のビットマップデータ
Ｂ３  ３ページ目のビットマップデータ
Ｐ１  １ページ目の画像
Ｐ２  ２ページ目の画像
Ｅ  空き領域
【図１】
2008023897.tif 000003
【図２】
2008023897.tif 000004
【図３】
2008023897.tif 000005
【図４】
2008023897.tif 000006
【図５】
2008023897.tif 000007
【図６】
2008023897.tif 000008
【図７】
2008023897.tif 000009
【図８】
2008023897.tif 000010
【図９】
2008023897.tif 000011
【図１０】
2008023897.tif 000012