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 PDF

Info

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
Application number
JP2010238689A
Other languages
Japanese (ja)
Inventor
Takashi Ono
隆 大野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2010238689A priority Critical patent/JP2012093838A/en
Publication of JP2012093838A publication Critical patent/JP2012093838A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

PROBLEM TO BE SOLVED: To solve the problem in which, in an image processing device for providing plural functions such as printing and preview, when an object is output according to the functions, a processing method suitable for a hardware configuration such as the number of CPU cores of the image processing device in the process of processing for output has not been determined, so that it has been difficult to obtain processing performance with the functions and hardware configuration utilized.SOLUTION: According to the present invention, a converted object obtained by converting the object into a format suitable for a function is generated, information indicating a processing method for each pair of a function and a hardware configuration is created in advance, and they are stored as document information. When an object is output by a selected function, a processing method suitable for the function and a hardware configuration of an output device is selected.

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 Patent Document 1, drawing objects suitable for each function are generated in advance from objects in the electronic document so that processing can be performed in a short time when each function such as printing and preview is executed. The process is executed using the optimum drawing object according to the function.

また、近年、ハードウェア技術の向上により、マルチコアの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).

特開2007−066188JP2007-066188 特開平07−104987JP 07-104987 A

しかし、特許文献1は、マルチコアCPUといったコア数を考慮してはおらず、例えばマルチコアCPUを搭載した複合機において、マルチコアといったハードウェア構成を十分に活かした処理方法を開示してはいない。また、特許文献2に開示される並列処理指示方法では、印刷に対しては最適な並列処理を実現できても、印刷だけでなくプレビューも含めた様々な機能において最適な並列処理を実現することはできない。   However, Patent Document 1 does not consider the number of cores such as a multi-core CPU, and does not disclose a processing method that makes full use of a hardware configuration such as a multi-core in a multi-function peripheral equipped with a multi-core CPU. In addition, the parallel processing instruction method disclosed in Patent Document 2 realizes optimal parallel processing for various functions including not only printing but also preview, even though optimal parallel processing can be realized for printing. I can't.

上述した課題を解決するために本発明の画像処理システムは、複数のオブジェクトを含む画像情報を取得するための取得手段と、前記複数のオブジェクトそれぞれを出力ユニットの機能に応じたデータに変換することにより、複数の変換後オブジェクトを生成するオブジェクト生成手段と、前記複数の変換後オブジェクトから中間コードを生成する処理ユニットを複数備える中間コード生成手段と、前記中間コードの生成における前記複数の処理ユニットそれぞれにかかる部分負荷を予測する負荷予測手段と、前記負荷予測手段の予測する部分負荷に基づいて、前記中間コード生成手段で前記複数の変換後オブジェクトから前記中間コードを生成する際にかかる負荷を、前記複数の処理ユニットの間で平準化するための平準化情報を生成する平準化情報生成手段と、前記平準化情報を前記複数の変換後オブジェクトと関連付ける関連付け手段と、前記複数の変換後オブジェクトと前記平準化情報とを有する文書情報を生成する文書情報生成手段と、を有することを特徴とする。   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.

本発明における画像処理装置のシステム構成の一例を示す図である。It is a figure which shows an example of the system configuration | structure of the image processing apparatus in this invention. 画像形成装置に格納される文書情報のフォーマットの一例を示した図である。3 is a diagram illustrating an example of a format of document information stored in an image forming apparatus. FIG. 文書情報生成のフローを示した図である。It is the figure which showed the flow of document information generation. 描画オブジェクト生成のフローを示した図である。It is the figure which showed the flow of drawing object generation. 中間コード生成における予測負荷値の算出のフローを示した図である。It is the figure which showed the flow of calculation of the predicted load value in intermediate code generation. 印刷用処理情報生成のフローを示した図である。It is the figure which showed the flow of the process information generation for printing. プレビュー用処理情報生成のフローを示した図である。It is the figure which showed the flow of the process information for a preview. ページ並列の負荷分散見積もりのフローを示した図である。It is the figure which showed the flow of load distribution estimation of a page parallel. オブジェクト並列の負荷分散見積もりのフローを示した図である。It is the figure which showed the flow of load distribution estimation of object parallel. 文書情報の印刷またはプレビュー処理のフローを示した図である。FIG. 5 is a diagram illustrating a flow of document information printing or preview processing. CPUのプロセッサが実行する処理のフローを示した図である。It is the figure which showed the flow of the process which the processor of CPU performs. 処理方法の決定するフローの一例を示した図である。It is the figure which showed an example of the flow which a processing method determines. 文書情報の描画オブジェクトの一例を示した図である。It is the figure which showed an example of the drawing object of document information.

