JP5028373B2 - 画像処理装置、画像処理方法及び画像処理プログラム - Google Patents

画像処理装置、画像処理方法及び画像処理プログラム Download PDF

Info

Publication number
JP5028373B2
JP5028373B2 JP2008251313A JP2008251313A JP5028373B2 JP 5028373 B2 JP5028373 B2 JP 5028373B2 JP 2008251313 A JP2008251313 A JP 2008251313A JP 2008251313 A JP2008251313 A JP 2008251313A JP 5028373 B2 JP5028373 B2 JP 5028373B2
Authority
JP
Japan
Prior art keywords
canvas
image processing
transparency attribute
transparency
rectangular area
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
JP2008251313A
Other languages
English (en)
Other versions
JP2010086042A (ja
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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions 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 Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Priority to JP2008251313A priority Critical patent/JP5028373B2/ja
Priority to US12/586,748 priority patent/US8314951B2/en
Publication of JP2010086042A publication Critical patent/JP2010086042A/ja
Application granted granted Critical
Publication of JP5028373B2 publication Critical patent/JP5028373B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Generation (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)

Description

透明度属性を有する描画オブジェクトと、該描画オブジェクトを描画する土台であり透明度属性を有するキャンバスとを表記可能であるページ記述言語を中間言語に変換する際に、該変換処理及び前記透明度の合成処理を高速にかつメモリの利用効率を高めて行うことが可能な画像処理装置、画像処理方法及び画像処理プログラムに関するものである。
XPS等のXML拡張形式で記述されたページ記述言語においては、透明度属性を有した描画オブジェクト(パスやフォントやイメージ等)及び前記描画オブジェクトの描画の土台となる透明度属性を有したキャンバスが複数層重なって存在させることが可能であり、これらが複数層重なった描画オブジェクト及びキャンバスの透明度属性の合成処理(アルファブレンド演算処理)を行う際に、通常はバンドと呼ばれるページを所定の幅ごとに区切った単位での処理が行われていたが、前記描画オブジェクトや前記キャンバスの存在しない領域がバンド内にあっても、バンド単位でメモリにデータが保持されて、演算処理の対象となっていたために、無駄にメモリを消費し、処理時間が長くかかる問題があった。
従来技術として、アルファブレンド演算処理の前にデバイスの色域に圧縮するか、デバイスの色域に圧縮してからアルファブレンド処理を行うかによって、レンダリング結果が異なるため、カラーマッチング手段によりどちらが適正化を判断して、より適切な方法を選択する方法があった(特許文献1参照)。
しかし、この方法でも前記したオブジェクトの存在しない領域でのメモリの無駄な消費や不用な演算処理を解消する方法は開示されていない。
特開2006−345197号公報 XML Paper Specification, XPS Specification and Reference Guide Version 1.0
解決しようとする問題点は、ページ記述言語を中間言語に変換する画像処理を行う画像処理装置、画像処理方法及び画像処理プログラムにおいて、描画オブジェクトやキャンバスが存在しない領域についてもメモリ上にデータが確保されて、無用な演算処理が行われてしまうことを回避する方法がなかったことである。
請求項1記載の本発明の画像処理装置は、透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとの透明度属性の合成処理を行う画像処理装置であって前記描画オブジェクト及び前記キャンバスの座標値より、前記描画オブジェクト及びキャンバスの描画される矩形領域の座標情報を算出する描画領域情報算出部と、前記描画領域情報算出部により算出された矩形領域中でのみ前記透明度属性の合成処理を行う描画部と、前記キャンバスの前記透明度属性が不透明であるかどうかを検出し、入れ子構造に連続しているキャンバスが不透明である場合は該キャンバスを仮キャンバスとして記録し、それ以外のキャンバスを実キャンバスとして記録するキャンバスチェック部と、を有し、前記描画領域情報算出部は、前記キャンバスチェック部により実キャンバスとして記録されたキャンバスの座標値に基づいて、前記矩形領域の座標情報を算出し、前記描画部は、前記描画領域情報算出部により算出された矩形領域中でのみ描画処理を行うことを最も主要な特徴とする。ここで、キャンバスとは、XML拡張形式のページ記述言語に記載される描画オブジェクト(パスやフォントやイメージ)を描画する土台となるオブジェクトのことで、透明度を示す透明度値、さらに透明度分布を表す透明度マスク等の透明度属性を有する。
請求項2記載の本発明の画像処理装置は、請求項1の画像処理装置であって、前記キャンバスの透明度属性の合成処理に必要なメモリ量の計算をする際に、前記描画領域情報算出部により前記仮キャンバスと判断されたキャンバスについてはゼロとして計算し、前記実キャンバスと判断されたキャンバスについては該キャンバスの前記矩形領域に基づいて計算するメモリ領域算出部を有することを主要な特徴とする。
請求項3記載の本発明の画像処理方法は、透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとの透明度属性の合成処理を画像処理装置で行う画像処理方法であって、前記画像処理装置が、前記描画オブジェクト及び前記キャンバスの座標値より、前記描画オブジェクト及びキャンバスの描画される矩形領域の座標情報を算出し、該算出された矩形領域中でのみ前記透明度属性の合成処理を行い、前記キャンバスの前記透明度属性が不透明であるかどうかを検出し、入れ子構造に連続しているキャンバスが不透明である場合は該キャンバスを仮キャンバスとして記録し、それ以外のキャンバスを実キャンバスとして記録し、前記実キャンバスとして記録されたキャンバスの座標値に基づいて、前記矩形領域の座標情報を算出し、前記算出された矩形領域中でのみ描画処理を行うことを最も主要な特徴とする。
請求項4記載の本発明の画像処理プログラムは、コンピュータに透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとの透明度属性の合成処理機能を実現させる画像処理プログラムであって、前記描画オブジェクト及び前記キャンバスの座標値より、前記描画オブジェクト及びキャンバスの描画される矩形領域の座標情報を算出する描画領域情報算出機能と、該算出された矩形領域中でのみ前記透明度属性の合成処理を行う描画機能と、前記キャンバスの前記透明度属性が不透明であるかどうかを検出し、入れ子構造に連続しているキャンバスが不透明である場合は該キャンバスを仮キャンバスとして記録し、それ以外のキャンバスを実キャンバスとして記録するキャンバスチェック機能とをコンピュータに実現させ、前記描画領域情報算出機能は、前記キャンバスチェック機能により実キャンバスとして記録されたキャンバスの座標値に基づいて、前記矩形領域の座標情報を算出し、前記描画機能は、前記算出された矩形領域中でのみ描画処理を行うことを最も主要な特徴とする。
請求項1記載の本発明の画像処理装置は、透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとの透明度属性の合成処理を行う画像処理装置であって前記描画オブジェクト及び前記キャンバスの座標値より、前記描画オブジェクト及びキャンバスの描画される矩形領域の座標情報を算出する描画領域情報算出部と、前記描画領域情報算出部により算出された矩形領域中でのみ前記透明度属性の合成処理を行う描画部と、前記キャンバスの前記透明度属性が不透明であるかどうかを検出し、入れ子構造に連続しているキャンバスが不透明である場合は該キャンバスを仮キャンバスとして記録し、それ以外のキャンバスを実キャンバスとして記録するキャンバスチェック部と、を有し、前記描画領域情報算出部は、前記キャンバスチェック部により実キャンバスとして記録されたキャンバスの座標値に基づいて、前記矩形領域の座標情報を算出し、前記描画部は、前記描画領域情報算出部により算出された矩形領域中でのみ描画処理を行うことを最も主要な特徴とするため、透明度属性の合成処理を実際に演算が必要な透明度属性を有するキャンバス上でのみ行われるため、メモリの利用効率が高まり、透明度属性の演算処理にかかる時間が短縮された。また、透明度属性の演算処理にかかる時間だけでなく、描画処理にかかる時間も短縮された、さらに、入れ子構造で連続しているキャンバス毎の透明度属性を保持するためのメモリを確保する必要が無くなり、メモリの利用効率が高まり、透明度属性の合成のための演算処理が高速化された。
請求項2記載の本発明の画像処理装置は、請求項1の画像処理装置であって、前記キャンバスの透明度属性の合成処理に必要なメモリ量の計算をする際に、前記描画領域情報算出部により前記仮キャンバスと判断されたキャンバスについてはゼロとして計算し、前記実キャンバスと判断されたキャンバスについては該キャンバスの前記矩形領域に基づいて計算するメモリ領域算出部を有することを主要な特徴とするため、透明度属性の演算に必要とされるメモリ容量を計算可能であるため、該求められたメモリ容量をメモリ管理部が演算のため準備することが可能である。ここで求められたメモリ容量はバンド幅全体で使用されるメモリ容量に比べて少なく、結果として余ったメモリ容量を他の領域に振り分けることを事前に求めることが可能となった。
請求項3記載の本発明の画像処理方法は、透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとの透明度属性の合成処理を画像処理装置で行う画像処理方法であって、前記画像処理装置が、前記描画オブジェクト及び前記キャンバスの座標値より、前記描画オブジェクト及びキャンバスの描画される矩形領域の座標情報を算出し、該算出された矩形領域中でのみ前記透明度属性の合成処理を行い、前記キャンバスの前記透明度属性が不透明であるかどうかを検出し、入れ子構造に連続しているキャンバスが不透明である場合は該キャンバスを仮キャンバスとして記録し、それ以外のキャンバスを実キャンバスとして記録し、前記実キャンバスとして記録されたキャンバスの座標値に基づいて、前記矩形領域の座標情報を算出し、前記算出された矩形領域中でのみ描画処理を行うことを最も主要な特徴とするため、透明度属性の合成処理を実際に演算が必要な透明度属性を有するキャンバス上でのみ行われるため、メモリの利用効率が高まり、透明度属性の演算処理にかかる時間が短縮された。また、透明度属性の演算処理にかかる時間だけでなく、描画処理にかかる時間も短縮された、さらに、入れ子構造で連続しているキャンバス毎の透明度属性を保持するためのメモリを確保する必要が無くなり、メモリの利用効率が高まり、透明度属性の合成のための演算処理が高速化された。
請求項4記載の本発明の画像処理プログラムは、コンピュータに透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとの透明度属性の合成処理機能を実現させる画像処理プログラムであって、前記描画オブジェクト及び前記キャンバスの座標値より、前記描画オブジェクト及びキャンバスの描画される矩形領域の座標情報を算出する描画領域情報算出機能と、該算出された矩形領域中でのみ前記透明度属性の合成処理を行う描画機能と、前記キャンバスの前記透明度属性が不透明であるかどうかを検出し、入れ子構造に連続しているキャンバスが不透明である場合は該キャンバスを仮キャンバスとして記録し、それ以外のキャンバスを実キャンバスとして記録するキャンバスチェック機能とをコンピュータに実現させ、前記描画領域情報算出機能は、前記キャンバスチェック機能により実キャンバスとして記録されたキャンバスの座標値に基づいて、前記矩形領域の座標情報を算出し、前記描画機能は、前記算出された矩形領域中でのみ描画処理を行うことを最も主要な特徴とするため、透明度属性の合成処理を実際に演算が必要な透明度属性を有するキャンバス上でのみ行われるため、メモリの利用効率が高まり、透明度属性の演算処理にかかる時間が短縮された。また、透明度属性の演算処理にかかる時間だけでなく、描画処理にかかる時間も短縮された、さらに、入れ子構造で連続しているキャンバス毎の透明度属性を保持するためのメモリを確保する必要が無くなり、メモリの利用効率が高まり、透明度属性の合成のための演算処理が高速化された。
ページ記述言語を中間言語に変換する画像処理を行う画像処理装置、画像処理方法及び画像処理プログラムにおいて、描画オブジェクトやキャンバスが存在しない領域についてもメモリ上にデータが確保されて、無用な演算処理が行われてしまう問題を、前記描画オブジェクト及びキャンバスの存在する描画領域を求めて、該描画領域内での透明度属性の演算処理を行う方法により問題を解決した。
本発明の実施例に係る画像処理装置について以下に説明する。
[透明度属性の合成;アルファブレンドについて]
アルファブレンドとは、2つのそれぞれに色値を有する画像をある係数により半透明合成することである。この係数をアルファ値といい0.0〜1.0の値をとる。0.0が完全に透明、1.0が完全に不透明な重ね合わせであることを表している。PDF(Portable Document Format)、およびXPS(XML Paper Specification)ドキュメント形式ではパスによる図形や、フォント、イメージ等のオブジェクトに対してアルファ値が設定でき、描画の際に、下地の色とのアルファブレンド(透明度と色値との合成)が可能になっている。
以下にアルファブレンドの透明度の合成処理がどのように行われるかについて、XPSドキュメント形式のデータを例に用いて説明する。
図1にXPSで表記された透明度属性を持つPathのデータを示し、XPS仕様書1.0(非特許文献1参照)の11.4 Opacity Computationsに記載されているアルファブレンドを厳密に行う場合のステップを以下に示す。
(1):ソース側のアルファ値を求める。ソースのアルファ値にOpacityアトリビュートの値とOpacityMaskの値をかける。
As1 = As * Oe * Om
As :ソースエレメントのアルファ値(図1参照)
Oe :ソースエレメントのOpacity値(図1参照)
Om :描画するピクセル位置のソースエレメントのOpacityMask値(図1参照)
(2):(1)で求まったアルファ値(As1)をソースの色値にかける。この処理をPre-multiply source alphaという。下記に示す式のCsはRGBや、Gray、CMYK等のカレントカラースペースにおけるプレーン毎の値である。
Cs_tmp = Cs * As1
Cs :ソースの色値(図1参照)
Cs_tmp :ソース側カラー値のテンポラリ値
(3):デスティネーション側のアルファをデスティネーションの色値にかける。この処理をPre-multiply destination alphaという。下記に示す式のデスティネーションのピクセル色値Cdはソース側と同様に、RGBや、Gray、CMYK等のカレントカラースペースにおけるプレーン毎の値である。
Cd_tmp = Cd * Ad
Ad :デスティネーションのアルファ値
Cd :デスティネーションの描画ピクセル位置の色値
Cd_tmp :デスティネーション側カラー値のテンポラリ
(4):ブレンド処理を行う。
A_tmp = ( 1 - As1 ) * Ad + As1
C_tmp = ( 1 - As1 ) * Cd_tmp + Cs_tmp
A_tmp :(5)のチェック用テンポラリ
C_tmp :(5)のチェック用テンポラリ
(5):デスティネーション結果に書き込む値を求める。この処理を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を参照)。
[ページへの描画処理のケース]
ブレンド処理ステップ(3)において、ページへの描画処理では下地は不透明、すなわちAd=1.0ととることができる。この場合は、下記のようにソースの色値とアルファ値、および既にページに書かれているデスティネーションの色値のみでアルファブレンド処理ができる(図2(A)参照)。
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 = As1 (アルファの値が累積)
Cnew = Cs (ソースの色値はそのまま)
キャンバス上にまだ何も描画されていない状態で、ブレンド処理ステップに従うと、上記のように、キャンバス上のオブジェクトに透明度が含まれている場合、キャンバス上には、色値、アルファ値がそのまま累積することとなる。これは、キャンバスをページ等の一段下のレイヤーに描画するときに、累積している値がソースアルファ値として影響することを示す。
しかしながら、キャンバス自体に透明度が設定されていない場合は、出来上がったキャンバスをページ上に描いた結果は、オブジェクトを直接ページに書いた場合と同じとなる(図2(B)参照)。
この場合、図2(B)のようにページとは別のバッファに描画を実行する必要はなく、キャンバスが定義されていないときと同様の処理を行えばよい。
[キャンバスに透明度属性がある場合]
上述のように、オブジェクトが描画された領域には色値とアルファ値が累積していくが、その他の領域は0.0の完全に透明のまま残る。
キャンバス自体に透明度が設定されている場合の描画方法について、XPS仕様書中に提示される実装方法では、キャンバス上のオブジェクトの描画が終了し、下のレイヤーに書き込む時に、キャンバスエレメントの属性のOpacityとOpacityMaskの値を累積しているアルファ値に適用(結合)する。これはブレンドステップ(1)にあたり、キャンバス自体のOeとOmを累積したアルファ値にかけることを意味する。
また、キャンバス中でオブジェクトが描かれていない領域はOpacity、OpacityMaskが適用されてもアルファ値は0.0で完全に透明な何もかかれない状態で残る。そのため、描画されたオブジェクトの部分にのみ、透明度処理の効果がでる(図3(C)参照)。
概念的には上記したステップを経るが、同一キャンバス上にこのとおりの処理をしようとすると、オブジェクトが重なった場合などは、デスティネーションのアルファ値を考慮した図2(A)の厳密なブレンド処理を行うことになる(図3(D))。
[構成]
図1は、本発明の実施例に係る画像処理装置の機能ブロック図である。
画像処理装置は、通信インタフェース1.1、データ受信部1.2、データ解析部1.3、描画データ処理部1.4(中間言語変換部)、キャンバスチェック部1.4.1、BBOX情報算出部1.4.2(描画領域情報算出部)、キャンバス用メモリ算出部1.4.3、描画部1.5(アルファブレンド演算部)、出力部1.6、システム制御部1.7、エラー制御部1.8、メモリ管理部1.9の各機能部を有する。以下に各機能部について説明する。
通信インタフェース1.1は、ホストコンピュータ等との通信を行う機能部である。
データ受信部1.2は、通信インタフェース1.1を介してデータ(ページ記述言語で記載してある印刷データ)を受信する機能部である。
データ解析部1.3は、送られてきたページ記述言語で記述された印刷データの解析を行なう機能部である。
描画データ処理部1.4(中間言語変換部)は、前記データ解析部1.4からの指示に従い、ページ記述言語を中間言語(ここでは、具体的にはディスプレイリスト)に変換する。
XPS等のXML拡張形式で記述されたページ記述言語中には、描画オブジェクトである、パス、グリフス(フォント)、イメージ等のエレメントがあり、これら描画オブジェクトを表示するための土台となるキャンバスがある。これらエレメントやキャンバスは、それぞれに透明度属性を有することが可能である。又、キャンバスは、入れ子構造(ネスト構造)をとって、その中に含むキャンバスやエレメントをひとつのグループとして扱うことが可能となる。
描画データ処理部1.4は、前記した入れ子構造をとるキャンバスデータを中間言語に変換する際に、その入れ子構造を保ったままの構成とする。ひとつのキャンバスオブジェクトがディスプレイリストに変換された際のデータ構造を図5に示す。
キャンバスのオブジェクトは、その開始を示す「Start」マークに続き、キャンバス上に存在する描画オブジェクト又はキャンバスオブジェクトのディスプレイリスト、キャンバスの終了を示す「End」マーク、その後にキャンバスの透明度情報が続き、キャンバスの下層への描画を示す「Write」コマンドで終了する。
キャンバスが入れ子構造となっている場合には、前記した「Start」マークと「End」マークとの間に入れ子となるキャンバスオブジェクトへのポインターが入る。
キャンバスチェック部1.4.1、BBOX(Bounding Box)情報算出部1.4.2、キャンバス用メモリ算出部1.4.3の各機能部は、本発明の最も主要な特徴であるアルファブレンドの演算処理における、演算領域の限定による記憶容量の削減、演算処理の高速化を実現するための矩形領域を算出するための機能部である。これらの機能部の動作については、後述の「アルファブレンド演算処理に伴う記憶容量の削減について」において詳細を述べる。
描画部1.5は、描画データ処理部1.4で作成されたディスプレイリスト(中間言語)からVRAMにビットマップデータを作成する機能部である。アルファブレンドの演算処理はここ描画部1.5において行われる。前記キャンバスチェック部1.4.1、BBOX(Bounding Box)情報算出部1.4.2、キャンバス用メモリ算出部1.4.3によって演算を必要とされる描画領域が求められ、描画部1.5は、該描画領域についてのみアルファブレンド演算処理及び、ビットマップ変換処理が行われる。
出力部1.6は、上記の各機能部で画像処理が行われて得られたビットマップデータを出力する機能部である。前記出力とは、用紙などの記録媒体に印刷することであってもよいし、ディスプレイデバイスに表示出力を行う方法でもよい。
システム制御部1.7は、画像処理装置システムの共通情報を管理し、システムの制御を行なう機能部である。
エラー制御部1.8は、画像処理装置のエラーが発生した場合の処理を制御する機能部である。
メモリ管理部1.9は、画像処理装置のシステムのメモリを管理する機能部である。
[アルファブレンド演算アルゴリズム]
図5で示した入れ子構造を有するディスプレイリスト(中間言語)のアルファブレンドの演算は以下に示す再帰アルゴリズムにより効率よく計算される。
一つのキャンバスの透過の計算Compositeを考えると、計算は次のようになる。
***_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が白となっていれば良い。
[処理内容の具体例]
前記した再帰アルゴリズムの処理内容の具体例について図6、図7を用いて以下に説明する。
前記アルゴリズムは、キャンバスの開始とともに、一時的に色を保持するバッファを確保し、そのバッファ内で描画処理を行う。キャンバスの終了時点でバッファをイメージとして、一つ下のレイヤーにブレンド処理を行いながら描画していく方法である。キャンバス描画中にさらにネストしている場合は、再帰呼出を行って、それに応じて色を保持するバッファを確保し、一段上のキャンバスとして処理する。
この処理を行う場合の一例として、半透明キャンバスがネスト化(入れ子構造)し、さらにそのキャンバス上で、半透明のオブジェクトが重なっているケースを考える。
図6(E)は、XPSで表記した一段目のOpacity=0.5を有するCanvas1上に、描画オブジェクトである矩形のObject1が存在し、さらにOpacity=0.5を有する二段目のCanvas2がネストされており、二段目のCanvas2上に三角形のObject2とObject3が存在している。
図6(F)に、上記XPSの全オブジェクトを透明度(Opacity)が無いと仮定した場合の描画を示し、図6(G)に上記XPSに表記どおりの透明度(Opacity)のアルファブレンド演算を行った場合の描画を示す。ただし、カラー表記ができないため、グレースケールに変換して描画してある。
このデータに対する描画部1.5による処理手順を図7に示し、前記した再帰アルゴリズムの式と対比させて説明を行う。
[ページバッファの確保];図7(H)
最初に描画するための最終のページであるページバッファを確保する。
[Canvas1の開始];図7(I)
これまでページバッファに描かれている結果をCanvas1にコピーする(式1)。さらに、Canvas1上のObject1を描画する。(式3〜4)。また、Canvas1の透明度情報を何らかの形(例えば、再帰呼出しルーチンのローカル変数等)で保持しておく。
[Canvas2の開始];図7(J)
Canvas1に描かれている結果をCanvas2にコピーする。(式2による再帰呼出しと式1)。
次に、Canvas2上のオブジェクト(Object2, Object3)を描画する。このとき、Canvas2上でアルファブレンド演算処理を行う(式3〜4)。
また、前記と同様にCanvas2の透明度情報を何らかの形(例えば、再帰呼出しルーチンのローカル変数等)で保持しておく。
[Canvas2の終了];図7(K)
Canvas2自体の透明度情報(エレメントのOpacity値、OpacityMask値)をもって、Canvas2をイメージとして一段下のCanvas1に描画する(式4)。
Canvas2のバッファを開放。
[Canvas1の終了];図7(L)
Canvas1自体の透明度属性情報(エレメントのOpacity値、OpacityMask値)をもって、Canvas1をイメージとしてページに描画(式4)。
Canvas1のバッファを開放。
以上の一連の動作により、再帰アルゴリズムによってアルファブレンド演算処理が可能となった。
[座標値を伴うキャンバスの例]
図6(E)の例では、キャンバスに座標値の指定が無い場合について説明したが、キャンバスには座標値の指定が伴う場合もある。
表1に示すのは、XPSで記載されたキャンバスの例であるが、ここでは、Canvas中にイメージ"/Resources/R16LY_NN.png"が載っており、その座標値の指定がViewbox、Viewportであることを示している。
[アルファブレンド演算処理に伴う記憶容量の削減について]
プリンタの描画処理でブレンド処理を行う場合、(R,G,B,α)の要素毎に8bit、つまり1ピクセル当たり32bitの色情報が必要である。前述したように、透明度属性のあるキャンバス機能が使用された場合には、そのキャンバス上に描かれた描画結果を保持する為のメモリが必要になる。
プリンタの描画処理においては、メモリ使用量を考慮してページをバンドに区切ってバンド単位に図形を描画する方法が一般である。従ってこのキャンバス上に描かれた描画結果を保持する為のメモリもバンド単位で充分になる。しかしA4の紙サイズで1つのバンドの高さを200ラインとすると、このメモリには約3.8MB必要になる。
このような描画システムで、キャンバス上に描画されるオブジェクトの座標値より、描画される矩形座標情報(Bounding BOX(BBOX))を算出し、その矩形領域が保持できる分のメモリを使えば、描画結果を保持するメモリを節約することができる。以下に図8を用いて、メモリの削減について説明する。
本発明実施例の画像処理装置では、描画データ処理部1.4にて、描画するオブジェクトの座標からバンド毎に、透明度処理を可能にするために最低限必要なメモリサイズを算出する。
描画部1.5の処理単位が1バンドずつであれば、上記バンド毎で算出されたメモリサイズがページ中で最大のメモリがあれば、1ページの描画が可能である。
本実施例の画像処理装置では、図4の機能ブロック図に示すように、従来のシステムの描画データ処理部1.4にキャンバスチェック部1.4.1とBBOX(Bounding Box)情報算出部1.4.2とキャンバス用メモリ算出部1.4.3を設ける。
キャンバスチェック部1.4.1は描画データ処理部1.4に入ってくる描画データの中にキャンバスの指定があった場合に、これをページ単位で覚えておく。その時、キャンバスチェック部1.4.1はキャンバスの透明度属性を調べて、そのキャンバスが不透明かどうかを判別し、且つそのキャンバスが最初のキャンバスから連続している不透明なキャンバスかどうかを調べる。指定されたキャンバスが不透明で最初のキャンバスから連続している場合は、そのキャンバスへの描画は直接VRAMに対して行ってよいので、そのキャンバスは「仮キャンバス」だとキャンバス情報に記録しておく。そうでないキャンバスは「実キャンバス」だとキャンバス情報に記録しておく。
また、BBOX情報算出部1.4.2(描画領域情報算出部)は、描画指定が描画データ処理部1.4に入力された際、キャンバスチェック部1.4.1が「実キャンバス」の状態であるかを判断し、「実キャンバス」である場合に、描画オブジェクトの座標値からBBOX情報を算出する(図8参照)。
また、キャンバス用メモリ算出部1.4.3では、描画部1.5でキャンバスの処理を行う際に必要となるメモリの量を計算する。この際、「仮キャンバス」の処理に必要なメモリは0として計算する。逆に「実キャンバス」で必要となるメモリ容量は、BBOX情報算出部1.4.2(描画領域情報算出部)で算出されるBBOX情報から、各バンドで必要となるメモリ容量を算出する。
上記の方法により、アルファブレンド演算処理において、従来のようにバンドメモリの全体で演算を行うのではなく、演算が必要とされる矩形領域内においてのみアルファブレンド演算処理を行うことが可能となった。
[実施例の効果]
本発明実施例の画像処理装置により、以下のことが可能となった。
XPS等のXML拡張形式等のページ記述言語によって記述された入れ子構造を有する描画オブジェクト、キャンバスの透明度属性の合成(アルファブレンド演算)を効率よく行うため、ページ記述言語を中間言語に変換する際に前記入れ子構造を保持した形で変換を行った。さらに、前記入れ子構造を有する中間言語データのアルファブレンド演算を再帰アルゴリズムにより実現した。
上記の方法により、入れ子構造をまたいだアルファブレンド演算を効率よく行うことが可能となった。
上記の構造を有する中間言語により、アルファブレンド演算処理を行い、その後のビットマップデータへの変換を行ってプリンタでの印刷処理が可能となった。
本画像処理装置では、前記アルファブレンド演算処理を行う際に、透明度属性が指定されたキャンバス上のオブジェクトの矩形状の描画領域を判別し、その領域外のデータをメモリに保持することや、描画処理を行うことを省くことにより、アルファブレンド演算や描画処理を高速化し、メモリの効率化を図ることが可能となった。
[その他]
色値は、実施例中ではRGBの三原色に基づくものを示したが、CMYKの色値であっても同様にアルファブレンド演算処理が可能である。
XPSによるアルファ値、カラー値、透明度、透明マスクの表記例である。 キャンバスへの描画時のアルファブレンド(透明度設定なし)の概念図である。 キャンバスへの描画時のアルファブレンド(透明度設定あり)の概念図である。 本発明実施例の画像処理装置の機能ブロック図である。 本発明実施例のディスプレイリストのデータ構造例である。 ネスト化されたキャンバスのXPSでの表記例(E)とその対応図面(透明度設定あり(F)及びなし(G))である。 図6(E)に記載のXPSデータの描画の処理手順を示す図である。 描画領域の判別の図である。
符号の説明
1.1 通信インタフェース
1.2 データ受信部
1.3 データ解析部
1.4 描画データ処理部(中間言語変換部)
1.4.1 キャンバスチェック部
1.4.2 BBOX情報算出部(描画領域情報算出部)
1.4.3 キャンバス用メモリ算出部
1.5 描画部(アルファブレンド演算部)
1.6 出力部
1.7 システム制御部
1.8 エラー制御部
1.9 メモリ管理部

