(57)【要約】【課題】透過処理によるメモリの消費及び演算量の少なくとも一方を抑制する。【解決手段】印刷装置１は、Destデータ１１の上にSrcデータ１２を重ねて描画する場合に透過処理を施す処理を行うＣＰＵ２を備え、ＣＰＵ２は、バンド単位でDestデータ１１とSrcデータ１２の重複領域を検出し、検出した重複領域を示すアルファデータ１３を生成してＲＡＭ３に格納し、アルファデータの示す領域に対して透過演算処理を行う。【選択図】図３
2011028341.tif 000002
【特許請求の範囲】
【請求項１】
一のオブジェクトの上に他のオブジェクトを重ねて描画する場合に前記他のオブジェクトに透過処理を施す画像処理装置であって、
描画単位となる領域のうち前記一のオブジェクトと前記他のオブジェクトとの重複領域を検出し、検出した前記重複領域を示すデータを生成してメモリに格納し、前記重複領域を示すデータの領域に対してのみ前記透過処理を行って前記一のオブジェクトと前記他のオブジェクトとを重ねて描画する制御部を備えることを特徴とする画像処理装置。
【請求項２】
前記重複領域を示すデータは、前記透過処理における前記他のオブジェクトの不透明度を示すパラメータを含み、
前記制御部は、前記重複領域を示すデータに含まれる前記不透明度に基づいて前記透過処理を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記制御部は、前記描画単位となる領域のうち前記重複領域のみについて前記他のオブジェクトの不透明度を示すパラメータを前記メモリに格納することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記重複領域を示すデータは、前記描画単位において前記一のオブジェクトと前記他のオブジェクトの重複領域を内包する最小限の矩形領域を示すデータであることを特徴とする請求項１乃至３の何れか一項に記載の画像処理装置。
【請求項５】
前記制御部は、前記描画単位において前記一のオブジェクトと前記他のオブジェクトとの重複の有無を検出し、前記一のオブジェクトと前記他のオブジェクトとの重複がある場合、前記重複領域を内包する最小限の矩形領域の四角のうちいずれかの頂点の位置及び前記重複領域を内包する最小限の矩形領域の直行する二辺のそれぞれの長さを算出し、算出された前記頂点の位置及び前記二辺のそれぞれの長さに基づいて前記重複領域を示すデータを生成し、生成した前記重複領域を示すデータを前記メモリに格納することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
一のオブジェクトの上に他のオブジェクトを重ねて描画する場合に前記他のオブジェクトに透過処理を施す画像処理装置のコンピュータを、
描画単位となる領域のうち前記一のオブジェクトと前記他のオブジェクトとの重複領域を検出する手段、
検出した前記重複領域を示すデータを生成してメモリに格納する手段、
前記重複領域を示すデータの領域に対してのみ前記透過処理を行って前記一のオブジェクトと前記他のオブジェクトとを重ねて描画する手段、として機能させることを特徴とするプログラム。
【請求項７】
前記重複領域を示すデータは、前記透過処理における前記他のオブジェクトの不透明度を示すパラメータを含み、
前記コンピュータを、
前記重複領域を示すデータに含まれる前記不透明度に基づいて前記透過処理を行う手段、として機能させることを特徴とする請求項６に記載のプログラム。
【請求項８】
前記描画単位となる領域のうち前記重複領域のみについて前記他のオブジェクトの不透明度を示すパラメータを前記メモリに格納することを特徴とする請求項７に記載のプログラム。
【請求項９】
前記重複領域を示すデータは、前記描画単位において前記一のオブジェクトと前記他のオブジェクトの重複領域を内包する最小限の矩形領域を示すデータであることを特徴とする請求項６及至８の何れか一項に記載のプログラム。
【請求項１０】
前記コンピュータを、
前記描画単位において前記一のオブジェクトと前記他のオブジェクトとの重複の有無を検出する手段、
前記一のオブジェクトと前記他のオブジェクトとの重複がある場合、前記重複領域を内包する最小限の矩形領域の四角のうちいずれかの頂点の位置及び前記重複領域を内包する最小限の矩形領域の直行する二辺のそれぞれの長さを算出する手段、
算出された前記頂点の位置及び前記二辺のそれぞれの長さに基づいて前記重複領域を示すデータを生成する手段、
生成した前記重複領域を示すデータを前記メモリに格納する手段、として機能させることを特徴とする請求項９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
近年、ＸＰＳ（XML Paper Specification）データやＰＤＦ（Portable Document Format）データ等の電子文書フォーマットによるデータをダイレクトプリント可能な画像形成装置が増えてきている。また、これらのデータによる描画機能もより複雑になってきており、その描画機能の１つとして、トランスペアレンシー（Transparency）機能がある。
【０００３】
図９は、トランスペアレンシー機能によるビットマップデータの生成を示す説明図である。
トランスペアレンシー機能とは、図９に示すように、背景となるDestinationデータ（以下、Destデータという。）に対し、新規に追加するSourceデータ（以下、Srcデータという。）を、不透明度を示すアルファデータに応じて透過処理する機能をいう。
【０００４】
図１０は、透過処理を行うために必要なリソースを示す説明図である。
透過処理を行う場合には、図１０に示すように、Destデータ、Srcデータ、アルファデータ、透過処理結果データを全てメモリ上に保持する必要があるため、膨大なメモリ量が必要となる。カラーの画像形成装置の場合、Destデータ、Srcデータ、透過処理結果データについては、ＣＭＹＫ４プレーン分あるため、
｛（Ｗ×Ｈ×４）＋（Ｗ×Ｈ×４）＋（Ｗ×Ｈ）＋（Ｗ×Ｈ×４）｝［Byte］
のメモリ量がさらに必要となる。
【０００５】
例えば、図１０に示すように、用紙サイズがＡ４の６００dpi（dot per inch）の印刷データ（幅：４９６０画素、ライン数：７０００ライン）を、ライン数２５６ラインのバンド単位で処理する場合には、１バンド分のビットマップデータを保持するために必要なメモリ量は、ＣＭＹＫ４プレーン分で、
（４９６０×２５６×４）［Byte］＝４．８［MByte］
となる。
【０００６】
透過処理を行う場合には、図１２に示すように、さらに、
｛Destデータ分（４９６０×２５６×４）｝［Byte］
＋｛Srcデータ分（４９６０×２５６×４）｝［Byte］
＋｛アルファデータ分（４９６０×２５６）｝［Byte］
＋｛透過処理結果データ分（４９６０×２５６×４）｝［Byte］
＝１５．７［MByte］
のメモリ量が必要となる。
【０００７】
また、透過処理を施す為の演算処理（以下「透過演算処理」と記載する）を１ページの全画素に対して施す場合、演算量が膨大となってビットマップデータを出力するスループットが著しく低下する。
【０００８】
そこで、透過処理によるメモリの消費及び演算量を抑制する技術が提案されている。透過処理によるメモリの消費及び演算量を抑制する技術として、例えば、透過処理が必要か否かの判定を印刷データの全描画領域に対して行い、透過処理が必要と判定された場合には透過処理を行い、透過処理が不要と判定された場合には透過処理を行わずにＲＯＰ処理（ＲＯＰ：Raster Operation）を行う画像形成装置がある（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００５−１８２６９２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に記載の画像形成装置では、透過処理によるメモリの消費及び演算量を十分に抑制することができなかった。なぜならば、特許文献１に記載の画像形成装置は、透過処理が不要と判定された場合に透過処理を行わないことでメモリの消費及び演算量を抑制するものであり、透過処理が必要と判定された場合には一切メモリの消費及び演算量を抑制することができなかったためである。
【００１１】
本発明の課題は、透過処理によるメモリの消費及び演算量の少なくとも一方を抑制することである。
【課題を解決するための手段】
【００１２】
請求項１に記載の発明は、一のオブジェクトの上に他のオブジェクトを重ねて描画する場合に前記他のオブジェクトに透過処理を施す画像処理装置であって、描画単位となる領域のうち前記一のオブジェクトと前記他のオブジェクトとの重複領域を検出し、検出した前記重複領域を示すデータを生成してメモリに格納し、前記重複領域を示すデータの領域に対してのみ前記透過処理を行って前記一のオブジェクトと前記他のオブジェクトとを重ねて描画する制御部を備えることを特徴とする。
【００１３】
請求項２に記載の発明は、請求項１に記載の画像処理装置であって、前記重複領域を示すデータは、前記透過処理における前記他のオブジェクトの不透明度を示すパラメータを含み、前記制御部は、前記重複領域を示すデータに含まれる前記不透明度に基づいて前記透過処理を行うことを特徴とする。
【００１４】
請求項３に記載の発明は、請求項２に記載の画像処理装置であって、前記制御部は、前記描画単位となる領域のうち前記重複領域のみについて前記他のオブジェクトの不透明度を示すパラメータを前記メモリに格納することを特徴とする。
【００１５】
請求項４に記載の発明は、請求項１乃至３の何れか一項に記載の画像処理装置であって、前記重複領域を示すデータは、前記描画単位において前記一のオブジェクトと前記他のオブジェクトの重複領域を内包する最小限の矩形領域を示すデータであることを特徴とする。
【００１６】
請求項５に記載の発明は、請求項４に記載の画像処理装置であって、前記制御部は、前記描画単位において前記一のオブジェクトと前記他のオブジェクトとの重複の有無を検出し、前記一のオブジェクトと前記他のオブジェクトとの重複がある場合、前記重複領域を内包する最小限の矩形領域の四角のうちいずれかの頂点の位置及び前記重複領域を内包する最小限の矩形領域の直行する二辺のそれぞれの長さを算出し、算出された前記頂点の位置及び前記二辺のそれぞれの長さに基づいて前記重複領域を示すデータを生成し、生成した前記重複領域を示すデータを前記メモリに格納することを特徴とする。
【００１７】
請求項６に記載の発明によるプログラムは、一のオブジェクトの上に他のオブジェクトを重ねて描画する場合に前記他のオブジェクトに透過処理を施す画像処理装置のコンピュータを、描画単位となる領域のうち前記一のオブジェクトと前記他のオブジェクトとの重複領域を検出する手段、検出した前記重複領域を示すデータを生成してメモリに格納する手段、前記重複領域を示すデータの領域に対してのみ前記透過処理を行って前記一のオブジェクトと前記他のオブジェクトとを重ねて描画する手段、として機能させることを特徴とする。
【００１８】
請求項７に記載の発明は、請求項６に記載のプログラムであって、前記重複領域を示すデータは、前記透過処理における前記他のオブジェクトの不透明度を示すパラメータを含み、前記コンピュータを、前記重複領域を示すデータに含まれる前記不透明度に基づいて前記透過処理を行う手段、として機能させることを特徴とする。
【００１９】
請求項８に記載の発明は、請求項７に記載のプログラムであって、前記描画単位となる領域のうち前記重複領域のみについて前記他のオブジェクトの不透明度を示すパラメータを前記メモリに格納することを特徴とする。
【００２０】
請求項９に記載の発明は、請求項６及至８の何れか一項に記載のプログラムであって、前記重複領域を示すデータは、前記描画単位において前記一のオブジェクトと前記他のオブジェクトの重複領域を内包する最小限の矩形領域を示すデータであることを特徴とする。
【００２１】
請求項１０に記載の発明は、請求項９に記載のプログラムであって、前記コンピュータを、前記描画単位において前記一のオブジェクトと前記他のオブジェクトとの重複の有無を検出する手段、前記一のオブジェクトと前記他のオブジェクトとの重複がある場合、前記重複領域を内包する最小限の矩形領域の四角のうちいずれかの頂点の位置及び前記重複領域を内包する最小限の矩形領域の直行する二辺のそれぞれの長さを算出する手段、算出された前記頂点の位置及び前記二辺のそれぞれの長さに基づいて前記重複領域を示すデータを生成する手段、生成した前記重複領域を示すデータを前記メモリに格納する手段、として機能させることを特徴とする。
【発明の効果】
【００２２】
本発明によれば、透過処理によるメモリの消費及び演算量の少なくとも一方を抑制することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態である印刷装置のブロック図である。
【図２】透過処理を伴う描画の進行例を示す説明図である。
【図３】アルファデータを生成する範囲となる矩形領域の一例を示す説明図である。
【図４】アルファデータの構成の一例を示す説明図である。
【図５】アルファデータとラスタライズ処理におけるバンドとの関係を示す説明図である。
【図６】印刷装置が行う処理全体の流れを示すフローチャートである。
【図７】図６のステップＳ２に示す解析処理の流れを示すフローチャートである。
【図８】図６のステップＳ３に示すラスタライズ処理の流れを示すフローチャートである。
【図９】トランスペアレンシー機能によるビットマップデータの生成を示す説明図である。
【図１０】透過処理を行うために必要なリソースを示す説明図である。
【発明を実施するための形態】
【００２４】
以下、図を参照して本発明の実施の形態の例を詳細に説明する。
図１は、本発明の一実施形態である印刷装置１のブロック図である。
印刷装置１は、ＣＰＵ２、ＲＡＭ３、ＲＯＭ４、ストレージデバイス５、入力インタフェース（Ｉ／Ｆ）６及び画像印刷部７を備える。ＣＰＵ２、ＲＡＭ３、ＲＯＭ４、ストレージデバイス５、入力Ｉ／Ｆ６及び画像印刷部７は、バス８により接続されている。
【００２５】
ＣＰＵ２は、ＲＯＭ４やストレージデバイス５から処理内容に応じたプログラム、データ等を読み出して実行処理し、印刷装置１の動作に関する各種の処理及び印刷装置１の各部の動作制御を行う。
【００２６】
ＲＡＭ３は、ＣＰＵ２によって読み出されたプログラム、データ等及びＣＰＵ２の処理によって生じたパラメータ等を記憶する一次記憶装置であり、所謂メモリである。
【００２７】
ＲＯＭ４は、ＣＰＵ２によって読み出されるプログラム、データ等を記憶する記憶装置である。本実施形態のＲＯＭ４は、記憶するデータの書き換えが不可能な不揮発メモリであるが、ＲＯＭ４の代わりに記憶するデータの書き換えを可能とする不揮発性の記憶装置を用いても良い。
【００２８】
ストレージデバイス５は、ＣＰＵ２によって読み出されるプログラム、データ等を記憶する記憶装置である。ストレージデバイス５は、記憶内容を書き換えることができる記憶装置であり、印刷装置１の設定に関するパラメータ等、状況に応じて変更、更新されることがあるデータを記憶する機能も有する。本実施形態のストレージデバイス５は、ハードディスクドライブ（Hard Disk Drive、HDD）であるが、記憶内容を書き換え可能な不揮発性の記憶装置であればその種類を問わない。
【００２９】
入力Ｉ／Ｆ６は、外部の機器からの入力を受け付けるインタフェースである。入力Ｉ／Ｆ６には、回線１０２を介して外部入力装置１０１が接続される。外部入力装置１０１は、入力Ｉ／Ｆ６を介して印刷装置１に対してプリントジョブ等のデータを入力する。本実施形態では、外部入力装置１０１としてＰＣを用いるが、ＰＣに限らず、少なくともプリントジョブを印刷装置１に対して入力可能な機器であれば何でも良い。入力Ｉ／Ｆ６は、外部入力装置１０１からプリントジョブ等のデータを受信することができるインタフェースならばその形態を問わない。例えば、ＵＳＢやＩＥＥＥ１３９４、その他のバスインタフェースでも良いし、イーサネット（登録商標）やBluetooth（登録商標）、その他のネットワークインタフェースでも良い。回線１０２は、有線／無線を問わない。
【００３０】
入力Ｉ／Ｆ６を介し、外部入力装置１０１から印刷装置１に対してプリントジョブの入力が行われると、ＣＰＵ２は、プリントジョブに基づいて解析処理を行い、中間言語データ（ＤＬデータ）を生成する。そして、ＣＰＵ２は、ＤＬデータに基づいてラスタライズ処理を行い、印刷データ（ビットマップデータ）を生成し、画像印刷部７へビットマップデータを出力する。
【００３１】
画像印刷部７は、ビットマップデータに基づいて印刷媒体（例えば紙等）に対して画像を形成するエンジンとして機能する。以下、画像印刷部７による印刷媒体に対する画像の形成を単に「印刷」と記載する。
【００３２】
印刷装置１は、ＣＰＵ２、ＲＡＭ３、ＲＯＭ４の協働により、入力されたプリントジョブに基づいて画像印刷部７へ印刷データを出力する画像処理装置として機能する。
【００３３】
次に、本実施形態におけるラスタライズ処理について説明する。なお、本実施形態における解析処理は、従来のプリンタの解析処理と同様であるのでその詳細を省略する。
【００３４】
図２は、透過処理を伴う描画の進行例を示す説明図である。
ＣＰＵ２は、プリントジョブに含まれるページ記述言語（Page Description Language、ＰＤＬ）に基づいてＤＬデータを生成する。ラスタライズ処理では、ＤＬデータに基づいて画像印刷部７に出力するためのビットマップデータを生成する。
【００３５】
１ページ分の印刷内容に対応するＤＬデータは複数生成される。ＤＬデータは、オブジェクトを描画するための情報を含んでいる。ＤＬデータに基づいて描画されるオブジェクトは、例えば図２に示すDestデータ１１、１４及びSrcデータ１２、１５等のような矩形、円形、三角形その他のオブジェクトであり、オブジェクトの形状はプリントジョブに含まれるPＤＬデータに基づいて矩形、円形、三角形以外にも様々な形をとりうる。
【００３６】
ビットマップデータは、ＤＬデータに基づく各オブジェクトを組み合わせて生成される。オブジェクトの組み合わせにおいて、図２に示すように、ＣＰＵ２は、ビットマップデータ１７の生成において一のオブジェクトの上に他のオブジェクトを重ねて描画する場合がある。そして、一のオブジェクトの上に他のオブジェクトを重ねて描画する場合において、他のオブジェクトに対して透過処理を施す命令を伴う場合がある。
【００３７】
透過処理を伴う場合、重なりの下側になる一のオブジェクトのデータがDestデータ（例えば図２に示すDestデータ１１、１４等）、重なりの上側になる他のオブジェクトのデータがSrcデータ（例えば図２に示すSrcデータ１２、１５等）となる。
【００３８】
DestデータとSrcデータとを重ねて描画する際に透過処理を伴う場合、解析処理において、DestデータのオブジェクトとSrcデータのオブジェクトとが重なり合う領域（以下「重複領域」と記載する）に対応するアルファデータ（例えば図２に示すアルファデータ１３、１６等）が生成される。
【００３９】
アルファデータは、透過処理を施す範囲を示すデータであり、ラスタライズ処理においてＣＰＵ２はアルファデータに基づいて透過処理を施す範囲を決定する。アルファデータは、解析処理において生成される。
ＣＰＵ２は、重複領域に基づいてアルファデータを生成する範囲を決定する。本実施形態では、重複領域を内包する最小限の矩形領域を示すアルファデータを生成する。
【００４０】
図３は、アルファデータ１３を生成する範囲となる矩形領域の一例を示す説明図である。以下の説明及び図３においては、Destデータ、Srcデータ及びアルファデータの一例として、図２に示すDestデータ１１、Srcデータ１２及びアルファデータ１３を用いている。
アルファデータ１３は、始点（x3,y3）と、始点（x3,y3）からの幅（width3）及び高さ（height3）によって決定される領域である。アルファデータ１３の始点（x3,y3）、幅（width3）及び高さ（height3）は、Destデータ１１及びSrcデータ１２によって描画されるオブジェクトのそれぞれを内包する矩形領域に基づいて決定される。
【００４１】
以下の説明及び図３において、Destデータ１１によって描画されるオブジェクトを内包する最小限の矩形領域の始点を（x1、y1）、幅を（width1）、高さを（heigth1）と記載し、Srcデータ１２によって描画されるオブジェクトを内包する最小限の矩形領域の始点を（x2、y2）、幅を（width2）、高さを（heigth2）と記載する。
【００４２】
なお、始点とは、描画領域を内包する矩形領域の左上角の位置を示す座標である。アルファデータの始点ならびにDestデータ及びSrcデータによって描画されるオブジェクトの始点は、１ページ分の印刷を行うための全描画領域の始点（例えば図３に示す始点（x0,y0）等）に対する位置を示す。幅は矩形領域における始点からの一方向（例えば図３に示す横方向）の辺の長さを、高さは幅と直行する別の一方向（例えば図３に示す縦方向）の辺の長さを示す。
【００４３】
ＣＰＵ２は、以下の式（１）〜（８）に基づいてアルファデータ１３の始点（x3,y3）、幅（width3）及び高さ（height3）を求める。
ＣＰＵ２は、x1とx2との比較結果に基づいて、アルファデータ１３の始点におけるX座標（x3）及びアルファデータ１３の幅（width3）を求める式を決定する。
【００４４】
x1＞x2の場合、ＣＰＵ２はアルファデータ１３の始点におけるX座標（x3）を以下の式（１）によって求める。
x3＝x1……（１）
x1＜x2の場合、ＣＰＵ２はアルファデータ１３の始点におけるX座標（x3）を以下の式（２）によって求める。
x3＝x2……（２）
【００４５】
x1＝x2の場合、式（１）又は式（２）のいずれを用いてもよいが、本実施形態では式（１）を用いる。即ち、アルファデータの始点におけるX座標（x3）を求めるとき、x1≧x2の場合、ＣＰＵ２は式（１）を用い、x1＜x2の場合、ＣＰＵ２は式（２）を用いる。
【００４６】
x1＞x2の場合、ＣＰＵ２はアルファデータ１３の幅（width3）を以下の式（３）によって求める。
width3＝width2＋x2−x1……（３）
x1＜x2の場合、ＣＰＵ２はアルファデータ１３の幅（width3）を以下の式（４）によって求める。
width3＝width1＋x1−x2……（４）
【００４７】
x1＝x2の場合、式（３）又は式（４）のいずれを用いてもよいが、本実施形態では式（３）を用いる。即ち、アルファデータ１３の幅（width3）を求めるとき、x1≧x2の場合、ＣＰＵ２は式（３）を用い、x1＜x2の場合、ＣＰＵ２は式（４）を用いる。
【００４８】
ＣＰＵ２は、y1とy2との比較結果に基づいて、アルファデータ１３の始点におけるY座標（y3）及びアルファデータ１３の高さ（height3）を求める式を決定する。
【００４９】
y1＞y2の場合、ＣＰＵ２はアルファデータ１３の始点におけるY座標（y3）を以下の式（５）によって求める。
y3＝y1……（５）
y1＜y2の場合、ＣＰＵ２はアルファデータ１３の始点におけるY座標（y3）を以下の式（６）によって求める。
y3＝y2……（６）
【００５０】
y1＝y2の場合、式（５）又は式（６）のいずれを用いてもよいが、本実施形態では式（５）を用いる。即ち、アルファデータ１３の始点におけるY座標（y3）を求めるとき、y1≧y2の場合、ＣＰＵ２は式（５）を用い、y1＜y2の場合、ＣＰＵ２は式（６）を用いる。
【００５１】
y1＞y2の場合、ＣＰＵ２はアルファデータ１３の高さ（height3）を以下の式（７）によって求める。
height3＝height2＋y2−y1……（７）
y1＜y2の場合、ＣＰＵ２はアルファデータ１３の高さ（height3）を以下の式（８）によって求める。
height3＝height1＋y1−y2……（８）
【００５２】
y1＝y2の場合、式（７）又は式（８）のいずれを用いてもよいが、本実施形態では式（７）を用いる。即ち、アルファデータ１３の高さ（height3）を求めるとき、y1≧y2の場合、ＣＰＵ２は式（７）を用い、y1＜y2の場合、ＣＰＵ２は式（８）を用いる。
【００５３】
図４は、アルファデータ１３の構成の一例を示す説明図である。
ＣＰＵ２は、アルファデータ１３の始点（x3,y3）、幅（width3）及び高さ（height３）をヘッダＨの情報として含むＤＬデータをアルファデータ１３として生成する。アルファデータ１３には、不透明度を示すデータＤが含まれる。
【００５４】
不透明度は、Srcデータ１２の透明度を示す値である。不透明度が最低（例えば0(%)）である場合、重複領域におけるSrcデータ１２のオブジェクトは完全に透明であり、Destデータ１１のオブジェクトが100%Srcデータを透過して見える。不透明度が最高（例えば100(%)）である場合、重複領域におけるSrcデータ１２のオブジェクトは全くDestデータ１１を透過させない。
【００５５】
本実施形態において、不透明度は、アルファデータ１３の領域の各画素に対して個別に設定されており、例えば図４のデータＤに示す”50,0,0,…”のコンマで区切られた各数値は不透明度をパーセント（0〜100(%)）で表した値である。
アルファデータは、図４に示すように画素毎に不透明度を指定するものであってもよいし、一定の不透明度をアルファデータに含まれる所定の領域に対して均一に適用するようにしてもよい。
図４に示すアルファデータ１３はあくまで例示であり、不透明度をパーセント（0〜100(%)）で表しているが、不透明度の表現方法は図４に示す例に限らず不透明度の大小をＣＰＵ２が適宜プログラムに従って解釈することができるものであればよい。例えば、不透明度を0〜255の範囲内で表してもよい。
【００５６】
アルファデータ１３の領域をDestデータ１１のオブジェクトとSrcデータ１２のオブジェクトの重複領域を内包する最小限の領域とすることで、アルファデータ１３のデータ容量を小さくすることができる。
仮に、従来のようにアルファデータを描画領域全体に対して生成した場合、描画領域全体（例えば、バンド単位で描画処理する場合は、当該バンドに相当する描画領域全体）の各画素に対して不透明度を示すパラメータを設定しなければならず、アルファデータのデータ容量が非常に大きくなる。このため、アルファチャンネル用に用意すべき作業領域としては、描画領域全体分のデータを格納するのに必要な容量となる。一方、本実施形態ではアルファデータ１３の領域をDestデータ１１のオブジェクトとSrcデータ１２のオブジェクトの重複領域を内包する最小限の矩形領域としているので、当該最小限の矩形領域内に対してのみ不透明度を示すパラメータを設定すれば足り、従来に比してアルファデータのデータ容量を非常に小さくすることができる。従って、本実施形態においては、アルファチャンネル用に用意すべき作業メモリ領域としては、描画領域全体ではなく、前記の最小矩形領域分のデータを格納するのに必要な容量で済む。
このように、従来に比してアルファデータ１３のデータ容量を小さくすることにより、アルファデータ１３によるメモリの消費を抑制することができる。
【００５７】
なお、３つ以上のオブジェクトが重なる場合、ＣＰＵ２は重なりにおいて最も下に位置する２つのオブジェクトについてラスタライズ処理を行い、その過程で透過処理を伴う場合はアルファデータを生成する。そして、当該２つのオブジェクトに基づいて生成されたオブジェクトをDestデータ、生成されたオブジェクトの上に重なるオブジェクトをSrcデータとして扱い、透過処理を伴う場合にはアルファデータを生成する。以降、オブジェクトの重なりにおいて一番上のオブジェクトを含むビットマップデータの生成まで同様の処理を繰り返す。
図２に示す例の場合、まず、Destデータ１１とSrcデータ１２に基づくオブジェクトとして、Destデータ１４が生成される。このとき、アルファデータ１３が生成される。そして、Destデータ１４と、Destデータ１４を構成する２つのオブジェクトの上に重なるオブジェクトであるSrcデータ１５に基づいてビットマップデータ１７が生成される。このとき、アルファデータ１６が生成される。
【００５８】
なお、解析処理において、ＣＰＵ２は透過処理を伴わない各オブジェクトに対応するＤＬデータの生成も行う。以下の記載において、透過処理を伴わない各オブジェクトに対応するＤＬデータの生成を「通常のＤＬデータ生成処理」と記載することがある。
【００５９】
ラスタライズ処理において、ＣＰＵ２は、Destデータ、Srcデータ及びアルファデータに基づいてビットマップデータを生成する。
【００６０】
図５は、アルファデータ１３とラスタライズ処理におけるバンドとの関係を示す説明図である。
図５に示すように、ＣＰＵ２は、複数のバンド（例えば図５に示すバンドＢ１、Ｂ２、Ｂ３、Ｂ４等）に基づいて１ページ分のビットマップデータを生成する。本実施形態では、描画単位としてバンド単位を用いている。つまり、描画単位としての領域は、１バンド分の描画領域である。
ＣＰＵ２は、バンド単位でラスタライズ処理を行う。図５に示すバンドＢ１〜Ｂ４はあくまで例示であり、1ページを構成するバンド数や１バンドを構成するライン数は適宜設定することが可能である。
【００６１】
ラスタライズ処理において、まず、ＣＰＵ２は、１バンド分のＤＬデータを読み込み、ＲＡＭ３に格納する。
ＲＡＭ３のメモリ領域の確保において、ＣＰＵ２は、各バンドのラスタライズに用いるDestデータ及びSrcデータに対応するＤＬデータを読み込むためのメモリ領域を確保する。そして、バンド内にアルファデータ（例えば図５に示すアルファデータの領域１３Ａ、１３Ｂ等）がある場合、ＣＰＵ２は、アルファデータ１３を読み込むためのメモリ領域を確保する。
【００６２】
図５に示すように、本実施形態では、前述のアルファデータの生成処理は、バンド単位でのラスタライズ処理において必要な最小限の領域について行われる。つまり、図５に示すアルファデータの領域１３Ａ、１３Ｂのように、各バンド内におけるDestデータとSrcデータとの重複領域に対してアルファデータが個別に生成され、重複領域に対するアルファデータを格納するのに足りる作業領域がアルファチャンネル用に確保される。
これによって、アルファデータのデータ容量をさらに小さくすることができ、アルファデータによるメモリの消費をより抑制することができる。
従来のようにアルファデータを描画領域全体に対して生成した場合、バンド単位でのラスタライズ処理においても１バンド分の描画領域全体を占めるアルファデータをメモリに格納する必要があり、アルファデータによるメモリ消費量は非常に大きくなる。一方、本実施形態ではバンド単位でのラスタライズ処理において必要な最小限の矩形領域についてアルファデータの生成が行われるので、アルファデータによるメモリ消費は従来に比して大幅に抑制される。アルファデータが複数のバンドに跨る場合、アルファデータをバンド単位でのラスタライズ処理において必要な最小限の領域に限ることによるメモリ消費の抑制の効果は複数のバンドのラスタライズ処理に対して発揮され、より顕著となる。
【００６３】
１バンド分のＤＬデータの読み込み後、ＣＰＵ２は、ビットマップデータを生成するための処理を行う。
アルファデータの領域（例えば図５に示すアルファデータの領域１３Ａ、１３Ｂ）に対して、ＣＰＵ２は、透過演算処理を行う。
アルファデータの領域外に対して、ＣＰＵ２は、透過演算処理を行わない。以下の説明において、アルファデータの領域外に対して行われるビットマップデータの生成処理を「通常のラスタライズ処理」と記載する。通常のラスタライズ処理として、例えばＲＯＰ処理が挙げられる。本実施形態において、透過演算処理又は通常のラスタライズ処理のいずれを用いるかの判定は、ビットマップデータの各画素に対して個別に行われる。このように、アルファデータの領域内のみ透過演算処理を行うようにすることで、１バンド分全体に対して透過演算処理を行っていた従来に比して透過処理による演算量を大幅に抑制することができる。
ＣＰＵ２は、生成したビットマップデータをＲＡＭ３に格納する。
【００６４】
ラスタライズ処理によるビットマップデータの生成後、ＣＰＵ２は画像印刷部７に対してビットマップデータを出力する。
本実施形態では、ＣＰＵ２は１バンド分のラスタライズ処理の完了毎に１バンド分のビットマップデータを画像印刷部７に対して出力するが、複数のバンド分又は１ページ分のビットマップデータの生成を完了してからビットマップデータを画像印刷部７に対して出力するようにしてもよい。
【００６５】
本実施形態において、透過処理を施す命令は、プリントジョブに含まれるＰＪＬ（Printer Job Language）に含まれており、ＣＰＵ２は透過処理を施すオブジェクトをＰＪＬに基づいて管理する。つまり、ＣＰＵ２は、解析処理やラスタライズ処理と並行して透過処理を施すオブジェクトの管理を行い、透過処理を施すオブジェクトに対応するアルファデータを生成し、透過処理を施すオブジェクトに対応するＤＬデータに基づくラスタライズ処理において該オブジェクトのアルファデータを読み出して透過演算処理を行う。透過処理を施す命令は、一のオブジェクトに対して他のオブジェクトを重ねて描画する場合に併せて処理される命令であるので、透過処理を施す命令がある場合、一のオブジェクト（Destオブジェクト）と他のオブジェクト（Srcオブジェクト）は重なり合っている。
以下の説明において、ＣＰＵ２が解析処理及びラスタライズ処理においてオブジェクトが透過処理を施される領域を含むか否かを判定するとき、その根拠はＰＪＬに基づいた透過処理を施すオブジェクトの管理による。
【００６６】
次に、印刷装置１が行う処理の流れを、図６及至図８のフローチャートを用いて説明する。
図６は、印刷装置１が行う処理全体の流れを示すフローチャートである。
まず、印刷装置１は、プリントジョブを受信する（ステップＳ１）。ＣＰＵ２は、ステップＳ１において受信したプリントジョブに基づいて、解析処理（ステップＳ２）、ラスタライズ処理（ステップＳ３）、印刷（ステップＳ４）を順次行う。
【００６７】
図７は、図６のステップＳ２に示す解析処理の流れを示すフローチャートである。
まず、ＣＰＵ２は、プリントジョブに含まれるＰＤＬに基づいて描画されるオブジェクトが透過処理を施される領域を含むか否かを判定する（ステップＳ１１）。
【００６８】
ステップＳ１１において、オブジェクトが透過処理を施される領域を含む場合（ステップＳ１１：ＹＥＳ）、ＣＰＵ２は、Destデータに対応するＤＬデータの生成（ステップＳ１２）及びSrcデータに対応するＤＬデータの生成（ステップＳ１３）を行う。ステップＳ１２、１３は順不同であり、図７に示す例と逆の順序で行ってもよい。
【００６９】
ステップＳ１２、１３においてDestデータ及びSrcデータのＤＬデータを生成した後、ＣＰＵ２は、そのDestデータに対応するオブジェクトとSrcデータに対応するオブジェクトとの重複領域に基づくアルファデータの始点、幅及び高さを算出する（ステップＳ１４）。そして、ＣＰＵ２は、ステップＳ１４において算出された始点、幅及び高さに基づいて、透過処理に必要な最小限の領域のアルファデータを生成する（ステップＳ１５）。ステップＳ１５で生成されるアルファデータは、バンド単位でのラスタライズ処理において必要な最小限の矩形領域について行われる。これによって、バンド単位の描画領域全体に対してアルファデータを生成する必要があった従来に比してアルファデータのデータ容量を小さくすることができ、アルファデータによるメモリの消費を抑制することができる。
【００７０】
ステップＳ１１において、オブジェクトが透過処理を施される領域を含まない場合（ステップＳ１１：ＮＯ）、ＣＰＵ２は通常のＤＬデータ生成処理を行う（ステップＳ１６）。
ステップＳ１５又はステップＳ１６の処理後、ＣＰＵ２は生成したＤＬデータをＲＡＭ３へ格納する（ステップＳ１７）。そして、ＣＰＵ２は、１ページ分の印刷に用いる全オブジェクトについてＤＬデータの生成を完了したか否かを判定する（ステップＳ１８）。１ページ分の印刷に用いる全オブジェクトについてＤＬデータの生成を完了した場合（ステップＳ１８：ＹＥＳ）、ＣＰＵ２は解析処理を終了する。１ページ分の印刷に用いる全オブジェクトについてＤＬデータの生成を完了していない場合（ステップＳ１８：ＮＯ）、ステップＳ１１の判定に戻る。
【００７１】
図８は、図６のステップＳ３に示すラスタライズ処理の流れを示すフローチャートである。
ＣＰＵ２は、ＲＡＭ３からＤＬデータをバンド単位で読み出す（ステップＳ２１）。次に、ＣＰＵ２は、ステップＳ２１で読み出したＤＬデータに対応するオブジェクトが透過処理を施される領域を含むか否かを判定する（ステップＳ２２）。
【００７２】
ステップＳ２２において、オブジェクトが透過処理を施される領域を含む場合（ステップＳ２２：ＹＥＳ）、ＣＰＵ２はラスタライズ処理の対象となる領域（画素）がアルファデータの領域であるか否かを判定する（ステップＳ２３）。アルファデータの領域である場合（ステップＳ２３：ＹＥＳ）、ＣＰＵ２は透過演算処理を行う（ステップＳ２４）。一方、アルファデータの領域でない場合（ステップＳ２３：ＮＯ）、ＣＰＵ２は通常のラスタライズ処理を行う（ステップＳ２５）。このように、アルファデータの領域内のみ透過演算処理を行うようにすることで、１バンド分全体に対して透過演算処理を行っていた従来に比して透過処理による演算量を大幅に抑制することができる。
【００７３】
ステップＳ２４又はステップＳ２５の処理後、ＣＰＵ２は１バンド分のラスタライズ処理を完了したか否かを判定する（ステップＳ２６）。１バンド分のラスタライズ処理を完了していない場合（ステップＳ２６：ＮＯ）、ステップＳ２３に戻る。
【００７４】
ステップＳ２２において、オブジェクトが透過処理を施される領域を含まない場合（ステップＳ２２：ＮＯ）、ＣＰＵ２は通常のラスタライズ処理を行う（ステップＳ２７）。ステップＳ２７における通常のラスタライズ処理は、ステップＳ２１で読み出した１バンド分のＤＬデータ全てに対して行われる。
【００７５】
ステップＳ２６において１バンド分のラスタライズ処理を完了した場合（ステップＳ２６：ＹＥＳ）又はステップＳ２７の処理後、ＣＰＵ２は１バンド分のラスタライズ処理によって生成されたビットマップデータを画像印刷部７に対して出力し（ステップＳ２９）、ラスタライズ処理の対象となる全てのバンドについてラスタライズ処理を完了したか否かを判定する（ステップＳ３０）。ラスタライズ処理の対象となる全てのバンドについてラスタライズ処理を完了した場合（ステップＳ３０：ＹＥＳ）、ＣＰＵ２はラスタライズ処理を終了する。ラスタライズ処理の対象となる全てのバンドについてラスタライズ処理を完了していない場合（ステップＳ３０：ＮＯ）、ステップＳ２１の処理に戻る。
【００７６】
なお、１ページ分のビットマップデータの生成を完了してからビットマップデータを画像印刷部７に対して出力する場合、ステップＳ２９の処理は省略される。そして、１ページ分の印刷内容に対応する全てのバンドについてラスタライズ処理を完了したと判定された後、１ページ分のビットマップデータを画像印刷部７に対して出力される。
【００７７】
本実施形態によれば、ＣＰＵ２は、DestデータとSrcデータとの重複領域を検出し、検出した重複領域を示すアルファデータを生成してメモリに格納し、アルファデータが示す領域に対して透過演算処理を行う。これによって、重複領域に応じて最適な範囲に限定されたアルファデータの生成を行うことができ、従来において透過処理を施さない範囲にまで及んでいた無駄なアルファデータの生成及び無駄なアルファデータによる透過演算処理を抑制することができる。つまり、従来において透過処理を施さない範囲に及んで生成されていたアルファデータによるメモリの消費を大幅に抑止することができる。加えて、従来において透過処理を施さない範囲に及んで行われていた透過処理による演算の負荷及び演算時間によって生ずるスループットの低下を大幅に抑制することができる。従って、透過処理によるメモリの消費及び演算量を抑制することができる。
【００７８】
さらに、アルファデータは、透過処理におけるSrcデータの不透明度を示すパラメータを含み、ＣＰＵ２は、アルファデータに含まれる不透明度に基づいて透過演算処理を行う。これによって、ＣＰＵ２は、透過処理を施す範囲及び不透明度を示す情報の両方をアルファデータから取得することができる。
【００７９】
さらに、アルファデータは、DestデータとSrcデータとの重複領域を内包する最小限の矩形領域である。矩形領域は、一点と二辺の長さによって表すことができるので、矩形領域を求める演算に伴うＣＰＵ２の負荷は他の形状の領域を求める演算に比して小さくなる。このため、重複領域の形状に関らず、アルファデータの生成における処理負荷を低減することができる。
【００８０】
さらに、ＣＰＵ２は、解析処理において、透過処理を施される領域を含むか否か即ち重複領域の有無を検出し、透過処理を施される領域を含む場合、重複領域を内包する最小限の矩形領域の始点、幅及び高さを算出し、算出された始点、幅及び高さに基づいてアルファデータを生成し、生成したアルファデータを前記メモリに格納する。これによって、アルファデータを生成するか否かの判定及び重複領域を内包する最小限の矩形領域の位置及び範囲の決定を機械的に行うことができる。
【００８１】
なお、本発明の実施の形態は、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および領域でのすべての変更が含まれることが意図される。
【００８２】
例えば、前述の実施形態では、印刷装置１のＣＰＵ２が画像処理装置としての機能を有するが、必ずしも印刷装置に画像処理装置としての機能を併せ持たせる必要はない。例えば、本発明による画像処理装置を印刷装置と別個に設け、画像処理装置が透過処理を施したビットマップデータを印刷装置に対して出力するようにしてもよい。
【００８３】
アルファデータは重複領域を内包していればよく、生成されるアルファデータは矩形領域に限定されない。例えば、重複領域そのものに対応する範囲をアルファデータの範囲としてもよいし、重複領域を内包する多角形や円形等にしてもよい。
アルファデータの範囲を示す始点の位置は、左上角に限らず、矩形領域の四角のうちいずれかであればよい。アルファデータの範囲を表す方法は、四角のいずれかと二辺の長さに基づく方法に限らない。例えば、四角のうち対向する二つの角の座標によって矩形領域を示す等の方法を用いてもよい。
【００８４】
描画単位はバンド単位に限らず、適宜変更可能である。例えば、描画単位としてページ単位やライン単位等の他の描画単位を用いてもよいし、その他の描画単位を専用に設けてもよい。
【００８５】
以上の説明では、本発明に係るプログラムのコンピュータ読み取り可能な媒体としてＲＯＭを使用した例を開示したが、この例に限定されない。その他のコンピュータ読み取り可能な媒体として、フラッシュメモリ等の不揮発性メモリ、ＣＤ-ＲＯＭ等の可搬型記録媒体を適用することが可能である。また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ(搬送波)も本発明に適用される。
【符号の説明】
【００８６】
２    ＣＰＵ
３    ＲＡＭ
４    ＲＯＭ
５    ストレージデバイス
６    入力Ｉ／Ｆ
７    画像印刷部
１１、１４    Destデータ
１２、１５    Srcデータ
１３、１６    アルファデータ
１７    ビットマップデータ
【図１】
2011028341.tif 000003
【図２】
2011028341.tif 000004
【図３】
2011028341.tif 000005
【図４】
2011028341.tif 000006
【図５】
2011028341.tif 000007
【図６】
2011028341.tif 000008
【図７】
2011028341.tif 000009
【図８】
2011028341.tif 000010
【図９】
2011028341.tif 000011
【図１０】
2011028341.tif 000012