(57)【要約】【課題】  メモリの高効率化を図り、スループットの向上が図られた画像形成装置、画像形成方法及びプログラムを提供すること。【解決手段】  中間データとビットマップデータが一時的に保存される共有保存領域１２３を有するＲＡＭ１２０と、共有保存領域１２に中間データを保存可能か否かを確認する場合、共有保存領域１２３内に予め設定された閾値以上の空き領域の容量が無い場合、共有保存領域１２３内に保存されている中間データ及びビットマップデータの少なくとも一方について消去予定であるか否かを判別し、消去予定であると判別された中間データ又はビットマップデータの容量を空き領域の容量とみなすＣＰＵ１００と、を備える画像形成装置１。【選択図】図２
2007172506.tif 000002
【特許請求の範囲】
【請求項１】
互いに形式の異なる複数のデータが一時的に保存される共有の保存領域を有する記憶手段と、
前記データを前記保存領域に保存可能か否かを確認する場合、前記共有の保存領域内に保存されているデータのうち、消去予定のデータの領域を空き領域としてみなす制御手段と、
を備えること、
を特徴とする画像形成装置。
【請求項２】
前記制御手段は、
前記データを前記共有の保存領域内に保存可能か否かを確認する場合、空き領域と当該空き領域と連続した領域であって空き領域又は空き領域とみなされた領域との合計領域の容量が最も小さい容量となる空き領域に前記データを保存すること、
を特徴とする請求項１記載の画像形成装置。
【請求項３】
前記データは、ページ記述言語形式の画像データと当該画像データを解釈して得られるビットマップ形式のデータとの間の中間形式のデータと、前記ビットマップ形式のデータとであり、
前記制御手段は、
前記中間形式のデータを前記保存領域に保存可能か否かを確認する場合、前記共有の保存領域内に予め設定された閾値以上の空き領域の容量が無い場合には、前記共有の保存領域内に保存されている前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方について消去予定であるか否かを判別し、消去予定であると判別された前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方の容量を空き領域の容量とみなすこと、
を特徴とする請求項１又は２記載の画像形成装置。
【請求項４】
前記制御手段は、
前記画像データに基づいて前記中間形式のデータを生成する中間データ生成手段と、
前記中間データ作成手段により生成された前記中間形式のデータに基づいて前記ビットマップ形式のデータを生成するビットマップデータ生成手段と、
記録媒体上に画像を形成させる画像形成手段に前記ビットマップデータ生成手段により生成された前記ビットマップ形式のデータを出力する印刷制御手段と、
前記中間データ生成手段により生成された前記中間形式のデータを前記保存領域内に保存可能か否かを確認する場合、前記共有の保存領域内に予め設定された閾値以上の空き領域が無い場合、前記共有の保存領域内に保存されている前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方について消去予定であるか否かを判別し、消去予定であると判別された前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方の領域を空き領域とみなす保存領域判定手段と、
を有すること、
を特徴とする請求項３記載の画像形成装置。
【請求項５】
前記制御手段は、
前記中間形式のデータを前記保存領域に保存可能か否かを確認する場合、前記空き領域と、当該空き領域と連続した領域であって、空き領域又は空き領域とみなされた領域と、の合計領域の容量が最も小さい容量となる空き領域に、前記中間形式のデータを保存させる保存位置設定手段を有すること、
を特徴とする請求項３又は４記載の画像形成装置。
【請求項６】
データを互いに形式の異なる複数のデータが一時的に保存される共有の保存領域に保存可能か否かを確認する場合、前記共有の保存領域内に保存されているデータのうち、消去予定のデータの領域を空き領域としてみなす制御工程を含むこと、
を特徴とする画像形成方法。
【請求項７】
前記制御工程は、
前記データを保存領域に保存可能か否かを確認する場合、空き領域と当該空き領域と連続した領域であって、空き領域又は空き領域とみなされた領域との合計領域の容量が最も小さい容量となる空き領域に前記データを保存させること、
を特徴とする請求項６記載の画像形成方法。
【請求項８】
前記データは、ページ記述言語形式の画像データと当該画像データを解釈して得られるビットマップ形式のデータとの間の中間形式のデータと、前記ビットマップ形式のデータとであり、
前記制御工程は、
前記中間形式のデータを前記保存領域に保存可能か否かを確認する場合、前記共有の保存領域内に予め設定された閾値以上の空き領域の容量が無い場合には、前記共有の保存領域内に保存されている前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方について消去予定であるか否かを判別し、消去予定であると判別された前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方の容量を空き領域の容量とみなすこと、
を特徴とする請求項６又は７記載の画像形成方法。
【請求項９】
前記制御工程は、
前記画像データに基づいて前記中間形式のデータを生成する中間データ生成工程と、
前記中間データ作成工程により生成された前記中間形式のデータに基づいて前記ビットマップ形式のデータを生成するビットマップデータ生成工程と、
記録媒体上に画像を形成させる画像形成手段に前記ビットマップデータ生成工程により生成された前記ビットマップ形式のデータを出力する印刷制御工程と、
前記中間データ生成工程により生成された前記中間形式のデータを前記保存領域内に保存可能か否かを確認する場合、前記共有の保存領域内に予め設定された閾値以上の空き領域が無い場合、前記共有の保存領域内に保存されている前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方について消去予定であるか否かを判別し、消去予定であると判別された前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方の領域を空き領域とみなす保存領域判定工程と、
を含むこと、
を特徴とする請求項８記載の画像形成方法。
【請求項１０】
前記制御工程は、
前記中間形式のデータを前記保存領域内に保存可能か否かを確認する場合、前記空き領域と、当該空き領域と連続した領域であって、空き領域又は空き領域とみなされた領域と、の合計領域の容量が最も小さい容量となる空き領域に、前記中間形式のデータを保存させる保存位置設定工程を含むこと、
を特徴とする請求項８又は９記載の画像形成方法。
【請求項１１】
コンピュータに、
データを互いに形式の異なる複数のデータが一時的に保存される共有の保存領域に保存可能か否かを確認する場合、前記共有の保存領域内に保存されているデータのうち、消去予定のデータの領域を空き領域としてみなす制御手段、
として機能させるためのプログラム。
【請求項１２】
前記制御手段は、
前記データを前記共有の保存領域内に保存可能か否かを確認する場合、空き領域と当該空き領域と連続した領域であって空き領域又は空き領域とみなされた領域との合計領域の容量が最も小さい容量となる空き領域に前記データを保存させること、
を特徴とする請求項１１記載のプログラム。
【請求項１３】
前記データは、ページ記述言語形式の画像データと当該画像データを解釈して得られるビットマップ形式のデータとの間の中間形式のデータと、前記ビットマップ形式のデータとであり、
前記制御手段は、
前記中間形式のデータを前記保存領域に保存可能か否かを確認する場合、前記共有の保存領域内に予め設定された閾値以上の空き領域の容量が無い場合には、前記共有の保存領域内に保存されている前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方について消去予定であるか否かを判別し、消去予定であると判別された前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方の容量を空き領域の容量とみなすこと、
を特徴とする請求項１１又は１２記載のプログラム。
【請求項１４】
前記制御手段は、
前記画像データに基づいて前記中間形式のデータを生成する中間データ生成手段、
前記中間データ作成手段により生成された前記中間形式のデータに基づいて前記ビットマップ形式のデータを生成するビットマップデータ生成手段、
記録媒体上に画像を形成させる画像形成手段に前記ビットマップデータ生成手段により生成された前記ビットマップ形式のデータを出力する印刷制御手段、
前記中間データ生成手段により生成された前記中間形式のデータを前記保存領域内に保存可能か否かを確認する場合、前記共有の保存領域内に予め設定された閾値以上の空き領域が無い場合、前記共有の保存領域内に保存されている前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方について消去予定であるか否かを判別し、消去予定であると判別された前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方の領域を空き領域とみなす保存領域判定手段、
として機能すること、
を特徴とする請求項１３記載のプログラム。
【請求項１５】
前記制御手段は、
前記中間形式のデータを前記保存領域に保存可能か否かを確認する場合、前記空き領域と、当該空き領域と連続した領域であって、空き領域又は空き領域とみなされた領域と、の合計領域の容量が最も小さい容量となる空き領域に、前記中間形式のデータを保存させる保存位置設定手段として機能すること、
を特徴とする請求項１３又は１４記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データに基づいたデータをメモリに保存する画像形成装置、画像形成方法及びプログラムに関する。
【背景技術】
【０００２】
近年、ＰＣ（Personal Computer）等の外部装置で作成された印刷データ、即ち、ぷストスクリプト（登録商標）やＰＣＬ（Printer Control Language）に代表されるページ記述言語（ＰＤＬ；Page Description Language）形式の画像データを、ＬＡＮ等のネットワークを介して受信し、受信した印刷データを一旦中間形式のデータ（中間データ）に変換してメモリ上に保持し、順次メモリ上に保持されている中間データを読み出してビットマップデータに変換して印刷を行うネットワーク型の複写機、プリンタ、ＭＦＰ（Multi Function Peripheral）等の画像形成装置が普及している。
【０００３】
このような画像形成装置は、印刷処理の高速化に伴う印刷データ量の増大に対して、高スループットが求められている。また、何らかのエラーが発生した場合には、エラーが発生したページから再度印刷する必要があるため、印刷終了まで印刷データを保持しておかなければならない。更に、メモリ上に空き十分な領域が無い場合には、メモリ上に新たなデータを蓄積することはできずメモリオーバーエラーが発生していた。従って、一度に多くのデータを処理するために必要とされるメモリ容量が増加し、コストが高くなるという問題がある。
【０００４】
そこで、メモリ容量の増加を回避するために、保持するデータに対して圧縮等の処理を行い、データの容量を縮小させる方法があるが圧縮処理の為に余分な処理が必要となり、スループットの低下を招く要因となっている。
【０００５】
また、中間データとビットマップデータとを共有のメモリ内で閾値を用いて管理し、メモリの使用効率を向上させる方法がある。この方法は、メモリの空き容量が閾値以上か否かの単純な比較結果に応じてデータの保持を行うものにすぎず、メモリの空き容量が閾値以上に確保するまで処理が停止してしまい、スループットが低下するという問題がある。
【０００６】
更に、メモリを効率的に使用してスループットを向上させるために、印刷データが入力されたインターフェースを特定し、特定されたインターフェースを示す情報及び特定されたインターフェースに対して設定されたジャムリカバリ処理の有効／無効を示すジャムリカバリ情報を読み込み、ジャムリカバリ情報に応じて、ジャムリカバリ処理が有効に設定されている場合には、ワーク用として使用しているメモリ領域を小さくして保存バッファ領域を確保し、通常のジャムリカバリ処理を実行し、無効に設定されている場合には、保存バッファをワーク領域やその他の作業領域として使用する印刷装置が開示されている（特許文献１参照）。
【特許文献１】特開２００４−８２４０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１記載の発明は、印刷データを送信したインターフェースに対して設定されたジャムリカバリ処理が有効か否かに応じて、メモリの使用方法を変更することによりメモリを効率的に利用している印刷装置であり、ジャムリカバリ処理が有効に設定されている場合においては、通常のメモリの使用方法と変わらず、空き領域待ちによる処理停止が発生し、スループットを向上させることができない。即ち、インターフェースに対して設定された条件に応じてメモリの使用方法を変更しているため、インターフェースに依存したメモリ管理となり、スループットを向上させることができないのである。
【０００８】
本発明の課題は、上記問題に鑑みて、メモリの高効率化を図り、スループットの向上が図られた画像形成装置、画像形成方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００９】
請求項１に記載の発明は、互いに形式の異なる複数のデータが一時的に保存される共有の保存領域を有する記憶手段と、前記データを前記保存領域に保存可能か否かを確認する場合、前記共有の保存領域内に保存されているデータのうち、消去予定のデータの領域を空き領域としてみなす制御手段と、を備える画像形成装置であること、を特徴としている。
更に、コンピュータに対して、上述した請求項１に記載の発明に示した主要手段を機能させるためのプログラムを提供する（請求項１１に記載の発明）。
【００１０】
請求項２に記載の発明は、請求項１記載の画像形成装置において、前記制御手段は、前記データを前記共有の保存領域内に保存可能か否かを確認する場合、空き領域と当該空き領域と連続した領域であって空き領域又は空き領域とみなされた領域との合計領域の容量が最も小さい容量となる空き領域に前記データを保存すること、を特徴としている。
更に、コンピュータに対して、上述した請求項２に記載の発明に示した主要手段を機能させるためのプログラムを提供する（請求項１２に記載の発明）。
【００１１】
請求項３に記載の発明は、請求項１又は２記載の画像形成装置において、前記データは、ページ記述言語形式の画像データと当該画像データを解釈して得られるビットマップ形式のデータとの間の中間形式のデータと、前記ビットマップ形式のデータとであり、前記制御手段は、前記中間形式のデータを前記保存領域に保存可能か否かを確認する場合、前記共有の保存領域内に予め設定された閾値以上の空き領域の容量が無い場合には、前記共有の保存領域内に保存されている前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方について消去予定であるか否かを判別し、消去予定であると判別された前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方の容量を空き領域の容量とみなすこと、を特徴としている。
更に、コンピュータに対して、上述した請求項３に記載の発明に示した主要手段を機能させるためのプログラムを提供する（請求項１３に記載の発明）。
【００１２】
請求項４に記載の発明は、請求項３記載の画像形成装置において、前記制御手段は、前記画像データに基づいて前記中間形式のデータを生成する中間データ生成手段と、前記中間データ作成手段により生成された前記中間形式のデータに基づいて前記ビットマップ形式のデータを生成するビットマップデータ生成手段と、記録媒体上に画像を形成させる画像形成手段に前記ビットマップデータ生成手段により生成された前記ビットマップ形式のデータを出力する印刷制御手段と、前記中間データ生成手段により生成された前記中間形式のデータを前記保存領域内に保存可能か否かを確認する場合、前記共有の保存領域内に予め設定された閾値以上の空き領域が無い場合、前記共有の保存領域内に保存されている前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方について消去予定であるか否かを判別し、消去予定であると判別された前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方の領域を空き領域とみなす保存領域判定手段と、を有すること、を有することを特徴としている。
更に、コンピュータに対して、上述した請求項４に記載の発明に示した主要手段を機能させるためのプログラムを提供する（請求項１４に記載の発明）。
【００１３】
請求項５に記載の発明は、請求項３又は４記載の画像形成装置において、前記制御手段は、前記中間形式のデータを前記保存領域に保存可能か否かを確認する場合、前記空き領域と、当該空き領域と連続した領域であって、空き領域又は空き領域とみなされた領域と、の合計領域の容量が最も小さい容量となる空き領域に、前記中間形式のデータを保存させる保存位置設定手段を有すること、を特徴としている。
更に、コンピュータに対して、上述した請求項５に記載の発明に示した主要手段を機能させるためのプログラムを提供する（請求項１５に記載の発明）。
【００１４】
請求項６に記載の発明は、データを互いに形式の異なる複数のデータが一時的に保存される共有の保存領域に保存可能か否かを確認する場合、前記共有の保存領域内に保存されているデータのうち、消去予定のデータの領域を空き領域としてみなす制御工程を含むこと、を特徴としている。
【００１５】
請求項７に記載の発明は、請求項６記載の画像形成方法において、前記制御工程は、前記データを保存領域に保存可能か否かを確認する場合、空き領域と当該空き領域と連続した領域であって、空き領域又は空き領域とみなされた領域との合計領域の容量が最も小さい容量となる空き領域に前記データを保存させること、を特徴としている。
【００１６】
請求項８に記載の発明は、請求項６又は７記載の画像形成方法において、前記データは、ページ記述言語形式の画像データと当該画像データを解釈して得られるビットマップ形式のデータとの間の中間形式のデータと、前記ビットマップ形式のデータとであり、前記制御工程は、前記中間形式のデータを前記保存領域に保存可能か否かを確認する場合、前記共有の保存領域内に予め設定された閾値以上の空き領域の容量が無い場合には、前記共有の保存領域内に保存されている前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方について消去予定であるか否かを判別し、消去予定であると判別された前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方の容量を空き領域の容量とみなすこと、を特徴としている。
【００１７】
請求項９に記載の発明は、請求項８記載の画像形成方法において、前記制御工程は、前記画像データに基づいて前記中間形式のデータを生成する中間データ生成工程と、前記中間データ作成工程により生成された前記中間形式のデータに基づいて前記ビットマップ形式のデータを生成するビットマップデータ生成工程と、記録媒体上に画像を形成させる画像形成手段に前記ビットマップデータ生成工程により生成された前記ビットマップ形式のデータを出力する印刷制御工程と、前記中間データ生成工程により生成された前記中間形式のデータを前記保存領域内に保存可能か否かを確認する場合、前記共有の保存領域内に予め設定された閾値以上の空き領域が無い場合、前記共有の保存領域内に保存されている前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方について消去予定であるか否かを判別し、消去予定であると判別された前記中間形式のデータ及び前記ビットマップ形式のデータの少なくとも一方の領域を空き領域とみなす保存領域判定工程と、を含むこと、を特徴としている。
【００１８】
請求項１０に記載の発明は、請求項８又は９記載の画像形成方法において、前記制御工程は、前記中間形式のデータを前記保存領域内に保存可能か否かを確認する場合、前記空き領域と、当該空き領域と連続した領域であって、空き領域又は空き領域とみなされた領域と、の合計領域の容量が最も小さい容量となる空き領域に、前記中間形式のデータを保存させる保存位置設定工程を含むこと、を特徴としている。
【発明の効果】
【００１９】
請求項１、６、１１に記載の発明によれば、データを共有の保存可能か否かを確認する場合、実際の空き領域に加え消去予定のデータの領域を空き領域としてみなすことができ、共有の保存領域を効率的に活用することができるため、スループットの向上を図ることができる。
【００２０】
請求項２、７、１２に記載の発明によれば、請求項１、６、１１と同様の効果を得られるのは勿論のこと、連続した空き領域が最大となるように領域を選んでデータを保存させることができるため、共有の保存領域内にデータが離散的に保存されることを低減することができ、共有の保存領域を有効に活用することができる。
【００２１】
請求項３、８、１３に記載の発明によれば、請求項１又は２、６又は７、１１又は１２同様の効果を得られるのは勿論のこと、共有の保存領域内に予め設定された閾値以上の空き領域の容量が無い場合であっても、消去予定であると判別された中間形式のデータ及びビットマップ形式のデータ少なくとも一方の容量を空き領域の容量としてみなすことができ、実際に空き領域が発生するまで待機することなく次の処理を実行させることができるため、スループットを向上させることができる。
【００２２】
請求項４、９、１４に記載の発明によれば、請求項３、８、１３と同様の効果を得られるのは勿論のこと、中間形式のデータを共有の保存領域に保存させる際、共有の保存領域内に予め設定された閾値以上の空き領域の容量が無い場合であっても、消去予定であると判別された中間形式のデータ及びビットマップ形式のデータの少なくとも一方の容量を空き領域の容量としてみなすことができ、実際に空き領域が発生するまで待機する必要がなく、中間形式のデータの保存処理を再開させることができるため、待機状態の発生率を低減させることができ、スループットを向上させることができる。
【００２３】
請求項５、１０、１５に記載の発明によれば、請求項３又は４、８又は９、１３又は１４と同様の効果を得られるのは勿論のこと、連続した空き領域が最大となるように領域を選んで中間形式のデータを保存させることができ、共有の保存領域内にデータが離散的に保存されることを低減することができ、共有の保存領域を有効に活用することができる。
【発明を実施するための最良の形態】
【００２４】
以下、図を参照して本発明の実施の形態を詳細に説明する。
まず、構成を説明する。
図１に、本実施の形態における画像形成装置１の概略断面構成図を示す。
画像形成装置１は、読取対象原稿ＷＰ（以下、原稿と言う。）から画像を読み取り、読み取った画像を処理対象紙としての枚葉紙等の記録媒体Ｐに画像形成するコピー機能や、パーソナルコンピュータ等から画像データを受信し、受信した画像データに基づいて記録媒体Ｐ上に画像を形成して出力するプリンタ機能等を備えたデジタル複合機である。図１に示すように、画像形成装置１は、画像読取部２０、プリント部３０から構成される。
【００２５】
画像読取部２０は、自動原稿送り部２１と読取部２２とを備えて構成されている。
自動原稿送り部２１は、ＡＤＦ（Auto Document Feeder）と称されるものであり、原稿トレイＴ１に積載される原稿ＷＰを読取部２２の読取箇所に一枚ずつ搬送する。
【００２６】
読取部２２は、光源、レンズ、コンタクトガラス、イメージセンサ等が設けられたスキャナを備えて構成され、原稿に照射した光の反射光を結像して光電変換することにより原稿ＷＰの画像を読み取り、プリント部３０に出力する。ここで、画像とは、図形や写真等のイメージデータに限らず、文字や記号等のテキストデータ等も含む意である。
【００２７】
プリント部３０は、画像形成部４０と、クリーニング部５０と、中間転写ベルト６０と、給紙部７０と、搬送部８０と、定着装置９０とを備えて構成される。
【００２８】
本実施の形態の画像形成部４０は、イエロー（Ｙ）、マゼンダ（Ｍ）、シアン（Ｃ）、ブラック（Ｋ）の色毎の画像形成部４０Ｙ、４０Ｍ、４０Ｃ、４０Ｋを備えて構成されている。例えば、画像形成部４０Ｙは、感光体ドラム４１Ｙの周囲に配置された帯電装置４２Ｙ、露光装置４３Ｙ、現像装置４４Ｙ、一次転写ローラ４５Ｙ、クリーニング装置４６Ｙを備え、イエロー（Ｙ）の画像を形成する。
【００２９】
具体的には、帯電装置４２Ｙにより帯電された感光体ドラム４１Ｙに、露光装置４３Ｙからイエロー（Ｙ）の画像データに応じた光を照射して静電潜像を形成する。そして、現像装置４４Ｙは、静電潜像が形成された感光体ドラム４１Ｙの表面に帯電したイエロー（Ｙ）のトナーを付着させて静電潜像を現像する。現像装置４４Ｙによりトナーが付着された感光体ドラム４１Ｙは、一次転写ローラ４５Ｙが配置された転写位置へ一定速度で回転されながら後述する中間転写ベルト６０に転写される。中間転写ベルト６０にトナーが転写された後、クリーニング装置４６Ｙが、感光体ドラム４１Ｙの表面の残留電荷や残留トナー等を除去する。
【００３０】
同様に、画像形成部４０Ｍ、４０Ｃ、４０Ｋは、感光体ドラム４１Ｍ、４１Ｃ、４１Ｋの周囲に配置された帯電装置４２Ｍ、４２Ｃ、４２Ｋ、露光装置４３Ｍ、４３Ｃ、４３Ｋ、現像装置４４Ｍ、４４Ｃ、４４Ｋ、一次転写ローラ４５Ｍ、４５Ｃ、４５Ｋ、クリーニング装置４６Ｍ、４６Ｃ、４６Ｋを備え、マゼンタ（Ｍ）、シアン（Ｃ）、ブラック（Ｋ）の画像をそれぞれ形成する。
【００３１】
中間転写ベルト６０は、複数のローラに懸架され回転可能に支持された半導電性エンドレスベルトであり、ローラの回転に伴って回転駆動される。
この中間転写ベルト６０は、一次転写ローラ４５Ｙ、４５Ｍ、４５Ｃ、４５Ｋによりそれぞれ感光体ドラム４１Ｙ、４１Ｍ、４１Ｃ、４１Ｋに圧着される。これにより感光体ドラム４１Ｙ、４１Ｍ、４１Ｃ、４１Ｋの表面に現像された各トナーは、一次転写ローラ４５Ｙ、４５Ｍ、４５Ｃ、４５Ｋによる転写位置で中間転写ベルト６０に転写され、二次転写ローラ８３による転写位置で記録媒体Ｐにイエロー、マゼンタ、シアン、ブラックの各トナーが順次重ねて転写される。
【００３２】
給紙部７０は、複数の給紙カセット７１、７２、７３と手差しトレイＴとを備える。給カセット７１、７２、７３内は、給紙カセット毎にサイズや紙種毎に予め識別された規格サイズの記録媒体Ｐが収容されており、給紙ローラ７４、７５、７６によって収容された記録媒体Ｐを最上部から一枚ずつ搬送部８０に向けて搬送する。手差しトレイＴは、ユーザのニーズに合わせて様々な規格外のサイズの記録媒体Ｐをその都度積載可能となっている。積載された記録媒体Ｐは、用紙サイズ及び通紙幅が検知され、給紙ローラ７７によって積載された記録媒体Ｐが最上部から一枚ずつ搬送部８０に向けて搬送される。
【００３３】
搬送部８０は、用紙トレイ７１、７２、７３及び手差しトレイＴから搬送された記録媒体Ｐを、複数の中間ローラ８１ａ、８１ｂ、８１ｃ、８１ｄ、レジストローラ８２を経て二次転写ローラ８３へと搬送する。この二次転写ローラ８３により、中間転写ベルト６０に転写されたトナー画像が記録媒体Ｐ面に一括転写される。
【００３４】
そして、トナー画像が転写された記録媒体Ｐは、定着装置９０において記録媒体Ｐに転写されたトナー像が熱定着される。定着処理された記録媒体Ｐは、排紙ローラ８４に挟持されて排紙トレイ８５上に出力される。
【００３５】
一方、二次転写ローラ８３により記録媒体Ｐにトナー画像を転写した後、記録媒体Ｐを曲率及び静電的に分離した中間転写ベルト６０は、クリーニング部５０により残留トナーが除去される。
【００３６】
図２に、画像形成装置１の制御ブロック図を示す。
図２に示すように、画像形成装置１は、制御部１０、外部ＩＦ（InterFace）１１、操作表示部１２、画像読取部２０、プリント部３０を備え、各部はバス等により接続されて構成され、外部ＩＦ１１を介して外部装置２と通信可能に接続されている。なお、図１で説明した各部と同一の構成には、同一の符号を付してその説明を省略する。
【００３７】
制御部１０は、ＣＰＵ（Central Processing Unit）１００、ＲＯＭ（Read Only Memory）１１０、ＲＡＭ（Random Access Memory）１２０等から構成され、ＲＯＭ１１０内に格納されている各種処理プログラムやデータをＲＡＭ１２０に展開し、当該プログラムに基づいて画像形成装置１の各部の動作を集中制御する。例えば、操作表示部１２や外部装置２から入力される指示信号に従って、コピーモード、プリントモード、スキャナモードを切り替え、各モードに対する処理プログラムを読み出して、複写、印刷、画像データの読取等の制御を行う。
【００３８】
ＣＰＵ１００は、ＲＯＭ１１０及びＲＡＭ１２０の協働により、ポストスクリプト（等力商標）やＯＣＬ等のページ記述言語形式の画像データ（以下、ＰＤＬデータという。）を解釈し、当該画像データとビットマップ形式のデータ（以下、ビットマップデータという。）との間の中間形式のデータ（以下、中間データという。）を生成してＲＡＭ１２０内の共有保存領域１２３に保存させる際、共有保存領域１２３内に中間データを保存させるための領域の有無を判別し、当該判別結果が無しの場合、共有保存領域１２３に保存されていた他の中間データが消去された事象及び共有保存領域１２３に保存されていたビットマップデータが消去された事象を監視し、これらのうちいずれか一方の事象が発生したとき、再度、中間データを保存させるための領域の有無を判別する機能を実現する。
【００３９】
中間データとしては、ＰＤＬデータに含まれるオブジェクト（テキストデータ、グラフィックスデータ、イメージデータ等）の特徴に応じて生成されるデータである。例えば、テキストデータやグラフィックスデータの中間データとしてはベクタ形式のデータ、イメージデータの中間データとしてはイメージ形式のデータ、を挙げることができる。
【００４０】
更に、ＣＰＵ１００は、ＲＯＭ１１０及びＲＡＭ１２０の協働により、中間データを共有保存領域１２３に保存させる際、中間データを共有保存領域１２３に保存可能か否かを確認する場合、共有保存領域１２３内に予め設定された閾値以上の空き領域の容量が無い場合には、共有保存領域１２３内に保存されている中間データ及びビットマップデータの少なくとも一方について、消去予定であると判別された中間データ及びビットマップデータの少なくとも一方の容量を空き領域の容量とみなし、また、空き領域と、この空き領域と連続した領域であって、空き領域又はこの空き領域と連続した空き領域とみなされた中間データ及びビットマップデータの少なくとも一方と、の合計容量が最も小さい容量となる空き領域に保存される機能を実現する。
【００４１】
ＲＯＭ１１０は、画像形成に係る各種処理プログラム、画像形成に係るデータ等、各種プログラムで処理されたデータ等を記憶する。また、ＲＯＭ１１０は、ＣＰＵ１００及びＲＡＭ１２０との協働により本実施の形態を実現させるためのプログラムやデータを記憶しているデータ受信部１１１、解析部１１２、ビットマップデータ生成部１１３、印刷制御部１１４を有している。
【００４２】
データ受信部１１１は、外部装置２から外部ＩＦ１１を介して入力される画像データを受信して、ＲＡＭ１２０内のスプール領域１２２に記憶させる機能を実現させるためのプログラムやデータが記憶されている。
【００４３】
解析部１１２は、中間データ生成部１１２ａ、保存領域判定部１１２ｂ、保存位置設定部１１２ｃを有している。
【００４４】
中間データ生成部１１２ａは、ＲＡＭ１２０内のスプール領域１２２に記憶されているＰＤＬデータを読み出し、読み出されたＰＤＬデータとビットマップデータとの間の形式の中間データを生成してＲＡＭ１２０内の共有保存領域１２３に保存させる機能を実現させるためのプログラムやデータが記憶されている。
【００４５】
保存領域判定部１１２ｂは、中間データ生成部１１２ａにより生成された中間データを共有保存領域１２３内に保存可能か否かを確認する場合、共有保存領域１２３内に予め設定された閾値以上の空き領域が無い場合には、共有保存領域１２３内に保存されている中間データ及びビットマップデータの少なくとも一方は消去予定であるか否かを判別し、消去予定であると判別された中間データ及びビットマップデータの少なくとも一方の領域を空き領域とみなす機能を実現させるためのプログラムやデータが記憶されている。
【００４６】
保存位置設定部１１２ｃは、中間データ生成部１１２により生成された中間データを共有保存領域１２３内に保存可能か否かを確認する場合、共有保存領域１２３内の空き領域とこの空き領域と連続した領域であって、空き領域又は空き領域とみなされた領域と、の合計領域の容量が最も小さい容量のとなる空き領域に、中間データを保存させる機能を実現させるためのプログラムやデータが記憶されている。
【００４７】
ビットマップデータ生成部１１３は、中間データ生成部１１２ａにより生成され共有保存領域１２３内に保存されている中間データに基づいてビットマップデータを生成するラスタライズ処理を実行し、生成されたビットマップデータに対応する中間データを共有保存領域１２３から消去（解放）する機能を実現させるためのプログラムやデータが記憶されている。
【００４８】
印刷制御部１１４は、記録媒体上に画像を形成させるプリント部３０にビットマップデータ生成部１１３により生成されたビットマップデータを出力し、出力されたビットマップデータを消去（解放）する機能を実現させるためのプログラムやデータが記憶されている。
【００４９】
なお、ＲＯＭ１１０は読み出し可能な不揮発性の記憶媒体であれば良く、磁気的、光学的記憶媒体又は半導体メモリで構成されていても良い。また、このＲＯＭ１１０は、制御基板等に固定的に設けられるもの、若しくは着脱自在に装着するものであっても良い。
【００５０】
ＲＡＭ１２０は、展開領域１２１、スプール領域１２２、共有保存領域１２３を有しており、画像形成に係るデータ等、各種プログラムで処理されたデータ等を記憶する。
【００５１】
展開領域１２１は、ＲＯＭ１１０内に記憶された各種プログラムやデータが展開される領域である。スプール領域１２２は、外部装置２や画像読取部２０から入力されたＰＤＬデータ等の外部から入力された各種データを保存する領域である。
【００５２】
共有保存領域１２３は、中間データとビットマップデータとが一時的に保存される共有の保存領域であり、中間データは共有保存領域１２３内の上位アドレスから下位アドレスの方向に向かって保存され、ビットマップデータは共有保存領域１２３内の下位アドレスから上位アドレスの方向に向かって保存される領域である。共有保存領域１２３は、中間データに対しては予め設定された閾値を用いて保存の可否が判別されるが、ビットマップデータに対しては制限無く保存可能である。
このように、ＲＡＭ１２０は共有保存領域１２３を有する。
【００５３】
なお、ＲＡＭ１２０は、読み書き可能な記憶媒体であればよく、ＨＤＤ（Hard Disk Drive）、ＭＲＡＭ（Magnetic Random Access Memory）又はフラッシュメモリなどで構成されていても良く、この限りではない。また、このＲＡＭ１２０は、制御基板等に固定的に設けられるもの、若しくは着脱自在に装着するものであっても良い。
【００５４】
外部ＩＦ１１は、ＮＩＣ（Network Interface Card）やモデム等のＬＡＮ等のネットワークＮに接続するための通信インターフェースであり、外部装置２からＰＤＬデータ等を受信する。受信されたＰＤＬデータ等は、制御部１０に出力される。
【００５５】
操作表示部１２は、ＬＣＤ（Liquid Crystal Display）、ＬＣＤを覆うように設けられたタッチパネルや操作キー群等から構成され、制御部１０から入力される表示信号に従って、各種設定条件を入力するための各種設定画面や各種処理結果等をＬＣＤに表示させると共に、操作キー群又はタッチパネルから入力される操作信号を制御部１０に出力する。
【００５６】
次に、本実施の形態の動作を説明する。
図３に、本実施の形態における印刷時における共有保存領域１２３の制御処理のメインフロー図を示す。図３に示す動作は、ＣＰＵ１００において実行されるものとする。説明を簡略化するために、まず１ページ分の画像が記録媒体上に形成されるまでの処理を説明する。
【００５７】
データ受信部１１１によりＣＰＵ１００は、外部ＩＦ１１を介して入力されたＰＤＬデータを受信し、スプール領域１２２に保存させるデータ受信処理を実行する（ステップＳ１）。
【００５８】
ＰＤＬデータがスプール領域１２２に保存された後、解析部１１２によりＣＰＵ１００は、スプール領域１２２に保存されているＰＤＬデータを読み出して中間データを生成し、共有保存領域１２３に保存させる解析処理を実行する（ステップＳ２）。
【００５９】
ビットマップデータ生成部によりＣＰＵ１００は、１ページ分の中間データが共有保存領域１２３に保存されると、共有保存領域１２３から１ページ分の中間データに基づいてバンド単位でビットマップデータを生成するラスタライズ処理を実行して１ページ分のビットマップデータを生成し、生成されたビットマップデータを共有保存領域１２３に保存する（ステップＳ３）。
【００６０】
印刷制御部１１４によりＣＰＵ１００は、１ページ分のビットマップデータが共有保存領域１２３に保存されると、共有保存領域１２３から１ページ分のビットマップデータを読み出してプリント部３０に出力し、１ページ分の画像を記録媒体Ｐ上に形成させ（ステップＳ４）、本処理は終了される。
【００６１】
本実施の形態の画像形成装置１は、上述した動作の各ステップの処理を並行して実行させることができる。複数ページの画像を複数の記録媒体上に形成させる場合には、各処理に優先順位が設定されており、設定された順位に応じて実行される処理の順序が入れ替えられる。優先順位の例としては、優先順位が高い順に、ステップＳ１のデータ受信処理、ステップＳ４の印刷処理、ステップＳ３のラスタライズ処理、ステップＳ２の中間データ生成処理と設定され、記録媒体上に画像を形成する処理が優先されるように設定されている例を挙げることができる。
【００６２】
図４に、ステップＳ２において実行される解析処理のフロー図を示す。図４に示す動作は、１ページ分の中間データを生成して共有保存領域１２３内に保存させる解析処理を示しており、解析部１１２の中間データ生成部１１２ａによりＣＰＵ１００において実行されるものとする。
【００６３】
ＣＰＵ１００は、スプール領域１２２内に保存されている１ページ分のＰＤＬデータからオブジェクトを選択し（ステップＳ１１）、選択したオブジェクトに基づいて中間データを生成する（ステップＳ１２）。
【００６４】
ＣＰＵ１００は、生成された中間データの容量に基づいて、共有保存領域１２３内にステップＳ１２において生成された中間データを保存可能な領域の有無を判別する保存領域判定処理を実行する（ステップＳ１３）。
【００６５】
ＣＰＵ１００は、保存領域判定処理を実行した結果、中間データを保存させるための領域有りと判定されたか否かを判別する（ステップＳ１４）。
【００６６】
ＣＰＵ１００は、中間データを保存させるための領域有りと判別した場合（ステップＳ１４；Ｙｅｓ）、共有保存領域１２３内に保存される中間データの領域を設定して保存させる保存位置設定処理を実行する（ステップＳ１５）。
【００６７】
ＣＰＵ１００は、中間データを保存させるための領域無しと判別した場合（ステップＳ１４；Ｎｏ）、中間データを保存可能な領域の有無を判定する機会、即ち、共有保存領域１２３内に保存されているデータ（中間データ又はビットマップデータ）が共有保存領域１２３内から消去（解放）された事象を示す信号（以下、解放信号という。）が発生するまで待機し（ステップＳ１６）、解放信号の発生の有無を判別する（ステップＳ１７）。
【００６８】
ＣＰＵ１００は、解放信号の発生無しと判別した場合（ステップＳ１７；Ｎｏ）、ステップＳ１６に戻り、解放信号の発生有りと判別した場合（ステップＳ１７；Ｙｅｓ）、ステップＳ１３に戻る。
【００６９】
ＣＰＵ１００は、保存位置設定処理が実行された後、１ページ分の中間データの生成が終了したか否かを判別し（ステップＳ１８）、１ページ分の中間データの生成が終了していないと判別した場合（ステップＳ１８；Ｎｏ）、ステップＳ１１に戻る。
【００７０】
ＣＰＵ１００は、１ページ分の中間データの生成が終了したと判別した場合（ステップＳ１８；Ｙｅｓ）、本処理は終了される。
【００７１】
図５に、ステップＳ１３において実行される保存領域判定処理のフロー図を示す。図５に示す動作は、保存領域判定部１１２ｂによりＣＰＵ１００において実行されるものとする。
【００７２】
ＣＰＵ１００は、共有保存領域１２３においてデータ（中間データ又はビットマップデータ）が保存されていない空き領域（以下、実空き領域という。）の合計容量を算出し、算出された実空き領域の合計容量は、予め設定されている閾値よりも大きいか否かを判別する（ステップＳ２１）。
【００７３】
ＣＰＵ１００は、実空き領域の合計容量は閾値以下であると判別した場合（ステップＳ２１；Ｎｏ）、共有保存領域１２３内に保存されているデータを選択し（ステップＳ２２）、選択されたデータは消去予定（解放予定）であるか否かを判別する（ステップＳ２３）。
【００７４】
ステップＳ２３において実行される選択されたデータが消去予定か否かの判別は、例えば、選択されたデータが、両面印刷時の片面のみ生成され保存されているビットマップデータか否かを判別したり、同一ページ中の画像データに基づいてオブジェクト毎に複数生成される中間データであって未生成の中間データが有る中間データか否かを判別したり、１ページ分のビットマップデータを生成させるために同一ページ中の画像データに基づいて複数生成された中間データであって未生成のビットマップデータが有る中間データか否かを判別したりする。
【００７５】
ＣＰＵ１００は、選択されたデータは共有保存領域１２３内から解放予定であると判別した場合（ステップＳ２３；Ｙｅｓ）、選択されたデータが保存されている領域を実空き領域としてみなして設定する（ステップＳ２４）。以下、実空き領域とみなされた選択されたデータが保存されている領域をみなし空き領域という。
【００７６】
ＣＰＵ１００は、実空き領域の合計容量に設定したみなし空き領域の容量を加え、予測空き領域の容量として算出し（ステップＳ２５）、共有保存領域１２３内に保存されているデータにおいて、未選択のデータの有無を判別する（ステップＳ２６）。
【００７７】
ＣＰＵ１００は、未選択のデータ有りと判別した場合（ステップＳ２６；Ｙｅｓ）、共有保存領域１２３内に保存されている未選択のデータを選択し（ステップＳ２７）、ステップＳ２３に戻る。
【００７８】
ＣＰＵ１００は、未選択のデータ無しと判別した場合（ステップＳ２６；Ｎｏ）、算出した予測空き領域の容量からステップＳ１２において生成された中間データの容量を減算した値が予め設定された閾値よりも大きいか否かを判別する（ステップＳ２８）。
【００７９】
ＣＰＵ１００は、実空き領域の合計容量が予め設定されている閾値よりも大きいと判別した場合（ステップＳ２１；Ｙｅｓ）、又は、算出した予測空き領域の容量からステップＳ１２において生成された中間データの容量を減算した値が予め設定された閾値よりも大きいと判別した場合（ステップＳ２８；Ｙｅｓ）、ステップＳ１２において生成された中間データを保存させるための領域が有りと判定し（ステップＳ２９）、本処理を終了する。
【００８０】
また、ＣＰＵ１００は、算出した予測空き領域の容量からステップＳ１２において生成された中間データの容量を減算した値が予め設定された閾値以下と判別した場合（ステップＳ２８；Ｎｏ）、ステップＳ１２において生成された中間データを保存させるための領域が無しと判定し（ステップＳ３０）、本処理を終了する。
【００８１】
図６及び７に、図５に示す保存領域判定処理を適用した場合の共有保存領域１２３の例を示す。図６及び７において、共有保存領域の容量を１２０ＭＢと設定し、予め設定されている閾値を６４ＭＢと設定する。
【００８２】
図６は、みなし空き領域として設定される領域がビットマップデータである場合の例を示している。図６に示す共有保存領域１２３は、上位アドレス順に、オブジェクト毎に生成中の２ページ目の中間データＭ２であり２０ＭＢを占める領域、６０ＭＢの実空き領域Ｅ、生成が完了した４０ＭＢの１ページ目のビットマップデータＢ１の領域、を有している。
【００８３】
図６（ａ）は、２ページ目の中間データＭ２をオブジェクト毎に生成中、ステップＳ２１において実空き領域の容量と閾値とが比較されている共有保存領域１２３の状態を示している。図６（ａ）に示すように、実空き領域の容量（６０ＭＢ）は、閾値（６４ＭＢ）以下である。従って、従来では、ステップＳ１２において生成された中間データを保存するための領域が確保できないと判別されて待機状態となっていた。
【００８４】
図６に示す中間データＭ２は、２ページ目の画像データに基づいてオブジェクト毎に複数生成される中間データであって未生成の中間データが有る中間データあるため、ステップＳ２３において解放予定と判別されない。一方ビットマップデータＢ１は、プリント部３０の準備が出来次第出力される予定であるため、ステップＳ２３において解放予定と判別され、みなし空き領域と設定される。従って、実空き領域Ｅとみなし空き領域として設定されたビットマップデータＢ１とが加算された予測空き領域が算出される。
【００８５】
図６（ｂ）は、ステップＳ２８において、予測空き領域からステップＳ１２において生成された２ページ目のあるオブジェクトの中間データｍ２が減算された容量と閾値とが比較されている状態を示している。図６（ｂ）に示すように、予測空き領域（１００ＭＢ）からステップＳ１２において生成された中間データｍ２（１５ＭＢ）が減算された容量（８５ＭＢ）は、閾値（６４ＭＢ）よりも大きくなり、中間データｍ２を保存させるための領域有りと判定される。従って、待機することなく次の処理を実行することができる。
【００８６】
図７は、みなし空き領域として設定される領域が中間データである場合の例を示している。図７に示す共有保存領域１２３は、上位アドレス順に、生成が完了した３０ＭＢの３ページ目の中間データの領域Ｍ３、オブジェクト毎に生成中の４ページ目の中間データＭ４であり１０ＭＢを占める領域、５０ＭＢの実空き領域Ｅ、３ページ目の中間データに基づいて生成中の３ページ目のビットマップデータＢ３であり３０ＭＢを占める領域、を有している。
【００８７】
図７（ａ）は、４ページ目の中間データＭ４をオブジェクト毎に生成中、ステップＳ２１において実空き領域の容量と閾値とが比較されている共有保存領域１２３の状態を示している。図７（ａ）に示すように、実空き領域の容量（５０ＭＢ）は、閾値（６４ＭＢ）以下である。従って、従来では、ステップＳ１２において生成された中間データを保存するための領域が確保できないと判別されて待機状態となっていた。
【００８８】
本実施の形態では、中間データＭ３は、３ページ目のビットマップデータを生成した後に解放されるデータであるため、ステップＳ２３において解放予定と判別され、みなし空き領域と設定される。中間データＭ４は、４ページ目の画像データに基づいてオブジェクト毎に複数生成される中間データであって未生成の中間データが有る中間データあるため、ステップＳ２３において解放予定と判別されない。また、ビットマップデータＢ３は、中間データＭ３に基づいて生成中であるため、解放予定を判別されない。従って、実空き領域Ｅとみなし空き領域と設定された中間データＭ３とが加算された予測空き領域が算出される。
【００８９】
図７（ｂ）は、ステップＳ２８において、予測空き領域からステップＳ１２において生成された４ページ目のあるオブジェクトの中間データｍ４が減算された容量と閾値とが比較されている状態を示している。図７（ｂ）に示すように、予測空き領域（８０ＭＢ）からステップＳ１２において生成された中間データｍ４（１０ＭＢ）が減算された容量（７０ＭＢ）は、閾値（６４ＭＢ）よりも大きくなり、中間データｍ４を保存させるための領域有りと判定される。従って、待機することなく次の処理を実行することができる。
【００９０】
このように、中間データを共有保存領域１２３に保存させる際、共有保存領域１２３内に予め設定された閾値以上の実空き領域の容量が無い場合であっても、消去予定であると判別された中間データ及びビットマップデータの少なくとも一方の容量を空き領域の容量としてみなすことができ、実空き領域が発生するまで待機する必要がなく、中間データの保存処理を再開させることができるため、待機状態の発生率を低減させることができ、スループットを向上させることができる。
【００９１】
図８に、ステップＳ１５において実行される保存位置設定処理のフロー図を示す。図８に示す動作は、保存位置設定部１１２ｃによりＣＰＵ１００において実行されるものとする。
【００９２】
ＣＰＵ１００は、共有保存領域１２３のアドレスであってステップＳ１２において生成された中間データが保存される領域の先頭のアドレス（以下、設定保存領域アドレスという。）を初期化すると共に、ステップＳ１２において生成された中間データが保存される領域の容量（以下、設定保存領域サイズという。）を初期化する（ステップＳ３１）。
【００９３】
ＣＰＵ１００は、設定保存領域アドレス及び設定保存領域サイズの初期化後、実空き領域を選択し（ステップＳ３２）、選択した実空き領域と連続し先頭のアドレスが実空き領域よりも下位の領域である次の領域を更に選択する（ステップＳ３３）。
【００９４】
ＣＰＵ１００は、ステップＳ３３において選択された領域は、みなし空き領域又は実空き領域であるか否かを判別する（ステップＳ３４）。
【００９５】
ＣＰＵ１００は、ステップＳ３３において選択された領域は、みなし空き領域又は実空き領域であると判別した場合（ステップＳ３４；Ｙｅｓ）、ステップＳ３２において選択された実空き領域とステップＳ３３において選択された領域とを加算した領域を保存候補領域として設定する（ステップＳ３５）。
【００９６】
ＣＰＵ１００は、ステップＳ３３において選択した領域と連続した次の領域の有無を判別し（ステップＳ３６）、ステップＳ３３において選択した領域と連続した次の領域有りと判別した場合（ステップＳ３６；Ｙｅｓ）、ステップＳ３３において選択した領域と連続した次の領域を更に選択し（ステップＳ３７）、ステップＳ３４に戻る。
【００９７】
ＣＰＵ１００は、ステップＳ３３において選択した領域と連続した次の領域無しと判別した場合（ステップＳ３６；Ｎｏ）、ステップＳ３８に進む。
【００９８】
ＣＰＵ１００は、ステップＳ３３において選択された領域は、みなし空き領域又は実空き領域ではないと判別した場合（ステップＳ３４；Ｎｏ）、ステップＳ３２において選択された実空き領域の容量はステップＳ１２において生成された中間データの容量よりも大きいか否かを判別する（ステップＳ３８）。即ち、ステップＳ３８では、ステップ３２において選択された実空き領域は、ステップＳ１２において生成された中間データを保存可能な領域であるか否かを判別している。
【００９９】
ＣＰＵ１００は、ステップＳ３２において選択された実空き領域の容量は、ステップＳ１２において生成された中間データの容量以下であると判別した場合（ステップＳ３８；Ｎｏ）、ステップＳ４３に進む。
【０１００】
ＣＰＵ１００は、ステップＳ３２において選択された実空き領域の容量は、ステップＳ１２において生成された中間データの容量よりも大きいと判別した場合（ステップＳ３８；Ｙｅｓ）、ステップＳ３２において選択された実空き領域の容量は、共有保存領域１２３内における実空き領域のうち、最も上位の先頭アドレスを有する実空き領域（即ち、共有保存領域１２３内において先頭の実空き領域）ではないか否かを判別する（ステップＳ３９）。
【０１０１】
ＣＰＵ１００は、ステップＳ３２において選択された実空き領域の容量は、共有保存領域１２３内における実空き領域のうち、最も上位の先頭アドレスを有する実空き領域（即ち、共有保存領域１２３内において先頭の実空き領域）ではないと判別した場合（ステップＳ３９；Ｙｅｓ）、保存候補領域の容量は設定保存領域の容量よりも小さいか否かを判別し（ステップＳ４０）、保存候補領域の容量は設定保存領域の容量以上であると判別した場合（ステップＳ４０；Ｎｏ）、ステップＳ４３に進む。
【０１０２】
ＣＰＵ１００は、ステップＳ３２において選択された実空き領域の容量は、共有保存領域１２３内における実空き領域のうち、最も上位の先頭アドレスを有する実空き領域（即ち、共有保存領域１２３内において先頭の実空き領域）であると判別した場合（ステップＳ３９；Ｎｏ）、又は、保存候補領域の容量は設定保存領域の容量よりも小さいと判別した場合（ステップＳ４０；Ｙｅｓ）、ステップＳ３２において選択された実空き領域の先頭のアドレスを設定保存領域アドレスとして設定し（ステップＳ４１）、保存候補領域を設定保存領域として設定する（ステップＳ４２）。
【０１０３】
ＣＰＵ１００は、ステップＳ３８；Ｎｏ後、ステップ４０後、又はステップ４２後、共有保存領域１２３内に未選択の実空き領域の有無を判別し（ステップＳ４３）、共有保存領域１２３内に未選択の実空き領域有りと判別した場合（ステップＳ４３；Ｙｅｓ）、ステップＳ３２に戻り、共有保存領域１２３内に未選択の実空き領域無しと判別した場合（ステップＳ４３；Ｎｏ）、設定保存領域にステップＳ１２において生成された中間データを保存し（ステップＳ４４）、本処理を終了する。
【０１０４】
図９に、図５及び８に示す保存領域判定処理及び保存位置設定処理を適用した場合の共有保存領域１２３の例を示す。図９において、共有保存領域の容量を１２０ＭＢと設定し、予め設定されている閾値を６４ＭＢと設定する。
【０１０５】
図９に示す共有保存領域１２３は、上位アドレス順に、生成が完了した両面印刷として設定された２０ＭＢの２ページ目の中間データＭ２、２０ＭＢの実空き領域Ｅ１、生成が完了した両面印刷として設定された２０ＭＢの３ページ目の中間データＭ３の領域、２０ＭＢの実空き領域Ｅ２、生成が完了した片面印刷として設定された４０ＭＢの１ページ目のビットマップデータＢ１の領域、を有している。
【０１０６】
図９（ａ）は、４ページ目のあるオブジェクトの中間データｍ４を生成したとき、ステップＳ２１において実空き領域の合計容量と閾値とが比較されている共有保存領域１２３の状態を示している。図９（ａ）に示すように、実空き領域の合計容量（４０ＭＢ）は、閾値（６４ＭＢ）以下である。従って、従来では、ステップＳ１２において生成された中間データを保存するための領域が確保できないと判別されて待機状態となっていた。
【０１０７】
図９に示す共有保存領域１２３は、ステップＳ２２〜Ｓ２７において、中間データＭ２、Ｍ３は解放予定と判別されない。一方、ビットマップデータＢ１は解放予定と判別され、みなし空き領域と設定される。従って、実空き領域Ｅ１、Ｅ２とみなし空き領域として設定されたビットマップデータＢ１とが加算された予測空き領域の容量が算出される。
【０１０８】
図９（ｂ）は、ステップＳ２８において、予測空き領域からステップＳ１２において生成された中間データｍ４が減算された容量と閾値とが比較されている状態を示している。図９（ｂ）に示すように、予測空き領域（８０ＭＢ）からステップＳ１２において生成された中間データｍ４（１０ＭＢ）が減算された容量（７０ＭＢ）は、閾値（６４ＭＢ）よりも大きくなり、中間データｍ４を保存させるための領域有りと判定される。
【０１０９】
図９に示す共有保存領域１２３内に中間データｍ４を保存させた後、連続した実空き領域が大きくなるように中間データｍ４の保存位置を決定することが、以降のデータ保存処理において効率的に共有保存領域を活用する点について好ましい。そこで、図８に示す動作のように、共有保存領域１２３の上位アドレスから順に、中間データｍ４を保存させるべき実空き領域を判定していく。
【０１１０】
本実施の形態においては、共有保存領域１２３の上位アドレスから下位アドレスの方向に向かって、順次、実空き領域を判定していることとする。まず、実空き領域Ｅ１に着目し、実空き領域Ｅ１と連続する下位の領域としての中間データＭ３は解放予定ではないため、みなし空き領域でも実空き領域でもない。次に、実空き領域Ｅ１の容量は、中間データｍ４の容量よりも大きいため、中間データｍ４を保存可能と判断される。そして実空き領域Ｅ１は、共有保存領域１２３内の先頭の実空き領域であるため、実空き領域Ｅ１が設定保存領域に設定される。
【０１１１】
次に、実空き領域Ｅ２に着目し、実空き領域Ｅ２と連続する下位の領域としてのビットマップデータＢ１は解放予定であり、みなし空き領域と設定されるため、実空き領域Ｅ２とビットマップデータＢ１との加算領域が保存候補領域として設定される。そして実空き領域Ｅ２の容量は、中間データｍ４の容量よりも大きいため、中間データｍ４を保存可能と判断される。また、実空き領域Ｅ２は、共有保存領域１２３内の先頭の実空き領域でない。
【０１１２】
図９（ｃ）は、設定保存領域として設定された実空き領域Ｅ１の容量と、保存候補領域として設定された実空き領域Ｅ２及びビットマップデータＢ１の合計容量とが比較されている状態を示している。図９（ｃ）に示すように、保存候補領域の容量（６０ＭＢ）は設定保存領域の容量（２０ＭＢ）以上であるため、設定保存領域である実空き領域Ｅ１に中間データｍ４が保存されることとなる。
【０１１３】
このように、連続した空き領域が最大となるように領域を選んで中間データを保存させることができ、共有保存領域１２３内にデータが離散的に保存されることを低減することができ、共有保存領域１２３を有効に活用することができる。
【０１１４】
図１０に、ステップＳ３において実行されるビットマップデータ生成処理のフロー図である。図１０に示す動作は、ビットマップデータ生成部１１３によりＣＰＵ１００において実行されるものとする。
【０１１５】
ＣＰＵ１００は、共有保存領域１２３からオブジェクト毎に生成された中間データを読み出し（ステップＳ５１）、読み出された中間データに基づいてビットマップデータを生成する。このオブジェクト毎に生成された中間データに基づいて生されたビットマップデータをバンドビットマップデータという（ステップＳ５２）。
【０１１６】
ＣＰＵ１００は、生成されたバンドビットマップデータを共有保存領域１２３内に保存させ（ステップＳ５３）、生成され保存されたバンドビットマップは、１ページ分のビットマップとして生成されたか否かを判別する（ステップＳ５４）。
【０１１７】
ＣＰＵ１００は、１ページ分のビットマップデータが生成されていないと判別した場合（ステップＳ５４；Ｎｏ）、ステップＳ５１に戻る。
【０１１８】
ＣＰＵ１００は、１ページ分のビットマップデータが生成されたと判別した場合（ステップＳ５４；Ｙｅｓ）、共有保存領域１２３に保存された１ページ分のビットマップデータに対応し生成元となった中間データを消去（解放）させる（ステップＳ５５）。
【０１１９】
ＣＰＵ１００は、中間データを共有保存領域１２３から消去した事象を示す解放信号を発生させ（ステップＳ５６）、本処理を終了する。
【０１２０】
図１１に、ステップＳ４において実行される印刷処理のフロー図を示す。図１１に示す動作は、印刷制御部１１４によりＣＰＵ１００において実行されるものとする。
【０１２１】
ＣＰＵ１００は、共有保存領域１２３から１ページ分のビットマップデータを読み出し、プリント部３０に出力させる（ステップＳ６１）。
【０１２２】
ＣＰＵ１００は、１ページ分のビットマップデータがプリント部３０に出力され、出力されたビットマップデータに応じた画像が記録媒体上に形成されて排出されたか否か、即ち、１ページ分のビットマップデータに応じた印刷処理が完了したか否かを判別する（ステップＳ６２）。
【０１２３】
ＣＰＵ１００は、１ページ分のビットマップデータに応じた印刷処理が完了していないと判別した場合（ステップＳ６２；Ｎｏ）、ステップＳ６１に戻る。
【０１２４】
ＣＰＵ１００は、１ページ分のビットマップデータに応じた印刷処理が完了したと判別した場合（ステップＳ６２；Ｙｅｓ）、共有保存領域１２３に保存されている印刷処理が完了した１ページ分のビットマップデータに対応するビットマップデータを消去（解放）させる（ステップＳ６３）。
【０１２５】
ＣＰＵ１００は、ビットマップデータを共有保存領域１２３から消去した事象を示す解放信号を発生させ（ステップＳ６４）、本処理を終了する。
【０１２６】
図１２に、図４に示した解析処理を適用した場合の共有保存領域１２３の例を示す。
図１２において、共有保存領域の容量を１２０ＭＢと設定し、予め設定されている閾値を６４ＭＢと設定する。
【０１２７】
図１２に示す共有保存領域１２３は、上位アドレス順に、生成が完了した３０ＭＢの３ページ目の中間データＭ３の領域、オブジェクト毎に生成中の４ページ目の中間データＭ４であり１５ＭＢを占める領域、２５ＭＢの実空き領域Ｅ１、生成が完了した２ページ目の２０ＭＢのビットマップデータＢ２の領域、生成が完了した１ページ目の３０ＭＢのビットマップデータＢ１の領域、を有している。
【０１２８】
図１２（ａ）は、ステップＳ１３の保存領域判定処理において、予測空き領域からステップＳ１２において生成された４ページ目のあるオブジェクトの中間データｍ４が減算された容量と閾値とが比較されている状態を示している。図１２（ａ）に示すように、予測空き領域（５５ＭＢ）からステップＳ１２において生成された中間データｍ４（１０ＭＢ）が減算された容量（４５ＭＢ）は、閾値（６４ＭＢ）よりも小さいため、中間データｍ４を保存させるための領域無しと判定される。
【０１２９】
従来は、中間データｍ４を保存させる領域無しと判別された後は、共有保存領域１２３内に保存されているビットマップデータが消去（解放）されるまで、即ち、共有保存領域１２３内の空き領域の有無を判定する機会が１つしかなく、プリント部の不具合等があった場合等は、長時間待機することとなり、スループットの低下を招く要因となっていた。
【０１３０】
図１２（ｂ）及び（ｃ）に、図１２（ａ）の状態後のステップＳ１６後（解放信号待ち状態であった後）、解放信号が発生した状態を示す。本実施の形態において、図１０に示すビットマップデータ生成処理と図１１に示す印刷処理とはマルチタスクで動作されるため、解放信号が発生し中間データを保存可能な領域の有無を判定する機会としては、共有保存領域１２３内に保存されているビットマップデータが消去された機会と、中間データが消去された機会との２つの機会を有することとなる。
【０１３１】
図１２（ｂ）に、図１２（ａ）の状態後のステップＳ１６後（解放信号待ち状態であった後）、プリント部３０が即座に印刷可能な状態であって、ビットマップデータＢ１を共有保存領域１２３から消去した事象を示す解放信号が発生した状態を示している。
【０１３２】
図１２（ｂ）に示すように、ビットマップデータＢ１がプリント部３０に出力されて印刷処理が完了すると、ビットマップデータＢ１が共有保存領域１２３から消去され、ビットマップデータＢ１が占めていた領域が新たな実空き領域Ｅ２となる。そして再度、ステップＳ１３の保存領域判定処理において、予測空き領域（７５ＭＢ）からステップＳ１２において生成された中間データｍ４（１０ＭＢ）が減算された容量（６５ＭＢ）と閾値（６４ＭＢ）とが比較され、中間データｍ４を保存させるための領域の有無が判定されることとなる。
【０１３３】
図１２（ｃ）に、図１２（ａ）の状態後のステップＳ１６後（解放信号待ち状態であった後）、給紙部７０内に記録媒体Ｐが収容されていない場合やトナー無し等のプリント部３０内においてエラーが生じて印刷不可能な状態であって、中間データＭ３を共有保存領域１２３から消去した事象を示す解放信号が発生した状態を示している。
【０１３４】
図１２（ｃ）に示すように、中間データＭ３がラスタライズ処理されてビットマップデータＢ３が生成されると、中間データＭ３が共有保存領域１２３から消去されるため、中間データＭ３が占めていた領域が新たな実空き領域Ｅ２となる。そして再度、ステップＳ１３の保存領域判定処理において、予測空き領域（６０ＭＢ）からステップＳ１２において生成された中間データｍ４（１０ＭＢ）が減算された容量（５０ＭＢ）と閾値（６４ＭＢ）とが比較され、中間データｍ４を保存させるための領域の有無が判定されることとなる。
【０１３５】
このように、本実施の形態によれば、中間データを共有保存領域１２３に保存させる場合、共有保存領域内１２３に予め設定された閾値以上の実空き領域の容量が無い場合であっても、実空き領域に加え消去予定のデータ（中間データ又はビットマップデータ）の領域を空き領域としてみなすことができ、実際に空き領域が発生するまで待機することなく次の処理を実行させることができる。また、連続した空き領域が最大となるように中間データを保存させることができるため、共有保存領域１２３内に中間データやビットマップデータが離散的に保存されることを低減することができ、共有保存領域１２３を有効に活用することができる。従って、共有保存領域１２３の高効率化を図ることができ、スループットの向上を図ることができる。
【０１３６】
更に、共有保存領域１２３に保存されていた中間データが消去された事象が発生したときと、共有保存領域１２３に保存されていたビットマップデータが消去された事象が発生したときと、の２つの機会において中間データを保存させるための領域の有無を判別することができるため、どちらか一方の機会において中間データを保存させるための領域が有りと判別された場合に中間データの保存処理を再開させることができる。従って、中間データを保存可能な領域の有無の判定機会が複数有るため、共有保存領域１２３の高効率化を図ることができ、スループットの向上を図ることができる。
【０１３７】
また、本発明は、上記実施の形態の内容に限定されるものではなく、本発明の主旨を逸脱しない範囲で適宜変更可能である。
【図面の簡単な説明】
【０１３８】
【図１】本実施の形態における画像形成装置１の概略断面構成図である。
【図２】画像形成装置１の制御ブロック図である。
【図３】本実施の形態における印刷時における共有保存領域１２３の制御処理のメインフロー図である。
【図４】ステップＳ２において実行される解析処理のフロー図である。
【図５】ステップＳ１３において実行される保存領域判定処理のフロー図である。
【図６】みなし空き領域として設定される領域がビットマップデータである場合における図５に示す保存領域判定処理を適用した場合の共有保存領域１２３の例である。
【図７】みなし空き領域として設定される領域が中間データである場合における図５に示す保存領域判定処理を適用した場合の共有保存領域１２３の例である。
【図８】ステップＳ１５において実行される保存位置設定処理のフロー図である。
【図９】図５及び８に示す保存領域判定処理及び保存位置設定処理を適用した場合の共有保存領域１２３の例である。
【図１０】ステップＳ３において実行されるビットマップデータ生成処理のフロー図である。
【図１１】ステップＳ４において実行される印刷処理のフロー図である。
【図１２】図４に示した解析処理を適用した場合の共有保存領域１２３の例である。
【符号の説明】
【０１３９】
１  画像形成装置
２  外部装置
１０  制御部
１１  外部ＩＦ
１２  操作表示部
２０  画像読取部
２１  自動原稿送り部
２２  読取部
３０  プリント部
４０（４０Ｙ、４０Ｍ、４０Ｃ、４０Ｋ）  画像形成部
４１Ｙ、４１Ｍ、４１Ｃ、４１Ｋ  感光体ドラム
４２Ｙ、４２Ｍ、４２Ｃ、４２Ｋ  帯電体装置
４３Ｙ、４３Ｍ、４３Ｃ、４３Ｋ  露光装置
４４Ｙ、４４Ｍ、４４Ｃ、４４Ｋ  現像装置
４５Ｙ、４５Ｍ、４５Ｃ、４５Ｋ  一時転写ローラ
４６Ｙ、４６Ｍ、４６Ｃ、４６Ｋ  クリーニング装置
５０  クリーニング部
６０  中間転写ベルト
７０  給紙部
７１、７２、７３  給紙カセット
７４、７５、７６、７７  給紙ローラ
８０  搬送部
８１ａ、８１ｂ、８１ｃ、８１ｄ  中間ローラ
８２  レジストローラ
８３  二次転写ローラ
８４  排紙ローラ
８５  排紙トレイ
９０  定着装置
１００  ＣＰＵ
１１０  ＲＯＭ
１１１  データ受信部
１１２  解析部
１１２ａ  中間データ生成部
１１２ｂ  保存領域判定部
１１２ｃ  保存位置設定部
１１３  ビットマップデータ生成部
１１４  印刷制御部
１２０  ＲＡＭ
１２１  展開領域
１２２  スプール領域
１２３  共有保存領域
Ｐ  記録媒体
Ｔ  手差しトレイ
ＷＰ  原稿
【図１】
2007172506.tif 000003
【図２】
2007172506.tif 000004
【図３】
2007172506.tif 000005
【図４】
2007172506.tif 000006
【図５】
2007172506.tif 000007
【図６】
2007172506.tif 000008
【図７】
2007172506.tif 000009
【図８】
2007172506.tif 000010
【図９】
2007172506.tif 000011
【図１０】
2007172506.tif 000012
【図１１】
2007172506.tif 000013
【図１２】
2007172506.tif 000014