(実施例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 image forming apparatuses 102 and 103 according to the present invention.

本実施例において、画像形成装置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 image forming apparatus 102 is an apparatus that executes image processing for generating document information 5000. The document information 5000 generated by the image forming apparatus 102 will be described later. Reference numeral 202 denotes a network I / F for inputting / outputting information to / from an external device such as a PC, and receives print image information (PDL data) transmitted from the external device. A scanner I / F 220 acquires document image read image information from a scanner 221 that is a document image reading unit, and transmits the read image information from the scanner 221 to a reception buffer. A central processing unit (CPU) 218 performs processing and control of the image forming apparatus 102. A RAM 203 temporarily stores various information. The RAM 203 has a reception buffer 204 and a work memory 205. The reception buffer 204 is a memory that stores print image information (PDL data) received via the network I / F 202 and read image information received via the scanner I / F. The PDL data is data written in a page description language (PDL), and the print image information describes information about an object to be printed by PDL. An object is, for example, a line segment connecting two points. The information about the object is, for example, a drawing command for designating two points and drawing a line segment connecting them. Reference numeral 205 denotes a work memory that is temporarily used when the CPU 218 executes processing.

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 ROM 208 stores a control program for the CPU 218 in the image forming apparatus 102. The ROM 208 stores an analysis program 209, an object generation program 210, a scheduler program 215, and a document management program 216. The CPU 218 loads these programs into the work memory 205 and executes them, thereby realizing the functions of the analysis unit, object generation unit, scheduler, and document management unit. The analysis unit analyzes the PDL data read from the reception buffer 204 and reads a drawing command in the PDL data. The object generation unit identifies an object from the drawing command of the object read by the analysis unit, and generates a drawing object from this object. Further, the object generation unit predicts a partial load when generating the intermediate code from the drawing object. The drawing object here is, for example, point sequence data for drawing a line segment. Based on the drawing object generated by the object generation unit and the partial load, the scheduler performs distributed processing estimation when performing parallel processing, and generates processing information (leveling information). The document management unit associates the drawing object generated by the object generation unit with the processing information, stores them in the HDD 217, and manages them as one document information 5000. In this embodiment, one piece of document information 5000 is generated for each piece of PDL data, and one or a plurality of drawing objects are included for each object. An engine I / F 212 inputs and outputs signals to and from the printer engine 213. Reference numeral 213 denotes a printer engine that forms a developer image on a photosensitive drum based on a raster image by a known electrophotographic process, transfers the developer image to a sheet, and fixes the image.

本実施例において、画像形成装置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 image forming apparatus 103 is an apparatus that executes image processing for functions of an output unit such as printing and previewing in accordance with document information 5000 stored in the HDD 217. Reference numeral 302 denotes a network I / F for acquiring the document information 5000 from the HDD 217 of the image forming apparatus 102. A central processing unit (CPU) 318 performs arithmetic processing and control of the image forming apparatus 103, and includes a plurality of processors (processing units). A RAM 303 temporarily stores various information. The RAM 303 includes a reception buffer 304, a work memory 305, a frame buffer 306, and a raster memory 307. The reception buffer 304 is a memory that stores document information 5000 received via the network I / F 302. A work memory 305 is used in the process in which the CPU 318 executes each process. Reference numeral 306 denotes a frame buffer that stores an intermediate code generated by an intermediate code generation unit described later. A raster memory 307 stores a raster image in which the intermediate code stored in the frame buffer 306 is expanded.

308は、画像形成装置103におけるCPU318の制御プログラムを格納するROMである。ROM308には、並列処理管理プログラム311、文書情報解析プログラム309、中間コード生成プログラム310、展開処理プログラム314が格納されている。CPU318はこれらのプログラムをワークメモリ305にロードし実行することで、並列処理管理部、文書情報解析部、中間コード生成部、展開処理部の各機能を実現する。並列処理管理部は、受信バッファ304から読み出した文書情報5000の処理情報513を参照し、CPU318の複数のプロセッサで動作する解析部、中間データ生成部に処理を依頼する。解析部は、並列処理管理部から処理依頼された文書情報5000を解析する。中間コード生成部は、文書情報5000に含まれる描画オブジェクトから中間コードを生成し、フレームバッファ306に格納する。展開処理部は、フレームバッファ306に格納された中間コードを展開したラスタイメージをラスタメモリ307に格納する。   A ROM 308 stores a control program for the CPU 318 in the image forming apparatus 103. The ROM 308 stores a parallel processing management program 311, a document information analysis program 309, an intermediate code generation program 310, and a development processing program 314. The CPU 318 loads these programs into the work memory 305 and executes them, thereby realizing the functions of the parallel processing management unit, document information analysis unit, intermediate code generation unit, and expansion processing unit. The parallel processing management unit refers to the processing information 513 of the document information 5000 read from the reception buffer 304, and requests processing from the analysis unit and the intermediate data generation unit that operate on a plurality of processors of the CPU 318. The analysis unit analyzes the document information 5000 requested for processing from the parallel processing management unit. The intermediate code generation unit generates an intermediate code from the drawing object included in the document information 5000 and stores it in the frame buffer 306. The development processing unit stores a raster image obtained by developing the intermediate code stored in the frame buffer 306 in the raster memory 307.

312はプリンタエンジン313との信号の入出力を行うエンジンI/Fである。313はラスタイメージに基づいて、周知の電子写真プロセスによって感光ドラム上に現像剤像を形成し、この現像剤像を用紙に転写して定着させるプリンタエンジンである。321は、ラスタイメージに基づいて、このラスタイメージをパネルに表示する表示パネルである。320は、表示パネル321との信号の入出力を行うパネルI/Fである。なお、以下の本実施例では、画像形成装置103がデュアルコアのCPUを搭載しており、機能としては印刷とプレビューのみであるものとして説明するが、本発明はこのようなコア数(プロセッサ数)、機能に限られるものではない。また、本実施例では、オブジェクトの属性は図形、写真、文字の何れかに分類されるものとして説明するが、本発明はこれらの属性に限られるものではない。   Reference numeral 312 denotes an engine I / F that inputs and outputs signals with the printer engine 313. Reference numeral 313 denotes a printer engine that forms a developer image on a photosensitive drum based on a raster image by a known electrophotographic process, and transfers and fixes the developer image onto a sheet. A display panel 321 displays the raster image on the panel based on the raster image. Reference numeral 320 denotes a panel I / F that inputs and outputs signals with the display panel 321. In the following embodiment, it is assumed that the image forming apparatus 103 has a dual-core CPU and only functions of printing and preview are described. However, the present invention describes such a number of cores (number of processors). ), Not limited to functions. In the present embodiment, the object attribute is described as being classified into one of a figure, a photograph, and a character, but the present invention is not limited to these attributes.

図2は、本実施例のHDD217に格納される文書情報5000のフォーマット一例を示す図である。図2(a)は、文書情報5000の全体のフォーマットを示す図であり、ヘッダ5100、文書情報の描画オブジェクトなどを格納するオブジェクト部5200、この描画オブジェクトの格納位置を示すオブジェクトテーブル5300を有する。   FIG. 2 is a diagram showing an example of the format of the document information 5000 stored in the HDD 217 of the present embodiment. FIG. 2A is a diagram showing the overall format of the document information 5000, and includes a header 5100, an object part 5200 for storing a drawing object of the document information and the like, and an object table 5300 indicating the storage position of the drawing object.

ヘッダ5100は、フォーマット特定情報5110、オブジェクトテーブルオフセット5120、処理情報オフセット5130を含む。フォーマット特定情報5110は、文書情報5000のフォーマットを特定するための識別子である。オブジェクトテーブルオフセット5120は、オブジェクトテーブル5300の格納位置(オブジェクトテーブル5300の先頭アドレス)を示す。処理情報オフセット5130は、シングルコア、デュアルコア等のCPUといった文書情報5000を処理する装置のハードウェア構成と、印刷、プレビュー等の各機能とに適した処理方法を指示する処理情報5220の格納位置(処理情報5220の先頭アドレス)を示す。   The header 5100 includes format specifying information 5110, an object table offset 5120, and a processing information offset 5130. The format specifying information 5110 is an identifier for specifying the format of the document information 5000. The object table offset 5120 indicates the storage position of the object table 5300 (the start address of the object table 5300). The processing information offset 5130 is a storage location of processing information 5220 that indicates a hardware configuration of a device that processes the document information 5000 such as a single core or dual core CPU, and a processing method suitable for each function such as printing and preview. (The start address of the processing information 5220).

オブジェクト部5200は、描画オブジェクト部5210、処理情報5220、処理指示部5230を含む。   The object unit 5200 includes a drawing object unit 5210, processing information 5220, and a processing instruction unit 5230.

描画オブジェクト部5210は、印刷、プレビュー等の各機能に対応する描画オブジェクト(変換後オブジェクト)を含む。本実施例において、画像形成装置の機能は印刷とプレビューであるので、描画オブジェクト部5210には、各オブジェクトの印刷用とプレビュー用の描画オブジェクトが格納されている。図13は、文書情報の描画オブジェクト一例を示した図である。図13の文書情報の描画オブジェクトは、点列700、文字701、イメージ702から構成される。点列700は、複数のX、Y座標の点列情報からなる。文字701は、描画位置X、Yと、描画する文字に対応するフォントIDと、描画サイズのポイント数からなる。イメージ702は、描画位置X、Yと、幅、高さ、階調からなる。文書情報には、これらの描画オブジェクトが一つまたは複数含まれている。   The drawing object portion 5210 includes drawing objects (converted objects) corresponding to functions such as printing and preview. In this embodiment, since the functions of the image forming apparatus are printing and preview, the drawing object unit 5210 stores drawing objects for printing and previewing each object. FIG. 13 is a diagram illustrating an example of a drawing object of document information. The document information drawing object in FIG. 13 includes a point sequence 700, characters 701, and an image 702. The point sequence 700 includes a plurality of point sequence information of X and Y coordinates. A character 701 includes drawing positions X and Y, a font ID corresponding to the character to be drawn, and the number of points of the drawing size. The image 702 includes drawing positions X and Y, width, height, and gradation. The document information includes one or more of these drawing objects.

処理情報5220は、シングル・印刷の処理指示オフセット5221、シングル・プレビューの処理指示オフセット5222、デュアル・印刷の処理指示オフセット5223、デュアル・プレビューの処理指示オフセット5224を含む。処理情報5220内の各情報は、処理方法を指示する情報が格納されている処理指示部5230の格納位置の情報(アドレス)である。シングル・印刷の処理指示オフセット5221は、シングルコアCPUの画像形成装置で印刷機能を実行する場合の処理方法を指示するシングル・印刷の処理指示5231の格納位置を示す。シングル・プレビューの処理指示オフセット5222は、シングルコアCPUの画像形成装置でプレビュー機能を実行する場合の処理方法を指示するシングル・プレビューの処理指示5232の格納位置を示す。デュアル・印刷の処理指示オフセット5223は、デュアルコアCPUの画像形成装置で印刷機能を実行する場合の処理方法を指示するデュアル・印刷の処理指示5233の格納位置を示す。デュアル・プレビューの処理指示オフセット5224は、デュアルコアCPUの画像形成装置103でプレビュー機能を実行する場合の処理方法を指示するデュアル・プレビューの処理指示5234の格納位置を示す。   The processing information 5220 includes a processing instruction offset 5221 for single printing, a processing instruction offset 5222 for single preview, a processing instruction offset 5223 for dual printing, and a processing instruction offset 5224 for dual preview. Each piece of information in the processing information 5220 is information (address) of a storage position of the processing instruction unit 5230 in which information indicating a processing method is stored. The single / print processing instruction offset 5221 indicates the storage position of the single / print processing instruction 5231 for instructing a processing method when the printing function is executed in the image forming apparatus of the single core CPU. The single preview processing instruction offset 5222 indicates the storage position of the single preview processing instruction 5232 for instructing a processing method when the preview function is executed in the image forming apparatus of the single core CPU. The dual-print processing instruction offset 5223 indicates the storage position of the dual-print processing instruction 5233 that instructs a processing method when the printing function is executed by the image forming apparatus of the dual-core CPU. The dual preview processing instruction offset 5224 indicates the storage position of the dual preview processing instruction 5234 that instructs the processing method when the preview function is executed in the image forming apparatus 103 of the dual core CPU.

