(57)【要約】【課題】画像メモリに関する処理の効率化により画像形成処理の高速化が実現できる画像形成装置を提供する。【解決手段】印刷データを取得し、当該印刷データの解析を実行する解析部（ＰＤＬ言語解析部）と、解析部の解析結果に基づいて印刷データに対応して描画される描画像を保存する画像メモリに対して、メモリ処理として初期化処理、圧縮処理、展開処理のうち少なくとも１つを実行する複数の処理部（画像メモリ処理部）と、解析部の解析結果に基づき描画像に対する処理負担の度合いを示す複雑度を算出して、画像メモリに対してメモリ処理を実行する際に必要な処理時間を推定する推定部（ＰＤＬ言語解析部）と、推定部で推定した処理時間に基づき、複数の処理部（画像メモリ処理部）のうちいずれの処理部でメモリ処理を実行するかを決定する決定部（画像メモリ制御部）と、を備える。【選択図】図２
2016055536.tif 000002
【特許請求の範囲】
【請求項１】
印刷データを取得し、当該印刷データの解析を実行する解析部と、
前記解析部の解析結果に基づいて前記印刷データに対応して描画される描画像を保存する画像メモリに対して、メモリ処理として初期化処理、圧縮処理、展開処理のうち少なくとも１つを実行する複数の処理部と、
前記解析部の解析結果に基づき前記描画像に対する処理負担の度合いを示す複雑度を算出して、前記画像メモリに対して前記メモリ処理を実行する際に必要な処理時間を推定する推定部と、
前記推定部で推定した処理時間に基づき、前記複数の処理部のうちいずれの処理部で前記メモリ処理を実行するかを決定する決定部と、
を備える画像形成装置。
【請求項２】
前記推定部は、前記解析結果に含まれる描画コマンドおよび設定コマンドに基づき前記複雑度を算出する請求項１に記載の画像形成装置。
【請求項３】
前記推定部は、前記画像メモリの領域を所定数の分割領域に分割し、前記分割領域ごとに前記複雑度を算出する請求項１または請求項２に記載の画像形成装置。
【請求項４】
前記推定部は、前記印刷データに基づく印刷時の解像度より低い解像度で描画する予備描画の描画態様の遷移状態に基づいて前記複雑度を算出する請求項１から請求項３のいずれか１項に記載の画像形成装置。
【請求項５】
前記決定部は、操作受付部に処理指定情報が入力された場合、当該処理指定情報と前記処理時間とに基づいて、前記複数の処理部のうちいずれの処理部で前記メモリ処理を実行するか決定する請求項１から請求項４のいずれか１項に記載の画像形成装置。
【請求項６】
印刷データを取得し、当該印刷データの解析を実行する解析処理と、
前記解析処理の解析結果に基づき前記印刷データに対応して描画される描画像に対する処理負担の度合いを示す複雑度を算出し、前記描画像を保存する画像メモリに対して、メモリ処理として初期化処理、圧縮処理、展開処理のうち少なくとも１つを実行する際に必要な処理時間を推定する推定処理と、
前記推定処理で推定した処理時間に基づき、前記メモリ処理を複数の処理部のうちいずれの処理部で実行するかを決定する決定処理と、
前記決定処理で決定した前記処理部に前記メモリ処理を実行させる実行処理と、
をコンピュータに実行させるプログラム。
【請求項７】
印刷データを取得し、当該印刷データの解析を実行し、
前記解析の結果に基づき前記印刷データに対応して描画される描画像に対する処理負担の度合いを示す複雑度を算出し、前記描画像を保存する画像メモリに対して、メモリ処理として初期化処理、圧縮処理、展開処理のうち少なくとも１つを実行する際に必要な処理時間を推定し、
前記推定した処理時間に基づき、前記メモリ処理を複数の処理部のうちいずれの処理部で実行するかを決定し、
前記決定した前記処理部に前記メモリ処理を実行させる、
ことを含む画像形成装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、プログラム、および画像形成装置の制御方法に関する。
【背景技術】
【０００２】
例えばＰＣ（Personal  Computer）上のアプリケーションで作成したテキスト、グラフィック、イメージなどのファイルを印刷する場合、ファイルのレイアウト情報などはプリンタドライバによってＰＤＬ（Page  Description  Language、ページ記述言語）と呼ばれるプリンタ制御言語（ＰＤＬデータ）に変換される。印刷装置（画像形成装置）側では、ＰＤＬデータを解析して中間データとして描画コマンドを生成し、当該描画コマンドにしたがって描画が実行されて画像データが生成され、印刷媒体に印刷が実行される。このような一連の印刷処理において、画像データの生成処理（レンダリング）および画像データの保持等を行う画像メモリに関する処理に、処理時間の多くを費やすことが知られている。つまり、これらの処理を効率的に行うことで印刷性能の向上が期待できる。
【０００３】
例えば、特許文献１に開示された技術の場合、印刷装置にマルチコアＣＰＵを用い、画像形成処理を行う画像形成スレッド１と画像形成スレッド２を他のスレッドに比べ高いプライオリティで起動させている。その結果、画像形成スレッド１と画像形成スレッド２への割り込みを減少させて、画像形成処理を高速化させた印刷装置を提供している。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示される技術の場合、マルチコアＣＰＵを用いることで画像形成処理の高速化を実現している。これとは別に画像メモリに関する処理の効率化を行うことができれば、画像形成処理の高速化および画像形成装置の高速化ができると考えられる。
【０００５】
本発明は、上述の課題に鑑みてなされたものであり、画像メモリに関する処理の効率化により画像形成処理の高速化が実現できる画像形成装置を提供することを目的の１つとする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、印刷データを取得し、当該印刷データの解析を実行する解析部と、前記解析部の解析結果に基づいて前記印刷データに対応して描画される描画像を保存する画像メモリに対して、メモリ処理として初期化処理、圧縮処理、展開処理のうち少なくとも１つを実行する複数の処理部と、前記解析部の解析結果に基づき前記描画像に対する処理負担の度合いを示す複雑度を算出して、前記画像メモリに対して前記メモリ処理を実行する際に必要な処理時間を推定する推定部と、前記推定部で推定した処理時間に基づき、前記複数の処理部のうちいずれの処理部で前記メモリ処理を実行するかを決定する決定部と、を備える画像形成装置である。
【発明の効果】
【０００７】
本発明によれば、画像メモリに関する処理の効率化により画像形成装置における画像形成処理の高速化ができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係る画像形成装置のハードウエア構成を説明する説明図である。
【図２】図２は、実施形態に係る画像形成装置のコントローラのソフトウエアブロック図である。
【図３】図３は、実施形態に係る画像形成装置の画像形成処理を説明するフローチャートである。
【図４】図４は、実施形態に係る画像形成装置の画像形成処理におけるＰＤＬ解析処理の詳細を説明するフローチャートである。
【図５】図５は、実施形態に係る画像形成装置の画像形成処理における画像メモリの初期化時間を示す複雑度テーブルの一例を説明する説明図である。
【図６】図６は、実施形態に係る画像形成装置の画像形成処理における複雑度の算出処理の詳細を説明するフローチャートである。
【図７】図７は、実施形態に係る画像形成装置の画像形成処理における複雑度を色値の切替り遷移に基づいて算出する場合を説明する説明図である。
【図８】図８は、実施形態に係る画像形成装置の画像形成処理において、単色描画の場合の複雑度を算出する場合の説明図である。
【図９】図９は、実施形態に係る画像形成装置の画像形成処理において、画像メモリの領域を複数の分割領域に分割して複雑度を算出する場合の説明図である。
【図１０】図１０は、図９に示す分割領域を用いる場合の複雑度の算出処理を説明するフローチャートである。
【図１１】図１１は、実施形態に係る画像形成装置の画像形成処理において、低解像度の描画を用いて複雑度を算出する場合の説明図である。
【図１２】図１２は、図１１に示す低解像度の描画を用いる場合に複雑度の算出処理を説明するフローチャートである。
【図１３】図１３は、比較例として本実施形態を適用しない場合の画像形成処理のタイミングチャートである。
【図１４】図１４は、本実施形態を適用する場合の画像形成処理のタイミングチャートである。
【図１５】図１５は、実施形態に係る画像形成装置における優先モードの選択例を示す説明図である。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、画像形成装置、プログラム、および画像形成装置の制御方法の実施形態を詳細に説明する。
【００１０】
本実施形態において、画像形成装置は、例えばホストコンピュータ（ホストＰＣ）等から提供される印刷データ（以下、ＰＤＬデータという）を取得し、当該ＰＤＬデータの解析を実行する解析部を備える。また、本実施形態の画像形成装置は複数の処理部を有する。この処理部は、解析部の解析結果に基づいてＰＤＬデータに対応して描画される描画像を保存する画像メモリに対して、メモリ処理として初期化処理、圧縮処理、展開処理のうち少なくとも１つを実行する。また、メモリ処理を実行する処理部の選択に必要な処理時間を、描画像に対する処理負担の度合いを示す複雑度に基づいて推定する推定部を備える。そして、推定部で推定した処理時間に基づき、複数の処理部のうちいずれの処理部でメモリ処理を実行するかを決定する決定部を備える。決定部は、現在、メモリ処理を実行してる処理部に割り当てられている処理時間と、今後いずれかの処理部で実行されるメモリ処理で割り当てられる処理時間を考慮して、メモリ処理を実行する処理部を決定する。このように、処理状況に応じてメモリ処理を実行する処理部を決定することによって、例えば、処理待ち時間の発生を抑制した効率的なメモリ処理が実行可能となり画像形成処理の高速化、印刷処理時間の短縮化が実現できる。
【００１１】
図１は、本実施形態に係る画像形成装置１０のハードウエア構成を説明する説明図である。なお、図１は、本実施形態の画像メモリに対するメモリ処理を説明するために必要な構成を主として示し、画像形成装置の他の機能に関する構成は、簡略化または省略している。
【００１２】
画像形成装置１０は、例えば複写機、プリンター、イメージスキャナ、ファクシミリ等の機能を1つの筐体に収めた、デジタル複合機（ＭＦＰ；MultiFunction  Printer/Product/Peripheral）とすることができる。画像形成装置１０は、例えばホストコンピュータ１２（ホストＰＣ１２）上のアプリケーションで作成したテキスト、グラフィック、イメージなどのファイルを印刷する。画像形成装置１０には、ホストＰＣ１２からＰＤＬ（Page  Description  Language；ページ記述言語）形式の印刷データ（ＰＤＬデータ）が提供される。ＰＤＬデータは、ファイルのレイアウト情報などがプリンタドライバによって変換されたものである。
【００１３】
画像形成装置１０は、コントローラ１４、パネル装置１６およびプリンタエンジン１８を含んで構成される。
【００１４】
コントローラ１４は、その動作時点に設定されている動作モードおよびネットワークＩ／Ｆを介して接続されたホストＰＣ１２等から提供されるＰＤＬデータに従って印刷処理を実行する。画像形成装置１０は、ホストＰＣ１２からのＰＤＬデータを画像データ（ビットマップデータ）に変換（レンダリング）しプリンタエンジン１８へ出力する。なお、コントローラ１４は、さらに後述する各種モジュールで構成される。
【００１５】
パネル装置１６は、画像形成装置１０の状態を示す液晶パネル等を用いた表示部と、ユーザが画像形成装置１０の動作モードやフォント等の切替えやパスワードの入力等を行うためのタッチパネル等を用いた入力部とから構成される。
【００１６】
プリンタエンジン１８は、プロセスカートリッジを備える。プロセスカートリッジは、感光体を内蔵すると共に、帯電部、露光部、現像部、転写部、クリーニング部、除電部等を含む一体化部品であり、画像形成装置１０に対し着脱可能となっている。プリンタエンジン１８は、ホストＰＣ１２からの制御信号および画像データに従ってプロセスカートリッジの感光体上に静電潜像を生成して、それを現像する。さらに給紙部より転写紙を給紙して、現像した画像をこの転写紙に転写および定着することにより、転写紙上に画像を形成する。なお、プリンタエンジン１８は、プロセスカートリッジではなく、トナーカートリッジを用いる構成とすることもできる。その場合、感光体、帯電部、露光部、現像部、転写部、クリーニング部、除電部等は、トナーカートリッジとは別の部品としてプリンタエンジン１８が備える。
【００１７】
次に、画像形成装置１０のコントローラ１４に含まれる各種モジュールについて説明する。コントローラ１４は、ＣＰＵ２０、ＲＯＭ２２、ＲＡＭ２４、ＮＶＲＡＭ２６、ＨＤＤ２８、ＡＳＩＣ３０、ネットワークＩ／Ｆ３２、エンジンＩ／Ｆ３４、パネルＩ／Ｆ３６等を含む。
【００１８】
ＣＰＵ２０は、ＲＯＭ２２に格納された制御プログラムに従ってホストＰＣ１２等から提供されるＰＤＬデータを処理する。
【００１９】
ＲＯＭ２２は、ＣＰＵ２０が、コントローラ１４内で実行するデータの管理や周辺モジュールを統括的に制御するための制御プログラム（ソフトウエア）を格納する。
【００２０】
ＲＡＭ２４は、ＣＰＵ２０が制御プログラムにしたがって作成するページメモリやソフトウエアが動作するために必要なワークメモリ等として使用される。例えばＲＡＭ２４は、ホストＰＣ１２等からのＰＤＬデータを解析してページ単位に管理して一時記憶する中間データメモリとして使用される。またＲＡＭ２４は中間データから変換された画像データ（印字パターン等）を記憶するビットマップメモリ（画像メモリ、展開メモリ）としても使用される。
【００２１】
ＮＶＲＡＭ２６は、電源を切っても保持したいデータ、例えば、印刷制御に用いられる、パネル装置１６を介して設定された所定の設定値や所定の印刷条件情報等の情報を格納しておくための不揮発性ＲＡＭである。
【００２２】
ＨＤＤ２８は、不揮発性記憶手段としての磁気ディスク等のハードディスクであり、ホストＰＣ１２等からのＰＤＬデータの蓄積やＰＤＬデータから変換された画像データ（ビットマップデータ）の蓄積に使用できる。またＨＤＤ２８は、それらのデータの保存のため、または一時記憶のためのバッファやワーク用領域等として、様々な用途で使用される。また、ＨＤＤ２８は印字に使用されるさまざまな種類のフォントデータの格納に使用されてもよい。
【００２３】
ＡＳＩＣ（application  specific  integrated  circuit）３０は電子部品の種別の1つで、特定の用途向けに複数機能の回路を１つにまとめた集積回路であり、例えば画像メモリの圧縮、展開、初期化等の処理を実行する処理部として機能する。なお、本実施形態の画像形成装置１０の場合、ＣＰＵ２０もＡＳＩＣ３０と同様な画像メモリの圧縮、展開、初期化等を実行する処理部として機能することができる。
【００２４】
ネットワークＩ／Ｆ３２は、ホストＰＣ１２から画像形成装置１０への印刷ジョブとして送られるＰＤＬデータ（印字制御データおよび印字データを含む）およびホストＰＣ１２から画像形成装置１０へのステータス信号を送受信するためのインタフェースである。
【００２５】
エンジンＩ／Ｆ３４は、コントローラ１４からプリンタエンジン１８への制御信号およびプリンタエンジン１８からコントローラ１４へのステータス信号のやりとりをするためのインタフェースである。
【００２６】
パネルＩ／Ｆ３６は、パネル装置１６を介してユーザが画像形成装置１０の状態表示の切替えや動作モードおよびフォント等の切替え等を行えるように、コントローラ１４がパネル装置１６との間で信号のやりとりをするためのインタフェースである。
【００２７】
このように構成される画像形成装置１０において、ネットワークＩ／Ｆ３２を通してホストＰＣ１２から送られてきたＰＤＬデータは、ＣＰＵ２０により解析されて中間データが生成される。そして、中間データは、それぞれ画像データ（ビットマップデータ）および画像形成装置１０内部で使用される制御コードに変換されてＨＤＤ２８またはＲＡＭ２４に記憶される。コントローラ１４は、ＰＤＬデータから生成した中間データを画像データに変換する。それが終了すると、エンジンＩ／Ｆ３４を通してプリンタエンジン１８にプリントスタートの命令を出す。そして、この命令に応じてプリンタエンジン１８が印刷を開始する。
【００２８】
図２は、画像形成装置１０において、ＰＤＬデータの処理を実現するコントローラ１４のソフトウエアブロック図である。図２に示されるＰＤＬ言語解析部３８、中間データ制御部４０、描画部４２、画像メモリ制御部４４、画像メモリ処理部４６ａは、ＣＰＵ２０がＲＯＭ２２に記憶された制御プログラムを読み出すことで実現する処理モジュールである。また、画像メモリ処理部４６ｂは、ＣＰＵ２０がＲＯＭ２２に記憶された制御プログラムを読み出すことでＡＳＩＣ３０上で実現する処理モジュールである。また、中間データメモリ４８および画像メモリ５０は、ＲＡＭ２４またはＨＤＤ２８上に確保される保存領域である。なお、図２に示された１つのブロックを複数のブロックによって実現してもよいし、図２に示された複数のブロックを１つのブロックとして実現してもよい。また、これらの一部または全部をハードウエアとして実現してもよい。
【００２９】
ＰＤＬ言語解析部３８は、ホストＰＣ１２等から受信したＰＤＬデータの言語解析を行う。この場合、ＰＤＬ言語解析部３８はＰＤＬデータの解析結果に基づき描画する画像データ（描画像）を一時的に保持する画像メモリに対し、画像メモリ処理部４６が実行するメモリ処理にどの程度の処理時間が必要になるかを推定する（見積もる）。つまり、ＰＤＬ言語解析部３８は、解析処置と共に推定処理を実行する推定部としても機能する。なお、画像メモリ処理部４６が実行するメモリ処理は、例えば初期化処理、圧縮処理、展開処理が含まれる。初期化処理は、ＲＡＭ２４上の画像メモリを初期化する。また、圧縮処理は、画像メモリに書き込まれたデータをＨＤＤ２８等の記憶媒体に保存または一時的に保存するために、容量を圧縮する処理である。また、展開処理は、ＨＤＤ２８等に圧縮保存されたデータをＲＡＭ２４の画像メモリ上で展開する処理である。
【００３０】
中間データ制御部４０は、ＰＤＬ言語解析部３８の解析結果から中間データを作成し、ＲＡＭ２４上の中間データメモリに保存する。描画部４２は、中間データメモリから中間データを読み出し、その中間データの内容に従って描画する先となる画像メモリを取得するために、画像メモリ制御部４４に対して取得要求を実行する。また描画部４２は、取得された画像メモリに、中間データに基づく描画（レンダリング）を実行する。画像メモリ制御部４４は、描画部４２からのメモリ取得要求に対し、ＲＡＭ２４上に画像メモリを確保する。そして、確保した画像メモリに対して、そのときの処理状態に対応して必要となるメモリ処理（初期化処理、圧縮処理、展開処理のいずれか）を実行する画像メモリ処理部４６（４６ａ，４６ｂ）を選択し、選択した画像メモリ処理部４６に対してメモリ処理を要求する。すなわち、画像メモリ制御部４４は、ＰＤＬ言語解析部３８で推定した処理時間に基づき、複数の画像メモリ処理部４６のうちいずれの画像メモリ処理部４６でメモリ処理を実行するかを決定する決定部として機能する。
【００３１】
本実施形態の場合、画像メモリ処理部４６は、例えばＣＰＵ２０が処理を実行することにより実現される画像メモリ処理部４６ａと、ＡＳＩＣ３０が処理を実行することにより実現される画像メモリ処理部４６ｂとが存在する。なお、画像メモリ処理部４６ａと画像メモリ処理部４６ｂは、実質的に同じ機能を実現するので、説明上特に区別を必要としない場合には、「画像メモリ処理部４６」と表記する。画像メモリ処理部４６は、画像メモリ制御部４４からの処理要求に対して、そのときの処理状態に対応して必要となる初期化処理、圧縮処理、展開処理のいずれか一つを実行する。画像メモリ制御部４４は、要求されているメモリ処理に関して、画像メモリ処理部４６ａと画像メモリ処理部４６ｂのいずれを選択するか決定する。ＣＰＵ２０で実現される画像メモリ処理部４６ａとＡＳＩＣ３０で実現される画像メモリ処理部４６ｂとは、処理速度等性能的の同じでもよし、一方は他方より高速処理が可能であるとしてもよい。処理速度等の性能が異なる場合、その性能の違いも処理時間を推定する場合にパラメータとして利用する。画像メモリ処理部４６は、例えば、ページ先頭の描画を行うためにメモリ取得要求が行われている場合、ＲＡＭ２４上の画像メモリからメモリ領域を確保し、初期化処理を行った後で初期化処理の完了を画像メモリ制御部４４に通知する。ところで、一度描画した画像メモリに対して再度描画を実行（再描画）する状況が生じる場合がある。この状況を考慮すると、画像メモリは１ページ分の画像データを保持することが望ましいが、メモリ領域を確保するために、画像メモリの画像データを圧縮処理しＨＤＤ２８やＲＡＭ２４の他のワークエリアに一時的に保持する。そして、次回以降の処理で、画像メモリ制御部４４がメモリ取得要求を受け付けると、ＨＤＤ２８等に保持されている圧縮済みの画像データを画像メモリ上に展開して、その展開完了結果を画像メモリ制御部４４に通知する。
【００３２】
プリンタエンジン１８は、画像メモリ５０上で描画が完了した1ページ分の画像データを受け取り、印刷を実行する。
【００３３】
上述のように構成される画像形成装置１０にホストＰＣ１２からＰＤＬデータが入力された場合の印刷処理の手順を図３のフローチャートに基づいて説明する。
【００３４】
ＰＤＬ言語解析部３８は、画像形成装置１０（プリンタ）に入力されたＰＤＬデータの言語解析を行う（Ｓ１００）。入力されるＰＤＬデータはＰＤＬコマンドの集合体であり、１コマンドずつ言語解析を行う。ＰＤＬの言語解析の詳細を図４に示す。ＰＤＬ言語解析部３８は、まず、入力されたＰＤＬデータのコマンド行が終端か否かを確認する（Ｓ２００）。もし、終端の場合は（Ｓ２００のＹｅｓ）、ＰＤＬ言語解析部３８は、入力されたＰＤＬデータの解析が完了していると判断し、この処理を一旦終了する。一方、入力されたＰＤＬデータのコマンド行が終端ではない場合（Ｓ２００のＮｏ）、ＰＤＬ言語解析部３８は、順次コマンドの解析を実行する（Ｓ２０２）。ＰＤＬ言語解析部３８は解析の際に、コマンドの種類やパラメータに応じてコマンドごとの複雑度を算出する（Ｓ２０４）。複雑度とは、ＰＤＬデータに対応する画像データ（描画像）を描画する画像メモリに対して、初期化処理、圧縮処理、展開処理のいずれか一つの処理を施す場合の処理の負荷を示す指標であり、例えば処理に必要な処理時間を推定するために用いる。複雑度は、例えば、値が大きいほど、処理の負荷が大きいことを示す。以下では、これを例にして説明する。ただし、これに限定されるものではない。なお、複雑度の算出手法の詳細については後述する。コマンドの複雑度の算出が完了すると、中間データ制御部４０は、ＰＤＬデータから生成した中間データとコマンドごとに算出した複雑度とを中間データメモリ４８に保存する（Ｓ２０６）。
【００３５】
図３に戻り、中間データ制御部４０は、保存した中間データで中間データメモリ４８が満杯になったか、またはＰＤＬデータの処理が終了（例えば１ページ分の処理が終了）したか否かの判定を行う（Ｓ１０２）。ＰＤＬデータは、印刷内容によって中間データの量が変動するため、例えば１ページ分の中間データが有限の中間データメモリ４８に収まらない場合もある。逆に中間データメモリ４８の容量に余裕がある状態で、画像形成装置１０に入力されたＰＤＬデータの処理が完了する場合がある。したがって、ＰＤＬデータの解析（中間データへの変換）は、中間データメモリ４８を効率的に利用するように中間データメモリ４８が満杯になるか、ＰＤＬデータの解析が完了するまでＳ１００の処理を継続する（Ｓ１０２のＮｏ）。中間データメモリ４８が満杯になったか、ＰＤＬデータの解析が完了した場合（Ｓ１０２のＹｅｓ）、描画部４２は、中間データメモリ４８に保存された中間データを用いた描画処理を実行するために、画像メモリ制御部４４に対して画像メモリ５０の取得要求をする。取得要求を受け付けると、画像メモリ制御部４４は、現在処理の対象になっている中間データが、入力されたＰＤＬデータのページ先頭部分を含む処理か否か判定する（Ｓ１０４）。もし、ページ先頭を含む処理の場合（Ｓ１０４のＹｅｓ）、つまり入力されたＰＤＬデータを用いて初めて描画（レンダリング）を行う場合は、画像メモリ５０の初期化処理が必要であり、画像メモリ制御部４４は、画像メモリ５０を初期化処理するための画像メモリ処理部４６を選択する（Ｓ１０６）。例えば、画像メモリ制御部４４は、ＣＰＵ２０が処理を実行することにより実現される画像メモリ処理部４６ａにより初期化処理を行うか、ＡＳＩＣ３０が処理を実行することにより実現される画像メモリ処理部４６ｂにより初期化処理を行うか決定する。画像メモリ処理部４６ａを選択するか画像メモリ処理部４６ｂを選択するかは、Ｓ１００でＰＤＬデータの言語解析時に算出した複雑度を参照して行うことができる。ここで、初期化する対象の画像メモリ５０の使用容量が少ないほど、また、初期化処理を実行する画像メモリ処理部４６の性能が高いほど初期化処理時間が短くなる。したがって、初期化処理に必要な処理時間と現在の画像メモリ処理部４６ａと画像メモリ処理部４６ｂとの動作状態とを比較して、効率よく処理できる画像メモリ処理部４６ａまたは画像メモリ処理部４６ｂのいずれを選択するか決定する。なお、画像メモリ５０の初期化処理に関して、その処理時間は、画像メモリ処理部４６の性能によって決めることができるので、複雑度を固定値として保持してもよい。例えば図５に示すような、用紙サイズや解像度、ビット深度、印刷に使用するカラーの種類等に対応する画像メモリ処理部４６ａ（ＣＰＵ）と画像メモリ処理部４６ｂ（ＡＣＩＳ）の処理時間を推定する際に用いる複雑度テーブルを複数種類保持しておく。そして、画像形成装置１０における処理内容（初期化する内容で定まる複雑度）と現在の画像メモリ処理部４６ａ（ＣＰＵ）および画像メモリ処理部４６ｂ（ＡＳＩＣ）の負荷状態（動作状態）に応じて、いずれの画像メモリ処理部４６を選択するか決定するようにしてもよい。そして、画像メモリ処理部４６の選択が完了すると、その選択された画像メモリ処理部４６は画像メモリ５０の初期化処理を行う（Ｓ１０８）。
【００３６】
画像メモリ５０の初期化処理が完了すると、描画部４２は、中間データメモリ４８から中間データを読み出して、当該中間データにしたがって初期化された画像メモリ５０に描画（レンダリング）を行う（Ｓ１１０）。
【００３７】
中間データメモリ４８に保存されている中間データに対応する描画が完了すると、描画部４２は画像メモリ制御部４４に描画完了を通知する。通知を受けた画像メモリ制御部４４は、現在描画されている画像データを一時的にＨＤＤ２８やＲＡＭ２４等の他のワークエリアに圧縮して退避させるために、画像メモリ５０の圧縮処理を行う画像メモリ処理部４６を選択する（Ｓ１１２）。この場合も画像メモリ制御部４４は、Ｓ１００のＰＤＬデータの言語解析時に算出した複雑度（Ｓ２０４で算出した複雑度）と、現在の画像メモリ処理部４６ａ（ＣＰＵ）および画像メモリ処理部４６ｂ（ＡＳＩＣ）の負荷状態（動作状態）を参照する。そして、画像メモリ制御部４４は、画像メモリ処理部４６ａ（ＣＰＵ）を用いた場合の処理時間と画像メモリ処理部４６ｂ（ＡＳＩＣ）を用いた場合の処理時間を推定して、いずれの画像メモリ処理部４６で処理することが効率的かを判断する。その判断結果に基づき、画像メモリ制御部４４は、画像メモリ処理部４６の選択を実行する。なお、圧縮処理の場合、画像メモリ５０に保持されている画像データの複雑度が高いほど圧縮処理に時間がかかる。したがって、画像メモリ制御部４４は、画像データの圧縮内容から算出される複雑度と現在に画像メモリ処理部４６ａと画像メモリ処理部４６ｂとの動作状態とに基づき、圧縮処理に必要な処理時間を推定し比較することで、いずれの画像メモリ処理部４６を選択するかを決定する。そして、選択された画像メモリ処理部４６は、画像メモリ５０内の画像データの圧縮処理を実行すると共に、ＨＤＤ２８等に圧縮した画像データを一時保存する（Ｓ１１４）。
【００３８】
なお、Ｓ１０４において、ページ先頭を含む処理ではない場合（Ｓ１０４のＮｏ）は、画像メモリ制御部４４は、既にＨＤＤ２８等に圧縮保存されている画像データを展開処理するための画像メモリ処理部４６を選択する（Ｓ１１６）。この場合、今回の画像処理において、画像形成装置１０（プリンタ）に入力されたＰＤＬデータに対して既にＳ１０４のＹｅｓの処理が実行されて画像メモリ５０の初期化が一度行われていることを示す。この場合、画像メモリ制御部４４は、関連する画像データをＨＤＤ２８から呼び出して、展開する処理を実行させる。例えば、既に解析処理されたＰＤＬデータ（中間データ）に基づき描画されて圧縮保存されている画像データに、次の解析処理で処理されたＰＤＬデータ（中間データ）に基づき描画する画像データを重畳させる場合である。また、既に解析処理されたＰＤＬデータ（中間データ）に基づき描画されて圧縮保存されている画像データに続けて、次の解析処理で処理されたＰＤＬデータ（中間データ）に基づき描画する画像データをつなげる場合である。この場合も画像メモリ制御部４４は、そのときのＣＰＵ２０やＡＳＩＣ３０処置状態や展開する画像データの複雑度にしたがって、画像メモリ処理部４６ａ（ＣＰＵ）と画像メモリ処理部４６ｂ（ＡＳＩＣ）とにおける展開処理時間を推定して、いずれの画像メモリ処理部４６を利用するか選択する。そして、選択された画像メモリ処理部４６は、ＨＤＤ２８等に圧縮保存されている対象となる画像データを画像メモリ５０に展開して（Ｓ１１８）、Ｓ１１０以降の処理を実行する。なお、ＨＤＤ２８等に十分な利用可能領域が存在する場合は、圧縮処理を省略し保存するようにしてもよい。この場合、上述した展開処理も省略することができる。
【００３９】
そして、対象ページのＰＤＬデータの処理が完了した場合（Ｓ１２０のＹｅｓ）、画像メモリ制御部４４は、画像メモリ５０上の画像データをプリンタエンジン１８に提供して、当該プリンタエンジン１８が印刷を開始する（Ｓ１２２）。一方、Ｓ１２０において、対象ページのＰＤＬデータの処理が完了していない場合（Ｓ１２０のＮｏ）、つまり、未解析のＰＤＬデータが残っている場合、中間データ制御部４０は、中間データメモリ４８をクリアする（Ｓ１２４）。この場合、中間データメモリ４８の初期化処理は、ＣＰＵ２０によって実行することができる。そして、Ｓ１００に戻り、未解析のＰＤＬデータの解析を実行してＳ１００以降の処理を切り返す。つまり、Ｓ１２４でクリアした中間データメモリ４８に新たに解析したＰＤＬデータ（中間データ）を保存して、レンダリング等の後続の処理を実行する。
【００４０】
図６に示すフローチャートを用いて、図４のＳ２０４のコマンドの複雑度の算出について詳細に説明する。
【００４１】
まず、ＰＤＬ言語解析部３８は、解析対象のＰＤＬデータのＰＤＬコマンドが描画コマンドではない場合（Ｓ３００のＮｏ）、つまりイメージ描画コマンド、文字描画コマンド、グラフィック描画コマンドではない場合、このフローを一旦終了する。この場合、そのＰＤＬコマンドは、例えば色の設定やＲＯＰ（Raster  Operation）の設定コマンド等であり、描画が発生しないため複雑度の算出は実行しない。一方、ＰＤＬ言語解析部３８は、Ｓ３００で解析対象のＰＤＬデータのＰＤＬコマンドが描画コマンドである場合で（Ｓ３００のＹｅｓ）、それがイメージ描画コマンドの場合（Ｓ３０２のＹｅｓ）、複数の色値が混在しており、描画後に圧縮処理や展開処理（図３参照）を実行する場合に処理時間が増大すると見なす。そのため、ＰＤＬ言語解析部３８は、複雑度をその面積や色の切り替わりの回数（色の遷移状態）などから算出する。まず、ＰＤＬ言語解析部３８は、図４のＳ２０２で解析を行ったコマンドに基づく処理で描画される面積を算出する（Ｓ３０４）。例えば、図７の左図で示すような描画を行う場合、イメージ描画コマンドに基づき描画結果の縦Ｈ×横Ｗから、描画面積を算出する。続いて、ＰＤＬ言語解析部３８は、描画面積に対応する描画における描画色の切り替わり回数を算出する（Ｓ３０６）。描画色の切り替わり回数を算出する場合のイメージを図７の右図に示す。例えば、ある領域に着目した場合、その領域を構成する画素の描画色が分かる。図７の場合、着目した領域の１段目は、描画色が４回切り替わっている。また２段目、３段目は描画色が５回切り替わっている。図７の場合、イメージとして部分的な領域に対して色の切り替わり回数を検出する例が示されているが、切り替わり回数の検出は、Ｓ３０４で算出した描画面積全体に対して行う。そして、複雑度＝Ａ×面積＋Ｂ×切り替わり回数で算出する（Ｓ３０８）。ここで、ＡおよびＢは、複雑度の重み付けを行う係数であり、例えば複数回の検証に基づき適宜決定することが望ましい。
【００４２】
また、Ｓ３０２において、描画コマンドがイメージ描画コマンドではない場合（Ｓ３０２のＮｏ）、例えば描画コマンドが文字描画コマンドやグラフィック描画コマンドの場合は、単色の描画であると見なすことができる。そのため、文字描画コマンドやグラフィック描画コマンド等の単色描画の場合は、描画の内容、例えばグラフィックの座標点や文字コード等から描画面積を推定して（Ｓ３１０）、複雑度を算出する（Ｓ３０８）。図８に文字描画コマンドの複雑度の算出イメージを示す。例えば、「あ」を描画する場合、描画する「あ」というオブジェクト全体を含む境界線（バウンディングボックス５２）を描画面積として求める。そして、複雑度＝Ｃ×バウンディングボックスの面積＋Ｄ×文字コード値で算出する（Ｓ３０８）。この場合、ＣおよびＤは、複雑度の重み付けを行う係数であり、例えば複数回の検証に基づき適宜決定することが望ましい。また、文字コード値は、文字コードごとの複雑度の値で、「あ」、「い」、「う」等それぞれに定められた値である。
【００４３】
図９は、画像形成装置１０の画像形成処理において、文字描画コマンドやグラフィック描画コマンド等の単色描画の場合の複雑度の他の算出処理を説明する図であり、画像メモリ５０の領域を複数の分割領域に分割して複雑度を算出する場合の説明図である。例えば、圧縮処理や展開処理を実行する場合、画像メモリ５０の走査方向に処理することが多い。そこで、図９に示すように、画像メモリ５０の使用領域を短冊状の分割領域（バンド）に分割する。図９の場合、文字描画コマンドやグラフィック描画コマンドを含む描画コマンドに基づき描画結果の描画面積を４分割して、第１バンド５４ａ、第２バンド５４ｂ、第３バンド５４ｃ、第４バンド５４ｄとする例である。分割領域の分割数は描画内容等に応じて適宜決定可能である。例えば、描画コマンドの数に応じて分割数を決定するようにしてもよい。また、分割領域の幅は均等でも不均等でもよい。そして、各バンドに描画コマンドがあるか否かおよびその描画コマンドの種類によって複雑度を算出する。つまり、バンドに含まれる描画コマンドが多いほどまた、その描画内容が複雑である程、画像メモリ５０の描画状態が複雑であり、処理時間が長くなると推定できる。例えば、図９において、第１バンド５４ａは、文字描画コマンドに基づく「あ」およびグラフィック描画コマンドに基づく「円（一部）」が存在する。つまり複雑度は、この２つの描画コマンドの影響を受ける。また、第２バンド５４ｂは、グラフィック描画コマンドに基づく「円（一部）」および文字描画コマンドに基づく「Ａ（一部）」が存在する。つまり複雑度は、この２つの描画コマンドの影響を受ける。第３バンド５４ｃは、文字描画コマンドに基づく「Ａ（一部）」が存在する。つまり複雑度は、この描画コマンド（「Ａ（一部）」）の影響を受ける。一方、第４バンド５４ｄには、描画コマンドが存在しないため、複雑度は「０」となる。そして各バンドの複雑度を合算することで、処理対象のＰＤＬデータの解析時における複雑度を算出する。
【００４４】
図１０は、図９に示す分割領域を用いる場合の複雑度の算出処理を説明するフローチャートである。ＰＤＬ言語解析部３８は、解析対象のＰＤＬデータのＰＤＬコマンドが描画コマンドではない場合（Ｓ４００のＮｏ）、つまりイメージ描画コマンド、文字描画コマンド、グラフィック描画コマンドではない場合、このフローを一旦終了する。この場合、そのＰＤＬコマンドは、例えば色の設定やＲＯＰ（Raster  Operation）の設定コマンドであると見なし、描画が発生しないため複雑度の算出は実行しない。一方、ＰＤＬ言語解析部３８は、Ｓ４００で解析対象のＰＤＬデータのＰＤＬコマンドが描画コマンドである場合（Ｓ４００のＹｅｓ）、描画コマンドに基づき描画結果の描画面積を図９に示すように複数の分割領域（バンド）に分割する（Ｓ４０２）。そして、各バンドにおける複雑度を図９で説明したように算出し、各バンドの複雑度を合算することによって解析対象のＰＤＬデータの複雑度を算出する（Ｓ４０４）。なお、図９の例では、イメージ描画コマンドを含んでいない例を示したが、イメージ描画コマンドを含む場合は、図６、図７で説明したように描画色に切り替わり回数等に基づいて、イメージ描画コマンドを含むバンドの複雑度を算出すようにしてもよい。
【００４５】
ところで、上述した各複雑度の算出の例では、実際に描画する場合の複雑度を算出（推定）したが、他の複雑度の算出例として、印刷時の解像度より低解像度で描画する予備描画を実行して、その予備描画の結果に基づいて複雑度を算出（推定）するようにしてもよい。図１１において、左図は、印刷時の解像度に対応する描画イメージを示すものである。一方、図１１において、右図は、左図の描画イメージを低解像度で表現した場合の低解像度描画イメージである。そして、ＰＤＬ言語解析部３８は、低解像度で描画する場合の複雑度を図６、図７で説明した例と同様に、描画面積と描画色の切り替わり回数（色の遷移状態）に基づいて、簡易的な複雑度を算出する。この場合、描画色の切り替わり回数の算出負荷が低くなるため、算出時間の短縮に寄与できる。
【００４６】
図１２は、図１１に示す低解像度描画を用いた場合の複雑度の算出処理を説明するフローチャートである。ＰＤＬ言語解析部３８は、解析対象のＰＤＬデータのＰＤＬコマンドが描画コマンドではない場合（Ｓ５００のＮｏ）、つまりイメージ描画コマンド、文字描画コマンド、グラフィック描画コマンドではない場合、このフローを一旦終了する。この場合、そのＰＤＬコマンドは、例えば色の設定やＲＯＰ（Raster  Operation）の設定コマンドの場合、描画が発生しないため複雑度の算出は実行しない。一方、ＰＤＬ言語解析部３８は、Ｓ５００で解析対象のＰＤＬデータのＰＤＬコマンドが描画コマンドである場合（Ｓ５００のＹｅｓ）、ＰＤＬ言語解析部３８は、図４のＳ２０２で解析を行ったコマンドに基づく処理で低解像度の描画を実行する（Ｓ５０２）。この場合、低解像度化率をどの程度に設定するかは、低解像度化しない場合と低解像度化した場合で画像メモリ処理部４６の選択状況を種々の低解像度化率で比較し、選択に違いが生じない値とすることが望ましい。低解像度化率が高い程、複雑度の算出負荷が軽減され、印刷処理時間の短縮に寄与できる。
【００４７】
低解像度での描画は、解析対象のＰＤＬデータのＰＤＬコマンドが最終コマンドに到達するまで継続される（Ｓ５０４のＮｏ）。一方、低解像度での描画が、解析対象のＰＤＬデータのＰＤＬコマンドが最終コマンド等に到達した場合（Ｓ５０４のＹｅｓ）、図６、図７で説明した処理と同様の処理により低解像度描画における描画面積と描画色の切り替わり回数に基づく複雑度を算出する（Ｓ５０６）。この低解像度描画における複雑度を画像メモリ処理部４６の選択時に用いる複雑度として利用する。図１１の場合、描画コマンドがイメージ描画コマンドの場合を説明したが、描画コマンドが文字描画コマンド、グラフィック描画コマンドの場合でも低解像度描画することで、複雑度を簡易的に算出することが可能となり、同様な効果を得ることができる。
【００４８】
以上説明したように、解析対象のＰＤＬデータのＰＤＬコマンドの複雑度を算出して、そのときの処理状況に適した画像メモリ処理部４６の選択を行うことで印刷時間の短縮が可能になることを図１３の例と図１４の例を比較しながら説明する。なお、図１３は、本実施形態における複雑度を用いた画像メモリ処理部４６の選択処理を実施せずに、画像メモリ５０の処理を予め定められた処理部によって実行する場合である。一方、図１４は、本実施形態における複雑度を用いて、最適な画像メモリ処理部４６を選択して画像メモリ５０の処理を実行する場合である。なお、ＰＤＬ言語解析部３８に提供されるＰＤＬデータは、その印刷内容によってデータ量が異なる。そのため、複雑な印刷内容の場合は、図３で説明したように、１ページ分のＰＤＬデータを複数に分割して、中間データメモリ４８への書き込みと初期化を繰り返して１ページ分のＰＤＬデータの解析処理を実行する場合がある。図１３、図１４に示す例の場合は、説明の簡略化のため、ＰＤＬ言語解析部３８に提供されたＰＤＬデータは、１ページ分が１度の解析処理（１度の中間データの生成、保存）で処理対象のＰＤＬデータの処理が完了して印刷処理を実行するものとする。そして、その後、２ページ目以降の解析処理を同様に実行するものとする。
【００４９】
図１３に示す例の場合、ＰＤＬデータの解析、描画処理（レンダリング）はＣＰＵが実行し、画像メモリの初期化処理、圧縮処理、必要に応じて展開処理は、ＡＳＩＣが実行するものとする。つまり、処理の種類によって処理の実行部が固定されているものとする。
【００５０】
まず、ＣＰＵのＰＤＬ言語解析部は、提供されたＰＤＬデータのうち１ページ目の言語解析を実行して中間データを生成する（Ｐ１言語解析）。続いて、ＡＳＩＣで実現される画像メモリ処理部が画像メモリを初期化（Ｐ１クリア）して、ＣＰＵで実現される描画部が描画（Ｐ１レンダリング）を実行する。描画が完了すると、ＡＳＩＣで実現される画像メモリ処理部は、画像メモリ上の１ページ目の画像データを圧縮（Ｐ１圧縮）してＨＤＤ等に一時的に保存する。そして、ＣＰＵは、プリンタエンジンに画像データを提供して印刷処理を実行させる。このとき、画像メモリの作業領域が十分に確保できればＣＰＵによる２ページ目の言語解析（Ｐ２言語解析）とＡＳＩＣより実現される画像メモリ処理部による１ページ目の圧縮処理は並列動作させる。しかしながら、画像メモリに対する圧縮処理（Ｐ１圧縮）、および初期化処理（Ｐ２クリア）はＡＳＩＣで実行されるため、ＡＳＩＣで実現される圧縮処理および初期化処理が終了するまで、ＣＰＵで実現される描画部による画像メモリへの描画処理（レンダリング）は実行待ちとなる。そして、ＡＳＩＣにより画像メモリの初期化（Ｐ２クリア）が完了したら、ＣＰＵで実現される描画部が描画（Ｐ２レンダリング）を実行する。描画が完了すると、ＡＳＩＣで実現される画像メモリ処理部は、画像メモリ上の２ページ目の画像データを圧縮（Ｐ２圧縮）する。ＡＳＩＣによる圧縮処理の間に、ＣＰＵによる３ページ目の言語解析（Ｐ３言語解析）が実行される。以下、同様に１ページごとに言語解析、初期化、描画処理、圧縮を繰り返し、印刷処理を実行する。上述したように、ＣＰＵ側で言語解析が完了してもＡＳＩＣ側で画像メモリの圧縮処理や初期化処理が完了するまで、ＣＰＵは描画処理が実行できないので、ＣＰＵの処理待ち時間が生じてしまう。この処理待ち時間は、１ページの処理ごとに生じるため、印刷処理時間の増加の原因になってしまう。
【００５１】
図１４は、本実施形態における複雑度を用いて、そのときの処理状況に適した画像メモリ処理部４６を選択して画像メモリ５０の処理を実行する場合である。なお、図１４の例の場合、ＣＰＵ２０は、ＰＤＬデータの解析、描画処理（レンダリング）の他、画像メモリ５０の初期化処理、圧縮処理、必要に応じて展開処理等を実行可能である。同様に、ＡＳＩＣ３０は、画像メモリ５０の初期化処理、圧縮処理、必要に応じて展開処理が実行可能である。上述したように初期化処理、圧縮処理、必要に応じて展開処理をＣＰＵ２０とＡＳＩＣ３０とのいずれで実行するかは、ＰＤＬ言語解析部３８が算出した複雑度とＣＰＵ２０及びＡＳＩＣ３０の動作状態に基づき推定される処理時間により、印刷処理が効率的に実行されるように選択される。
【００５２】
本実施形態において、ＰＤＬ言語解析部３８が算出する複雑度に基づく画像メモリ処理部４６ａまたは画像メモリ処理部４６ｂの選択は、「初期化処理」、「圧縮処理」、「展開処理」等の直前であり、例えば、図１４における矢印ａ〜矢印ｄで示すタイミングで実行することができる。
【００５３】
まず、ＣＰＵ２０で実現されるＰＤＬ言語解析部３８は、提供されたＰＤＬデータのうち１ページ目の言語解析を実行して中間データを生成する（Ｐ１言語解析）。このとき、画像メモリ制御部４４は、画像メモリ５０の初期化をＣＰＵ２０とＡＳＩＣ３０のいずれで処理するか判定する（矢印ａ）。図１４に示すように、ＡＳＩＣ３０は非処理状態で、ＣＰＵ２０が処理状態である。また、ＡＳＩＣ３０の処理時間＜ＣＰＵ２０の処理時間となっている状態で、かつＡＳＩＣ３０が非処理状態なので、画像メモリ制御部４４は、初期化処理をＡＳＩＣ３０（画像メモリ処理部４６ｂ）で実行するように決定する。
【００５４】
ＡＳＩＣ３０で実現する画像メモリ処理部４６ｂが、画像メモリ５０を初期化（Ｐ１クリア）した後、ＣＰＵ２０の描画部４２が描画（Ｐ１レンダリング）を実行する。描画の完了に先立ち、画像メモリ制御部４４は、画像メモリ５０の初期化をＣＰＵ２０とＡＳＩＣ３０のいずれで処理するか判定する（矢印ｂ）。図１４に示すように、ＣＰＵ２０が後続の言語解析処理を実施可能であり、かつＡＳＩＣ３０が非処理状態なので、画像メモリ制御部４４は、圧縮対象の描画内容に基づいて算出した複雑度と、ＣＰＵ２０とＡＳＩＣ３０の動作状態と、に基づき推定される処理時間により、圧縮処理（Ｐ１圧縮）をＡＳＩＣ３０（画像メモリ処理部４６ｂ）で実行するように決定する。すなわち、画像メモリ処理部４６ｂは、画像メモリ５０上の１ページ目の画像データを圧縮（Ｐ１圧縮）してＨＤＤ等に一時的に保存する。そして、ＣＰＵ２０はプリンタエンジン１８に画像データを提供して印刷処理を実行させる。
【００５５】
画像メモリ処理部４６ｂにより画像メモリ５０上の１ページ目の画像データを圧縮（Ｐ１圧縮）が実行されている間に、並列動作として、ＣＰＵ２０で実現されるＰＤＬ言語解析部３８は２ページ目の言語解析（Ｐ２言語解析）が実行可能である。ところで、ＣＰＵ２０による言語解析後の描画に先立ち、画像メモリ制御部４４は、画像メモリ５０の初期化を実行する必要がある。そこで、画像メモリ制御部４４は、ＰＤＬ言語解析部３８が算出した複雑度とＣＰＵ２０及びＡＳＩＣ３０の動作状態とにより推定した処理時間に基づいて、Ｐ２言語解析の終了に先立ち、画像メモリ５０の初期化をＣＰＵ２０とＡＳＩＣ３０のいずれで処理するか判定する（矢印ｃ）。図１４に示すように、ＡＳＩＣ３０（画像メモリ処理部４６ｂ）が処理中であり、かつＣＰＵ２０は画像メモリ５０の初期化をしないと後続の描画処理ができない。このとき、ＣＰＵ２０側で「言語解析に続いて２ページ目の初期化処理（Ｐ２クリア）を完了させるタイミング」は、ＡＳＩＣ３０（画像メモリ処理部４６ｂ）側で「１ページ目の圧縮処理＋２ページ目の初期化処理を完了するタイミング（点線で表示）」より早いことが、複雑度とＣＰＵ２０及びＡＳＩＣ３０の動作状態に基づき推定した処理時間の値より予測できる。したがって、「Ｐ２クリア」をＣＰＵ２０（画像メモリ処理部４６ａ）で実行する。その結果、図１３で説明したようにＣＰＵ２０が処理待ちとなる時間を排除することができる。
【００５６】
図１４に示すように、ＣＰＵ２０により実現されるＰＤＬ言語解析部３８による２ページ目の言語解析（Ｐ２言語解析）と、ＡＳＩＣにより実現される画像メモリ処理部４６ｂによる１ページ目の圧縮処理（Ｐ１圧縮）を並列動作させる。さらに、画像メモリ処理部４６ｂによるＰ１圧縮中に、ＣＰＵ２０により実現される画像メモリ処理部４６ａにより２ページ目の初期化処理（Ｐ２クリア）が実行される。画像メモリ処理部４６ａにより画像メモリ５０の初期化（Ｐ２クリア）が完了したら、ＣＰＵ２０により実現される描画部４２により描画（Ｐ２レンダリング）を実行する。
【００５７】
続いて、ＣＰＵ２０により実現される描画部４２による描画の終了に先立ち、画像メモリ５０の初期化処理をＣＰＵ２０とＡＳＩＣ３０のいずれで処理するか判定する（矢印ｄ）。この場合、図１４に示すように、ＣＰＵ２０は、後続の３ページ目の言語解析（Ｐ３言語解析）を実行するため、非処理状態のＡＳＩＣ３０（画像メモリ処理部４６ｂ）で画像メモリ５０の圧縮処理（Ｐ２圧縮）を実行する。
【００５８】
このように、ＣＰＵ２０とＡＳＩＣ３０との動作状態および処理対象のデータの複雑度に基づいて、処理を実行する画像メモリ処理部４６ａ（ＣＰＵ２０）または画像メモリ処理部４６ｂ（ＡＳＩＣ３０）を選択することにより、処理待ち時間を低減させることが可能となり、印刷全体の処理時間の短縮が実現できる。
【００５９】
上述の実施形態では、ＣＰＵ２０（画像メモリ処理部４６ａ）を利用するか、ＡＳＩＣ３０（画像メモリ処理部４６ｂ）を利用するかは、主としてＰＤＬ言語解析部３８が算出した複雑度とＣＰＵ２０及びＡＳＩＣ３０の動作状態に基づいて処理時間を推定して判定した。別の実施形態においては、ユーザによりＣＰＵ２０またはＡＳＩＣ３０のいずれを優先的に利用するか選択させるようにしてもよい。例えば、画像形成装置１０（ＭＦＰ：デジタル複合機）の場合、ＣＰＵ２０やＡＳＩＣ３０は、他の処理と共有するリソースとなる場合がある。その場合、他のアプリケーション等が動作している場合は、ＰＤＬ言語解析部３８が算出した複雑度とＣＰＵ２０（画像メモリ処理部４６）や、ＡＳＩＣ３０（画像メモリ処理部４６ｂ）の動作状態に基づいて処理時間を推定しても、実際の処理時間に対してズレが生じる場合がある。このような場合、ユーザの印刷速度のイメージと実際の印刷速度が異なり、ユーザに違和感を与えてしまう場合がある。
【００６０】
そこで、本実施形態の場合、画像形成装置１０（ＭＦＰ）の操作部やホストＰＣ１２側で処理モードの選択をできるようにしてもよい。例えば、図１５に示すような選択画面（ユーザインターフェース、操作受付部）を設けてもよい。この場合、例えば、「ＣＰＵ優先」、「ＡＳＩＣ優先」、「自動」等の処理指定情報を選択できるようにしてもよい。「ＣＰＵ優先」モードや「ＡＳＩＣ優先」モードが選択された場合、複雑度に基づいて推定した処理時間の例えば１．２倍までは、ユーザが選択した「ＣＰＵ優先」または「ＡＳＩＣ優先」に基づき画像メモリ処理部４６の選択を実行する。一方、「自動」モードが選択された場合には、複雑度に基づいて推定した処理時間にしたがって画像メモリ処理部４６の選択を実行する。
【００６１】
例えば、ＰＤＬ言語解析部３８が算出した複雑度に基づき推定したＣＰＵ２０（画像メモリ処理部４６ａ）の推定処理時間が１１０ｍｓ、ＡＳＩＣ３０（画像メモリ処理部４６ｂ）の推定処理時間が１００ｍｓであったとする。もし、「自動」が選択されていた場合は、推定処理時間の短いＡＳＩＣ３０（画像メモリ処理部４６ｂ）が処理を実行する画像メモリ処理部４６として選択される。一方、「ＣＰＵ優先」が選択されていた場合、ＡＳＩＣ３０（画像メモリ処理部４６ｂ）とＣＰＵ２０（画像メモリ処理部４６ａ）との処理時間差が２割以内であればＣＰＵ２０（画像メモリ処理部４６ａ）を選択する。このような構成とすることで、以下のような効果を奏する。例えば、ユーザにより使用するアプリケーションが固定化されている環境がある。例えばＣＰＵ２０を多く使うアプリケーションの使用頻度が高い場合がある。この場合、プリンタ機能での印刷時は非処理状態のＡＳＩＣ３０を優先的に使用したほうがリソース（ＣＰＵ／ＡＳＩＣ）の競合が起き難く、アプリケーションの動作を妨げ難くすることができる。つまり、優先モードを設けることでユーザ環境に応じて最適な印刷動作を提供することができる。なお、処理時間の許容値（例えば１．２倍）は、適宜ユーザが設定可能としてもよく、画像形成装置１０のカスタマイズをできるようにしてもよい。
【００６２】
上述したように、本実施形態の画像形成装置１０において、例えば、ＰＤＬ言語解析部３８（推定部）は、解析結果に含まれる描画コマンドおよび設定コマンドに基づき複雑度を算出してもよい。この態様によれば、実際に印刷する画像データに対応した情報に基づき複雑度の算出を行い、処理時間の推定を行うことができるので、高精度の処理時間の推定ができる。
【００６３】
上述したように、本実施形態の画像形成装置１０において、ＰＤＬ言語解析部３８は、画像メモリ５０の領域を所定数の分割領域（バンド）に分割し、分割領域ごとに複雑度を算出するようにしてもよい。例えば、分割領域中に描画コマンドが存在しない場合、その領域に関する複雑度の算出処理が省略できるので言語解析処理時間の短縮ができる。
【００６４】
上述したように、本実施形態の画像形成装置１０において、ＰＤＬ言語解析部３８は、印刷データ（ＰＤＬデータ）に基づく印刷時の解像度より低い解像度で描画する予備描画の描画態様の遷移状態に基づいて複雑度を算出するようにしてもよい。この態様によれば、通常の解像度で描画した場合に比べ、低解像度で描画した場合の描画色の切り替わり回数（色の遷移状態）の算出負荷が低くなるため、算出時間の短縮に寄与できる。
【００６５】
上述したように、本実施形態の画像形成装置１０において、画像メモリ制御部４４（決定部）は、操作受付部に処理指定情報が入力された場合、当該処理指定情報と処理時間とに基づいて、複数の画像メモリ処理部４６のうちいずれの画像メモリ処理部４６でメモリ処理を実行するか決定するようにしてもよい。この態様によれば、画像形成装置１０（ＭＦＰ）の稼働状況に応じたユーザの動作要望を容易に画像形成装置１０の動作に反映させることができる。その結果、印刷処理のみならず、画像形成装置１０（ＭＦＰ）の稼動の効率化ができる。
【００６６】
上述の実施形態の画像形成装置１０で実行されるプログラムは、ＲＯＭ等に予め組み込まれて提供される。別の実施形態としては、プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。この場合、画像形成装置１０にはインタフェースを備えるようにすればよい。
【００６７】
このプログラムは、印刷データを取得し、当該印刷データの解析を実行する解析処理と、解析処理の解析結果に基づき印刷データに対応して描画される描画像に対する処理負担の度合いを示す複雑度を算出し、描画像を保存する画像メモリに対して、メモリ処理として初期化処理、圧縮処理、展開処理のうち少なくとも１つを実行する際に必要な処理時間を推定する推定処理と、推定処理で推定した処理時間に基づき、メモリ処理を複数の処理部のうちいずれの画像メモリ処理部４６で実行するかを決定する決定処理と、決定処理で決定した画像メモリ処理部４６にメモリ処理を実行させる実行処理と、をコンピュータに実行させるようにしてもよい。このプログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述の実施形態の画像形成装置１０で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【００６８】
また、上述したように、本実施形態の画像形成装置１０の制御方法は、印刷データを取得し、当該印刷データの解析を実行し、解析の結果に基づき印刷データに対応して描画される描画像に対する処理負担の度合いを示す複雑度を算出し、描画像を保存する画像メモリに対して、メモリ処理として初期化処理、圧縮処理、展開処理のうち少なくとも１つを実行する際に必要な処理時間を推定し、推定した処理時間に基づき、メモリ処理を複数の画像メモリ処理部４６のうちいずれの画像メモリ処理部４６で実行するかを決定し、決定した画像メモリ処理部４６にメモリ処理を実行させることを含む。この場合も上述したように実施形態と同様な効果を得ることができる。
【００６９】
上述の実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態およびその変形は、発明の範囲および要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７０】
１０  画像形成装置
１２  ホストＰＣ
１４  コントローラ
１６  パネル装置
１８  プリンタエンジン
２０  ＣＰＵ
２２  ＲＯＭ
２４  ＲＡＭ
２６  ＮＶＲＡＭ
２８  ＨＤＤ
３０  ＡＳＩＣ
３２  ネットワークＩ／Ｆ
３４  エンジンＩ／Ｆ
３６  パネルＩ／Ｆ
３８  ＰＤＬ言語解析部
４０  中間データ制御部
４２  描画部
４４  画像メモリ制御部
４６，４６ａ，４６ｂ  画像メモリ処理部
４８  中間データメモリ
５０  画像メモリ
【先行技術文献】
【特許文献】
【００７１】
【特許文献１】特許第５１４１３３８号公報
【図１】
2016055536.tif 000003
【図２】
2016055536.tif 000004
【図３】
2016055536.tif 000005
【図４】
2016055536.tif 000006
【図５】
2016055536.tif 000007
【図６】
2016055536.tif 000008
【図７】
2016055536.tif 000009
【図８】
2016055536.tif 000010
【図９】
2016055536.tif 000011
【図１０】
2016055536.tif 000012
【図１１】
2016055536.tif 000013
【図１２】
2016055536.tif 000014
【図１３】
2016055536.tif 000015
【図１４】
2016055536.tif 000016
【図１５】
2016055536.tif 000017