JP4480160B2 - Printing apparatus, printing apparatus control method, printing apparatus control program, storage medium, and Web server - Google Patents

Printing apparatus, printing apparatus control method, printing apparatus control program, storage medium, and Web server Download PDF

Info

Publication number
JP4480160B2
JP4480160B2 JP2005168569A JP2005168569A JP4480160B2 JP 4480160 B2 JP4480160 B2 JP 4480160B2 JP 2005168569 A JP2005168569 A JP 2005168569A JP 2005168569 A JP2005168569 A JP 2005168569A JP 4480160 B2 JP4480160 B2 JP 4480160B2
Authority
JP
Japan
Prior art keywords
rendering
color
selection
value
variable
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.)
Expired - Fee Related
Application number
JP2005168569A
Other languages
Japanese (ja)
Other versions
JP2006345197A (en
Inventor
裕 妙木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2005168569A priority Critical patent/JP4480160B2/en
Priority to EP06252837A priority patent/EP1732308A2/en
Priority to US11/422,684 priority patent/US8355164B2/en
Priority to CNB2006100912648A priority patent/CN100405815C/en
Priority to KR1020060051364A priority patent/KR100844972B1/en
Publication of JP2006345197A publication Critical patent/JP2006345197A/en
Application granted granted Critical
Publication of JP4480160B2 publication Critical patent/JP4480160B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、印刷装置におけるレンダリングとカラーマッチングの技術に関し、特にPDL文書等の各レンダリング命令のレンダリングとカラーマッチングの技術に関する。   The present invention relates to a rendering and color matching technique in a printing apparatus, and more particularly to a rendering and color matching technique for each rendering command of a PDL document or the like.

従来、PDL(Page Description Language;ページ記述言語)文書の各レンダリング命令に指定された色をモニタやプリンタに出力する際には、出力先デバイスのプロファイルを使用して、そのデバイスの色域(gamut)に圧縮・変換してから出力することが行なわれている。この方法については、例えば特許文献1に記載がある。   Conventionally, when a color specified in each rendering command of a page description language (PDL) document is output to a monitor or printer, the device gamut (gamut) is used by using the profile of the output destination device. ) Are compressed and converted before being output. This method is described in Patent Document 1, for example.

また、特許文献2では、異なる属性(色空間など)を持つオブジェクトに対し、それぞれに最適な画像データ構造に変換し、適用するカラーマッチング処理をリアルタイムで切り替え可能にする方法についての記載がある。   Further, Patent Document 2 describes a method for converting an object having different attributes (such as a color space) into an optimal image data structure and switching color matching processing to be applied in real time.

特開平7−107312号公報Japanese Patent Laid-Open No. 7-107312 特開平8−235346号公報JP-A-8-235346

PDL文書の色指定に不透明度(アルファ値)が含まれる場合は、それらの色がお互いに重なる場合にアルファブレンド処理が必要になる。この際、アルファブレンド処理の前にデバイスの色域に圧縮するか、デバイスの色域に圧縮してからアルファブレンド処理を行なうかによって、レンダリング結果が異なる。しかしながら、圧縮をどのタイミングで行なう方がよいかは一意に決定できず、指定された色とアルファ値、出力デバイス、色圧縮時に使用するプロファイルおよびレンダリングインテント等の影響を受ける。   When opacity (alpha value) is included in the color specification of the PDL document, alpha blend processing is required when those colors overlap each other. At this time, the rendering result varies depending on whether the device is compressed into the device color gamut before the alpha blend processing or the device is compressed into the device color gamut and then the alpha blend processing is performed. However, the timing at which compression should be performed cannot be uniquely determined, and is affected by the designated color and alpha value, output device, profile used during color compression, rendering intent, and the like.

本発明は以上の事情に鑑みてなされたものであり、PDL文書等のレンダリング命令をレンダリングする際にアルファブレンドレンダリングが必要な場合に、より適切にカラーマッチングを行なえるようにすることを課題とする。
さらに、上記カラーマッチングを効率よく行なえるようにすることを課題とする。
The present invention has been made in view of the above circumstances, and it is an object of the present invention to perform color matching more appropriately when alpha blend rendering is required when rendering instructions such as PDL documents are rendered. To do.
It is another object of the present invention to enable the color matching to be performed efficiently.

上記課題を解決するために、本発明に係る印刷装置は、記述言語文書をレンダリングするレンダリング手段と、前記記述言語文書で指定された色情報を、前記記述言語文書を印刷する印刷デバイス用の色情報に圧縮することで変換するカラーマッチング手段と、前記記述言語文書でアルファブレンドレンダリングが必要な場合、前記カラーマッチング手段による前記変換を前記レンダリング前に行なうか前記レンダリング後に行なうかを判断し、該判断結果によりいずれかを選択する選択手段と、を備えることを特徴とする。 In order to solve the above-described problems, a printing apparatus according to the present invention includes a rendering unit that renders a description language document, color information specified in the description language document, and a color for a printing device that prints the description language document. A color matching means for converting by compressing into information, and if alpha blend rendering is required in the description language document, it is determined whether the conversion by the color matching means is performed before or after the rendering, Selecting means for selecting one according to the determination result.

また、上記印刷装置において、前記選択手段による選択は、前記カラーマッチング手段による前記変換を、前記レンダリング前に行なった場合と前記レンダリング後に行なった場合の結果を検証し、前記選択をすることを特徴とする。   In the printing apparatus, the selection by the selection unit is performed by verifying a result when the conversion by the color matching unit is performed before the rendering and after the rendering, and the selection is performed. And

また、上記印刷装置は、前記選択手段における選択に使用した条件と選択結果とを保持しておく保持手段と、次回以降のアルファブレンドレンダリングの際、前記保持手段で保持した情報を利用する利用手段と、をさらに備えることを特徴とする。   In addition, the printing apparatus includes a holding unit that holds conditions used in the selection by the selection unit and a selection result, and a utilization unit that uses the information held by the holding unit in the next and subsequent alpha blend renderings. And further comprising.

また、本発明は、印刷装置の制御方法であって、記述言語文書をレンダリングするレンダリングステップと、前記記述言語文書で指定された色情報を、前記記述言語文書を印刷する印刷デバイス用の色情報に圧縮することで変換するカラーマッチングステップと、前記記述言語文書でアルファブレンドレンダリングが必要な場合、前記カラーマッチングステップによる前記変換を前記レンダリング前に行なうか前記レンダリング後に行なうかを判断し、該判断結果によりいずれかを選択する選択ステップと、を備えることを特徴とする。 The present invention also relates to a method for controlling a printing apparatus, wherein a rendering step for rendering a description language document, color information specified in the description language document, and color information for a printing device for printing the description language document are provided. A color matching step for converting by compressing the image, and when alpha blend rendering is required in the description language document, it is determined whether the conversion by the color matching step is performed before the rendering or after the rendering, and the determination And a selection step of selecting one according to the result.

また、上記印刷装置において、前記選択ステップによる選択は、前記カラーマッチングステップによる前記変換を、前記レンダリング前に行なった場合と前記レンダリング後に行なった場合の結果を検証し、前記選択をすることを特徴とする。   In the printing apparatus, the selection in the selection step is performed by verifying a result obtained when the conversion in the color matching step is performed before the rendering and after the rendering. And

また、上記印刷装置の制御方法は、前記選択手段における選択に使用した条件と選択結果を保持しておく保持ステップと、次回以降のアルファブレンドレンダリングの際、前記保持手段で保持した情報を利用する利用ステップと、をさらに備えることを特徴とする。   Further, the control method of the printing apparatus uses the holding step for holding the conditions and selection results used for the selection by the selection means, and the information held by the holding means at the next and subsequent alpha blend renderings. And a use step.

また、本発明は、印刷装置の制御プログラムであって、記述言語文書をレンダリングするレンダリングステップと、前記記述言語文書で指定された色情報を、前記記述言語文書を印刷する印刷デバイス用の色情報に圧縮することで変換するカラーマッチングステップと、前記記述言語文書でアルファブレンドレンダリングが必要な場合、前記カラーマッチングステップによる前記変換を前記レンダリング前に行なうか前記レンダリング後に行なうかを判断し、該判断結果によりいずれかを選択する選択ステップと、を備えることを特徴とする。
Further, the present invention is a control program for a printing apparatus, wherein a rendering step for rendering a description language document, color information specified in the description language document, color information for a printing device for printing the description language document A color matching step for converting by compressing the image, and when alpha blend rendering is required in the description language document, it is determined whether the conversion by the color matching step is performed before the rendering or after the rendering, and the determination And a selection step of selecting one according to the result.

また、上記印刷装置の制御プログラムは、前記選択ステップによる選択は、前記カラーマッチングステップによる前記変換を、前記レンダリング前に行なった場合と前記レンダリング後に行なった場合の結果を検証し、前記選択をすることを特徴とする。   Further, the control program of the printing apparatus verifies the result when the selection in the selection step is performed by performing the conversion in the color matching step before and after the rendering, and makes the selection. It is characterized by that.

また、上記印刷装置の制御プログラムは、前記選択ステップにおける選択に使用した条件と選択結果を保持しておく保持ステップと、次回以降のアルファブレンドレンダリングの際、前記保持手段で保持した情報を利用する利用ステップと、をさらに備えることを特徴とする。   Further, the control program of the printing apparatus uses the holding step for holding the conditions used in the selection in the selection step and the selection result, and the information held by the holding unit at the next and subsequent alpha blend renderings. And a use step.

また、上記印刷装置の制御プログラムは、コンピュータ読み取り可能な記憶媒体、Webサーバに格納することができる。   The control program for the printing apparatus can be stored in a computer-readable storage medium or a Web server.

本発明によれば、記述言語文書でアルファブレンドレンダリングが必要な場合に、より適切にカラーマッチングを行なえる。
さらに、二回目以降の選択では保持しておいた情報を利用することができるので効率がよい。
According to the present invention, color matching can be performed more appropriately when alpha blend rendering is required in a description language document.
Furthermore, since the stored information can be used in the second and subsequent selections, it is efficient.