処理指示部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 / print processing instruction 5231 is an ID list (described later) of a print drawing object for each page. The content of the single preview processing instruction 5232 is an ID list of preview drawing objects for each page. The contents of the dual-print processing instruction 5233 are a parallel processing method and an ID list or a page ID list of print drawing objects processed by the processors 1 and 2 based on the parallel processing method. The contents of the dual preview processing instruction 5234 are a parallel processing method and an ID list of preview drawing objects processed by the processor 1 and the processor 2 based on the parallel processing method.

並列処理方法は、並列処理の方法を指定するパラメータで、本実施例では、オブジェクト並列、ページ並列の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 drawing object unit 5210 of the object unit 5200. This object table 5300 is used for referring to the storage position of the drawing object corresponding to this ID from the ID of the drawing object.

並列処理方法による、各プロセッサの処理内容の違いを図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 processor 1 is specified for each page as the processing contents of the processor 1, and the processing of the processor 2 is to be processed for each page as the processing contents of the processor 2. An ID list of drawing objects is designated.

図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 processor 1 is specified as the processing method of the processor 1, and a list of page IDs to be processed by the processor 2 is specified as the processing method of the processor 2. In this case, the designated page ID does not overlap between the processors 1 and 2. This page ID uniquely identifies a page to be processed, and corresponds to an address for acquiring all drawing object IDs in the page. For example, in the case of the page-parallel dual-print processing instruction 5233, the page ID is the address of the single-print processing instruction 5231 to the print drawing object ID list of the page corresponding to this page ID.

図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 document information 5000 in the image forming apparatus 102. In the flow of FIG. 3, the CPU 218 develops and executes each program (analysis program 209, object generation program 210, scheduler program 215, document management program 216) stored in the ROM 208 in advance on the work memory 205. This is realized by functioning as a function unit (analysis unit, object generation unit, scheduler, document management unit). In step S <b> 1001, the CPU 218 stores the PDL data input from the external device connected to the network 104 via the network I / F 202 in the reception buffer 204. In step S1002, the analysis unit reads the PDL data stored in the reception buffer 204 and executes an analysis process. In step S1003, the analysis unit determines whether the analysis of the PDL data is finished (job end). In cases other than job end, in step S1010, the object generation unit executes generation of a drawing object and prediction of a partial load of the generated drawing object (described later). If the analysis unit determines that the job is finished in step S1003, the scheduler generates processing information for printing (leveling information for the printing function) in step S1020, and processing information for previewing (leveling information for the preview function) in step S1021. To do. The processing information for printing and the processing information for preview are generated based on the predicted load value (described later) of the drawing object generated in step S1010. In step S1022, the document management unit associates the generated print processing information and preview processing information with the drawing object generated in step S1010. Note that the data generated in the above steps is temporarily stored in the work memory 205. In step S1023, the document management unit stores the data generated in the above steps as document information 5000 in the HDD 217, which is a database. The database is not limited to the inside of the image forming apparatus 102 but may be provided inside the image forming apparatus 103 or on the network 104.

図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 CPU 218 developing and executing an object generation program stored in the ROM 208 in advance on the work memory 205. Is done. In step S1101, the object generation unit generates a print drawing object to be used at the time of printing from the analysis information (drawing object drawing command) acquired by the analysis unit, and stores it in the work memory 205 for the drawing object unit 5210 of the document information 5000. Store. In step S1102, the object generation unit predicts a partial load of the generated print drawing object. The partial load referred to here is a load applied to a processor that converts a drawing object into an intermediate code. In step S <b> 1103, the object generation unit adds information specifying the storage location of the print drawing object generated in step S <b> 1101 for the object table 5300 of the document information 5000 to the work memory 205. In step S1104, the object generation unit allocates an object ID to the stored print drawing object, and uses this object ID for the drawing object ID list for each page of the single / print processing instruction 5231 of the document information 5000. Is added to the work memory 205.

ステップ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 drawing object unit 5210 of the document information 5000. Store in the memory 205. That is, a preview drawing object is generated by thinning several points from the point sequence data of the printing drawing object. If it is determined that it does not exist, the process proceeds to step S1150, and the print drawing object is set as the preview drawing object.

ステップ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 document information 5000. In step S1152, the object generation unit allocates an object ID to the stored preview drawing object, and uses this object ID as a drawing object ID list for each page of the single preview processing instruction 5232 of the document information 5000. Is added to the work memory 205.

