JP2009066926A - Image processing device and image forming system - Google Patents

Image processing device and image forming system Download PDF

Info

Publication number
JP2009066926A
JP2009066926A JP2007238102A JP2007238102A JP2009066926A JP 2009066926 A JP2009066926 A JP 2009066926A JP 2007238102 A JP2007238102 A JP 2007238102A JP 2007238102 A JP2007238102 A JP 2007238102A JP 2009066926 A JP2009066926 A JP 2009066926A
Authority
JP
Japan
Prior art keywords
rendering
sub
display list
page
buffer
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.)
Granted
Application number
JP2007238102A
Other languages
Japanese (ja)
Other versions
JP5424546B2 (en
Inventor
Yuzuru Naganuma
譲 長沼
Kenichi Katsura
健一 桂
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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Mita Corp
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 Kyocera Mita Corp filed Critical Kyocera Mita Corp
Priority to JP2007238102A priority Critical patent/JP5424546B2/en
Publication of JP2009066926A publication Critical patent/JP2009066926A/en
Application granted granted Critical
Publication of JP5424546B2 publication Critical patent/JP5424546B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

<P>PROBLEM TO BE SOLVED: To provide an image processing device capable of precisely drawing data depicted by a page depicting language capable of depicting a telescoping structure. <P>SOLUTION: The image processing device carries out image processing based on the depiction of the page depicting language. The image processing device stores the page depicting language in a recording device. Then, the depiction relating to the telescoping structure is analyzed from the recorded page depicting language. Further, a display list which is a list including the kind of the pattern being depicted and the depth information of the telescoping structure is made based on the analyzed telescoping structure. Furthermore, the sub rendering buffer is obtained based on the depth of the telescoping structure to carry out the rendering to the sub rendering buffer according to the display list. Furthermore, the rendering of each page is carried out using the content of the sub rendering buffer. In addition, the image forming system with the image processing device and a communication device is provided. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は画像処理装置及び画像形成システム、特にXPSで描画破綻が起きない画像処理装置及び画像形成システムに関する。   The present invention relates to an image processing apparatus and an image forming system, and more particularly to an image processing apparatus and an image forming system in which drawing failure does not occur in XPS.

近年、PC(パーソナル・コンピュータ)の普及に伴って、PCからデータをプリントするプリンタ等の印刷装置と、プリンタとスキャナやFAX等を含む複合機等の画像形成システムが普及している。   In recent years, with the spread of PCs (personal computers), printing apparatuses such as printers that print data from PCs and image forming systems such as multifunction peripherals including printers, scanners, and fax machines have become widespread.

このプリンタとしては、オフィス等の業務用途では、高速で高品質な画像を印刷するページプリンタが使用されている。ページプリンタの種類としては、例えばレーザーを用いて感光体に印刷するイメージに対応する電荷パターンを作成し、このパターンに従いトナーを感光体に付着させ、トナーを紙に転写して熱と圧力で定着させることで印刷を行うレーザープリンタが広く用いられている。また、レーザーの代わりにLEDアレイを用いたページプリンタである、LEDプリンタ等もよく用いられている。   As this printer, a page printer that prints a high-quality image at high speed is used for business use such as an office. As a type of page printer, for example, a charge pattern corresponding to an image to be printed on a photoconductor is created using a laser, toner is attached to the photoconductor according to this pattern, and the toner is transferred to paper and fixed with heat and pressure. Therefore, laser printers that perform printing are widely used. Also, LED printers, which are page printers using LED arrays instead of lasers, are often used.

このページプリンタにおいては、印刷時に印刷されるデータが、ページ記述言語(Page Description Language、PDL)と呼ばれるコンピュータ言語で記載されることが多い。   In this page printer, data to be printed at the time of printing is often described in a computer language called a page description language (PDL).

ページ記述言語は、例えば、紙の上のどの座標からどの座標に線を引くといったベクトル情報や、文字の形状であるフォント情報といった情報を備えている。   The page description language includes information such as vector information such as drawing a line from which coordinate on paper to which coordinate and font information that is a character shape.

このため、ページ記述言語で記載されたデータは、ドットの集合体であるビットマップデータをプリンタに直接送信するよりもデータ容量を削減できることが多い。   For this reason, the data described in the page description language can often reduce the data capacity compared to transmitting bitmap data, which is a collection of dots, directly to the printer.

このページ記述言語で記載されたデータを、例えばUSBやLAN等を介してページプリンタに送信すると、ページプリンタ内部のCPU(中央演算装置)が解析し、実際に印刷するイメージを作成する。このイメージの作成をレンダリング(描画)又はラスタライズと呼ぶ。   When data described in this page description language is transmitted to a page printer via, for example, a USB or LAN, a CPU (central processing unit) inside the page printer analyzes and creates an image to be actually printed. This image creation is called rendering (rendering) or rasterization.

ページプリンタの内部では、レンダリングにより、例えば1200dpi(ドット・パー・インチ)や2400dpiといった、PCの画面(通常は、72dpi)よりも高解像度のビットマップデータを生成している。また、このビットマップデータは、各ページプリンタの特性に合わせたパターンを作成することができる。   Inside the page printer, bitmap data having a resolution higher than that of a PC screen (usually 72 dpi), such as 1200 dpi (dot per inch) or 2400 dpi, is generated by rendering. The bitmap data can create a pattern that matches the characteristics of each page printer.

このため、PCでビットマップデータを作成して、これを直接プリンタに転送するよりも高品位の印刷を行うことができる。   For this reason, it is possible to perform higher quality printing than when bitmap data is created on a PC and directly transferred to the printer.

しかし、ページプリンタ等のプリンタは、PCに比べて主記憶装置等のメモリ容量が少ないことが多い。このため、ページ記述言語で記載されたデータをレンダリングする際に、メモリ容量を削減することが求められる。   However, a printer such as a page printer often has a smaller memory capacity of a main storage device or the like than a PC. For this reason, it is required to reduce the memory capacity when rendering data described in a page description language.

そこで、特許文献1を参照すると、ページ記述言語で記載されているデータについて、メモリの使用量を抑えて描画を行う印刷装置が存在する(以下、従来技術1と呼ぶ)。   Therefore, with reference to Patent Document 1, there is a printing apparatus that draws data described in a page description language while reducing the amount of memory used (hereinafter referred to as Prior Art 1).

従来技術1においては、組み合わせてレンダリングする必要がある複数の描画プリミティブ又は描画オブジェクトと呼ばれる描画単位(例えば、描画プリミティブ同士のANDやORなどの論理演算を行うもの)について、印刷データを送信するホストPC側で指定してヘッダ情報を付加する。   In the prior art 1, a host that transmits print data for a plurality of drawing primitives or drawing objects that need to be combined and rendered (for example, those that perform logical operations such as AND and OR between drawing primitives) It is specified on the PC side and header information is added.

このヘッダ情報の付加されている以外の描画プリミティブの描画画像を、ハーフトーンと呼ばれるディザリングパターン等のメモリ使用量の少ない状態に圧縮することで、印刷装置が使用するメモリ容量を削減することができる。
特開2006−168051号公報
The memory capacity used by the printing apparatus can be reduced by compressing the rendered image of the rendering primitive other than the header information added to a state where the memory usage is small, such as a dithering pattern called halftone. it can.
JP 2006-168051 A

しかし、従来技術1の印刷装置では、複数の入れ子(ネスト)構造を記述できるページ記述言語の場合、描画を正常に行うことができない場合があるという問題があった。   However, the printing apparatus of the prior art 1 has a problem that drawing may not be performed normally in the case of a page description language that can describe a plurality of nested structures.

特に、マイクロソフト社は、近年、Windows(登録商標)Vista OS(オペレーティング・システム)において、XML形式で記述する高機能なページ記述言語であるXPSを全面的に採用している。このXPSは、何重にも入れ子構造を記載することが可能であるため、従来技術1の印刷装置においては、描画の破綻が起こっていた。   In particular, in recent years, Microsoft has fully adopted XPS, which is a high-performance page description language described in XML format in Windows (registered trademark) Vista OS (operating system). Since this XPS can describe a nested structure in layers, drawing failure has occurred in the printing apparatus of the prior art 1.

本発明は、このような状況に鑑みてなされたものであり、上述の課題を解消することを課題とする。   This invention is made | formed in view of such a condition, and makes it a subject to eliminate the above-mentioned subject.

本発明の画像処理装置は、ページ記述言語の記載を基に画像処理をする画像処理装置であって、前記ページ記述言語で記載されたデータを記憶する記憶手段と、前記記憶手段に記憶したページ記述言語の入れ子構造に関する記載を解析するページ記述言語解析手段と、前記ページ記述言語解析手段により解析した前記入れ子構造を基に、描画する図形の種類と入れ子構造の深さレベルの情報を含むリストであるディスプレイリストを作成するディスプレイリスト作成手段と、前記ディスプレイリストに従って、前記入れ子構造の深さレベル毎にサブレンダリングバッファを取得して該サブレンダリングバッファにレンダリングを行い、該サブレンダリングバッファの内容を用いて各ページのレンダリングを行うページレンダリング手段とを備えることを特徴とする。   An image processing apparatus according to the present invention is an image processing apparatus that performs image processing based on a description of a page description language, and includes a storage unit that stores data described in the page description language, and a page stored in the storage unit A page description language analyzing means for analyzing a description relating to a nested structure of the description language, and a list including information on the type of figure to be drawn and the depth level of the nested structure based on the nested structure analyzed by the page description language analyzing means Display list creation means for creating a display list, and in accordance with the display list, a sub-rendering buffer is acquired for each depth level of the nested structure, and rendering is performed on the sub-rendering buffer. Page rendering means to render each page using And wherein the Rukoto.

本発明の画像処理装置は、前記ページ記述言語は、XPSを含むXMLを基にしたページ記述言語であることを特徴とする。   The image processing apparatus of the present invention is characterized in that the page description language is a page description language based on XML including XPS.

本発明の画像形成システムは、請求項1又は2に記載の画像処理装置と、通信装置とを備えることを特徴とする。   An image forming system according to the present invention includes the image processing device according to claim 1 or 2 and a communication device.

本発明によれば、入れ子構造を記述できるページ記述言語で記載されたデータを、正確に描画できる画像処理装置と画像形成システムを提供することができる。   According to the present invention, it is possible to provide an image processing apparatus and an image forming system that can accurately draw data described in a page description language that can describe a nested structure.

<第1の実施の形態>
(画像処理装置Xの制御構成)
本発明の実施の形態に係る画像処理装置Xは、ページプリンタの画像処理部に相当する部位である。
<First Embodiment>
(Control configuration of image processing apparatus X)
The image processing apparatus X according to the embodiment of the present invention is a part corresponding to an image processing unit of a page printer.

制御ブロック図である図1を参照すると、画像処理装置Xは、CPU内のXML処理用コ・プロセッサ、SIMD(Single Instruction/Multiple Data)方式の演算器、ROMやRAM等を用いて実行するプログラム等により実現されるプリントデータ受信記憶部201(記憶手段)、PDL解析部202(ページ記述言語解析手段)、ディスプレイリスト作成部203(ディスプレイリスト作成手段)、及びページレンダリング部204(ページレンダリング手段)のような構成要素を備えている。   Referring to FIG. 1, which is a control block diagram, an image processing apparatus X is a program to be executed using an XML processing co-processor in a CPU, a SIMD (Single Instruction / Multiple Data) arithmetic unit, a ROM, a RAM, and the like. Print data reception storage unit 201 (storage unit), PDL analysis unit 202 (page description language analysis unit), display list creation unit 203 (display list creation unit), and page rendering unit 204 (page rendering unit). It has the following components.

また、本発明の実施の形態に係るページプリンタは、画像処理装置Xに加えて、公知のCPU(中央演算装置、MPU)、レーザー、感光体(ドラム)、ポリゴンミラー、補助記憶装置(RAM、ROM、HDDやフラッシュメモリ等)、I/O等を備えている。   In addition to the image processing apparatus X, the page printer according to the embodiment of the present invention includes a known CPU (central processing unit, MPU), laser, photoconductor (drum), polygon mirror, auxiliary storage device (RAM, ROM, HDD, flash memory, etc.), I / O, and the like.

さらに、USB(ユニバーサル・シリアル・バス)やLAN等であるPC用のインターフェイス(通信装置)等も備えて、画像形成システムとして用いることができる。この画像形成システムには、スキャナやFAX機能等も備えた複合機等としても用いることができる。   Furthermore, it is equipped with an interface (communication device) for a PC such as a USB (Universal Serial Bus) or LAN, and can be used as an image forming system. This image forming system can also be used as a multifunction machine having a scanner, a FAX function, and the like.

以下で、実施の形態に係る画像処理装置Xの制御構成の詳細について説明する。   Details of the control configuration of the image processing apparatus X according to the embodiment will be described below.

プリントデータ受信記憶部201は、画像処理装置XのUSBやLAN等で受信したページ記述言語で記載されたデータをバッファリングするRAMや補助記憶装置である。   The print data reception storage unit 201 is a RAM or auxiliary storage device that buffers data described in a page description language received by the USB or LAN of the image processing apparatus X.

PDL解析部202は、バッファリングされたデータをページ記述言語の命令により解析してしかるべき処理に分岐する制御手段である。このPDL解析部202は、ページ記述言語の種類毎に異なる解析処理を行うことが可能であり、例えば、マイクロソフト社のXPSに加え、Adobe社のPostScript(登録商標)言語、PRESCRIBE言語等に対応できる。PostScriptの場合には、エミュレータにて対応可能である。   The PDL analysis unit 202 is a control unit that analyzes the buffered data according to a page description language instruction and branches to an appropriate process. The PDL analysis unit 202 can perform different analysis processing for each type of page description language. For example, in addition to Microsoft XPS, it can support Adobe PostScript (registered trademark) language, PRESCRIBE language, and the like. . In the case of PostScript, it can be handled by an emulator.

ディスプレイリスト作成部203は、各ページのデータを用いて、入れ子構造を持つデータを効率よくレンダリングするために、レンダリングする描画の最小単位である描画プリミティブに分割したディスプレイリストを作成する。   The display list creation unit 203 creates a display list divided into drawing primitives, which are the minimum units of drawing to be rendered, in order to efficiently render data having a nested structure using the data of each page.

ここで、本発明の実施の形態に係る画像処理装置Xにおいては、実際に印刷用に用いるビットマップデータであるレンダリングバッファと、これとは別に、一時的に用いる別のバッファを用意してレンダリングを行うことができる。   Here, in the image processing apparatus X according to the embodiment of the present invention, a rendering buffer that is bitmap data actually used for printing and a separate buffer that is temporarily used are prepared and rendered. It can be performed.

本発明の実施の形態に係る画像処理装置Xでは、この一時的に用いる別のバッファをサブレンダリングバッファと呼ぶ。   In the image processing apparatus X according to the embodiment of the present invention, this temporarily used another buffer is called a sub-rendering buffer.

ディスプレイリスト作成部203は、このサブレンダリングバッファを取得することもできる。   The display list creation unit 203 can also acquire this sub-rendering buffer.

ページレンダリング部204は、ディスプレイリストに従い、実際にレンダリングバッファ又はサブレンダリングバッファに対してラスタライズ・オペレーションを行う。これにより、各ページのレンダリングが行われる。また、ページレンダリング部204は、線画エンジン、特定色でのフィル、バイリニア拡大・縮小・回転を行うblter、誤差拡散、色空間変換等の処理を高速に行うためのアクセレレーション機能等を搭載しており、高速なレンダリングを行うことが可能である。   The page rendering unit 204 actually performs a rasterizing operation on the rendering buffer or the sub-rendering buffer according to the display list. As a result, each page is rendered. In addition, the page rendering unit 204 is equipped with a line drawing engine, a fill with a specific color, a blter that performs bilinear enlargement / reduction / rotation, an acceleration function for performing processing such as error diffusion, color space conversion, and the like at high speed. It is possible to perform high-speed rendering.

(XPSによるブレンド処理の概略)
ここで、図2と図3を参照して、図2のXPSの記述を基に、レンダリング画像を用いてブレンド処理(半透明描画処理)を行う際の概要について説明する。
(Outline of blending process by XPS)
Here, with reference to FIG. 2 and FIG. 3, the outline at the time of performing blend processing (translucent rendering processing) using a rendering image based on the description of XPS in FIG. 2 will be described.

まず、XPSの概略について説明する。   First, an outline of XPS will be described.

XPSは、上述のようにWindows(登録商標)Vista OSに標準で用いられる、高機能なページ記述言語である。XPSは、データベース等で標準に用いられているXML形式で記述され、複数の入れ子構造をとるエレメントから構成される。各エレメントは、例えば<canvas>と</canvas>のようなタグに囲まれた内側に、必要な情報を記述することにより規定される。   XPS is a high-function page description language that is used as a standard in Windows (registered trademark) Vista OS as described above. XPS is described in an XML format used as a standard in a database or the like, and is composed of elements having a plurality of nested structures. Each element is defined by describing necessary information in an inner side surrounded by tags such as <canvas> and </ canvas>.

各エレメントの内側には別のエレメントを記述することも可能である。このため、XPSでは、レンダリングするイメージが入れ子構造となることがよくある。   It is possible to describe another element inside each element. For this reason, in XPS, an image to be rendered often has a nested structure.

ブレンド処理は、上述のような入れ子構造内で描画したイメージを属性値として用いて、別の描画を行うための典型的な例である。具体的には、あるイメージを描画して、その描画したイメージを、他の図形を描画した透明度を記述する透過マスクデータとして使用することが可能である。   The blending process is a typical example for performing another drawing using an image drawn in the nested structure as described above as an attribute value. Specifically, it is possible to draw an image and use the drawn image as transmission mask data describing the transparency of drawing another figure.

ここで、図2を参照して、XPSでのブレンド処理の記載について簡単に説明する。図2は、ブレンド処理を説明するためのXPSを抜粋したものである。   Here, with reference to FIG. 2, description of blend processing in XPS will be briefly described. FIG. 2 is an excerpt of XPS for explaining the blending process.

図2のXPSの記述において、<fixed page>エレメントは、あるページに描かれる内容を記述している。すなわち、画像処理装置Xは、<fixed page>〜</fixed page>のタグ内に記述されたエレメントの内容を、1ページに印刷する。   In the XPS description of FIG. 2, the <fixed page> element describes the contents drawn on a certain page. That is, the image processing apparatus X prints the contents of the elements described in the tags <fixed page> to </ fixed page> on one page.

<canvas>エレメントは、任意範囲の図形のレンダリング領域を示しているエレメントである。この<canvas>エレメントにより、複数のエレメントを1単位にまとめることができる。すなわち、<canvas>〜</canvas>間に記載された内容が、描画するイメージの1単位である描画プリミティブ等に翻訳される。   The <canvas> element is an element indicating a rendering area of an arbitrary range of figures. With this <canvas> element, a plurality of elements can be combined into one unit. That is, the content described between <canvas> to </ canvas> is translated into a drawing primitive that is one unit of an image to be drawn.

また、この<canvas>エレメントに指定する属性は、内側のエレメントである子エレメントに影響を与える。   Further, the attribute specified in the <canvas> element affects a child element that is an inner element.

<opacitymask>エレメントは、透過の情報であることを明示的に示すエレメントである。<opacitymask>エレメントは、このエレメントの内側のエレメントで描画されたイメージを、透明度を記述するアルファ値を示すイメージとして扱うためのエレメントである。すなわち、画像処理装置Xは、<opacitymask>〜</opacitymask>間の記述で描いたイメージを、透過マスクデータとして使用する。   The <opacitymask> element is an element that explicitly indicates that it is transmission information. The <opacitymask> element is an element for handling an image drawn by an element inside this element as an image indicating an alpha value describing transparency. That is, the image processing apparatus X uses an image drawn with a description between <opacitymask> to </ opacitymask> as transmission mask data.

上述の透過マスクデータは、例えば0〜255(8bit)や0〜65535(16bit)の単位で透過率を規定する。   The above-described transmission mask data defines the transmittance in units of, for example, 0 to 255 (8 bits) or 0 to 65535 (16 bits).

8bitの場合は、0が完全に透明で、255が完全に不透明であることを示す。同様に、16bitの場合は、0が完全に透明で、65535が完全に不透明であることを示す。   In the case of 8 bits, 0 indicates completely transparent, and 255 indicates completely opaque. Similarly, in the case of 16 bits, 0 indicates completely transparent and 65535 indicates completely opaque.

なお、この透過マスクデータは、RGB値やCMYK値等のカラー毎に用意してもよい。   Note that the transmission mask data may be prepared for each color such as an RGB value or a CMYK value.

さらに、固定小数点値又は浮動小数点値で表現されていてもよい。この場合は、最大値と最小値を規定する値を決定しておくことが望ましい。
(従来技術1による描画)
図2のXPSをレンダリングする場合、従来技術1によると、<opacitymask>エレメント内の記載内容を、複数の描画プリミティブとしてまとめて、ヘッダ情報を付加することになる。すなわち、図2のXPSの場合は、全体に対してヘッダ情報が付加されて、従来技術1ではコントーン画像用のバッファと呼ばれているレンダリング用のビットマップデータであるレンダリングバッファのみを使用することになる。
Further, it may be expressed as a fixed-point value or a floating-point value. In this case, it is desirable to determine values that define the maximum value and the minimum value.
(Drawing by Conventional Technology 1)
When the XPS of FIG. 2 is rendered, according to the prior art 1, the description contents in the <opacitymask> element are collected as a plurality of drawing primitives and header information is added. That is, in the case of XPS in FIG. 2, header information is added to the whole, and only the rendering buffer which is bitmap data for rendering, which is called a contone image buffer in the prior art 1, is used. become.

このヘッダの付加については、従来技術1では入れ子構造を処理する仕組みが用意されていないので難しいと考えられるが、全体が圧縮されない状態で描画されるものとして説明する。   The addition of this header is considered difficult because the prior art 1 does not provide a mechanism for processing the nested structure, but will be described as being rendered in an uncompressed state as a whole.

また、従来技術1の印刷装置では、入れ子構造を処理しないため、<opacitymask>エレメントの描画が終了すると、すぐに背景画像であるレンダリングバッファに対して半透明処理を行う。   Further, since the printing apparatus according to the related art 1 does not process the nested structure, translucency processing is immediately performed on the rendering buffer that is the background image immediately after the rendering of the <opacitymask> element.

よって、図2のXPSのレンダリングは、図3を参照すると以下のように行われる。   Therefore, the rendering of XPS in FIG. 2 is performed as follows with reference to FIG.

まず、図3のレンダリングバッファの描画状態のイメージであるレンダリングバッファイメージ100には、元々、背景の文字等が描かれているとする。   First, it is assumed that a background character or the like is originally drawn in the rendering buffer image 100 which is an image of the rendering state of the rendering buffer in FIG.

ここで、従来技術1の印刷装置はPDLを解析し、もっとも内側の<canvas>エレメントで、図3の図形描画(1)の矩形を2つ、レンダリングバッファに描画する。この時点でのレンダリングバッファは、レンダリングバッファイメージ101のようなイメージとなる。ここで、背景の文字等が塗りつぶされる。   Here, the printing apparatus of the conventional technique 1 analyzes the PDL, and draws two rectangles of the graphic drawing (1) of FIG. 3 in the rendering buffer with the innermost <canvas> element. The rendering buffer at this point is an image like the rendering buffer image 101. Here, background characters and the like are filled.

この図形描画(1)は、<opacitymask>エレメントの内側であるため、これが透過マスクデータになる。   Since this graphic drawing (1) is inside the <opacitymask> element, this becomes transmission mask data.

次に、透過マスクデータである背景画像と、図3の図形描画(2)の図形(この場合は、50%グレーの矩形)をレンダリングバッファに対して描画する。この時点でのレンダリングバッファは、レンダリングバッファ102のようなイメージとなる。   Next, the background image, which is transmission mask data, and the figure (2) figure (in this case, a 50% gray rectangle) in FIG. 3 are drawn in the rendering buffer. The rendering buffer at this point is an image like the rendering buffer 102.

ここで、レンダリングバッファ102のイメージは、<opacitymask>エレメントの内側であるため、また透過マスクデータとして用いられることになる。   Here, since the image of the rendering buffer 102 is inside the <opacitymask> element, it is used as transmission mask data.

ここで、実際には、従来技術1は、このような複数の入れ子構造には対応していないためエラー処理を行うのが妥当だと思われる。しかし、ここでは説明のために、<opacitymask>エレメントの情報を用いて描画が進められる場合どうなるかについて解説する。   Here, in practice, the prior art 1 does not support such a plurality of nested structures, so it seems appropriate to perform error processing. However, here, for the sake of explanation, what happens when the drawing is advanced using the information of the <opacitymask> element will be described.

この場合、従来技術1の印刷装置は、図3の図形描画(3)のカラーの矩形(青成分100%)を描画し、このとき102で生成したイメージのうち、図形描画3に用いられる背景の一部について透過マスクデータとして、描画される矩形とブレンドされたイメージを描画する。   In this case, the printing apparatus of the related art 1 draws a color rectangle (blue component 100%) of the graphic drawing (3) in FIG. 3 and the background used for the graphic drawing 3 among the images generated at 102 at this time. An image blended with a rectangle to be drawn is drawn as part of the transmission mask data.

すなわち、最終的なレンダリングバッファのイメージは、レンダリングバッファイメージ103のような画像となる。   That is, the final rendering buffer image is an image like the rendering buffer image 103.

しかしながら、図3のような描画結果は、本来XPSの記述が意図していた描画結果とはかけ離れている。すなわち描画の破綻が起こっているといえる。   However, the drawing result as shown in FIG. 3 is far from the drawing result originally intended for the XPS description. In other words, it can be said that a drawing failure has occurred.

そこで、本発明の発明者は鋭意研究と実際の印刷データを用いて開発を行い、印刷装置におけるXPSのような高度なページ記述言語での描画に最適な方法を開発するに至った。   Accordingly, the inventors of the present invention have made extensive research and development using actual print data, and have come to develop a method optimal for drawing in an advanced page description language such as XPS in a printing apparatus.

本発明の実施の形態に係る画像処理装置Xにおいては、上述のように図2のように入れ子構造のあるページ記述言語の記載を基にレンダリングする際に、サブレンダリングバッファを確保してこれに対して描画するといった仕組みを提供することで、描画の破綻を避けることが可能となる。
(本発明の実施の形態に係る画像処理装置Xによる描画)
図2のXPSを用いて、本発明の実施の形態に係る画像処理装置Xにおいてブレンド処理を行う場合の処理の概要について、図4と図5を参照して説明する。
In the image processing apparatus X according to the embodiment of the present invention, when rendering is performed based on the description of the page description language having a nested structure as shown in FIG. By providing a mechanism for drawing on the other hand, it is possible to avoid drawing failures.
(Drawing by the image processing apparatus X according to the embodiment of the present invention)
An outline of processing in the case of performing blend processing in the image processing apparatus X according to the embodiment of the present invention using XPS in FIG. 2 will be described with reference to FIGS. 4 and 5.

画像処理装置Xは、プリントデータ受信記憶部201が印刷データを受信し(ステップS701)、PDL解析部202がPDLの解析を行なう(ステップS702)。   In the image processing apparatus X, the print data reception storage unit 201 receives the print data (step S701), and the PDL analysis unit 202 analyzes the PDL (step S702).

この解析したデータを基に、ディスプレイリスト作成部203は<canvas>エレメントが解析された場合は、入れ子構造があると判定する(ステップS703)。   Based on the analyzed data, when the <canvas> element is analyzed, the display list creation unit 203 determines that there is a nested structure (step S703).

入れ子構造があった場合は、ディスプレイリスト作成部203は<canvas>のカウンタを増加させる(ステップS704)。   If there is a nested structure, the display list creation unit 203 increments the counter <canvas> (step S704).

この上で、ディスプレイリスト作成部203は、後の行のPDLの記述内容からディスプレイリストを作成する(ステップS705)。   Then, the display list creation unit 203 creates a display list from the description content of the PDL in the subsequent line (step S705).

さらに、ディスプレイリスト作成部203は、入れ子構造の内側でサブレンダリングバッファを取得する必要があると判定した際に(ステップS706)、レンダリングバッファとは別にサブレンダリングバッファ(2)を取得して(ステップS707)、サブレンダリングバッファのカウントを増加させる(ステップS708)。   Further, when it is determined that the sub-rendering buffer needs to be acquired inside the nested structure (step S706), the display list creating unit 203 acquires the sub-rendering buffer (2) separately from the rendering buffer (step S706). In step S707, the sub-rendering buffer count is increased (step S708).

また、ディスプレイリスト作成部203は、入れ子構造の内側でなくなったことを判定し(ステップS709)、<canvas>のカウンタのデクリメント等の処理も行う(ステップS710)。   Further, the display list creation unit 203 determines that it is no longer inside the nested structure (step S709), and also performs processing such as decrementing the <canvas> counter (step S710).

更に、ディスプレイリスト作成部203は、ディスプレイリストの作成時に、入れ子構造の内側であった場合は、上述のディスプレイリストの描画先として、入れ子構造の階層に対応するサブレンダリングバッファを選択し(ステップS712)、入れ子構造の外側であった場合はレンダリングバッファを選択する(ステップS713)
ディスプレイリスト作成部203は、ディスプレイリストを作成し終えたか判断し(ステップS7014)、まだ1ページ分のディスプレイリストの作成が終わっていない場合は、上述のステップを繰り返す。
Furthermore, if the display list creation unit 203 is inside the nested structure when the display list is created, the display list creating unit 203 selects a sub-rendering buffer corresponding to the nested structure hierarchy as the display list drawing destination (step S712). ) If it is outside the nested structure, a rendering buffer is selected (step S713).
The display list creation unit 203 determines whether or not the creation of the display list has been completed (step S7014), and when the creation of the display list for one page has not been completed yet, the above steps are repeated.