Claims (4)

  1. 透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとの透明度属性の合成処理を行う画像処理装置であって
    前記描画オブジェクト及び前記キャンバスの座標値より、前記描画オブジェクト及びキャンバスの描画される矩形領域の座標情報を算出する描画領域情報算出部と、
    前記描画領域情報算出部により算出された矩形領域中でのみ前記透明度属性の合成処理を行う描画部と、
    前記キャンバスの前記透明度属性が不透明であるかどうかを検出し、入れ子構造に連続しているキャンバスが不透明である場合は該キャンバスを仮キャンバスとして記録し、それ以外のキャンバスを実キャンバスとして記録するキャンバスチェック部と、
    を有し、
    前記描画領域情報算出部は、前記キャンバスチェック部により実キャンバスとして記録されたキャンバスの座標値に基づいて、前記矩形領域の座標情報を算出し、
    前記描画部は、前記描画領域情報算出部により算出された矩形領域中でのみ描画処理を行う、
    ことを特徴とする画像処理装置。
  2. 請求項1の画像処理装置であって、
    前記キャンバスの前記透明度属性の合成処理に必要なメモリ量の計算をする際に、前記描画領域情報算出部により前記仮キャンバスと判断されたキャンバスについてはゼロとして計算し、前記実キャンバスと判断されたキャンバスについては該キャンバスの前記矩形領域に基づいて計算するメモリ領域算出部を有する
    ことを特徴とする画像処理装置。
  3. 透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとの透明度属性の合成処理を画像処理装置で行う画像処理方法であって、
    前記画像処理装置が、前記描画オブジェクト及び前記キャンバスの座標値より、前記描画オブジェクト及びキャンバスの描画される矩形領域の座標情報を算出し、
    該算出された矩形領域中でのみ前記透明度属性の合成処理を行い、
    前記キャンバスの前記透明度属性が不透明であるかどうかを検出し、入れ子構造に連続しているキャンバスが不透明である場合は該キャンバスを仮キャンバスとして記録し、それ以外のキャンバスを実キャンバスとして記録し、
    前記実キャンバスとして記録されたキャンバスの座標値に基づいて、前記矩形領域の座標情報を算出し、
    前記算出された矩形領域中でのみ描画処理を行う、
    ことを特徴とする画像処理方法
  4. コンピュータに透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとの透明度属性の合成処理機能を実現させる画像処理プログラムであって、
    前記描画オブジェクト及び前記キャンバスの座標値より、前記描画オブジェクト及びキャンバスの描画される矩形領域の座標情報を算出する描画領域情報算出機能と、
    該算出された矩形領域中でのみ前記透明度属性の合成処理を行う描画機能と、
    前記キャンバスの前記透明度属性が不透明であるかどうかを検出し、入れ子構造に連続しているキャンバスが不透明である場合は該キャンバスを仮キャンバスとして記録し、それ以外のキャンバスを実キャンバスとして記録するキャンバスチェック機能とを
    コンピュータに実現させ、
    前記描画領域情報算出機能は、前記キャンバスチェック機能により実キャンバスとして記録されたキャンバスの座標値に基づいて、前記矩形領域の座標情報を算出し、
    前記描画機能は、前記算出された矩形領域中でのみ描画処理を行う、
    ことを特徴とする画像処理プログラム