ステップ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 CPU 218 executing the object generation program 210 stored in advance in the ROM 208 on the work memory 205. In step S1201, the object generation unit determines whether the drawing object is a point sequence. If it is determined to be a point sequence, in step S1210, the object generation unit calculates a predicted load value using, for example, the following equation.
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 CPU 218 executing the scheduler program 215 stored in advance in the ROM 208 on the work memory 205. In step S1301, the scheduler determines whether the document information 5000 to be generated is a plurality of pages. If there are a plurality of pages, the scheduler determines the parallel processing method of the dual-print processing instruction 5233 stored in the work memory 205 in step S1310. Set in parallel. In step S1311, the scheduler initializes the page counter P of the page for calculating the predicted load value for each page to 1. The page counter P is secured in the work memory 205. In step S1312, the scheduler obtains an ID list of print drawing objects for page P of the single / print processing instruction 5231 on the work memory 205. In step S1313, the scheduler initializes a load value counter F for accumulating predicted load values of all drawing objects in the page P to zero. The load value counter F is secured in the work memory 205. In step S1314, the scheduler refers to the drawing object ID list of page P of the single / print processing instruction 5231 stored in the work memory 205 and calculates the drawing object calculated during generation of the drawing object in step S1010 of FIG. Each predicted load value is read from the work memory 205 and added to the load value counter F. Steps S1314 to S1316 are repeatedly executed until the addition of all drawing objects in the page is completed. When the addition of all objects in the page is completed, the scheduler stores the value of the load value counter F in the work memory 205 as the predicted load value of page P in step S1317, and increments the page counter P in step S1318. The next page is processed. Steps S1312 to S1319 are repeatedly executed until the addition of the predicted load values of all pages is completed. In step S1320, the scheduler performs page parallel load distribution estimation from the calculated predicted load values of all pages.

一方、ステップS1301で文書情報5000が単ページと判定された場合、ステップS1330で、スケジューラは、ワークメモリ205に格納されたデュアル・印刷の処理指示5233の並列処理方法をオブジェクト並列に設定する。ステップS1331で、スケジューラは、オブジェクト並列の負荷分散見積もりを行なう。   On the other hand, if it is determined in step S1301 that the document information 5000 is a single page, in step S1330, the scheduler sets the parallel processing method of the dual-print processing instruction 5233 stored in the work memory 205 to object parallel. In step S1331, the scheduler performs an object parallel load distribution estimation.

図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 CPU 218 executing the scheduler program 215 stored in advance in the ROM 208 on the work memory 205. In step S1401, the scheduler sets the parallel processing method of the dual preview processing instruction 5234 stored in the work memory 205 to object parallel. In step S1402, the scheduler initializes the page counter P of the page for calculating the load value for each page to 1. The page counter P is secured in the work memory 205. In step S1403, the scheduler acquires a list of drawing objects for preview on page P of the single preview processing instruction 5232 stored in the work memory 205. In step S1404, the scheduler performs object parallel load distribution estimation. In step S1405, the scheduler increments the page counter P and processes the next page. Steps S1402 to S1406 are repeatedly executed until the object-parallel load distribution estimation for all pages is completed.

図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 processor 1 of the multi-core CPU 318 to zero. Similarly, in step S1503, the scheduler initializes the load value counter F2 of the processor 2 of the multi-core CPU 318 to 0. In step S1504, the scheduler initializes a page counter P of a page for which load distribution is estimated to 1. In step S1505, the scheduler reads the predicted load value of the page P stored in the work memory 205, and determines whether the load value counter F1 of the processor 1 is smaller than a predetermined threshold (eg, 1.1 times the load threshold Fth). judge. If the load value counter F1 is smaller than the predetermined threshold, the scheduler adds the predicted load value of page P to the load value counter F1 of the processor 1 in step S1510. In step S1511, the scheduler adds the ID of page P to the page ID list of the processor 1 of the dual print processing instruction 5233 on the work memory 205 shown in FIGS. 2 (a) and 2 (b2). If the load value counter F1 is greater than or equal to the predetermined threshold value in step S1505, the scheduler adds the load value of page P to the load value counter F2 of the processor 2 in step S1520. In step S1521, the scheduler adds the ID of page P to the page ID list of the processor 2 of the dual print processing instruction 5233 on the work memory 205 shown in FIGS. 2 (a) and 2 (b2). The scheduler increments page P in step 1530, and repeatedly executes steps S1505 to 1531 until the load distribution estimation for all pages is completed. The processing information for printing generated by these processes is information (leveling information) for leveling the load on the intermediate code generation unit when page-parallel processing is executed, and dual printing of document information. The processing instruction 5233 takes the form of FIG.

図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 CPU 218 executing the scheduler program 215 stored in advance in the ROM 208 on the work memory 205.

まずはステップ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 / print processing instruction 5231. In step S1603, the scheduler adds the load value of the drawing object calculated during the drawing object generation in step S1102 of FIG. In step S1604, the scheduler determines whether the load value addition for all objects in the page has been completed. The scheduler repeatedly executes steps S1602 to S1604 until the addition of all objects in the page is completed. When the addition of all objects in the page is completed, in step S1605, the scheduler calculates a load threshold Fth from the load values of all drawing objects in the page using the following formula. Since single-page printing (that is, processing for a single page), the load value of all drawing objects in the page is the predicted value of the total load.
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 processor 1 of the CPU 318 to 0. Similarly, in step S1607, the scheduler initializes the load value counter F2 of the processor 2 of the CPU 318 to 0. The load value counters F1 and F2 are secured in the work memory 205. In step S 1608, the scheduler refers to the drawing object ID list of page P of the single / print processing instruction 5231 on the work memory 205. In step S1609, the scheduler adds a drawing object load value calculated during the drawing object generation in step S1010 of FIG. 3 to the load value counter F1 of the processor 1 based on the ID list to obtain a predetermined threshold value. It is determined whether it is smaller than (for example, 1.1 times the load threshold Fth). If it is smaller than the predetermined threshold, the scheduler adds the load value of the drawing object to the load value counter F1 of the processor 1 in step S1610. In step S <b> 1611, the scheduler adds the drawing object ID to the drawing object ID list of the processor 1 of page P of the dual / print processing instruction 5233 on the work memory 205. If it is equal to or greater than the predetermined threshold, the scheduler adds the load value of page P to the load value counter F2 of the processor 2 in step S1620. In step S1621, the scheduler adds the drawing object ID to the drawing object ID list of the processor 2 on page P of the dual / print processing instruction 5233 on the work memory 205. The scheduler repeatedly executes steps S1608 to S1630 until the load distribution of all the drawing objects in the page P is completed according to the determination in step S1630. The processing information for printing generated by these processes is information (leveling information) for leveling the load applied to the intermediate code generation unit when executing object parallel processing, and dual printing of document information. The processing instruction 5233 takes the form of FIG.

図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 processors 1 and 2 on page P of the dual preview processing instruction 5234 on the work memory 205. And it is a point which repeats the process of step S1601-S1630 over all the pages. The processing information for preview generated by these processes is information (leveling information) for leveling the load applied to the intermediate code generation unit when executing object parallel processing, and dual preview of document information The processing instruction 5234 takes the form as shown in FIG.

以上の図2のステップS1001〜S1023で、負荷分散見積もりを行った文書情報5000が生成されてデータベースに保存される。なお、負荷値の算出や負荷分散見積もりを行う上で用いた式は一例であって本発明を限定するものではなく、適当な他の式を用いて負荷値の算出や負荷分散見積もりを行ってもよい。   In steps S1001 to S1023 of FIG. 2 described above, the document information 5000 for which the load distribution estimation has been performed is generated and stored in the database. It should be noted that the formula used for calculating the load value and estimating the load distribution is an example and does not limit the present invention, and calculating the load value or estimating the load distribution using another appropriate formula. Also good.

以下では、データベースに格納された文書情報5000を用いて、分散処理の実行について説明する。図10は、画像形成装置103における文書情報5000の印刷またはプレビュー処理のフローを示した図である。図10のフローは、ROM308に予め格納された各プログラム(文書情報解析プログラム309、中間コード生成310、並列処理管理プログラム311、展開処理プログラム314)をCPU318がワークメモリ305上に展開、実行して、CPUを各機能部(文書情報解析部、中間コード生成部、並列処理管理部、展開処理部)として機能させることで実現される。   Hereinafter, the execution of distributed processing will be described using document information 5000 stored in the database. FIG. 10 is a diagram illustrating a flow of printing or preview processing of document information 5000 in the image forming apparatus 103. In the flow of FIG. 10, the CPU 318 develops and executes each program (document information analysis program 309, intermediate code generation 310, parallel processing management program 311 and decompression processing program 314) stored in advance in the ROM 308 on the work memory 305. This is realized by causing the CPU to function as each functional unit (document information analysis unit, intermediate code generation unit, parallel processing management unit, development processing unit).

ステップ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 CPU 318 receives document information 5000 and a function instruction selected by the user using the display panel 321 via the panel I / F 320. When the instruction is received, in step S1702, the document information analysis unit acquires the document information 5000 selected by the user from the database (HDD 217 of the image forming apparatus 102) and stores it in the reception buffer 304. In step S1703, the document information analysis unit determines whether the function selected by the user is a preview. If the function selected by the user is preview, the document information analysis unit analyzes the document information 5000 in step S1704. FIG. 12 shows a flow of document information analysis in the case of preview. The processing flow in FIG. 12 is realized by the CPU 318 executing the document information analysis program 309 stored in advance in the ROM 308 on the work memory 305.

ステップ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 image forming apparatus 103. In step S1901, the document information analysis unit reads the processing information offset 5130 of the header 5100. In step S1902, the document information analysis unit reads the processing information 5220 in the order of addresses according to the processing information offset 5130, and detects processing information (processing instruction offset) that matches the hardware configuration (number of cores) and function. In step S1903, the document information analysis unit determines whether matching process information is detected in step S1902. If it is detected in step S1902, in step S1904, the document information analysis unit stores the processing instruction of the processing instruction unit 5230 in the work memory 305 based on the detected processing instruction offset. If no processing information is detected in step S1902, the document information analysis unit stores a single preview processing instruction 5232 in the work memory 305 as a processing instruction in step S1905. In this embodiment, since processing is executed by the image processing apparatus 103 in the case of preview, a document information dual preview processing instruction 5234 is read out as parallel processing information.

図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 work memory 305 and determines whether the instruction is to instruct parallel processing by the multi-core CPU. If it is determined in step S1710 that the processing is parallel processing, in step S1711, the parallel processing management unit displays an ID list of preview rendering objects for each processor regarding the page to be previewed in accordance with the read processing instruction for parallel processing. get. In step S1712, the parallel processing management unit passes the processing instruction read in step S1704 and the ID list of the drawing object to be processed by the processor 1 to the processor 1 (intermediate code generation unit) of the CPU 318. Request processing of intermediate code generation. In step S1713, the parallel processing management unit passes the processing instruction read in step S1704 and the ID list of the drawing object to be processed by the processor 2 to the processor 2 (intermediate code generation unit) of the CPU 318. Request processing of intermediate code generation. In step S <b> 1714, the parallel processing management unit waits for an end notification of the intermediate code generation processing of the processors 1 and 2. When the processing end notification is received from the processors 1 and 2, in step S1715, the parallel processing management unit combines the intermediate codes generated by the intermediate code generation units of the processors 1 and 2 and stored in the frame buffer 306, and the work memory Stored in 305. In step S 1716, the development processing unit reads the combined intermediate code from the work memory 305, renders it, and stores the image in the raster memory 307. In step S1717, the parallel processing management unit reads the raster image stored in the raster memory 307 and displays the preview image on the display panel 321 via the panel I / F 320.

ステップ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 CPU 318 to generate the intermediate code of the drawing object. Request processing. In step S1753, the parallel processing management unit waits for a process end notification of intermediate code generation. When the process end notification is received from the processor, the process proceeds to step S1716. The processing after step S1716 is as described above.

一方、ユーザが選択した機能が印刷の場合、ステップ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 document information 5000 in step S1705. A flow of document information analysis in the case of printing will be described with reference to FIG. 12 in the case of preview. In the case of printing, the same processing flow as in the case of preview is taken. The difference is the processing in step S1905 when the processing information is not detected in step S1902. In step S 1905, the document information analysis unit stores a single / print processing instruction 5231 in the work memory 305 as a processing instruction. The rest is the same as in the preview. In this embodiment, in the case of printing, processing is executed by the image processing apparatus 103. Therefore, a dual-print processing instruction 5234 is read out as parallel processing information.

図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 work memory 305, and determines whether the instruction is for instructing parallel processing by the multi-core CPU. If it is determined in S1720 that the processing is parallel processing, the parallel processing management unit further determines in step S1721 whether the parallel processing method of the read processing instruction is page parallel. If it is determined in step S1721 that the pages are parallel, the parallel processing management unit acquires the page ID list of each processor in FIG. 2B2 in step S1730. In step S1731, the parallel processing management unit passes the processing instruction read in step S1705 and the acquired page list of processor 1 to the processor 1 (intermediate code generation unit) of the CPU 318, and generates the intermediate code of the drawing object. Request processing. In step S1732, the parallel processing management unit passes the processing instruction read in step S1705 and the acquired page list of processor 2 to the processor 2 (intermediate code generation unit) of the CPU 318, and generates the intermediate code of the drawing object. Request processing. In step S1733, the parallel processing management unit waits for an end notification of the intermediate code generation processing for each page from the processors 1 and 2 (intermediate code generation unit). If an end notification is received from either one of the processors 1 and 2 (intermediate code generation unit), the expansion processing unit renders the intermediate code stored in the frame buffer 306 and stores the raster image in the raster memory 307 in step S1734. To do. In step S1735, the parallel processing management unit waits for completion of rendering of all pages to be printed. When rendering of all pages is completed, the parallel processing management unit reads the raster image stored in the raster memory 307, outputs it to the printer engine 313 via the engine I / F 312 and prints it in step S1736. Step S1733 to step S1735 are repeatedly executed until it is determined in step S1735 that all pages have been completed.

ステップ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 processor 1 to the processor 1 (intermediate code generation unit) of the CPU 318, and Request intermediate code generation processing. In step S 1742, the parallel processing management unit passes the processing instruction read in step S 1705 and the acquired drawing object ID list of the processor 2 to the processor 2 (intermediate code generation unit) of the CPU 318. Request intermediate code generation processing. In step S1743, the parallel processing management unit waits for an end notification of the intermediate code generation processing of the processors 1 and 2. When the end notification of the intermediate code generation processing is received from the processors 1 and 2 in step S1743, the parallel processing management unit generates the intermediate code generated by the intermediate code generation unit of the processors 1 and 2 and stored in the frame buffer 306 in step S1744. The code is combined and stored in the work memory 305. In step S1745, the development processing unit reads the combined intermediate code from the work memory 305, renders it, and stores the image in the raster memory 307. Thereafter, in step S1736, the parallel processing management unit reads the image stored in the raster memory 307, outputs it to the printer engine 313 via the engine I / F 312 and prints it.

ステップ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 / print processing instruction 5231 in step S1761. In step S1762, the parallel processing management unit passes the processing instruction read in step S1705 and the ID list of the drawing object to be processed to the processor (intermediate code generation unit) of the CPU 318, and generates the intermediate code of the drawing object. Request processing. In step S1763, the parallel processing management unit waits for an end notification of the intermediate code generation processing for each page from the processor. If an end notification is received from the processor, the expansion processing unit renders the intermediate code stored in the frame buffer 306 and stores the raster image in the raster memory 307 in step S1764. In step S1765, the parallel processing management unit waits for completion of rendering of all pages to be printed. When rendering of all pages is completed, the parallel processing management unit reads the raster image stored in the raster memory 307, outputs it to the printer engine 313 via the engine I / F 312 and prints it in step S1736. Steps S1763 to S1765 are repeatedly executed until it is determined in step S1765 that all pages have been completed.

図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 CPU 318 in the image forming apparatus 103. The CPU 318 stores an intermediate code generation program 310 stored in advance in the ROM 208 on the work memory 305. It is realized by executing. The In step S1801, the intermediate code generation unit determines whether the processing method is object parallel based on the processing instruction passed from the parallel processing management unit in steps S1712, S1713, S1731, S1732, S1741, S1742, S1752, and S1762. Determine. In the case of object parallel, the intermediate code generation unit refers to the drawing object ID list passed together with the object parallel processing request in step S1811, and in step S1812, selects the drawing object based on the ID of the ID list and the object table 5300. get. In step 1814, the intermediate code generation unit generates an intermediate code from the acquired drawing object and stores it in the frame buffer 306. Steps S1811 to S1815 are repeatedly executed until intermediate code generation for all objects is completed. When the intermediate code generation for all objects is completed, in step S1816, the intermediate code generation unit transmits an end notification to the parallel processing management unit.

一方、並列処理方法がページ並列の場合は、ステップ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 frame buffer 306. Steps S1821 to S1825 are repeatedly executed until intermediate code generation for all objects is completed. When the intermediate code generation for all objects is completed, in step S1826, the intermediate code generation unit transmits an end notification of the intermediate code generation process for the page to the parallel processing management unit. The processor repeatedly executes step S1820 to step S1827 until all pages in the passed page list are completed.

以上説明した本発明の本実施例によると、マルチコア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 image forming apparatus 102 analyzes the PDL data to generate the document information 5000. However, the image forming apparatus 102 analyzes the read image information read by the scanner 221, and uses the read image information to determine a plurality of objects (graphics, images, characters). May be read to generate the document information 5000.

また本実施例では、文書情報5000を生成する画像形成装置102と生成された文書情報5000の処理情報に基づいて出力の処理を実行する画像形成装置103とによって、本発明の画像処理システムを実現している。しかし、本発明を、上述した画像形成装置102及び103の画像処理を同一の画像形成装置によって実行させることで実現しても良い。   In this embodiment, the image processing apparatus according to the present invention is realized by the image forming apparatus 102 that generates the document information 5000 and the image forming apparatus 103 that executes output processing based on the processing information of the generated document information 5000. is doing. However, the present invention may be realized by causing the image forming apparatuses 102 and 103 described above to execute the image processing using the same image forming apparatus.

(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(または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.
前記文書情報生成手段は、前記文書情報をデータベースへと保存することを特徴とする請求項1又は2に記載の画像処理システム。   The image processing system according to claim 1, wherein the document information generation unit stores the document information in a database. 前記負荷予測手段の予測する部分負荷は、前記変換後オブジェクトの属性に基づいて算出されることを特徴とする請求項1乃至3の何れか1項に記載の画像処理システム。   The image processing system according to claim 1, wherein the partial load predicted by the load prediction unit is calculated based on an attribute of the converted object. オブジェクト生成手段が、複数のオブジェクトを含む画像情報から、前記オブジェクトを出力ユニットの機能に応じたデータに変換した、変換後オブジェクトを生成するオブジェクト生成工程、
複数の処理ユニットを有する中間コード生成手段が、前記変換後オブジェクトから中間コードを生成する中間コード生成工程、
負荷予測手段が、前記中間コードの生成における前記中間コード生成手段にかかる部分負荷を予測する負荷予測工程、
平準化情報生成手段が、前記負荷予測工程で予測される部分負荷に基づいて、前記機能での前記複数のオブジェクトに対する前記中間コード生成手段にかかる全体負荷を、前記複数の処理ユニットの間で平準化するための平準化情報を生成する平準化情報生成工程、
関連付け手段が、前記平準化情報を前記複数の変換後オブジェクトと関連付ける関連付け工程、
文書情報生成手段が、前記変換後オブジェクトと前記平準化情報とを有する文書情報を生成する文書情報生成工程、
を有する画像処理方法。
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.
請求項1乃至4の何れか1項に記載の各手段として、コンピュータを機能させるためのプログラム。   The program for functioning a computer as each means of any one of Claims 1 thru | or 4. 複数のオブジェクトを含む画像情報を取得するための取得手段と、
前記複数のオブジェクトそれぞれを出力ユニットの機能に応じたデータに変換することにより、変換後オブジェクトを生成するオブジェクト生成手段と、
前記複数の変換後オブジェクトを有する文書情報を生成する文書情報生成手段と、
を有する画像処理装置であって、
前記変換後オブジェクトに対して、前記出力ユニットで出力するためのデータへ変換する処理ユニットにかかる負荷を予測する負荷予測手段と、
前記負荷予測手段の予測する負荷に基づいて、前記複数の変換後オブジェクトを複数の前記処理ユニットで変換する際にかかる負荷を、複数の前記処理ユニット間で平準化するための平準化情報を生成する平準化情報生成手段と、
前記平準化情報を前記複数の変換後オブジェクトと関連付ける関連付け手段と、
を有することを特徴とする画像処理装置。
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:
JP2010238689A 2010-10-25 2010-10-25 Image processing system, image processing device, image processing method, and computer program Pending JP2012093838A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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