以下、本発明における一実施形態について図面を参照して詳細に説明する。
[本実施形態の概要]
本実施形態では、PDLとしてSVG 1.1を使用する。SVG 1.1の仕様はSVG 1.1 Specification(http://www.w3.org/TR/SVG11/)に示されている。ユーザPC(クライアント)において、 SVG(Scaleable Vector Graphic)文書ファイルをインタプリタが中間コードデータに変換する。続いて、レンダラーが中間コードデータをビットマップデータに変換するが、この際、レンダリング前カラーマッチングとレンダリング後カラーマッチングの精度を測定し、精度の高いほうを選択する。この選択結果は保存しておいて、本レンダリングセッションに限らず以降のレンダリングで使用できるようにする。プリンタはビットマップデータを使用して出力を行ない、印刷結果を得る。
Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.
[Overview of this embodiment]
In this embodiment, SVG 1.1 is used as PDL. The specification of SVG 1.1 is shown in SVG 1.1 Specification (http://www.w3.org/TR/SVG11/). In the user PC (client), an interpreter converts an SVG (Scalable Vector Graphic) document file into intermediate code data. Subsequently, the renderer converts the intermediate code data into bitmap data. At this time, the accuracy of color matching before rendering and color matching after rendering is measured, and the higher accuracy is selected. This selection result is saved so that it can be used not only in this rendering session but also in subsequent renderings. The printer performs output using the bitmap data and obtains a print result.

[全体構成]
まず、図1を参照して本実施形態の全体構成を説明する。
[overall structure]
First, the overall configuration of the present embodiment will be described with reference to FIG.

101はユーザが操作を行なうクライアントPCであり、ネットワークインタフェースを経由してネットワーク103に接続されている。102はネットワーク経由で印刷指示を受け付けるプリンタであり、同じくネットワークインタフェースを経由してネットワーク103に接続されている。PC101はネットワーク103を通じてプリンタ102に印刷指示を送信することが可能である。   A client PC 101 is operated by a user, and is connected to the network 103 via a network interface. A printer 102 accepts a print instruction via a network, and is connected to the network 103 via a network interface. The PC 101 can transmit a print instruction to the printer 102 via the network 103.

[コンピュータ装置およびプリンタの構成]
次に、図2と図3を参照して、本実施形態で使用するコンピュータ装置およびプリンタの構成について説明する。
[Configuration of computer device and printer]
Next, with reference to FIG. 2 and FIG. 3, the configuration of the computer device and the printer used in this embodiment will be described.

図2は、クライアント101の構成の一例を示すブロック図である。201はRAM202に格納されている制御プログラムに従って本装置全体の制御を行なうCPUである。202はCPU201が実行する本装置の制御プログラムや、文書画像等のデータを格納するRAM等の内部記憶部である。203はCPU201の制御の下にネットワークとの接続を行なってデータ等を送受信するネットワークインタフェースである。204はデータを保存する磁気ディスク等の外部記憶装置である。205はディスプレイ、206はキーボード、207はマウス等のポインティングデバイスである。RAM202に格納されているプログラムは、同じくRAM202に格納されているOS(Operating System)の機能を必要に応じて使用し、RAM202に一時記憶するデータの内容を読み書きしたり、外部記憶装置 204上でデータを読み書きしたり、ネットワークインタフェースを通じてデータの送受信を行なったり、キーボード206やポインティングデバイス207からの入力を受け取ったり、ディスプレイ205に表示を行なったりすることで、所定の動作を行なう。   FIG. 2 is a block diagram illustrating an example of the configuration of the client 101. A CPU 201 controls the entire apparatus according to a control program stored in the RAM 202. Reference numeral 202 denotes an internal storage unit such as a RAM that stores control programs of the apparatus executed by the CPU 201 and data such as document images. Reference numeral 203 denotes a network interface that transmits and receives data and the like by connecting to a network under the control of the CPU 201. Reference numeral 204 denotes an external storage device such as a magnetic disk for storing data. Reference numeral 205 denotes a display, 206 denotes a keyboard, and 207 denotes a pointing device such as a mouse. The program stored in the RAM 202 uses the function of an OS (Operating System) also stored in the RAM 202 as necessary, reads / writes the contents of data temporarily stored in the RAM 202, and stores the data on the external storage device 204. A predetermined operation is performed by reading and writing data, transmitting and receiving data through a network interface, receiving input from the keyboard 206 and the pointing device 207, and displaying on the display 205.

図3は、プリンタ102の構成の一例を示すブロック図である。208、209、210、211は図2の201、202、203、204に示したのと同じくそれぞれCPU、RAM、ネットワークインタフェース、外部記憶装置である。212は印刷を行なうプリンタエンジンである。RAM209に格納されているプログラムは、ネットワークインタフェース210を通じて受信した印刷指示にしたがって、プリンタエンジン212を制御して印刷を行なう。その際、RAM209に一時記憶するデータの内容を読み書きしたり、外部記憶装置211上でデータを読み書きしたりすることができる。   FIG. 3 is a block diagram illustrating an example of the configuration of the printer 102. Reference numerals 208, 209, 210, and 211 denote a CPU, a RAM, a network interface, and an external storage device as shown by 201, 202, 203, and 204 in FIG. A printer engine 212 performs printing. A program stored in the RAM 209 performs printing by controlling the printer engine 212 in accordance with a print instruction received through the network interface 210. At that time, the contents of data temporarily stored in the RAM 209 can be read and written, and data can be read and written on the external storage device 211.

[全体のブロック図]
次に、図4を参照して、本実施形態で使用するコンピュータ装置内のブロック構成について説明する。
[Overall block diagram]
Next, with reference to FIG. 4, a block configuration in the computer apparatus used in the present embodiment will be described.

図4は、物理的に図1のような構成を取るクライアント101、プリンタ102、ネットワーク103において、本実施形態の動作に主として関わる論理ブロック、すなわちプログラムモジュール、ファイルエンティティ、メモリデータ、および通信経路の構成を示すブロック図である。   FIG. 4 shows logical blocks mainly related to the operation of this embodiment in the client 101, printer 102, and network 103 that physically have the configuration shown in FIG. 1, that is, program modules, file entities, memory data, and communication paths. It is a block diagram which shows a structure.

301はクライアント101のブロック境界を表わし、ここではOSの制御下にある環境を指す。インタプリタ309、レンダラー310、CMM(Color Management Module)311は、通常は外部記憶装置204に保存されているが、ユーザ、OS、あるいは別のプログラムから実行が指示されると、OSの制御によりRAM202に読み込まれ、実行可能な状態となる。302は外部記憶装置204に保存されているSVG文書ファイルであり、インタプリタ309を含むプログラムはOSの機能を利用してSVG文書ファイル302の内容を読み書きすることが可能である。   Reference numeral 301 denotes a block boundary of the client 101, and here indicates an environment under the control of the OS. The interpreter 309, the renderer 310, and the CMM (Color Management Module) 311 are normally stored in the external storage device 204. However, when the execution is instructed by the user, the OS, or another program, the RAM 202 is controlled by the OS. It will be read and ready to run. Reference numeral 302 denotes an SVG document file stored in the external storage device 204. A program including the interpreter 309 can read and write the contents of the SVG document file 302 by using the function of the OS.

303はRAM202に格納される中間コードデータであり、インタプリタ309、レンダラー310を含むプログラムは同じくOSの機能を利用して中間コードデータ303の内容を読み書きすることが可能である。304はRAM202に格納されるビットマップデータであり、レンダラー310を含むプログラムは同じくOSの機能を利用してビットマップデータ304の内容を読み書きすることが可能である。   Reference numeral 303 denotes intermediate code data stored in the RAM 202, and a program including the interpreter 309 and the renderer 310 can similarly read and write the contents of the intermediate code data 303 using the functions of the OS. Reference numeral 304 denotes bitmap data stored in the RAM 202, and a program including the renderer 310 can read and write the contents of the bitmap data 304 by using the function of the OS.

インタプリタ309はSVG文書ファイル302から中間コードデータ303への変換を行なうが、この変換動作は両言語の仕様から機械的に決定できるものである。したがって、本実施形態ではインタプリタ309の動作について詳述はせず、変換内容の提示のみ行なう。レンダラーは中間コードデータ303からビットマップデータ304を作成し、ネットワーク103を経由してプリンタ313のコントローラ314に送信する。この際、カラーマッチングのためにCMM311の機能を利用する。   The interpreter 309 performs conversion from the SVG document file 302 to the intermediate code data 303. This conversion operation can be mechanically determined from the specifications of both languages. Therefore, in this embodiment, the operation of the interpreter 309 is not described in detail, and only the conversion content is presented. The renderer creates bitmap data 304 from the intermediate code data 303 and transmits it to the controller 314 of the printer 313 via the network 103. At this time, the function of the CMM 311 is used for color matching.

CMM311は必要なカラーマッチングを行なうため、SVG文書ファイル302および中間コードデータ303の入力カラースペースを表わす入力プロファイル305、レンダラー310のレンダリングカラースペースを表わすレンダリングプロファイル306、プリンタ313のデバイスカラースペースを表わすプリンタプロファイル307、カラーマッチング時のマッチング方法を指定するレンダリングインテント308を入力として使用する。   In order to perform necessary color matching, the CMM 311 performs an input profile 305 representing the input color space of the SVG document file 302 and intermediate code data 303, a rendering profile 306 representing the rendering color space of the renderer 310, and a printer representing the device color space of the printer 313. A profile 307 and a rendering intent 308 that specifies a matching method at the time of color matching are used as inputs.

CMMは通常OSの一部あるいはOSによって利用可能なライブラリとして提供され、プログラムからはその機能を利用するのみであるので、本実施形態ではCMM311の動作について詳述はせず、その機能と利用例のみ示す。312は外部記憶装置204上にデータベースプログラム(図示しない)が構成した検証結果DBである。レンダラー310を含むプログラムはデータベースドライバ(図示しない)の機能を利用して、検証結果DB312の内容を読み書き可能である。   Since the CMM is usually provided as a part of the OS or a library that can be used by the OS and only uses its function from the program, the operation of the CMM 311 is not described in detail in this embodiment, and its function and usage example. Only shown. Reference numeral 312 denotes a verification result DB configured by a database program (not shown) on the external storage device 204. The program including the renderer 310 can read and write the contents of the verification result DB 312 using the function of a database driver (not shown).

313はプリンタ102のブロック境界を表わす。コントローラ314はRAM209に格納され、常に実行可能な状態にあるプログラムである。コントローラ314はネットワークインタフェース210を通じてレンダラー310からビットマップデータ304を受信すると、RAM209にビットマップデータ315として格納し、その情報にしたがってプリンタエンジン212を制御して印刷を行なう。   Reference numeral 313 denotes a block boundary of the printer 102. The controller 314 is a program that is stored in the RAM 209 and is always executable. When the controller 314 receives the bitmap data 304 from the renderer 310 through the network interface 210, the controller 314 stores the bitmap data 304 in the RAM 209 as bitmap data 315, and controls the printer engine 212 according to the information to perform printing.

[SVG文書ファイル]
次に、図5〜図6を参照して、本実施形態で使用するSVG文書ファイルについて説明する。
図5は、本実施形態で使用するSVG文書ファイル302の内容を示す図である。
[SVG document file]
Next, the SVG document file used in this embodiment will be described with reference to FIGS.
FIG. 5 is a diagram showing the contents of the SVG document file 302 used in this embodiment.

1行目はXML宣言(XML Declaration)であり、本SVG文書ファイルがXML 1.0仕様にしたがって記述されていることを示す。
2〜3行目は文書型宣言(Document Type Declaration)であり、外部サブセットとしてSVG 1.1の文書型定義(Document Type Definition;DTD)を参照している。
The first line is an XML declaration, which indicates that this SVG document file is described according to the XML 1.0 specification.
The second and third lines are document type declarations (Document Type Definitions), which refer to the SVG 1.1 document type definition (Document Type Definition; DTD) as an external subset.

4〜5行目はルート要素としての <svg> 要素の開始タグである。<svg> 要素の幅・高さとしてそれぞれ21.0cmと29.7cm(A4サイズ)、ユーザ座標系として(0、0)−(210、297)を指定しているほか、SVG名前空間と、準拠するSVGのバージョン番号を指定している。   The 4th to 5th lines are start tags of <svg> elements as root elements. <Svg> The element width and height are 21.0 cm and 29.7 cm (A4 size), respectively, (0, 0)-(210, 297) is specified as the user coordinate system, the SVG namespace, A compliant SVG version number is specified.

6行目は <desc> 要素であり、本SVG文書ファイルについての説明を記述する。<desc> 要素の内容はSVG文書のレンダリングには使用されない。
7、10、13行目はコメント要素である。コメント要素の内容もSVG文書のレンダリングには使用されない。
The sixth line is a <desc> element, which describes the description of this SVG document file. The content of the <desc> element is not used to render the SVG document.
The seventh, tenth and thirteenth lines are comment elements. The content of the comment element is also not used for rendering the SVG document.

8〜9行目は一つ目の円をレンダリングするための<circle>要素である。中心座標の値はユーザ座標系において(80、80)を指定し、半径の値はユーザ座標系において50を指定している。円内部の塗りつぶしの色は“yellow”(黄色)で不透明度(アルファ値)が0.7、円の外形線の色は“blue”(青色)、外形線の幅はユーザ座標系において2と指定している。   The eighth to ninth lines are <circle> elements for rendering the first circle. The value of the center coordinate specifies (80, 80) in the user coordinate system, and the value of the radius specifies 50 in the user coordinate system. The fill color inside the circle is “yellow” (yellow), the opacity (alpha value) is 0.7, the circle outline color is “blue” (blue), and the outline width is 2 in the user coordinate system. It is specified.

11〜12行目は二つ目の円をレンダリングするための<circle>要素である。中心座標の値はユーザ座標系において(140、80)を指定し、半径の値はユーザ座標系において50を指定している。円内部の塗りつぶしの色は“red”(赤色)で不透明度(アルファ値)が0.5、円の外形線の色は“blue”(青色)、外形線の幅はユーザ座標系において2と指定している。   The 11th to 12th lines are <circle> elements for rendering the second circle. The center coordinate value specifies (140, 80) in the user coordinate system, and the radius value specifies 50 in the user coordinate system. The fill color inside the circle is “red” (red), the opacity (alpha value) is 0.5, the circle outline color is “blue” (blue), and the outline width is 2 in the user coordinate system. It is specified.

14〜15行目は三つ目の円をレンダリングするための<circle>要素である。中心座標の値はユーザ座標系において(110、130)を指定し、半径の値はユーザ座標系において50を指定している。円内部の塗りつぶしの色は“green”(緑色)で不透明度(アルファ値)が0.3、円の外形線の色は“blue”(青色)、外形線の幅はユーザ座標系において2と指定している。
16行目はルート要素としての<svg>要素の終了タグであり、4〜5行目の開始タグに対応するものである。
The 14th to 15th lines are <circle> elements for rendering the third circle. The center coordinate value specifies (110, 130) in the user coordinate system, and the radius value specifies 50 in the user coordinate system. The fill color inside the circle is “green”, the opacity (alpha value) is 0.3, the circle outline color is “blue” (blue), and the outline width is 2 in the user coordinate system. It is specified.
The 16th line is the end tag of the <svg> element as the root element, and corresponds to the start tag of the 4th to 5th lines.

図5に示したSVG文書ファイルをレンダリングした例を図6に示す。501が8〜9行目の<circle> 要に対応する一つ目の円、502が11〜12行目の<circle>要素に対応する二つ目の円、503が14〜15行目の<circle>要素に対応する三つ目の円である。504はSVG文書全体の外接矩形を示している。外接矩形504のサイズは幅21.0cm、高さ29.7cmである。縦横の破線、破線交点の円、破線交点付近の座標値表示は、ポイントとなる座標の座標値を図示するためのものであり、実際のレンダリングには含まれない。   An example of rendering the SVG document file shown in FIG. 5 is shown in FIG. 501 is the first circle corresponding to the <circle> of the 8th to 9th lines, 502 is the second circle corresponding to the <circle> element of the 11th to 12th lines, and 503 is the 14th to 15th lines. A third circle corresponding to the <circle> element. Reference numeral 504 denotes a circumscribed rectangle of the entire SVG document. The size of the circumscribed rectangle 504 is 21.0 cm in width and 29.7 cm in height. The vertical and horizontal broken lines, the circles at the broken line intersections, and the coordinate value display near the broken line intersections are for illustrating the coordinate values of the coordinates serving as the points, and are not included in the actual rendering.

[中間コード]
次に、図7〜8を参照して、本実施形態で使用する中間コードについて説明する。
図7は、本実施形態で使用する中間コードの仕様を示す図である。
[Intermediate code]
Next, an intermediate code used in the present embodiment will be described with reference to FIGS.
FIG. 7 is a diagram showing the specifications of the intermediate code used in the present embodiment.

601はレンダリング命令を表わすオペコードであり、数字で指定する。本実施形態では9種類のオペコードを定義している。オペコードは1バイト整数として中間コードデータ303に格納される。
602はオペコードを人間が識別しやすくするためのニーモニックである。ニーモニックは中間コードの内容をダンプして示すような場合にのみ使用し、中間コードデータ303には含まれない。
603はオペコードに対する引数を表わすオペランドである。オペランドの数とその意味はオペコードによって異なる。オペランドは2バイト浮動小数点数として中間コードデータ303に格納される。
Reference numeral 601 denotes an operation code representing a rendering command, which is designated by a number. In this embodiment, nine types of opcodes are defined. The operation code is stored in the intermediate code data 303 as a 1-byte integer.
Reference numeral 602 denotes a mnemonic for facilitating human identification of the operation code. The mnemonic is used only when the contents of the intermediate code are dumped and shown, and is not included in the intermediate code data 303.
Reference numeral 603 denotes an operand representing an argument for the operation code. The number of operands and their meaning depend on the opcode. The operand is stored in the intermediate code data 303 as a 2-byte floating point number.

本実施形態で使用する中間コードでは、単位系としてmmのみを使用する。オペランドに座標や長さを指定する場合は、すべてmmに換算した値を指定する。座標値はページ左上を原点とする絶対値で表わす。オペランドに色を指定する場合はRGB(赤・緑・青)あるいはRGBA(赤・緑・青・アルファ値)で表わし、R(赤)、G(緑)、B(青)、A(アルファ値)の値をそれぞれ0.0〜1.0の範囲で指定する。RGBによる色の指定では、アルファ値を1.0として扱う。   In the intermediate code used in this embodiment, only mm is used as the unit system. When coordinates and length are specified in the operand, all values converted to mm are specified. Coordinate values are expressed as absolute values with the origin at the top left of the page. When a color is specified in the operand, it is expressed in RGB (red / green / blue) or RGBA (red / green / blue / alpha value), and R (red), G (green), B (blue), A (alpha value) ) Is specified in the range of 0.0 to 1.0. In the color designation by RGB, the alpha value is handled as 1.0.

オペコード0(ニーモニックPageStart)はページの開始を表わす。オペランドはページの幅W(mm)とページの高さH(mm)である。
オペコード1(ニーモニックPageEnd)はページの終了を表わす。オペランドはない。
オペコード2(ニーモニックFill)は塗りつぶしの色の指定である。Fillで指定する塗りつぶしは以降のレンダリング命令すべてに適用される。オペランドは塗りつぶしの色RGBAである。
Opcode 0 (mnemonic PageStart) represents the start of the page. The operands are a page width W (mm) and a page height H (mm).
Opcode 1 (mnemonic PageEnd) represents the end of the page. There is no operand.
Opcode 2 (Mnemonic Fill) is a designation of a fill color. The fill specified by Fill is applied to all subsequent rendering instructions. The operand is the fill color RGBA.

オペコード3(ニーモニックStroke)は外形線の指定である。Strokeで指定する外形線は以降のレンダリング命令すべてに適用される。オペランドは外形線の色RGBと、外形線の幅W(mm)である。本実施形態では外形線の色を暗黙的にアルファ値1.0とする。
オペコード4(ニーモニックPathStart)はパスの開始を表わす。オペランドはない。
The operation code 3 (mnemonic Stroke) is an outline specification. The outline specified by Stroke is applied to all subsequent rendering instructions. The operands are the outline color RGB and the outline width W (mm). In the present embodiment, the color of the outline is implicitly set to an alpha value of 1.0.
Opcode 4 (mnemonic PathStart) represents the start of the pass. There is no operand.

オペコード5(ニーモニックPathEnd)はパスの終了を表わす。オペランドはクローズフラグFであり、“1”が指定された場合はパスの終了位置から開始位置まで直線をレンダリングすることで、パスを閉じることを表わす。“0”が指定された場合は何もしない。   Opcode 5 (mnemonic PathEnd) represents the end of the pass. The operand is a close flag F. When “1” is designated, it represents that the path is closed by rendering a straight line from the end position to the start position of the path. If “0” is specified, nothing is done.

オペコード6(ニーモニックPathMoveTo)はパスのレンダリング位置の移動を表わす。PathStart命令とPathEnd命令の間でのみ有効である。PathMoveToはレンダリング位置を移動するだけで、実際のレンダリングは行なわない。オペランドは移動位置座標をX(横方向)(mm)とY(縦方向)(mm)の値で指定する。   Opcode 6 (mnemonic PathMoveTo) represents the movement of the rendering position of the pass. Valid only between the PathStart and PathEnd instructions. PathMoveTo only moves the rendering position and does not perform actual rendering. The operand designates the movement position coordinate with values of X (horizontal direction) (mm) and Y (vertical direction) (mm).

オペコード7(ニーモニックPathLineTo)はパスの現在位置からオペランドで指定された位置まで直線をレンダリングする。PathStart命令とPathEnd命令の間でのみ有効である。オペランドは直線終端座標をX(横方向)(mm)とY(縦方向)(mm)の値で指定する。   Opcode 7 (mnemonic PathLineTo) renders a straight line from the current position of the path to the position specified by the operand. Valid only between the PathStart and PathEnd instructions. The operand specifies the end coordinates of the straight line with values of X (horizontal direction) (mm) and Y (vertical direction) (mm).

オペコード8(ニーモニックPathArc)はパスの現在位置から円弧をレンダリングする。PathStart命令とPathEnd命令の間でのみ有効である。PathArcは常に時計回り方向に円弧をレンダリングする。オペランドは円弧中心座標のX(横方向)(mm)とY(縦方向)(mm)の値、および、円弧の長さ(角度D(°)で指定する)である。   Opcode 8 (mnemonic PathArc) renders an arc from the current position of the path. Valid only between the PathStart and PathEnd instructions. PathArc always renders arcs in the clockwise direction. The operands are X (horizontal direction) (mm) and Y (vertical direction) (mm) values of the arc center coordinates, and the length of the arc (specified by angle D (°)).

図8は、図5に示した内容のSVG文書ファイル302をインタプリタ309が変換した中間コードデータ303の内容を示す図である。中間コードデータ303は1バイト整数のオペコードと2バイト浮動小数点数のオペランドのみが格納されたバイナリデータであるが、図8に示すのはそれを人間が識別しやすくするためにダンプ表示し、ニーモニックも付記したものである。   FIG. 8 is a diagram showing the contents of the intermediate code data 303 obtained by converting the SVG document file 302 having the contents shown in FIG. 5 by the interpreter 309. The intermediate code data 303 is binary data in which only a 1-byte integer opcode and a 2-byte floating-point number operand are stored. FIG. 8 shows a mnemonic that is dumped for easy identification by humans. Is also added.

1行目はページ開始命令で、オペランドでページの幅と高さを210.0mmと297.0mmに指定している。図5の<svg>要素の開始タグに相当し、長さ指定をcmからmmに換算している。   The first line is a page start instruction, and the page width and height are specified as 210.0 mm and 297.0 mm by an operand. This corresponds to the start tag of the <svg> element in FIG. 5, and the length designation is converted from cm to mm.

2行目は以降のレンダリングに使用する塗りつぶし命令で、オペランドで塗りつぶしの色を黄色・アルファ値0.7、すなわち(R,G,B,A)=(1.0,1.0,0.0,0.7)に指定している。図5の一つ目の<circle>要素のfillおよびfill−opacity属性に相当し、文字列表記の色指定と数値表記の不透明度からRGBA表記に変換している。   The second line is a fill command used for subsequent rendering. The operand fill color is yellow and alpha value 0.7, that is, (R, G, B, A) = (1.0, 1.0, 0. 0, 0.7). This corresponds to the fill and fill-opacity attributes of the first <circle> element in FIG. 5, and is converted into RGBA notation from color designation in character string notation and opacity in numerical notation.

3行目は以降のレンダリングに使用する外形線命令で、オペランドで外形線の色を青色、すなわち(R,G,B)=(0.0,0.0,1.0)に指定し、線幅を2.0mmに指定している。図5の三つの<circle>要素のstroke属性およびstroke−width属性に相当し、文字列表記の色指定からRGB表記に変換するとともに、長さ指定をユーザ座標系からmmに換算している。   The third line is an outline command used for the subsequent rendering, and the color of the outline is designated as blue in the operand, that is, (R, G, B) = (0.0, 0.0, 1.0). The line width is specified as 2.0 mm. This corresponds to the stroke attribute and the stroke-width attribute of the three <cycle> elements in FIG. 5, and the color designation in the character string notation is converted into RGB notation, and the length designation is converted into mm from the user coordinate system.

4〜7行目は円のレンダリングを行なう命令群である。5行目のレンダリング位置移動命令および6行目の円弧レンダリング命令によって、座標(80.0mm,80.0mm)を中心とし、座標(80.0mm,30.0mm)から始まる、角度360.0度の円がレンダリングされる。円内部は2行目の命令により黄色・アルファ値0.7で塗りつぶされ、外形線は3行目の命令により青色かつ線幅2mmでレンダリングされる。図5の一つ目の<circle>要素および図6のレンダリング結果501に相当し、座標指定や長さ指定をユーザ座標系からmmに換算している。   The fourth to seventh lines are a group of instructions for rendering a circle. An angle of 360.0 degrees, centered on the coordinates (80.0 mm, 80.0 mm) and starting from the coordinates (80.0 mm, 30.0 mm) by the rendering position movement command on the fifth line and the arc rendering command on the sixth line Will be rendered. The inside of the circle is filled with yellow / alpha value 0.7 by the command of the second line, and the outline is rendered in blue and the line width of 2 mm by the command of the third line. This corresponds to the first <circle> element in FIG. 5 and the rendering result 501 in FIG. 6, and the coordinate designation and length designation are converted from the user coordinate system to mm.

8行目は以降の塗りつぶしに使用する塗りつぶし命令で、オペランドで塗りつぶしの色を赤色・アルファ値0.5、すなわち(R,G,B,A)=(1.0,0.0,0.0,0.5)に指定している。図5の二つ目の<circle>要素のfillおよびfill−opacity属性に相当し、文字列表記の色指定と数値表記の不透明度からRGBA表記に変換している。   The 8th line is a fill command used for the subsequent fill, and the color of the fill in the operand is set to red / alpha value 0.5, that is, (R, G, B, A) = (1.0, 0.0, 0. 0, 0.5). This corresponds to the fill and fill-opacity attributes of the second <circle> element in FIG. 5, and is converted into RGBA notation from color designation in character string notation and opacity in numerical notation.

9〜12行目は円のレンダリングを行なう命令群である。10行目のレンダリング位置移動命令および11行目の円弧レンダリング命令によって、座標(140.0mm,80.0mm)を中心とし、座標(140.0mm,30.0mm)から始まる、角度360.0度の円がレンダリングされる。円内部は8行目の命令により赤色・アルファ値0.5で塗りつぶされ、外形線は3行目の命令により青色かつ線幅2mmでレンダリングされる。図5の二つ目の<circle>要素および図6のレンダリング結果502に相当し、座標指定や長さ指定をユーザ座標系からmmに換算している。   Lines 9 to 12 are a group of instructions for rendering a circle. An angle of 360.0 degrees centered on the coordinates (140.0 mm, 80.0 mm) and starting from the coordinates (140.0 mm, 30.0 mm) by the rendering position movement command on the 10th line and the arc rendering command on the 11th line Will be rendered. The inside of the circle is filled with a red / alpha value of 0.5 by the command of the eighth line, and the outline is rendered in blue and the line width of 2 mm by the command of the third line. This corresponds to the second <circle> element in FIG. 5 and the rendering result 502 in FIG. 6, and the coordinate designation and length designation are converted from the user coordinate system to mm.

13行目は以降の塗りつぶしに使用する塗りつぶし命令で、オペランドで塗りつぶしの色を緑色・アルファ値0.3、すなわち(R,G,B,A)=(0.0,1.0,0.0,0.3)に指定している。図5の三つ目の<circle>要素のfillおよびfill−opacity属性に相当し、文字列表記の色指定と数値表記の不透明度からRGBA表記に変換している。   The 13th line is a fill instruction used for the subsequent fill, and the color of the fill in the operand is set to green / alpha value 0.3, that is, (R, G, B, A) = (0.0, 1.0, 0. 0, 0.3). This corresponds to the fill and fill-opacity attributes of the third <circle> element in FIG. 5, and is converted into RGBA notation from color designation in character string notation and opacity in numerical notation.

14〜17行目は円のレンダリングを行なう命令群である。15行目のレンダリング位置移動命令および16行目の円弧レンダリング命令によって、座標(110.0mm,130.0mm)を中心とし、座標(110.0mm,80.0mm)から始まる、角度360.0度の円がレンダリングされる。円内部は13行目の命令により緑色・アルファ値0.3で塗りつぶされ、外形線は3行目の命令により青色かつ線幅2mmでレンダリングされる。図5の三つ目の<circle>要素および図6のレンダリング結果503に相当し、座標指定や長さ指定をユーザ座標系からmmに換算している。   Lines 14 to 17 are a group of instructions for rendering a circle. An angle of 360.0 degrees, centered on the coordinates (110.0 mm, 130.0 mm) and starting from the coordinates (110.0 mm, 80.0 mm), by the rendering position movement command on the 15th line and the arc rendering command on the 16th line Will be rendered. The inside of the circle is filled with a green / alpha value of 0.3 by an instruction on the 13th line, and the outline is rendered in blue and a line width of 2 mm by an instruction on the 3rd line. This corresponds to the third <circle> element in FIG. 5 and the rendering result 503 in FIG. 6, and the coordinate designation and length designation are converted from the user coordinate system to mm.

[レンダラーの動作概要]
次に、図9〜図10を参照して、レンダラー310の動作の概要について説明する。
[Renderer operation overview]
Next, an outline of the operation of the renderer 310 will be described with reference to FIGS.

図9〜図10はレンダラー310が中間コードデータ303をレンダリングしてビットマップデータ304を作成し、プリンタ313のコントローラ314に送信する動作を示すフローチャートである。   FIGS. 9 to 10 are flowcharts showing an operation in which the renderer 310 renders the intermediate code data 303 to generate the bitmap data 304 and transmits it to the controller 314 of the printer 313.

ステップS801は動作の開始である。
ステップS802は変数の初期化処理である。SVG文書ファイル302を変換した中間コードデータ303を変数dlcに読み込む。fillはレンダリング命令に適用される塗りつぶしに使用する色を保持する変数で、(r,g,b,a)はRGBA表記の色の各要素を表わす。初期値は(1.0,1.0,1.0,1.0)、すなわち完全不透明(アルファ値1.0)の白色である。strokeはレンダリング命令に適用される外形線に使用する色と線幅を保持する変数で、(r,g,b,w)はRGA表記の色の各要素と線幅(ピクセル)を表わす。初期値は(0.0,0.0,0.0,1)、すなわち黒色・線幅1ピクセルである。
Step S801 is the start of operation.
Step S802 is variable initialization processing. The intermediate code data 303 obtained by converting the SVG document file 302 is read into the variable dlc. “fill” is a variable for holding a color used for painting applied to the rendering command, and (r, g, b, a) represents each element of the color in RGBA notation. The initial value is (1.0, 1.0, 1.0, 1.0), that is, white that is completely opaque (alpha value 1.0). Stroke is a variable that holds the color and line width used for the outline applied to the rendering command, and (r, g, b, w) represents each element of RGA color and the line width (pixel). The initial value is (0.0, 0.0, 0.0, 1), that is, black and line width of 1 pixel.

ステップS803は中間コードデータdlcから次のオペコードとオペランドを取得する処理である。取得したオペコードとオペランドをそれぞれ変数opとoperandに格納する。
ステップS804、S806、S809、S811、S813、S816、S821、S823、S825は、オペコードopの種別を判定し、それぞれのオペコードに応じて適切な処理を行なえるようにしている。
Step S803 is processing for obtaining the next opcode and operand from the intermediate code data dlc. The obtained opcode and operand are stored in variables op and operand, respectively.
In steps S804, S806, S809, S811, S813, S816, S821, S823, and S825, the type of the opcode op is determined, and appropriate processing can be performed according to each opcode.

ステップS804でオペコードopが0(ニーモニックPageStart)であればステップS805に進む。それ以外の場合はステップS806に進む。   If the operation code op is 0 (mnemonic PageStart) in step S804, the process proceeds to step S805. Otherwise, the process proceeds to step S806.

ステップS805はビットマップデータ304を格納するための変数bmpの準備処理である。ここでbmpの要素wはビットマップデータの幅(ピクセル)を表わす。オペランドoperandのページ幅W(mm)をビットマップの単位系(ピクセル)に変換するために、出力解像度resを乗算する。bmpの要素hはビットマップデータの高さ(ピクセル)を表わす。オペランドoperandのページの高さH(mm)をビットマップの単位系(ピクセル)に変換するために、出力解像度resを乗算する。bmpの要素resはプリンタ313の出力解像度をPPM(Pixels Per Millimeter)で表わす。   Step S805 is a process for preparing the variable bmp for storing the bitmap data 304. Here, the element w of bmp represents the width (pixel) of the bitmap data. In order to convert the page width W (mm) of the operand “operand” into the unit system (pixel) of the bitmap, the output resolution “res” is multiplied. The element h of bmp represents the height (pixel) of the bitmap data. In order to convert the page height H (mm) of the operand operand into the unit system (pixel) of the bitmap, the output resolution res is multiplied. An element res of bmp represents the output resolution of the printer 313 in PPM (Pixels Per Millimeter).

bmpの要素data[]はビットマップデータを格納する配列で、大きさは横w(ピクセル),縦h(ピクセル)である。data[]の各要素(r,g,b,a)は各ピクセルの色をRGBA表記で表わす。data[]の各要素の値は現在のfillの値、すなわち完全不透明(アルファ値1.0)の白色で初期化される。bmpの要素pre_or_post[]はビットマップの各ピクセルに対して、レンダリング前カラーマッチングを行なったか、レンダリング後カラーマッチングを行なったかを格納する配列で、大きさは配列data[]と同じである。レンダリング前カラーマッチングを行なった場合は値としてpreを保持し、レンダリング後カラーマッチングを行なった場合は値としてpostを保持する。初期値はpostである。処理が終了すればステップS803に戻る。   The element data [] of bmp is an array for storing bitmap data, and the size is horizontal w (pixel) and vertical h (pixel). Each element (r, g, b, a) of data [] represents the color of each pixel in RGBA notation. The value of each element of data [] is initialized with the current fill value, i.e. white with full opacity (alpha value 1.0). The element pre_or_post [] of bmp is an array that stores whether pre-rendering color matching or post-rendering color matching has been performed for each pixel of the bitmap, and has the same size as the array data []. When color matching before rendering is performed, pre is held as a value, and when color matching after rendering is performed, post is held as a value. The initial value is post. When the process is finished, the process returns to step S803.

ステップS806でオペコードopが1(ニーモニックPageEnd)であればステップS807でプリンタ出力の定義済み処理を呼び出し、ステップS808で終了する。それ以外の場合はステップS809に進む。なお、プリンタ出力の定義済み処理については図14を参照して後述する。   If the opcode op is 1 (mnemonic PageEnd) in step S806, the printer output defined process is called in step S807, and the process ends in step S808. Otherwise, the process proceeds to step S809. The printer output predefined processing will be described later with reference to FIG.

ステップS809でオペコードopが2(ニーモニックFill)であればステップS810に進む。それ以外の場合はステップS811に進む。   If the op code op is 2 (mnemonic Fill) in step S809, the process proceeds to step S810. In cases other than that described here, process flow proceeds to Step S811.

ステップS810は変数fillの更新処理である。オペランドoperandで指定された色(R,G,B,A)を変数fillの各要素(r,g,b,a)に格納する。処理が終了すればステップS803に戻る。   Step S810 is a variable fill update process. The color (R, G, B, A) designated by the operand operand is stored in each element (r, g, b, a) of the variable fill. When the process is finished, the process returns to step S803.

ステップS811でオペコードopが3(ニーモニックStroke)であればステップS812に進む。それ以外の場合はステップS813に進む。   If the opcode op is 3 (mnemonic Stroke) in step S811, the process proceeds to step S812. In cases other than that described here, process flow proceeds to Step S813.

ステップS812は変数strokeの更新処理である。オペランドoperandで指定された色(R,G,B)と線幅(W)を変数strokeの各要素(r,g,b,w)に格納する。この際、オペランドの単位系(mm)をビットマップの単位系(ピクセル)に変換するために、出力解像度bmp.resを乗算する。処理が終了すればステップS803に戻る。   Step S812 is a process for updating the variable stroke. The color (R, G, B) and line width (W) specified by the operand operand are stored in each element (r, g, b, w) of the variable stroke. At this time, in order to convert the unit system (mm) of the operand into the unit system (pixel) of the bitmap, the output resolution bmp. Multiply res. When the process is finished, the process returns to step S803.

ステップS813でオペコードopが4(ニーモニックPathStart)であればステップS814に進む。それ以外の場合はS815からステップS816に進む。   If the operation code op is 4 (mnemonic PathStart) in step S813, the process proceeds to step S814. Otherwise, the process proceeds from step S815 to step S816.

ステップS814はパスレンダリング用の変数path[]とcursorの準備処理である。path[]はパスの座標値を格納する配列である。path[]の各要素(x,y)はピクセル単位で表わした座標値である。cursorはパスの現在のレンダリング位置を格納する変数で、要素(x,y)は同じくピクセルで表わした座標値である。処理が終了すればステップS803に戻る。   Step S814 is a process for preparing the path rendering variable path [] and the cursor. path [] is an array for storing the coordinate value of the path. Each element (x, y) of path [] is a coordinate value expressed in units of pixels. The cursor is a variable for storing the current rendering position of the path, and the element (x, y) is also a coordinate value expressed in pixels. When the process is finished, the process returns to step S803.

ステップS816でオペコードopが5(ニーモニックPathEnd)であればステップS817に進む。それ以外の場合はステップS821に進む。   If the operation code op is 5 (mnemonic PathEnd) in step S816, the process proceeds to step S817. In cases other than that described here, process flow proceeds to Step S821.

ステップS817はオペランドoperandが1かどうかの判定処理である。1であればステップS818に進み、それ以外の場合はステップS819に進む。   Step S817 is processing for determining whether or not the operand operand is 1. If it is 1, the process proceeds to step S818. Otherwise, the process proceeds to step S819.

ステップS818は閉パスのレンダリング処理である。変数dlcの現在の読み込み位置に、オペコード7(ニーモニックPathLineTo)を挿入する。オペランドは現在のパスの開始位置であるpath[0]であるが、ビットマップの単位系(ピクセル)からオペランドの単位系(mm)に変換するために、出力解像度bmp.resで除算する。また、再度パスの終了処理を行なうため、オペコード5(ニーモニックPathEnd)も挿入する。今度は閉パスのレンダリング処理は必要ないので、オペランドは0とする。処理が終了すればS827からステップS803に戻る。   Step S818 is a closed-pass rendering process. The operation code 7 (mnemonic PathLineTo) is inserted at the current reading position of the variable dlc. The operand is path [0] which is the start position of the current pass, but in order to convert from the bitmap unit system (pixel) to the operand unit system (mm), the output resolution bmp. Divide by res. In addition, an operation code 5 (mnemonic PathEnd) is also inserted in order to perform the pass termination process again. This time, since the closed-pass rendering process is not necessary, the operand is set to 0. When the process is completed, the process returns from step S827 to step S803.

ステップS819はパスの塗りつぶしが必要かどうかを判定する処理である。パスの現在のレンダリング位置を表わす変数cursorの値と、パスの開始位置である変数path[0] の値とを比較し、等しければ閉パスなので塗りつぶしが必要であると判定し、ステップS820に進む。それ以外の場合はS827からステップS803に戻る。   Step S819 is processing for determining whether or not the path needs to be painted. The value of the variable “cursor” representing the current rendering position of the pass is compared with the value of the variable “path [0]” that is the start position of the pass. If they are equal, it is determined that painting is necessary because it is a closed pass, and the process proceeds to step S820. . Otherwise, the process returns from step S827 to step S803.

ステップS820はパスの塗りつぶしの定義済み処理を呼び出す処理である。このパスの塗りつぶしの定義済み処理については図11を参照して後述する。   Step S820 is a process of calling a predefined process for filling a path. The predefined processing for filling the path will be described later with reference to FIG.

ステップS821でオペコードopが6(ニーモニックPathMoveTo)であればステップS822に進む。それ以外の場合はステップS823に進む。   If the operation code op is 6 (mnemonic PathMoveTo) in step S821, the process proceeds to step S822. In cases other than that described here, process flow proceeds to Step S823.

ステップS822はパスの現在のレンダリング位置を表わす変数の更新処理である。オペランドoperandで指定された座標値(X,Y)を変数cursorの各要素(x,y)に格納する。この際、オペランドの単位系(mm)をビットマップの単位系(ピクセル)に変換するために、出力解像度bmp.resを乗算する。処理が終了すればS827からステップS803に戻る。   Step S822 is a process for updating a variable representing the current rendering position of the path. The coordinate value (X, Y) designated by the operand operand is stored in each element (x, y) of the variable cursor. At this time, in order to convert the unit system (mm) of the operand into the unit system (pixel) of the bitmap, the output resolution bmp. Multiply res. When the process is completed, the process returns from step S827 to step S803.

ステップS823でオペコードopが7(ニーモニックPathLineTo)であればステップS824に進む。それ以外の場合はステップS825に進む。   If the operation code op is 7 (mnemonic PathLineTo) in step S823, the process proceeds to step S824. Otherwise, the process proceeds to step S825.

ステップS824はビットマップデータbmpに直線をレンダリングする処理である。開始点はパスの現在のレンダリング位置であるcursor(x,y)である。終了点はオペランドoperandで指定された座標値(X, Y)であるが、オペランドの単位系(mm)をビットマップの単位系(ピクセル)に変換するために、出力解像度bmp.resを乗算する。外形線は変数strokeの色(RGB)と線幅(ピクセル)を使用する。レンダリングした直線の各座標値(ピクセル)を変数path[] に追加し、最後に追加した座標値(直線終了点)を変数cursorに格納する。処理が終了すればS827からステップS803に戻る。   Step S824 is processing for rendering a straight line in the bitmap data bmp. The starting point is cursor (x, y), which is the current rendering position of the path. The end point is the coordinate value (X, Y) specified by the operand operand. In order to convert the unit system (mm) of the operand to the unit system (pixel) of the bitmap, the output resolution bmp. Multiply res. The outline uses the color (RGB) and line width (pixel) of the variable stroke. Each coordinate value (pixel) of the rendered straight line is added to the variable path [], and the last added coordinate value (straight line end point) is stored in the variable cursor. When the process is completed, the process returns from step S827 to step S803.

ステップS825でオペコードopが8(ニーモニックPathArcTo)であればステップS826に進む。それ以外の場合は図7に示した中間コード仕様に存在しないので、処理をスキップしてS827からステップS803に戻る。   If the operation code op is 8 (mnemonic PathArcTo) in step S825, the process proceeds to step S826. In other cases, the intermediate code specification shown in FIG. 7 does not exist, so the process is skipped and the process returns from step S827 to step S803.

ステップS826はビットマップデータbmpに円弧をレンダリングする処理である。開始点はパスの現在のレンダリング位置であるcursor(x,y)である。中心点はオペランドoperandで指定された座標値(X, Y)であるが、オペランドの単位系(mm)をビットマップの単位系(ピクセル)に変換するために、出力解像度bmp.resを乗算する。角度はオペランドoperandで指定された角度D(°)である。外形線は変数strokeの色(RGB)と線幅(ピクセル)を使用する。レンダリングした円弧の各座標値(ピクセル)を変数path[]に追加し、最後に追加した座標値を変数cursorに格納する。処理が終了すればS827からステップS803に戻る。   Step S826 is processing for rendering an arc on the bitmap data bmp. The starting point is cursor (x, y), which is the current rendering position of the path. The center point is the coordinate value (X, Y) specified by the operand operand, but in order to convert the unit system (mm) of the operand into the unit system (pixel) of the bitmap, the output resolution bmp. Multiply res. The angle is an angle D (°) specified by the operand operand. The outline uses the color (RGB) and line width (pixel) of the variable stroke. Each coordinate value (pixel) of the rendered arc is added to the variable path [], and the last added coordinate value is stored in the variable cursor. When the process is completed, the process returns from step S827 to step S803.

レンダラー310の動作の一例については図8および図15、図16を参照して後述する。   An example of the operation of the renderer 310 will be described later with reference to FIGS. 8, 15, and 16.

[パスの塗りつぶし]
次に、図11を参照して、パス塗りつぶしの動作について説明する。
図11は、パスの塗りつぶしを行なう定義済み処理の動作を示すフローチャートである。本定義済み処理は図9に示すフローチャートのステップS820から呼び出される。
[Fill Path]
Next, the path filling operation will be described with reference to FIG.
FIG. 11 is a flowchart showing the operation of a predefined process for filling a path. This defined process is called from step S820 of the flowchart shown in FIG.

ステップS901はパス塗りつぶし動作の開始である。bmp、path、fillは本定義済み処理呼び出し時の引数である。引数bmpは、図9〜図10において、ステップS805で初期化し、ステップS820、S824、S826で更新した変数bmpと同じ値を有する。引数pathは、図9〜図10において、ステップS814で初期化し、ステップS824およびステップS825で更新した変数pathと同じ値を有する。引数fillは、図9〜図10において、ステップS802で初期化し、ステップS810で更新した変数fillと同じ値を有する。   Step S901 is the start of a path painting operation. “bmp”, “path”, and “fill” are arguments at the time of calling this predefined process. The argument bmp has the same value as the variable bmp initialized in step S805 and updated in steps S820, S824, and S826 in FIGS. The argument path has the same value as the variable path initialized in step S814 and updated in steps S824 and S825 in FIGS. The argument fill has the same value as the variable fill initialized in step S802 and updated in step S810 in FIGS.

ステップS902は変数の初期化処理である。coordはビットマップデータbmp.data[]を左上から右下に向かってスキャンする際の座標値を保持する変数で、(x,y)はピクセル単位の座標値を表わす。初期値は(0,0)で、ビットマップデータbmp.dataの左上を表わす。図11に示したフローチャートは変数coordをループ変数とするループ処理になっている。   Step S902 is variable initialization processing. coord is bitmap data bmp. Variables that hold coordinate values when data [] is scanned from the upper left to the lower right, and (x, y) represents the coordinate values in pixel units. The initial value is (0, 0), and bitmap data bmp. Represents the upper left of data. The flowchart shown in FIG. 11 is a loop process using the variable “coord” as a loop variable.

ステップS903は変数coordが表わす座標値が変数pathが表わすパス内かどうかを判定する処理である。ステップS819で変数pathが閉パスと判断された場合のみステップS820で本処理が呼び出されるので、変数pathが表わすパスは必ず閉パスであり、任意の座標値についてパス内かどうかを判定することができる。パス内と判定された場合はステップS904に進む。パス内でない場合はステップS908に進む。   Step S903 is processing to determine whether the coordinate value represented by the variable “coord” is within the path represented by the variable “path”. Only when it is determined in step S819 that the variable path is a closed path, this processing is called in step S820. Therefore, the path represented by the variable path is always a closed path, and it is determined whether an arbitrary coordinate value is within the path. it can. If it is determined that it is within the path, the process proceeds to step S904. If it is not in the path, the process proceeds to step S908.

ステップS904は変数fillが表わす色のアルファ値が1.0(完全不透明)かどうかを判定する処理である。アルファ値が1.0(完全不透明)であればアルファブレンドは必要ないと判断し、ステップS905に進む。アルファ値が1.0以外(透明)であればアルファブレンドの必要があると判断し、ステップS907に進む。   Step S904 is processing for determining whether or not the alpha value of the color represented by the variable fill is 1.0 (completely opaque). If the alpha value is 1.0 (completely opaque), it is determined that alpha blending is not necessary, and the process proceeds to step S905. If the alpha value is other than 1.0 (transparent), it is determined that alpha blending is necessary, and the process proceeds to step S907.

ステップS905は変数fillのアルファ値が1.0(完全不透明)の場合の塗りつぶし処理である。アルファブレンドは必要ないので、ビットマップデータbmp.data[]の座標位置coordの色を、変数fillが表わす色で置き換える。   Step S905 is a painting process when the alpha value of the variable fill is 1.0 (completely opaque). Since alpha blending is not necessary, bitmap data bmp. The color at the coordinate position coord of data [] is replaced with the color represented by the variable fill.

ステップS906は変数fillのアルファ値が1.0以外(透明)の場合に、アルファブレンドの定義済み処理を呼び出す処理である。アルファブレンドの定義済み処理は、戻り値として、アルファブレンド後の色(RGBA)と、レンダリング前カラーマッチングを行なったかレンダリング後カラーマッチングを行なったかのフラグ(preまたはpost)とを返すので、ビットマップデータbmp.data[]およびフラグbmp.pre_or_post[]の、座標位置coordの値をそれぞれ戻り値で置き換える。アルファブレンドの定義済み処理については図12〜図13を参照して後述する。   Step S906 is a process for calling a defined process for alpha blending when the alpha value of the variable fill is other than 1.0 (transparent). Since the alpha blend predefined processing returns the color after alpha blending (RGBA) and a flag (pre or post) indicating whether pre-rendering color matching or post-rendering color matching has been performed, bitmap data bmp. data [] and flag bmp. The value of the coordinate position coord of pre_or_post [] is replaced with the return value. The predefined processing of alpha blend will be described later with reference to FIGS.

ステップS907〜S910はループ処理である。
ステップS907は変数coordの横方向の値coord.xを1加算する処理である。
Steps S907 to S910 are loop processing.
In step S907, the value coord. This is a process of adding 1 to x.

ステップS908は変数coordの横方向の値coord.xがビットマップデータの横方向の大きさbmp.wと等しくなったかどうかの判定処理である。等しければステップS909に進み、等しくなければステップS903に戻る。
ステップS909は、変数coordの横方向の値coord.xを0に初期化し、変数coordの縦方向の値coord.yを1加算する処理である。
In step S908, the horizontal value coord. x is the horizontal size bmp. This is a process for determining whether or not it is equal to w. If they are equal, the process proceeds to step S909, and if they are not equal, the process returns to step S903.
In step S909, the value coord. x is initialized to 0, and the vertical value coord. This is a process of adding 1 to y.

ステップS910は変数coordの縦方向の値coord.yがビットマップデータの縦方向の大きさbmp.hと等しくなったかどうかの判定処理である。等しければステップS911に進み、等しくなければステップS903に戻る。
ステップS911は終了である。本定義済み処理の戻り値はないが、引数bmpで渡したビットマップデータbmp.data[]が更新される。
In step S910, the value coord. y is the vertical size bmp. This is a process for determining whether or not it is equal to h. If they are equal, the process proceeds to step S911, and if they are not equal, the process returns to step S903.
Step S911 is the end. Although there is no return value for this predefined process, the bitmap data bmp. data [] is updated.

[アルファブレンド]
次に、図12〜図13を参照して、アルファブレンドの動作について説明する。
図12は、検証結果DB312の構成を示す図である。
[Alpha blend]
Next, the operation of alpha blending will be described with reference to FIGS.
FIG. 12 is a diagram illustrating a configuration of the verification result DB 312.

1001は検証結果DB312の各レコードを構成する列を示す。
1002は各列に格納されるデータを示す。
1003、1004の各列はアルファブレンドの対象となる色をRGBA表記で格納する。
Reference numeral 1001 denotes a column constituting each record of the verification result DB 312.
Reference numeral 1002 denotes data stored in each column.
Each column of 1003 and 1004 stores a color to be alpha blended in RGBA notation.

1005、1006、1007の各列はそれぞれレンダラー310がCMM311を利用する際の入力プロファイル305、レンダリングプロファイル306、プリンタプロファイル307、レンダリングインテント308を識別するIDを格納する。
1008の列はアルファブレンドの結果の色をRGBA表記で格納する。
1009の列はレンダリング前カラーマッチングを行なったかレンダリング後カラーマッチングを行なったかをpreまたはpostの値で格納する。
Each column of 1005, 1006, and 1007 stores an ID for identifying the input profile 305, rendering profile 306, printer profile 307, and rendering intent 308 when the renderer 310 uses the CMM 311.
The column 1008 stores the color of the result of alpha blending in RGBA notation.
A column 1009 stores whether pre-rendering color matching or post-rendering color matching has been performed as a pre or post value.

図13は,アルファブレンドを行なう定義済み処理の動作を示すフローチャートである。
本定義済み処理は図11に示すフローチャートのステップS906から呼び出される。本定義済み処理ではCMM311のカラーマッチング機能として、CMM.gm、CMM.cc、CMM.labの3つの機能を利用する。
FIG. 13 is a flowchart showing the operation of a predefined process for performing alpha blending.
This defined process is called from step S906 in the flowchart shown in FIG. In this predefined process, as a color matching function of CMM 311, CMM. gm, CMM. cc, CMM. Use the three functions of lab.

CMM.gmは色域圧縮(gamut mapping)を行なう。引数(color、prof1、prof2、intent)は色指定color、プロファイルprof1、プロファイルprof2、レンダリングインテントintentである。機能はprof1が表現する色域の色colorをprof2が表現する色域の色にintentにしたがって圧縮し、prof1が表現する色域の色として返す。   CMM. gm performs gamut mapping. Arguments (color, prof1, prof2, intent) are color specification color, profile prof1, profile prof2, and rendering intent intent. The function compresses the color of the color gamut represented by prof1 into the color of the color gamut represented by prof2 according to the intent, and returns it as the color of the color gamut represented by prof1.

CMM.ccは色域変換(color conversion)を行なう。引数(color、prof1、prof2)は色指定color、プロファイルprof1、プロファイルprof2である。機能はprof1が表現する色域の色colorをprof2が表現する色域の色に圧縮せずに変換し、prof2が表現する色域の色として返す。colorで指定する色はprof2が表現する色域に収まっていることが前提である。   CMM. cc performs color conversion. The arguments (color, prof1, prof2) are a color specification color, profile prof1, and profile prof2. The function converts the color of the color gamut represented by prof1 into a color of the color gamut represented by prof2 without being compressed, and returns it as the color of the color gamut represented by prof2. It is assumed that the color specified by color is within the color gamut expressed by prof2.

CMM.labはL*a*b*値への変換を行なう。L*a*b*色空間はCIE(Commission Internationale I’Eelairagel;国際照明委員会)が1976年に定めた均等色空間であり、明度指数L*とクロマティクネス指数a*およびb*で表わす。引数(color、prof)は色指定colorとプロファイルprofである。機能はprofが表現する色域の色colorをL*a*b*値に変換して返す。   CMM. lab converts to an L * a * b * value. The L * a * b * color space is a uniform color space established in 1976 by the CIE (Commission Internationale I'Eelairagel; International Lighting Commission), and is represented by a lightness index L * and a chromaticness index a * and b *. The arguments (color, prof) are a color designation color and a profile prof. The function converts the color color of the color gamut represented by prof into an L * a * b * value and returns it.

ステップS1101はアルファブレンドの開始である。color1、color2は本定義済み処理呼び出し時の引数である。引数color1は、図9〜図10のステップ805で初期化し、図11のステップS905、ステップS906その他で更新したビットマップデータbmp.data[] の任意の座標における色の値である。引数color2は、図9〜図10のステップS802で初期化し、ステップS810で更新した変数fillの色の値である。   Step S1101 is the start of alpha blending. color1 and color2 are arguments at the time of calling this predefined process. The argument color1 is initialized at step 805 in FIGS. 9 to 10 and is updated in steps S905, S906 in FIG. This is the color value at an arbitrary coordinate of data []. The argument color2 is the color value of the variable fill that is initialized in step S802 of FIGS. 9 to 10 and updated in step S810.

ステップS1102は変数の初期化処理である。returnは戻り値を保持する変数で、要素(r、g、b、a)はRGBA表記の色の各要素を表わす。要素pre_or_postはレンダリング前カラーマッチングを行なったか、レンダリング後カラーマッチングを行なったかを保持する変数で、値としてpreまたはpostを保持する。inputProfは入力プロファイル305の内容を保持する変数である。printerProfはプリンタプロファイル307の内容を保持する変数である。intentはレンダリングインテント308の内容を保持する変数である。   Step S1102 is variable initialization processing. “return” is a variable for holding a return value, and elements (r, g, b, a) represent each element of color in RGBA notation. The element pre_or_post is a variable that holds whether pre-rendering color matching or post-rendering color matching has been performed, and holds pre or post as a value. inputProf is a variable that holds the contents of the input profile 305. printerProf is a variable that holds the contents of the printer profile 307. intent is a variable that holds the contents of the rendering intent 308.

ステップS1103は検証結果DB312に検証結果が登録されているかどうかを検索する処理である。図12に構成を示した検証結果DBに対して、変数color1、変数color2、変数inputProf、変数printerProf、変数intentを引数として登録レコードを検索する。color1が列1003、color2が列1004、inputProfが列1005、printerProfが列1006、intentが列1007にそれぞれ一致するレコードが見つかると、見つかったレコードの列1008の値と列1009の値をそれぞれ変数returnの(r、g、b、a)と(pre_or_post)に格納する。ステップS1103ではレコードが見つかったかどうかを判定し、見つかった場合はそのままステップS1112に進んで処理を終了する。見つからなかった場合はステップS1104に進む。   Step S1103 is a process for searching whether or not the verification result is registered in the verification result DB 312. With respect to the verification result DB whose configuration is shown in FIG. 12, the registration record is searched with the variables color1, variable2, variable inputProf, variable printerProf, and variable intent as arguments. When a record is found in which color1 is in column 1003, color2 is in column 1004, inputProf is in column 1005, printerProf is in column 1006, and intent is in column 1007, the value of column 1008 and the value in column 1009 of the found record are set to variable return. In (r, g, b, a) and (pre_or_post). In step S1103, it is determined whether or not a record is found. If found, the process proceeds to step S1112 and the process is terminated. If not found, the process proceeds to step S1104.

ステップS1104はレンダリング前カラーマッチングを行なった場合のL*a*b*値を求める処理である。まず、CMM311のCMM.gm機能を利用して、引数color1の値と引数color2の値を入力色域(inputProfが表現)からプリンタ313の色域(printerProfが表現)にレンダリングインテントintentで圧縮し、結果をそれぞれ変数preInput1とpreInput2に格納する。次に、変数preInput1の値と変数preInput2の値とでブレンド処理を行ない、結果を変数preRenderに格納する。ブレンド処理は、preInput1の値(r、g、b、a)とpreInput2の値(r、g、b、a)とから、以下の式により計算される。   Step S1104 is processing for obtaining an L * a * b * value when color matching before rendering is performed. First, the CMM. Using the gm function, the value of the argument color1 and the value of the argument color2 are compressed from the input color gamut (represented by inputProf) to the color gamut of the printer 313 (represented by printerProf) with the rendering intent intent, and the results are each represented by the variable preInput1 And preInput2. Next, blend processing is performed with the value of the variable preInput1 and the value of the variable preInput2, and the result is stored in the variable preRender. The blending process is calculated by the following formula from the value of preInput1 (r, g, b, a) and the value of preInput2 (r, g, b, a).

preRender.r=preInput1.r×preInput1.a+preInput2.r×preInput2.a×(1−preInput1.a)
preRender.g=preInput1.g×preInput1.a+preInput2.g×preInput2.a×(1−preInput1.a)
preRender.b=preInput1.b×preInput1.a+preInput2.b×preInput2.a×(1−preInput1.a)
preRender.a=preInput1.a+preInput2.a×(1−preInput1.a)
preRender.r = preInput1.r x preInput1.a + preInput2.r x preInput2.a x (1-preInput1.a)
preRender.g = preInput1.g x preInput1.a + preInput2.g x preInput2.a x (1-preInput1.a)
preRender.b = preInput1.b x preInput1.a + preInput2.b x preInput2.a x (1-preInput1.a)
preRender.a = preInput1.a + preInput2.a x (1-preInput1.a)

最後に、CMM311のCMM.cc機能を利用して、ブレンド結果preRenderの値を入力色域(inputProfが表現)からプリンタ313の色域(printerProfが表現)に変換して変数prePrinterに格納し、CMM 311のCMM.lab機能を利用して、prePrinterの値をL*a*b*値に変換して変数preLabに格納する。   Finally, CMM 311 CMM. Using the cc function, the blend result preRender value is converted from the input color gamut (represented by inputProf) to the color gamut of the printer 313 (represented by printerProf), stored in the variable prePrinter, and the CMM. Using the lab function, the value of prePrinter is converted into an L * a * b * value and stored in the variable preLab.

ステップS105はレンダリング後カラーマッチングを行なった場合のL*a*b*値を求める処理である。まず、引数color1の値と引数color2の値とでブレンド処理を行ない、結果を変数postRenderに格納する。ブレンド処理は、ステップS1104と同様に、color1の値(r、g、b、a)とcolor2の値(r、g、b、a)とから、以下の式により計算される。   Step S105 is processing for obtaining L * a * b * values when color matching after rendering is performed. First, blend processing is performed with the value of argument color1 and the value of argument color2, and the result is stored in variable postRender. The blend process is calculated by the following formula from the value of color1 (r, g, b, a) and the value of color2 (r, g, b, a), as in step S1104.

preRender.r=color1.r×color1.a+color2.r×color2.a×(1−color1.a)
preRender.g=color1.g×color1.a+color2.g×color2.a×(1−color1.a)
preRender.b=color1.b×color1.a+color2.b×color2.a×(1−color1.a)
preRender.a=color1.a+color2.a×(1−color1.a)
preRender.r = color1.r x color1.a + color2.r x color2.a x (1-color1.a)
preRender.g = color1.g x color1.a + color2.g x color2.a x (1-color1.a)
preRender.b = color1.b × color1.a + color2.b × color2.a × (1-color1.a)
preRender.a = color1.a + color2.a x (1-color1.a)

次に、CMM311のCMM.gm機能を利用して、ブレンド結果preRenderの値を入力色域(inputProfが表現)からプリンタ313の色域(printerProfが表現)に、レンダリングインテントintentで圧縮し、結果を変数postInputに格納する。最後に、CMM311のCMM.cc機能を利用して、ブレンド結果postInputの値を入力色域(inputProfが表現)からプリンタ313の色域(printerProfが表現)に変換して変数postPrinterに格納し、CMM311のCMM.lab機能を利用して、postPrinterの値をL*a*b*値に変換して変数postLabに格納する。   Next, the CMM. Using the gm function, the value of the blend result preRender is compressed from the input color gamut (represented by inputProf) to the color gamut of the printer 313 (represented by printerProf) with the rendering intent int, and the result is stored in the variable postInput. Finally, CMM 311 CMM. Using the cc function, the value of the blend result postInput is converted from the input color gamut (represented by inputProf) to the color gamut of the printer 313 (represented by printerProf), stored in the variable postPrinter, and the CMM. Using the lab function, the value of postPrinter is converted into an L * a * b * value and stored in the variable postLab.

ステップS1106は入力色域(inputProfが表現)における理論的なL*a*b*値を求める処理である。まず、引数color1の値と引数color2の値とでブレンド処理を行ない、結果を変数tRenderに格納する。ブレンド処理はステップS1105と同じである。次に、CMM311のCMM.lab機能を利用して、ブレンド結果tRenderの値をL*a*b*値に変換して変数tLabに格納する。   Step S1106 is processing for obtaining a theoretical L * a * b * value in the input color gamut (expressed by inputProf). First, blend processing is performed with the value of the argument color1 and the value of the argument color2, and the result is stored in the variable tRender. The blending process is the same as step S1105. Next, the CMM. Using the lab function, the blend result tRender value is converted into an L * a * b * value and stored in the variable tLab.

ステップS1107はL*a*b*値preLabとtLab、postLabとtLabのCIE L*a*b*色差(CIE 1976)を求める処理である。preLabとtLabの色差ΔEpreおよびpostLabとtLabの色差ΔEpostは、preLabの値(L*、a*、b*)、postLabの値(L*、a*、b*)、tLabの値(L*、a*、b*)から、以下の式により計算される。 Step S1107 is processing for obtaining CIE L * a * b * color difference (CIE 1976) of L * a * b * values preLab and tLab, and postLab and tLab. The color difference ΔE pre between preLab and tLab and the color difference ΔE post between postLab and tLab are preLab values (L *, a *, b *), postLab values (L *, a *, b *), tLab values (L *, A *, b *) is calculated by the following formula.

ΔEpre 2=(preLab.L*−tLab.L*)2+(preLab.L*−tLab.L*)2+(preLab.L*−tLab.L*)2
ΔEpost 2=(postLab.L*−tLab.L*)2+(postLab.L*−tLab.L*)2+(postLab.L*−tLab.L*)2
ΔE pre 2 = (preLab.L * −tLab.L *) 2 + (preLab.L * −tLab.L *) 2 + (preLab.L * −tLab.L *) 2
ΔE post 2 = (postLab.L * −tLab.L *) 2 + (postLab.L * −tLab.L *) 2 + (postLab.L * −tLab.L *) 2

計算結果をそれぞれ変数deltaE_preとdeltaE_postに格納する。
ステップS1108は色差deltaE_preとdeltaE_postを比較する処理である。変数deltaE_preの値の方が小さければステップS1109に進み、それ以外の場合はステップS1110に進む。
The calculation results are stored in variables deltaE_pre and deltaE_post, respectively.
Step S1108 is processing for comparing the color difference deltaE_pre and deltaE_post. If the value of the variable deltaE_pre is smaller, the process proceeds to step S1109. Otherwise, the process proceeds to step S1110.

ステップS1109はレンダリング前カラーマッチングを行なった方が理論値に近かった場合(すなわち、ステップS1108における比較によりdeltaE_pre<deltaE_postの場合)の処理である。変数returnの(r、g、b、a)に入力色域(inputProfが表現)におけるレンダリング結果を保持するpreRenderの値を格納し、変数returnの(pre_or_post)には値preを格納する。   Step S1109 is processing when the pre-rendering color matching is closer to the theoretical value (that is, deltaE_pre <deltaE_post by the comparison in step S1108). The value of preRender that holds the rendering result in the input color gamut (expressed by inputProf) is stored in (r, g, b, a) of the variable return, and the value pre is stored in (pre_or_post) of the variable return.

ステップS1110はレンダリング後カラーマッチングを行なった方が理論値に近かった場合(すなわち、ステップS1108における比較によりdeltaE_pre≧deltaE_postの場合)の処理である。変数returnの(r、g、b、a)に入力色域(inputProfが表現)におけるレンダリング結果を保持するpostRenderの値を格納し、変数returnの(pre_or_post)には値postを格納する。   Step S1110 is processing when color rendering after rendering is closer to the theoretical value (that is, deltaE_pre ≧ deltaE_post by the comparison in step S1108). The value of postRender that holds the rendering result in the input color gamut (expressed by inputProf) is stored in (r, g, b, a) of the variable return, and the value post is stored in (pre_or_post) of the variable return.

ステップS1111は検証結果DB312に検証結果を登録する処理である。図12に構成を示した検証結果DBに対して、変数color1、変数color2、変数inputProf、変数printerProf、変数intent、変数returnを引数としてレコードを登録する。color1が列1003、color2が列1004、inputProfが列1005、printerProfが列1006、intentが列1007、return(r、g、b、a)が列1008、return(pre_or_post)が列1009に、それぞれ登録される。   Step S1111 is processing for registering the verification result in the verification result DB 312. A record is registered in the verification result DB whose configuration is shown in FIG. 12 with the variables color1, variable2, variable inputProf, variable printerProf, variable intent, and variable return as arguments. color1 is column 1003, color2 is column 1004, inputProf is column 1005, printerProf is column 1006, intent is column 1007, return (r, g, b, a) is column 1008, and return (pre_or_post) is registered in column 1009. Is done.

ステップS1112は終了である。変数returnの値を戻り値として返す。   Step S1112 is the end. The value of the variable return is returned as a return value.

[プリンタ出力]
次に、図14を参照して、プリンタ出力の動作について説明する。
図14は、プリンタ出力を行なう定義済み処理の動作を示すフローチャートである。本定義済み処理は図9に示すフローチャートのステップS807から呼び出される。
[Printer output]
Next, the printer output operation will be described with reference to FIG.
FIG. 14 is a flowchart showing the operation of a predefined process for performing printer output. This defined process is called from step S807 of the flowchart shown in FIG.

ステップS1201は本定義済み処理の開始である。引数bmpは図9〜図10において、ステップS805で初期化し、ステップS820、S824、S826でレンダリングされた変数bmpと同じ値を有する。   Step S1201 is the start of this predefined process. The argument bmp is initialized in step S805 in FIGS. 9 to 10 and has the same value as the variable bmp rendered in steps S820, S824, and S826.

ステップS1202は変数の初期化処理である。coordはビットマップデータbmp.dataを左上から右下に向かってスキャンする際の座標値を保持する変数で、(x、y)はピクセル単位の座標値を表わす。図14に示したフローチャートは主に変数coordをループ変数とするループ処理で構成される。inputProfは入力プロファイル305の内容を保持する変数である。printerProfはプリンタプロファイル307の内容を保持する変数である。intentはレンダリングインテント308の内容を保持する変数である。outputbmp[]はプリンタ出力用のビットマップデータを保持する配列で、大きさはbmp.data[]と同じである。   Step S1202 is a variable initialization process. coord is bitmap data bmp. Variables that hold coordinate values when data is scanned from upper left to lower right, and (x, y) represents coordinate values in pixel units. The flowchart shown in FIG. 14 is mainly composed of loop processing using the variable “coord” as a loop variable. inputProf is a variable that holds the contents of the input profile 305. printerProf is a variable that holds the contents of the printer profile 307. intent is a variable that holds the contents of the rendering intent 308. outputbmp [] is an array that holds bitmap data for printer output, and has a size of bmp. Same as data [].

ステップS1203は変数coordが指す座標値のビットマップデータとpreまたはpostの値をbmp.data[]とbmp.pre_or_post[]から取得する処理である。取得した値をそれぞれ変数dataとpre_or_postに格納する。   In step S1203, the bitmap data of the coordinate value indicated by the variable “coord” and the value of pre or post are converted into bmp. data [] and bmp. This process is acquired from pre_or_post []. The acquired values are stored in variables “data” and “pre_or_post”, respectively.

ステップS1204は変数pre_or_postが値preかどうかの判定処理である。変数bmp.pre_or_post[]は、ステップS805で値postに初期化された後、該ピクセルにアルファブレンドレンダリングが行なわれた場合はステップS906で値preまたはpostが格納され、それ以外のレンダリングの場合は何も値が格納されない。このため、ここで判定が真になるのは、該ピクセルにレンダリング前カラーマッチングでアルファブレンドレンダリングが行なわれた場合に限られる。その場合はステップS1206に進む。それ以外の場合はステップS1205に進む。   Step S1204 is processing for determining whether or not the variable pre_or_post is the value pre. Variable bmp. pre_or_post [] is initialized to the value “post” in step S805, and if alpha blend rendering is performed on the pixel, the value “pre” or “post” is stored in step S906. Is not stored. Therefore, the determination is true only when alpha blend rendering is performed on the pixel by pre-rendering color matching. In that case, the process proceeds to step S1206. Otherwise, the process proceeds to step S1205.

ステップS1205はCMM311のCMM.gm機能を利用して、ピクセルデータを入力色域(inputProfが表現)からプリンタ313の色域(printerProfが表現)にレンダリングインテントintentで圧縮する処理である。結果は変数dataに上書きする。   In step S1205, the CMM 311 CMM. This is a process of compressing pixel data from the input color gamut (represented by inputProf) to the color gamut of the printer 313 (represented by printerProf) using a rendering intent using the gm function. The result overwrites the variable data.

ステップS1206では、変数dataの色値はすでにプリンタ313の色域(printerProfが表現)に圧縮されているので、CMM311のCMM.cc機能を利用して、入力色域(inputProfが表現)からプリンタ313の色域(printerProfが表現)に変換する処理である。結果はプリンタ出力用ビットマップデータoutputbmp[]の変数coordが指す座標位置に格納する。   In step S1206, since the color value of the variable “data” has already been compressed into the color gamut of the printer 313 (represented by “printerProf”), the CMM. This is a process for converting the input color gamut (expressed by inputProf) into the color gamut of printer 313 (expressed by printerProf) using the cc function. The result is stored in the coordinate position indicated by the variable “coord” of the printer output bitmap data outputbmp [].

ステップS1207〜S1210はループ処理である。
ステップS1207は変数coordの横方向の値coord.xを1加算する処理である。
ステップS1208は変数coordの横方向の値coord.xがビットマップデータの横方向の大きさbmp.wと等しくなったかどうかの判定処理である。等しければステップS1209に進み、等しくなければステップS1203に戻る。
Steps S1207 to S1210 are loop processing.
In step S1207, the value coord. This is a process of adding 1 to x.
In step S1208, the value coord. x is the horizontal size bmp. This is a process for determining whether or not it is equal to w. If they are equal, the process proceeds to step S1209, and if they are not equal, the process returns to step S1203.

ステップS1209は変数coordの縦方向の値coord.yを1加算する処理である。
ステップS1210は変数coordの縦方向の値coord.yがビットマップデータの縦方向の大きさbmp.hと等しくなったかどうかの判定処理である。等しければステップS1211に進み、等しくなければステップS1203に戻る。
In step S1209, the vertical value coord. This is a process of adding 1 to y.
In step S1210, the value coord. y is the vertical size bmp. This is a process for determining whether or not it is equal to h. If they are equal, the process proceeds to step S1211, and if they are not equal, the process returns to step S1203.

ステップS1211はプリンタ出力用ビットマップデータoutputbmp[]を作成し終わったので、プリンタ313のコントローラ314に送信する処理である。プリンタ313は受信したビットマップデータをRAM209にビットマップデータ315として格納し、プリンタエンジン212をビットマップデータ315にしたがって制御して出力を行なう。
ステップS1212は終了である。戻り値はない。
Step S1211 is processing to transmit to the controller 314 of the printer 313 because the printer output bitmap data outputbmp [] has been created. The printer 313 stores the received bitmap data in the RAM 209 as bitmap data 315, and controls the printer engine 212 according to the bitmap data 315 to perform output.
Step S1212 is completed. There is no return value.

[レンダラーの動作例]
最後に、図15〜図16を参照して、レンダラー310の動作の一例について、図8に示した中間コードデータを使用して説明する。
図15〜図16は、レンダラー310が図8に示した中間コードデータを図9〜図10、図11、図13に示したフローチャートにしたがってレンダリングする様子を示した図である。
[Renderer operation example]
Finally, an example of the operation of the renderer 310 will be described using the intermediate code data shown in FIG. 8 with reference to FIGS.
15 to 16 are diagrams showing how the renderer 310 renders the intermediate code data shown in FIG. 8 according to the flowcharts shown in FIGS. 9 to 10, 11, and 13.

中間コードデータはステップS802で変数dlcに読み込まれる。変数fillはfill(r、g、b、a)=(1.0、1.0、1.0、1.0)で初期化される。変数strokeはstroke(r、g、b、w)=(0.0、0.0、0.0、1)で初期化される。   The intermediate code data is read into the variable dlc in step S802. The variable fill is initialized with fill (r, g, b, a) = (1.0, 1.0, 1.0, 1.0). The variable stroke is initialized with stroke (r, g, b, w) = (0.0, 0.0, 0.0, 1).

dlcの1つ目のオペコード(PageStart)では、ステップS804〜S805で変数bmpが初期化される。ここではプリンタの解像度を300DPI(Dots Per Inch)とすると、1インチ=25.4mmとして、11.811 PPMとなるので、bmp.w=210.0×11.811=2480.31≒2480(小数点以下切り捨て)、bmp.h=297.0×11.811=3507.867≒3507(小数点以下切り捨て)、bmp.res=11.811(PPM)となる。また、bmp.data[]とbmp.pre_or_post[]の両配列の大きさは2480×3507=8444856となる。bmp.data[]はステップS802で初期化されたfill(r、g、b、a)=(1.0、1.0、1.0、1.0)で初期化される。pre_or_post[] はpostで初期化される。   In the first opcode (PageStart) of dlc, the variable bmp is initialized in steps S804 to S805. Here, assuming that the resolution of the printer is 300 DPI (Dots Per Inch), 1 inch = 25.4 mm and 11.1811 PPM, so bmp. w = 210.0 × 11.811 = 2480.31≈2480 (rounded down), bmp. h = 297.0 × 11.811 = 3507.867≈3507 (rounded down), bmp. res = 11.811 (PPM). Bmp. data [] and bmp. The size of both arrays of pre_or_post [] is 2480 × 3507 = 84444856. bmp. data [] is initialized with fill (r, g, b, a) = (1.0, 1.0, 1.0, 1.0) initialized in step S802. pre_or_post [] is initialized with post.

dlcの2つ目のオペコード(Fill)では、ステップS809〜S810で変数fillが更新される。ここではflll(r、g、b、a)=(1.0、1.0、0.0、0.7)となる。   In the second operation code (Fill) of dlc, the variable fill is updated in steps S809 to S810. Here, flll (r, g, b, a) = (1.0, 1.0, 0.0, 0.7).

dlcの3つ目のオペコード(Stroke)では、ステップS811〜S812で変数strokeが更新される。ここで、線幅にはオペランドの2.0に解像度bmp.resを乗算するので、2.0×11.811=23.622≒23(小数点以下切り捨て)となり、stroke(r、g、b、w)=(0.0、0.0、1.0、23)となる。   In the third operation code (Stroke) of dlc, the variable stroke is updated in steps S811 to S812. Here, since the line width is multiplied by 2.0 of the operand and the resolution bmp.res, 2.0 × 11.811 = 23.622≈23 (rounded down to the decimal point), and stroke (r, g, b, w) = (0.0, 0.0, 1.0, 23).

dlcの4つ目のオペコード(PathStart)では、ステップS813〜S814で変数path[]とcursorが初期化される。ここではオペランドに依存した処理は行なわれないので、cursor(x、y)=(0、0)である。   In the fourth opcode (PathStart) of dlc, variables path [] and cursor are initialized in steps S813 to S814. Here, since the processing depending on the operand is not performed, cursor (x, y) = (0, 0).

dlcの5つ目のオペコード(PathMoveTo)では、ステップS821〜S822で変数cursorが更新される。座標値には解像度bmp.resを乗算するので、cursor.x=80.0×11.811=944.88≒944(小数点以下切り捨て)、cursor.y=30.0×11.811=354.33≒354(小数点以下切り捨て)となる。   In the fifth opcode (PathMoveTo) of dlc, the variable “cursor” is updated in steps S821 to S822. The coordinate value has a resolution bmp. Since res is multiplied, curror. x = 80.0 × 11.811 = 944.88≈944 (truncated after the decimal point), cursor. y = 30.0 × 11.811 = 354.33≈354 (rounded down to the nearest decimal point).

dlcの6つ目のオペコード(PathArc)では、円弧1301がレンダリングされる。開始点1302は変数cursorの現在の値である(944、354)である。中心点1303はオペランドの(80.0、80.0)に解像度bmp.resを乗算するので、80.0×11.811=944.88≒944(小数点以下切り捨て)より(944、 944)となり、角度はオペランドにより360°となる。外形線は変数strokeの現在の値である青色、線幅23ピクセルである。開始点1302から時計回りに1301に沿って開始点1302に戻る外形線の各座標が変数path[]に追加される。   In the sixth operation code (PathArc) of dlc, an arc 1301 is rendered. The starting point 1302 is the current value of the variable cursor (944, 354). The center point 1303 is set to a resolution bmp. Since res is multiplied, 80.0 × 11.811 = 944.88≈944 (truncated after the decimal point) is (944, 944), and the angle is 360 ° depending on the operand. The outline is blue, which is the current value of the variable stroke, and has a line width of 23 pixels. Each coordinate of the outline that returns from the start point 1302 along the clockwise direction 1301 to the start point 1302 is added to the variable path [].

dlcの7つ目のオペコード(PathEnd)では、オペランドが1ではないことからステップS818の処理は行なわれないが、path[]に保持されている開始点と終了点がともに1302に示す(944、354)であることからステップS819で閉パスと判定され、ステップS820でパス塗りつぶし定義済み処理(図11)が呼び出される。   In the seventh opcode (PathEnd) of dlc, since the operand is not 1, the process of step S818 is not performed, but both the start point and end point held in path [] are indicated by 1302 (944, 354), it is determined in step S819 that the path is closed, and in step S820, the path fill defined process (FIG. 11) is called.

このパス塗りつぶし処理ではビットマップデータの各ピクセル座標がpath[] 内部かどうかを判定し、path[] 内部ならばfillで塗りつぶす処理が行なわれる。すなわち、外形線1301の内部の点について、変数fillの現在の値である(r、g、b、a)=(1.0、1.0、0.0、0.7)で塗りつぶされる。アルファ値が1.0ではないのでステップS906でアルファブレンド定義済み処理(図13)が呼び出される。   In this path filling process, it is determined whether or not each pixel coordinate of the bitmap data is inside path [], and if it is inside path [], a fill process is performed. That is, the points inside the outline 1301 are filled with (r, g, b, a) = (1.0, 1.0, 0.0, 0.7), which is the current value of the variable fill. Since the alpha value is not 1.0, alpha blend defined processing (FIG. 13) is called in step S906.

ステップS1103で検証結果DBにレコードが見つからなかったとすると、ステップS1104〜S1111のアルファブレンド処理が行なわれる。ここではbmp.data[] の初期化値(1.0、1.0、1.0、1.0)とfill(1.0、1.0、0.0、0.7)でブレンド処理が行なわれる。ブレンド前カラーマッチングかブレンド後カラーマッチングのどちらが選択されるかは入力プロファイル305、プリンタプロファイル307、レンダリングインテント308の内容に依存するが、ここではレンダリング前カラーマッチングが選択されたとする。また、ブレンド結果については、外形線1301の内部の点について、ビットマップデータbmp.data[]の値が(0.9、0.2、0.2、1.0)、pre_or_post[]の値がpreになったとする。この時点での様子を図15に示す。   If no record is found in the verification result DB in step S1103, alpha blending processing in steps S1104 to S1111 is performed. Here, bmp. The blend process is performed with the initialization values (1.0, 1.0, 1.0, 1.0) of data [] and fill (1.0, 1.0, 0.0, 0.7). Whether pre-blend color matching or post-blend color matching is selected depends on the contents of the input profile 305, printer profile 307, and rendering intent 308. Here, it is assumed that pre-rendering color matching is selected. As for the blend result, the bitmap data bmp. It is assumed that the value of data [] is (0.9, 0.2, 0.2, 1.0) and the value of pre_or_post [] is pre. A state at this time is shown in FIG.

dlcの8つ目のオペコード(Fill)では、ステップS809〜S810で変数fillが更新される。ここではflll(r、g、b、a)=(1.0、0.0、0.0、05)となる。   In the eighth opcode (Fill) of dlc, the variable fill is updated in steps S809 to S810. Here, flll (r, g, b, a) = (1.0, 0.0, 0.0, 05).

dlcの9つ目のオペコード(PathStart)では、ステップS813〜S814で変数path[]とcursorが初期化される。ここではオペランドに依存した処理は行なわれないので、cursor(x、y)=(0、0)である。   In the ninth opcode (PathStart) of dlc, the variables path [] and cursor are initialized in steps S813 to S814. Here, since the processing depending on the operand is not performed, cursor (x, y) = (0, 0).

dlcの10個めのオペコード(PathMoveTo)では、ステップS821〜S822で変数cursorが更新される。座標値には解像度bmp.resを乗算するので、cursor.x=140.0×11.811=1653.54≒1653(小数点以下切り捨て)、cursor.y=30.0×11.811=354.33≒354(小数点以下切り捨て)となる。   In the tenth operation code (PathMoveTo) of dlc, the variable cursor is updated in steps S821 to S822. The coordinate value has a resolution bmp. Since res is multiplied, curror. x = 140.0 × 11.811 = 1653.54≈1653 (rounded down), cursor. y = 30.0 × 11.811 = 354.33≈354 (rounded down to the nearest decimal point).

dlcの11個めのオペコード(PathArc)では、円弧1304がレンダリングされる。開始点1305は変数cursorの現在の値である(1653、354)である。中心点1306はオペランドの(14.0、 80.0)に解像度bmp.resを乗算するので、140.0×11.811=1653.54≒1653(小数点以下切り捨て)、80.0×11.811=944.88≒944(小数点以下切り捨て)より(1653、 944)となり、角度はオペランドにより360°となる。外形線は変数strokeの現在の値である青色、線幅23ピクセルである。開始点1305から時計回りに1304に沿って開始点1305に戻る外形線の各座標が変数path[]に追加される。   In the elc 11th opcode (PathArc), arc 1304 is rendered. The starting point 1305 is the current value of the variable cursor (1653, 354). The center point 1306 is set at the resolution (bmp.1) at the operand (14.0, 80.0). Since res is multiplied, 140.0 × 11.811 = 1653.54≈1653 (truncated after the decimal point) and 80.0 × 11.811 = 944.88≈944 (truncated after the decimal point) are (1653, 944). The angle is 360 ° depending on the operand. The outline is blue, which is the current value of the variable stroke, and has a line width of 23 pixels. Each coordinate of the outline that returns from the start point 1305 to the start point 1305 along 1304 in the clockwise direction is added to the variable path [].

dlcの12個目のオペコード(PathEnd)では、オペランドが1ではないことからステップS818の処理は行なわれないが、path[]に保持されている開始点と終了点がともに1305に示す(1653、354)であることからステップS819で閉パスと判定され、ステップS820でパス塗りつぶし定義済み処理(図11)が呼び出される。   In the 12th opcode (PathEnd) of dlc, since the operand is not 1, the process of step S818 is not performed, but both the start point and end point held in path [] are shown in 1305 (1653, 354), it is determined in step S819 that the path is closed, and in step S820, the path fill defined process (FIG. 11) is called.

このパス塗りつぶし処理ではビットマップデータの各ピクセル座標がpath[]内部かどうかを判定し、path[]内部ならばfillで塗りつぶす処理が行なわれる。すなわち、外形線1304の内部の点について、変数fillの現在の値である(r、g、b、a)=(1.0、0.0、0.0、05)で塗りつぶされる。アルファ値が1.0ではないのでステップS906でアルファブレンド定義済み処理(図13)が呼び出される。   In this path filling process, it is determined whether or not each pixel coordinate of the bitmap data is inside the path [], and if it is inside the path [], a filling process is performed. That is, the points inside the outline 1304 are filled with (r, g, b, a) = (1.0, 0.0, 0.0, 05), which is the current value of the variable fill. Since the alpha value is not 1.0, alpha blend defined processing (FIG. 13) is called in step S906.

ここでもステップS1103で検証結果DBにレコードが見つからなかったとすると、S1104〜S1111のアルファブレンド処理が行なわれる。円弧1301の外形線と重なっている領域1308についてはbmp.data[]の値(0.0、0.0、1.0、1.0)とfill(1.0、0.0、0.0、0.5)でブレンド処理が行なわれる。円弧1301の内部と重なっている領域1307についてはbmp.data[]の値(0.9、0.2、0.2、1.0)とfill(1.0、0.0、0.0、0.5)でブレンド処理が行なわれる。   Here again, assuming that no record is found in the verification result DB in step S1103, alpha blending processing in steps S1104 to S1111 is performed. For a region 1308 overlapping the outline of the arc 1301, bmp. Blend processing is performed with the values of data [] (0.0, 0.0, 1.0, 1.0) and fill (1.0, 0.0, 0.0, 0.5). For a region 1307 overlapping the inside of the arc 1301, bmp. Blend processing is performed with the values of data [] (0.9, 0.2, 0.2, 1.0) and fill (1.0, 0.0, 0.0, 0.5).

それ以外の領域1306についてはbmp.data[]の初期化値(1.0、1.0、1.0、1.0)とfill(1.0、0.0、0.0、0.7)でブレンド処理が行なわれる。ブレンド前カラーマッチングかブレンド後カラーマッチングのどちらが選択されるかは入力プロファイル305、プリンタプロファイル307、レンダリングインテント308の内容に依存するが、ここではすべてレンダリング後カラーマッチングが選択されたとする。   For other regions 1306, bmp. The blend process is performed with the initialization values (1.0, 1.0, 1.0, 1.0) of data [] and fill (1.0, 0.0, 0.0, 0.7). Whether pre-blend color matching or post-blend color matching is selected depends on the contents of the input profile 305, printer profile 307, and rendering intent 308. Here, it is assumed that all post-rendering color matching is selected.

ブレンド結果については、円弧1301の外形線と重なっている領域1308についてビットマップデータbmp.data[]の値が(0.5、0.0、0.5、1.0)、円弧1301の内部と重なっている領域1307についてビットマップデータbmp.data[]の値が(0.95、0.1、0.1、1.0)、それ以外の領域についてはbmp.data[]の値が(1.0、0.5、0.5、 1.0)となる。pre_or_post[]の値はすべてpostである。この時点での様子を図16に示す。
以降、dlcの13個目〜17個めのオペコードについても同様の処理が行なわれる。
Regarding the blending result, bitmap data bmp. For the region 1308 overlapping the outline of the arc 1301 is obtained. For the area 1307 where the value of data [] is (0.5, 0.0, 0.5, 1.0) and overlaps the inside of the arc 1301, the bitmap data bmp. The value of data [] is (0.95, 0.1, 0.1, 1.0), and bmp. The value of data [] is (1.0, 0.5, 0.5, 1.0). The values of pre_or_post [] are all post. A state at this time is shown in FIG.
Thereafter, the same processing is performed for the 13th to 17th operation codes of dlc.

18個めのオペコード(PageEnd)では、ステップS807でプリンタ出力定義済み処理(図14)が呼び出される。   In the 18th operation code (PageEnd), the printer output defined process (FIG. 14) is called in step S807.

この時点でbmp.pre_or_post[]の値がpreであるピクセル、たとえば円弧1301内部で他の円弧と重なっていない領域については、ステップS1205でプリンタの色域に圧縮が行なわれる。次に、すべてのピクセルについてステップS1206でプリンタの色域に変換が行なわれる。こうして用意されたプリンタ出力用ビットマップがステップS1211でプリンタ313のコントローラ314に送信され、最終的な出力を得る。   At this point, bmp. For pixels whose pre_or_post [] value is pre, for example, an area that does not overlap other arcs within the arc 1301, the color gamut of the printer is compressed in step S1205. Next, all the pixels are converted into the printer color gamut in step S1206. The printer output bitmap prepared in this way is transmitted to the controller 314 of the printer 313 in step S1211, and a final output is obtained.

[その他の実施形態]
上記実施形態では中間コードデータをクライアント101でレンダリングしたが、クライアント101からプリンタ103に中間コードデータを送信することで、レンダリングはプリンタ103で行なうようにしてもよい。
[Other embodiments]
In the above embodiment, the intermediate code data is rendered by the client 101. However, the rendering may be performed by the printer 103 by transmitting the intermediate code data from the client 101 to the printer 103.

また上記実施形態では入力プロファイル305が表現する入力色域(カラースペース)でレンダリングを行なったが、レンダリングプロファイル306が表現するレンダリング色域(カラースペース)でレンダリングしてもよいし、プリンタプロファイル307が表現するプリンタ色域(カラースペース)でレンダリングするようにしてもよい。   In the above embodiment, rendering is performed in the input color gamut (color space) represented by the input profile 305. However, rendering may be performed in the rendering color gamut (color space) represented by the rendering profile 306, or the printer profile 307 may be rendered. You may make it render by the printer color gamut (color space) to express.

また上記実施形態ではPDLとしてSVG 1.1を使用したが、もちろんこれに限るものではなく、SVGのその他のバージョン、あるいは前述の中間コードに変換可能なものであれば任意のPDLを使用することが可能である。   In the above embodiment, SVG 1.1 is used as the PDL. However, the present invention is not limited to this, and any other version of SVG or any PDL that can be converted into the above intermediate code should be used. Is possible.

また上記実施形態では1ページの表示・印刷を行なう例を示したが、PDLが複数ページに対応するものであれば、中間コード、ビューワプログラム、コントローラをそれに対応させてもよい。   In the above-described embodiment, an example in which one page is displayed and printed has been described. However, if the PDL corresponds to a plurality of pages, an intermediate code, a viewer program, and a controller may be associated therewith.

また上記実施形態ではSVG文書につき一つの入力プロファイルとレンダリングインテントを使用したが、SVG文書内に存在するオブジェクトの種類ごと、たとえばイメージ、グラフィックス、テキストオブジェクトごとに入力プロファイルとレンダリングインテントを指定できるようにしてもよい。さらに、個々のオブジェクトごとに入力プロファイルとレンダリングインテントを指定できるようにするシステムも考えられる。   In the above embodiment, one input profile and rendering intent are used for each SVG document. However, an input profile and rendering intent are specified for each type of object existing in the SVG document, for example, for each image, graphics, and text object. You may be able to do it. Furthermore, a system that allows an input profile and a rendering intent to be specified for each object is also conceivable.

また図1においてPCとプリンタはネットワーク接続されるとしたが、これ以外の接続形態であってもよく、たとえばPCとプリンタが直接接続されていても、あるいはメモリカードやCDなどのメディアを通じてデータを受け渡しするような形態であっても、本発明の実施を妨げるものではない。   In FIG. 1, the PC and the printer are connected to the network. However, other connection forms may be used. For example, even if the PC and the printer are directly connected, or data is transmitted through a medium such as a memory card or CD. Even if it is a form to deliver, implementation of this invention is not prevented.

また図2においてプログラムはRAM 202に格納されるとしたが、これに限るものではなく、他の実施形態においてはプログラムを外部記憶装置204から読み込んで実行するようにしてもよいし、ネットワークインタフェース203を介して受信して実行するようにしてもよい。また、図2には示していないが、ROM等の読み出し専用の内部記憶部から読み込んで実行するようにしてもよい。また、キーボード206やポインティングデバイス207の代わりに、あるいはそれらに加えて、音声入力等の他の入力装置を備えることもできる。また、ディスプレイ205、キーボード206、ポインティングデバイス207を他のコンピュータ装置と共有する場合も考えられる。   In FIG. 2, the program is stored in the RAM 202. However, the present invention is not limited to this. In other embodiments, the program may be read from the external storage device 204 and executed. It may be received and executed via Although not shown in FIG. 2, the program may be read from a read-only internal storage unit such as a ROM and executed. Further, instead of or in addition to the keyboard 206 and the pointing device 207, other input devices such as voice input may be provided. Further, the display 205, the keyboard 206, and the pointing device 207 may be shared with other computer devices.

また図4において中間コードデータ303、ビットマップデータ304、315をRAMに保持したが、これ以外に、ファイルやデータベースその他の永続記憶に保存してもよい。また、同じPDL文書に対する中間コードデータはキャッシュしておいて、次回以降の処理に利用する形態も考えられる。   In FIG. 4, the intermediate code data 303 and the bitmap data 304 and 315 are stored in the RAM, but may be stored in a file, database, or other permanent storage. Further, it is also possible to consider a form in which intermediate code data for the same PDL document is cached and used for subsequent processing.

また図7において中間コードの仕様を示したが、使用可能な中間コードはこの仕様に限定されるものではない。たとえば単位系はmm以外の任意の単位系またはその組み合わせであってもよい。パスにはベジエ曲線、楕円弧、その他の数学的に表現可能な任意のパスを記述できるようにしてもよい。Fillは単色ではなくブラシ、イメージ、グラデーション等の複雑な塗りを行なえるようにしてもよい。色はRGB、RGBA以外にカラープロファイルによる指定、デバイスカラーによる指定、特色の指定なども行なえるようにしてもよい。また、オペコードとして1バイト整数、オペランドとして2バイト浮動小数点数を使うことも単なる一例であって、他のエンコード方法を使用しても構わない。あるいは、中間コードをプリンタ103に送信する形態においては、プリンタ103が解釈可能なPDLを用いても構わない。   Moreover, although the specification of the intermediate code is shown in FIG. 7, the usable intermediate code is not limited to this specification. For example, the unit system may be any unit system other than mm or a combination thereof. The path may be a Bezier curve, elliptical arc, or any other mathematically expressible path. The Fill may be made not to be a single color but to be able to perform complicated painting such as a brush, an image, and gradation. In addition to RGB and RGBA, the color may be specified by a color profile, specified by a device color, or specified by a special color. The use of a 1-byte integer as an opcode and a 2-byte floating point number as an operand is merely an example, and other encoding methods may be used. Alternatively, in the form in which the intermediate code is transmitted to the printer 103, PDL interpretable by the printer 103 may be used.

また図11において汎用的アルゴリズムを使用してビットマップ全体をスキャンし、各座標が引数pathが表現するパスに含まれるかどうかを判定したが、これ以外に、引数pathが表現するパスに含まれる座標をあらかじめ抽出し、それらの座標に対してレンダリングを行なう方法も考えられる。   In FIG. 11, the entire bitmap is scanned using a general-purpose algorithm to determine whether or not each coordinate is included in the path represented by the argument path. In addition to this, it is included in the path represented by the argument path. A method of extracting coordinates in advance and rendering the coordinates is also conceivable.

また図13において色差としてCIE L*a*b*色差(CIE 1976)を使用したが、それ以外の色差、たとえばCIE ΔE94(CIE 1994)やCIE ΔE2000(CIE 2000)等を用いてもよい。 Further, although CIE L * a * b * color difference (CIE 1976) is used as the color difference in FIG. 13, other color differences such as CIE ΔE 94 (CIE 1994) and CIE ΔE 2000 (CIE 2000) may be used. .

なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータがその供給されたプログラムコードを読み出して実行することによっても達成され得る。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。   In the present invention, a software program that realizes the functions of the above-described embodiments is directly or remotely supplied to a system or apparatus, and the computer of the system or apparatus reads and executes the supplied program code. Can also be achieved. In that case, as long as it has the function of a program, the form does not need to be a program.

従って、本発明の機能処理をコンピュータで実現するために、そのコンピュータにインストールされるプログラムコード自体およびそのプログラムを格納した記憶媒体も本発明を構成することになる。つまり、本発明の特許請求の範囲には、本発明の機能処理を実現するためのコンピュータプログラム自体、およびそのプログラムを格納した記憶媒体も含まれる。   Therefore, in order to realize the functional processing of the present invention with a computer, the program code itself installed in the computer and the storage medium storing the program also constitute the present invention. In other words, the claims of the present invention include the computer program itself for realizing the functional processing of the present invention and a storage medium storing the program.

その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM、DVD−R)などがある。
In this case, the program may be in any form as long as it has a program function, such as an object code, a program executed by an interpreter, or script data supplied to the OS.
As a storage medium for supplying the program, for example, flexible disk, hard disk, optical disk, magneto-optical disk, MO, CD-ROM, CD-R, CD-RW, magnetic tape, nonvolatile memory card, ROM, DVD (DVD-ROM, DVD-R).

その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、そのホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWebサーバも、本発明の請求の範囲に含まれるものである。   As another program supply method, a client computer browser is used to connect to an Internet homepage, and the computer program of the present invention itself or a compressed file including an automatic installation function is downloaded from the homepage to a storage medium such as a hard disk. Can also be supplied. It can also be realized by dividing the program code constituting the program of the present invention into a plurality of files and downloading each file from a different homepage. That is, a Web server that allows a plurality of users to download a program file for realizing the functional processing of the present invention on a computer is also included in the scope of the present invention.

また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。   In addition, the program of the present invention is encrypted, stored in a storage medium such as a CD-ROM, distributed to users, and key information for decryption is downloaded from a homepage via the Internet to users who have cleared predetermined conditions. It is also possible to execute the encrypted program by using the key information and install the program on a computer.

また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。   In addition to the functions of the above-described embodiments being realized by the computer executing the read program, the OS running on the computer based on an instruction of the program is a part of the actual processing. Alternatively, the functions of the above-described embodiment can be realized by performing all of them and performing the processing.

さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。   Further, after the program read from the storage medium is written in a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion board or The CPU or the like provided in the function expansion unit performs part or all of the actual processing, and the functions of the above-described embodiments are also realized by the processing.

本発明に係る一実施形態の概略構成を示す図である。It is a figure showing a schematic structure of one embodiment concerning the present invention. 同実施形態におけるコンピュータ装置の構成を示す図である。It is a figure which shows the structure of the computer apparatus in the embodiment. 同実施形態におけるプリンタ装置の構成を示す図である。2 is a diagram illustrating a configuration of a printer apparatus according to the embodiment. FIG. 同実施形態の全体構成を示すブロック図である。It is a block diagram which shows the whole structure of the embodiment. 同実施形態で使用するSVG文書ファイルの内容を示す図である。It is a figure which shows the content of the SVG document file used in the embodiment. 同実施形態で使用するSVG文書ファイルのレンダリング例である。It is an example of rendering of the SVG document file used in the embodiment. 同実施形態で使用する中間コード仕様を示す図である。It is a figure which shows the intermediate code specification used in the embodiment. 同実施形態で使用するSVG文書ファイルを変換した中間コードのダンプ表示例である。It is a dump display example of an intermediate code obtained by converting an SVG document file used in the embodiment. 同実施形態におけるレンダラーの動作を示すフローチャート(1)である。It is a flowchart (1) which shows the operation | movement of the renderer in the embodiment. 同実施形態におけるレンダラーの動作を示すフローチャート(2)である。It is a flowchart (2) which shows the operation | movement of the renderer in the same embodiment. 同実施形態におけるパス塗りつぶし動作(定義済み処理)を示すフローチャートである。It is a flowchart which shows the path | pass painting operation | movement (predefined process) in the embodiment. 同実施形態における検証結果DBの構成例を示す図である。It is a figure which shows the structural example of verification result DB in the same embodiment. 同実施形態におけるアルファブレンド動作(定義済み処理)を示すフローチャートである。It is a flowchart which shows the alpha blend operation | movement (predefined process) in the embodiment. 同実施形態におけるプリンタ出力準備動作を示すフローチャートである。6 is a flowchart illustrating a printer output preparation operation in the embodiment. 同実施形態におけるレンダラーがレンダリングしたビットマップ例(1)である。It is a bitmap example (1) rendered by the renderer in the same embodiment. 同実施形態におけるレンダラーがレンダリングしたビットマップ例(2)である。It is a bitmap example (2) rendered by the renderer in the same embodiment.

符号の説明Explanation of symbols

101…クライアント
102…プリンタ
103…ネットワーク
201…CPU
202…RAM
203…ネットワークインタフェース
204…外部記憶装置
205…ディスプレイ
206…キーボード
207…ポインティングデバイス
208…CPU
209…RAM
210…ネットワークインタフェース
211…外部記憶装置
212…プリンタエンジン
101 ... Client 102 ... Printer 103 ... Network 201 ... CPU
202 ... RAM
203 ... Network interface 204 ... External storage device 205 ... Display 206 ... Keyboard 207 ... Pointing device 208 ... CPU
209 ... RAM
210: Network interface 211 ... External storage device 212 ... Printer engine

Claims (11)

記述言語文書をレンダリングするレンダリング手段と、
前記記述言語文書で指定された色情報を、前記記述言語文書を印刷する印刷デバイス用の色情報に圧縮することで変換するカラーマッチング手段と、
前記記述言語文書でアルファブレンドレンダリングが必要な場合、前記カラーマッチング手段による前記変換を前記レンダリング前に行なうか前記レンダリング後に行なうかを判断し、該判断結果によりいずれかを選択する選択手段と
を備えることを特徴とする印刷装置。
A rendering means for rendering a description language document;
Color matching means for converting the color information specified in the description language document by compressing the color information into color information for a printing device that prints the description language document;
When the description language document requires alpha blend rendering, the color matching unit determines whether to perform the conversion before the rendering or after the rendering, and includes a selection unit that selects one based on the determination result. A printing apparatus characterized by that.
前記選択手段による選択は、前記カラーマッチング手段による前記変換を、前記レンダリング前に行なった場合と前記レンダリング後に行なった場合の結果を検証し、前記選択をすることを特徴とする請求項1に記載の印刷装置。   The selection by the selection unit is performed by verifying a result when the conversion by the color matching unit is performed before the rendering and after the rendering and performing the selection. Printing device. 前記選択手段における選択に使用した条件と選択結果とを保持しておく保持手段と、
次回以降のアルファブレンドレンダリングの際、前記保持手段で保持した情報を利用する利用手段と、
をさらに備えることを特徴とする請求項1または請求項2に記載の印刷装置。
Holding means for holding the conditions used for selection in the selection means and the selection results;
Means for using the information held by the holding means at the time of subsequent alpha blend rendering;
The printing apparatus according to claim 1, further comprising:
記述言語文書をレンダリングするレンダリングステップと、
前記記述言語文書で指定された色情報を、前記記述言語文書を印刷する印刷デバイス用の色情報に圧縮することで変換するカラーマッチングステップと、
前記記述言語文書でアルファブレンドレンダリングが必要な場合、前記カラーマッチングステップによる前記変換を前記レンダリング前に行なうか前記レンダリング後に行なうかを判断し、該判断結果によりいずれかを選択する選択ステップと
を備えることを特徴とする印刷装置の制御方法。
A rendering step for rendering a description language document;
A color matching step of converting the color information specified in the description language document by compressing the color information into color information for a printing device that prints the description language document;
When the description language document requires alpha blend rendering, a determination step of determining whether the conversion by the color matching step is performed before the rendering or after the rendering, and selecting one of them based on the determination result is provided. A control method for a printing apparatus.
前記選択ステップによる選択は、前記カラーマッチングステップによる前記変換を、前記レンダリング前に行なった場合と前記レンダリング後に行なった場合の結果を検証し、前記選択をすることを特徴とする請求項4に記載の印刷装置の制御方法。   5. The selection according to claim 4, wherein the selection by the selection step is performed by verifying a result when the conversion by the color matching step is performed before the rendering and after the rendering. 5. Method for controlling the printing apparatus. 前記選択手段における選択に使用した条件と選択結果を保持しておく保持ステップと、
次回以降のアルファブレンドレンダリングの際、前記保持手段で保持した情報を利用する利用ステップと
をさらに備えることを特徴とする請求項4または請求項5に記載の印刷装置の制御方法。
A holding step for holding the conditions and selection results used for selection in the selection means;
The printing apparatus control method according to claim 4, further comprising: a use step of using information held by the holding unit at the time of subsequent alpha blend rendering.
記述言語文書をレンダリングするレンダリングステップと、
前記記述言語文書で指定された色情報を、前記記述言語文書を印刷する印刷デバイス用の色情報に圧縮することで変換するカラーマッチングステップと、
前記記述言語文書でアルファブレンドレンダリングが必要な場合、前記カラーマッチングステップによる前記変換を前記レンダリング前に行なうか前記レンダリング後に行なうかを判断し、該判断結果によりいずれかを選択する選択ステップと
を備えることを特徴とする印刷装置の制御プログラム。
A rendering step for rendering a description language document;
A color matching step of converting the color information specified in the description language document by compressing the color information into color information for a printing device that prints the description language document;
When the description language document requires alpha blend rendering, a determination step of determining whether the conversion by the color matching step is performed before the rendering or after the rendering, and selecting one of them based on the determination result is provided. A control program for a printing apparatus.
前記選択ステップによる選択は、前記カラーマッチングステップによる前記変換を、前記レンダリング前に行なった場合と前記レンダリング後に行なった場合の結果を検証し、前記選択をすることを特徴とする請求項7に記載の印刷装置の制御プログラム。   The selection by the selection step is performed by verifying a result when the conversion by the color matching step is performed before the rendering and after the rendering and performing the selection. Printer control program. 前記選択ステップにおける選択に使用した条件と選択結果を保持しておく保持ステップ
と、
次回以降のアルファブレンドレンダリングの際、前記保持手段で保持した情報を利用する利用ステップと
をさらに備えることを特徴とする請求項7または請求項8に記載の印刷装置の制御プログラム。
A holding step for holding the conditions and selection results used for selection in the selection step;
The printing apparatus control program according to claim 7, further comprising: a use step of using information held by the holding unit at the time of subsequent alpha blend rendering.
請求項7から請求項9のいずれかに記載のプログラムを格納したコンピュータ読み取り可能な記憶媒体。   A computer-readable storage medium storing the program according to any one of claims 7 to 9. 請求項7から請求項10のいずれかに記載のプログラムを格納したWebサーバ。   A Web server storing the program according to claim 7.
JP2005168569A 2005-06-08 2005-06-08 Printing apparatus, printing apparatus control method, printing apparatus control program, storage medium, and Web server Expired - Fee Related JP4480160B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2005168569A JP4480160B2 (en) 2005-06-08 2005-06-08 Printing apparatus, printing apparatus control method, printing apparatus control program, storage medium, and Web server
EP06252837A EP1732308A2 (en) 2005-06-08 2006-06-01 Imaging device, control method, and program
US11/422,684 US8355164B2 (en) 2005-06-08 2006-06-07 Imaging device, control method, and program for rendering data and performing color matching
CNB2006100912648A CN100405815C (en) 2005-06-08 2006-06-08 Imaging device, control method, and program
KR1020060051364A KR100844972B1 (en) 2005-06-08 2006-06-08 Imaging device, control method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005168569A JP4480160B2 (en) 2005-06-08 2005-06-08 Printing apparatus, printing apparatus control method, printing apparatus control program, storage medium, and Web server

Publications (2)

Publication Number Publication Date
JP2006345197A JP2006345197A (en) 2006-12-21
JP4480160B2 true JP4480160B2 (en) 2010-06-16

Family

ID=37510516

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005168569A Expired - Fee Related JP4480160B2 (en) 2005-06-08 2005-06-08 Printing apparatus, printing apparatus control method, printing apparatus control program, storage medium, and Web server

Country Status (2)

Country Link
JP (1) JP4480160B2 (en)
CN (1) CN100405815C (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4355964B2 (en) * 2007-03-20 2009-11-04 セイコーエプソン株式会社 Print control according to the combination of color materials
US8699042B2 (en) * 2008-06-12 2014-04-15 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for multi-mode color blending
JP5033747B2 (en) * 2008-09-29 2012-09-26 京セラドキュメントソリューションズ株式会社 Image processing apparatus, image processing method, and image processing program
CN106547530A (en) * 2015-09-23 2017-03-29 北京搜狗科技发展有限公司 A kind of interface processing method and device
US11567710B2 (en) * 2019-08-21 2023-01-31 Sun Chemical Corporation Metal deco digital proofing process

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006345099A (en) * 2005-06-07 2006-12-21 Canon Inc Image processing apparatus and image processing method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3548223B2 (en) * 1994-04-18 2004-07-28 キヤノン株式会社 Image processing method and apparatus
JPH087312A (en) * 1994-06-17 1996-01-12 Canon Inc Optical information recording/reproducing apparatus
JP3554034B2 (en) * 1994-09-02 2004-08-11 キヤノン株式会社 Color printing apparatus and method
JP3063957B2 (en) * 1995-03-01 2000-07-12 富士ゼロックス株式会社 Image processing device
US6208351B1 (en) * 1997-12-22 2001-03-27 Adobe Systems Incorporated Conversion of alpha-multiplied color data
US6462748B1 (en) * 2000-02-25 2002-10-08 Microsoft Corporation System and method for processing color objects in integrated dual color spaces
JP2004193876A (en) * 2002-12-10 2004-07-08 Canon Inc Image processing method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006345099A (en) * 2005-06-07 2006-12-21 Canon Inc Image processing apparatus and image processing method

Also Published As

Publication number Publication date
JP2006345197A (en) 2006-12-21
CN100405815C (en) 2008-07-23
CN1878234A (en) 2006-12-13

Similar Documents

Publication Publication Date Title
US8355164B2 (en) Imaging device, control method, and program for rendering data and performing color matching
JP4174484B2 (en) How to render graphical objects
JP5901704B2 (en) Information processing apparatus, information processing method, and program
JP4480160B2 (en) Printing apparatus, printing apparatus control method, printing apparatus control program, storage medium, and Web server
JPH09181908A (en) Color image processor and its method
KR20030005277A (en) Shape processor
US9176700B2 (en) Systems and/or methods for efficient rendering of business model related vector graphics
US20030016233A1 (en) Method and system for manipulation of graphics information
JP4960900B2 (en) Information processing apparatus and image forming apparatus
US6281893B1 (en) Method and apparatus for providing an object oriented approach to a device independent graphics control system
JP2008117379A (en) System, method and computer program for encoded raster document generation
US20030001864A1 (en) Method and system for manipulation of garphics information
JP2006341457A (en) Printer
JP4818013B2 (en) Image processing method, image processing apparatus, and image processing program
JP3817473B2 (en) Image output apparatus and image processing method
JP2001293936A (en) Image information processor and method of processing image information
JP2004103017A (en) Dynamic color rendering dictionary
JP5171973B2 (en) Information processing apparatus and control method thereof
JP4511142B2 (en) Dynamic color offer dictionary
JP2010125810A (en) Information processor, method for processing data, program, and recording medium
JP2004021886A (en) Image processing device and image processing method
JP2004531000A (en) Method and system for manipulating graphic information
JP5044522B2 (en) Image processing device
JP5033747B2 (en) Image processing apparatus, image processing method, and image processing program
US7675642B2 (en) Print apparatus and print method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100222

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: 20100312

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100315

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130326

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140326

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees