(57)【要約】【課題】  印刷やプレビュー等の複数の機能を提供する画像処理装置で、その機能に従ってオブジェクトを出力する場合、出力のための処理の過程でこの画像処理装置のＣＰＵコア数等のハードウェア構成に適した処理方法は定まっておらず、機能とハードウェア構成を活かした処理パフォーマンスを得ることが難しかった。【解決手段】  本発明によれば、オブジェクトを機能に適したフォーマットに変換した変換後オブジェクトを生成して、機能とハードウェア構成の組ごとに処理方法を指示する情報を事前に作成し、これらを文書情報として格納する。オブジェクトを選択した機能で出力する場合、この機能と出力する装置のハードウェア構成に適した処理方法が選択される。【選択図】  図３
2012093838.tif 000002
【特許請求の範囲】
【請求項１】
複数のオブジェクトを含む画像情報を取得するための取得手段と、
前記複数のオブジェクトそれぞれを出力ユニットの機能に応じたデータに変換することにより、複数の変換後オブジェクトを生成するオブジェクト生成手段と、
前記複数の変換後オブジェクトから中間コードを生成する処理ユニットを複数備える中間コード生成手段と、
前記中間コードの生成における前記複数の処理ユニットそれぞれにかかる部分負荷を予測する負荷予測手段と、
前記負荷予測手段の予測する部分負荷に基づいて、前記中間コード生成手段で前記複数の変換後オブジェクトから前記中間コードを生成する際にかかる負荷を、前記複数の処理ユニットの間で平準化するための平準化情報を生成する平準化情報生成手段と、
前記平準化情報を前記複数の変換後オブジェクトと関連付ける関連付け手段と、
前記複数の変換後オブジェクトと前記平準化情報とを有する文書情報を生成する文書情報生成手段と、
を有することを特徴とする画像処理システム。
【請求項２】
前記機能は複数あり、
前記平準化情報生成手段は、複数の前記機能ごとに、前記全体負荷を平準化するための平準化情報を生成することを特徴とする請求項１に記載の画像処理システム。
【請求項３】
前記文書情報生成手段は、前記文書情報をデータベースへと保存することを特徴とする請求項１又は２に記載の画像処理システム。
【請求項４】
前記負荷予測手段の予測する部分負荷は、前記変換後オブジェクトの属性に基づいて算出されることを特徴とする請求項１乃至３の何れか１項に記載の画像処理システム。
【請求項５】
オブジェクト生成手段が、複数のオブジェクトを含む画像情報から、前記オブジェクトを出力ユニットの機能に応じたデータに変換した、変換後オブジェクトを生成するオブジェクト生成工程、
複数の処理ユニットを有する中間コード生成手段が、前記変換後オブジェクトから中間コードを生成する中間コード生成工程、
負荷予測手段が、前記中間コードの生成における前記中間コード生成手段にかかる部分負荷を予測する負荷予測工程、
平準化情報生成手段が、前記負荷予測工程で予測される部分負荷に基づいて、前記機能での前記複数のオブジェクトに対する前記中間コード生成手段にかかる全体負荷を、前記複数の処理ユニットの間で平準化するための平準化情報を生成する平準化情報生成工程、
関連付け手段が、前記平準化情報を前記複数の変換後オブジェクトと関連付ける関連付け工程、
文書情報生成手段が、前記変換後オブジェクトと前記平準化情報とを有する文書情報を生成する文書情報生成工程、
を有する画像処理方法。
【請求項６】
請求項１乃至４の何れか１項に記載の各手段として、コンピュータを機能させるためのプログラム。
【請求項７】
複数のオブジェクトを含む画像情報を取得するための取得手段と、
前記複数のオブジェクトそれぞれを出力ユニットの機能に応じたデータに変換することにより、変換後オブジェクトを生成するオブジェクト生成手段と、
前記複数の変換後オブジェクトを有する文書情報を生成する文書情報生成手段と、
を有する画像処理装置であって、
前記変換後オブジェクトに対して、前記出力ユニットで出力するためのデータへ変換する処理ユニットにかかる負荷を予測する負荷予測手段と、
前記負荷予測手段の予測する負荷に基づいて、前記複数の変換後オブジェクトを複数の前記処理ユニットで変換する際にかかる負荷を、複数の前記処理ユニット間で平準化するための平準化情報を生成する平準化情報生成手段と、
前記平準化情報を前記複数の変換後オブジェクトと関連付ける関連付け手段と、
を有することを特徴とする画像処理装置。
【請求項８】
画像情報中の複数のオブジェクトが出力ユニットの機能に応じて変換された変換後オブジェクトを有する文書情報から、中間コードを生成する処理ユニットを複数備える画像処理装置であって、
前記文書情報は、前記中間コードの生成処理における負荷を、前記処理ユニットの間で平準化するための平準化情報を有し、
前記画像処理装置は、
前記文書情報から、前記平準化情報を取得する取得手段と、
前記取得した平準化情報に基づいて、処理すべき前記複数の変換後オブジェクトを選択するオブジェクト選択手段と、
前記オブジェクト選択手段で選択された変換後オブジェクトから中間コードを生成する中間コード生成手段と、
を有することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子文書の処理方法を制御する画像処理装置、画像処理方法、コンピュータプログラムに関する。
【背景技術】
【０００２】
複写機の高機能化は目覚しく、コピーおよびプリント機能に加えてスキャナおよびファックス機能、また、画像をディスプレイに表示するプレビュー機能をもつ複合機が市場の主流になった。オフィスにおける複合機は、大量の電子データをデータベース化し、管理できる機能を備え、ネットワーク環境に接続されるパーソナルコンピュータ（ＰＣ）、他の複合機、プリンタと連携して文書管理システムを形成することが可能となっている。
【０００３】
電子データ化された文書（電子文書）は、紙文書を複合機のスキャナで読み込んだり、ＰＣのアプリケーションにより作成されたりすることによって生成される。この電子文書は例えばＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）等のフォーマットで、ネットワーク上または複合機自身がもつデータベースに保存される。
【０００４】
アプリケーションによって作成された電子文書は、図形や写真、文字といった属性に分類できる各種オブジェクトを含んでいる。このような各種オブジェクトを有する電子文書に対して、印刷、プレビュー等の各機能を実行する上で、各機能の実行時の処理時間を短縮する最適なデータを有する電子文書を生成する技術が開示されている。特許文献１では、印刷、プレビュー等の各機能の実行時に、短時間で処理できるようにするため、電子文書中のオブジェクトから予め各機能に適した描画オブジェクトを生成しておき、選択された各機能に従い最適な描画オブジェクトを用いて処理を実行する。
【０００５】
また、近年、ハードウェア技術の向上により、マルチコアのＣＰＵが開発され、ＰＣ等では、複数のアプリケーションの同時実行が可能となっている。複合機においても、印刷、プレビュー等の複数の機能の実行速度向上のために、マルチコアのＣＰＵが搭載されるようになっている。印刷においては、マルチコアＣＰＵで並列処理を効率よく行なうために、並列処理をページ記述言語（ＰＤＬ）により指示するようにしている（特許文献２）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−０６６１８８
【特許文献２】特開平０７−１０４９８７
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１は、マルチコアＣＰＵといったコア数を考慮してはおらず、例えばマルチコアＣＰＵを搭載した複合機において、マルチコアといったハードウェア構成を十分に活かした処理方法を開示してはいない。また、特許文献２に開示される並列処理指示方法では、印刷に対しては最適な並列処理を実現できても、印刷だけでなくプレビューも含めた様々な機能において最適な並列処理を実現することはできない。
【課題を解決するための手段】
【０００８】
上述した課題を解決するために本発明の画像処理システムは、複数のオブジェクトを含む画像情報を取得するための取得手段と、前記複数のオブジェクトそれぞれを出力ユニットの機能に応じたデータに変換することにより、複数の変換後オブジェクトを生成するオブジェクト生成手段と、前記複数の変換後オブジェクトから中間コードを生成する処理ユニットを複数備える中間コード生成手段と、前記中間コードの生成における前記複数の処理ユニットそれぞれにかかる部分負荷を予測する負荷予測手段と、前記負荷予測手段の予測する部分負荷に基づいて、前記中間コード生成手段で前記複数の変換後オブジェクトから前記中間コードを生成する際にかかる負荷を、前記複数の処理ユニットの間で平準化するための平準化情報を生成する平準化情報生成手段と、前記平準化情報を前記複数の変換後オブジェクトと関連付ける関連付け手段と、前記複数の変換後オブジェクトと前記平準化情報とを有する文書情報を生成する文書情報生成手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明は、電子文書の印刷、プレビュー等の様々な機能と、処理を実行する装置のハードウェア構成とを考慮して装置の実行する処理方法を変更することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明における画像処理装置のシステム構成の一例を示す図である。
【図２】画像形成装置に格納される文書情報のフォーマットの一例を示した図である。
【図３】文書情報生成のフローを示した図である。
【図４】描画オブジェクト生成のフローを示した図である。
【図５】中間コード生成における予測負荷値の算出のフローを示した図である。
【図６】印刷用処理情報生成のフローを示した図である。
【図７】プレビュー用処理情報生成のフローを示した図である。
【図８】ページ並列の負荷分散見積もりのフローを示した図である。
【図９】オブジェクト並列の負荷分散見積もりのフローを示した図である。
【図１０】文書情報の印刷またはプレビュー処理のフローを示した図である。
【図１１】ＣＰＵのプロセッサが実行する処理のフローを示した図である。
【図１２】処理方法の決定するフローの一例を示した図である。
【図１３】文書情報の描画オブジェクトの一例を示した図である。
【発明を実施するための形態】
【００１１】
（実施例１）
以下、本発明を実施するための最良の形態について図面を用いて説明する。図１は、本発明における画像形成装置１０２、１０３の構成の一例を示す図である。
【００１２】
本実施例において、画像形成装置１０２は文書情報５０００を生成するための画像処理を実行する装置である。画像形成装置１０２によって生成される文書情報５０００については後述する。２０２はＰＣ等の外部デバイスと情報の入出力を行うためのネットワークＩ／Ｆであり、外部デバイスから送信された印刷画像情報（ＰＤＬデータ）を受信する。２２０は文書画像の読み取り部であるスキャナ２２１から文書画像の読取画像情報を取得するためのスキャナＩ／Ｆであり、スキャナ２２１からの読取画像情報を受信バッファへと送信する。２１８は画像形成装置１０２の演算処理や制御を行う中央演算処理装置（ＣＰＵ）である。２０３は様々な情報を一時格納するＲＡＭである。ＲＡＭ２０３は、受信バッファ２０４、ワークメモリ２０５を有する。受信バッファ２０４は、ネットワークＩ／Ｆ２０２を介して受信した印刷画像情報（ＰＤＬデータ）、及び、スキャナＩ／Ｆを介して受信した読取画像情報を格納するメモリである。なおＰＤＬデータはページ記述言語（ＰＤＬ）で書かれているデータであり、印刷画像情報はＰＤＬによって印刷すべきオブジェクトについての情報が記述されている。オブジェクトとは、例えば２点間を結ぶ線分のことである。オブジェクトについての情報とは、例えば２点を指定してその間を結ぶ線分を描画せよといった描画命令である。２０５は、ＣＰＵ２１８が処理を実行するときに一時的に使用するワークメモリである。
【００１３】
２０８は、画像形成装置１０２におけるＣＰＵ２１８の制御プログラムを格納するＲＯＭである。ＲＯＭ２０８は、解析プログラム２０９、オブジェクト生成プログラム２１０、スケジューラプログラム２１５、文書管理プログラム２１６を格納している。ＣＰＵ２１８はこれらのプログラムをワークメモリ２０５にロードし実行することで、解析部、オブジェクト生成部、スケジューラ、文書管理部の各機能を実現する。解析部は、受信バッファ２０４から読み出したＰＤＬデータを解析し、ＰＤＬデータ内の描画命令を読み出す。オブジェクト生成部は、解析部により読み出されたオブジェクトの描画命令からオブジェクトを特定し、このオブジェクトから描画オブジェクトを生成する。また、オブジェクト生成部は、描画オブジェクトから中間コードを生成する際の部分負荷を予測する。ここでいう描画オブジェクトとは、例えば線分を描画するための点列データである。スケジューラは、オブジェクト生成部により生成された描画オブジェクトと部分負荷に基づいて、並列処理するときの分散処理見積もりを行ない、処理情報（平準化情報）を生成する。文書管理部は、オブジェクト生成部により生成された描画オブジェクトと処理情報とを関連付けてＨＤＤ２１７に格納し、１つの文書情報５０００として管理する。本実施例において、文書情報５０００は、１つのＰＤＬデータにつき１つ生成され、１つのオブジェクトにつき１又は複数の描画オブジェクトが含まれている。２１２はプリンタエンジン２１３との信号の入出力を行うエンジンＩ／Ｆである。２１３はラスタイメージに基づいて、周知の電子写真プロセスによって感光ドラム上に現像剤像を形成し、この現像剤像を用紙に転写して定着を行うプリンタエンジンである。
【００１４】
本実施例において、画像形成装置１０３はＨＤＤ２１７に格納された文書情報５０００に従って、印刷、プレビュー等の出力ユニットの機能のための画像処理を実行する装置である。３０２は画像形成装置１０２のＨＤＤ２１７から文書情報５０００を取得するためのネットワークＩ／Ｆである。３１８は、画像形成装置１０３の演算処理や制御を行う中央演算処理装置（ＣＰＵ）であり、複数のプロセッサ（処理ユニット）を備えている。３０３は様々な情報を一時格納するＲＡＭである。ＲＡＭ３０３は、受信バッファ３０４、ワークメモリ３０５、フレームバッファ３０６、ラスタメモリ３０７を有する。受信バッファ３０４は、ネットワークＩ／Ｆ３０２を介して受信した文書情報５０００を格納するメモリである。３０５は、ＣＰＵ３１８が各処理を実行する過程で使用されるワークメモリである。３０６は、後述する中間コード生成部で生成された中間コードを格納するフレームバッファである。３０７は、フレームバッファ３０６に格納された中間コードが展開されたラスタイメージを格納するラスタメモリである。
【００１５】
３０８は、画像形成装置１０３におけるＣＰＵ３１８の制御プログラムを格納するＲＯＭである。ＲＯＭ３０８には、並列処理管理プログラム３１１、文書情報解析プログラム３０９、中間コード生成プログラム３１０、展開処理プログラム３１４が格納されている。ＣＰＵ３１８はこれらのプログラムをワークメモリ３０５にロードし実行することで、並列処理管理部、文書情報解析部、中間コード生成部、展開処理部の各機能を実現する。並列処理管理部は、受信バッファ３０４から読み出した文書情報５０００の処理情報５１３を参照し、ＣＰＵ３１８の複数のプロセッサで動作する解析部、中間データ生成部に処理を依頼する。解析部は、並列処理管理部から処理依頼された文書情報５０００を解析する。中間コード生成部は、文書情報５０００に含まれる描画オブジェクトから中間コードを生成し、フレームバッファ３０６に格納する。展開処理部は、フレームバッファ３０６に格納された中間コードを展開したラスタイメージをラスタメモリ３０７に格納する。
【００１６】
３１２はプリンタエンジン３１３との信号の入出力を行うエンジンＩ／Ｆである。３１３はラスタイメージに基づいて、周知の電子写真プロセスによって感光ドラム上に現像剤像を形成し、この現像剤像を用紙に転写して定着させるプリンタエンジンである。３２１は、ラスタイメージに基づいて、このラスタイメージをパネルに表示する表示パネルである。３２０は、表示パネル３２１との信号の入出力を行うパネルＩ／Ｆである。なお、以下の本実施例では、画像形成装置１０３がデュアルコアのＣＰＵを搭載しており、機能としては印刷とプレビューのみであるものとして説明するが、本発明はこのようなコア数（プロセッサ数）、機能に限られるものではない。また、本実施例では、オブジェクトの属性は図形、写真、文字の何れかに分類されるものとして説明するが、本発明はこれらの属性に限られるものではない。
【００１７】
図２は、本実施例のＨＤＤ２１７に格納される文書情報５０００のフォーマット一例を示す図である。図２（ａ）は、文書情報５０００の全体のフォーマットを示す図であり、ヘッダ５１００、文書情報の描画オブジェクトなどを格納するオブジェクト部５２００、この描画オブジェクトの格納位置を示すオブジェクトテーブル５３００を有する。
【００１８】
ヘッダ５１００は、フォーマット特定情報５１１０、オブジェクトテーブルオフセット５１２０、処理情報オフセット５１３０を含む。フォーマット特定情報５１１０は、文書情報５０００のフォーマットを特定するための識別子である。オブジェクトテーブルオフセット５１２０は、オブジェクトテーブル５３００の格納位置（オブジェクトテーブル５３００の先頭アドレス）を示す。処理情報オフセット５１３０は、シングルコア、デュアルコア等のＣＰＵといった文書情報５０００を処理する装置のハードウェア構成と、印刷、プレビュー等の各機能とに適した処理方法を指示する処理情報５２２０の格納位置（処理情報５２２０の先頭アドレス）を示す。
【００１９】
オブジェクト部５２００は、描画オブジェクト部５２１０、処理情報５２２０、処理指示部５２３０を含む。
【００２０】
描画オブジェクト部５２１０は、印刷、プレビュー等の各機能に対応する描画オブジェクト（変換後オブジェクト）を含む。本実施例において、画像形成装置の機能は印刷とプレビューであるので、描画オブジェクト部５２１０には、各オブジェクトの印刷用とプレビュー用の描画オブジェクトが格納されている。図１３は、文書情報の描画オブジェクト一例を示した図である。図１３の文書情報の描画オブジェクトは、点列７００、文字７０１、イメージ７０２から構成される。点列７００は、複数のＸ、Ｙ座標の点列情報からなる。文字７０１は、描画位置Ｘ、Ｙと、描画する文字に対応するフォントＩＤと、描画サイズのポイント数からなる。イメージ７０２は、描画位置Ｘ、Ｙと、幅、高さ、階調からなる。文書情報には、これらの描画オブジェクトが一つまたは複数含まれている。
【００２１】
処理情報５２２０は、シングル・印刷の処理指示オフセット５２２１、シングル・プレビューの処理指示オフセット５２２２、デュアル・印刷の処理指示オフセット５２２３、デュアル・プレビューの処理指示オフセット５２２４を含む。処理情報５２２０内の各情報は、処理方法を指示する情報が格納されている処理指示部５２３０の格納位置の情報（アドレス）である。シングル・印刷の処理指示オフセット５２２１は、シングルコアＣＰＵの画像形成装置で印刷機能を実行する場合の処理方法を指示するシングル・印刷の処理指示５２３１の格納位置を示す。シングル・プレビューの処理指示オフセット５２２２は、シングルコアＣＰＵの画像形成装置でプレビュー機能を実行する場合の処理方法を指示するシングル・プレビューの処理指示５２３２の格納位置を示す。デュアル・印刷の処理指示オフセット５２２３は、デュアルコアＣＰＵの画像形成装置で印刷機能を実行する場合の処理方法を指示するデュアル・印刷の処理指示５２３３の格納位置を示す。デュアル・プレビューの処理指示オフセット５２２４は、デュアルコアＣＰＵの画像形成装置１０３でプレビュー機能を実行する場合の処理方法を指示するデュアル・プレビューの処理指示５２３４の格納位置を示す。
【００２２】
処理指示部５２３０の説明を行う。シングル・印刷の処理指示５２３１の内容は、ページ毎の印刷用描画オブジェクトのＩＤリスト（後述）である。シングル・プレビューの処理指示５２３２の内容は、ページ毎のプレビュー用描画オブジェクトのＩＤリストである。デュアル・印刷の処理指示５２３３の内容は、並列処理方法と、この並列処理方法に基づくプロセッサ１及びプロセッサ２の処理する印刷用描画オブジェクトのＩＤリスト又はページＩＤリストである。デュアル・プレビューの処理指示５２３４の内容は、並列処理方法と、この並列処理方法に基づくプロセッサ１及びプロセッサ２の処理するプレビュー用描画オブジェクトのＩＤリストである。
【００２３】
並列処理方法は、並列処理の方法を指定するパラメータで、本実施例では、オブジェクト並列、ページ並列の２種類から指定する。オブジェクト並列とは、同一ページ内に含まれる複数の描画オブジェクトを、描画オブジェクト単位で複数のプロセッサに割り当て中間コードの生成処理を並列に行なう方法である。ページ並列は、複数のページの文書情報について、ページ単位で複数のプロセッサに割り当て中間コード生成処理を並列に行なう方法である。並列処理方法による、各プロセッサの処理内容の違いは図２（ｂ１）、（ｂ２）を用いて後述する。なお、この処理指示部５２３０の処理指示の個数は、本実施例では４つであるが、コア数、画像形成装置の機能数に応じ増減しても良い。つまり、デュアルコアの他、クアッドコアＣＰＵのハードウェア構成用に処理指示の数を増やしても良い。また、印刷、プレビューの他の機能用に処理指示の数を増やしても良い。
【００２４】
次にオブジェクトテーブル５３００について説明する。オブジェクトテーブル５３００は、オブジェクト部５２００の描画オブジェクト部５２１０に格納される各描画オブジェクトの格納位置を示すテーブルである。このオブジェクトテーブル５３００は、描画オブジェクトのＩＤからこのＩＤに対応する描画オブジェクトの格納位置を参照するために利用される。
【００２５】
並列処理方法による、各プロセッサの処理内容の違いを図２（ｂ１）、（ｂ２）を用いて説明する。図２（ｂ１）は、並列処理方法がオブジェクト並列である場合の各プロセッサの処理内容を示した図である。図２（ｂ１）では、プロセッサ１の処理内容として、ページ毎の、プロセッサ１の処理すべき描画オブジェクトのＩＤリストが指定され、プロセッサ２の処理内容として、ページ毎の、プロセッサ２の処理すべき描画オブジェクトのＩＤリストが指定される。
【００２６】
図２（ｂ２）は、並列処理方法がページ並列である場合の各プロセッサの処理内容を示した図である。図２（ｂ２）では、プロセッサ１の処理方法として、プロセッサ１の処理すべきページＩＤのリストが指定され、プロセッサ２の処理方法として、プロセッサ２の処理すべきページＩＤのリストが指定される。この場合、指定されるページＩＤはプロセッサ１及び２の間で重複しないようになっている。このページＩＤは、処理すべきページを一意に識別するものであり、ページ内の全描画オブジェクトＩＤを取得するためのアドレスに対応している。例えば、ページ並列のデュアル・印刷の処理指示５２３３の場合、ページＩＤは、シングル・印刷の処理指示５２３１の、このページＩＤに対応するページの印刷用描画オブジェクトＩＤリストへのアドレスである。
【００２７】
図３は、画像形成装置１０２における文書情報５０００の生成フローを示した図である。図３のフローは、ＲＯＭ２０８に予め格納された各プログラム（解析プログラム２０９、オブジェクト生成プログラム２１０、スケジューラプログラム２１５、文書管理プログラム２１６）をＣＰＵ２１８がワークメモリ２０５上に展開、実行して、ＣＰＵを各機能部（解析部、オブジェクト生成部、スケジューラ、文書管理部）として機能させることで実現される。ステップＳ１００１で、ＣＰＵ２１８は、ネットワーク１０４に接続された外部機器からネットワークＩ／Ｆ２０２を介して入力されたＰＤＬデータを受信バッファ２０４に格納する。ステップＳ１００２で、解析部は、受信バッファ２０４に格納されたＰＤＬデータを読み出し、解析処理を実行する。ステップＳ１００３で、解析部は、ＰＤＬデータの解析終了（ジョブ終了）かを判定する。ジョブ終了以外の場合、ステップＳ１０１０で、オブジェクト生成部は、描画オブジェクトの生成や生成した描画オブジェクトの部分負荷の予測（後述）を実行する。ステップＳ１００３で、解析部がジョブ終了と判定した場合、スケジューラは、ステップＳ１０２０で印刷用処理情報（印刷機能に対する平準化情報）、ステップＳ１０２１でプレビュー用処理情報（プレビュー機能に対する平準化情報）を生成する。印刷用処理情報、プレビュー用処理情報は、ステップＳ１０１０で生成した描画オブジェクトの予測負荷値（後述）をもとに生成される。ステップＳ１０２２で、文書管理部は、生成された印刷用処理情報及びプレビュー用処理情報をステップＳ１０１０にて生成した描画オブジェクトと関連付ける。なお、以上のステップで生成されたデータはワークメモリ２０５上に一時的に格納されている。そして、ステップＳ１０２３で、文書管理部は、以上のステップで生成されたデータを文書情報５０００として、データベースであるＨＤＤ２１７に格納する。なお、データベースは画像形成装置１０２の内部に限らず、画像形成装置１０３内部やネットワーク１０４上に設けられても良い。
【００２８】
図４は、ステップＳ１０１０の描画オブジェクトの生成および部分負荷予測のフローを示した図であり、ＣＰＵ２１８が、ＲＯＭ２０８に予め格納されたオブジェクト生成プログラムを、ワークメモリ２０５上で展開、実行することで実現される。ステップＳ１１０１で、オブジェクト生成部は、解析部で取得した解析情報（描画オブジェクトの描画命令）から印刷時に用いられる印刷用描画オブジェクトを生成し、文書情報５０００の描画オブジェクト部５２１０用としてワークメモリ２０５に格納する。ステップＳ１１０２で、オブジェクト生成部は、生成した印刷用描画オブジェクトの部分負荷の予測を行なう。ここでいう部分負荷とは、描画オブジェクトを中間コードに変換するプロセッサにかかる負荷である。ステップＳ１１０３で、オブジェクト生成部は、文書情報５０００のオブジェクトテーブル５３００用としてステップＳ１１０１で生成した印刷用描画オブジェクトの格納位置を特定する情報をワークメモリ２０５に追加する。また、ステップＳ１１０４で、オブジェクト生成部は、格納された印刷用描画オブジェクトに対しオブジェクトＩＤを割り振り、文書情報５０００のシングル・印刷の処理指示５２３１のページ毎の描画オブジェクトＩＤリスト用として、このオブジェクトＩＤをワークメモリ２０５に追加する。
【００２９】
ステップＳ１１０５で、オブジェクト生成部は、この描画オブジェクトの属性が図形（点列データ）であるかを判定する。この描画オブジェクトが点列データと判定された場合、ステップＳ１１１０で、オブジェクト生成部は、この描画オブジェクトの点列データをプレビュー用に低解像度（例えば解像度７５ｄｐｉ）の座標に変換する。ステップＳ１１１１で、オブジェクト生成部は、この変換後の点列データ中に、座標が同じ又は隣接する点列が存在するかどうかを判定する。存在すると判定された場合は、ステップＳ１１１２で、オブジェクト生成部は、座標が同じまたは隣接する点列のいずれかの一点を削除した描画オブジェクトを生成し、文書情報５０００の描画オブジェクト部５２１０用としてワークメモリ２０５に格納する。すなわち印刷用描画オブジェクトの点列データから数点を間引いたプレビュー用描画オブジェクトが生成される。存在しないと判定された場合は、ステップＳ１１５０へ処理が移行し、印刷用描画オブジェクトをプレビュー用描画オブジェクトとする。
【００３０】
ステップＳ１１５０で、オブジェクト生成部は、生成したプレビュー用描画オブジェクトの部分負荷の予測を行なう。ステップＳ１１５１で、オブジェクト生成部は、文書情報５０００のオブジェクトテーブル５３００用として、ワークメモリ２０５にステップＳ１１１２でプレビュー用描画オブジェクトとした描画オブジェクトの格納位置を特定する情報を追加する。また、ステップＳ１１５２で、オブジェクト生成部は、格納されたプレビュー用描画オブジェクトに対しオブジェクトＩＤを割り振り、文書情報５０００のシングル・プレビューの処理指示５２３２のページ毎の描画オブジェクトＩＤリスト用として、このオブジェクトＩＤをワークメモリ２０５に追加する。
【００３１】
ステップＳ１１０５で、描画オブジェクトの属性が図形ではないと判定された場合、ステップＳ１１２０で、オブジェクト生成部は、印刷用描画オブジェクトがイメージであるかを判定する。印刷用描画オブジェクトがイメージであると判定された場合、ステップＳ１１２１で、オブジェクト生成部は、イメージの解像度が所定の解像度（例えば３００ｄｐｉ）以上かを判定する。解像度が所定の解像度以上と判定された場合、ステップＳ１１２２で、オブジェクト生成部は、イメージを低解像度（例えば７５ｄｐｉ）に変換したプレビュー用描画オブジェクトを生成する。解像度が所定の解像度以上と判定されない場合、ステップＳ１１５０へ処理が移行し、プレビュー用描画オブジェクトとして印刷用描画オブジェクトを流用する。点列データ同様、ステップＳ１１５０〜Ｓ１１５２でオブジェクト生成部は、プレビュー用の各情報をワークメモリ２０５に追加する。
【００３２】
ステップＳ１１２０で、イメージではないと判定された場合、オブジェクト生成部は、印刷用描画オブジェクトの属性が文字であると判定し、ステップＳ１１３１へ処理が移行する。ステップＳ１１３１で、オブジェクト生成部は、印刷用描画オブジェクトの文字について文字の大きさが所定のサイズ（例えば１０ｐｔ）以下かを判定する。所定のサイズ以下であると判定された場合、オブジェクト生成部は、この文字属性を持つ印刷用描画オブジェクトを低解像度（例えば７５ｄｐｉ）の多値イメージに変換し、この多値イメージをプレビュー用描画オブジェクトとする。この文字の多値イメージは文字のエッジ部を強調するように階調が調整されたイメージである。所定のサイズ以下ではないと判定された場合、ステップＳ１１５２へ処理が移行し、印刷用描画オブジェクトをプレビュー用描画オブジェクトとする。そして、オブジェクト生成部は、点列データ同様、ステップＳ１１５０〜Ｓ１１５２でプレビュー用の各情報をワークメモリ２０５に追加する。
【００３３】
図５は、ステップＳ１１０２及びステップＳ１１５０の部分負荷の予測のフローを示した図であり、ＣＰＵ２１８が、ＲＯＭ２０８に予め格納されたオブジェクト生成プログラム２１０をワークメモリ２０５上で実行することで実現される。ステップＳ１２０１で、オブジェクト生成部は、描画オブジェクトが点列であるかを判定する。点列であると判定された場合、ステップＳ１２１０で、オブジェクト生成部は、例えば以下の式で予測負荷値を算出する。
点列の予測負荷値＝点列数×５
ステップＳ１２０１にて描画オブジェクトが点列ではないと判定された場合、ステップＳ１２２０で、オブジェクト生成部は、描画オブジェクトがイメージであるか判定する。イメージであると判定された場合、ステップＳ１２２１で、オブジェクト生成部は、例えば以下の式で予測負荷値を算出する。
イメージの予測負荷値＝イメージの幅×イメージの高さ×階調×０．１
ステップＳ１２２０で、イメージでないと判定された場合、オブジェクト生成部は、描画オブジェクトが文字であると判定し、ステップＳ１２２２へ処理を移行させる。ステップＳ１２２２で、オブジェクト生成部は、例えば以下の式で予測負荷値を算出する。
文字の予測負荷値＝文字の幅×文字の高さ×０．５
なお、以上のステップで算出された予測負荷値は、オブジェクト生成部により、ワークメモリ２０５へ保存される。
【００３４】
図６は、図３のステップＳ１０２０の印刷用処理情報生成のフローを示した図であり、ＣＰＵ２１８がＲＯＭ２０８に予め格納されたスケジューラプログラム２１５をワークメモリ２０５上で実行することで実現される。ステップＳ１３０１で、スケジューラは、生成する文書情報５０００が複数ページかを判定し、複数ページの場合は、ステップＳ１３１０で、ワークメモリ２０５に格納されたデュアル・印刷の処理指示５２３３の並列処理方法をページ並列に設定する。ステップＳ１３１１で、スケジューラは、ページ毎予測負荷値を算出するページのページカウンタＰを１に初期化する。ページカウンタＰはワークメモリ２０５に確保される。ステップＳ１３１２で、スケジューラは、ワークメモリ２０５上のシングル・印刷の処理指示５２３１のページＰの印刷用描画オブジェクトのＩＤリストを取得する。ステップＳ１３１３で、スケジューラは、ページＰ内の全描画オブジェクトの予測負荷値を累積するための負荷値カウンタＦを０に初期化する。負荷値カウンタＦはワークメモリ２０５に確保される。ステップＳ１３１４で、スケジューラは、ワークメモリ２０５に格納されたシングル・印刷の処理指示５２３１のページＰの描画オブジェクトのＩＤリストを参照し、図３のステップＳ１０１０の描画オブジェクトの生成中に算出した描画オブジェクト毎の予測負荷値をワークメモリ２０５から読み出し、負荷値カウンタＦに加算する。ページ中の全描画オブジェクトの加算が終了するまでステップＳ１３１４〜ステップＳ１３１６を繰り返し実行する。ページ中の全オブジェクトの加算が終了したら、スケジューラは、ステップＳ１３１７で、負荷値カウンタＦの値をページＰの予測負荷値としてワークメモリ２０５に格納し、ステップＳ１３１８で、ページカウンタＰをインクリメントし、次のページの処理を行なう。全ページの予測負荷値の加算が終了するまで、ステップＳ１３１２〜ステップＳ１３１９を繰り返し実行する。ステップＳ１３２０で、スケジューラは、算出した全ページの予測負荷値からページ並列の負荷分散見積もりを行なう。
【００３５】
一方、ステップＳ１３０１で文書情報５０００が単ページと判定された場合、ステップＳ１３３０で、スケジューラは、ワークメモリ２０５に格納されたデュアル・印刷の処理指示５２３３の並列処理方法をオブジェクト並列に設定する。ステップＳ１３３１で、スケジューラは、オブジェクト並列の負荷分散見積もりを行なう。
【００３６】
図７は、図３のステップＳ１０２１のプレビュー用処理情報生成のフローを示した図であり、ＣＰＵ２１８がＲＯＭ２０８に予め格納されたスケジューラプログラム２１５をワークメモリ２０５上で実行することで実現される。ステップＳ１４０１で、スケジューラは、ワークメモリ２０５に格納されたデュアル・プレビューの処理指示５２３４の並列処理方法をオブジェクト並列に設定する。ステップＳ１４０２で、スケジューラは、ページ毎の負荷値を算出するページのページカウンタＰを１に初期化する。ページカウンタＰはワークメモリ２０５に確保される。ステップＳ１４０３で、スケジューラは、ワークメモリ２０５に格納されたシングル・プレビューの処理指示５２３２のページＰのプレビュー用描画オブジェクトのリストを取得する。ステップＳ１４０４で、スケジューラは、オブジェクト並列の負荷分散見積もりを行なう。ステップＳ１４０５で、スケジューラは、ページカウンタＰをインクリメントし、次のページの処理を行なう。全ページのオブジェクト並列の負荷分散見積もりが終了するまで、ステップＳ１４０２〜ステップＳ１４０６を繰り返し実行する。
【００３７】
図８は、図６のステップＳ１３２０のページ並列の負荷分散見積もりのフローを示した図であり、ＣＰＵ２１８がＲＯＭ２０８に予め格納されたスケジューラプログラム２１５をワークメモリ２０５上で実行することで実現される。ステップＳ１５０１で、スケジューラは、例えば、ステップＳ１３１７で格納された各ページの予測負荷値の合計をとった全ページの合計負荷値（全体負荷の予測値）を算出して、以下の式から負荷閾値Ｆｔｈを算出する。
負荷閾値Ｆｔｈ＝全ページの合計負荷値／２
【００３８】
ステップＳ１５０２で、スケジューラは、マルチコアのＣＰＵ３１８のプロセッサ１の負荷値カウンタＦ１を０に初期化する。同様に、ステップＳ１５０３で、スケジューラは、マルチコアのＣＰＵ３１８のプロセッサ２の負荷値カウンタＦ２を０に初期化する。ステップＳ１５０４で、スケジューラは、負荷分散を見積もるページのページカウンタＰを１に初期化する。ステップＳ１５０５で、スケジューラは、ワークメモリ２０５に格納されたページＰの予測負荷値を読み出し、プロセッサ１の負荷値カウンタＦ１が、所定の閾値（例えば負荷閾値Ｆｔｈの１．１倍）より小さいかを判定する。負荷値カウンタＦ１がこの所定の閾値より小さい場合、ステップＳ１５１０で、スケジューラは、プロセッサ１の負荷値カウンタＦ１にページＰの予測負荷値を加算する。ステップＳ１５１１で、スケジューラは、図２（ａ）、（ｂ２）に示される、ワークメモリ２０５上のデュアル・印刷の処理指示５２３３のプロセッサ１のページＩＤリストにページＰのＩＤを追加する。ステップＳ１５０５で負荷値カウンタＦ１がこの所定の閾値以上の場合、ステップＳ１５２０で、スケジューラは、プロセッサ２の負荷値カウンタＦ２にページＰの負荷値を加算する。ステップＳ１５２１で、スケジューラは、図２（ａ）、（ｂ２）に示される、ワークメモリ２０５上のデュアル・印刷の処理指示５２３３のプロセッサ２のページＩＤリストにページＰのＩＤを追加する。スケジューラは、ステップ１５３０でページＰのインクリメントを行い、全ページの負荷分散見積もりが終了するまで、ステップＳ１５０５〜ステップ１５３１までを繰り返し実行する。これらの処理で生成された印刷用処理情報は、ページ並列の処理を実行する場合の中間コード生成部にかかる負荷を平準化するための情報（平準化情報）であり、文書情報のデュアル・印刷の処理指示５２３３として図２（ｂ２）の形式をとる。
【００３９】
図９は、図６のステップＳ１３３１のオブジェクト並列の負荷分散見積もりのフローを示した図であり、ＣＰＵ２１８がＲＯＭ２０８に予め格納されたスケジューラプログラム２１５をワークメモリ２０５上で実行することで実現される。
【００４０】
まずはステップＳ１３３１の単ページの印刷におけるオブジェクト並列の負荷分散見積もりについて説明する。ステップＳ１６０１で、スケジューラは、負荷値を算出する負荷値カウンタＦと、負荷値を算出するページをカウントするページカウンタＰを夫々１に初期化する。この負荷値カウンタＦはワークメモリ２０５に確保される。ステップＳ１６０２で、スケジューラは、シングル・印刷の処理指示５２３１のページＰの描画オブジェクトのＩＤリストを参照する。そして、ステップＳ１６０３で、スケジューラは、図４のステップＳ１１０２の描画オブジェクト生成中に算出した描画オブジェクトの負荷値を、負荷値カウンタＦに加算する。Ｓ１６０４で、スケジューラは、ページ中の全オブジェクトの負荷値加算が終了したかを判定する。スケジューラは、ページ中の全オブジェクトの加算が終了するまでステップＳ１６０２〜ステップＳ１６０４を繰り返し実行する。ページ中の全オブジェクトの加算が終了したら、ステップＳ１６０５で、スケジューラは、以下の式でページ内の全描画オブジェクトの負荷値から負荷閾値Ｆｔｈを算出する。なお、単ページ印刷（つまり、単ページに対する処理）であるため、ここではページ内の全描画オブジェクトの負荷値が全体負荷の予測値となっている。
負荷閾値Ｆｔｈ＝全オブジェクトの合計負荷値／２
【００４１】
ステップＳ１６０６で、スケジューラは、ＣＰＵ３１８のプロセッサ１の負荷値カウンタＦ１を０に初期化する。同様に、ステップＳ１６０７で、スケジューラは、ＣＰＵ３１８のプロセッサ２の負荷値カウンタＦ２を０に初期化する。負荷値カウンタＦ１、Ｆ２はワークメモリ２０５に確保される。ステップＳ１６０８で、スケジューラは、ワークメモリ２０５上のシングル・印刷の処理指示５２３１のページＰの描画オブジェクトのＩＤリストを参照する。スケジューラは、ステップＳ１６０９で、このＩＤリストに基づいて、プロセッサ１の負荷値カウンタＦ１に図３のステップＳ１０１０の描画オブジェクト生成中に算出された描画オブジェクトの負荷値を加算した値が、所定の閾値（例えば負荷閾値Ｆｔｈの１．１倍）より小さいかを判定する。所定の閾値より小さい場合、ステップＳ１６１０で、スケジューラは、プロセッサ１の負荷値カウンタＦ１に描画オブジェクトの負荷値を加算する。ステップＳ１６１１で、スケジューラは、ワークメモリ２０５上のデュアル・印刷の処理指示５２３３のページＰのプロセッサ１の描画オブジェクトのＩＤリストにこの描画オブジェクトのＩＤを追加する。所定の閾値以上の場合、ステップＳ１６２０で、スケジューラは、プロセッサ２の負荷値カウンタＦ２にページＰの負荷値を加算する。ステップＳ１６２１で、スケジューラは、ワークメモリ２０５上のデュアル・印刷の処理指示５２３３のページＰのプロセッサ２の描画オブジェクトのＩＤリストにこの描画オブジェクトのＩＤを追加する。スケジューラは、ステップＳ１６３０の判定でページＰ内の全描画オブジェクトの負荷分散が終了するまで、ステップＳ１６０８〜Ｓ１６３０までを繰り返し実行する。これらの処理で生成された印刷用処理情報は、オブジェクト並列の処理を実行する場合の中間コード生成部にかかる負荷を平準化するための情報（平準化情報）であり、文書情報のデュアル・印刷の処理指示５２３３として図２（ｂ１）の形式をとる。
【００４２】
図７のステップＳ１４０４のプレビューにおけるオブジェクト並列の負荷分散見積もりについて図９を用いて説明する。図９は単ページの印刷におけるオブジェクト並列を扱ったが、プレビューにおけるオブジェクト並列の負荷分散見積もりについてもほぼ同様である。異なる点を説明する。１つ目は、図９のステップＳ１６０２で参照すべきＩＤリストを、ワークメモリ２０５上のシングル・プレビューの処理指示５２３２のページＰの描画オブジェクトのＩＤリストとする点である。２つ目は、ステップＳ１６０８で参照すべきＩＤリストを、ワークメモリ２０５上のシングル・プレビューの処理指示５２３２のページＰの描画オブジェクトのＩＤリストとする点である。３つ目は、ステップＳ１６１１及びステップ１６２１でＩＤを追加する先を、ワークメモリ２０５上のデュアル・プレビューの処理指示５２３４のページＰのプロセッサ１及び２の描画オブジェクトのＩＤリストとする点である。そして、ステップＳ１６０１〜Ｓ１６３０の処理を全ページにわたって繰り返す点である。これらの処理で生成されたプレビュー用処理情報は、オブジェクト並列の処理を実行する場合の中間コード生成部にかかる負荷を平準化するための情報（平準化情報）であり、文書情報のデュアル・プレビューの処理指示５２３４として図２（ｂ１）のような形式をとる。
【００４３】
以上の図２のステップＳ１００１〜Ｓ１０２３で、負荷分散見積もりを行った文書情報５０００が生成されてデータベースに保存される。なお、負荷値の算出や負荷分散見積もりを行う上で用いた式は一例であって本発明を限定するものではなく、適当な他の式を用いて負荷値の算出や負荷分散見積もりを行ってもよい。
【００４４】
以下では、データベースに格納された文書情報５０００を用いて、分散処理の実行について説明する。図１０は、画像形成装置１０３における文書情報５０００の印刷またはプレビュー処理のフローを示した図である。図１０のフローは、ＲＯＭ３０８に予め格納された各プログラム（文書情報解析プログラム３０９、中間コード生成３１０、並列処理管理プログラム３１１、展開処理プログラム３１４）をＣＰＵ３１８がワークメモリ３０５上に展開、実行して、ＣＰＵを各機能部（文書情報解析部、中間コード生成部、並列処理管理部、展開処理部）として機能させることで実現される。
【００４５】
ステップＳ１７０１で、ＣＰＵ３１８は、ユーザが表示パネル３２１を使って選択した文書情報５０００と機能の指示をパネルＩ／Ｆ３２０を介して受け付ける。指示を受けた場合、ステップＳ１７０２で、文書情報解析部は、ユーザが選択した文書情報５０００をデータベース（画像形成装置１０２のＨＤＤ２１７）から取得し、受信バッファ３０４に格納する。ステップＳ１７０３で、文書情報解析部は、ユーザが選択した機能がプレビューかを判定する。ユーザが選択した機能がプレビューの場合、ステップＳ１７０４で、文書情報解析部は、文書情報５０００を解析する。プレビューの場合の文書情報解析のフローについて図１２に示す。図１２の処理フローは、ＣＰＵ３１８がＲＯＭ３０８に予め格納された文書情報解析プログラム３０９をワークメモリ３０５上で実行することで実現される。
【００４６】
ステップＳ１９００で、文書情報解析部は、画像形成装置１０３のハードウェア構成（ＣＰＵのコア数）を取得する。ステップＳ１９０１で、文書情報解析部は、ヘッダ５１００の処理情報オフセット５１３０を読み出す。ステップＳ１９０２で、文書情報解析部は、処理情報オフセット５１３０に従い、処理情報５２２０をアドレス順に読み出して、ハードウェア構成（コア数）と機能に一致する処理情報（処理指示オフセット）を検出する。ステップＳ１９０３で、文書情報解析部は、ステップＳ１９０２で一致する処理情報が検出されたかを判定する。ステップＳ１９０２で検出された場合、ステップＳ１９０４で、文書情報解析部は、検出された処理指示オフセットにより、処理指示部５２３０の処理指示をワークメモリ３０５に格納する。ステップＳ１９０２で処理情報が検出されなかった場合、ステップＳ１９０５で、文書情報解析部は、処理指示として、シングル・プレビューの処理指示５２３２をワークメモリ３０５に格納する。なお、本実施例では、プレビューの場合、画像処理装置１０３で処理を実行するので、並列処理の処理情報として、文書情報のデュアル・プレビューの処理指示５２３４が読みだされる。
【００４７】
図１０のフローの説明に戻る。ステップＳ１７１０で、並列処理管理部は、ワークメモリ３０５の処理指示を読み出し、マルチコアＣＰＵによる並列処理を指示するものであるかを判定する。Ｓ１７１０にて並列処理であると判定された場合、並列処理管理部は、ステップＳ１７１１で、読みだされた並列処理の処理指示に従い、プレビュー表示するページに関する各プロセッサのプレビュー用描画オブジェクトのＩＤリストを取得する。ステップＳ１７１２で、並列処理管理部は、ＣＰＵ３１８のプロセッサ１（中間コード生成部）に、ステップＳ１７０４で読みだされた処理指示と、プロセッサ１の処理すべき描画オブジェクトのＩＤリストとを渡して描画オブジェクトの中間コード生成の処理依頼をする。ステップＳ１７１３で、並列処理管理部は、ＣＰＵ３１８のプロセッサ２（中間コード生成部）に、ステップＳ１７０４で読みだされた処理指示と、プロセッサ２の処理すべき描画オブジェクトのＩＤリストとを渡して描画オブジェクトの中間コード生成の処理依頼をする。ステップＳ１７１４で、並列処理管理部は、プロセッサ１，２の中間コード生成処理の終了通知待ちをする。プロセッサ１及び２から処理の終了通知がきたら、ステップＳ１７１５で、並列処理管理部は、プロセッサ１，２の中間コード生成部で生成されてフレームバッファ３０６に格納された中間コードを結合し、ワークメモリ３０５に格納する。ステップＳ１７１６で、展開処理部は、結合された中間コードをワークメモリ３０５から読み出してレンダリングし、ラスタメモリ３０７に画像を格納する。ステップＳ１７１７で、並列処理管理部は、ラスタメモリ３０７に格納されたラスタイメージを読み出し、パネルＩ／Ｆ３２０を介して表示パネル３２１にプレビュー画像を表示する。
【００４８】
ステップＳ１７１０にて並列処理ではないと判定された場合、並列処理管理部は、ステップＳ１７５１で、文書情報のシングル・プレビューの処理指示５２３２に基づいて、プレビュー表示するページに関するプレビュー用描画オブジェクトのＩＤリストを取得する。ステップＳ１７５２で、並列処理管理部は、ＣＰＵ３１８のプロセッサ（中間コード生成部）に、ステップＳ１７０４で読みだされた処理指示と、処理すべき描画オブジェクトのＩＤリストとを渡して描画オブジェクトの中間コード生成の処理依頼をする。ステップＳ１７５３で、並列処理管理部は、中間コード生成の処理終了通知待ちをする。プロセッサから処理の終了通知を受信したら、ステップＳ１７１６へ処理を移行する。ステップＳ１７１６以降の処理は前述したとおりである。
【００４９】
一方、ユーザが選択した機能が印刷の場合、ステップＳ１７０５で、文書情報解析部は、文書情報５０００を解析する。印刷の場合の文書情報解析のフローについて、プレビューの場合の図１２を用いて説明する。印刷の場合もプレビューの場合と同様の処理フローをとる。違いは、ステップＳ１９０２で処理情報が検出されなかった場合の、ステップＳ１９０５の処理である。ステップＳ１９０５で、文書情報解析部は、処理指示として、シングル・印刷の処理指示５２３１をワークメモリ３０５に格納する。それ以外はプレビューの場合と同様である。なお、本実施例では、印刷の場合、画像処理装置１０３で処理を実行するので、並列処理の処理情報として、デュアル・印刷の処理指示５２３４が読みだされる。
【００５０】
図１０のフローの説明に戻る。ステップＳ１７２０で、並列処理管理部は、ワークメモリ３０５の処理指示を読み出し、マルチコアＣＰＵによる並列処理を指示するものであるかを判定する。Ｓ１７２０にて並列処理であると判定された場合、並列処理管理部は、ステップＳ１７２１で、さらに、読みだされた処理指示の並列処理方法がページ並列であるかを判定する。ステップＳ１７２１でページ並列であると判定された場合、ステップＳ１７３０で、並列処理管理部は、図２（ｂ２）の各プロセッサのページＩＤリストを取得する。ステップＳ１７３１で、並列処理管理部は、ＣＰＵ３１８のプロセッサ１（中間コード生成部）に、ステップＳ１７０５で読みだされた処理指示と、取得したプロセッサ１のページリストとを渡し、描画オブジェクトの中間コード生成の処理依頼をする。ステップＳ１７３２で、並列処理管理部は、ＣＰＵ３１８のプロセッサ２（中間コード生成部）に、ステップＳ１７０５で読みだされた処理指示と、取得したプロセッサ２のページリストとを渡し、描画オブジェクトの中間コード生成の処理依頼をする。ステップＳ１７３３で、並列処理管理部は、プロセッサ１，２（中間コード生成部）からのページ毎の中間コード生成処理の終了通知待ちをする。プロセッサ１，２（中間コード生成部）のいずれかから終了通知がきた場合、ステップＳ１７３４で、展開処理部は、フレームバッファ３０６に格納された中間コードをレンダリングし、ラスタメモリ３０７にラスタイメージを格納する。ステップＳ１７３５で、並列処理管理部は、印刷すべき全ページのレンダリングの終了を待つ。全ページのレンダリングが終了した場合、ステップＳ１７３６で、並列処理管理部は、ラスタメモリ３０７に格納されたラスタイメージを読み出し、エンジンＩ／Ｆ３１２を介してプリンタエンジン３１３に出力し、印刷する。ステップＳ１７３５で、全ページ終了の判定まで、ステップＳ１７３３〜ステップＳ１７３５を繰り返し実行する。
【００５１】
ステップＳ１７２１にて処理指示の並列処理方法がページ並列でない、すなわちオブジェクト並列の場合、ステップＳ１７４０で、並列処理管理部は、図２（ｂ３）の各プロセッサの描画オブジェクトのＩＤリストを取得する。ステップＳ１７４１で、並列処理管理部は、ＣＰＵ３１８のプロセッサ１（中間コード生成部）に、ステップＳ１７０５で読みだされた処理指示と、取得したプロセッサ１の描画オブジェクトのＩＤリストとを渡し、描画オブジェクトの中間コード生成の処理依頼をする。ステップＳ１７４２で、並列処理管理部は、ＣＰＵ３１８のプロセッサ２（中間コード生成部）に、ステップＳ１７０５で読みだされた処理指示と、取得したプロセッサ２の描画オブジェクトのＩＤリストとを渡し、描画オブジェクトの中間コード生成の処理依頼をする。ステップＳ１７４３で、並列処理管理部は、プロセッサ１，２の中間コード生成処理の終了通知待ちをする。ステップＳ１７４３にてプロセッサ１及び２から中間コード生成処理の終了通知がきたら、並列処理管理部は、ステップＳ１７４４で、プロセッサ１，２の中間コード生成部で生成されてフレームバッファ３０６に格納された中間コードを結合し、ワークメモリ３０５に格納する。ステップＳ１７４５で、展開処理部は、結合された中間コードをワークメモリ３０５から読み出してレンダリングし、ラスタメモリ３０７に画像を格納する。その後、ステップＳ１７３６で、並列処理管理部は、ラスタメモリ３０７に格納された画像を読み出し、エンジンＩ／Ｆ３１２を介してプリンタエンジン３１３に出力し、印刷する。
【００５２】
ステップＳ１７２０にて並列処理ではないと判定された場合、並列処理管理部は、ステップＳ１７６１で、シングル・印刷の処理指示５２３１に基づいて、印刷するページに関する印刷用描画オブジェクトのＩＤリストを取得する。ステップＳ１７６２で、並列処理管理部は、ＣＰＵ３１８のプロセッサ（中間コード生成部）に、ステップＳ１７０５で読みだされた処理指示と、処理すべき描画オブジェクトのＩＤリストとを渡して描画オブジェクトの中間コード生成の処理依頼をする。ステップＳ１７６３で、並列処理管理部は、プロセッサからのページ毎の中間コード生成処理の終了通知待ちをする。プロセッサから終了通知がきた場合、ステップＳ１７６４で、展開処理部は、フレームバッファ３０６に格納された中間コードをレンダリングし、ラスタメモリ３０７にラスタイメージを格納する。ステップＳ１７６５で、並列処理管理部は、印刷すべき全ページのレンダリングの終了を待つ。全ページのレンダリングが終了した場合、ステップＳ１７３６で、並列処理管理部は、ラスタメモリ３０７に格納されたラスタイメージを読み出し、エンジンＩ／Ｆ３１２を介してプリンタエンジン３１３に出力し、印刷する。ステップＳ１７６５で全ページ終了と判定されるまで、ステップＳ１７６３〜ステップＳ１７６５は繰り返し実行される。
【００５３】
図１１は、画像形成装置１０３におけるＣＰＵ３１８の各プロセッサ（中間コード生成部）での処理のフローを示した図であり、ＣＰＵ３１８がＲＯＭ２０８に予め格納された中間コード生成プログラム３１０をワークメモリ３０５上で実行することで実現される。る。ステップＳ１８０１で、中間コード生成部は、ステップＳ１７１２、Ｓ１７１３、Ｓ１７３１、Ｓ１７３２、Ｓ１７４１、Ｓ１７４２、Ｓ１７５２、Ｓ１７６２での並列処理管理部から渡された処理指示に基づいて、処理方法がオブジェクト並列であるかを判定する。オブジェクト並列の場合、中間コード生成部は、ステップＳ１８１１でオブジェクト並列の処理依頼と共に渡された描画オブジェクトのＩＤリストを参照し、ステップＳ１８１２でＩＤリストのＩＤとオブジェクトテーブル５３００に基づいて、描画オブジェクトを取得する。ステップ１８１４で、中間コード生成部は、取得した描画オブジェクトから中間コードを生成し、フレームバッファ３０６に格納する。全オブジェクトの中間コード生成が終了するまで、ステップＳ１８１１〜ステップＳ１８１５を繰り返し実行する。全オブジェクトの中間コード生成が終了すると、ステップＳ１８１６で、中間コード生成部は、終了通知を並列処理管理部に送信する。
【００５４】
一方、並列処理方法がページ並列の場合は、ステップＳ１８２０で、中間コード生成部は、ページ並列の処理依頼と共に渡された図２（ｂ２）で示したプロセッサのページリストを参照する。ステップＳ１８２１で、中間コード生成部は、ページリストの各ページに含まれる描画オブジェクトのＩＤリストを参照し、ステップＳ１８２２で、中間コード生成部は、このＩＤリストとオブジェクトテーブル５３００に基づいて、描画オブジェクトを取得する。ステップ１８２４で、中間コード生成部は、取得した描画オブジェクトから中間コードを生成し、フレームバッファ３０６に格納する。全オブジェクトの中間コード生成が終了するまで、ステップＳ１８２１〜ステップＳ１８２５は繰り返し実行される。全オブジェクトの中間コード生成が終了すると、ステップＳ１８２６で、中間コード生成部は、ページの中間コード生成処理の終了通知を並列処理管理部に送信する。渡されたページリストの全ページが終了するまで、プロセッサは、ステップＳ１８２０〜ステップＳ１８２７を繰り返し実行する。
【００５５】
以上説明した本発明の本実施例によると、マルチコアＣＰＵにおいては、効率的な並列処理を実現し、様々な機能のパフォーマンスをさらに高めることができる。
【００５６】
本実施例において、画像形成装置１０２はＰＤＬデータを解析して文書情報５０００を生成したが、スキャナ２２１で読み取った読取画像情報を解析し、この読取画像情報から複数オブジェクト（図形、イメージ、文字）を読み出して、文書情報５０００を生成するものであっても良い。
【００５７】
また本実施例では、文書情報５０００を生成する画像形成装置１０２と生成された文書情報５０００の処理情報に基づいて出力の処理を実行する画像形成装置１０３とによって、本発明の画像処理システムを実現している。しかし、本発明を、上述した画像形成装置１０２及び１０３の画像処理を同一の画像形成装置によって実行させることで実現しても良い。
【００５８】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、本発明委は、上述した実施例の機能を、これらの機能を果たす電子回路によっても実現される。
【図１】
2012093838.tif 000003
【図２】
2012093838.tif 000004
【図３】
2012093838.tif 000005
【図４】
2012093838.tif 000006
【図５】
2012093838.tif 000007
【図６】
2012093838.tif 000008
【図７】
2012093838.tif 000009
【図８】
2012093838.tif 000010
【図９】
2012093838.tif 000011
【図１０】
2012093838.tif 000012
【図１１】
2012093838.tif 000013
【図１２】
2012093838.tif 000014
【図１３】
2012093838.tif 000015