JP2012071544A - Image forming apparatus and image processing method - Google Patents
Image forming apparatus and image processing method Download PDFInfo
- Publication number
- JP2012071544A JP2012071544A JP2010219743A JP2010219743A JP2012071544A JP 2012071544 A JP2012071544 A JP 2012071544A JP 2010219743 A JP2010219743 A JP 2010219743A JP 2010219743 A JP2010219743 A JP 2010219743A JP 2012071544 A JP2012071544 A JP 2012071544A
- Authority
- JP
- Japan
- Prior art keywords
- optimization information
- forming apparatus
- image forming
- processing
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Image Processing (AREA)
- Facsimiles In General (AREA)
- Record Information Processing For Printing (AREA)
Abstract
Description
本発明は、印刷データを可視化処理する画像形成装置等に関し、特に、マルチコア又は複数のCPUを用いて印刷データを処理する画像形成装置及び画像処理方法に関する。 The present invention relates to an image forming apparatus for visualizing print data, and more particularly to an image forming apparatus and an image processing method for processing print data using a multi-core or a plurality of CPUs.
従来の組み込み機器にはシングルコアのCPUが多く使用されてきたが、デュアルコアやクアッドコアといった複数のコアを持つマルチコアのCPUが、汎用PCへ普及することに伴い、組み込み機器にもその導入が進められている。 Conventionally, single-core CPUs have been used in many embedded devices, but as multi-core CPUs with multiple cores, such as dual-core and quad-core, have become popular in general-purpose PCs, their introduction has been promoted in embedded devices. It has been.
しかし、単にコアの数が2倍になったからといって、その性能が2倍になるとは限らず、その影響度はアルゴリズムなどに依存する。すなわち、マルチコアの性能を最大限に引き出すには、各コアに処理を適切に配分し、処理を並列に実行する必要があり、その際、各コアに"待ち"が発生しないようにすることで2倍に近い性能を引き出すことができる。しかし一般的に各処理がすべて並列に実行できること(性能が2倍になるような処理)は稀であり、いかに処理を並列化するかが技術的な課題となる。 However, just because the number of cores is doubled, the performance is not necessarily doubled, and the degree of influence depends on the algorithm and the like. In other words, in order to maximize the performance of the multi-core, it is necessary to appropriately distribute the processing to each core and execute the processing in parallel, so that no "wait" occurs in each core. A performance close to twice can be obtained. However, in general, it is rare that each processing can be executed in parallel (processing that doubles the performance), and how to parallelize the processing becomes a technical problem.
PDLデータを解析して描画対象をレンダリングするプリンタコントローラもマルチコアのCPUを搭載することが検討されている。プリンタコントローラが、複数のコア(プロセッサ)を使用して印刷する場合、中間データを生成する「PDL解析部」に1つ、中間データに基づきレンダリングを行う「描画処理部」に残りを割り当て、各描画処理部に割り当てる処理量を平均化して描画処理部に待ちが発生しないようにする技術が考案されている(例えば、特許文献1参照。)。 A printer controller that analyzes PDL data and renders a drawing target is also considered to include a multi-core CPU. When the printer controller prints using a plurality of cores (processors), one is assigned to the “PDL analysis unit” that generates intermediate data, and the rest is assigned to the “drawing processing unit” that performs rendering based on the intermediate data. A technique has been devised in which the amount of processing allocated to the drawing processing unit is averaged so that no waiting occurs in the drawing processing unit (see, for example, Patent Document 1).
特許文献1には、複数の描画処理部にかかる負荷を均一化して印刷性能の効率化を図る目的で、各描画領域にて処理されるオブジェクトの面積から描画の負荷を算出し、各描画処理部にかかる負荷が均一になるように描画領域のサイズを決定して割り当てる描画処理装置が開示されている。 In Patent Document 1, for the purpose of making the load on a plurality of drawing processing units uniform and improving the efficiency of printing performance, the drawing load is calculated from the area of the object processed in each drawing region, and each drawing process is performed. A drawing processing apparatus is disclosed in which the size of a drawing area is determined and assigned so that the load on the part is uniform.
しかしながら、特許文献1では、PDL解析部でページを複数の領域に分割し、各領域に存在する描画オブジェクトの面積から処理量を計算している。このため、描画処理部はPDL解析部の処理が終わるまでオブジェクトの描画が始められず待ち状態となってしまうことになり、各コアやCPUを有効に使用できていないという問題がある。 However, in Patent Document 1, a page is divided into a plurality of regions by the PDL analysis unit, and the processing amount is calculated from the area of the drawing object existing in each region. For this reason, the drawing processing unit cannot wait until the processing of the PDL analysis unit is finished, and the drawing processing unit is in a waiting state, and there is a problem that each core and CPU cannot be used effectively.
また、特許文献1では、処理量のみを基準に領域を分割しているため各描画処理部の特性に応じた最適な割り当てができていないという問題がある。 Moreover, in patent document 1, since the area | region is divided | segmented on the basis of only the processing amount, there exists a problem that the optimal allocation according to the characteristic of each drawing process part cannot be performed.
本発明は、上記課題に鑑み、複数のコア又はCPUが搭載されたプリンタコントローラの、描画処理部の待機時間を縮小し、複数のコアにより効率的に印刷することが可能な画像形成装置及び画像処理方法を提供することを目的とする。 SUMMARY OF THE INVENTION In view of the above problems, the present invention reduces the standby time of a drawing processing unit of a printer controller equipped with a plurality of cores or CPUs, and can efficiently print using the plurality of cores. An object is to provide a processing method.
上記課題に鑑み、本発明は、ページの領域毎に描画処理手段が描画処理する画像形成装置であって、印刷データを格納する印刷データ格納手段と、前記印刷データを解析し、描画対象とされるオブジェクトの描画命令をページ毎に記述した描画命令データを生成する描画命令生成手段と、前記描画命令生成手段と並行して前記印刷データを解析し、前記描画処理手段が受け持つ前記領域を決定するための最適化情報を作成する最適化情報作成手段と、前記描画命令データと前記最適化情報を記憶する中間データ記憶手段と、前記最適化情報に基づき受け持つ領域を決定し、領域毎に前記描画命令データを描画処理する前記描画処理手段と、を有することを特徴とする。 In view of the above-described problems, the present invention is an image forming apparatus in which a drawing processing unit performs drawing processing for each region of a page, and print data storage unit that stores print data, and the print data is analyzed to be a drawing target. A drawing command generation unit that generates drawing command data describing a drawing command of an object for each page; and the print data is analyzed in parallel with the drawing command generation unit to determine the area that the drawing processing unit is responsible for. Optimized information creating means for creating optimization information, intermediate data storage means for storing the drawing command data and the optimized information, and a region to be handled based on the optimized information are determined, and the drawing is performed for each region. And a drawing processing means for drawing the command data.
複数のコア又はCPUが搭載されたプリンタコントローラの、描画処理部の待機時間を縮小し、複数のコアにより効率的に印刷することが可能な画像形成装置及び画像処理方法を提供することができる。 It is possible to provide an image forming apparatus and an image processing method capable of reducing the waiting time of a drawing processing unit of a printer controller equipped with a plurality of cores or CPUs and efficiently printing with the plurality of cores.
以下、本発明を実施するための形態について図面を参照しながら説明する。
図1は、本実施形態のレンダリング処理を模式的に説明する図の一例である。例えば、4つのコアがあるとして、各コアが以下のように処理を分担している。
コア1:PDL解析(ディスプレイリストの作成)
コア2:最適化情報の作成→レンダリング
コア3:レンダリング
コア4:レンダリング
すなわち、PDL解析と最適化情報の作成を別々のコアに割り当てることで、この2つの処理が時間的に並行に実行されることが特徴の1つである。なお、最適化情報とはレンダリングの負荷値又は負荷値を求めるための情報である。
Hereinafter, embodiments for carrying out the present invention will be described with reference to the drawings.
FIG. 1 is an example of a diagram for schematically explaining the rendering processing of the present embodiment. For example, assuming that there are four cores, each core shares processing as follows.
Core 1: PDL analysis (creation of display list)
Core 2: Creation of optimization information → Rendering core 3: Rendering core 4: Rendering In other words, by assigning PDL analysis and creation of optimization information to different cores, these two processes are executed in parallel in time. This is one of the features. The optimization information is rendering load values or information for obtaining load values.
すると、コア1は最適化情報を作成する必要がないので、比較的重い処理であるPDL解析だけを従来よりも短い時間で完了できる。また、コア2は、比較的軽い処理である最適化情報の作成だけを行えばよいので、コア1が1ページ分のPDL解析を行う間に、複数のページの最適化情報を作成できる。 Then, since the core 1 does not need to create optimization information, only PDL analysis, which is a relatively heavy process, can be completed in a shorter time than before. In addition, since the core 2 only needs to create optimization information that is a relatively light process, optimization information for a plurality of pages can be created while the core 1 performs PDL analysis for one page.
この結果、レンダリングするコア3,コア4が待機する時間は、コア1が1ページ分をPDL解析するまでの時間に短縮できる。すなわち、従来、PDL解析部が最適化情報も作成していたため、レンダリングするコア3,コア4がPDL解析+最適化情報の作成が完了するまで待機する必要があったのと比べて、処理時間を短縮できる。 As a result, the waiting time of the cores 3 and 4 to be rendered can be shortened to the time until the core 1 performs PDL analysis for one page. That is, since the PDL analysis unit has also created optimization information, the processing time is longer than the cores 3 and 4 to be rendered need to wait until the creation of PDL analysis + optimization information is completed. Can be shortened.
〔構成〕
図2は、印刷システム300の一例を示す図である。ホストPC(Personal Computer)150とMFP(Multi Function Peripheral)200がネットワークを介して接続されている。
〔Constitution〕
FIG. 2 is a diagram illustrating an example of the printing system 300. A host PC (Personal Computer) 150 and an MFP (Multi Function Peripheral) 200 are connected via a network.
ホストPC150がユーザの操作を受け付け、例えば何らかのアプリケーションプログラムがOSのグラフィック制御部(例えばGDI)に文書データの印刷を要求する。グラフィック制御部は、アプリケーションに依存しないAPI(基本関数)により文書データを描画する描画命令(中間ファイル)を生成する。 The host PC 150 receives a user operation, and for example, some application program requests the OS graphic control unit (for example, GDI) to print document data. The graphic control unit generates a drawing command (intermediate file) for drawing document data using an API (basic function) that does not depend on the application.
この後、グラフィック制御部は、MFP200が対応したPDLデータを生成するプリンタドライバを呼び出す。グラフィック制御部とプリンタドライバの間には、DDI(Device Driver Interface)と呼ばれるインタフェースが定義されている。プリンタドライバは、中間ファイルをプリンタが解釈可能なPDLデータに変換し、MFP200に送信する。 Thereafter, the graphic control unit calls a printer driver that generates PDL data corresponding to the MFP 200. An interface called DDI (Device Driver Interface) is defined between the graphic control unit and the printer driver. The printer driver converts the intermediate file into PDL data that can be interpreted by the printer, and transmits the PDL data to the MFP 200.
PDLデータとしては、PostScript、PCL、RPCS、PDF(Portable Document Format)、又は、XPSなどのフォーマットが知られており、PDLデータのフォーマットはMFP200が解析可能なフォーマットである必要がある。 As the PDL data, formats such as PostScript, PCL, RPCS, PDF (Portable Document Format), or XPS are known, and the format of the PDL data needs to be a format that the MFP 200 can analyze.
MFP200は、PDLデータからディスプレイリストと最適化情報を作成し、描画処理(レンダリング処理)などを行い、印刷する。なおMFP200は、プリンタ機能さえ有していればよいが、複写機、スキャナ、送信機能(FAX、電子メール、フォルダ)等を有していてもよい。 The MFP 200 creates a display list and optimization information from the PDL data, performs drawing processing (rendering processing), etc., and prints it. The MFP 200 only needs to have a printer function, but may have a copier, a scanner, a transmission function (FAX, electronic mail, folder), and the like.
図3は、MFP200のハードウェア構成図の一例である。MFP200は、MFP200の全体を制御するコントローラ100 と、用紙に画像を印刷するためのエンジン160と、ユーザが入力を行う操作パネル・状態を表示するパネル装置 170 とを有する。 FIG. 3 is an example of a hardware configuration diagram of the MFP 200. The MFP 200 includes a controller 100 that controls the entire MFP 200, an engine 160 that prints an image on a sheet, and a panel device 170 that displays an operation panel and a state that a user inputs.
コントローラ100 は、CPU110、ROM120、RAM130、NVRAM140、ネットワークI/F151、エンジンI/F161、パネルI/F171、及び、HDD180を有する。 The controller 100 has a CPU 110, ROM 120, RAM 130, NVRAM 140, network I / F 151, engine I / F 161, panel I / F 171, and HDD 180.
CPU110は、第1コア111、第2コア112、第3コア113、及び、第4コア114を有するマルチコア型のCPUであり、プログラム181に記述された命令を実行する。プログラム181は、第1コア111、第2コア112、第3コア113、及び、第4コア114のそれぞれ専用に、4つに分かれていてもよいし、1つのプログラムを4つのコアが重複して実行してもよい。CPU110のコア数は2個以上であれば5個以上でもよい。また、マルチコア型でなく、マルチプロセッサ又はマルチCPUと呼ばれる、複数の独立したCPUを搭載してもよい。 The CPU 110 is a multi-core CPU having a first core 111, a second core 112, a third core 113, and a fourth core 114, and executes instructions described in the program 181. The program 181 may be divided into four dedicated to each of the first core 111, the second core 112, the third core 113, and the fourth core 114, and four cores overlap one program. May be executed. The number of cores of the CPU 110 may be 5 or more as long as it is 2 or more. Further, instead of the multi-core type, a plurality of independent CPUs called multi-processors or multi-CPUs may be mounted.
ROM120には、起動用のプログラムや初期設定値などが記憶されている。RAM130は、コントローラ100が作成するページメモリやソフトウエアが動作するために必要なワークメモリとして利用される。NVRAM140は、MFP200に設定された印刷条件などを保存しておく不揮発性メモリである。ネットワークI/F151は、ネットワーク上に接続されたホストPC150とデータを送受信する。エンジンI/F161は印刷指示等を行いエンジン160を制御する。 The ROM 120 stores a startup program, initial setting values, and the like. The RAM 130 is used as a work memory necessary for the operation of the page memory and software created by the controller 100. The NVRAM 140 is a non-volatile memory that stores printing conditions set in the MFP 200. The network I / F 151 transmits / receives data to / from the host PC 150 connected on the network. The engine I / F 161 controls the engine 160 by issuing a print instruction or the like.
エンジン160は、少なくとも画像形成を行うプロッタエンジンを有する。プロッタエンジンは、例えばタンデム型の感光ドラムを有し、ホストPC150から受信したPDLデータをレンダリングして得られた画像データに基づきレーザビームを変調し感光ドラムを走査して潜像を形成する。そして、潜像にトナーを付着して現像した1ページ毎のトナー画像を用紙に熱と圧力で転写する。なお、プロッタエンジンは、インクジェット方式でもよい。また、エンジン160には、スキャナエンジンやFAXエンジンがある。 The engine 160 has at least a plotter engine that performs image formation. The plotter engine has, for example, a tandem type photosensitive drum, modulates a laser beam based on image data obtained by rendering PDL data received from the host PC 150, and scans the photosensitive drum to form a latent image. Then, the toner image for each page developed by attaching the toner to the latent image is transferred to the sheet with heat and pressure. The plotter engine may be an ink jet type. The engine 160 includes a scanner engine and a FAX engine.
パネルI/F171はパネル装置170との入出力を制御する。HDD180はフォントデータやプログラム181を記憶する。 The panel I / F 171 controls input / output with the panel device 170. The HDD 180 stores font data and programs 181.
図4は、コントローラ100の機能を模式的に説明する図の一例である。図4において図3と同一部には同一の符号を付しその説明は省略する。コントローラ100の機能は、CPU110がプログラム181を実行して実現される、プリンタコントロールシステム204とPDL部205に代表される。 FIG. 4 is an example of a diagram for schematically explaining the function of the controller 100. 4, the same parts as those in FIG. 3 are denoted by the same reference numerals, and the description thereof is omitted. The functions of the controller 100 are represented by the printer control system 204 and the PDL unit 205 that are realized by the CPU 110 executing the program 181.
PDL部205は、PDLデータをプリンタコントロールシステム204から受け取り印刷画像を作成する。PDL部205は、PDLデータのフォーマットとしてPostScript PCL、RPCS、PDF、XPS等に対応している。 A PDL unit 205 receives PDL data from the printer control system 204 and creates a print image. The PDL unit 205 corresponds to PostScript PCL, RPCS, PDF, XPS, etc. as the format of PDL data.
プリンタコントロールシステム204は、ネットワークI/F202が受信するPDLデータを印刷するため、PDL部205にレンダリングを要求し、その後、エンジンI/F206に印刷を要求するなど、印刷の手順を制御する。 The printer control system 204 controls the printing procedure, such as requesting rendering to the PDL unit 205 and then requesting printing to the engine I / F 206 in order to print the PDL data received by the network I / F 202.
図5は、PDL部205の機能ブロック図の一例を示す図である。PDL部205は、入力データ受信部11、DL作成部12、最適化情報作成部14、複数の描画処理部16、PDLデータ格納部13、及び、中間データ格納部15、を有する。PDLデータ格納部13や中間データ格納部15はHDD180やRAM130を実体とする。 FIG. 5 is a diagram illustrating an example of a functional block diagram of the PDL unit 205. The PDL unit 205 includes an input data reception unit 11, a DL creation unit 12, an optimization information creation unit 14, a plurality of drawing processing units 16, a PDL data storage unit 13, and an intermediate data storage unit 15. The PDL data storage unit 13 and the intermediate data storage unit 15 have the HDD 180 and the RAM 130 as entities.
入力データ受信部11は、ネットワークI/F151がホストPC150から受信したPDLデータを、PDLデータ格納部13に記憶する。DL作成部12は、PDLデータを構文解析し、PDLデータに含まれるオブジェクト(テキスト、イメージ、ベクターグラフィックス等)を抽出するとともに、これとPDLデータに含まれる描画情報に基づき、ディスプレイリスト(中間データ)を作成する。ディスプレイリストは中間データ格納部15に格納される。 The input data receiving unit 11 stores the PDL data received from the host PC 150 by the network I / F 151 in the PDL data storage unit 13. The DL creation unit 12 parses the PDL data, extracts objects (text, images, vector graphics, etc.) included in the PDL data, and displays a display list (intermediate) based on this and drawing information included in the PDL data. Data). The display list is stored in the intermediate data storage unit 15.
最適化情報作成部14は、PDLデータから描画対象となる各種のオブジェクトの配置情報や種類などの特徴から最適化情報を作成する。この最適化情報も中間データ格納部15に格納される。最適化情報については後述するが、最適化情報はオブジェクト(又はオブジェクトが含まれる描画領域)をレンダリングする描画処理手段16を決定するための情報である。より具体的にはオブジェクトを描画する際の処理負荷を決定するための情報、又は、処理負荷そのものである。 The optimization information creation unit 14 creates optimization information from PDL data based on characteristics such as arrangement information and types of various objects to be drawn. This optimization information is also stored in the intermediate data storage unit 15. Although the optimization information will be described later, the optimization information is information for determining the drawing processing means 16 that renders the object (or the drawing area including the object). More specifically, it is information for determining the processing load for drawing an object, or the processing load itself.
描画処理部16は、中間データ格納部15に保存されているディスプレイリストや最適化情報に基づいて描画を担当する描画領域を決定し、描画領域毎にディスプレイリストに基づき出力イメージデータをレンダリングする。なお、描画領域はページを長手方向に等間隔又は予め定めた間隔で区分したページ上の一範囲をいい、最適化情報作成部14や描画処理部16にとって既知である。 The drawing processing unit 16 determines a drawing area in charge of drawing based on the display list and optimization information stored in the intermediate data storage unit 15, and renders output image data based on the display list for each drawing area. The drawing area is a range on the page obtained by dividing the page in the longitudinal direction at equal intervals or predetermined intervals, and is known to the optimization information creation unit 14 and the drawing processing unit 16.
図示する描画処理部16が3つなのは、CPU110のコア数を考慮したためであり、本実施形態では、4つのコアの1つをDL作成部12に、4つのコアの1つを最適化情報作成部14に、残りを描画処理部16に、それぞれ割り当てる。なお、最適化情報作成部14は描画処理部16としても作動する。このため図では描画処理部16が3つある。 The drawing processing unit 16 shown in the figure is three because the number of cores of the CPU 110 is taken into consideration. In this embodiment, one of the four cores is created in the DL creation unit 12 and one of the four cores is created in the optimized information. The rest is assigned to the unit 14 and the drawing processing unit 16 is assigned to the rest. The optimization information creation unit 14 also operates as the drawing processing unit 16. For this reason, there are three drawing processing units 16 in the figure.
〔PDLデータ等について〕
図6は、PDF(Portable Document Format)ファイルのフォーマット例を示す図である。ここではPDLデータを説明するため、PDFファイルを用いた。
[About PDL data, etc.]
FIG. 6 is a diagram illustrating a format example of a PDF (Portable Document Format) file. Here, a PDF file is used to explain the PDL data.
PDFファイルは、ヘッダ、ボディ、相互参照表、トレーラから構成されている。ヘッダにはファイルのフォーマットがPDFであることを示すために、PDFのバージョン情報を含めた1行が記述される(例えば、「%PDF-1.4」)。
ボディには、テキストやイメージなどのページを構成するデータの本体がオブジェクトとして記述されている。 なお、各オブジェクトには識別番号が付与されており、各オブジェクトは、ボディ内において、表示される文書のページ順とは無関係に任意の順序で記述される。
オブジェクト番号 世代番号(通常はゼロ) obj
<<
/Type/Page
/Parent オブジェクト番号 世代番号 R
/Contents オブジェクト番号n 世代番号 R
>>
endobj
PDFでは文書の全体、ページ、ページ内の図形や文字を全てオブジェクトとして扱うので、全てにオブジェクト番号が割り当てられる。この例では、Parentの行のオブジェクト番号がこのページの親のページのオブジェクト番号を示す。なお、"R"はこのページが参照するという意味の記号である。
The PDF file is composed of a header, a body, a cross reference table, and a trailer. In the header, one line including the version information of the PDF is described to indicate that the file format is PDF (for example, “% PDF-1.4”).
In the body, the body of data constituting a page such as text or image is described as an object. Each object is given an identification number, and each object is described in an arbitrary order in the body regardless of the page order of the displayed document.
Object number Generation number (usually zero) obj
<<
/ Type / Page
/ Parent Object number Generation number R
/ Contents Object number n Generation number R
>>
endobj
Since all the documents, pages, graphics and characters in a page are handled as objects in PDF, object numbers are assigned to all. In this example, the object number in the Parent line indicates the object number of the parent page of this page. “R” is a symbol meaning that this page refers to.
また、Contentsの行のオブジェクト番号nは、このページの中身の(このページに記述される)オブジェクトのオブジェクト番号を示す。 The object number n in the Contents line indicates the object number of the object (described in this page) in the page.
Contentsオブジェクトがオブジェクト番号nを以下のように記述しているとする(説明に用いない記述は省略した)。 Assume that the Contents object describes the object number n as follows (the description not used in the explanation is omitted).
オブジェクト番号n 世代番号 obj
<<
/Length バイト数
>>
stream
……ここに描画命令が入る……
endstream
endobj
Lengthはstream〜endstreamで指定されるオブジェクトのサイズ(バイト数)を表す。例えば、文字の場合の描画命令は「BT〜ET」で囲まれる範囲に「フォント識別情報 フォントサイズ 最初の文字の座標系指定 文字列」などの命令が記述される。
Object number n Generation number obj
<<
/ Length number of bytes
>>
stream
…… The drawing command enters here ……
endstream
endobj
Length represents the size (number of bytes) of the object specified by stream to endstream. For example, in the case of a character, an instruction such as “font identification information, font size, first character coordinate system designation character string” is described in a range surrounded by “BT to ET”.
ベクターグラフィックスの場合「q〜Q」で囲まれる範囲に「座標系の指定 色の指定、座標+移動命令 座標+直線描画命令 座標+曲線描画命令 …」などの命令が記述される。 In the case of vector graphics, a command such as “designation of coordinate system color specification, coordinate + movement command, coordinate + line drawing command, coordinate + curve drawing command,...” Is described in a range surrounded by “q to Q”.
イメージの場合「BI〜EI」で囲まれる範囲に「サイズ、エンコード方法 ID(Image Data)」という形式で記述される。 In the case of an image, it is described in the format surrounded by “BI to EI” in the format of “size, encoding method ID (Image Data)”.
相互参照表には、上記ボディに記述されたオブジェクトのファイル内における位置情報がオフセットとして記述される。すなわち、ファイル先頭から各オブジェクトのデータの先頭までのバイト数が記述される。このように、ボディの記述位置はページ上の位置と何ら関係がない。 In the cross reference table, position information in the file of the object described in the body is described as an offset. That is, the number of bytes from the top of the file to the top of the data of each object is described. Thus, the description position of the body has nothing to do with the position on the page.
トレーラには、/Root属性で文書構造の頂上を示すオブジェクト(カタログオブジェクト)がオブジェクト番号で指定される。以降は、ボディの記述と相互参照表により各オブジェクトの位置が定まる。 In the trailer, an object (catalog object) indicating the top of the document structure is designated by an object number with the / Root attribute. Thereafter, the position of each object is determined by the description of the body and the cross reference table.
上述したように、PDFファイル内には、表示される文書のページ順とは無関係に任意の順序でオブジェクトが配置されているため、コントローラ100は、各オブジェクトへのアクセスの際、トレーラの内容を参照・解析し、その結果に基づいて、相互参照表の内容を参照・解析することによって、はじめて可能になる。 すなわち標準的なPDFファイルにおいては、参照すべきトレーラおよび相互参照表がファイルの末尾、すなわち、ボディ(データ本体)より後ろに記述されているため、DL作成部12や最適化情報作成部14は、PDFファイルの全体が転送されHDD180などの記憶媒体に記憶されてから処理を開始する必要がある。 As described above, since objects are arranged in an arbitrary order in the PDF file regardless of the page order of the displayed document, the controller 100 determines the contents of the trailer when accessing each object. It becomes possible only by referring / analyzing and referring / analyzing the contents of the cross-reference table based on the result. That is, in the standard PDF file, the trailer to be referred to and the cross-reference table are described at the end of the file, that is, after the body (data body), so the DL creation unit 12 and the optimization information creation unit 14 It is necessary to start processing after the entire PDF file is transferred and stored in a storage medium such as the HDD 180.
図7は、ディスプレイリストの一例を示す図である。ディスプレイリストは各描画処理部16が処理可能なデータ形式であり、各種の描画命令や設定情報をリスト化したものである。例えば、「set foreground color(R,G,B)」は前景の色を指示する命令で、「set raster operation(Op Code)」は画像に施す演算を指示する命令で、「draw rectangle(x、y、w、h)」は矩形の描画命令である。 FIG. 7 is a diagram illustrating an example of a display list. The display list is a data format that can be processed by each drawing processing unit 16, and is a list of various drawing commands and setting information. For example, “set foreground color (R, G, B)” is a command for instructing the foreground color, “set raster operation (Op Code)” is a command for instructing an operation to be performed on the image, and “draw rectangle (x, y, w, h) "are rectangular drawing commands.
DL作成部12が作成したディスプレイリストは、中間データ格納部15に格納され、順次、描画処理部16が解釈し、割り当てられた描画領域に描画すべきオブジェクトがあった場合、該描画領域にレンダリングを行う。 The display list created by the DL creation unit 12 is stored in the intermediate data storage unit 15, and is sequentially interpreted by the drawing processing unit 16, and when there is an object to be drawn in the assigned drawing area, rendering is performed in the drawing area. I do.
〔PDL部の処理内容〕
図8は、PDL部205の処理の内部的な手順を模式的に示す図の一例である。
(1)入力データ受信部11は、PDFの入力を受け付ける。
PCLやPSといったPDLデータは先頭から順番に、DL作成部12がデータを読み込み、解析し、描画することが可能である。
(2)これに対し、PDFやXPSといったPDLデータでは解析すべきデータの先頭位置は入力データの後半(相互参照表、トレーラ)に添付されているため、入力データ受信部11はPDLデータ格納部13にPDLデータを一時保存する必要がある。
(3)しかし、PDLデータ格納部13に保存されたPDLデータは、先頭からの順次アクセスや所望の場所のランダムアクセスだけでなく、複数の処理手段からの同時アクセスが可能となる。
[Processing contents of PDL part]
FIG. 8 is an example of a diagram schematically showing an internal procedure of processing of the PDL unit 205.
(1) The input data receiving unit 11 receives an input of PDF.
PDL data such as PCL and PS can be read, analyzed, and rendered by the DL creation unit 12 in order from the top.
(2) On the other hand, in the PDL data such as PDF and XPS, since the head position of the data to be analyzed is attached to the latter half of the input data (cross reference table, trailer), the input data receiving unit 11 is the PDL data storage unit. 13 needs to temporarily store the PDL data.
(3) However, the PDL data stored in the PDL data storage unit 13 can be accessed not only by sequential access from the beginning or random access at a desired location, but also by a plurality of processing means.
そこで、マルチコア環境を利用すれば、第1コア111にDL作成部12を割り当てPDLデータを解析させ、中間データとなるディスプレイリストを作成する一方で、第2コア112に最適化情報作成部14を割り当てPDLデータを解析させ、最適化情報を作成するといった並列処理が可能となる。
(4)同時にディスプレイリスト・最適化情報といった2つの情報を作成すると、PDLデータの解析にかかる処理時間は、ディスプレイリスト・最適化情報のうち処理時間の長い方になる。しかし、最適化情報の作成は、厳密にPDLデータを解析せず、描画オブジェクトの種類から処理の負荷情報や面積を読み出したり、又は、後述するバウンディングボックス(オブジェクトの全体を囲む描画領域)のサイズを算出するだけでよいため、ディスプレイリストを作成するよりも十分軽い処理である。したがって、少なくとも1ページ分のディスプレイリストが作成されるよりも早く、1ページ分の最適化情報が作成される。
(5)描画処理部16に第3コア113、第4コア114を割り当て、2つの描画処理部16が、最適化情報を参照し、描画すべき描画領域(Band)を選択する。
(6)描画処理部16はディスプレイリストを参照・解析しレンダリングを実施する。
Therefore, if a multi-core environment is used, the DL creation unit 12 is assigned to the first core 111 and PDL data is analyzed to create a display list serving as intermediate data, while the optimization information creation unit 14 is provided to the second core 112. Parallel processing such as analyzing allocation PDL data and creating optimization information becomes possible.
(4) If two pieces of information such as display list / optimization information are created at the same time, the processing time required for analyzing the PDL data is the longer one of the display list / optimization information. However, the creation of optimization information does not strictly analyze the PDL data, but reads processing load information and area from the type of drawing object, or the size of a bounding box (drawing area surrounding the entire object) described later. This is a process that is sufficiently lighter than creating a display list. Therefore, the optimization information for one page is created earlier than the display list for at least one page is created.
(5) The third core 113 and the fourth core 114 are assigned to the drawing processing unit 16, and the two drawing processing units 16 select the drawing area (Band) to be drawn with reference to the optimization information.
(6) The rendering processing unit 16 performs rendering by referring to and analyzing the display list.
なお、本来、描画処理部16はディスプレイリストの一部が作成されれば、1ページ分のディスプレイリストが作成されなくても、描画処理を開始することができる。この場合、描画処理部16が最適化情報の作成まで待機すると却って処理速度が低下するおそれもある。 Originally, if a part of the display list is created, the drawing processing unit 16 can start the drawing process without creating a display list for one page. In this case, when the drawing processing unit 16 waits until the creation of the optimization information, the processing speed may decrease.
図9(a)は、1ページ目のディスプレイリストの作成、最適化情報の作成、及び、描画処理のタイミングチャート図の一例を示す図である。ディスプレイリスト(Parsar1)の作成が完了する前に、描画処理部(レンダラ1−1、レンダラ1−2)が描画処理を開始している。しかし、最適化情報作成部14(最適化Md)が最適化情報(OP1)の作成を完了させるのは、描画処理部14が描画処理を開始するよりも後である。したがって、1ページ目は最適化情報による描画領域の割り当てが間に合わない。 FIG. 9A is a diagram illustrating an example of a timing chart of creation of a display list for the first page, creation of optimization information, and drawing processing. Before the creation of the display list (Parsar1) is completed, the drawing processing units (renderer 1-1, renderer 1-2) have started drawing processing. However, the optimization information creation unit 14 (optimization Md) completes the creation of the optimization information (OP1) after the drawing processing unit 14 starts the drawing process. Therefore, the allocation of the drawing area by the optimization information is not in time for the first page.
このため、本実施形態では、最適化情報作成部14は1ページ目の最適化情報を作成せず、描画処理部16が上方向から描画領域を順番に受け持ち、次ページ目以降において最適化情報を用いて描画領域を割り当てることが好ましい場合がある。よって、この場合、文書が1ページしかないのであれば、最適化情報作成部14は最適化情報を作成しない。 For this reason, in the present embodiment, the optimization information creation unit 14 does not create optimization information for the first page, the drawing processing unit 16 takes charge of the drawing areas in order from the top, and the optimization information for the next and subsequent pages. It may be preferable to assign a drawing area using. Therefore, in this case, if the document has only one page, the optimization information creation unit 14 does not create optimization information.
なお、描画処理部16がディスプレイリストの作成が完了する前に描画処理を開始しても、最適化情報の作成が完了しだい、描画処理部16が各描画領域を再度、割り当てすることもできる。したがって、1ページ目の最適化情報を常に作成しないことが最も好ましいと言うことはできず、描画処理部の機能などによって最適な処理手順を採用すればよい。 Even if the drawing processing unit 16 starts drawing processing before the creation of the display list is completed, the drawing processing unit 16 can reassign each drawing region as soon as the creation of the optimization information is completed. Therefore, it cannot be said that it is most preferable not to always create the optimization information for the first page, and an optimal processing procedure may be adopted depending on the function of the drawing processing unit.
次に、バウンディングボックスについて説明する。
図9(b)は、ベクターグラフィックにおけるバウンディングボックスの一例を説明する図の一例である。ここではベクターグラフィックとして3次のベジェ曲線を例にして説明する。P0、P3はベジェ曲線の端点、P1、P2は方向点である。P1とP0を結ぶ線がP0を通るベクターグラフィックの接線となり、P2とP3を結ぶ線がP3を通るベクターグラフィックの接線となる。P0〜P3の曲線は、4つの点P0〜P3の座標とベジェ曲線の公式により定まる。
Next, the bounding box will be described.
FIG. 9B is an example of a diagram for explaining an example of a bounding box in vector graphics. Here, a cubic Bezier curve will be described as an example of vector graphics. P0 and P3 are end points of the Bezier curve, and P1 and P2 are direction points. A line connecting P1 and P0 becomes a vector graphic tangent passing through P0, and a line connecting P2 and P3 becomes a vector graphic tangent passing through P3. The curves P0 to P3 are determined by the coordinates of the four points P0 to P3 and the Bezier curve formula.
したがって、曲線はすぐに求められても面積を算出することは負荷が大きい。そこで、オブジェクトが文字や複雑な形状のベクターグラフィックの場合、描画処理部16は正確に描画面積を求めず、始点・終点および制御点を全て含む外接矩形をベクターグラフィックボックスとして、このサイズを、描画面積の代用にすることで、計算量を大幅に削減することができる。 Therefore, even if the curve is obtained immediately, calculating the area is heavy. Therefore, when the object is a vector graphic of a character or a complicated shape, the drawing processing unit 16 does not accurately calculate the drawing area, and draws this size using a circumscribed rectangle including all start points, end points, and control points as a vector graphic box. Substituting an area can greatly reduce the amount of calculation.
〔最適化情報〕
図10(a)は最適化情報と最適化情報から算出される負荷値の一例を示す図である。最適化情報には、例えば、オブジェクトの種類と描画面積、又は、これらから算出したオブジェクトを描画する際の負荷値が含まれる(両方を含んでいてもよい)。
[Optimization information]
FIG. 10A is a diagram illustrating an example of optimization information and a load value calculated from the optimization information. The optimization information includes, for example, the object type and drawing area, or a load value for drawing the object calculated from these (may include both).
ディスプレイリストには種々のオブジェクト(テキスト、イメージ、ベクターグラフィックス)の描画命令がリストアップされているが、描画処理部16が処理する内容はオブジェクトの種類によって大きく異なる。 The display list lists drawing commands for various objects (text, images, vector graphics), but the contents processed by the drawing processing unit 16 vary greatly depending on the type of object.
本実施形態では、オブジェクトの種類によって異なる処理のうち、負荷の大小が重要であるので、最適化情報としては、各描画オブジェクトのレンダリングに必要な計算コストが挙げられる。 In the present embodiment, among the processes that differ depending on the type of object, the magnitude of the load is important. Therefore, the optimization information includes a calculation cost necessary for rendering each drawing object.
最適化情報作成部14は、描画オブジェクトの種類として、上記に挙げた種類(テキスト、イメージ、ベクターグラフィックス)だけでなく、RGBカラーイメージ、モノクロイメージといった描画処理の負荷が大きく異なるものを別々に扱う。 The optimization information creation unit 14 not only provides the types of drawing objects (text, image, vector graphics), but also those that have greatly different drawing processing loads such as RGB color images and monochrome images. deal with.
また、描画面積は、例えばイメージ、又は、矩形や円形といったベクターグラフィックであれば容易に算出可能だが、ベジエ曲線などのベクターグラフィックは、制御点の集合から面積を算出するには負荷がかかるため(ベクターデータからラスターデータへの変換(スキャンライン変換)が必要であり、処理コストがかかってしまう)、正確な描画面積ではなく、バウンディングボックスのサイズを描画面積の代わりに採用する。 In addition, the drawing area can be easily calculated if it is an image or a vector graphic such as a rectangle or a circle, but a vector graphic such as a Bezier curve requires a load to calculate the area from a set of control points ( Conversion from vector data to raster data (scanline conversion) is required, which increases processing costs.) Instead of an accurate drawing area, the size of the bounding box is used instead of the drawing area.
図11は、最適化情報作成部14が最適化情報から負荷値を算出する手順を示すフローチャート図の一例である。最適化情報作成部14でなく描画処理部16が算出してもよい。 FIG. 11 is an example of a flowchart illustrating a procedure for the optimization information creation unit 14 to calculate a load value from the optimization information. The drawing processing unit 16 may calculate instead of the optimization information creating unit 14.
最適化情報作成部14は、図10(b)に示す負荷指数を用いて、各描画領域の負荷値を算出する。負荷指数とは、描画処理部16がオブジェクトを処理する際の能力値による重みであり、オブジェクトの種類毎に負荷が大きいほど大きな値が定められている。例えば、グラフィックは「1」、文字は「0.5」である。負荷指数とオブジェクトの関係は、最適化情報作成部14がコードの一部などに記述することで記憶している。 The optimization information creation unit 14 calculates the load value of each drawing area using the load index shown in FIG. The load index is a weight based on an ability value when the drawing processing unit 16 processes an object, and a larger value is determined as the load increases for each type of object. For example, the graphic is “1” and the character is “0.5”. The relationship between the load index and the object is stored by the optimization information creating unit 14 describing it in a part of the code.
最適化情報作成部14は、まず、ある描画領域のオブジェクトの種類を判定する(S110)。オブジェクトの種類はディスプレイリストから明らかである。 The optimization information creation unit 14 first determines the type of object in a certain drawing area (S110). The type of object is clear from the display list.
最適化情報作成部14はそのオブジェクトの負荷指数を読み出す(S120)。 The optimization information creation unit 14 reads the load index of the object (S120).
次に、最適化情報作成部14は、オブジェクトがスキャンラインへの変換が必要なベクターグラフィックか否かを判定する(S130)。スキャンラインへの変換が必要なベクターグラフィックか否かは、例えば曲線部を含むか否かにより判定する。 Next, the optimization information creation unit 14 determines whether or not the object is a vector graphic that needs to be converted to a scan line (S130). Whether or not the vector graphic needs to be converted into a scan line is determined based on, for example, whether or not it includes a curved portion.
スキャンラインへの変換が必要なベクターグラフィックの場合、最適化情報作成部14はバウンディングボックスのサイズを算出する(S140)。 In the case of a vector graphic that needs to be converted to a scan line, the optimization information creation unit 14 calculates the size of the bounding box (S140).
スキャンラインへの変換が必要でないベクターグラフィックの場合、最適化情報作成部14はオブジェクトの描画面積を算出する(S150)。 In the case of a vector graphic that does not require conversion to a scan line, the optimization information creating unit 14 calculates the drawing area of the object (S150).
そして、最適化情報作成部14は、描画面積又はバウンディングボックスサイズと負荷指数からオブジェクトの負荷値を算出する(S160)。
負荷値の算出例について次述する。
Then, the optimization information creating unit 14 calculates the load value of the object from the drawing area or bounding box size and the load index (S160).
An example of calculating the load value will be described below.
<描画領域1(band1)>
図10を例に負荷値の算出例を説明する。
グラフィック1は円形のベクターグラフィック、グラフィック2は矩形のベクターグラフィック、グラフィック3は四角形(ひし形)のベクターグラフィックである。
グラフィック1:描画面積100、 負荷指数:1
グラフィック2:描画面積120、 負荷指数:1
グラフィック3:描画面積150、 負荷指数:1
グラフィック1の負荷値:100
グラフィック2の負荷値:120
グラフィック3の負荷値:150
<描画領域2(band2)>
文字はスキャンラインへの変換が必要なベクターグラフィックである。
文字1:バウンディングボックスサイズ100、 負荷指数:0.5
文字2:バウンディングボックスサイズ130、 負荷指数:0.5
文字3:バウンディングボックスサイズ80、 負荷指数:0.5
文字1の負荷値:50
文字2の負荷値:65
文字3の負荷値:40
<描画領域4(band4)>
イメージ1はRGBフルカラーにイメージデータである。
イメージ1:描画面積500、 負荷指数:3
イメージ1の負荷値:1500
描画処理部16は、各描画領域毎に、オブジェクトの負荷値を合計して描画領域の負荷値とする。そして、負荷値が大きい描画領域から順に描画処理部16はレンダリングの処理対象とする。負荷値の大きい描画領域から先にレンダリング処理が開始されれば、1ページの処理に必要な最大時間を抑制できる可能性が高くなる。
<Drawing area 1 (band1)>
An example of calculating the load value will be described with reference to FIG.
Graphic 1 is a circular vector graphic, graphic 2 is a rectangular vector graphic, and graphic 3 is a square (diamond) vector graphic.
Graphic 1: Drawing area 100, Load index: 1
Graphic 2: Drawing area 120, Load index: 1
Graphic 3: Drawing area 150, Load index: 1
Load value of graphic 1: 100
Load value of graphic 2: 120
Load value of graphic 3: 150
<Drawing area 2 (band2)>
Characters are vector graphics that need to be converted to scanlines.
Character 1: Bounding box size 100, Load index: 0.5
Character 2: Bounding box size 130, Load index: 0.5
Character 3: Bounding box size 80, Load index: 0.5
Load value of character 1: 50
Load value of character 2: 65
Load value of character 3: 40
<Drawing area 4 (band4)>
Image 1 is image data in RGB full color.
Image 1: Drawing area 500, Load index: 3
Load value of image 1: 1500
The drawing processing unit 16 adds the load values of the objects for each drawing area to obtain the load value of the drawing area. Then, the drawing processing unit 16 sets rendering processing targets in order from the drawing region having the largest load value. If the rendering process is started first from a drawing area with a large load value, there is a high possibility that the maximum time required for processing one page can be suppressed.
後述する図14の手順(描画領域の割り当て処理)において、描画処理部16は未処理描画領域のうち、最も、負荷値の大きな描画領域を担当する描画領域に決定する。これを各描画処理部16が繰り返すので、1ページの全体的な処理時間を短縮できる。 In the procedure of FIG. 14 (drawing area allocation process) to be described later, the drawing processing unit 16 determines the drawing area having the largest load value from among the unprocessed drawing areas. Since each drawing processing unit 16 repeats this, the overall processing time of one page can be shortened.
〔動作手順〕
図12は、最適化情報の作成手順を示すフローチャート図の一例である。
[Operation procedure]
FIG. 12 is an example of a flowchart showing a procedure for creating optimization information.
最適化情報作成部14はPDLデータ格納部13に格納されたPDFを読み込む(S210)。
最適化情報作成部14はPDLデータに複数ページが含まれているか否かを判定する(S
220)。
The optimization information creation unit 14 reads the PDF stored in the PDL data storage unit 13 (S210).
The optimization information creation unit 14 determines whether or not a plurality of pages are included in the PDL data (S
220).
複数ページが含まれていない場合(S220のNo)、1ページだけになるが最適化情報による描画領域の割り当てが間に合わないので、最適化情報を作成することなく図10の処理は終了する。 When a plurality of pages are not included (No in S220), only one page is obtained, but since the allocation of the drawing area by the optimization information is not in time, the processing in FIG. 10 ends without creating the optimization information.
複数ページが含まれている場合(S220のYes)、最適化情報作成部14は、図11の手順に基づき2ページ目以降の最適化情報を作成する(S230)。すなわち、描画領域毎に、各描画オブジェクトの種類を特定し、描画面積を算出し、さらに負荷値を算出する。 When multiple pages are included (Yes in S220), the optimization information creation unit 14 creates optimization information for the second and subsequent pages based on the procedure of FIG. 11 (S230). That is, the type of each drawing object is specified for each drawing area, the drawing area is calculated, and the load value is further calculated.
図13は、ディスプレイリストの作成手順を示すフローチャート図の一例である。 FIG. 13 is an example of a flowchart showing a display list creation procedure.
DL作成部12はPDLデータ格納部13に格納されたPDFを読み込む(S310)。
DL作成部12は、PDFの相互参照表とトレーラに基づき、ボディ部のオブジェクトを解析しディスプレイリストを作成する(S320)。
The DL creation unit 12 reads the PDF stored in the PDL data storage unit 13 (S310).
The DL creation unit 12 analyzes the body part object based on the PDF cross-reference table and the trailer, and creates a display list (S320).
DL作成部12はPDFの終端までディスプレイリストを作成したか否かを判定し(S330)、終端まで到達すると処理を終了する。 The DL creation unit 12 determines whether or not the display list has been created up to the end of the PDF (S330).
図14は、レンダリングの手順を示すフローチャート図の一例である。
描画処理部16は、1ページを複数の描画領域に分けてレンダリングするが、複数の描画処理部16が1ページを効率的にレンダリングするので、1つの描画領域毎にどの描画処理部16がレンダリングするかを決定する。
FIG. 14 is an example of a flowchart illustrating a rendering procedure.
The drawing processing unit 16 divides and renders one page into a plurality of drawing areas. Since the plurality of drawing processing units 16 efficiently render one page, which drawing processing unit 16 renders for each drawing area. Decide what to do.
まず、描画処理部16は、ページ毎に、未描画領域があるか否かを判定する(S410)。未描画領域がない場合(S410のNo)、そのページの処理は終了する。 First, the drawing processing unit 16 determines whether or not there is an undrawn area for each page (S410). If there is no undrawn area (No in S410), the processing for the page ends.
未描画領域がある場合(S410のYes)、描画処理部16はそのページの最適化情報があるか否かを判定する(S420)。すなわち、未描画領域が1つしかなければ、その1つの描画領域を自分に割り当てればよいが、複数ある場合に、どの描画領域のレンダリングを担当するか最適化情報により判断する必要がある。 If there is an undrawn area (Yes in S410), the drawing processing unit 16 determines whether there is optimization information for the page (S420). That is, if there is only one undrawn area, it is sufficient to assign that one drawing area to itself, but if there are a plurality of undrawn areas, it is necessary to determine which drawing area is responsible for rendering based on optimization information.
よって、最適化情報が生成されている場合(S420のYes)、描画処理部16は最適化情報を参照して、担当する描画領域を自分に割り当てる(S430)。例えば、最も負荷値の高い描画領域を処理対象とする。 Therefore, when the optimization information is generated (Yes in S420), the drawing processing unit 16 refers to the optimization information and assigns the drawing area in charge to itself (S430). For example, the drawing area with the highest load value is set as the processing target.
最適化情報が生成されていない場合(S420のNo)、描画処理部16は描画領域の決まった場所から順番に、担当する描画領域を自分に割り当てる(S440)。例えば、ページ上段、ページ中央付近などから、予め決められた優先順位で割り当てる。 If the optimization information has not been generated (No in S420), the drawing processing unit 16 assigns the drawing area in charge to itself in order from the determined location of the drawing area (S440). For example, allocation is performed in a predetermined priority order from the top of the page, near the center of the page, or the like.
描画領域を割り当てると、描画処理部16はその描画領域のディスプレイリストを参照し、レンダリングを行う(S450)。 When the drawing area is allocated, the drawing processing unit 16 performs rendering by referring to the display list of the drawing area (S450).
〔具体例〕
図15は、負荷値の算出の別の一例を示す図である。図15では、オブジェクトが描画領域を跨いでいるが基本的な考え方は同じである。描画領域を跨ぐオブジェクトは、描画処理部16が描画領域と描画領域の境界で分割する。
〔Concrete example〕
FIG. 15 is a diagram illustrating another example of load value calculation. In FIG. 15, the object straddles the drawing area, but the basic idea is the same. An object straddling the drawing area is divided by the drawing processing unit 16 at the boundary between the drawing area and the drawing area.
グラフィック4は円形のベクターグラフィックであるが、境界で分割された上側をグラフィック4U、下側をグラフィック4Dとする。円形のグラフィックを直線で分割した場合の面積は、例えば、直線と円周との最短距離の関数として予めテーブルなどで保持しておく。こうすることで処理負荷を抑制できる。 The graphic 4 is a circular vector graphic. The upper side divided by the boundary is a graphic 4U, and the lower side is a graphic 4D. The area when a circular graphic is divided by a straight line is previously held in a table or the like as a function of the shortest distance between the straight line and the circumference, for example. By doing so, the processing load can be suppressed.
また、イメージ2はRGBフルカラーのイメージデータであるが、境界で分割された上側をイメージ2U、下側をイメージ2Dとする。矩形の描画領域を直線で分割した場合の面積は、イメージの高さに対する上辺から境界までの比により求められる。 The image 2 is RGB full-color image data, and the upper side divided by the boundary is an image 2U and the lower side is an image 2D. The area when the rectangular drawing area is divided by a straight line is obtained by the ratio from the upper side to the boundary with respect to the height of the image.
また、文字4〜6は、描画面積の代わりにバウンディングボックスのサイズが求められる。文字4の境界で分割された上側を文字4U、下側を4D、文字5の境界で分割された上側を文字5U、下側を5D、文字6の境界で分割された上側を文字6U、下側を6D、とする。 For the characters 4 to 6, the size of the bounding box is required instead of the drawing area. The upper side divided at the boundary of the character 4 is the character 4U, the lower side is 4D, the upper side divided at the boundary of the character 5 is the character 5U, the lower side is 5D, the upper side divided at the boundary of the character 6 is the character 6U, the lower side Let the side be 6D.
バウンディングボックスは矩形なので、バウンディングボックスのサイズを直線で分割した場合の面積は、バウンディングボックスの高さに対する上辺から境界までの比により求められる。 Since the bounding box is rectangular, the area when the size of the bounding box is divided by a straight line is obtained by the ratio from the upper side to the boundary with respect to the height of the bounding box.
<描画領域1(band1)>
グラフィック4U:描画面積50、 負荷指数:1
負荷値:50
<描画領域2(band2)>
グラフィック4D:描画面積70、 負荷指数:1
イメージ2U:描画面積120、負荷指数:3
負荷値:70×1+120×3=430
<描画領域3(band3)>
イメージ2D:描画面積120、負荷指数:1
文字4U:バウンディングボックスサイズ70、 負荷指数:0.5
文字5U:バウンディングボックスサイズ91、 負荷指数:0.5
文字6U:バウンディングボックスサイズ56、 負荷指数:0.5
負荷値:120×1+70×0.5+91×0.5+56×0.5=229
<描画領域4(band4)>
文字4D:バウンディングボックスサイズ30、 負荷指数:0.5
文字5D:バウンディングボックスサイズ39、 負荷指数:0.5
文字6D:バウンディングボックスサイズ24、 負荷指数:0.5
負荷値 :30×0.5+39×0.5+24×0.5=46.5
負荷値の大きい順に、描画処理部16は、Band2->Band3->Band1->Band4の順に描画を担当する。
<Drawing area 1 (band1)>
Graphic 4U: drawing area 50, load index: 1
Load value: 50
<Drawing area 2 (band2)>
Graphic 4D: drawing area 70, load index: 1
Image 2U: drawing area 120, load index: 3
Load value: 70 × 1 + 120 × 3 = 430
<Drawing area 3 (band 3)>
Image 2D: drawing area 120, load index: 1
Character 4U: Bounding box size 70, Load index: 0.5
Character 5U: Bounding box size 91, Load index: 0.5
Character 6U: Bounding box size 56, Load index: 0.5
Load value: 120 × 1 + 70 × 0.5 + 91 × 0.5 + 56 × 0.5 = 229
<Drawing area 4 (band4)>
Character 4D: Bounding box size 30, Load index: 0.5
Character 5D: Bounding box size 39, Load index: 0.5
Character 6D: Bounding box size 24, Load index: 0.5
Load value: 30 × 0.5 + 39 × 0.5 + 24 × 0.5 = 46.5
The drawing processing unit 16 is responsible for drawing in the order of Band2->Band3->Band1-> Band4 in descending order of load value.
〔タイミングチャート図(効果)〕
図16は、タイミングチャート図の一例を示す。比較のため、図16(a)は従来の構成のタイミングチャート図を、図16(b)は本実施形態の構成のタイミングチャート図を、それぞれ示す。
[Timing chart (effect)]
FIG. 16 shows an example of a timing chart. For comparison, FIG. 16A shows a timing chart of the conventional configuration, and FIG. 16B shows a timing chart of the configuration of the present embodiment.
従来の構成では、第1コア111をインタプリタ(PDL解析部)に、第2コア112〜第4コア114をレンダラ(描画処理部16)に、割り当てるのが一般的である。このため、第1コア111は、Parser(ディスプレイリストの生成)、Op(負荷情報の作成)を受け持っている。 In the conventional configuration, the first core 111 is generally assigned to an interpreter (PDL analysis unit), and the second core 112 to the fourth core 114 are assigned to a renderer (drawing processing unit 16). For this reason, the first core 111 is responsible for Parser (display list generation) and Op (load information generation).
第1コア111が1ページ目のディスプレイリスト作成時に、負荷情報の蓄積も行っている。このため、第2〜第4コアのレンダラは、第1コア111が各ページのディスプレイリストと負荷情報を作成するまで待つ必要があった。図示するように、第1コア111が1ページ目のディスプレイリストと負荷情報の作成時、第2〜第4コアは待機しており、第1コア111が2ページ目のディスプレイリストと負荷情報の作成時、第2〜第4コアは1ページ目のレンダリングを描画領域毎に処理している。また、第2〜第4コアが3ページ目のレンダリングを描画領域毎に処理するには、第1コア111が3ページ目のディスプレイリストと負荷情報を作成した後でなければならない。 When the first core 111 creates a display list for the first page, load information is also accumulated. For this reason, the renderers of the second to fourth cores have to wait until the first core 111 creates the display list and load information for each page. As shown in the figure, when the first core 111 creates the display list and load information for the first page, the second to fourth cores are waiting, and the first core 111 stores the display list and load information for the second page. At the time of creation, the second to fourth cores process the rendering of the first page for each drawing area. Further, in order for the second to fourth cores to render the third page for each drawing area, the first core 111 must create the display list and load information for the third page.
これに対し本実施形態のPDL部205は、第1コア111がインタプリタ(PDL解析)のみを、第2コア112が最適化情報の作成のみを受け持つ。最適化情報の作成自体は、比較的、短時間で終了する。このため、第1コア111が1ページ分のディスプレイリストを作成する間に、最適化情報の作成はかなりの部分が進行する。 On the other hand, in the PDL unit 205 of the present embodiment, the first core 111 is responsible only for interpreter (PDL analysis), and the second core 112 is responsible only for creating optimization information. The creation of the optimization information itself is completed in a relatively short time. For this reason, while the first core 111 creates a display list for one page, the creation of optimization information proceeds considerably.
また、第1コア111はPDL解析しか行わないので、最適化情報を作成しない分だけ各ページの処理時間を短縮できる。 Further, since the first core 111 only performs PDL analysis, the processing time of each page can be shortened by the amount that the optimization information is not created.
したがって、第3コア113、第4コア114は、従来よりも早期に、レンダリングを開始できる。また、第2コア112も、最適化情報の作成は比較的短い時間で終了するので、第2コア112が最適化情報を作成することになっても、最適化情報を早期に作成し、レンダリングを受け持つことができる。以上から、第2〜第4コアの待機時間が短い分、前ページの処理時間を短縮できることが分かる。 Therefore, the third core 113 and the fourth core 114 can start rendering earlier than before. In addition, since the creation of the optimization information for the second core 112 is completed in a relatively short time, even if the second core 112 is to create the optimization information, the optimization information is created early and rendered. Can take charge. From the above, it can be seen that the processing time of the previous page can be shortened by the short standby time of the second to fourth cores.
なお、図16(b)では、1ページ目の最適化情報が作成されている。例えば、1ページ分のディスプレイリストが作成されるまで描画処理部14が描画処理を行わないような場合、図示するように1ページ目の最適化情報を作成することで、1ページ目の最適化情報を作成しない場合より最適化情報を利用できるだけ印刷処理の時間を短縮できる。 In FIG. 16B, optimization information for the first page is created. For example, when the drawing processing unit 14 does not perform drawing processing until a display list for one page is created, optimization information for the first page is created by creating optimization information for the first page as shown in the figure. The print processing time can be shortened as much as the optimization information can be used rather than the case where the information is not created.
1ページ分のディスプレイリストが作成されるよりも先に描画処理部14が描画処理を開始する場合、最適化情報作成部14は1ページ目の最適化情報を作成しない。このため、第2コアは1ページ目の最適化情報(Op2)の作成から始め、第3,第4コアは1ページ目のディスプレイリストの作成の途中から描画処理を開始する。したがって、1ページ目の最適化情報を作成する場合よりも、印刷処理の時間を短縮できる。 When the drawing processing unit 14 starts the drawing process before the display list for one page is created, the optimization information creating unit 14 does not create the optimization information for the first page. For this reason, the second core starts with the creation of optimization information (Op2) for the first page, and the third and fourth cores start drawing processing in the middle of the creation of the display list for the first page. Therefore, it is possible to shorten the print processing time as compared with the case of creating optimization information for the first page.
図17は、本実施形態のタイミングチャート図の別の一例を示す。第2コア112が実行する最適化情報の作成は比較的短時間に終了するので、ページ数が多い場合に不都合が生じるおそれがある。 FIG. 17 shows another example of a timing chart of this embodiment. Since the creation of the optimization information executed by the second core 112 is completed in a relatively short time, there is a possibility that inconvenience may occur when the number of pages is large.
すなわち、最適化情報作成部14が作成した最適化情報は中間データ格納部15に格納されるが、ページ数が多いと、ディスプレイリストの作成やレンダリングと比較して、最適化情報だけが作成されてしまい、中間データ格納部15を消費してしまう。 That is, the optimization information created by the optimization information creation unit 14 is stored in the intermediate data storage unit 15. However, if the number of pages is large, only optimization information is created compared to creation and rendering of a display list. As a result, the intermediate data storage unit 15 is consumed.
レンダリングされた描画領域の最適化情報は不要になり削除されるが、ページ数が多い場合、先に最適化情報が多々作成されてしまい、多くのメモリを消費してしまう。 The optimization information of the rendered drawing area becomes unnecessary and is deleted. However, when the number of pages is large, a lot of optimization information is created first, and a lot of memory is consumed.
そこで、印刷対象のPDLデータのページ数が閾値以上の場合、第2コア112は、ある特定のページ数の最適化情報を作成したのち、描画処理を担当する。 Therefore, when the number of pages of PDL data to be printed is equal to or greater than the threshold, the second core 112 takes charge of drawing processing after creating optimization information for a specific number of pages.
図17では、第2コア112は、5ページ分の最適化情報Op1〜5を作成した後、レンダリングを開始している。こうすることで、PDLデータのページ数が多い場合に、最適化情報がメモリを消費してしまうことを防止できる。 In FIG. 17, the second core 112 has started rendering after creating optimization information Op1 to Op5 for five pages. By doing so, it is possible to prevent the optimization information from consuming the memory when the number of pages of PDL data is large.
また、第2コア112は、作成済みの最適化情報の数又はページ数が所定値(例えば、2)以下になったら、再度、特定のページ数の最適化情報の作成を開始する。こうすれば、中間データ格納部15の容量を消費しすぎることなく、第2コア112は優先的に最適化情報を作成し、レンダリングも行うことができる。 In addition, when the number of created optimization information or the number of pages is equal to or less than a predetermined value (for example, 2), the second core 112 starts creating optimization information for a specific number of pages again. In this way, the second core 112 can preferentially create optimization information and perform rendering without consuming too much capacity of the intermediate data storage unit 15.
〔変形例〕
描画処理部16が描画領域を選択する基準を負荷値の高い順としたが、描画処理部16によって同じ処理の処理時間が異なる場合がある。すなわち、例えば、第3コア113はカラーのレンダリングが速いが文字のレンダリングが遅く、第4コア114はその逆の特性を有するような場合である。
[Modification]
Although the drawing processing unit 16 selects the drawing region in the order of increasing load value, the drawing processing unit 16 may have different processing times for the same processing. That is, for example, the third core 113 has a fast color rendering but a slow character rendering, and the fourth core 114 has the opposite characteristics.
この場合、第3コア113がカラーのイメージがある描画領域をレンダリングし、第4コア114が文字の多い描画領域をレンダリングすることが、全体的な処理時間の短縮につながる。 In this case, rendering the drawing area with the color image by the third core 113 and rendering the drawing area with many characters by the fourth core 114 leads to a reduction in the overall processing time.
図18は、描画領域毎のオブジェクトが偏ったページの一例を示す。描画領域1には、カラーのイメージデータが含まれるが、描画領域2〜4は全て文字である。このようなページでは、描画領域1をカラーのレンダリングに好適な命令セットを持つコアが実行することが好ましい。よって、第3コア113が優先的に描画領域1をレンダリングすることで、描画領域1の処理時間を短縮できる。 FIG. 18 shows an example of a page in which objects for each drawing area are biased. The drawing area 1 includes color image data, but the drawing areas 2 to 4 are all characters. In such a page, the drawing area 1 is preferably executed by a core having an instruction set suitable for color rendering. Therefore, the rendering time of the drawing area 1 can be shortened by the third core 113 preferentially rendering the drawing area 1.
また、一方、あるコアが特定のオブジェクトのレンダリングが不可能な場合は、そのコアにはそのコアがレンダリングできるオブジェクトが含まれる描画領域を処理させることで、コアが何もしないで遊んでしまうことを防止できる。よって、コアとコアが得意な処理に応じて、コアが実行する処理を割り当てることが好ましい。 On the other hand, if a certain core is unable to render a specific object, the core can play without doing anything by letting the core process the drawing area that contains the object that the core can render. Can be prevented. Therefore, it is preferable to assign a process to be executed by the core according to a process that the core is good at.
図19は、各コアがレンダリングを実行する描画領域を決定する手順を示すフローチャート図の一例である。また、図20は、各コアにとって得意なレンダリング及び不可能なレンダリングが登録されたテーブルの一例である。このようなテーブルは、PDL部205に予め登録されている。 FIG. 19 is an example of a flowchart illustrating a procedure for determining a drawing area in which each core executes rendering. FIG. 20 is an example of a table in which renderings that are good and impossible for each core are registered. Such a table is registered in the PDL unit 205 in advance.
図19においてステップS420までの処理は図14と同様である。
未描画領域があり(S410のYes)、かつ、最適化情報がある場合(S420のYes)、描画処理部16は、最適化情報のある描画領域のうち、図20のテーブルに登録された処理できないオブジェクトが存在する描画領域があるか否かを判定する(S421)。
In FIG. 19, the processing up to step S420 is the same as that in FIG.
When there is an undrawn area (Yes in S410) and there is optimization information (Yes in S420), the drawing processing unit 16 performs processing registered in the table of FIG. 20 among the drawing areas with optimization information. It is determined whether there is a drawing area in which an object that cannot be processed exists (S421).
処理できないオブジェクトのある描画領域が存在する場合、その描画領域をレンダリングの対象から除外し残りの描画領域を処理対象の候補にする(S422)。 If there is a drawing area with an object that cannot be processed, the drawing area is excluded from rendering targets, and the remaining drawing areas are made candidates for processing (S422).
次に、描画処理部16は、未描画領域に他のコアが処理できないオブジェクトが存在する描画領域があるか否かを図20のテーブルを参照して判定する(S423)。 Next, the drawing processing unit 16 determines whether there is a drawing area in which an object that cannot be processed by another core exists in the undrawn area with reference to the table of FIG. 20 (S423).
未描画領域に他のコアが処理できないオブジェクトが存在する描画領域がある場合(S423のYes)、その描画領域を残すと待ちが発生するおそれがあるので、その描画領域を処理対象の候補にする(S424)。 If there is a drawing area in which an object that cannot be processed by another core exists in the undrawn area (Yes in S423), there is a possibility that waiting may occur if the drawing area is left, so that the drawing area is set as a candidate for processing. (S424).
次に、描画処理部16は、候補の中に自コアが処理の得意なオブジェクトのある描画領域があるか否かを図20のテーブルを参照して判定する(S425)。これにより、描画処理部16は、レンダリングが速く終了するオブジェクトを特定することができる(S426)。例えば、カラーのイメージのレンダリング処理が速い描画処理部16は、優先的にそのオブジェクトが含まれる描画領域をレンダリング対象にでき、文字のレンダリング処理が速い描画処理部16は、優先的にそのオブジェクトが含まれる描画領域をレンダリング対象にできる。 Next, the drawing processing unit 16 determines whether there is a drawing area with an object that the core is good at processing among the candidates with reference to the table of FIG. 20 (S425). Thereby, the drawing processing unit 16 can identify an object whose rendering ends quickly (S426). For example, the rendering processing unit 16 that has a fast color image rendering process can preferentially target a rendering area that includes the object, and the rendering processing unit 16 that has a fast character rendering process can preferentially have that object. The included drawing area can be rendered.
処理の得意なオブジェクトが含まれた描画領域がない場合(S425のNo)、描画処理部16は、最適化情報を参照して負荷値の大きい描画領域から順に処理対象として受け持つ(S427)。以降の処理は図14と同様である。 When there is no drawing area including an object that is good at processing (No in S425), the drawing processing unit 16 refers to the optimization information, and takes charge of the processing objects in order from the drawing area with the largest load value (S427). The subsequent processing is the same as in FIG.
以上説明したように、本実施形態のMFP200は、最適化情報生成部14がDL解析部12と時間的に並列に最適化情報を作成するので、DL解析部12と描画処理部16との待ち時間が短縮される。また、最適化情報だけでなく描画処理部16の得意な描画処理を考慮すれば、さらに1ページ当たりの処理時間を短縮できる。 As described above, in the MFP 200 of this embodiment, the optimization information generation unit 14 creates optimization information in parallel with the DL analysis unit 12 in time, so that the wait between the DL analysis unit 12 and the drawing processing unit 16 is possible. Time is shortened. Further, if not only the optimization information but also the drawing processing that the drawing processing unit 16 is good at, the processing time per page can be further reduced.
100 コントローラ
110 CPU
111 第1コア
112 第2コア
113 第3コア
114 第4コア
120 ROM
130 RAM
140 NVRAM
150 ホストPC
151 ネットワークI/F
161 エンジンI/F
171 パネルI/F
160 エンジン
170 パネル装置
180 HDD
200 MFP
204 プリンタコントロールシステム
205 PDL部
300 印刷システム
100 controller 110 CPU
111 1st core 112 2nd core 113 3rd core 114 4th core 120 ROM
130 RAM
140 NVRAM
150 host PC
151 Network I / F
161 Engine I / F
171 Panel I / F
160 Engine 170 Panel device 180 HDD
200 MFP
204 Printer control system 205 PDL unit
300 printing system
Claims (10)
印刷データを格納する印刷データ格納手段と、
前記印刷データを解析し、描画対象とされるオブジェクトの描画命令をページ毎に記述した描画命令データを生成する描画命令生成手段と、
前記描画命令生成手段と並行して前記印刷データを解析し、前記描画処理手段が受け持つ前記領域を決定するための最適化情報を作成する最適化情報作成手段と、
前記描画命令データと前記最適化情報を記憶する中間データ記憶手段と、
前記最適化情報に基づき受け持つ領域を決定し、領域毎に前記描画命令データを描画処理する前記描画処理手段と、
を有することを特徴とする画像形成装置。 An image forming apparatus in which drawing processing means performs drawing processing for each area of a page,
Print data storage means for storing print data;
Drawing command generation means for analyzing the print data and generating drawing command data describing a drawing command of an object to be drawn for each page;
Analyzing the print data in parallel with the drawing command generating means, optimizing information creating means for creating optimization information for determining the area that the drawing processing means is responsible for;
Intermediate data storage means for storing the drawing command data and the optimization information;
The drawing processing means for determining a region to be served based on the optimization information and drawing the drawing command data for each region;
An image forming apparatus comprising:
前記中間データ記憶手段に前記最適化情報が記憶されたページ数が閾値以下となると、前記印刷データを解析し、前記最適化情報の作成を再開する、
ことを特徴とする請求項1記載の画像形成装置。 When the total number of pages is equal to or greater than a predetermined value, the optimization information creating unit creates the optimization information for each page having a predetermined number of pages less than the predetermined value, and then serves as the drawing processing unit for drawing the area. Drawing the command data,
When the number of pages in which the optimization information is stored in the intermediate data storage unit is equal to or less than a threshold, the print data is analyzed, and the creation of the optimization information is resumed.
The image forming apparatus according to claim 1.
ことを特徴とする請求項1記載の画像形成装置。 The optimization information creating means does not create the optimization information when the total number of pages is one page, and draws the drawing command data of the area as the drawing processing means;
The image forming apparatus according to claim 1.
ことを特徴とする請求項1〜3いずれか1項記載の画像形成装置。 The optimization information creating means creates, as the optimization information, a load value that determines a processing load of drawing processing based on an object type and a drawing area for each region.
The image forming apparatus according to claim 1, wherein the image forming apparatus is an image forming apparatus.
ことを特徴とする請求項4記載の画像形成装置。 When the object is a vector graphic, the optimization information creating unit obtains the drawing area of a circumscribed rectangle including all the control points of the vector graphic.
The image forming apparatus according to claim 4.
前記最適化情報作成手段は、オブジェクトの種類に基づき前記負荷指数テーブルから読み出した前記負荷指数を、前記描画面積に乗じて前記負荷値を算出する、
ことを特徴とする請求項4又は5記載の画像形成装置。 A load index table in which the load index of the processing load is associated with an object type;
The optimization information creation means calculates the load value by multiplying the drawing area by the load index read from the load index table based on the type of object.
The image forming apparatus according to claim 4, wherein the image forming apparatus is an image forming apparatus.
前記描画処理手段は、未処理の前記領域に含まれるオブジェクトが、前記処理対象決定テーブルに含まれている場合、該領域を処理対象に決定する、
ことを特徴とする請求項4〜6いずれか1項記載の画像形成装置。 The drawing processing means has a processing target determination table that associates an appropriate object type as a drawing processing target,
The drawing processing means determines the region as a processing target when an object included in the unprocessed region is included in the processing target determination table.
The image forming apparatus according to claim 4, wherein the image forming apparatus is an image forming apparatus.
ことを特徴とする請求項4〜6いずれか1項記載の画像形成装置。 The drawing processing means determines the region having the highest load value as a processing target when an object included in the unprocessed region is not included in the processing target determination table.
The image forming apparatus according to claim 4, wherein the image forming apparatus is an image forming apparatus.
前記描画命令生成手段に1つのコア又はCPUを、
前記最適化情報作成手段に1つのコア又はCPUを、
前記描画処理手段に残りのコア又はCPUを、割り当て、各手段がそれぞれ処理を実行する、ことを特徴とする請求項1〜8いずれか1項記載の画像形成装置。 It has a multi-core type CPU or multiple CPUs,
One core or CPU for the drawing command generation means,
One core or CPU for the optimization information creation means,
The image forming apparatus according to claim 1, wherein a remaining core or CPU is assigned to the drawing processing unit, and each unit executes a process.
データ取得手段が、外部から取得した印刷データを印刷データ格納手段に格納するステップと、
描画命令生成手段が、前記印刷データを解析し、描画対象とされるオブジェクトの描画命令をページ毎に記述した描画命令データを生成し、中間データ記憶手段に格納するステップと、
最適化情報作成手段が、前記描画命令生成手段と並行して前記印刷データを解析し、前記描画処理手段が受け持つ前記領域を決定するための最適化情報を作成し、前記中間データ格納手段に格納するステップと、
前記描画処理手段が、前記最適化情報に基づき受け持つ領域を決定し、領域毎に前記描画命令データを描画処理するステップと、
を有することを特徴とする画像処理方法。 An image processing method in which drawing processing means performs drawing processing for each area of a page,
A step in which the data acquisition means stores the print data acquired from the outside in the print data storage means;
A drawing command generation unit that analyzes the print data, generates a drawing command data describing a drawing command of an object to be drawn for each page, and stores the drawing command data in an intermediate data storage unit;
Optimization information creation means analyzes the print data in parallel with the drawing command generation means, creates optimization information for determining the area that the drawing processing means is responsible for, and stores it in the intermediate data storage means And steps to
The drawing processing means determining a region to be served based on the optimization information, and drawing the drawing command data for each region;
An image processing method comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010219743A JP2012071544A (en) | 2010-09-29 | 2010-09-29 | Image forming apparatus and image processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010219743A JP2012071544A (en) | 2010-09-29 | 2010-09-29 | Image forming apparatus and image processing method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012071544A true JP2012071544A (en) | 2012-04-12 |
Family
ID=46167881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010219743A Pending JP2012071544A (en) | 2010-09-29 | 2010-09-29 | Image forming apparatus and image processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012071544A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013233759A (en) * | 2012-05-10 | 2013-11-21 | Canon Inc | Device, method, system and program of information processing |
EP3021567A1 (en) | 2014-10-31 | 2016-05-18 | Konica Minolta, Inc. | Image processing apparatus, method for performing specific process, computer-readable storage medium for computer program |
US10373029B2 (en) | 2017-07-31 | 2019-08-06 | Kyocera Document Solutions Inc. | Data processing method, data processing device that execute font processing efficiently using a plurality of cores of processor, and recording medium therefor |
JP2019152692A (en) * | 2018-02-28 | 2019-09-12 | ブラザー工業株式会社 | Image forming apparatus and control method |
JP2019152689A (en) * | 2018-02-28 | 2019-09-12 | ブラザー工業株式会社 | Image forming apparatus and control method |
-
2010
- 2010-09-29 JP JP2010219743A patent/JP2012071544A/en active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013233759A (en) * | 2012-05-10 | 2013-11-21 | Canon Inc | Device, method, system and program of information processing |
EP3021567A1 (en) | 2014-10-31 | 2016-05-18 | Konica Minolta, Inc. | Image processing apparatus, method for performing specific process, computer-readable storage medium for computer program |
US9781295B2 (en) | 2014-10-31 | 2017-10-03 | Konica Minolta, Inc. | Image processing apparatus, a method for performing specific process on an image processing apparatus, and a computer-readable storage medium for a program to be executed by an image processing apparatus |
US10373029B2 (en) | 2017-07-31 | 2019-08-06 | Kyocera Document Solutions Inc. | Data processing method, data processing device that execute font processing efficiently using a plurality of cores of processor, and recording medium therefor |
JP2019152692A (en) * | 2018-02-28 | 2019-09-12 | ブラザー工業株式会社 | Image forming apparatus and control method |
JP2019152689A (en) * | 2018-02-28 | 2019-09-12 | ブラザー工業株式会社 | Image forming apparatus and control method |
JP7209203B2 (en) | 2018-02-28 | 2023-01-20 | ブラザー工業株式会社 | Image forming apparatus and control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8861014B2 (en) | Systems and methods for optimized printer throughput in a multi-core environment | |
JP3168580B2 (en) | Page description language interpreter | |
JP5051327B1 (en) | Image processing apparatus and program | |
US6734989B2 (en) | Image output apparatus and method | |
AU2011224147B2 (en) | Image processing system and image processing method | |
JP2012081626A (en) | Image forming apparatus, image processing method, and program | |
US20070070403A1 (en) | Information processing apparatus, information processing method, and program | |
JP2012071544A (en) | Image forming apparatus and image processing method | |
US20180082160A1 (en) | Image processing apparatus and image processing method | |
JP2008526555A (en) | Print control method capable of reducing the required amount of print memory | |
US8334989B2 (en) | Printing device and method for parallel processing of data | |
JP2000313145A (en) | Print controller, data processing method therefor, and recording medium storing computer readable program | |
JP5268427B2 (en) | Image forming apparatus and image forming system | |
US8928914B2 (en) | Image processing apparatus, information processing method, and storage medium | |
JP2001222395A (en) | Information processor, information processing method and storage medium in which printer driver program is stored | |
JP2003051019A (en) | Image processor, method and program for processing image and storage medium | |
JP6904717B2 (en) | Image processing equipment, its control method, and programs | |
US8526052B2 (en) | Print data processing apparatus, control method for print data processing apparatus, and storage medium | |
JP6471660B2 (en) | Information processing apparatus and program | |
JP2011053944A (en) | Image forming device, image forming method, and control program | |
JP5936363B2 (en) | Image processing apparatus and image processing method | |
JP5424546B2 (en) | Image processing apparatus and image forming system | |
JP2002063582A (en) | Device and method for forming image | |
US11341383B2 (en) | Methods and apparatus to detect effective tiling area and fill tiles efficiently | |
JP2010012737A (en) | Print control apparatus, printing system, plotting method and program |