JP5028372B2 - Image processing apparatus, image processing method, and image processing program - Google Patents
Image processing apparatus, image processing method, and image processing program Download PDFInfo
- Publication number
- JP5028372B2 JP5028372B2 JP2008248226A JP2008248226A JP5028372B2 JP 5028372 B2 JP5028372 B2 JP 5028372B2 JP 2008248226 A JP2008248226 A JP 2008248226A JP 2008248226 A JP2008248226 A JP 2008248226A JP 5028372 B2 JP5028372 B2 JP 5028372B2
- Authority
- JP
- Japan
- Prior art keywords
- canvas
- image processing
- intermediate language
- language
- page description
- 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
Links
Landscapes
- Color Image Communication Systems (AREA)
- Image Generation (AREA)
- Facsimile Image Signal Circuits (AREA)
Description
透明度属性を有する描画オブジェクトと、該描画オブジェクトを描画する土台であり透明度属性を有するキャンバスとを表記可能であるページ記述言語を中間言語に変換する際に、該変換処理及び前記透明度の合成処理を行うことが可能な画像処理装置、画像処理方法及び画像処理プログラムに関するものである。 When converting a page description language capable of expressing a drawing object having a transparency attribute and a canvas having a transparency attribute, which is a foundation for drawing the drawing object, into the intermediate language, the conversion process and the synthesis process of the transparency are performed. The present invention relates to an image processing apparatus, an image processing method, and an image processing program that can be performed.
XPS等のXML拡張形式で記述されたページ記述言語においては、描画オブジェクト(パスやフォントやイメージ等)の描画の土台となるキャンバスが複数層重なった入れ子構造により記述されている場合があるが、これらキャンバスの入れ子構造を有したページ記述言語を印刷や表示のための中間言語に変換する際に、前記複数層のキャンバス及びその中にある描画オブジェクトのアルファブレンド演算(透明度と色値の合成のための演算)を行う場合に前記アルファブレンド演算処理を効率よく行うための方法がなかった。 In a page description language written in an XML extension format such as XPS, there are cases where a canvas that is the basis for drawing a drawing object (path, font, image, etc.) is described in a nested structure with multiple layers, When converting a page description language having a nested canvas structure into an intermediate language for printing or display, alpha blending operations (transparency and color value composition) of the canvases and the drawing objects contained therein There has been no method for efficiently performing the alpha blend calculation processing when performing the calculation for
従来技術として、ページ記述言語文書の色指定に不透明度(アルファ値)が含まれており、それらの色が互いに重なる場合には、アルファブレンド演算処理が必要となるが、この際、アルファブレンド演算処理の前にデバイスの色域に圧縮するか、デバイスの色域に圧縮してからアルファブレンド処理を行うかによって、レンダリング結果が異なるため、カラーマッチング手段によりどちらが適正化を判断して、より適切な方法を選択する方法があった(特許文献1参照)。 As a conventional technology, when the opacity (alpha value) is included in the color specification of the page description language document and those colors overlap each other, alpha blend calculation processing is required. Rendering results vary depending on whether the device color gamut is compressed before processing, or the device color gamut is compressed before alpha blend processing is performed. There has been a method of selecting an appropriate method (see Patent Document 1).
しかし、この方法でもアルファブレンド演算は逐次的に処理されているに過ぎず、前記した入れ子構造を有するキャンバスに対応する方法は開示されていない。
解決しようとする問題点は、ページ記述言語を中間言語に変換する画像処理を行う画像処理装置、画像処理方法及び画像処理プログラムにおいて、前記ページ記述言語中に透明度属性を有するキャンバスが入れ子構造に存在する場合に、アルファブレンド演算処理を実行するために適する中間言語のデータ構造がなかったことと、効率的にアルファブレンド演算処理を行う方法がなかったことである。 The problem to be solved is that, in an image processing apparatus, an image processing method, and an image processing program for performing image processing for converting a page description language into an intermediate language, a canvas having a transparency attribute exists in the page description language in a nested structure In this case, there is no intermediate language data structure suitable for executing the alpha blend operation processing, and there is no efficient method for performing the alpha blend operation processing.
請求項1記載の本発明の画像処理装置は、ページ記述言語を中間言語に変換する画像処理を行う画像処理装置であって、前記ページ記述言語中に透明度属性を有するキャンバスが入れ子構造に存在する場合に、前記入れ子構造を保持した中間言語に変換する中間言語変換部と、前記中間言語に記述された入れ子構造のキャンバスの透明度属性の合成を行う際に、前記キャンバスの入れ子構造に応じた再帰アルゴリズムにより透明度属性の合成処理を行うアルファブレンド演算部と、を有することを最も主要な特徴とする。ここで、キャンバスとは、XML拡張形式のページ記述言語に記載される描画オブジェクト(パスやフォントやイメージ)を描画する土台となるオブジェクトのことで、透明度を示す透明度値、さらに透明度分布を表す透明度マスク等の透明度属性を有する。 The image processing apparatus according to the first aspect of the present invention is an image processing apparatus that performs image processing for converting a page description language into an intermediate language, and a canvas having a transparency attribute exists in the page description language in a nested structure. The intermediate language conversion unit that converts the intermediate structure to the intermediate language having the nested structure and the recursion corresponding to the nested structure of the canvas when synthesizing the transparency attribute of the nested canvas described in the intermediate language. The main feature is that it has an alpha blend operation unit that performs transparency attribute composition processing by an algorithm . Here, the canvas is an object that serves as a basis for drawing objects (paths, fonts, and images) described in the page description language in the XML extension format. The transparency value indicating transparency and the transparency indicating the transparency distribution are also included. It has a transparency attribute such as a mask.
請求項2記載の本発明の画像処理装置は、請求項1の画像処理装置であって、前記再帰アルゴリズムは、前記キャンバスの開始とともに、一時的に色を保持するために確保したバッファ内で描画処理を行い、前記キャンバスの終了時点で前記バッファをイメージとして一段下のキャンバスにアルファブレンド処理を行いながら描画することを主要な特徴とする。ここで、描画オブジェクトの色値、透明度、キャンバスの色値、透明度に基づいて色値を合成することをアルファブレンドと言う。 The image processing apparatus according to claim 2 is the image processing apparatus according to claim 1, wherein the recursive algorithm draws in a buffer reserved for temporarily holding a color at the start of the canvas. The main feature is that processing is performed and the buffer is used as an image at the end of the canvas, and drawing is performed while performing alpha blending on the next lower canvas . Here, synthesizing color values based on the color value, transparency, canvas color value, and transparency of the drawing object is called alpha blending.
請求項3記載の本発明の画像処理装置は、請求項1または2の画像処理装置であって、前記ページ記述言語がXML(Extended Markup Language)拡張形式により記述されたものであることを特徴とする。 An image processing apparatus according to a third aspect of the present invention is the image processing apparatus according to the first or second aspect, wherein the page description language is described in an extended markup language (XML) extended format. To do.
請求項4記載の本発明の画像処理方法は、ページ記述言語を中間言語に変換する画像処理方法であって、前記ページ記述言語中に透明度属性を有するキャンバスが入れ子構造に存在する場合に、前記入れ子構造を保持した中間言語に変換し、前記中間言語に記述された入れ子構造のキャンバスの透明度属性の合成を行う際に、前記キャンバスの前記入れ子構造に応じた再帰アルゴリズムによって、前記透明度属性の合成処理を行うことを最も主要な特徴とする。 The image processing method of the present invention according to claim 4 is an image processing method for converting a page description language into an intermediate language, and when a canvas having a transparency attribute is present in a nested structure in the page description language, When the transparency attribute of the canvas of the nested structure described in the intermediate language is synthesized by converting to the intermediate language having the nested structure, the transparency attribute is synthesized by a recursive algorithm corresponding to the nested structure of the canvas The most important feature is processing.
請求項5記載の本発明の画像処理プログラムは、コンピュータにページ記述言語を中間言語に変換する機能を実現させる画像処理プログラムであって、前記ページ記述言語中に透明度属性を有するキャンバスが入れ子構造に存在する場合に、前記入れ子構造を保持した中間言語に変換する中間言語変換機能と、前記中間言語に記述された入れ子構造のキャンバスの透明度属性の合成を行う際に、前記キャンバスの前記入れ子構造に応じた再帰アルゴリズムによって、前記透明度属性の合成処理を行うアルファブレンド演算処理機能とをコンピュータに実現させることを最も主要な特徴とする。 The image processing program of the present invention according to claim 5 is an image processing program for causing a computer to realize a function of converting a page description language into an intermediate language, wherein a canvas having a transparency attribute is nested in the page description language. When the intermediate language conversion function for converting to an intermediate language having the nested structure and the transparency attribute of the nested canvas described in the intermediate language are synthesized, the nested structure of the canvas is included in the canvas. The most important feature is that the computer realizes an alpha blending calculation processing function for performing the synthesis processing of the transparency attribute by a recursive algorithm according to the above.
請求項1記載の本発明の画像処理装置により、入れ子構造になったキャンバスを有するデータのページ記述言語であっても、印刷又は表示のための中間言語に変換して記述可能となった。又、それによりアルファブレンド演算処理においても、元のページ記述言語に記載された色値及び透明度の合成を忠実に再現可能となった。また、前記入れ子構造で記載された中間言語データのアルファブレンド演算処理を単純なアルゴリズムを用いて元のページ記述言語に記載された色値及び透明度の合成を忠実に再現可能となった。
With the image processing apparatus according to the first aspect of the present invention, even a page description language of data having a nested canvas can be described by being converted into an intermediate language for printing or display. As a result, also in the alpha blend calculation processing, the composition of the color value and the transparency described in the original page description language can be faithfully reproduced. In addition, it is possible to faithfully reproduce the composition of the color value and the transparency described in the original page description language by using a simple algorithm for the alpha blend operation processing of the intermediate language data described in the nested structure.
請求項3記載の本発明の画像処理装置により、XML拡張形式のページ記述言語であっても、元のページ記述言語に記載された色値及び透明度の合成を忠実に再現可能となった。 According to the image processing apparatus of the present invention, it is possible to faithfully reproduce the composition of the color value and the transparency described in the original page description language even if the page description language is in the XML extended format.
請求項4記載の本発明の画像処理方法により、入れ子構造になったキャンバスを有するデータのページ記述言語であっても、印刷又は表示のための中間言語に変換して記述可能となった。又、それによりアルファブレンド演算処理においても、元のページ記述言語に記載された色値及び透明度の合成を忠実に再現可能となった。さらに、前記入れ子構造で記載された中間言語データのアルファブレンド演算処理を単純なアルゴリズムで元のページ記述言語に記載された色値及び透明度の合成を忠実に再現可能となった。 According to the image processing method of the present invention described in claim 4, even a page description language of data having a canvas with a nested structure can be described by being converted into an intermediate language for printing or display. As a result, also in the alpha blend calculation processing, the composition of the color value and the transparency described in the original page description language can be faithfully reproduced. Furthermore, it is possible to faithfully reproduce the composition of the color value and the transparency described in the original page description language by a simple algorithm for the alpha blend operation processing of the intermediate language data described in the nested structure.
請求項5記載の本発明の画像処理プログラムにより、入れ子構造になったキャンバスを有するデータのページ記述言語であっても、印刷又は表示のための中間言語に変換して記述可能となった。又、それによりアルファブレンド演算処理においても、元のページ記述言語に記載された色値及び透明度の合成を忠実に再現可能となった。さらに、前記入れ子構造で記載された中間言語データのアルファブレンド演算処理を単純なアルゴリズムで元のページ記述言語に記載された色値及び透明度の合成を忠実に再現可能となった。 According to the image processing program of the present invention described in claim 5, even a page description language of data having a canvas with a nested structure can be described by being converted into an intermediate language for printing or display. As a result, also in the alpha blend calculation processing, the composition of the color value and the transparency described in the original page description language can be faithfully reproduced. Furthermore, it is possible to faithfully reproduce the composition of the color value and the transparency described in the original page description language by a simple algorithm for the alpha blend operation processing of the intermediate language data described in the nested structure.
ページ記述言語を中間言語に変換する画像処理を行う画像処理装置、画像処理方法及び画像処理プログラムにおいて、前記ページ記述言語中に透明度属性を有するキャンバスが入れ子構造に存在する場合に、アルファブレンド演算処理を実行するために適する中間言語のデータ構造がなかった点と、効率的にアルファブレンド演算処理を行う方法がなかった点とを、前記入れ子構造を保持したままの中間言語に変換する方法と、該入れ子構造を有する中間言語を再帰アルゴリズムによって、アルファブレンド演算を行う方法により解決した。 An image processing apparatus, an image processing method, and an image processing program for performing image processing for converting a page description language into an intermediate language. When a canvas having a transparency attribute is present in a nested structure in the page description language, alpha blend operation processing A method of converting a point where there was no intermediate language data structure suitable for executing the method and a point where there was no method of efficiently performing an alpha blend operation process into an intermediate language that retains the nested structure; The intermediate language having the nested structure was solved by a method of performing an alpha blend operation by a recursive algorithm.
本発明の実施例に係る画像処理装置について以下に説明する。 An image processing apparatus according to an embodiment of the present invention will be described below.
[透明度属性の合成;アルファブレンドについて]
アルファブレンドとは、2つのそれぞれに色値を有する画像をある係数により半透明合成することである。この係数をアルファ値といい0.0〜1.0の値をとる。0.0が完全に透明、1.0が完全に不透明な重ね合わせであることを表している。PDF(Portable Document Format)、およびXPS(XML Paper Specification)ドキュメント形式ではパスによる図形や、フォント、イメージ等のオブジェクトに対してアルファ値が設定でき、描画の際に、下地の色とのアルファブレンド(透明度と色値との合成)が可能になっている。
[Synthesis of transparency attributes; alpha blending]
Alpha blending is a semi-transparent composition of two images each having a color value using a certain coefficient. This coefficient is called an alpha value and takes a value of 0.0 to 1.0. 0.0 indicates completely transparent, 1.0 indicates completely opaque overlay. In the PDF (Portable Document Format) and XPS (XML Paper Specification) document formats, alpha values can be set for objects such as path figures, fonts, and images. Synthesis of transparency and color values).
以下にアルファブレンドの透明度の合成処理がどのように行われるかについて、XPSドキュメント形式のデータを例に用いて説明する。 The following explains how alpha blend transparency synthesis processing is performed using XPS document format data as an example.
図1にXPSで表記された透明度属性を持つPathのデータを示し、XPS仕様書1.0(非特許文献1参照)の11.4 Opacity Computationsに記載されているアルファブレンドを厳密に行う場合のステップを以下に示す。
(1):ソース側のアルファ値を求める。ソースのアルファ値にOpacityアトリビュートの値とOpacityMask(透明度マスク)の値をかける。
Figure 1 shows the path data with transparency attribute expressed in XPS, and the steps for strictly performing alpha blending described in 11.4 Opacity Computations of XPS specification 1.0 (see Non-Patent Document 1) are as follows: Show.
(1): The alpha value on the source side is obtained. Multiply the alpha value of the source by the value of the Opacity attribute and the value of OpacityMask (transparency mask).
As1 = As * Oe * Om
As :ソースエレメントのアルファ値(図1参照)
Oe :ソースエレメントのOpacity値(図1参照)
Om :描画するピクセル位置のソースエレメントのOpacityMask(透明度マスク)値(図1参照)
(2):(1)で求まったアルファ値(As1)をソースの色値にかける。この処理をPre-multiply source alphaという。下記に示す式のCsはRGBや、Gray、CMYK等のカレントカラースペースにおけるプレーン毎の値である。
As1 = As * Oe * Om
As: Source element alpha value (see Figure 1)
Oe: Opacity value of the source element (see Fig. 1)
Om: OpacityMask (transparency mask) value of the source element at the pixel position to draw (see Figure 1)
(2): The alpha value (As1) obtained in (1) is applied to the source color value. This process is called Pre-multiply source alpha. Cs in the following expression is a value for each plane in the current color space such as RGB, Gray, or CMYK.
Cs_tmp = Cs * As1
Cs :ソースの色値(図1参照)
Cs_tmp :ソース側カラー値のテンポラリ値
(3):デスティネーション側のアルファをデスティネーションの色値にかける。この処理をPre-multiply destination alphaという。下記に示す式のデスティネーションのピクセル色値Cdはソース側と同様に、RGBや、Gray、CMYK等のカレントカラースペースにおけるプレーン毎の値である。
Cs_tmp = Cs * As1
Cs: Source color value (see Figure 1)
Cs_tmp: Temporary value of source side color value (3): Multiply destination side alpha by destination color value. This process is called Pre-multiply destination alpha. The destination pixel color value Cd in the following expression is a value for each plane in the current color space such as RGB, Gray, and CMYK, as in the source side.
Cd_tmp = Cd * Ad
Ad :デスティネーションのアルファ値
Cd :デスティネーションの描画ピクセル位置の色値
Cd_tmp :デスティネーション側カラー値のテンポラリ
(4):ブレンド処理を行う。
Cd_tmp = Cd * Ad
Ad: Alpha value of the destination
Cd: Destination drawing pixel position color value
Cd_tmp: Temporary destination color value (4): Blend processing is performed.
A_tmp = ( 1 - As1 ) * Ad + As1
C_tmp = ( 1 - As1 ) * Cd_tmp + Cs_tmp
A_tmp :(5)のチェック用テンポラリ
C_tmp :(5)のチェック用テンポラリ
(5):デスティネーション結果に書き込む値を求める。この処理をReverse pre-multiplicationという。
A_tmp = (1-As1) * Ad + As1
C_tmp = (1-As1) * Cd_tmp + Cs_tmp
A_tmp: Temporary for checking (5)
C_tmp: Temporary for checking in (5) (5): A value to be written to the destination result is obtained. This process is called Reverse pre-multiplication.
If A_tmp = 0
{
Anew = Cnew = 0
}
Else
{
Anew = A_tmp
Cnew = min(C_tmp / A_tmp, 1)
}
(1)、(2)で現れるパラメータが図1のXPSドキュメント中に現れる(より詳細については非特許文献1を参照)。
If A_tmp = 0
{
Anew = Cnew = 0
}
Else
{
Anew = A_tmp
Cnew = min (C_tmp / A_tmp, 1)
}
The parameters appearing in (1) and (2) appear in the XPS document of FIG. 1 (see Non-Patent Document 1 for more details).
[ページへの描画処理のケース]
ブレンド処理ステップ(3)において、ページへの描画処理では下地は不透明、すなわちAd=1.0ととることができる。この場合は、下記のようにソースの色値とアルファ値、および既にページに書かれているデスティネーションの色値のみでアルファブレンド処理ができる(図2(A)参照)。
[Case of drawing on page]
In the blend processing step (3), the background is opaque in the drawing process on the page, that is, Ad = 1.0. In this case, as described below, the alpha blend process can be performed using only the source color value and alpha value and the destination color value already written on the page (see FIG. 2A).
As1 = As * Oe * Om
Anew = 1.0 (不透明で変化なし)
Cnew = ( 1 - As1 ) Cd + As1 * Cs (単純なアルファブレンドの式として知られている)
[キャンバスに透明度属性がない場合]
ブレンド処理のステップ(3)において、キャンバスへの描画処理では、初期状態において下地は完全な透明、Ad=0.0で色なしCd=0.0(RGBなら黒)ととらえることができる。これはガラス板のイメージになる。
As1 = As * Oe * Om
Anew = 1.0 (Opaque and unchanged)
Cnew = (1-As1) Cd + As1 * Cs (known as a simple alpha blend formula)
[If the canvas has no transparency attribute]
In the blend processing step (3), in the drawing process on the canvas, in the initial state, the background is completely transparent, Ad = 0.0 and no color Cd = 0.0 (black if RGB). This is the image of a glass plate.
As1 = As * Oe * Om
Anew = As1 (アルファの値が累積)
Cnew = Cs (ソースの色値はそのまま)
キャンバス上にまだ何も描画されていない状態で、ブレンド処理ステップに従うと、上記のように、キャンバス上のオブジェクトに透明度が含まれている場合、キャンバス上には、色値、アルファ値がそのまま累積することとなる。これは、キャンバスをページ等の一段下のレイヤーに描画するときに、累積している値がソースアルファ値として影響することを示す。
As1 = As * Oe * Om
Anew = As1 (accumulated alpha value)
Cnew = Cs (the source color value remains the same)
If nothing is drawn on the canvas and the blending step is followed, as shown above, if the object on the canvas contains transparency, the color value and alpha value are accumulated on the canvas as they are. Will be. This indicates that the accumulated value affects the source alpha value when the canvas is drawn on a layer below the page or the like.
しかしながら、キャンバス自体に透明度が設定されていない場合は、出来上がったキャンバスをページ上に描いた結果は、オブジェクトを直接ページに書いた場合と同じとなる(図2(B)参照)。 However, when transparency is not set on the canvas itself, the result of drawing the completed canvas on the page is the same as when the object is directly written on the page (see FIG. 2B).
この場合、図2(B)のようにページとは別のバッファに描画を実行する必要はなく、キャンバスが定義されていないときと同様の処理を行えばよい。 In this case, it is not necessary to perform drawing in a buffer different from the page as shown in FIG. 2B, and the same processing as when the canvas is not defined may be performed.
[キャンバスに透明度属性がある場合]
上述のように、オブジェクトが描画された領域には色値とアルファ値が累積していくが、その他の領域は0.0の完全に透明のまま残る。
[If the canvas has a transparency attribute]
As described above, the color value and the alpha value accumulate in the area where the object is drawn, but the other areas remain completely transparent at 0.0.
キャンバス自体に透明度が設定されている場合の描画方法について、XPS仕様書中に提示される実装方法では、キャンバス上のオブジェクトの描画が終了し、下のレイヤーに書き込む時に、キャンバスエレメントの属性のOpacityとOpacityMaskの値を累積しているアルファ値に適用(結合)する。これはブレンドステップ(1)にあたり、キャンバス自体のOeとOmを累積したアルファ値にかけることを意味する。 Regarding the rendering method when transparency is set on the canvas itself, in the implementation method presented in the XPS specification, when the object drawing on the canvas is finished and written to the lower layer, the Opacity attribute of the canvas element And apply (combine) the values of OpacityMask to the accumulated alpha value. This means that in the blending step (1), Oe and Om of the canvas itself are multiplied by the accumulated alpha value.
また、キャンバス中でオブジェクトが描かれていない領域はOpacity、OpacityMaskが適用されてもアルファ値は0.0で完全に透明な何も描かれない状態で残る。そのため、描画されたオブジェクトの部分にのみ透明度処理の効果がでる(図3(C)参照)。 In addition, even if Opacity and OpacityMask are applied, the area where no object is drawn in the canvas remains in a state where nothing is drawn with an alpha value of 0.0. For this reason, the effect of the transparency processing is exerted only on the drawn object portion (see FIG. 3C).
概念的には上記したステップを経るが、同一キャンバス上にこのとおりの処理をしようとすると、オブジェクトが重なった場合などは、デスティネーションのアルファ値を考慮した図2(A)の厳密なブレンド処理を行うことになる(図3(D))。 Conceptually, the steps described above are performed, but if the same processing is performed on the same canvas, if the objects overlap, the strict blending process of FIG. 2A taking into account the alpha value of the destination (FIG. 3D).
[構成]
図1は、本発明の実施例に係る画像処理装置の機能ブロック図である。
[Constitution]
FIG. 1 is a functional block diagram of an image processing apparatus according to an embodiment of the present invention.
画像処理装置は、通信インタフェース1.1、データ受信部1.2、データ解析部1.3、描画データ処理部1.4(中間言語変換部)、描画部1.5(アルファブレンド演算部)、出力部1.6、システム制御部1.7、エラー制御部1.8、メモリ管理部1.9を有する。以下に各機能部について説明する。 The image processing apparatus includes a communication interface 1.1, a data reception unit 1.2, a data analysis unit 1.3, a drawing data processing unit 1.4 (intermediate language conversion unit), and a drawing unit 1.5 (alpha blend calculation unit). , An output unit 1.6, a system control unit 1.7, an error control unit 1.8, and a memory management unit 1.9. Each functional unit will be described below.
通信インタフェース1.1は、ホストコンピュータ等との通信を行う機能部である。 The communication interface 1.1 is a functional unit that performs communication with a host computer or the like.
データ受信部1.2は、通信インタフェース1.1を介してデータ(ページ記述言語で記載してある印刷データ)を受信する機能部である。 The data receiving unit 1.2 is a functional unit that receives data (print data written in a page description language) via the communication interface 1.1.
データ解析部1.3は、送られてきたページ記述言語で記述された印刷データの解析を行なう機能部である。 The data analysis unit 1.3 is a functional unit that analyzes print data described in the page description language that has been sent.
描画データ処理部1.4(中間言語変換部)は、前記データ解析部1.4からの指示に従い、ページ記述言語を中間言語(ここでは、具体的にはディスプレイリスト)に変換する。 The drawing data processing unit 1.4 (intermediate language conversion unit) converts the page description language into an intermediate language (here, specifically, a display list) in accordance with an instruction from the data analysis unit 1.4.
XPS等のXML拡張形式で記述されたページ記述言語中には、描画オブジェクトであるパス、グリフス(フォント)、イメージ等のエレメントがあり、これら描画オブジェクトを表示するための土台となるキャンバスがある。これらエレメントやキャンバスは、それぞれに透明度属性を有している。又、キャンバスは、入れ子構造(ネスト構造)をとって、その中に含むキャンバスやエレメントをひとつのグループとして扱うことが可能となる。 In a page description language described in an XML extended format such as XPS, there are elements such as paths, glyphs (fonts), and images that are drawing objects, and a canvas that serves as a basis for displaying these drawing objects. Each of these elements and canvases has a transparency attribute. Also, the canvas has a nested structure (nested structure), and the canvas and elements contained therein can be handled as one group.
描画データ処理部1.4(中間言語変換部)は、前記した入れ子構造をとるキャンバスデータを中間言語に変換する際に、その入れ子構造を保ったままの構成とする。ひとつのキャンバスオブジェクトがディスプレイリストに変換された際の構造を図5に示す。 The drawing data processing unit 1.4 (intermediate language conversion unit) is configured to maintain the nested structure when converting the canvas data having the nested structure into the intermediate language. FIG. 5 shows the structure when one canvas object is converted into a display list.
キャンバスのオブジェクトは、その開始を示す「Start」マークに続き、キャンバス上に存在する描画オブジェクト又はキャンバスオブジェクトのディスプレイリスト、キャンバスの終了を示す「End」マーク、その後にキャンバスの透明度情報が続き、キャンバスの下層への描画を示す「Write」コマンドで終了する。 The canvas object is followed by a “Start” mark that indicates its start, a display list of drawing objects or canvas objects that exist on the canvas, an “End” mark that indicates the end of the canvas, and then the canvas transparency information. End with the “Write” command, which indicates the drawing to the lower layer.
キャンバスが入れ子構造となっている場合には、前記した「Start」マークと「End」マークとの間に入れ子となるキャンバスオブジェクトへのポインターが入る。 When the canvas has a nested structure, a pointer to the canvas object to be nested is inserted between the “Start” mark and the “End” mark.
描画部1.5(アルファブレンド演算部)は、描画データ処理部1.4(中間言語変換部)で作成されたディスプレイリスト(中間言語)からVRAMにビットマップデータを作成する機能部である。アルファブレンドの演算処理はここ描画部1.5において行われる。 The drawing unit 1.5 (alpha blend operation unit) is a functional unit that creates bitmap data in the VRAM from the display list (intermediate language) created by the drawing data processing unit 1.4 (intermediate language conversion unit). Alpha blending calculation processing is performed in the drawing unit 1.5.
出力部1.6は、上記の各機能部で画像処理が行われて得られたビットマップデータを出力する機能部である。前記出力とは、用紙などの記録媒体に印刷することであってもよいし、ディスプレイデバイスに表示出力を行う方法でもよい。 The output unit 1.6 is a functional unit that outputs bitmap data obtained by performing image processing in each functional unit described above. The output may be printing on a recording medium such as paper or a method of performing display output on a display device.
システム制御部1.7は、画像処理装置のシステムの共通情報を管理し、システムの制御を行なう機能部である。 The system control unit 1.7 is a functional unit that manages common information of the system of the image processing apparatus and controls the system.
エラー制御部1.8は、画像処理装置のエラーが発生した場合の処理を制御する機能部である。 The error control unit 1.8 is a functional unit that controls processing when an error occurs in the image processing apparatus.
メモリ管理部1.9は、画像処理装置のシステムのメモリを管理する機能部である。 The memory management unit 1.9 is a functional unit that manages the memory of the system of the image processing apparatus.
[アルファブレンド演算アルゴリズム]
図5で示した入れ子構造を有するディスプレイリスト(中間言語)のアルファブレンドの演算は以下に示す再帰アルゴリズムにより効率よく計算される。
[Alpha blending algorithm]
The alpha blend operation of the display list (intermediate language) having the nested structure shown in FIG. 5 is efficiently calculated by the recursive algorithm shown below.
一つのキャンバスの透過の計算Compositeを考えると、計算は次のようになる。 Considering the calculation composite for a single canvas, the calculation is as follows:
***_nのnをキャンバスに含まれるオブジェクト数とし、計算過程の値を表す。
[擬似コードによるアルゴリズム表記]
C = Composite(C_0,O_0)
入力 C_0 :キャンバスの描画先の現在の色
O_0 :キャンバスに含まれるオブジェクト全体
出力 C :キャンバスの色値
{
S_0 = C_0 (式1)
全てのオブジェクト(i を1からnまで)で以下の処理を繰り返す
{
Obj_i がキャンバスの場合は再帰呼び出し {
C_i = Composite(SC_(i-1),Obj_i) (式2)
} そうでない場合 {
C_i = Obj_i_Color (式3)
}
S_i = (1-Obj_i_Alpha) *SC_(i-1) + Obj_i_Alpha * C_i (式4)
}
C = S_i
} [アルゴリズム終了]
すなわち、キャンバス開始時にそれまでに描かれている色をコピーした領域を作成し(式1)、キャンバス終了時に、キャンバス自体のα値をもって、下地とブレンド処理(式4)すればよいこととなる。ページの開始時点は初期値S_0が白となっていれば良い。
*** _ n represents the number of objects included in the canvas and represents the value of the calculation process.
[Algorithm description by pseudo code]
C = Composite (C_0, O_0)
Input C_0: Current color of the canvas drawing destination
O_0: Entire object included in canvas Output C: Color value of canvas {
S_0 = C_0 (Formula 1)
Repeat the following process for all objects (i from 1 to n)
{
If Obj_i is a canvas, recursive call {
C_i = Composite (SC_ (i-1), Obj_i) (Formula 2)
} Otherwise {
C_i = Obj_i_Color (Formula 3)
}
S_i = (1-Obj_i_Alpha) * SC_ (i-1) + Obj_i_Alpha * C_i (Formula 4)
}
C = S_i
} [End algorithm]
In other words, when the canvas is started, an area where the colors drawn so far are copied (Formula 1), and when the canvas is finished, the alpha value of the canvas itself is used for blending with the ground (Formula 4). . It is only necessary that the initial value S_0 is white at the start of the page.
[処理内容の具体例]
前記した再帰アルゴリズムの処理内容の具体例について図6、図7を用いて以下に説明する。
[Specific example of processing contents]
Specific examples of processing contents of the recursive algorithm described above will be described below with reference to FIGS.
前記アルゴリズムは、キャンバスの開始とともに、一時的に色を保持するバッファを確保し、そのバッファ内で描画処理を行う。キャンバスの終了時点でバッファをイメージとして、一つ下のレイヤーにブレンド処理を行いながら描画していく方法である。キャンバス描画中にさらにネストしている場合は、再帰呼出を行って、それに応じて色を保持するバッファを確保し、一段上のキャンバスとして処理する。 The algorithm secures a buffer that temporarily holds colors at the start of the canvas, and performs drawing processing in the buffer. This is a method of drawing the buffer as an image at the end of the canvas while blending the next lower layer. If there is further nesting during drawing on the canvas, a recursive call is made, a buffer for holding the color is secured accordingly, and the canvas is processed as an upper level canvas.
この処理を行う場合の一例として、半透明キャンバスがネスト化(入れ子構造)し、さらにそのキャンバス上で、半透明のオブジェクトが重なっているケースを考える。 As an example of performing this process, consider a case where semi-transparent canvases are nested (nested), and semi-transparent objects overlap on the canvas.
図6(E)は、XPSで表記した一段目のOpacity=0.5を有するCanvas1上に、描画オブジェクトである矩形のObject1が存在し、さらにOpacity=0.5を有する二段目のCanvas2がネストされており、二段目のCanvas2上に三角形のObject2とObject3が存在している。 In FIG. 6E, a rectangular Object1 that is a drawing object exists on a Canvas1 having Opacity = 0.5 in the first stage expressed in XPS, and a second-stage Canvas2 having Opacity = 0.5 is nested. The triangle Object2 and Object3 exist on the second level of Canvas2.
図6(F)に、上記XPSの全オブジェクトを透明度(Opacity)が無いと仮定した場合の描画を示し、図6(G)に上記XPSに表記どおりの透明度(Opacity)のアルファブレンド演算を行った場合の描画を示す。ただし、カラー表記ができないため、グレースケールに変換して描画してある。 Fig. 6 (F) shows the drawing when all the XPS objects are assumed to have no transparency (Opacity), and Fig. 6 (G) shows the alpha blending calculation of transparency (Opacity) as described in XPS. The drawing is shown. However, since color notation is not possible, the drawing is converted to gray scale.
このデータに対する描画部1.5(アルファブレンド演算部)による処理手順を図7示し、前記した再帰アルゴリズムの式と対比させて説明を行う。 FIG. 7 shows a processing procedure by the drawing unit 1.5 (alpha blend operation unit) for this data, and will be described in comparison with the formula of the recursive algorithm described above.
[ページバッファの確保];図7(H)
最初に描画するための最終のページであるページバッファを確保する。
[Securing the page buffer]; FIG.
Allocate a page buffer that is the last page to be drawn first.
[Canvas1の開始];図7(I)
これまでページバッファに描かれている結果をCanvas1にコピーする(式1)。さらに、Canvas1上のObject1を描画する。(式3〜4)。また、Canvas1の透明度情報を何らかの形(例えば、再帰呼出しルーチンのローカル変数等)で保持しておく。
[Start Canvas1]; FIG. 7 (I)
Copy the result drawn in the page buffer so far to Canvas1 (Formula 1). Furthermore, Object1 on Canvas1 is drawn. (Formulas 3-4). The transparency information of Canvas1 is held in some form (for example, a local variable of a recursive call routine).
[Canvas2の開始];図7(J)
Canvas1に描かれている結果をCanvas2にコピーする。(式2による再帰呼出しと式1)。
[Start Canvas2]; Fig. 7 (J)
Copy the result drawn on Canvas1 to Canvas2. (Recursive call with expression 2 and expression 1).
次に、Canvas2上のオブジェクト(Object2, Object3)を描画する。このとき、Canvas2上でアルファブレンド演算処理を行う(式3〜4)。 Next, the objects (Object2, Object3) on Canvas2 are drawn. At this time, alpha blend calculation processing is performed on Canvas2 (Equations 3-4).
また、前記と同様にCanvas2の透明度情報を何らかの形(例えば、再帰呼出しルーチンのローカル変数等)で保持しておく。 Similarly, the transparency information of Canvas2 is held in some form (for example, a local variable of a recursive call routine).
[Canvas2の終了];図7(K)
Canvas2自体の透明度情報(エレメントのOpacity値、OpacityMask値)をもって、Canvas2をイメージとして一段下のCanvas1に描画する(式4)。
[End of Canvas2]; Fig. 7 (K)
With Canvas2 itself transparency information (element Opacity value, OpacityMask value), Canvas2 is rendered as an image in Canvas1 (Step 4).
Canvas2のバッファを開放。 Free the Canvas2 buffer.
[Canvas1の終了];図7(L)
Canvas1自体の透明度属性情報(エレメントのOpacity値、OpacityMask値)をもって、Canvas1をイメージとしてページに描画(式4)。
[End of Canvas1]; Fig. 7 (L)
Draw Canvas1 as an image on the page using the transparency attribute information of the Canvas1 itself (Opacity value and OpacityMask value of the element) (Formula 4).
Canvas1のバッファを開放。 Free the Canvas1 buffer.
以上の一連の動作により、再帰アルゴリズムによってアルファブレンド演算処理が可能となった。 With the series of operations described above, alpha blending processing can be performed by a recursive algorithm.
[実施例の効果]
本発明実施例の画像処理装置により、以下のことが可能となった。
[Effect of Example]
The image processing apparatus according to the embodiment of the present invention enables the following.
XPS等のXML拡張形式等のページ記述言語によって記述された入れ子構造を有する描画オブジェクト、キャンバスの透明度属性の合成(アルファブレンド演算)を効率よく行うため、ページ記述言語を中間言語に変換する際に前記入れ子構造を保持した形で変換を行った。さらに、前記入れ子構造を有する中間言語データのアルファブレンド演算を再帰アルゴリズムにより実現した。 When converting a page description language to an intermediate language for efficient synthesis (alpha blend operation) of drawing objects with a nested structure described in a page description language such as XPS and other XML extension formats, canvas transparency attributes Conversion was performed while maintaining the nested structure. Furthermore, the alpha blend operation of the intermediate language data having the nested structure is realized by a recursive algorithm.
上記の方法により、入れ子構造をまたいだアルファブレンド演算を効率よく行うことが可能となった。 The above method makes it possible to efficiently perform alpha blending operations across nested structures.
上記の構造を有する中間言語により、アルファブレンド演算処理を行い、その後のビットマップデータへの変換を行ってプリンタでの印刷処理が可能となった。 Using an intermediate language having the above structure, alpha blending calculation processing is performed, and then conversion to bitmap data is performed to enable printing processing on a printer.
[その他]
色値は、実施例中ではRGBの三原色に基づくものを示したが、CMYKの色値であってもよく、同様にアルファブレンド演算が可能である。
[Others]
In the embodiment, the color values are based on the three primary colors of RGB. However, the color values may be CMYK color values, and an alpha blend operation is possible in the same manner.
1.1 通信インタフェース
1.2 データ受信部
1.3 データ解析部
1.4 描画データ処理部(中間言語変換部)
1.5 描画部(アルファブレンド演算部)
1.6 出力部
1.7 システム制御部
1.8 エラー制御部
1.9 メモリ管理部
1.1 Communication interface 1.2 Data receiver 1.3 Data analyzer 1.4 Drawing data processor (intermediate language converter)
1.5 Drawing part (alpha blend operation part)
1.6 Output unit 1.7 System control unit 1.8 Error control unit 1.9 Memory management unit
Claims (5)
前記ページ記述言語中に透明度属性を有するキャンバスが入れ子構造に存在する場合に、前記入れ子構造を保持した中間言語に変換する中間言語変換部と、
前記中間言語に記述された入れ子構造のキャンバスの透明度属性の合成を行う際に、前記キャンバスの入れ子構造に応じた再帰アルゴリズムにより透明度属性の合成処理を行うアルファブレンド演算部と、を有する
ことを特徴とする画像処理装置。 An image processing apparatus for performing image processing for converting a page description language into an intermediate language,
An intermediate language conversion unit for converting into an intermediate language having the nested structure when a canvas having a transparency attribute is present in the nested structure in the page description language ;
An alpha blend operation unit for performing transparency attribute synthesis processing by a recursive algorithm according to the canvas nesting structure when synthesizing the transparency attribute of the nested canvas described in the intermediate language. An image processing apparatus.
前記再帰アルゴリズムは、前記入れ子構造のキャンバスの開始とともに、一時的に色を保持するために確保したバッファ内で描画処理を行い、前記入れ子構造のキャンバスの終了時点で前記バッファをイメージとして一段下のキャンバスにアルファブレンド処理を行いながら描画する、
ことを特徴とする画像処理装置。 The image processing apparatus according to claim 1,
The recursive algorithm performs drawing processing in a buffer reserved to temporarily hold colors at the start of the nested canvas, and at the end of the nested canvas, the buffer is used as an image one step below. Draw with alpha blending on the canvas,
An image processing apparatus.
前記ページ記述言語がXML(Extended Markup Language)拡張形式により記述されたものである
ことを特徴とする画像処理装置。 The image processing apparatus according to claim 1 or 2,
The image processing apparatus, wherein the page description language is described in an XML (Extended Markup Language) extended format.
前記ページ記述言語中に透明度属性を有するキャンバスが入れ子構造に存在する場合に、前記入れ子構造を保持した中間言語に変換し、
前記中間言語に記述された入れ子構造のキャンバスの透明度属性の合成を行う際に、前記キャンバスの前記入れ子構造に応じた再帰アルゴリズムによって、前記透明度属性の合成処理を行う
ことを特徴とする画像処理方法。 An image processing method for converting a page description language into an intermediate language,
When a canvas having a transparency attribute is present in a nested structure in the page description language, it is converted into an intermediate language that retains the nested structure,
An image processing method characterized in that when the transparency attribute of a canvas with a nested structure described in the intermediate language is synthesized, the transparency attribute is synthesized by a recursive algorithm according to the nested structure of the canvas. .
前記ページ記述言語中に透明度属性を有するキャンバスが入れ子構造に存在する場合に、前記入れ子構造を保持した中間言語に変換する中間言語変換機能と、
前記中間言語に記述された入れ子構造のキャンバスの透明度属性の合成を行う際に、前記キャンバスの前記入れ子構造に応じた再帰アルゴリズムによって、前記透明度属性の合成処理を行うアルファブレンド演算処理機能とを
コンピュータに実現させることを特徴とする画像処理プログラム。 An image processing program for causing a computer to realize a function of converting a page description language into an intermediate language,
An intermediate language conversion function for converting to an intermediate language having the nested structure when a canvas having a transparency attribute is present in the nested structure in the page description language;
An alpha blending operation processing function for performing the transparency attribute synthesis processing by a recursive algorithm according to the canvas nested structure when synthesizing the transparency attribute of the nested canvas described in the intermediate language; An image processing program to be realized in
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008248226A JP5028372B2 (en) | 2008-09-26 | 2008-09-26 | Image processing apparatus, image processing method, and image processing program |
US12/586,748 US8314951B2 (en) | 2008-09-26 | 2009-09-25 | Image processing apparatus, and computer-readable recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008248226A JP5028372B2 (en) | 2008-09-26 | 2008-09-26 | Image processing apparatus, image processing method, and image processing program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010079667A JP2010079667A (en) | 2010-04-08 |
JP5028372B2 true JP5028372B2 (en) | 2012-09-19 |
Family
ID=42210022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008248226A Expired - Fee Related JP5028372B2 (en) | 2008-09-26 | 2008-09-26 | Image processing apparatus, image processing method, and image processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5028372B2 (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2647846C (en) | 2006-03-31 | 2016-06-21 | Chugai Seiyaku Kabushiki Kaisha | Methods for controlling blood pharmacokinetics of antibodies |
BRPI0817294A2 (en) | 2007-09-26 | 2015-03-17 | Chugai Pharmaceutical Co Ltd | Method of modifying antibody isoelectric point via amino acid substitution in cdr. |
TWI667257B (en) | 2010-03-30 | 2019-08-01 | 中外製藥股份有限公司 | Antibodies with modified affinity to fcrn that promote antigen clearance |
JP6030452B2 (en) | 2010-11-30 | 2016-11-24 | 中外製薬株式会社 | Antigen-binding molecules that repeatedly bind to multiple molecules of antigen |
CN112812184A (en) | 2011-02-25 | 2021-05-18 | 中外制药株式会社 | Fc gamma RIIb specific Fc antibodies |
AU2012233313C1 (en) | 2011-03-30 | 2017-08-03 | Chugai Seiyaku Kabushiki Kaisha | Method for altering plasma retention and immunogenicity of antigen-binding molecule |
EP3939996A1 (en) | 2011-09-30 | 2022-01-19 | Chugai Seiyaku Kabushiki Kaisha | Antigen-binding molecule promoting disappearance of antigens having plurality of biological activities |
TW201817744A (en) | 2011-09-30 | 2018-05-16 | 日商中外製藥股份有限公司 | Therapeutic antigen-binding molecule with a FcRn-binding domain that promotes antigen clearance |
WO2013081143A1 (en) | 2011-11-30 | 2013-06-06 | 中外製薬株式会社 | Drug containing carrier into cell for forming immune complex |
CA2882272C (en) | 2012-08-24 | 2023-08-29 | Chugai Seiyaku Kabushiki Kaisha | Fc.gamma.riib-specific fc region variant |
US11267868B2 (en) | 2013-04-02 | 2022-03-08 | Chugai Seiyaku Kabushiki Kaisha | Fc region variant |
US10885689B2 (en) * | 2018-07-06 | 2021-01-05 | General Electric Company | System and method for augmented reality overlay |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AUPR860901A0 (en) * | 2001-10-31 | 2001-11-29 | Canon Kabushiki Kaisha | Activating a filling of a graphical object |
JP2007164526A (en) * | 2005-12-14 | 2007-06-28 | Canon Inc | Information processing apparatus and method |
-
2008
- 2008-09-26 JP JP2008248226A patent/JP5028372B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010079667A (en) | 2010-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5028372B2 (en) | Image processing apparatus, image processing method, and image processing program | |
US5822503A (en) | Method of manipulating color EPS files | |
US7894098B1 (en) | Color separation of pattern color spaces and form XObjects | |
JP2005210395A (en) | Image converter and image converting program | |
JP2009188816A (en) | Printer driver and image forming apparatus | |
JP5539672B2 (en) | System and method for color mixing in multiple modes | |
JP5732935B2 (en) | Information processing apparatus, print control program, and computer-readable recording medium | |
JP3935127B2 (en) | Image forming method | |
JP5007291B2 (en) | Image processing apparatus, image processing method, and image processing program | |
JP5033747B2 (en) | Image processing apparatus, image processing method, and image processing program | |
JP4143613B2 (en) | Drawing method and drawing apparatus | |
JP5033746B2 (en) | Image processing apparatus, image processing method, and image processing program | |
JP6330790B2 (en) | Print control system, print control apparatus, and program | |
JP5028373B2 (en) | Image processing apparatus, image processing method, and image processing program | |
JP2011065413A (en) | Image-processing device, image-processing method, and image-processing program | |
JP5094667B2 (en) | Image processing apparatus, image processing method, and image processing program | |
JPH0729019A (en) | Method for optimum color rendering of plurality of objects in page description | |
JP2011025539A (en) | Printing device, image output system, rendering method and program | |
JP5171973B2 (en) | Information processing apparatus and control method thereof | |
JP2010087792A (en) | Image forming apparatus and program | |
JP2008299845A (en) | Rendering system and rendering method for transparent object | |
JP2006345097A (en) | Image processing method and image processing apparatus | |
JP5600960B2 (en) | Host computer, print data generation method and program | |
JP2009101662A (en) | Printing processor | |
US8913294B2 (en) | Image processing apparatus and image processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120321 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120507 |
|
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: 20120529 |
|
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: 20120625 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150629 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |