説明

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

【課題】 透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとを含むページ記述言語を画像に変換処理する画像処理装置において、透明度処理をともなうキャンバスの重ね合わせの回数が多いデータの場合にメモリオーバーフローが発生して描画処理が停止してしまうことを解決すること。
【解決手段】 本発明の画像処理装置では、描画処理が行われているレイヤ以外のイメージバッファを二次記憶装置であるストレージデバイスに書き込み、一次記憶装置である主メモリを開放する。これにより、メモリオーバーフローが発生するのを回避することが可能となる。ストレージデバイスに一次退避させたレイヤは、一段上のレイヤの描画処理が終了した後、再度メモリ上に読み出すことにより、レイヤ同士の重ね合わせ処理が可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
透明度属性を有する描画オブジェクトと該描画オブジェクトを描画する土台であり透明度属性を有するキャンバスとを表記可能であるページ記述言語について、そのビットマップ変換をする際に、複数層重なるキャンバスと描画オブジェクトによって主メモリが消費されてしまうことにより、描画変換処理が行えなくなってしまうことを抑制する技術に関するものである。
【背景技術】
【0002】
XPS等のXML拡張形式で記述されたページ記述言語においては、透明度属性を有した描画オブジェクト(パスやフォントやイメージ等)及び前記描画オブジェクトの描画の土台となる透明度属性を有したキャンバスが複数層重なって存在させることが可能であり、これらが複数層重なった描画オブジェクト及びキャンバスの透明度属性の合成処理(アルファブレンド演算処理)を行う際には、該キャンバスの層毎に前記アルファブレンド演算処理のためのメモリの確保と、該アルファブレンド演算処理が必要となる。しかし、この場合にキャンバスが複数層重なっている場合には、一番上の層となるレイヤの描画が終わるまで、その下に構成されるアルファブレンド演算が行われるレイヤを保持する必要がある。そのため、当該レイヤのイメージを保持しておくバッファが主メモリを圧迫し、メモリオーバーフローを発生させてしまうという問題があった。
【0003】
従来技術として、アルファブレンド演算処理の前にデバイスの色域に圧縮するか、デバイスの色域に圧縮してからアルファブレンド処理を行うかによって、レンダリング結果が異なるため、カラーマッチング手段によりどちらが適正化を判断して、より適切な方法を選択する方法があった(特許文献1参照)。
【0004】
しかし、この方法でも前記したキャンバスのイメージを保持しておくために主メモリが圧迫されてしまいメモリオーバーフローが発生することを抑制することはできなかった。
【特許文献1】特開2006−345197号公報
【非特許文献1】XML Paper Specification, XPS Specification and Reference Guide Version 1.0
【発明の開示】
【発明が解決しようとする課題】
【0005】
解決しようとする問題点は、ページ記述言語を中間言語に変換する画像処理を行う画像処理装置、画像処理方法及び画像処理プログラムにおいて、透明度属性を有するキャンバスが複数層重なる場合にアルファブレンド演算処理を行うために保持されるキャンバスのイメージにより主メモリが足りなくなってしまい、メモリオーバーフローを発生させてしまうことを防止することができなかった点である。
【課題を解決するための手段】
【0006】
本発明の画像処理装置は、透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとを含むページ記述言語を画像に変換処理する画像処理装置であって、前記透明度属性の合成処理であるアルファブレンド演算のための記憶容量を主メモリに確保して、前記アルファブレンド演算を行うアルファブレンド演算部と、前記アルファブレンド演算部が確保した主メモリ中のキャンバスのメモリイメージを主メモリから補助メモリに退避し、前記メモリイメージが前記アルファブレンド演算処理のために必要な時には、補助メモリから主メモリに呼び戻すストレージデバイス管理部と、を有することを特徴とする。
【0007】
ここで、主メモリとは、S−RAMやD−RAM等の半導体メモリからなる高速の一次記憶装置のことであり、補助メモリとはフラッシュメモリや回転磁気ディスクなどの、低速大容量の二次記憶装置のことである。
【0008】
また、本発明の画像処理装置は、前記ページ記述言語中に前記キャンバスが入れ子構造に記述された場合に、前記ページ記述言語を前記キャンバスの入れ子構造を保ったまま中間言語に変換する中間言語変換部を有し、前記アルファブレンド演算部は、前記入れ子構造を保った中間言語に基づいて前記透明度属性の合成を行うことを特徴としてもよい。
【0009】
また、本発明の画像処理装置は前記ページ記述言語がXML(Extended Markup Language)拡張形式により記述されたものであることを特徴としてもよい。
【0010】
本発明の画像処理方法は、透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとを含むページ記述言語を画像に変換処理する画像処理方法であって、前記透明度属性の合成処理であるアルファブレンド演算のための記憶容量を主メモリに確保して、前記アルファブレンド演算を行うアルファブレンド演算手段と、前記アルファブレンド演算手段が確保した主メモリ中のキャンバスのメモリイメージを主メモリから補助メモリに退避し、前記メモリイメージが前記アルファブレンド演算処理のために必要な時には、補助メモリから主メモリに呼び戻すストレージデバイス管理手段と、を有することを特徴とする。
【0011】
ここで、主メモリとは、S−RAMやD−RAM等の半導体メモリからなる高速の一次記憶装置のことであり、補助メモリとはフラッシュメモリや回転磁気ディスクなどの、低速大容量の二次記憶装置のことである。
【0012】
本発明の画像処理プログラムは、コンピュータに透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとを含むページ記述言語を画像に変換処理する機能を実現させる画像処理プログラムであって、前記透明度属性の合成処理であるアルファブレンド演算のための記憶容量を主メモリに確保して、前記アルファブレンド演算を行うアルファブレンド演算機能と、前記アルファブレンド演算手段が確保した主メモリ中のキャンバスのメモリイメージを主メモリから補助メモリに退避し、前記メモリイメージが前記アルファブレンド演算処理のために必要な時には、補助メモリから主メモリに呼び戻すストレージデバイス管理機能と、をコンピュータに実現させることを特徴とする。
【0013】
ここで、主メモリとは、S−RAMやD−RAM等の半導体メモリからなる高速の一次記憶装置のことであり、補助メモリとはフラッシュメモリや回転磁気ディスクなどの、低速大容量の二次記憶装置のことである。
【発明の効果】
【0014】
本発明の画像処理装置は、透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとを含むページ記述言語を画像に変換処理する画像処理装置であって、前記透明度属性の合成処理であるアルファブレンド演算のための記憶容量を主メモリに確保して、前記アルファブレンド演算を行うアルファブレンド演算部と、前記アルファブレンド演算部が確保した主メモリ中のキャンバスのメモリイメージを主メモリから補助メモリに退避し、前記メモリイメージが前記アルファブレンド演算処理のために必要な時には、補助メモリから主メモリに呼び戻すストレージデバイス管理部と、を有することを特徴とする。
【0015】
このため、透明度属性を有するキャンバスが複数層重なって存在するページ記述言語の変換処理の際に、前記複数層のキャンバスによって主メモリが圧迫されること無く、アルファブレンド演算処理に必要なキャンバス層のみが主メモリに呼び戻されてアルファブレンド演算処理が行われるため、メモリオーバーフローを発生することなく、画像の変換処理が可能となった。
【0016】
また、本発明の画像処理装置は、前記ページ記述言語中に前記キャンバスが入れ子構造に記述された場合に、前記ページ記述言語を前記キャンバスの入れ子構造を保ったまま中間言語に変換する中間言語変換部を有し、前記アルファブレンド演算部は、前記入れ子構造を保った中間言語に基づいて前記透明度属性の合成を行うことを特徴としてもよい。
【0017】
このため、入れ子構造による複数層のキャンバスが重なるような場合であっても、メモリオーバーフローを発生することなく、画像の変換処理が可能となった。
【0018】
また、本発明の画像処理装置は前記ページ記述言語がXML(Extended Markup Language)拡張形式により記述されたものであることを特徴としてもよい。
【0019】
このため、XML(Extended Markup Language)拡張形式でのページ記述言語においても、メモリオーバーフローを発生することなく、画像の変換処理が可能となった。
【0020】
本発明の画像処理方法は、透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとを含むページ記述言語を画像に変換処理する画像処理方法であって、前記透明度属性の合成処理であるアルファブレンド演算のための記憶容量を主メモリに確保して、前記アルファブレンド演算を行うアルファブレンド演算手段と、前記アルファブレンド演算手段が確保した主メモリ中のキャンバスのメモリイメージを主メモリから補助メモリに退避し、前記メモリイメージが前記アルファブレンド演算処理のために必要な時には、補助メモリから主メモリに呼び戻すストレージデバイス管理手段と、を有することを特徴とする。
【0021】
このため、透明度属性を有するキャンバスが複数層重なって存在するページ記述言語の変換処理の際に、前記複数層のキャンバスによって主メモリが圧迫されること無く、アルファブレンド演算処理に必要なキャンバス層のみが主メモリに呼び戻されてアルファブレンド演算処理が行われるため、メモリオーバーフローを発生することなく、画像の変換処理が可能となった。
【0022】
本発明の画像処理プログラムは、コンピュータに透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとを含むページ記述言語を画像に変換処理する機能を実現させる画像処理プログラムであって、前記透明度属性の合成処理であるアルファブレンド演算のための記憶容量を主メモリに確保して、前記アルファブレンド演算を行うアルファブレンド演算機能と、前記アルファブレンド演算手段が確保した主メモリ中のキャンバスのメモリイメージを主メモリから補助メモリに退避し、前記メモリイメージが前記アルファブレンド演算処理のために必要な時には、補助メモリから主メモリに呼び戻すストレージデバイス管理機能と、をコンピュータに実現させることを特徴とする。
【0023】
このため、透明度属性を有するキャンバスが複数層重なって存在するページ記述言語の変換処理の際に、前記複数層のキャンバスによって主メモリが圧迫されること無く、アルファブレンド演算処理に必要なキャンバス層のみが主メモリに呼び戻されてアルファブレンド演算処理が行われるため、メモリオーバーフローを発生することなく、画像の変換処理が可能となった。
【発明を実施するための最良の形態】
【0024】
ページ記述言語を中間言語に変換する画像処理を行う画像処理装置、画像処理方法及び画像処理プログラムにおいて、透明度属性を有するキャンバスが複数層重なる場合に、アルファブレンド演算処理を行うために保持されるキャンバスのイメージにより主メモリが足りなくなってしまい、メモリオーバーフローが発生して画像変換処理ができなくなってしまう問題点を、演算処理中に直近には必要としないキャンバスのメモリイメージを主メモリから補助メモリに退避して、アルファブレンド演算処理のために前記メモリイメージが必要なときに、補助メモリから主メモリに呼び戻すことにより解決した。
【実施例】
【0025】
本発明の実施例に係る画像処理装置について以下に説明する。
【0026】
[透明度属性の合成;アルファブレンドについて]
アルファブレンドとは、2つのそれぞれに色値を有する画像をある係数により半透明合成することである。この係数をアルファ値といい0.0〜1.0の値をとる。0.0が完全に透明、1.0が完全に不透明な重ね合わせであることを表している。その間の値が半透明である。PDF(Portable Document Format)、およびXPS(XML Paper Specification)ドキュメント形式ではパスによる図形や、フォント、イメージ等のオブジェクトに対してアルファ値が設定でき、描画の際に、下地の色とのアルファブレンド(透明度と色値との合成)が可能になっている。
【0027】
以下にアルファブレンドの透明度の合成処理がどのように行われるかについて、XPSドキュメント形式のデータを例に用いて説明する。
【0028】
図1にXPSで表記された透明度属性を持つPathのデータを示し、XPS仕様書1.0(非特許文献1参照)の11.4 Opacity Computationsに記載されているアルファブレンドを厳密に行う場合のステップを以下に示す。
(1):ソース側のアルファ値を求める。ソースのアルファ値にOpacityアトリビュートの値とOpacityMaskの値をかける。
【0029】
As1 = As * Oe * Om
As :ソースエレメントのアルファ値(図1参照)
Oe :ソースエレメントのOpacity値(図1参照)
Om :描画するピクセル位置のソースエレメントのOpacityMask値(図1参照)
(2):(1)で求まったアルファ値(As1)をソースの色値にかける。この処理をPre-multiply source alphaという。下記に示す式のCsはRGBや、Gray、CMYK等のカレントカラースペースにおけるプレーン毎の値である。
【0030】
Cs_tmp = Cs * As1
Cs :ソースの色値(図1参照)
Cs_tmp :ソース側カラー値のテンポラリ値
(3):デスティネーション側のアルファをデスティネーションの色値にかける。この処理をPre-multiply destination alphaという。下記に示す式のデスティネーションのピクセル色値Cdはソース側と同様に、RGBや、Gray、CMYK等のカレントカラースペースにおけるプレーン毎の値である。
【0031】
Cd_tmp = Cd * Ad
Ad :デスティネーションのアルファ値
Cd :デスティネーションの描画ピクセル位置の色値
Cd_tmp :デスティネーション側カラー値のテンポラリ
(4):ブレンド処理を行う。
【0032】
A_tmp = ( 1 - As1 ) * Ad + As1
C_tmp = ( 1 - As1 ) * Cd_tmp + Cs_tmp
A_tmp :(5)のチェック用テンポラリ
C_tmp :(5)のチェック用テンポラリ
(5):デスティネーション結果に書き込む値を求める。この処理をReverse pre-multiplicationという。
【0033】
If A_tmp = 0
{
Anew = Cnew = 0
}
Else
{
Anew = A_tmp
Cnew = min(C_tmp / A_tmp, 1)
}
(1)、(2)で現れるパラメータが図1のXPSドキュメント中に現れる(より詳細については非特許文献1を参照)。
【0034】
[ページへの描画処理のケース]
ブレンド処理ステップ(3)において、ページへの描画処理では下地は不透明、すなわちAd=1.0ととることができる。この場合は、下記のようにソースの色値とアルファ値、および既にページに書かれているデスティネーションの色値のみでアルファブレンド処理ができる(図2(A)参照)。
【0035】
As1 = As * Oe * Om
Anew = 1.0 (不透明で変化なし)
Cnew = ( 1 - As1 ) Cd + As1 * Cs (単純なアルファブレンドの式として知られている)
[キャンバスに透明度属性がない場合]
ブレンド処理のステップ(3)において、キャンバスへの描画処理では、初期状態において下地は完全な透明、Ad=0.0で色なし、Cd=0.0(RGBなら黒)ととらえることができる。これはガラス板のイメージになる。
【0036】
As1 = As * Oe * Om
Anew = As1 (アルファの値が累積)
Cnew = Cs (ソースの色値はそのまま)
キャンバス上にまだ何も描画されていない状態で、ブレンド処理ステップに従うと、上記のように、キャンバス上のオブジェクトに透明度が含まれている場合、キャンバス上には、色値、アルファ値がそのまま累積することとなる。これは、キャンバスをページ等の一段下のレイヤに描画するときに、累積している値がソースアルファ値として影響することを示す。
【0037】
しかしながら、キャンバス自体に透明度が設定されていない場合は、出来上がったキャンバスをページ上に描いた結果は、オブジェクトを直接ページに書いた場合と同じとなる(図2(B)参照)。
この場合、図2(B)のようにページとは別のバッファに描画を実行する必要はなく、キャンバスが定義されていないときと同様の処理を行えばよい。
【0038】
[キャンバスに透明度属性がある場合]
上述のように、オブジェクトが描画された領域には色値とアルファ値が累積していくが、その他の領域は0.0の完全に透明のまま残る。
【0039】
キャンバス自体に透明度が設定されている場合の描画方法について、XPS仕様書中に提示される実装方法では、キャンバス上のオブジェクトの描画が終了し、下のレイヤに書き込む時に、キャンバスエレメントの属性のOpacityとOpacityMaskの値を累積しているアルファ値に適用(結合)する。これはブレンドステップ(1)にあたり、キャンバス自体のOeとOmを累積したアルファ値にかけることを意味する。
【0040】
また、キャンバス中でオブジェクトが描かれていない領域はOpacity、OpacityMaskが適用されてもアルファ値は0.0で完全に透明な何も描かれない状態で残る。そのため、描画されたオブジェクトの部分にのみ、透明度処理の効果がでる(図3(C)参照)。
【0041】
概念的には上記したステップを経るが、同一キャンバス上にこのとおりの処理をしようとすると、オブジェクトが重なった場合などは、デスティネーションのアルファ値を考慮した図2(A)の厳密なブレンド処理を行うことになる(図3(D))。
【0042】
[構成]
図4は、本発明の実施例に係る画像処理装置の機能ブロック図である。
【0043】
画像処理装置は、通信インタフェース1.1、データ受信部1.2、データ解析部1.3、描画データ処理部1.4(中間言語変換部)、描画部1.5(アルファブレンド演算部)、出力部1.6、システム制御部1.7、エラー制御部1.8、メモリ管理部1.9、ストレージデバイス管理部1.10、ストレージデバイス1.11の各機能部を有する。以下に各機能部について説明する。
【0044】
通信インタフェース1.1は、ホストコンピュータ等との通信を行う機能部である。
【0045】
データ受信部1.2は、通信インタフェース1.1を介してデータ(ページ記述言語で記載してある印刷データ)を受信する機能部である。
【0046】
データ解析部1.3は、送られてきたページ記述言語で記述された印刷データの解析を行なう機能部である。
【0047】
描画データ処理部1.4(中間言語変換部)は、前記データ解析部1.4からの指示に従い、ページ記述言語を中間言語(ここでは、具体的にはディスプレイリスト)に変換する。
【0048】
XPS等のXML拡張形式で記述されたページ記述言語中には、描画オブジェクトである、パス、グリフス(フォント)、イメージ等のエレメントがあり、これら描画オブジェクトを表示するための土台となるキャンバスがある。これらエレメントやキャンバスは、それぞれに透明度属性を有している。又、キャンバスは、入れ子構造(ネスト構造)をとって、その中に含むキャンバスやエレメントをひとつのグループとして扱うことが可能となる。
【0049】
描画データ処理部1.4は、前記した入れ子構造をとるキャンバスデータを中間言語に変換する際に、その入れ子構造を保ったままの構成とする。ひとつのキャンバスオブジェクトがディスプレイリストに変換された際のデータ構造を図5に示す。
【0050】
キャンバスのオブジェクトは、その開始を示す「Start」マークに続き、キャンバス上に存在する描画オブジェクト又はキャンバスオブジェクトのディスプレイリスト、キャンバスの終了を示す「End」マーク、その後にキャンバスの透明度情報が続き、キャンバスの下層への描画を示す「Write」コマンドで終了する。
【0051】
キャンバスが入れ子構造となっている場合には、前記した「Start」マークと「End」マークとの間に入れ子となるキャンバスオブジェクトへのポインターが入る。
【0052】
描画部1.5は、描画データ処理部1.4で作成されたディスプレイリスト(中間言語)からVRAM(描画メモリ)にビットマップデータを作成する機能部である。アルファブレンドの演算処理はここ描画部1.5において行われる。
【0053】
出力部1.6は、上記の各機能部で画像処理が行われて得られたビットマップデータを出力する機能部である。前記出力とは、用紙などの記録媒体に印刷することであってもよいし、ディスプレイデバイスに表示出力を行う方法でもよい。
【0054】
システム制御部1.7は、画像処理装置システムの共通情報を管理し、システムの制御を行なう機能部である。
【0055】
エラー制御部1.8は、画像処理装置のエラーが発生した場合の処理を制御する機能部である。
【0056】
メモリ管理部1.9は、画像処理装置のシステムのメモリ(主メモリ;一次記憶装置)を管理する機能部である。
【0057】
ストレージデバイス管理部1.10は、ハードディスクなどの二次記憶装置(補助メモリ)への読み書きを制御する。本画像処理装置においては、透明度属性を有する複数層のキャンバスが重なる場合などには、アルファブレンド演算処理に必要な層のキャンバスのイメージのみを主メモリに保持し、直近には必要としないキャンバスのイメージはハードディスクに退避して、他のキャンバスとの間でのアルファブレンド演算が必要となった時に主メモリに呼び戻して演算処理を行う。
【0058】
ストレージデバイス1.11(補助メモリ)は、ハードディスクなどからなる二次記憶装置(補助メモリ)である。
【0059】
[アルファブレンド演算アルゴリズム]
図5で示した入れ子構造を有するディスプレイリスト(中間言語)のアルファブレンドの演算は以下に示す再帰アルゴリズムにより効率よく計算される。
【0060】
一つのキャンバスの透過の計算Compositeを考えると、計算は次のようになる。
【0061】
***_nのnをキャンバスに含まれるオブジェクト数とし、計算過程の値を表す。
[擬似コードによるアルゴリズム表記]
C = Composite(C_0,O_0)
入力 C_0 :キャンバスの描画先の現在の色
O_0 :キャンバスに含まれるオブジェクト全体
出力 C :キャンバスの色値

S_0 = C_0 (式1)
全てのオブジェクト(i を1からnまで)で以下の処理を繰り返す。
【0062】
{
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が白となっていれば良い。
【0063】
[処理内容の具体例]
前記した再帰アルゴリズムの処理内容の具体例について図6、図7を用いて以下に説明する。
【0064】
前記アルゴリズムは、キャンバスの開始とともに、一時的に色を保持するバッファを確保し、そのバッファ内で描画処理を行う。キャンバスの終了時点でバッファをイメージとして、一つ下のレイヤにブレンド処理を行いながら描画していく方法である。キャンバス描画中にさらにネストしている場合は、再帰呼出を行って、それに応じて色を保持するバッファを確保し、一段上のキャンバスとして処理する。
【0065】
この処理を行う場合の一例として、半透明キャンバスがネスト化(入れ子構造)し、さらにそのキャンバス上で、半透明のオブジェクトが重なっているケースを考える。
【0066】
図6(E)は、XPSで表記した一段目のOpacity=0.5を有するCanvas1上に、描画オブジェクトである矩形のObject1が存在し、さらにOpacity=0.5を有する二段目のCanvas2がネストされており、二段目のCanvas2上に三角形のObject2とObject3が存在している。
【0067】
図6(F)に、上記XPSの全オブジェクトを透明度(Opacity)が無いと仮定した場合の描画を示し、図6(G)に上記XPSに表記どおりの透明度(Opacity)のアルファブレンド演算を行った場合の描画を示す。ただし、カラー表記ができないため、グレースケールに変換して描画してある。
【0068】
[退避されるレイヤの例]
図7に三層に重なるキャンバスのレイヤについての例を示す。図7(A)に透明度属性を有するキャンバス上に三角形の描画オブジェクトが載っており、図7(B)にその下層にある透明度属性を有するキャンバス、図7(C)にさらにその下層にあるキャンバス(キャンバスではなく、最終のメモリイメージを描画するページであっても良い)を示す。
【0069】
この場合に、描画の処理はまず下層から行われ、図7(C)のキャンバス(又はページ)のイメージを展開するために主メモリに記憶容量が確保され、メモリイメージが描画されて、ストレージデバイス1.11に退避される。同様に、図7(B)のキャンバスのイメージを展開するために主メモリに記憶容量が確保され、メモリイメージが描画されて、ストレージデバイス1.11に退避される。
【0070】
この後、最上位の図7(A)のキャンバスのイメージを展開するために主メモリに記憶容量が確保され、三角形の描画オブジェクトの描画処理及びアルファブレンド演算が行われる。
【0071】
最上位層の演算処理の終了後、図7(B)のキャンバスのメモリイメージがストレージデバイス1.11から主メモリに呼び戻されて最上位層との間でのアルファブレンド演算処理が行われ、次に図7(C)のキャンバス(又はページ)のメモリイメージがストレージデバイス1.11から主メモリに呼び戻されて、先ほどアルファブレンド演算処理を終えた上位層との間で、アルファブレンド演算処理が行われる。
【0072】
[フローチャート]
図8は本発明実施例の画像処理装置の動作のフローチャートである。
【0073】
画像処理装置において、印刷データを受信すると図8のフローチャートが開始して印刷データの解析を行う。
【0074】
S11:描画部1.5は、透明度のあるキャンバスの開始があるかどうかを判断する。透明度のあるキャンバスがあれば動作をS13に移行する。なければ動作をS29に移行する。
【0075】
S13:メモリ管理部1.9は、キャンバスに必要なバッファサイズをメモリから取得動作を行う。
【0076】
S15:S13での取得動作の結果、メモリ管理部1.9は、必要なサイズのメモリがとれたかどうかを判断する。必要なサイズのメモリがとれれば、動作をS31に移行する。取れない場合は、動作をS17に移行する。
【0077】
S17:描画部1.5は、現在注目するレイヤより下のレイヤが存在するかどうかを判断する。下のレイヤが存在する場合は、動作をS21に移行する。レイヤが存在しない場合には、動作をS19に移行する。
【0078】
S19:必要なメモリサイズがとれず、また当該キャンバスより下にレイヤが存在しないので、描画部1.5は、メモリオーバーフロー処理を行って動作を終了する。
【0079】
S21:ストレージデバイス管理部1.10は、ストレージデバイス1.11にレイヤ(キャンバスのメモリイメージ)を保存する。
【0080】
S23:メモリ管理部1.9は、保存したメモリ上のレイヤを開放する。
【0081】
S25:描画部1.5は、開始されたキャンバスの描画処理を行う。
【0082】
S27:描画部1.5は、ページの描画が終了したかどうかを判断する。終了した場合は、動作を終了する。終了していない場合は、動作をS11に移行して繰り返す。
【0083】
S29:描画部1.5は、透明度のあるキャンバスは終了したかどうかを判断する。
【0084】
S31:描画部1.5は、現在のレイヤへの描画処理を行う。
【0085】
S33:描画部1.5は、現在注目するレイヤより下のレイヤが存在するかどうかを判断する。下のレイヤが存在する場合は、動作をS35に移行する。レイヤが存在しない場合には、動作をS27に移行する。
【0086】
S35:ストレージデバイス管理部1.10は、ストレージデバイスからレイヤを読み出す。
【0087】
S37:描画部1.5は、下のレイヤへキャンバスの描画処理を行う。
【0088】
[実施例の効果]
本発明実施例の画像処理装置により、以下のことが可能となった。
【0089】
XPS等のXML拡張形式等のページ記述言語によって記述された入れ子構造を有する描画オブジェクト、キャンバスの透明度属性の合成(アルファブレンド演算)を行う際に、複数層重なるキャンバスのイメージを主メモリから補助メモリにいったん退避させて、アルファブレンド演算処理が必要なときに、補助メモリから主メモリに戻す手法を採ることにより、キャンバスのイメージデータにより主メモリのリソースが枯渇して、メモリオーバーフローにより演算処理が停止してしまうことを回避することが可能となる。
【0090】
[その他]
色値は、実施例中ではRGBの三原色に基づくものを示したが、CMYKの色値であってもよく、同様にアルファブレンド演算が可能である。
【図面の簡単な説明】
【0091】
【図1】XPSによるアルファ値、カラー値、透明度、透明マスクの表記例である。
【図2】キャンバスへの描画時のアルファブレンド(透明度設定なし)の概念図である。
【図3】キャンバスへの描画時のアルファブレンド(透明度設定あり)の概念図である。
【図4】本発明実施例の画像処理装置の機能ブロック図である。
【図5】本発明実施例のディスプレイリストのデータ構造例である。
【図6】ネスト化されたキャンバスのXPSでの表記例(E)とその対応図面(透明度設定あり(F)及びなし(G))である。
【図7】三層からなるキャンバスでの演算処理についての説明図である。
【図8】本発明実施例の画像処理装置の動作のフローチャートである。
【符号の説明】
【0092】
1.1 通信インタフェース
1.2 データ受信部
1.3 データ解析部
1.4 描画データ処理部(中間言語変換部)
1.5 描画部(アルファブレンド演算部)
1.6 出力部
1.7 システム制御部
1.8 エラー制御部
1.9 メモリ管理部
1.10 ストレージデバイス管理部
1.11 ストレージデバイス(補助メモリ;二次記憶装置)

【特許請求の範囲】
【請求項1】
透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとを含むページ記述言語を画像に変換処理する画像処理装置であって、
前記透明度属性の合成処理であるアルファブレンド演算のための記憶容量を主メモリに確保して、前記アルファブレンド演算を行うアルファブレンド演算部と、
前記アルファブレンド演算部が確保した主メモリ中のキャンバスのメモリイメージを主メモリから補助メモリに退避させ、前記メモリイメージが前記アルファブレンド演算処理のために必要な時には、補助メモリから主メモリに呼び戻すストレージデバイス管理部と、を有する
ことを特徴とする画像処理装置。
【請求項2】
請求項1の画像処理装置であって、
前記ページ記述言語中に前記キャンバスが入れ子構造に記述された場合に、前記ページ記述言語を前記キャンバスの入れ子構造を保ったまま中間言語に変換する中間言語変換部を有し、
前記アルファブレンド演算部は、前記入れ子構造を保った中間言語に基づいて前記透明度属性の合成を行う
ことを特徴とする画像処理装置。
【請求項3】
請求項1又は2の画像処理装置であって、
前記ページ記述言語がXML(Extended Markup Language)拡張形式により記述されたものである
ことを特徴とする画像処理装置。
【請求項4】
透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとを含むページ記述言語を画像に変換処理する画像処理方法であって、
前記透明度属性の合成処理であるアルファブレンド演算のための記憶容量を主メモリに確保して、前記アルファブレンド演算を行うアルファブレンド演算手段と、
前記アルファブレンド演算手段が確保した主メモリ中のキャンバスのメモリイメージを主メモリから補助メモリに退避し、前記メモリイメージが前記アルファブレンド演算処理のために必要な時には、補助メモリから主メモリに呼び戻すストレージデバイス管理手段と、を有する
ことを特徴とする画像処理方法。
【請求項5】
コンピュータに透明度属性を有する描画オブジェクトと、前記描画オブジェクトを描画する土台となる透明度属性を有するキャンバスとを含むページ記述言語を画像に変換処理する機能を実現させる画像処理プログラムであって、
前記透明度属性の合成処理であるアルファブレンド演算のための記憶容量を主メモリに確保して、前記アルファブレンド演算を行うアルファブレンド演算機能と、
前記アルファブレンド演算手段が確保した主メモリ中のキャンバスのメモリイメージを主メモリから補助メモリに退避し、前記メモリイメージが前記アルファブレンド演算処理のために必要な時には、補助メモリから主メモリに呼び戻すストレージデバイス管理機能と、をコンピュータに実現させる
ことを特徴とする画像処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2010−86239(P2010−86239A)
【公開日】平成22年4月15日(2010.4.15)
【国際特許分類】
【出願番号】特願2008−253942(P2008−253942)
【出願日】平成20年9月30日(2008.9.30)
【出願人】(000006150)京セラミタ株式会社 (13,173)
【Fターム(参考)】