ディスプレイリスト作成部203がディスプレイリストが作成し終えた場合は、ページレンダリング部204がディスプレイリストを解釈してレンダリングを行う(ステップS715〜S716)。   When the display list creation unit 203 finishes creating the display list, the page rendering unit 204 interprets the display list and performs rendering (steps S715 to S716).

ここで、上述のステップを基に、ディスプレイリストが作成された場合、実際にはページレンダリング部がどのように描画を行うのかについて説明する。   Here, how the page rendering unit actually draws when the display list is created based on the above-described steps will be described.

まず、図4のレンダリングバッファイメージ110は、図3のレンダリングバッファイメージ100と同様に、ページレンダリング部204により元々の背景文字等が描かれているものとする。   First, the rendering buffer image 110 in FIG. 4 is assumed to have the original background characters and the like drawn by the page rendering unit 204 as in the rendering buffer image 100 in FIG.

最初に、ページレンダリング部204は、もっとも内側の<canvas>エレメントに対応したディスプレイリストを解釈した場合、図3の図形描画(1)の矩形を描画する。   First, when the page rendering unit 204 interprets the display list corresponding to the innermost <canvas> element, the page rendering unit 204 draws the rectangle of the graphic drawing (1) in FIG.

この描画は、上述のようにディスプレイリストの作成時にディスプレイリスト作成部203がレンダリングバッファとは別にサブレンダリングバッファ(2)を取得しているため、サブレンダリングバッファ(2)に対してレンダリングを行う。この時点でのレンダリングバッファは、レンダリングバッファイメージ111のようになっており、変化しない。   This drawing is performed on the sub-rendering buffer (2) since the display list creating unit 203 acquires the sub-rendering buffer (2) separately from the rendering buffer when the display list is created as described above. The rendering buffer at this point is like the rendering buffer image 111 and does not change.

なお、図形描画(1)は、<opacitymask>エレメントの内側であるため、これが透過マスクデータになる。   Note that, since the figure drawing (1) is inside the <opacitymask> element, this becomes transmission mask data.

また、サブレンダリングバッファは、<canvas>エレメントの深さレベルによって取得(確保)して用いるのが好適である。この取得の詳細については後述する。   The sub-rendering buffer is preferably acquired (reserved) according to the depth level of the <canvas> element. Details of this acquisition will be described later.

次に、ページレンダリング部204は、サブレンダリングバッファ(2)の描画データを透過マスクデータとして、図3の図形描画(2)の図形(この場合は、50%グレーの矩形)をサブレンダリングバッファ(1)に対して描画する。図形描画(2)の図形は、もっとも内側の<canvas>エレメントよりも1つ外側の入れ子構造内にあるからである。   Next, the page rendering unit 204 uses the drawing data of the sub-rendering buffer (2) as the transmission mask data, and converts the figure of the drawing (2) of FIG. 3 (in this case, a 50% gray rectangle) into the sub-rendering buffer ( Draw for 1). This is because the graphic of the graphic drawing (2) is in the nested structure one outer side than the innermost <canvas> element.

ここで、透過マスクデータは透明度を示すため、ページレンダリング部204は、サブレンダリングバッファ(2)とブレンドしたイメージを、サブレンダリングバッファ(1)に対して描画する。また、この時点でのレンダリングバッファは、レンダリングバッファイメージ112のように、まだ変化していない。   Here, since the transparency mask data indicates transparency, the page rendering unit 204 renders an image blended with the sub-rendering buffer (2) in the sub-rendering buffer (1). In addition, the rendering buffer at this time has not yet changed as in the rendering buffer image 112.

サブレンダリングバッファ(1)の描画データは、外側の<opacitymask>エレメントにより、さらに透過マスクデータとして用いられる。   The drawing data of the sub-rendering buffer (1) is further used as transmission mask data by the outer <opacitymask> element.

最後に、ページレンダリング部204は、サブレンダリングバッファ(1)の描画データを透過マスクデータとして、図3の図形描画(3)のカラーの矩形(青成分100%)をレンダリングバッファに対して描画する。図形描画(3)の図形は、入れ子構造の外側にあるからである。   Finally, the page rendering unit 204 draws the color rectangle (blue component 100%) of the graphic drawing (3) of FIG. 3 in the rendering buffer using the drawing data of the sub-rendering buffer (1) as the transmission mask data. . This is because the figure of the figure drawing (3) is outside the nested structure.

これにより、最終的にプリンタが印刷するのに用いるレンダリングバッファ(ビットマップデータ)である、レンダリングバッファイメージ113が作成される。   As a result, a rendering buffer image 113, which is a rendering buffer (bitmap data) that is finally used by the printer for printing, is created.

このようなイメージが、本来のXPSの記述が意図していたものである。
(ページ記述言語のレンダリング例)
次に、図5のフローチャートを用いて、上述の例とは別のXPSである図6のXPSと図7の描画例を参照して、画像処理装置Xを用いて実際に描画する場合のページ記述言語を解釈し、レンダリングする例について、更に詳しく説明する。
(ステップS701)
ステップS701においては、画像処理装置Xのプリントデータ受信記憶部201が、USBやLAN等で接続されているホストであるPC等から、ページ記述言語で記載されている印刷データを受信して記憶する。
Such an image is what the original XPS description intended.
(Rendering example of page description language)
Next, referring to the flowchart of FIG. 5, referring to the XPS of FIG. 6, which is an XPS different from the above-described example, and the drawing example of FIG. 7, a page when actually drawing using the image processing apparatus X An example of interpreting and rendering the description language will be described in more detail.
(Step S701)
In step S701, the print data reception storage unit 201 of the image processing apparatus X receives and stores print data described in a page description language from a PC or the like connected via USB or LAN. .

なお、印刷データについては、ページ枚のデータ単位でも、文書全体をまとめて受信してもよい。   Note that the print data may be received as a whole in a unit of page data.

印刷データを受信すると、印刷前の初期化処理として、ディスプレイリスト作成部203は、CVcnt、SRcntを0とし、サブレンダリングバッファが残っていた場合には解放する。   When print data is received, as an initialization process before printing, the display list creation unit 203 sets CVcnt and SRcnt to 0 and releases the sub-rendering buffer if it remains.

また、ディスプレイリスト用の、先頭位置と追加位置のポインタについても初期化する。さらに、レンダリングバッファに0フィル等を行いクリアする等の処理を行う。
(ステップS702)
次に、ステップS702においては、ステップS701で受信してプリントデータ受信記憶部201に記憶したページ記述言語の印刷データを、PDL解析部202が1行づつ解釈する。
It also initializes the pointers for the head position and the additional position for the display list. Furthermore, processing such as clearing by performing 0 fill or the like in the rendering buffer is performed.
(Step S702)
In step S702, the PDL analysis unit 202 interprets the print data in the page description language received in step S701 and stored in the print data reception storage unit 201 line by line.

なお、PDL解析部202は、何行目を解釈しているかについての、行のカウンタを記憶している。
(ステップS703)
次に、ステップS703においては、ステップS702で解釈したデータは<canvas>タグであるかについて、PDL解析部202が判定する。
The PDL analysis unit 202 stores a row counter as to what line is being interpreted.
(Step S703)
Next, in step S703, the PDL analysis unit 202 determines whether the data interpreted in step S702 is a <canvas> tag.

Yesの場合、PDL解析部202は、ステップS704に処理を進める。   In the case of Yes, the PDL analysis unit 202 advances the process to step S704.

Noの場合、PDL解析部202は、ステップS709に処理を進める。
(ステップS704)
ステップS704においては、ステップS703でPDL解析部202が解析したエレメントが、<canvas>タグだった場合、ディスプレイリスト作成部203は<canvas>エレメントの入れ子構造の深さをカウントするカウンタをインクリメントする。
In No, the PDL analysis part 202 advances a process to step S709.
(Step S704)
In step S704, if the element analyzed by the PDL analysis unit 202 in step S703 is a <canvas> tag, the display list creation unit 203 increments a counter that counts the depth of the nested structure of the <canvas> element.

具体的には、以下で述べる「CVcnt」をインクリメントする。
(<canvas>エレメントのカウント例)
ここで、<canvas>エレメントの入れ子構造における深さレベルのカウントについて、図8を参照して、以下で詳細に説明する。
Specifically, “CVcnt” described below is incremented.
(Count example of <canvas> element)
Here, the depth level count in the nested structure of the <canvas> element will be described in detail below with reference to FIG.

このカウントした数については、ディスプレイリスト作成部203が、<canvas>のカウンタ(以下、CVcntと呼ぶ)と、サブレンダリングバッファのカウンタ(以下、SRcnt)をRAM等に記憶する。ここで、CVcntの数は、<canvas>エレメントの深さレベルを示し、SRcntは、実際に取得したサブレンダリングバッファの数を示す。   For this counted number, the display list creation unit 203 stores a <canvas> counter (hereinafter referred to as CVcnt) and a sub-rendering buffer counter (hereinafter referred to as SRcnt) in a RAM or the like. Here, the number of CVcnt indicates the depth level of the <canvas> element, and SRcnt indicates the number of sub-rendering buffers actually acquired.

実際のサブレンダリングバッファの取得については、CVcntとSRcntを用いて、以下のように行う。   The actual acquisition of the sub-rendering buffer is performed as follows using CVcnt and SRcnt.

行601をPDL解析部202が読み込むと、まだ<canvas>タグを読み取っていないのでCVcntとSRcntはデフォルトの値である0である。   When the PDL analysis unit 202 reads the row 601, since the <canvas> tag has not been read yet, CVcnt and SRcnt are 0 which is a default value.

行602をPDL解析部202が読み込むと、<canvas>タグを解釈する。これにより、ディスプレイリスト作成部203は、CVcntをインクリメントする。さらに、SRcntよりCVcntが大きいので、ディスプレイリスト作成部203がサブレンダリングバッファを確保して、SRcntをインクリメントする。   When the PDL analysis unit 202 reads the line 602, the <canvas> tag is interpreted. As a result, the display list creation unit 203 increments CVcnt. Furthermore, since CVcnt is larger than SRcnt, the display list creation unit 203 secures a sub-rendering buffer and increments SRcnt.

行603をPDL解析部202が読み込むと、<canvas>タグを解釈する。これにより、ディスプレイリスト作成部203は、CVcntをインクリメントする。さらに、SRcntよりCVcntが大きいのでサブレンダリングバッファを確保して、SRcntをインクリメントする。   When the PDL analysis unit 202 reads the line 603, the <canvas> tag is interpreted. As a result, the display list creation unit 203 increments CVcnt. Further, since CVcnt is larger than SRcnt, a sub-rendering buffer is secured and SRcnt is incremented.

行604をPDL解析部202が読み込むと、</canvas>を解釈する。これにより、ディスプレイリスト作成部203は、CVcntをデクリメントする。サブレンダリングバッファは解放しない。   When the PDL analysis unit 202 reads the line 604, </ canvas> is interpreted. As a result, the display list creation unit 203 decrements CVcnt. The sub-rendering buffer is not released.

行605をPDL解析部202が読み込むと、<canvas>を解釈する。これにより、ディスプレイリスト作成部203は、CVcntをインクリメントする。ここで、CVcntはSRcntよりも大きくないのでサブレンダリングバッファを新たに確保する必要はない。   When the PDL analysis unit 202 reads the line 605, <canvas> is interpreted. As a result, the display list creation unit 203 increments CVcnt. Here, since CVcnt is not larger than SRcnt, it is not necessary to secure a new sub-rendering buffer.

行606をPDL解析部202が読み込むと、</canvas>を解釈する。これにより、ディスプレイリスト作成部203は、CVcntをデクリメントする。しかし、サブレンダリングバッファは解放しない。   When the PDL analysis unit 202 reads the line 606, </ canvas> is interpreted. As a result, the display list creation unit 203 decrements CVcnt. However, the sub-rendering buffer is not released.

行607をPDL解析部202が読み込むと、</canvas>を解釈する。これにより、ディスプレイリスト作成部203は、CVcntをデクリメントする。しかし、サブレンダリングバッファは解放しない。
(ステップS705)
また図5のフローチャートに戻って説明する。
When the PDL analysis unit 202 reads the row 607, </ canvas> is interpreted. As a result, the display list creation unit 203 decrements CVcnt. However, the sub-rendering buffer is not released.
(Step S705)
Returning to the flowchart of FIG.

ステップS705においては、<canvas>カウンタのカウント数(CVcnt)に対応するレンダリングバッファを描画先として指定するオブジェクトを作成し、ディスプレイリストに追加する。
(ディスプレイリストの作成)
ここで、図9を参照して、本発明の実施の形態に係る画像処理装置Xで用いられるディスプレイリストについて詳しく説明する。
In step S705, an object designating a rendering buffer corresponding to the count number (CVcnt) of the <canvas> counter is created and added to the display list.
(Create display list)
Here, a display list used in the image processing apparatus X according to the embodiment of the present invention will be described in detail with reference to FIG.

ディスプレイリストは、描画プリミティブの種類や描画をどのように進めるのかについて記述する属性情報及び付加情報、描画先を示す情報、描画プリミティブを指定する情報、他のオブジェクトへのポインタをまとめたオブジェクトを、ポインタにより接続したような、リスト(リンクリスト)型のデータ構造を備えるデータである。   The display list is an attribute information and additional information describing the type of drawing primitive and how to proceed with drawing, information indicating the drawing destination, information specifying the drawing primitive, and an object that summarizes pointers to other objects, This is data having a list (link list) type data structure that is connected by a pointer.

このディスプレイリストの各オブジェクトには、以下の構成要素を記憶している。   Each object of the display list stores the following components.

まず、本発明の実施の形態に係る画像処理装置Xにおいては、描画することができる描画プリミティブとして、例えば点、線(直線、ベジェ曲線、スプライン曲線等)、円、だ円、四角形フィル、ポリゴンフィル、フォント、ビットマップデータ等を指定することができる。これらの描画プリミティブの種類を記憶する。   First, in the image processing apparatus X according to the embodiment of the present invention, as drawing primitives that can be drawn, for example, points, lines (straight lines, Bezier curves, spline curves, etc.), circles, ellipses, quadrilateral fills, polygons Fill, font, bitmap data, etc. can be specified. These drawing primitive types are stored.

また、描画プリミティブには、描画の際に半透明や透過マスクの描画、図形同士の論理演算(AND、OR、XOR等)を作成することができるため、この属性情報を記憶することができる。   In addition, since the drawing primitive can create a drawing of a translucent or transparent mask and a logical operation (AND, OR, XOR, etc.) between figures at the time of drawing, this attribute information can be stored.

さらに、点、線、ポリゴン等の色やハイライト、金属の反射係数、シェーディング情報、テクスチャ、シェーディングの方法等に加え、言語、ヘルプテキスト、座標変形の情報等の付加情報も記憶することができる。   Furthermore, in addition to the colors and highlights of points, lines, polygons, etc., metal reflection coefficients, shading information, textures, shading methods, etc., additional information such as language, help text, coordinate transformation information, etc. can also be stored. .

描画先を指定する情報としては、入れ子構造の深さレベルを基に記述する。実際に保持するデータとしては、記憶装置上のアドレス(ポインタ)を記述する。   Information specifying the drawing destination is described based on the depth level of the nested structure. As data actually held, an address (pointer) on the storage device is described.

さらに、次のオブジェクトを示すポインタを記述する。複数のオブジェクトがまとまって描画される際には、このフラグを含めることができる。   Further, a pointer indicating the next object is described. This flag can be included when multiple objects are drawn together.

次に、図10を参照して、図6のXPSの描画を行う場合のディスプレイリストの作成の例を、さらに詳細に説明する。   Next, with reference to FIG. 10, an example of creating a display list in the case where the XPS drawing of FIG. 6 is performed will be described in more detail.

上述の図7のイメージ303のレンダリングをする際は、まず301と302のレンダリングから実行する必要があるので、レンダリングの小単位となるディスプレイリストの作成時も301のディスプレイリストを先に作成する。   When rendering the image 303 in FIG. 7 described above, it is necessary to first execute the rendering from 301 and 302. Therefore, when creating a display list as a small unit of rendering, the display list 301 is created first.

まず、PDL解析部202は、<opacitymask>エレメントを解釈して、透過処理を有効にするディスプレイリストであるディスプレイリスト401を作成する。   First, the PDL analysis unit 202 interprets the <opacitymask> element and creates a display list 401 that is a display list that enables the transparent processing.

次に、PDL解析部202は、<canvas>エレメントの入れ子構造を解釈した上でディスプレイリスト402を作成する。上述のように、図6のXPSでは<canvas>エレメントの入れ子構造が発生しているので、後述する入れ子構造の深さレベルのカウントが上がり、サブレンダリングバッファにレンダリングすることになる。よって、ディスプレイリスト402は、このサブレンダリングバッファを取得し、このバッファアドレスを描画先としてもつことを記憶する。   Next, the PDL analysis unit 202 creates the display list 402 after interpreting the nested structure of the <canvas> element. As described above, since the nested structure of the <canvas> element is generated in the XPS of FIG. 6, the depth level count of the nested structure described later is increased, and rendering is performed in the sub-rendering buffer. Therefore, the display list 402 acquires this sub-rendering buffer and stores that it has this buffer address as a drawing destination.

次に、PDL解析部202は、図6における図形描画(4)と図形描画(5)の各描画プリミティブを示す、ディスプレイリスト403を作成する。   Next, the PDL analysis unit 202 creates a display list 403 indicating the drawing primitives of drawing (4) and drawing (5) in FIG.

最後に、PDL解析部202は、図6における図形描画(6)のディスプレイリストを示すディスプレイリスト404を作成する。このディスプレイリスト404では、<canvas>エレメントの入れ子構造の外側なので、レンダリングバッファを描画先とすることを記憶する。   Finally, the PDL analysis unit 202 creates a display list 404 indicating a display list for drawing (6) in FIG. Since the display list 404 is outside the nested structure of the <canvas> element, it stores that the rendering buffer is the drawing destination.

ディスプレイリスト作成部203は、ディスプレイリストの先頭のオブジェクトを示すポインタを保持している。   The display list creation unit 203 holds a pointer indicating the first object in the display list.

また、終端部分のオブジェクトにおける次のオブジェクトを示すポインタのポインタ(アドレス)を保持している。   In addition, a pointer (address) of a pointer indicating the next object in the terminal part object is held.

このポインタのポインタは、デフォルトではnil(空)となっている。上述のように各オブジェクトがディスプレイリストに追加される場合には、オブジェクトのメモリを確保した後で、このポインタのポインタに、追加するオブジェクトのアドレスを記憶する。
(ステップS706)
また、図5のフローチャートに戻って説明する。
The pointer of this pointer is nil (empty) by default. As described above, when each object is added to the display list, after the memory of the object is secured, the address of the object to be added is stored in the pointer of this pointer.
(Step S706)
Returning to the flowchart of FIG.

ステップS706においては、<canvas>カウンタのカウント数(CVcnt)が、サブレンダリングバッファのカウント数(SRcnt)より多いかについて、ディスプレイリスト作成部203が判断する(<canvas>カウンタの数とサブレンダリングバッファの確保数のカウンタについて比較する)。   In step S706, the display list creation unit 203 determines whether the count number (CVcnt) of the <canvas> counter is larger than the count number (SRcnt) of the sub-rendering buffer (the number of <canvas> counters and the sub-rendering buffer). Compare the number of reserved counters).

Yesの場合、PDL解析部202は、ステップS707に処理を進める。   In the case of Yes, the PDL analysis unit 202 advances the process to step S707.

Noの場合、PDL解析部202は、ステップS709に処理を進める。
(ステップS707)
ステップS707においては、ステップS706で、<canvas>カウンタの数がサブレンダリングバッファの取得数より大きかったときは、ディスプレイリスト作成部203が新たにサブレンダリングバッファを取得する。
In No, the PDL analysis part 202 advances a process to step S709.
(Step S707)
In step S707, when the number of <canvas> counters is larger than the number of sub-rendering buffers acquired in step S706, the display list creation unit 203 acquires a new sub-rendering buffer.

(サブレンダリングバッファの取得)
ここで、本発明の実施の形態に係る画像処理装置Xに係るサブレンダリングバッファの取得について説明する。
(Get sub-rendering buffer)
Here, acquisition of the sub-rendering buffer according to the image processing apparatus X according to the embodiment of the present invention will be described.

画像処理装置Xでは、上述のようにPDL解析部202がPDLを解析する。   In the image processing apparatus X, the PDL analysis unit 202 analyzes the PDL as described above.

その上で、上述のように、レンダリングが階層的に指示されていたときは、ディスプレイリスト作成部203が、<canpus>の入れ子構造のレベルにより、一時的なレンダリング用のバッファであるサブレンダリングバッファをRAM又は補助記憶装置内に取得(確保)する。このサブレンダリングバッファは複数用意することが可能である。   In addition, as described above, when rendering is instructed hierarchically, the display list creation unit 203 uses the sub-rendering buffer that is a temporary rendering buffer depending on the level of the nested structure of <campus>. Is acquired (secured) in the RAM or the auxiliary storage device. A plurality of sub-rendering buffers can be prepared.

以下で、図6の同一レベルの入れ子構造をもつXPSと描画結果の図7を参照して、実際にサブレンダリングバッファを取得する手順について、さらに詳しく説明する。   Hereinafter, the procedure for actually acquiring the sub-rendering buffer will be described in more detail with reference to the XPS having the same level of nesting structure in FIG. 6 and FIG. 7 showing the rendering result.

図6においては、上述のように<canvas>エレメント、すなわち<canvas>〜</canvas>タグの間の命令を解釈してレンダリング画像を生成する。   In FIG. 6, a rendering image is generated by interpreting a <canvas> element, that is, a command between <canvas> to </ canvas> tags as described above.

また、上述のように<opacitymask>エレメント、すなわち<opacitymask>〜</opacitymask>タグの間は透過率である透過マスクデータの定義になる。   In addition, as described above, the <opacitymask> element, that is, between the <opacitymask> to </ opacitymask> tags, defines the transmission mask data that is the transmittance.

図6を参照すると、図形描画(4)のレンダリング結果であるイメージ301を、外側のイメージ303のレンダリングで透過情報として用いる。   Referring to FIG. 6, an image 301 that is a rendering result of the graphic drawing (4) is used as transmission information in the rendering of the outer image 303.

具体的には、図形描画(4)は、図6のイメージ301のように、実際に印刷されるページとは別のイメージとして描画する。すなわち、レンダリングバッファとは別のサブレンダリングバッファに描画する。このとき、このイメージ301の背景は黒色で、50%Grayの矩形を描画している。つまり、透過率1.0を黒色とし、透過率0.0を白色としている。   Specifically, the graphic drawing (4) is drawn as an image different from the actually printed page, like the image 301 in FIG. That is, drawing is performed in a sub-rendering buffer different from the rendering buffer. At this time, the background of the image 301 is black, and a 50% Gray rectangle is drawn. That is, the transmittance 1.0 is black and the transmittance 0.0 is white.

同様に、図形描画(5)のレンダリング結果であるイメージ302は、別のイメージとしてイメージ301と同じサブレンダリングバッファに描画する。ここでも、背景は黒色で、25%Grayの矩形を描画している。なお、書き込むサブレンダリングバッファについては、<canvas>の入れ子構造の深さレベルのカウントを用いて決定する。これについては後述する。   Similarly, the image 302 that is the rendering result of the graphic drawing (5) is drawn in the same sub-rendering buffer as the image 301 as another image. Again, the background is black and a 25% Gray rectangle is drawn. The sub-rendering buffer to be written is determined by using the depth level count of the nested structure of <canvas>. This will be described later.

次に、イメージ301とイメージ302のレンダリング結果のイメージを、透過マスクデータとして、イメージ303のレンダリングで背景色とブレンド処理して描画する。   Next, the rendered images of the images 301 and 302 are rendered as transparency mask data by blending with the background color in rendering of the image 303.

図7を参照すると、イメージ303のレンダリングは、イメージ301とイメージ302のイメージを透過マスクデータとして、青色の矩形イメージとブレンド処理して描画する。   Referring to FIG. 7, rendering of the image 303 is performed by blending with a blue rectangular image using the images 301 and 302 as transmission mask data.

ここで、<canvas>タグから</canvas>タグの間で、子エレメントとして<canvas>エレメントが記述されるデータのとき、サブレンダリングバッファを確保する。   Here, a sub-rendering buffer is secured for data in which a <canvas> element is described as a child element between a <canvas> tag and a </ canvas> tag.

つまり、PDL解析部202が「<canvas>」を解釈して、「</canvas>」を解釈する前に、次の「<canvas>」を入力したときに、ディスプレイリスト作成部203はサブレンダリングバッファを確保する処理を行う。   That is, when the PDL analysis unit 202 interprets “<canvas>” and inputs “<canvas>” before interpreting “</ canvas>”, the display list creation unit 203 performs sub-rendering. Performs processing to secure the buffer.

具体的には、PDL解析部202が子エレメントの<canvas>エレメント内を解釈して、ページ内で描画プリミティブでレンダリングする座標の最小値(左上)と最大値(右下)を割り出す。ディスプレイリスト作成部203は、この座標に対応するデータをC言語でいうcalloc()のようにゼロ・フィルを行ったメモリ領域として、動的にバッファを確保する。ディスプレイリスト作成部203は、このサブレンダリングバッファ用のメモリ領域を、ページの描画終了時に開放する。この解放処理についても後述する。   Specifically, the PDL analysis unit 202 interprets the <canvas> element of the child element, and calculates the minimum value (upper left) and the maximum value (lower right) of the coordinates to be rendered with the drawing primitive in the page. The display list creating unit 203 dynamically secures a buffer as a memory area in which data corresponding to the coordinates is zero-filled like calloc () in C language. The display list creation unit 203 releases the memory area for the sub-rendering buffer when drawing of the page is completed. This release process will also be described later.

なお、処理を高速化するため、上述のように子エレメントでの座標を解釈せずに、レンダリングバッファのビットマップデータと同様の容量のサブレンダリングバッファを予め確保又は取得しておいてもよい。
(バッファの使用方法)
次に、実際のサブレンダリングバッファの確保と使用の方法について、図11のXPSを参照して説明する。
In order to increase the processing speed, a sub-rendering buffer having the same capacity as the bitmap data of the rendering buffer may be secured or acquired in advance without interpreting the coordinates of the child elements as described above.
(How to use the buffer)
Next, a method of securing and using an actual sub-rendering buffer will be described with reference to XPS in FIG.

図11のXPSを基にレンダリングする場合は、サブレンダリングバッファ2つを用意する。これは、<canvas>の深さレベルの情報に応じて、用意するサブレンダリングバッファの数を決めるためである。   When rendering based on the XPS of FIG. 11, two sub-rendering buffers are prepared. This is because the number of sub-rendering buffers to be prepared is determined according to the information on the depth level of <canvas>.

すなわち、PDL解析部202は、行502で<canvas>タグを解釈する。この<canvas>エレメント内部の描画を行うために、ディスプレイリスト作成部203は、サブレンダリングバッファを1つ取得する(これを、サブレンダリングバッファ(3)とする。)。   That is, the PDL analysis unit 202 interprets the <canvas> tag at the line 502. In order to perform drawing inside the <canvas> element, the display list creation unit 203 acquires one sub-rendering buffer (this is assumed to be a sub-rendering buffer (3)).

次に、PDL解析部202は、行503で<canvas>エレメントの内部の<canvas>エレメントを解釈する。これにより、ディスプレイリスト作成部203がサブレンダリングバッファをもう一つ用意する(これを、サブレンダリングバッファ(4)とする。)。   Next, the PDL analysis unit 202 interprets the <canvas> element inside the <canvas> element in line 503. As a result, the display list creation unit 203 prepares another sub-rendering buffer (this sub-rendering buffer (4)).

また、PDL解析部202は、行504でも<canvas>エレメントを解釈する。しかし、これは行503の<canvas>エレメントと同じ入れ子構造の深さレベルなのでサブレンダリングバッファを追加せずに、行503で取得したサブレンダリングバッファと同じサブレンダリングバッファに描画する。   Also, the PDL analysis unit 202 interprets the <canvas> element in the row 504 as well. However, since this is the same depth level of the nested structure as the <canvas> element in the row 503, drawing is performed in the same sub-rendering buffer as the sub-rendering buffer acquired in the row 503 without adding the sub-rendering buffer.

つまり、同じ深さレベルのカウントとなる入れ子(ネスト)構造内の描画は、同じサブバンドバッファに描画するようにする。   In other words, drawing in a nested structure with the same depth level count is drawn in the same subband buffer.

ここで、図11おける<canvas>の入れ子構造内の描画について、さらに詳しく説明する。   Here, drawing in the nested structure of <canvas> in FIG. 11 will be described in more detail.

図11に記載のXPSの場合は、まず、サブレンダリングバッファ(4)に、ネストした<canvas>の図形描画(4)と図形描画(5)のイメージを描画する。   In the case of the XPS described in FIG. 11, first, the images of the nested <canvas> graphic drawing (4) and graphic drawing (5) are drawn in the sub-rendering buffer (4).

次に、サブレンダリングバッファ(3)に、サブレンダリングバッファ(4)の画像情報を使用し、図形描画(6)として透過処理を行ってイメージを描画する。   Next, the image information of the sub-rendering buffer (4) is used for the sub-rendering buffer (3), and a transparency process is performed as a graphic drawing (6) to draw an image.

実際に各行におけるレンダリングの描画先は以下のようになる:
行501 <fixedpage>エレメントで規定される、ページレベルの描画先は、レンダリングバッファ(画像処理装置Xが出力するイメージバッファ、ビットマップデータ)である。
In fact, the rendering destination for each line is as follows:
The page-level rendering destination defined by the row 501 <fixedpage> element is a rendering buffer (image buffer and bitmap data output from the image processing apparatus X).

行502 PDL解析部202において<canvas>を読み取ったとき、ディスプレイリスト作成部203が、新規のサブレンダリングバッファ(3)確保する。   Line 502 When <canvas> is read by the PDL analysis unit 202, the display list creation unit 203 reserves a new sub-rendering buffer (3).

行503 PDL解析部において</canvas>を読み取る前に新たな<canvas>を読み取ったので、サブレンダリングバッファ(4)を追加して確保し、図形を描画する。   Line 503 Since a new <canvas> is read before reading </ canvas> in the PDL analysis unit, a sub-rendering buffer (4) is added and secured, and a figure is drawn.

行504 行502で同じレベルのサブレンダリングバッファ(4)を確保しているのでそれに描画する。
(ステップS708)
ここで、また図5のフローチャートに戻って説明する。
Line 504 Since the sub-rendering buffer (4) of the same level is secured in line 502, drawing is performed on it.
(Step S708)
Here, returning to the flowchart of FIG.

ステップS708においては、ディスプレイリスト作成部203はサブレンダリングバッファのカウント数であるSRcntをインクリメントする。
(ステップS709)
ステップS708においては、ステップS702で解釈したデータは</canvas>タグであるかについて、PDL解析部202が判定する。
In step S708, the display list creation unit 203 increments SRcnt which is the count number of the sub-rendering buffer.
(Step S709)
In step S708, the PDL analysis unit 202 determines whether the data interpreted in step S702 is a </ canvas> tag.

Yesの場合、PDL解析部202は、ステップS710に処理を進める。   In the case of Yes, the PDL analysis unit 202 advances the process to step S710.

Noの場合、PDL解析部202は、ステップS714に処理を進める。
(ステップS710)
ステップS710においては、ステップS709で解釈したデータが</canvas>であるなら、ディスプレイリスト作成部203は<canvas>カウンタ(CVcnt)をデクリメントする。
(ステップS711)
ステップS711においては、デクリメントした<canvas>カウンタ(CVcnt)が0ではないかどうかを、ディスプレイリスト作成部203が判定する。
In No, the PDL analysis part 202 advances a process to step S714.
(Step S710)
In step S710, if the data interpreted in step S709 is </ canvas>, the display list creation unit 203 decrements the <canvas> counter (CVcnt).
(Step S711)
In step S711, the display list creation unit 203 determines whether the decremented <canvas> counter (CVcnt) is not zero.

Yes、すなわちCVcntが0でない場合は、PDL解析部202は、ステップS712に処理を進める。   If Yes, that is, if CVcnt is not 0, the PDL analysis unit 202 advances the process to step S712.

No、すなわちCVcntが0の場合、PDL解析部202は、ステップS713に処理を進める。
(ステップS712)
ステップS712においては、ステップS711でCVcntが0でないなら、ディスプレイリスト作成部203は、描画先をCVcntのカウント数に対応するサブレンダリングバッファに指定したオブジェクトを作成し、ディスプレイリストに追加する。このディスプレイリストには、レンダリングバッファを解放するかどうかの情報を付け加えることもできる。
(ステップS713)
ステップS713においては、ステップS711でCVcntが0のときは、ディスプレイリスト作成部203は、直接印刷するレンダリングバッファを描画先として指定したオブジェクトを作成し、ディスプレイリストに追加する。
(ステップS714)
ステップS714においては、PDL解析部202は、ページ全体のディスプレイリストを作成したかどうか判定する。すなわち、</fixedpage>タグや、</fixeddocument>タグが現れたかどうか、又はステップS701で読み込んだ印刷データが終了したについて解釈する。
If No, that is, if CVcnt is 0, the PDL analysis unit 202 advances the process to step S713.
(Step S712)
In step S712, if CVcnt is not 0 in step S711, the display list creation unit 203 creates an object that designates the rendering destination as a sub-rendering buffer corresponding to the count number of CVcnt and adds it to the display list. Information about whether to release the rendering buffer can be added to the display list.
(Step S713)
In step S713, when CVcnt is 0 in step S711, the display list creation unit 203 creates an object that designates a rendering buffer to be directly printed as a drawing destination, and adds it to the display list.
(Step S714)
In step S714, the PDL analysis unit 202 determines whether a display list for the entire page has been created. That is, it is interpreted whether or not the </ fixedpage> tag or the </ fixeddocument> tag appears, or whether the print data read in step S701 has ended.

Yesの場合、PDL解析部202は、処理をステップS715に進める。   In the case of Yes, the PDL analysis unit 202 advances the process to step S715.

Noの場合、PDL解析部202は、次の行を読み込むように行のカウンタを進めて、処理をステップS702に戻す。
(ステップS715)
ステップS715においては、ディスプレイリストを作成している場合は、ディスプレイリスト作成部203が、ページレンダリング部204にディスプレイリストのポインタを渡たす。
In the case of No, the PDL analysis unit 202 advances the line counter so as to read the next line, and returns the process to step S702.
(Step S715)
In step S <b> 715, when the display list is created, the display list creation unit 203 passes the display list pointer to the page rendering unit 204.

これにより、ページレンダリング部204は、ディスプレイリスト内のオブジェクトにより指示された種類の描画プリミティブを、レンダリングバッファ又はサブレンダリングバッファにレンダリングし、各種の演算処理を行う。
(ステップS716)
レンダリングを終了したら、ディスプレイリスト作成部203は、確保したサブレンダリングバッファを解放する。
As a result, the page rendering unit 204 renders the drawing primitive of the type designated by the object in the display list in the rendering buffer or the sub-rendering buffer, and performs various arithmetic processes.
(Step S716)
When rendering is completed, the display list creation unit 203 releases the secured sub-rendering buffer.

このサブレンダリングバッファの解放処理について、以下で詳細に記述する。
(サブレンダリングバッファの解放処理)
サブレンダリングバッファは、基本的に、レンダリングバッファに1ページのイメージの作成を終了した時点で、ディスプレイリスト作成部203が解放する。
This sub-rendering buffer release process will be described in detail below.
(Sub-rendering buffer release processing)
The display list creating unit 203 basically releases the sub-rendering buffer when the creation of an image of one page in the rendering buffer is finished.

もっとも、実際にはディスプレイリストを参照して、入れ子構造が解消した時点で解放するようにすることが可能である。しかしこの場合は、ページ記述言語の記述にエラーがあった場合でも解放されないバッファが残らないように、各ページのレンダリングが終了した時点で、サブレンダリングバッファを解放するようにすることが望ましい。これにより、メモリを効率的に使うことが可能になる。なお、サブレンダリングバッファを解放した時点で、ディスプレイリストも同時に解放する。   However, it is actually possible to refer to the display list and release it when the nested structure is resolved. However, in this case, it is desirable to release the sub-rendering buffer when rendering of each page is completed so that a buffer that is not released does not remain even if there is an error in the description of the page description language. This makes it possible to use the memory efficiently. When the sub-rendering buffer is released, the display list is also released at the same time.

なお、メモリ不足等で、サブレンダリングバッファを取得(確保)できなかった場合は、描画を直接レンダリングバッファに行うようにすることで、描画の破綻を最小限に抑えることが可能になる。   If the sub-rendering buffer cannot be obtained (reserved) due to a memory shortage or the like, drawing failure can be minimized by performing drawing directly on the rendering buffer.

サブレンダリングバッファの解放を行うと、1ページの描画を終了する。   When the sub-rendering buffer is released, drawing for one page is terminated.

ここで、画像処理装置Xを含むページプリンタの制御装置は実際にレンダリングバッファのビットマップデータを感光体に走査露光して静電により潜像を作成する。その上で、トナーを付着させて紙に転写して印刷を行う。カラー・レーザープリンタの場合は、この手順をCMYKの各カラーごとに行う。   Here, the control device of the page printer including the image processing device X actually scans and exposes the bitmap data of the rendering buffer onto the photosensitive member, and creates a latent image electrostatically. Then, toner is attached and transferred to paper for printing. In the case of a color laser printer, this procedure is performed for each color of CMYK.

この印刷の過程を繰り返して、文書内のすべてのページの印刷が行われる。   By repeating this printing process, all pages in the document are printed.

以上のように構成することで、本発明の実施の形態に係る画像処理装置Xは以下に掲げるような効果を得ることができる。   By configuring as described above, the image processing apparatus X according to the embodiment of the present invention can obtain the following effects.

まず、従来技術1の印刷装置の場合は、カラー・ラスター・オペレーションやアルファブレンドなど描画不正が起こる可能性があるページ記述言語の記述が含まれている場合のレンダリングでは、描画できる部位のみレンダリングを行っていた。この描画不正が起こった際、描画できない部位に関しては、半透明化を行って破綻が少なく見せるようにレンダリングを行っていた。   First, in the case of the printing apparatus of the prior art 1, when rendering includes a description of a page description language such as a color raster operation or alpha blending that may cause rendering fraud, only the portion that can be rendered is rendered. I was going. When this drawing fraud occurred, the parts that could not be drawn were rendered semi-transparently so that they would appear less broken.

この従来技術1の方法では、XMLのように階層的に定義できるページ記述に対してのレンダリングを実現することが難しい。   With the method of the prior art 1, it is difficult to realize rendering for a page description that can be defined hierarchically like XML.

実際に、XML形式で記述しているXPSにおいては、レンダリングイメージを階層的、すなわち入れ子構造により描画するように定義できる。すなわち、XPSで記述されたデータについて、レンダリング結果のサブレンダリングバッファ内のイメージを使って最終的なレンダリング画像を生成する場合が発生するため、問題となっていた。   Actually, in the XPS described in the XML format, a rendering image can be defined to be drawn hierarchically, that is, in a nested structure. That is, there is a problem in that a final rendered image may be generated using data in the sub-rendering buffer as a rendering result for data described in XPS.

このため、XPSによるページ記述をレンダリングする際に、レンダリングの入れ子構造の解決が必要であった。   For this reason, when rendering a page description by XPS, it is necessary to solve a rendering nesting structure.

本発明においては、描画結果のイメージを使用して最終的なレンダリングイメージを生成する場合において、描画対象の指定の入れ子構造に応じてバッファを追加確保することで、問題なく描画することができる。   In the present invention, when a final rendered image is generated using an image of a drawing result, drawing can be performed without any problem by additionally securing a buffer according to a specified nested structure of a drawing target.

これにより、従来技術1の印刷装置で起こるような描画の破綻を避けることが可能となる。   As a result, it is possible to avoid the failure of drawing as occurs in the printing apparatus of the prior art 1.

また、本発明においては、入れ子構造が問題になるエレメント(XPSの場合は<canvas>エレメント)に注目して、サブレンダリングバッファを取得するためのカウンタを用意した(例えば、CVcntとSRcnt)。これにより、容易に入れ子構造のあるデータを描画できるようになり、ソフトウェアによって必要な工数を少なくするという効果が得られる。   In the present invention, a counter for obtaining a sub-rendering buffer is prepared (for example, CVcnt and SRcnt) by paying attention to an element (a <canvas> element in the case of XPS) where the nesting structure is a problem. This makes it possible to easily draw data with a nested structure, and the effect of reducing the number of man-hours required by software can be obtained.

さらに、PDLを解釈するソフトウェアとして実際のプリンタにインストールする際に、レンダリングで支障が生じることがないという効果が得られる。   Further, when installed in an actual printer as software for interpreting PDL, there is an effect that there is no problem in rendering.

加えて、入れ子構造に従ってサブレンダリングバッファを取得するようにしたため、例えば<canvas>が出現するたびにすべてバッファを取得するといった方法に比べて、メモリの消費を必要最小限に抑えることができる。   In addition, since the sub-rendering buffer is acquired according to the nesting structure, for example, the memory consumption can be minimized as compared with a method of acquiring all the buffers every time <canvas> appears.

なお、この上述の実施の形態においては、サブレンダリングバッファの取得について、ページ記述言語を解析する際に行うように記述した。   In the above-described embodiment, the acquisition of the sub-rendering buffer is described to be performed when the page description language is analyzed.

しかし、実際のレンダリング時に取得するように構成することも当然可能である。この場合は、ディスプレイリストの各オブジェクトの描画先を示す情報として、<canvas>カウンタ(CVcnt)の数を記述することもできる。また、サブレンダリングバッファを取得する必要がある場合、これを示すフラグを付加する。この上で、実際のページレンダリング時に、ページレンダリング部204がサブレンダリングバッファの取得を行ってレンダリングする。   However, it is naturally possible to configure such that it is acquired at the time of actual rendering. In this case, the number of <canvas> counter (CVcnt) can be described as information indicating the drawing destination of each object in the display list. When a sub-rendering buffer needs to be acquired, a flag indicating this is added. Then, at the time of actual page rendering, the page rendering unit 204 acquires the sub-rendering buffer and renders it.

なお、この入れ子構造を描画処理する場合に、メモリ容量が十分に確保できる場合、最終的に印刷するレンダリングバッファ(ビットマップデータ)のビット毎に、入れ子構造の深さを記述する深さ(デプス)バッファを用いて、サブレンダリングバッファを用いずに処理することも可能である。   When drawing this nested structure, if sufficient memory capacity can be secured, the depth (depth) describing the depth of the nested structure for each bit of the rendering buffer (bitmap data) to be printed finally. It is also possible to perform processing using a buffer without using a sub-rendering buffer.

この場合、各描画プリミティブを描画する際に、深さバッファが入れ子構造の上か下かを判断してビットマップデータに書き込むかを判断する処理を順次処理を行う。これにより、破綻のない描画を行うことができる。   In this case, when each drawing primitive is drawn, the process of determining whether the depth buffer is above or below the nested structure and writing to the bitmap data is sequentially performed. Thereby, it is possible to perform drawing without failure.