JP2008251313A 2008-09-26 2008-09-29 画像処理装置、画像処理方法及び画像処理プログラム Expired - Fee Related JP5028373B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008251313A JP5028373B2 (ja) 2008-09-29 2008-09-29 画像処理装置、画像処理方法及び画像処理プログラム
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
JP2008251313A JP5028373B2 (ja) 2008-09-29 2008-09-29 画像処理装置、画像処理方法及び画像処理プログラム

Publications (2)

Publication Number Publication Date
JP2010086042A JP2010086042A (ja) 2010-04-15
JP5028373B2 true JP5028373B2 (ja) 2012-09-19

Family

ID=42249989

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008251313A Expired - Fee Related JP5028373B2 (ja) 2008-09-26 2008-09-29 画像処理装置、画像処理方法及び画像処理プログラム

Country Status (1)

Country Link
JP (1) JP5028373B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021245875A1 (ja) * 2020-06-04 2021-12-09

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6870550B1 (en) * 1999-04-26 2005-03-22 Adobe Systems Incorporated Digital Painting
US7292255B2 (en) * 2000-05-31 2007-11-06 Canon Kabushiki Kaisha Image data acquisition optimisation
CN100545831C (zh) * 2006-09-27 2009-09-30 北京大学 一种透明页面的光栅化处理方法及装置

