JP2012093838A - Image processing system, image processing device, image processing method, and computer program - Google Patents
Image processing system, image processing device, image processing method, and computer program Download PDFInfo
- Publication number
- JP2012093838A JP2012093838A JP2010238689A JP2010238689A JP2012093838A JP 2012093838 A JP2012093838 A JP 2012093838A JP 2010238689 A JP2010238689 A JP 2010238689A JP 2010238689 A JP2010238689 A JP 2010238689A JP 2012093838 A JP2012093838 A JP 2012093838A
- Authority
- JP
- Japan
- Prior art keywords
- information
- intermediate code
- objects
- processing
- generating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
Description
本発明は、電子文書の処理方法を制御する画像処理装置、画像処理方法、コンピュータプログラムに関する。 The present invention relates to an image processing apparatus, an image processing method, and a computer program that control an electronic document processing method.
複写機の高機能化は目覚しく、コピーおよびプリント機能に加えてスキャナおよびファックス機能、また、画像をディスプレイに表示するプレビュー機能をもつ複合機が市場の主流になった。オフィスにおける複合機は、大量の電子データをデータベース化し、管理できる機能を備え、ネットワーク環境に接続されるパーソナルコンピュータ(PC)、他の複合機、プリンタと連携して文書管理システムを形成することが可能となっている。 The advanced functions of copiers have been remarkable. In addition to copying and printing functions, multifunction machines with scanner and fax functions and preview functions for displaying images on a display have become mainstream in the market. A multifunction device in an office has a function for creating and managing a large amount of electronic data as a database, and can form a document management system in cooperation with a personal computer (PC) connected to a network environment, other multifunction devices, and a printer. It is possible.
電子データ化された文書(電子文書)は、紙文書を複合機のスキャナで読み込んだり、PCのアプリケーションにより作成されたりすることによって生成される。この電子文書は例えばPDF(Portable Document Format)等のフォーマットで、ネットワーク上または複合機自身がもつデータベースに保存される。 A document converted into electronic data (electronic document) is generated by reading a paper document with a scanner of a multi-function peripheral or creating it with an application of a PC. This electronic document is stored in a database such as PDF (Portable Document Format) or the like on the network or in the multifunction peripheral itself.
アプリケーションによって作成された電子文書は、図形や写真、文字といった属性に分類できる各種オブジェクトを含んでいる。このような各種オブジェクトを有する電子文書に対して、印刷、プレビュー等の各機能を実行する上で、各機能の実行時の処理時間を短縮する最適なデータを有する電子文書を生成する技術が開示されている。特許文献1では、印刷、プレビュー等の各機能の実行時に、短時間で処理できるようにするため、電子文書中のオブジェクトから予め各機能に適した描画オブジェクトを生成しておき、選択された各機能に従い最適な描画オブジェクトを用いて処理を実行する。
An electronic document created by an application includes various objects that can be classified into attributes such as graphics, photographs, and characters. Disclosed is a technique for generating an electronic document having optimal data that shortens processing time when executing each function such as printing and previewing on an electronic document having such various objects. Has been. In
また、近年、ハードウェア技術の向上により、マルチコアのCPUが開発され、PC等では、複数のアプリケーションの同時実行が可能となっている。複合機においても、印刷、プレビュー等の複数の機能の実行速度向上のために、マルチコアのCPUが搭載されるようになっている。印刷においては、マルチコアCPUで並列処理を効率よく行なうために、並列処理をページ記述言語(PDL)により指示するようにしている(特許文献2)。 In recent years, multi-core CPUs have been developed due to improvements in hardware technology, and a PC or the like can simultaneously execute a plurality of applications. Multi-function machines are also equipped with a multi-core CPU in order to improve the execution speed of a plurality of functions such as printing and preview. In printing, in order to efficiently perform parallel processing by a multi-core CPU, parallel processing is instructed by a page description language (PDL) (Patent Document 2).
しかし、特許文献1は、マルチコアCPUといったコア数を考慮してはおらず、例えばマルチコアCPUを搭載した複合機において、マルチコアといったハードウェア構成を十分に活かした処理方法を開示してはいない。また、特許文献2に開示される並列処理指示方法では、印刷に対しては最適な並列処理を実現できても、印刷だけでなくプレビューも含めた様々な機能において最適な並列処理を実現することはできない。
However,
上述した課題を解決するために本発明の画像処理システムは、複数のオブジェクトを含む画像情報を取得するための取得手段と、前記複数のオブジェクトそれぞれを出力ユニットの機能に応じたデータに変換することにより、複数の変換後オブジェクトを生成するオブジェクト生成手段と、前記複数の変換後オブジェクトから中間コードを生成する処理ユニットを複数備える中間コード生成手段と、前記中間コードの生成における前記複数の処理ユニットそれぞれにかかる部分負荷を予測する負荷予測手段と、前記負荷予測手段の予測する部分負荷に基づいて、前記中間コード生成手段で前記複数の変換後オブジェクトから前記中間コードを生成する際にかかる負荷を、前記複数の処理ユニットの間で平準化するための平準化情報を生成する平準化情報生成手段と、前記平準化情報を前記複数の変換後オブジェクトと関連付ける関連付け手段と、前記複数の変換後オブジェクトと前記平準化情報とを有する文書情報を生成する文書情報生成手段と、を有することを特徴とする。 In order to solve the above-described problems, an image processing system according to the present invention includes an acquisition unit for acquiring image information including a plurality of objects, and converts each of the plurality of objects into data corresponding to the function of the output unit. The object generation means for generating a plurality of converted objects, the intermediate code generation means including a plurality of processing units for generating intermediate code from the plurality of converted objects, and the plurality of processing units in the generation of the intermediate code, respectively Load prediction means for predicting a partial load applied to the load, and a load applied when the intermediate code is generated from the plurality of converted objects by the intermediate code generation means based on the partial load predicted by the load prediction means, Generate leveling information for leveling between the plurality of processing units Normalized information generating means, associating means for associating the leveled information with the plurality of converted objects, document information generating means for generating document information having the plurality of converted objects and the leveled information, It is characterized by having.
本発明は、電子文書の印刷、プレビュー等の様々な機能と、処理を実行する装置のハードウェア構成とを考慮して装置の実行する処理方法を変更することができる。 The present invention can change the processing method executed by the apparatus in consideration of various functions such as printing and previewing an electronic document and the hardware configuration of the apparatus executing the process.
(実施例1)
以下、本発明を実施するための最良の形態について図面を用いて説明する。図1は、本発明における画像形成装置102、103の構成の一例を示す図である。
Example 1
The best mode for carrying out the present invention will be described below with reference to the drawings. FIG. 1 is a diagram illustrating an example of the configuration of the
本実施例において、画像形成装置102は文書情報5000を生成するための画像処理を実行する装置である。画像形成装置102によって生成される文書情報5000については後述する。202はPC等の外部デバイスと情報の入出力を行うためのネットワークI/Fであり、外部デバイスから送信された印刷画像情報(PDLデータ)を受信する。220は文書画像の読み取り部であるスキャナ221から文書画像の読取画像情報を取得するためのスキャナI/Fであり、スキャナ221からの読取画像情報を受信バッファへと送信する。218は画像形成装置102の演算処理や制御を行う中央演算処理装置(CPU)である。203は様々な情報を一時格納するRAMである。RAM203は、受信バッファ204、ワークメモリ205を有する。受信バッファ204は、ネットワークI/F202を介して受信した印刷画像情報(PDLデータ)、及び、スキャナI/Fを介して受信した読取画像情報を格納するメモリである。なおPDLデータはページ記述言語(PDL)で書かれているデータであり、印刷画像情報はPDLによって印刷すべきオブジェクトについての情報が記述されている。オブジェクトとは、例えば2点間を結ぶ線分のことである。オブジェクトについての情報とは、例えば2点を指定してその間を結ぶ線分を描画せよといった描画命令である。205は、CPU218が処理を実行するときに一時的に使用するワークメモリである。
In this embodiment, the
208は、画像形成装置102におけるCPU218の制御プログラムを格納するROMである。ROM208は、解析プログラム209、オブジェクト生成プログラム210、スケジューラプログラム215、文書管理プログラム216を格納している。CPU218はこれらのプログラムをワークメモリ205にロードし実行することで、解析部、オブジェクト生成部、スケジューラ、文書管理部の各機能を実現する。解析部は、受信バッファ204から読み出したPDLデータを解析し、PDLデータ内の描画命令を読み出す。オブジェクト生成部は、解析部により読み出されたオブジェクトの描画命令からオブジェクトを特定し、このオブジェクトから描画オブジェクトを生成する。また、オブジェクト生成部は、描画オブジェクトから中間コードを生成する際の部分負荷を予測する。ここでいう描画オブジェクトとは、例えば線分を描画するための点列データである。スケジューラは、オブジェクト生成部により生成された描画オブジェクトと部分負荷に基づいて、並列処理するときの分散処理見積もりを行ない、処理情報(平準化情報)を生成する。文書管理部は、オブジェクト生成部により生成された描画オブジェクトと処理情報とを関連付けてHDD217に格納し、1つの文書情報5000として管理する。本実施例において、文書情報5000は、1つのPDLデータにつき1つ生成され、1つのオブジェクトにつき1又は複数の描画オブジェクトが含まれている。212はプリンタエンジン213との信号の入出力を行うエンジンI/Fである。213はラスタイメージに基づいて、周知の電子写真プロセスによって感光ドラム上に現像剤像を形成し、この現像剤像を用紙に転写して定着を行うプリンタエンジンである。
A
本実施例において、画像形成装置103はHDD217に格納された文書情報5000に従って、印刷、プレビュー等の出力ユニットの機能のための画像処理を実行する装置である。302は画像形成装置102のHDD217から文書情報5000を取得するためのネットワークI/Fである。318は、画像形成装置103の演算処理や制御を行う中央演算処理装置(CPU)であり、複数のプロセッサ(処理ユニット)を備えている。303は様々な情報を一時格納するRAMである。RAM303は、受信バッファ304、ワークメモリ305、フレームバッファ306、ラスタメモリ307を有する。受信バッファ304は、ネットワークI/F302を介して受信した文書情報5000を格納するメモリである。305は、CPU318が各処理を実行する過程で使用されるワークメモリである。306は、後述する中間コード生成部で生成された中間コードを格納するフレームバッファである。307は、フレームバッファ306に格納された中間コードが展開されたラスタイメージを格納するラスタメモリである。
In this embodiment, the
308は、画像形成装置103におけるCPU318の制御プログラムを格納するROMである。ROM308には、並列処理管理プログラム311、文書情報解析プログラム309、中間コード生成プログラム310、展開処理プログラム314が格納されている。CPU318はこれらのプログラムをワークメモリ305にロードし実行することで、並列処理管理部、文書情報解析部、中間コード生成部、展開処理部の各機能を実現する。並列処理管理部は、受信バッファ304から読み出した文書情報5000の処理情報513を参照し、CPU318の複数のプロセッサで動作する解析部、中間データ生成部に処理を依頼する。解析部は、並列処理管理部から処理依頼された文書情報5000を解析する。中間コード生成部は、文書情報5000に含まれる描画オブジェクトから中間コードを生成し、フレームバッファ306に格納する。展開処理部は、フレームバッファ306に格納された中間コードを展開したラスタイメージをラスタメモリ307に格納する。
A
312はプリンタエンジン313との信号の入出力を行うエンジンI/Fである。313はラスタイメージに基づいて、周知の電子写真プロセスによって感光ドラム上に現像剤像を形成し、この現像剤像を用紙に転写して定着させるプリンタエンジンである。321は、ラスタイメージに基づいて、このラスタイメージをパネルに表示する表示パネルである。320は、表示パネル321との信号の入出力を行うパネルI/Fである。なお、以下の本実施例では、画像形成装置103がデュアルコアのCPUを搭載しており、機能としては印刷とプレビューのみであるものとして説明するが、本発明はこのようなコア数(プロセッサ数)、機能に限られるものではない。また、本実施例では、オブジェクトの属性は図形、写真、文字の何れかに分類されるものとして説明するが、本発明はこれらの属性に限られるものではない。
図2は、本実施例のHDD217に格納される文書情報5000のフォーマット一例を示す図である。図2(a)は、文書情報5000の全体のフォーマットを示す図であり、ヘッダ5100、文書情報の描画オブジェクトなどを格納するオブジェクト部5200、この描画オブジェクトの格納位置を示すオブジェクトテーブル5300を有する。
FIG. 2 is a diagram showing an example of the format of the
ヘッダ5100は、フォーマット特定情報5110、オブジェクトテーブルオフセット5120、処理情報オフセット5130を含む。フォーマット特定情報5110は、文書情報5000のフォーマットを特定するための識別子である。オブジェクトテーブルオフセット5120は、オブジェクトテーブル5300の格納位置(オブジェクトテーブル5300の先頭アドレス)を示す。処理情報オフセット5130は、シングルコア、デュアルコア等のCPUといった文書情報5000を処理する装置のハードウェア構成と、印刷、プレビュー等の各機能とに適した処理方法を指示する処理情報5220の格納位置(処理情報5220の先頭アドレス)を示す。
The header 5100 includes
オブジェクト部5200は、描画オブジェクト部5210、処理情報5220、処理指示部5230を含む。
The
描画オブジェクト部5210は、印刷、プレビュー等の各機能に対応する描画オブジェクト(変換後オブジェクト)を含む。本実施例において、画像形成装置の機能は印刷とプレビューであるので、描画オブジェクト部5210には、各オブジェクトの印刷用とプレビュー用の描画オブジェクトが格納されている。図13は、文書情報の描画オブジェクト一例を示した図である。図13の文書情報の描画オブジェクトは、点列700、文字701、イメージ702から構成される。点列700は、複数のX、Y座標の点列情報からなる。文字701は、描画位置X、Yと、描画する文字に対応するフォントIDと、描画サイズのポイント数からなる。イメージ702は、描画位置X、Yと、幅、高さ、階調からなる。文書情報には、これらの描画オブジェクトが一つまたは複数含まれている。
The
処理情報5220は、シングル・印刷の処理指示オフセット5221、シングル・プレビューの処理指示オフセット5222、デュアル・印刷の処理指示オフセット5223、デュアル・プレビューの処理指示オフセット5224を含む。処理情報5220内の各情報は、処理方法を指示する情報が格納されている処理指示部5230の格納位置の情報(アドレス)である。シングル・印刷の処理指示オフセット5221は、シングルコアCPUの画像形成装置で印刷機能を実行する場合の処理方法を指示するシングル・印刷の処理指示5231の格納位置を示す。シングル・プレビューの処理指示オフセット5222は、シングルコアCPUの画像形成装置でプレビュー機能を実行する場合の処理方法を指示するシングル・プレビューの処理指示5232の格納位置を示す。デュアル・印刷の処理指示オフセット5223は、デュアルコアCPUの画像形成装置で印刷機能を実行する場合の処理方法を指示するデュアル・印刷の処理指示5233の格納位置を示す。デュアル・プレビューの処理指示オフセット5224は、デュアルコアCPUの画像形成装置103でプレビュー機能を実行する場合の処理方法を指示するデュアル・プレビューの処理指示5234の格納位置を示す。
The
処理指示部5230の説明を行う。シングル・印刷の処理指示5231の内容は、ページ毎の印刷用描画オブジェクトのIDリスト(後述)である。シングル・プレビューの処理指示5232の内容は、ページ毎のプレビュー用描画オブジェクトのIDリストである。デュアル・印刷の処理指示5233の内容は、並列処理方法と、この並列処理方法に基づくプロセッサ1及びプロセッサ2の処理する印刷用描画オブジェクトのIDリスト又はページIDリストである。デュアル・プレビューの処理指示5234の内容は、並列処理方法と、この並列処理方法に基づくプロセッサ1及びプロセッサ2の処理するプレビュー用描画オブジェクトのIDリストである。
The processing instruction unit 5230 will be described. The content of the single /
並列処理方法は、並列処理の方法を指定するパラメータで、本実施例では、オブジェクト並列、ページ並列の2種類から指定する。オブジェクト並列とは、同一ページ内に含まれる複数の描画オブジェクトを、描画オブジェクト単位で複数のプロセッサに割り当て中間コードの生成処理を並列に行なう方法である。ページ並列は、複数のページの文書情報について、ページ単位で複数のプロセッサに割り当て中間コード生成処理を並列に行なう方法である。並列処理方法による、各プロセッサの処理内容の違いは図2(b1)、(b2)を用いて後述する。なお、この処理指示部5230の処理指示の個数は、本実施例では4つであるが、コア数、画像形成装置の機能数に応じ増減しても良い。つまり、デュアルコアの他、クアッドコアCPUのハードウェア構成用に処理指示の数を増やしても良い。また、印刷、プレビューの他の機能用に処理指示の数を増やしても良い。 The parallel processing method is a parameter for specifying a parallel processing method. In this embodiment, the parallel processing method is specified from two types of object parallel and page parallel. The object parallel is a method of assigning a plurality of drawing objects included in the same page to a plurality of processors in units of drawing objects and performing intermediate code generation processing in parallel. Page parallel is a method of assigning intermediate code generation processing in parallel to a plurality of processors in units of pages for document information of a plurality of pages. The difference in processing contents of each processor due to the parallel processing method will be described later with reference to FIGS. 2 (b1) and 2 (b2). The number of processing instructions of the processing instruction unit 5230 is four in this embodiment, but may be increased or decreased according to the number of cores and the number of functions of the image forming apparatus. That is, in addition to the dual core, the number of processing instructions may be increased for the hardware configuration of the quad core CPU. Further, the number of processing instructions may be increased for other functions of printing and previewing.
次にオブジェクトテーブル5300について説明する。オブジェクトテーブル5300は、オブジェクト部5200の描画オブジェクト部5210に格納される各描画オブジェクトの格納位置を示すテーブルである。このオブジェクトテーブル5300は、描画オブジェクトのIDからこのIDに対応する描画オブジェクトの格納位置を参照するために利用される。
Next, the object table 5300 will be described. The object table 5300 is a table indicating the storage position of each drawing object stored in the
並列処理方法による、各プロセッサの処理内容の違いを図2(b1)、(b2)を用いて説明する。図2(b1)は、並列処理方法がオブジェクト並列である場合の各プロセッサの処理内容を示した図である。図2(b1)では、プロセッサ1の処理内容として、ページ毎の、プロセッサ1の処理すべき描画オブジェクトのIDリストが指定され、プロセッサ2の処理内容として、ページ毎の、プロセッサ2の処理すべき描画オブジェクトのIDリストが指定される。
A difference in processing contents of each processor according to the parallel processing method will be described with reference to FIGS. 2B1 and 2B2. FIG. 2B1 is a diagram showing the processing contents of each processor when the parallel processing method is object parallel. In FIG. 2B1, the ID list of the drawing object to be processed by the
図2(b2)は、並列処理方法がページ並列である場合の各プロセッサの処理内容を示した図である。図2(b2)では、プロセッサ1の処理方法として、プロセッサ1の処理すべきページIDのリストが指定され、プロセッサ2の処理方法として、プロセッサ2の処理すべきページIDのリストが指定される。この場合、指定されるページIDはプロセッサ1及び2の間で重複しないようになっている。このページIDは、処理すべきページを一意に識別するものであり、ページ内の全描画オブジェクトIDを取得するためのアドレスに対応している。例えば、ページ並列のデュアル・印刷の処理指示5233の場合、ページIDは、シングル・印刷の処理指示5231の、このページIDに対応するページの印刷用描画オブジェクトIDリストへのアドレスである。
FIG. 2 (b2) is a diagram showing the processing contents of each processor when the parallel processing method is page parallel. In FIG. 2B2, a list of page IDs to be processed by the
図3は、画像形成装置102における文書情報5000の生成フローを示した図である。図3のフローは、ROM208に予め格納された各プログラム(解析プログラム209、オブジェクト生成プログラム210、スケジューラプログラム215、文書管理プログラム216)をCPU218がワークメモリ205上に展開、実行して、CPUを各機能部(解析部、オブジェクト生成部、スケジューラ、文書管理部)として機能させることで実現される。ステップS1001で、CPU218は、ネットワーク104に接続された外部機器からネットワークI/F202を介して入力されたPDLデータを受信バッファ204に格納する。ステップS1002で、解析部は、受信バッファ204に格納されたPDLデータを読み出し、解析処理を実行する。ステップS1003で、解析部は、PDLデータの解析終了(ジョブ終了)かを判定する。ジョブ終了以外の場合、ステップS1010で、オブジェクト生成部は、描画オブジェクトの生成や生成した描画オブジェクトの部分負荷の予測(後述)を実行する。ステップS1003で、解析部がジョブ終了と判定した場合、スケジューラは、ステップS1020で印刷用処理情報(印刷機能に対する平準化情報)、ステップS1021でプレビュー用処理情報(プレビュー機能に対する平準化情報)を生成する。印刷用処理情報、プレビュー用処理情報は、ステップS1010で生成した描画オブジェクトの予測負荷値(後述)をもとに生成される。ステップS1022で、文書管理部は、生成された印刷用処理情報及びプレビュー用処理情報をステップS1010にて生成した描画オブジェクトと関連付ける。なお、以上のステップで生成されたデータはワークメモリ205上に一時的に格納されている。そして、ステップS1023で、文書管理部は、以上のステップで生成されたデータを文書情報5000として、データベースであるHDD217に格納する。なお、データベースは画像形成装置102の内部に限らず、画像形成装置103内部やネットワーク104上に設けられても良い。
FIG. 3 is a diagram illustrating a flow of generating
図4は、ステップS1010の描画オブジェクトの生成および部分負荷予測のフローを示した図であり、CPU218が、ROM208に予め格納されたオブジェクト生成プログラムを、ワークメモリ205上で展開、実行することで実現される。ステップS1101で、オブジェクト生成部は、解析部で取得した解析情報(描画オブジェクトの描画命令)から印刷時に用いられる印刷用描画オブジェクトを生成し、文書情報5000の描画オブジェクト部5210用としてワークメモリ205に格納する。ステップS1102で、オブジェクト生成部は、生成した印刷用描画オブジェクトの部分負荷の予測を行なう。ここでいう部分負荷とは、描画オブジェクトを中間コードに変換するプロセッサにかかる負荷である。ステップS1103で、オブジェクト生成部は、文書情報5000のオブジェクトテーブル5300用としてステップS1101で生成した印刷用描画オブジェクトの格納位置を特定する情報をワークメモリ205に追加する。また、ステップS1104で、オブジェクト生成部は、格納された印刷用描画オブジェクトに対しオブジェクトIDを割り振り、文書情報5000のシングル・印刷の処理指示5231のページ毎の描画オブジェクトIDリスト用として、このオブジェクトIDをワークメモリ205に追加する。
FIG. 4 is a diagram showing the flow of drawing object generation and partial load prediction in step S1010, which is realized by the
ステップS1105で、オブジェクト生成部は、この描画オブジェクトの属性が図形(点列データ)であるかを判定する。この描画オブジェクトが点列データと判定された場合、ステップS1110で、オブジェクト生成部は、この描画オブジェクトの点列データをプレビュー用に低解像度(例えば解像度75dpi)の座標に変換する。ステップS1111で、オブジェクト生成部は、この変換後の点列データ中に、座標が同じ又は隣接する点列が存在するかどうかを判定する。存在すると判定された場合は、ステップS1112で、オブジェクト生成部は、座標が同じまたは隣接する点列のいずれかの一点を削除した描画オブジェクトを生成し、文書情報5000の描画オブジェクト部5210用としてワークメモリ205に格納する。すなわち印刷用描画オブジェクトの点列データから数点を間引いたプレビュー用描画オブジェクトが生成される。存在しないと判定された場合は、ステップS1150へ処理が移行し、印刷用描画オブジェクトをプレビュー用描画オブジェクトとする。
In step S1105, the object generation unit determines whether the attribute of the drawing object is a graphic (point sequence data). If it is determined that the drawing object is point sequence data, in step S1110, the object generation unit converts the point sequence data of the drawing object into coordinates of a low resolution (for example, resolution of 75 dpi) for preview. In step S <b> 1111, the object generation unit determines whether there is a point sequence having the same or adjacent coordinates in the converted point sequence data. If it is determined that the object exists, in step S1112, the object generation unit generates a drawing object from which one point of the same or adjacent point sequence is deleted, and the work is used as the
ステップS1150で、オブジェクト生成部は、生成したプレビュー用描画オブジェクトの部分負荷の予測を行なう。ステップS1151で、オブジェクト生成部は、文書情報5000のオブジェクトテーブル5300用として、ワークメモリ205にステップS1112でプレビュー用描画オブジェクトとした描画オブジェクトの格納位置を特定する情報を追加する。また、ステップS1152で、オブジェクト生成部は、格納されたプレビュー用描画オブジェクトに対しオブジェクトIDを割り振り、文書情報5000のシングル・プレビューの処理指示5232のページ毎の描画オブジェクトIDリスト用として、このオブジェクトIDをワークメモリ205に追加する。
In step S1150, the object generation unit predicts a partial load of the generated preview drawing object. In step S1151, the object generation unit adds information for specifying the storage position of the drawing object that has been set as the drawing object for preview in step S1112 to the work memory 205 for the object table 5300 of the
ステップS1105で、描画オブジェクトの属性が図形ではないと判定された場合、ステップS1120で、オブジェクト生成部は、印刷用描画オブジェクトがイメージであるかを判定する。印刷用描画オブジェクトがイメージであると判定された場合、ステップS1121で、オブジェクト生成部は、イメージの解像度が所定の解像度(例えば300dpi)以上かを判定する。解像度が所定の解像度以上と判定された場合、ステップS1122で、オブジェクト生成部は、イメージを低解像度(例えば75dpi)に変換したプレビュー用描画オブジェクトを生成する。解像度が所定の解像度以上と判定されない場合、ステップS1150へ処理が移行し、プレビュー用描画オブジェクトとして印刷用描画オブジェクトを流用する。点列データ同様、ステップS1150〜S1152でオブジェクト生成部は、プレビュー用の各情報をワークメモリ205に追加する。 If it is determined in step S1105 that the drawing object attribute is not a graphic, in step S1120, the object generation unit determines whether the print drawing object is an image. If it is determined that the print drawing object is an image, in step S1121, the object generation unit determines whether the resolution of the image is equal to or higher than a predetermined resolution (for example, 300 dpi). If it is determined that the resolution is equal to or higher than the predetermined resolution, in step S1122, the object generation unit generates a preview drawing object in which the image is converted to a low resolution (for example, 75 dpi). If it is not determined that the resolution is equal to or higher than the predetermined resolution, the process proceeds to step S1150, and the drawing object for printing is used as the drawing object for preview. Similar to the point sequence data, the object generation unit adds each piece of information for preview to the work memory 205 in steps S1150 to S1152.
ステップS1120で、イメージではないと判定された場合、オブジェクト生成部は、印刷用描画オブジェクトの属性が文字であると判定し、ステップS1131へ処理が移行する。ステップS1131で、オブジェクト生成部は、印刷用描画オブジェクトの文字について文字の大きさが所定のサイズ(例えば10pt)以下かを判定する。所定のサイズ以下であると判定された場合、オブジェクト生成部は、この文字属性を持つ印刷用描画オブジェクトを低解像度(例えば75dpi)の多値イメージに変換し、この多値イメージをプレビュー用描画オブジェクトとする。この文字の多値イメージは文字のエッジ部を強調するように階調が調整されたイメージである。所定のサイズ以下ではないと判定された場合、ステップS1152へ処理が移行し、印刷用描画オブジェクトをプレビュー用描画オブジェクトとする。そして、オブジェクト生成部は、点列データ同様、ステップS1150〜S1152でプレビュー用の各情報をワークメモリ205に追加する。 If it is determined in step S1120 that the image is not an image, the object generation unit determines that the attribute of the print drawing object is a character, and the process proceeds to step S1131. In step S1131, the object generation unit determines whether the character size of the print drawing object is equal to or smaller than a predetermined size (for example, 10 pt). If it is determined that the size is equal to or smaller than the predetermined size, the object generation unit converts the drawing object for printing having this character attribute into a low-resolution (for example, 75 dpi) multi-valued image, and the multi-valued image is converted to the preview drawing object. And This multi-valued image of a character is an image whose gradation is adjusted so as to emphasize the edge portion of the character. If it is determined that the size is not less than the predetermined size, the process proceeds to step S1152, and the drawing object for printing is set as the drawing object for preview. Then, similarly to the point sequence data, the object generation unit adds each information for preview to the work memory 205 in steps S1150 to S1152.
図5は、ステップS1102及びステップS1150の部分負荷の予測のフローを示した図であり、CPU218が、ROM208に予め格納されたオブジェクト生成プログラム210をワークメモリ205上で実行することで実現される。ステップS1201で、オブジェクト生成部は、描画オブジェクトが点列であるかを判定する。点列であると判定された場合、ステップS1210で、オブジェクト生成部は、例えば以下の式で予測負荷値を算出する。
点列の予測負荷値=点列数×5
ステップS1201にて描画オブジェクトが点列ではないと判定された場合、ステップS1220で、オブジェクト生成部は、描画オブジェクトがイメージであるか判定する。イメージであると判定された場合、ステップS1221で、オブジェクト生成部は、例えば以下の式で予測負荷値を算出する。
イメージの予測負荷値=イメージの幅×イメージの高さ×階調×0.1
ステップS1220で、イメージでないと判定された場合、オブジェクト生成部は、描画オブジェクトが文字であると判定し、ステップS1222へ処理を移行させる。ステップS1222で、オブジェクト生成部は、例えば以下の式で予測負荷値を算出する。
文字の予測負荷値=文字の幅×文字の高さ×0.5
なお、以上のステップで算出された予測負荷値は、オブジェクト生成部により、ワークメモリ205へ保存される。
FIG. 5 is a diagram showing a partial load prediction flow in steps S1102 and S1150, which is realized by the
Predicted load value of point sequence = number of point sequences x 5
If it is determined in step S1201 that the drawing object is not a point sequence, in step S1220, the object generation unit determines whether the drawing object is an image. If it is determined that the image is an image, in step S1221, the object generation unit calculates a predicted load value using, for example, the following equation.
Predicted image load value = image width × image height × gradation × 0.1
If it is determined in step S1220 that the image is not an image, the object generation unit determines that the drawing object is a character, and shifts the processing to step S1222. In step S1222, the object generation unit calculates a predicted load value using, for example, the following equation.
Expected load value of character = character width × character height × 0.5
Note that the predicted load value calculated in the above steps is stored in the work memory 205 by the object generation unit.
図6は、図3のステップS1020の印刷用処理情報生成のフローを示した図であり、CPU218がROM208に予め格納されたスケジューラプログラム215をワークメモリ205上で実行することで実現される。ステップS1301で、スケジューラは、生成する文書情報5000が複数ページかを判定し、複数ページの場合は、ステップS1310で、ワークメモリ205に格納されたデュアル・印刷の処理指示5233の並列処理方法をページ並列に設定する。ステップS1311で、スケジューラは、ページ毎予測負荷値を算出するページのページカウンタPを1に初期化する。ページカウンタPはワークメモリ205に確保される。ステップS1312で、スケジューラは、ワークメモリ205上のシングル・印刷の処理指示5231のページPの印刷用描画オブジェクトのIDリストを取得する。ステップS1313で、スケジューラは、ページP内の全描画オブジェクトの予測負荷値を累積するための負荷値カウンタFを0に初期化する。負荷値カウンタFはワークメモリ205に確保される。ステップS1314で、スケジューラは、ワークメモリ205に格納されたシングル・印刷の処理指示5231のページPの描画オブジェクトのIDリストを参照し、図3のステップS1010の描画オブジェクトの生成中に算出した描画オブジェクト毎の予測負荷値をワークメモリ205から読み出し、負荷値カウンタFに加算する。ページ中の全描画オブジェクトの加算が終了するまでステップS1314〜ステップS1316を繰り返し実行する。ページ中の全オブジェクトの加算が終了したら、スケジューラは、ステップS1317で、負荷値カウンタFの値をページPの予測負荷値としてワークメモリ205に格納し、ステップS1318で、ページカウンタPをインクリメントし、次のページの処理を行なう。全ページの予測負荷値の加算が終了するまで、ステップS1312〜ステップS1319を繰り返し実行する。ステップS1320で、スケジューラは、算出した全ページの予測負荷値からページ並列の負荷分散見積もりを行なう。
FIG. 6 is a diagram illustrating a flow of processing information generation for printing in step S1020 in FIG. 3, which is realized by the
一方、ステップS1301で文書情報5000が単ページと判定された場合、ステップS1330で、スケジューラは、ワークメモリ205に格納されたデュアル・印刷の処理指示5233の並列処理方法をオブジェクト並列に設定する。ステップS1331で、スケジューラは、オブジェクト並列の負荷分散見積もりを行なう。
On the other hand, if it is determined in step S1301 that the
図7は、図3のステップS1021のプレビュー用処理情報生成のフローを示した図であり、CPU218がROM208に予め格納されたスケジューラプログラム215をワークメモリ205上で実行することで実現される。ステップS1401で、スケジューラは、ワークメモリ205に格納されたデュアル・プレビューの処理指示5234の並列処理方法をオブジェクト並列に設定する。ステップS1402で、スケジューラは、ページ毎の負荷値を算出するページのページカウンタPを1に初期化する。ページカウンタPはワークメモリ205に確保される。ステップS1403で、スケジューラは、ワークメモリ205に格納されたシングル・プレビューの処理指示5232のページPのプレビュー用描画オブジェクトのリストを取得する。ステップS1404で、スケジューラは、オブジェクト並列の負荷分散見積もりを行なう。ステップS1405で、スケジューラは、ページカウンタPをインクリメントし、次のページの処理を行なう。全ページのオブジェクト並列の負荷分散見積もりが終了するまで、ステップS1402〜ステップS1406を繰り返し実行する。
FIG. 7 is a diagram showing the flow of preview processing information generation in step S1021 of FIG. 3, which is realized by the
図8は、図6のステップS1320のページ並列の負荷分散見積もりのフローを示した図であり、CPU218がROM208に予め格納されたスケジューラプログラム215をワークメモリ205上で実行することで実現される。ステップS1501で、スケジューラは、例えば、ステップS1317で格納された各ページの予測負荷値の合計をとった全ページの合計負荷値(全体負荷の予測値)を算出して、以下の式から負荷閾値Fthを算出する。
負荷閾値Fth=全ページの合計負荷値/2
FIG. 8 is a diagram showing a flow of page-parallel load distribution estimation in step S1320 of FIG. In step S1501, the scheduler calculates, for example, a total load value (predicted value of total load) of all pages obtained by summing the predicted load values of each page stored in step S1317, and calculates a load threshold value from the following equation: Fth is calculated.
Load threshold Fth = total load value of all pages / 2
ステップS1502で、スケジューラは、マルチコアのCPU318のプロセッサ1の負荷値カウンタF1を0に初期化する。同様に、ステップS1503で、スケジューラは、マルチコアのCPU318のプロセッサ2の負荷値カウンタF2を0に初期化する。ステップS1504で、スケジューラは、負荷分散を見積もるページのページカウンタPを1に初期化する。ステップS1505で、スケジューラは、ワークメモリ205に格納されたページPの予測負荷値を読み出し、プロセッサ1の負荷値カウンタF1が、所定の閾値(例えば負荷閾値Fthの1.1倍)より小さいかを判定する。負荷値カウンタF1がこの所定の閾値より小さい場合、ステップS1510で、スケジューラは、プロセッサ1の負荷値カウンタF1にページPの予測負荷値を加算する。ステップS1511で、スケジューラは、図2(a)、(b2)に示される、ワークメモリ205上のデュアル・印刷の処理指示5233のプロセッサ1のページIDリストにページPのIDを追加する。ステップS1505で負荷値カウンタF1がこの所定の閾値以上の場合、ステップS1520で、スケジューラは、プロセッサ2の負荷値カウンタF2にページPの負荷値を加算する。ステップS1521で、スケジューラは、図2(a)、(b2)に示される、ワークメモリ205上のデュアル・印刷の処理指示5233のプロセッサ2のページIDリストにページPのIDを追加する。スケジューラは、ステップ1530でページPのインクリメントを行い、全ページの負荷分散見積もりが終了するまで、ステップS1505〜ステップ1531までを繰り返し実行する。これらの処理で生成された印刷用処理情報は、ページ並列の処理を実行する場合の中間コード生成部にかかる負荷を平準化するための情報(平準化情報)であり、文書情報のデュアル・印刷の処理指示5233として図2(b2)の形式をとる。
In step S1502, the scheduler initializes the load value counter F1 of the
図9は、図6のステップS1331のオブジェクト並列の負荷分散見積もりのフローを示した図であり、CPU218がROM208に予め格納されたスケジューラプログラム215をワークメモリ205上で実行することで実現される。
FIG. 9 is a diagram illustrating a flow of load distribution estimation in parallel with the object in step S1331 in FIG. 6, which is realized by the
まずはステップS1331の単ページの印刷におけるオブジェクト並列の負荷分散見積もりについて説明する。ステップS1601で、スケジューラは、負荷値を算出する負荷値カウンタFと、負荷値を算出するページをカウントするページカウンタPを夫々1に初期化する。この負荷値カウンタFはワークメモリ205に確保される。ステップS1602で、スケジューラは、シングル・印刷の処理指示5231のページPの描画オブジェクトのIDリストを参照する。そして、ステップS1603で、スケジューラは、図4のステップS1102の描画オブジェクト生成中に算出した描画オブジェクトの負荷値を、負荷値カウンタFに加算する。S1604で、スケジューラは、ページ中の全オブジェクトの負荷値加算が終了したかを判定する。スケジューラは、ページ中の全オブジェクトの加算が終了するまでステップS1602〜ステップS1604を繰り返し実行する。ページ中の全オブジェクトの加算が終了したら、ステップS1605で、スケジューラは、以下の式でページ内の全描画オブジェクトの負荷値から負荷閾値Fthを算出する。なお、単ページ印刷(つまり、単ページに対する処理)であるため、ここではページ内の全描画オブジェクトの負荷値が全体負荷の予測値となっている。
負荷閾値Fth=全オブジェクトの合計負荷値/2
First, load balancing estimation in parallel with objects in single page printing in step S1331 will be described. In step S1601, the scheduler initializes a load value counter F for calculating a load value and a page counter P for counting pages for calculating the load value to 1. This load value counter F is secured in the work memory 205. In step S1602, the scheduler refers to the drawing object ID list of page P of the single /
Load threshold Fth = total load value of all objects / 2
ステップS1606で、スケジューラは、CPU318のプロセッサ1の負荷値カウンタF1を0に初期化する。同様に、ステップS1607で、スケジューラは、CPU318のプロセッサ2の負荷値カウンタF2を0に初期化する。負荷値カウンタF1、F2はワークメモリ205に確保される。ステップS1608で、スケジューラは、ワークメモリ205上のシングル・印刷の処理指示5231のページPの描画オブジェクトのIDリストを参照する。スケジューラは、ステップS1609で、このIDリストに基づいて、プロセッサ1の負荷値カウンタF1に図3のステップS1010の描画オブジェクト生成中に算出された描画オブジェクトの負荷値を加算した値が、所定の閾値(例えば負荷閾値Fthの1.1倍)より小さいかを判定する。所定の閾値より小さい場合、ステップS1610で、スケジューラは、プロセッサ1の負荷値カウンタF1に描画オブジェクトの負荷値を加算する。ステップS1611で、スケジューラは、ワークメモリ205上のデュアル・印刷の処理指示5233のページPのプロセッサ1の描画オブジェクトのIDリストにこの描画オブジェクトのIDを追加する。所定の閾値以上の場合、ステップS1620で、スケジューラは、プロセッサ2の負荷値カウンタF2にページPの負荷値を加算する。ステップS1621で、スケジューラは、ワークメモリ205上のデュアル・印刷の処理指示5233のページPのプロセッサ2の描画オブジェクトのIDリストにこの描画オブジェクトのIDを追加する。スケジューラは、ステップS1630の判定でページP内の全描画オブジェクトの負荷分散が終了するまで、ステップS1608〜S1630までを繰り返し実行する。これらの処理で生成された印刷用処理情報は、オブジェクト並列の処理を実行する場合の中間コード生成部にかかる負荷を平準化するための情報(平準化情報)であり、文書情報のデュアル・印刷の処理指示5233として図2(b1)の形式をとる。
In step S1606, the scheduler initializes the load value counter F1 of the
図7のステップS1404のプレビューにおけるオブジェクト並列の負荷分散見積もりについて図9を用いて説明する。図9は単ページの印刷におけるオブジェクト並列を扱ったが、プレビューにおけるオブジェクト並列の負荷分散見積もりについてもほぼ同様である。異なる点を説明する。1つ目は、図9のステップS1602で参照すべきIDリストを、ワークメモリ205上のシングル・プレビューの処理指示5232のページPの描画オブジェクトのIDリストとする点である。2つ目は、ステップS1608で参照すべきIDリストを、ワークメモリ205上のシングル・プレビューの処理指示5232のページPの描画オブジェクトのIDリストとする点である。3つ目は、ステップS1611及びステップ1621でIDを追加する先を、ワークメモリ205上のデュアル・プレビューの処理指示5234のページPのプロセッサ1及び2の描画オブジェクトのIDリストとする点である。そして、ステップS1601〜S1630の処理を全ページにわたって繰り返す点である。これらの処理で生成されたプレビュー用処理情報は、オブジェクト並列の処理を実行する場合の中間コード生成部にかかる負荷を平準化するための情報(平準化情報)であり、文書情報のデュアル・プレビューの処理指示5234として図2(b1)のような形式をとる。
The object parallel load distribution estimation in the preview of step S1404 in FIG. 7 will be described with reference to FIG. Although FIG. 9 dealt with object parallelism in single-page printing, the same applies to load parallel estimation of object parallelism in preview. Explain the differences. The first point is that the ID list to be referred to in step S1602 in FIG. 9 is the ID list of the drawing object on page P of the single preview processing instruction 5232 on the work memory 205. The second point is that the ID list to be referred to in step S1608 is the ID list of the drawing object on page P of the single preview processing instruction 5232 on the work memory 205. The third point is that the IDs added in steps S1611 and 1621 are the ID lists of the drawing objects of the
以上の図2のステップS1001〜S1023で、負荷分散見積もりを行った文書情報5000が生成されてデータベースに保存される。なお、負荷値の算出や負荷分散見積もりを行う上で用いた式は一例であって本発明を限定するものではなく、適当な他の式を用いて負荷値の算出や負荷分散見積もりを行ってもよい。
In steps S1001 to S1023 of FIG. 2 described above, the
以下では、データベースに格納された文書情報5000を用いて、分散処理の実行について説明する。図10は、画像形成装置103における文書情報5000の印刷またはプレビュー処理のフローを示した図である。図10のフローは、ROM308に予め格納された各プログラム(文書情報解析プログラム309、中間コード生成310、並列処理管理プログラム311、展開処理プログラム314)をCPU318がワークメモリ305上に展開、実行して、CPUを各機能部(文書情報解析部、中間コード生成部、並列処理管理部、展開処理部)として機能させることで実現される。
Hereinafter, the execution of distributed processing will be described using
ステップS1701で、CPU318は、ユーザが表示パネル321を使って選択した文書情報5000と機能の指示をパネルI/F320を介して受け付ける。指示を受けた場合、ステップS1702で、文書情報解析部は、ユーザが選択した文書情報5000をデータベース(画像形成装置102のHDD217)から取得し、受信バッファ304に格納する。ステップS1703で、文書情報解析部は、ユーザが選択した機能がプレビューかを判定する。ユーザが選択した機能がプレビューの場合、ステップS1704で、文書情報解析部は、文書情報5000を解析する。プレビューの場合の文書情報解析のフローについて図12に示す。図12の処理フローは、CPU318がROM308に予め格納された文書情報解析プログラム309をワークメモリ305上で実行することで実現される。
In step S <b> 1701, the
ステップS1900で、文書情報解析部は、画像形成装置103のハードウェア構成(CPUのコア数)を取得する。ステップS1901で、文書情報解析部は、ヘッダ5100の処理情報オフセット5130を読み出す。ステップS1902で、文書情報解析部は、処理情報オフセット5130に従い、処理情報5220をアドレス順に読み出して、ハードウェア構成(コア数)と機能に一致する処理情報(処理指示オフセット)を検出する。ステップS1903で、文書情報解析部は、ステップS1902で一致する処理情報が検出されたかを判定する。ステップS1902で検出された場合、ステップS1904で、文書情報解析部は、検出された処理指示オフセットにより、処理指示部5230の処理指示をワークメモリ305に格納する。ステップS1902で処理情報が検出されなかった場合、ステップS1905で、文書情報解析部は、処理指示として、シングル・プレビューの処理指示5232をワークメモリ305に格納する。なお、本実施例では、プレビューの場合、画像処理装置103で処理を実行するので、並列処理の処理情報として、文書情報のデュアル・プレビューの処理指示5234が読みだされる。
In step S1900, the document information analysis unit acquires the hardware configuration (the number of CPU cores) of the
図10のフローの説明に戻る。ステップS1710で、並列処理管理部は、ワークメモリ305の処理指示を読み出し、マルチコアCPUによる並列処理を指示するものであるかを判定する。S1710にて並列処理であると判定された場合、並列処理管理部は、ステップS1711で、読みだされた並列処理の処理指示に従い、プレビュー表示するページに関する各プロセッサのプレビュー用描画オブジェクトのIDリストを取得する。ステップS1712で、並列処理管理部は、CPU318のプロセッサ1(中間コード生成部)に、ステップS1704で読みだされた処理指示と、プロセッサ1の処理すべき描画オブジェクトのIDリストとを渡して描画オブジェクトの中間コード生成の処理依頼をする。ステップS1713で、並列処理管理部は、CPU318のプロセッサ2(中間コード生成部)に、ステップS1704で読みだされた処理指示と、プロセッサ2の処理すべき描画オブジェクトのIDリストとを渡して描画オブジェクトの中間コード生成の処理依頼をする。ステップS1714で、並列処理管理部は、プロセッサ1,2の中間コード生成処理の終了通知待ちをする。プロセッサ1及び2から処理の終了通知がきたら、ステップS1715で、並列処理管理部は、プロセッサ1,2の中間コード生成部で生成されてフレームバッファ306に格納された中間コードを結合し、ワークメモリ305に格納する。ステップS1716で、展開処理部は、結合された中間コードをワークメモリ305から読み出してレンダリングし、ラスタメモリ307に画像を格納する。ステップS1717で、並列処理管理部は、ラスタメモリ307に格納されたラスタイメージを読み出し、パネルI/F320を介して表示パネル321にプレビュー画像を表示する。
Returning to the description of the flow of FIG. In step S1710, the parallel processing management unit reads a processing instruction from the
ステップS1710にて並列処理ではないと判定された場合、並列処理管理部は、ステップS1751で、文書情報のシングル・プレビューの処理指示5232に基づいて、プレビュー表示するページに関するプレビュー用描画オブジェクトのIDリストを取得する。ステップS1752で、並列処理管理部は、CPU318のプロセッサ(中間コード生成部)に、ステップS1704で読みだされた処理指示と、処理すべき描画オブジェクトのIDリストとを渡して描画オブジェクトの中間コード生成の処理依頼をする。ステップS1753で、並列処理管理部は、中間コード生成の処理終了通知待ちをする。プロセッサから処理の終了通知を受信したら、ステップS1716へ処理を移行する。ステップS1716以降の処理は前述したとおりである。
If it is determined in step S1710 that the processing is not parallel processing, the parallel processing management unit in step S1751, based on the single preview processing instruction 5232 of the document information, the preview drawing object ID list for the page to be previewed. To get. In step S1752, the parallel processing management unit passes the processing instruction read in step S1704 and the ID list of the drawing object to be processed to the processor (intermediate code generation unit) of the
一方、ユーザが選択した機能が印刷の場合、ステップS1705で、文書情報解析部は、文書情報5000を解析する。印刷の場合の文書情報解析のフローについて、プレビューの場合の図12を用いて説明する。印刷の場合もプレビューの場合と同様の処理フローをとる。違いは、ステップS1902で処理情報が検出されなかった場合の、ステップS1905の処理である。ステップS1905で、文書情報解析部は、処理指示として、シングル・印刷の処理指示5231をワークメモリ305に格納する。それ以外はプレビューの場合と同様である。なお、本実施例では、印刷の場合、画像処理装置103で処理を実行するので、並列処理の処理情報として、デュアル・印刷の処理指示5234が読みだされる。
On the other hand, if the function selected by the user is printing, the document information analysis unit analyzes the
図10のフローの説明に戻る。ステップS1720で、並列処理管理部は、ワークメモリ305の処理指示を読み出し、マルチコアCPUによる並列処理を指示するものであるかを判定する。S1720にて並列処理であると判定された場合、並列処理管理部は、ステップS1721で、さらに、読みだされた処理指示の並列処理方法がページ並列であるかを判定する。ステップS1721でページ並列であると判定された場合、ステップS1730で、並列処理管理部は、図2(b2)の各プロセッサのページIDリストを取得する。ステップS1731で、並列処理管理部は、CPU318のプロセッサ1(中間コード生成部)に、ステップS1705で読みだされた処理指示と、取得したプロセッサ1のページリストとを渡し、描画オブジェクトの中間コード生成の処理依頼をする。ステップS1732で、並列処理管理部は、CPU318のプロセッサ2(中間コード生成部)に、ステップS1705で読みだされた処理指示と、取得したプロセッサ2のページリストとを渡し、描画オブジェクトの中間コード生成の処理依頼をする。ステップS1733で、並列処理管理部は、プロセッサ1,2(中間コード生成部)からのページ毎の中間コード生成処理の終了通知待ちをする。プロセッサ1,2(中間コード生成部)のいずれかから終了通知がきた場合、ステップS1734で、展開処理部は、フレームバッファ306に格納された中間コードをレンダリングし、ラスタメモリ307にラスタイメージを格納する。ステップS1735で、並列処理管理部は、印刷すべき全ページのレンダリングの終了を待つ。全ページのレンダリングが終了した場合、ステップS1736で、並列処理管理部は、ラスタメモリ307に格納されたラスタイメージを読み出し、エンジンI/F312を介してプリンタエンジン313に出力し、印刷する。ステップS1735で、全ページ終了の判定まで、ステップS1733〜ステップS1735を繰り返し実行する。
Returning to the description of the flow of FIG. In step S1720, the parallel processing management unit reads the processing instruction in the
ステップS1721にて処理指示の並列処理方法がページ並列でない、すなわちオブジェクト並列の場合、ステップS1740で、並列処理管理部は、図2(b3)の各プロセッサの描画オブジェクトのIDリストを取得する。ステップS1741で、並列処理管理部は、CPU318のプロセッサ1(中間コード生成部)に、ステップS1705で読みだされた処理指示と、取得したプロセッサ1の描画オブジェクトのIDリストとを渡し、描画オブジェクトの中間コード生成の処理依頼をする。ステップS1742で、並列処理管理部は、CPU318のプロセッサ2(中間コード生成部)に、ステップS1705で読みだされた処理指示と、取得したプロセッサ2の描画オブジェクトのIDリストとを渡し、描画オブジェクトの中間コード生成の処理依頼をする。ステップS1743で、並列処理管理部は、プロセッサ1,2の中間コード生成処理の終了通知待ちをする。ステップS1743にてプロセッサ1及び2から中間コード生成処理の終了通知がきたら、並列処理管理部は、ステップS1744で、プロセッサ1,2の中間コード生成部で生成されてフレームバッファ306に格納された中間コードを結合し、ワークメモリ305に格納する。ステップS1745で、展開処理部は、結合された中間コードをワークメモリ305から読み出してレンダリングし、ラスタメモリ307に画像を格納する。その後、ステップS1736で、並列処理管理部は、ラスタメモリ307に格納された画像を読み出し、エンジンI/F312を介してプリンタエンジン313に出力し、印刷する。
If the parallel processing method of the processing instruction is not page parallel, that is, object parallel in step S1721, the parallel processing management unit acquires the drawing object ID list of each processor in FIG. 2B3 in step S1740. In step S1741, the parallel processing management unit passes the processing instruction read in step S1705 and the acquired drawing object ID list of the
ステップS1720にて並列処理ではないと判定された場合、並列処理管理部は、ステップS1761で、シングル・印刷の処理指示5231に基づいて、印刷するページに関する印刷用描画オブジェクトのIDリストを取得する。ステップS1762で、並列処理管理部は、CPU318のプロセッサ(中間コード生成部)に、ステップS1705で読みだされた処理指示と、処理すべき描画オブジェクトのIDリストとを渡して描画オブジェクトの中間コード生成の処理依頼をする。ステップS1763で、並列処理管理部は、プロセッサからのページ毎の中間コード生成処理の終了通知待ちをする。プロセッサから終了通知がきた場合、ステップS1764で、展開処理部は、フレームバッファ306に格納された中間コードをレンダリングし、ラスタメモリ307にラスタイメージを格納する。ステップS1765で、並列処理管理部は、印刷すべき全ページのレンダリングの終了を待つ。全ページのレンダリングが終了した場合、ステップS1736で、並列処理管理部は、ラスタメモリ307に格納されたラスタイメージを読み出し、エンジンI/F312を介してプリンタエンジン313に出力し、印刷する。ステップS1765で全ページ終了と判定されるまで、ステップS1763〜ステップS1765は繰り返し実行される。
If it is determined in step S1720 that the parallel processing is not performed, the parallel processing management unit acquires a print drawing object ID list for the page to be printed based on the single /
図11は、画像形成装置103におけるCPU318の各プロセッサ(中間コード生成部)での処理のフローを示した図であり、CPU318がROM208に予め格納された中間コード生成プログラム310をワークメモリ305上で実行することで実現される。る。ステップS1801で、中間コード生成部は、ステップS1712、S1713、S1731、S1732、S1741、S1742、S1752、S1762での並列処理管理部から渡された処理指示に基づいて、処理方法がオブジェクト並列であるかを判定する。オブジェクト並列の場合、中間コード生成部は、ステップS1811でオブジェクト並列の処理依頼と共に渡された描画オブジェクトのIDリストを参照し、ステップS1812でIDリストのIDとオブジェクトテーブル5300に基づいて、描画オブジェクトを取得する。ステップ1814で、中間コード生成部は、取得した描画オブジェクトから中間コードを生成し、フレームバッファ306に格納する。全オブジェクトの中間コード生成が終了するまで、ステップS1811〜ステップS1815を繰り返し実行する。全オブジェクトの中間コード生成が終了すると、ステップS1816で、中間コード生成部は、終了通知を並列処理管理部に送信する。
FIG. 11 is a diagram illustrating a processing flow in each processor (intermediate code generation unit) of the
一方、並列処理方法がページ並列の場合は、ステップS1820で、中間コード生成部は、ページ並列の処理依頼と共に渡された図2(b2)で示したプロセッサのページリストを参照する。ステップS1821で、中間コード生成部は、ページリストの各ページに含まれる描画オブジェクトのIDリストを参照し、ステップS1822で、中間コード生成部は、このIDリストとオブジェクトテーブル5300に基づいて、描画オブジェクトを取得する。ステップ1824で、中間コード生成部は、取得した描画オブジェクトから中間コードを生成し、フレームバッファ306に格納する。全オブジェクトの中間コード生成が終了するまで、ステップS1821〜ステップS1825は繰り返し実行される。全オブジェクトの中間コード生成が終了すると、ステップS1826で、中間コード生成部は、ページの中間コード生成処理の終了通知を並列処理管理部に送信する。渡されたページリストの全ページが終了するまで、プロセッサは、ステップS1820〜ステップS1827を繰り返し実行する。
On the other hand, if the parallel processing method is page parallel, in step S1820, the intermediate code generation unit refers to the page list of the processor shown in FIG. 2 (b2) delivered together with the page parallel processing request. In step S1821, the intermediate code generation unit refers to the ID list of the drawing object included in each page of the page list. In step S1822, the intermediate code generation unit determines that the drawing object is based on the ID list and the object table 5300. To get. In step 1824, the intermediate code generation unit generates an intermediate code from the acquired drawing object and stores it in the
以上説明した本発明の本実施例によると、マルチコアCPUにおいては、効率的な並列処理を実現し、様々な機能のパフォーマンスをさらに高めることができる。 According to the embodiment of the present invention described above, the multi-core CPU can realize efficient parallel processing and further improve the performance of various functions.
本実施例において、画像形成装置102はPDLデータを解析して文書情報5000を生成したが、スキャナ221で読み取った読取画像情報を解析し、この読取画像情報から複数オブジェクト(図形、イメージ、文字)を読み出して、文書情報5000を生成するものであっても良い。
In this embodiment, the
また本実施例では、文書情報5000を生成する画像形成装置102と生成された文書情報5000の処理情報に基づいて出力の処理を実行する画像形成装置103とによって、本発明の画像処理システムを実現している。しかし、本発明を、上述した画像形成装置102及び103の画像処理を同一の画像形成装置によって実行させることで実現しても良い。
In this embodiment, the image processing apparatus according to the present invention is realized by the
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。また、本発明委は、上述した実施例の機能を、これらの機能を果たす電子回路によっても実現される。
(Other examples)
The present invention can also be realized by executing the following processing. In this process, software (program) for realizing the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and the computer (or CPU, MPU, etc.) of the system or apparatus executes the program. It is a process to read and execute. Moreover, this invention committee is implement | achieved also by the electronic circuit which fulfill | performs the function of the Example mentioned above which performs these functions.
Claims (8)
前記複数のオブジェクトそれぞれを出力ユニットの機能に応じたデータに変換することにより、複数の変換後オブジェクトを生成するオブジェクト生成手段と、
前記複数の変換後オブジェクトから中間コードを生成する処理ユニットを複数備える中間コード生成手段と、
前記中間コードの生成における前記複数の処理ユニットそれぞれにかかる部分負荷を予測する負荷予測手段と、
前記負荷予測手段の予測する部分負荷に基づいて、前記中間コード生成手段で前記複数の変換後オブジェクトから前記中間コードを生成する際にかかる負荷を、前記複数の処理ユニットの間で平準化するための平準化情報を生成する平準化情報生成手段と、
前記平準化情報を前記複数の変換後オブジェクトと関連付ける関連付け手段と、
前記複数の変換後オブジェクトと前記平準化情報とを有する文書情報を生成する文書情報生成手段と、
を有することを特徴とする画像処理システム。 An acquisition means for acquiring image information including a plurality of objects;
Object generation means for generating a plurality of converted objects by converting each of the plurality of objects into data corresponding to the function of the output unit;
Intermediate code generation means comprising a plurality of processing units for generating intermediate code from the plurality of converted objects;
Load predicting means for predicting a partial load applied to each of the plurality of processing units in the generation of the intermediate code;
Based on the partial load predicted by the load predicting unit, the load applied when the intermediate code generating unit generates the intermediate code from the plurality of converted objects is leveled between the plurality of processing units. Leveling information generating means for generating leveling information of
Association means for associating the leveling information with the plurality of converted objects;
Document information generating means for generating document information having the plurality of converted objects and the leveling information;
An image processing system comprising:
前記平準化情報生成手段は、複数の前記機能ごとに、前記全体負荷を平準化するための平準化情報を生成することを特徴とする請求項1に記載の画像処理システム。 There are multiple functions,
The image processing system according to claim 1, wherein the leveling information generation unit generates leveling information for leveling the overall load for each of the plurality of functions.
複数の処理ユニットを有する中間コード生成手段が、前記変換後オブジェクトから中間コードを生成する中間コード生成工程、
負荷予測手段が、前記中間コードの生成における前記中間コード生成手段にかかる部分負荷を予測する負荷予測工程、
平準化情報生成手段が、前記負荷予測工程で予測される部分負荷に基づいて、前記機能での前記複数のオブジェクトに対する前記中間コード生成手段にかかる全体負荷を、前記複数の処理ユニットの間で平準化するための平準化情報を生成する平準化情報生成工程、
関連付け手段が、前記平準化情報を前記複数の変換後オブジェクトと関連付ける関連付け工程、
文書情報生成手段が、前記変換後オブジェクトと前記平準化情報とを有する文書情報を生成する文書情報生成工程、
を有する画像処理方法。 An object generation step of generating an object after conversion, wherein the object generation means converts the object into data corresponding to the function of the output unit from image information including a plurality of objects;
An intermediate code generating step in which an intermediate code generating means having a plurality of processing units generates an intermediate code from the converted object;
A load prediction step in which a load prediction unit predicts a partial load applied to the intermediate code generation unit in the generation of the intermediate code;
Based on the partial load predicted in the load prediction step, the leveling information generation means leveles the overall load applied to the intermediate code generation means for the plurality of objects in the function among the plurality of processing units. Leveling information generating step for generating leveling information for
An associating unit associating the leveling information with the plurality of converted objects;
A document information generating unit that generates document information including the converted object and the leveling information;
An image processing method.
前記複数のオブジェクトそれぞれを出力ユニットの機能に応じたデータに変換することにより、変換後オブジェクトを生成するオブジェクト生成手段と、
前記複数の変換後オブジェクトを有する文書情報を生成する文書情報生成手段と、
を有する画像処理装置であって、
前記変換後オブジェクトに対して、前記出力ユニットで出力するためのデータへ変換する処理ユニットにかかる負荷を予測する負荷予測手段と、
前記負荷予測手段の予測する負荷に基づいて、前記複数の変換後オブジェクトを複数の前記処理ユニットで変換する際にかかる負荷を、複数の前記処理ユニット間で平準化するための平準化情報を生成する平準化情報生成手段と、
前記平準化情報を前記複数の変換後オブジェクトと関連付ける関連付け手段と、
を有することを特徴とする画像処理装置。 An acquisition means for acquiring image information including a plurality of objects;
Object generating means for generating a converted object by converting each of the plurality of objects into data corresponding to the function of the output unit;
Document information generating means for generating document information having the plurality of converted objects;
An image processing apparatus comprising:
Load prediction means for predicting the load on the processing unit for converting the converted object into data for output by the output unit,
Based on the load predicted by the load prediction means, generates leveling information for leveling the load applied when the plurality of converted objects are converted by the plurality of processing units between the plurality of processing units. Leveling information generating means for
Association means for associating the leveling information with the plurality of converted objects;
An image processing apparatus comprising:
前記文書情報は、前記中間コードの生成処理における負荷を、前記処理ユニットの間で平準化するための平準化情報を有し、
前記画像処理装置は、
前記文書情報から、前記平準化情報を取得する取得手段と、
前記取得した平準化情報に基づいて、処理すべき前記複数の変換後オブジェクトを選択するオブジェクト選択手段と、
前記オブジェクト選択手段で選択された変換後オブジェクトから中間コードを生成する中間コード生成手段と、
を有することを特徴とする画像処理装置。 An image processing apparatus comprising a plurality of processing units for generating intermediate codes from document information having converted objects obtained by converting a plurality of objects in image information according to the function of an output unit,
The document information includes leveling information for leveling a load in the generation process of the intermediate code among the processing units,
The image processing apparatus includes:
Obtaining means for obtaining the leveling information from the document information;
Object selection means for selecting the plurality of converted objects to be processed based on the acquired leveling information;
Intermediate code generating means for generating an intermediate code from the converted object selected by the object selecting means;
An image processing apparatus comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010238689A JP2012093838A (en) | 2010-10-25 | 2010-10-25 | Image processing system, image processing device, image processing method, and computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010238689A JP2012093838A (en) | 2010-10-25 | 2010-10-25 | Image processing system, image processing device, image processing method, and computer program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012093838A true JP2012093838A (en) | 2012-05-17 |
Family
ID=46387119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010238689A Pending JP2012093838A (en) | 2010-10-25 | 2010-10-25 | Image processing system, image processing device, image processing method, and computer program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012093838A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013014039A (en) * | 2011-07-01 | 2013-01-24 | Canon Inc | Image forming apparatus, data processing method, and program |
-
2010
- 2010-10-25 JP JP2010238689A patent/JP2012093838A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013014039A (en) * | 2011-07-01 | 2013-01-24 | Canon Inc | Image forming apparatus, data processing method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5300332B2 (en) | Network device, workflow processing system, and workflow processing method | |
JP6454213B2 (en) | Image output system, image processing apparatus, image output apparatus, method and program therefor | |
JP2020067893A (en) | Image forming system and method for controlling the same, and program | |
US9639304B2 (en) | Data supplying device and image processing system | |
JP6415202B2 (en) | Information processing apparatus, program, and control method | |
JP2013001059A (en) | Image forming apparatus, method for controlling image forming apparatus, and program | |
US8767247B2 (en) | Print data generation device, print data generation method and computer-readable medium for controlling rasterization processing | |
JP4144392B2 (en) | Image processing apparatus, image forming system, image forming method, and program | |
US9286012B2 (en) | System and method for efficiently imposing a print job in a print production workflow | |
EP2838010B1 (en) | Information processing apparatus, information processing method, and processing apparatus | |
JP5857594B2 (en) | Distributed printing system and printing apparatus | |
JP2012093838A (en) | Image processing system, image processing device, image processing method, and computer program | |
US9030702B2 (en) | Client apparatus, printing system, and display method for converting printing formats, generating preview images, and displaying preview images | |
JP2011126210A (en) | Printing data processor, print data processing method, and program | |
JP5316012B2 (en) | Printing system, printing control apparatus, and printer driver program | |
US9813582B2 (en) | Printing system capable of printing in any one of plural image forming apparatuses over network, image forming apparatus, and printing method | |
JP2013161196A (en) | Web page printing system, method, and program | |
JP2011143576A (en) | Print data generator, image forming apparatus and program | |
US20160162221A1 (en) | Printing using multiple print processing resources | |
JP2017065128A (en) | Printer, control method thereof, and program | |
JP2015168132A (en) | Image formation system and print data drawing expansion method for image formation system | |
JP5766059B2 (en) | Image forming apparatus, image forming apparatus control method, and program | |
JP6221543B2 (en) | Program, information processing apparatus, information processing system, and image processing system | |
JP2019064231A (en) | Image formation apparatus and image formation method | |
JP2014237292A (en) | Image processing device, control method, and program |