しかし、半透明の描画処理を行う場合、この深さバッファだけでは描画の順序が問題になることがある。   However, when translucent drawing processing is performed, the drawing order may become a problem only with this depth buffer.

この場合は、破綻する箇所に関連するディスプレイリスト内の各描画プリミティブを、<canvas>エレメントの深さによりソート(zソート)した上で再描画することで、描画の破綻を避けることができる。   In this case, a rendering failure can be avoided by redrawing after rendering (z-sorting) each rendering primitive in the display list related to the location where the failure occurs based on the depth of the <canvas> element.

さらに、上述の深さカウントにおいては、入れ子構造をバイナリーツリーのようなツリー形状で表現して、より複雑な構造を描画することも可能である。   Furthermore, in the above-described depth count, a nested structure can be expressed in a tree shape such as a binary tree to draw a more complicated structure.

加えて、本発明の実施の形態においては、レーザープリンタを用いて説明したが、本発明の画像処理装置は他の方式のプリンタにも当然、適用できる。   In addition, in the embodiment of the present invention, a laser printer has been described. However, the image processing apparatus of the present invention can naturally be applied to other types of printers.

なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更して実行することができることは言うまでもない。   Note that the configuration and operation of the above-described embodiment are examples, and it is needless to say that the configuration and operation can be appropriately changed and executed without departing from the gist of the present invention.

本発明の実施の形態に係る画像処理装置Xの制御構成図である。It is a control block diagram of the image processing apparatus X which concerns on embodiment of this invention. 本発明の実施の形態に係るブレンド処理の概要を説明するためのXPSの記述を示す図である。It is a figure which shows the description of XPS for demonstrating the outline | summary of the blend process which concerns on embodiment of this invention. 従来技術1に係るブレンド処理の概要を説明するためのレンダリングの概念図である。It is a conceptual diagram of the rendering for demonstrating the outline | summary of the blend process which concerns on the prior art 1. FIG. 本発明の実施の形態に係るブレンド処理の概要を説明するためのレンダリングの概念図である。It is a conceptual diagram of the rendering for demonstrating the outline | summary of the blend process which concerns on embodiment of this invention. 本発明の実施の形態に係る画像処理装置Xのレンダリングの手順を示すフローチャートである。It is a flowchart which shows the procedure of rendering of the image processing apparatus X which concerns on embodiment of this invention. 本発明の実施の形態に係るサブレンダリングバッファの確保を説明するためのXPSの記述を示す図である。It is a figure which shows the description of XPS for demonstrating reservation of the sub-rendering buffer which concerns on embodiment of this invention. 本発明の実施の形態に係るサブレンダリングバッファの確保を説明するための概念図である。It is a conceptual diagram for demonstrating securing of the sub-rendering buffer which concerns on embodiment of this invention. 本発明の実施の形態に係る入れ子構造の深さレベルのカウントについて説明するための概念図である。It is a conceptual diagram for demonstrating the count of the depth level of the nesting structure which concerns on embodiment of this invention. 本発明の実施の形態に係るディスプレイリストのオブジェクトの構成を示す概念図である。It is a conceptual diagram which shows the structure of the object of the display list which concerns on embodiment of this invention. 本発明の実施の形態に係るディスプレイリストを示す概念図である。It is a conceptual diagram which shows the display list which concerns on embodiment of this invention. 本発明の実施の形態に係るサブレンダリングバッファ取得のタイミングを説明するため概念図である。It is a conceptual diagram for demonstrating the timing of sub-rendering buffer acquisition which concerns on embodiment of this invention.

符号の説明Explanation of symbols

100〜103、110〜113 レンダリングバッファイメージ
201 プリントデータ受信記憶部
202 PDL解析部
203 ディスプレイリスト作成部
204 ページレンダリング部
301〜303 イメージ
401〜404 ディスプレイリスト
X 画像処理装置
100 to 103, 110 to 113 Rendering buffer image 201 Print data reception storage unit 202 PDL analysis unit 203 Display list creation unit 204 Page rendering units 301 to 303 Images 401 to 404 Display list X Image processing apparatus

Claims (3)

ページ記述言語の記載を基に画像処理をする画像処理装置であって、
前記ページ記述言語で記載されたデータを記憶する記憶手段と、
前記記憶手段に記憶したページ記述言語の入れ子構造に関する記載を解析するページ記述言語解析手段と、
前記ページ記述言語解析手段により解析した前記入れ子構造を基に、描画する図形の種類と入れ子構造の深さレベルの情報を含むリストであるディスプレイリストを作成するディスプレイリスト作成手段と、
前記ディスプレイリストに従って、前記入れ子構造の深さレベル毎にサブレンダリングバッファを取得して該サブレンダリングバッファにレンダリングを行い、該サブレンダリングバッファの内容を用いて各ページのレンダリングを行うページレンダリング手段と
を備えることを特徴とする画像処理装置。
An image processing apparatus that performs image processing based on a description of a page description language,
Storage means for storing data described in the page description language;
Page description language analyzing means for analyzing a description related to a nested structure of the page description language stored in the storage means;
Based on the nested structure analyzed by the page description language analyzing means, a display list creating means for creating a display list which is a list including information on the type of figure to be drawn and the depth level of the nested structure;
Page rendering means for acquiring a sub-rendering buffer for each depth level of the nested structure in accordance with the display list, rendering the sub-rendering buffer, and rendering each page using the contents of the sub-rendering buffer; An image processing apparatus comprising:
前記ページ記述言語は、XPSを含むXMLを基にしたページ記述言語であることを特徴とする請求項1に記載の画像処理装置。   The image processing apparatus according to claim 1, wherein the page description language is a page description language based on XML including XPS. 請求項1又は2に記載の画像処理装置と、
通信装置とを備えることを特徴とする画像形成システム。
The image processing apparatus according to claim 1 or 2,
An image forming system comprising: a communication device.
JP2007238102A 2007-09-13 2007-09-13 Image processing apparatus and image forming system Expired - Fee Related JP5424546B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007238102A JP5424546B2 (en) 2007-09-13 2007-09-13 Image processing apparatus and image forming system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007238102A JP5424546B2 (en) 2007-09-13 2007-09-13 Image processing apparatus and image forming system

Publications (2)

Publication Number Publication Date
JP2009066926A true JP2009066926A (en) 2009-04-02
JP5424546B2 JP5424546B2 (en) 2014-02-26

Family

ID=40603703

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007238102A Expired - Fee Related JP5424546B2 (en) 2007-09-13 2007-09-13 Image processing apparatus and image forming system

Country Status (1)

Country Link
JP (1) JP5424546B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033545A (en) * 2008-06-12 2010-02-12 Konica Minolta Systems Lab Inc System and method for multi-mode color blending
JP2015036951A (en) * 2013-08-16 2015-02-23 株式会社沖データ Image forming system and information processing device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000298570A (en) * 1999-03-04 2000-10-24 Canon Inc Information processor
JP2002196904A (en) * 2000-11-09 2002-07-12 Texas Instruments Inc Method for converting page description data specifying document-to-be-printed into pixel data
JP2005238713A (en) * 2004-02-27 2005-09-08 Canon Inc Printing system and printing management method
JP2005284384A (en) * 2004-03-26 2005-10-13 Canon Inc Image processor, image processing control method and program
JP2006155611A (en) * 2004-11-18 2006-06-15 Microsoft Corp Multilevel device function hierarchy
JP2007509426A (en) * 2003-10-23 2007-04-12 マイクロソフト コーポレーション Media integration layer

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000298570A (en) * 1999-03-04 2000-10-24 Canon Inc Information processor
JP2002196904A (en) * 2000-11-09 2002-07-12 Texas Instruments Inc Method for converting page description data specifying document-to-be-printed into pixel data
JP2007509426A (en) * 2003-10-23 2007-04-12 マイクロソフト コーポレーション Media integration layer
JP2005238713A (en) * 2004-02-27 2005-09-08 Canon Inc Printing system and printing management method
JP2005284384A (en) * 2004-03-26 2005-10-13 Canon Inc Image processor, image processing control method and program
JP2006155611A (en) * 2004-11-18 2006-06-15 Microsoft Corp Multilevel device function hierarchy

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033545A (en) * 2008-06-12 2010-02-12 Konica Minolta Systems Lab Inc System and method for multi-mode color blending
JP2015036951A (en) * 2013-08-16 2015-02-23 株式会社沖データ Image forming system and information processing device
US9367780B2 (en) 2013-08-16 2016-06-14 Oki Data Corporation Image forming system and information processor that perform printing based on delegation to users who did not execute printing

Also Published As

Publication number Publication date
JP5424546B2 (en) 2014-02-26

Similar Documents

Publication Publication Date Title
JP5531531B2 (en) Image processing system and image processing program
EP0933723A1 (en) Printing apparatus
US9519443B2 (en) Print data flattening processing of spot color components with any hidden spot color portion removed
JP6385406B2 (en) Image processing apparatus, image processing method, and program
JP2009140295A (en) Rendering apparatus, printer, rendering method, and program
JP2817687B2 (en) Image forming device
JP4461361B2 (en) Drawing processing method and program, drawing command output device and image forming apparatus
JP5732935B2 (en) Information processing apparatus, print control program, and computer-readable recording medium
JP5644214B2 (en) Print control program, information processing apparatus, storage medium, printing apparatus, printing system
JP5424546B2 (en) Image processing apparatus and image forming system
JP6202908B2 (en) Image processing apparatus, image processing method, and program
JP2001293936A (en) Image information processor and method of processing image information
JP6755644B2 (en) Character processing device, character processing method, character processing program
JP6904717B2 (en) Image processing equipment, its control method, and programs
JP6492895B2 (en) Print data processing apparatus and program
JP2011053263A (en) Image processing device, image processing method, image output system, program and recording medium
JP4325339B2 (en) Printing system, host computer and printer driver
JP2006012059A (en) Information processor, information processing method, program and storage medium
US20140368888A1 (en) Image forming apparatus, image processing method, and medium
JP2006178607A (en) Information processor and information processing method
JP2016200999A (en) Printing instruction device, printing system, and program
JP2006218819A (en) Image formation apparatus, image processing apparatus, program, and image processing method
JP2019192087A (en) Information processing device, program, and information processing method
JP3826091B2 (en) Information processing apparatus, information processing method, printing apparatus, and printing method
JP2019197327A (en) Image processing apparatus, image processing method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130516

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131009

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131126

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5424546

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

LAPS Cancellation because of no payment of annual fees