Also Published As

Publication number Publication date
JP2010086042A (ja) 2010-04-15

Similar Documents

Publication Publication Date Title
JP5028372B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
US7519899B2 (en) Planar mapping of graphical elements
US8314951B2 (en) Image processing apparatus, and computer-readable recording medium
JP6494249B2 (ja) 画像形成装置、画像形成方法、プログラム
US7164494B1 (en) Color separation of pattern color spaces and form XObjects
JP5526874B2 (ja) 画像処理装置及び画像処理プログラム
JP5732935B2 (ja) 情報処理装置と印刷制御プログラムとコンピュータ読み取り可能な記録媒体
JP5028373B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP4143613B2 (ja) 描画方法、描画装置
JP5033746B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP6904717B2 (ja) 画像処理装置、その制御方法、およびプログラム
JP5033747B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP5007291B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
CN104461406B (zh) 一种打印输出方法及装置
JP2010087792A (ja) 画像形成装置及び画像形成プログラム
JP5227898B2 (ja) 画像形成装置及び画像形成プログラム
JP5094667B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP2011065413A (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP2017097463A (ja) 印刷制御システム、印刷制御装置およびプログラム
JP5603295B2 (ja) 正しいzオーダーでのデータのレンダリング
JP2012109897A (ja) ドライバープログラム、および、印刷装置
JP2009101662A (ja) 印刷処理装置
JP2009066926A (ja) 画像処理装置及び画像形成システム
JP2011186835A (ja) 画像処理装置及び画像処理プログラム
JP2007122621A (ja) 情報処理装置、情報処理方法

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 Written amendment

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