(57)【要約】【課題】画質を劣化させることなく、透過特性を有する画像データを効率よく処理する。【解決手段】伸長部２００で伸長して得られた伸長データおよび中間データ生成手段で生成された中間データを用いてラスタ画像を生成するレンダリング手段を有する。中間データ生成手段は、ＰＤＬデータを解釈して、対象画像の各画素における透過率の圧縮データと、透過特性に関する演算パラメータと、透過率の圧縮データを伸長して得られた透過率または演算パラメータを用いて導出した透過率の何れか一方を対象画像の画素毎に選択するための選択データとの少なくとも何れか、を含んだ前記中間データを生成する。伸長部は、透過率の圧縮データを伸長し、演算パラメータと、対象画像の画素の座標位置とから、対象画像の各画素の透過率を演算し、選択データに基づいて、レンダリング手段に提供される、対象画像の各画素についての透過率を選択する。【選択図】図３
2020082455.tif 000002
【特許請求の範囲】
【請求項１】
ＰＤＬデータからラスタ画像を生成する画像処理装置であって、
前記ＰＤＬデータから中間データを生成する中間データ生成手段と、
前記中間データに含まれる圧縮データを伸長する伸長手段と、
前記伸長手段にて伸長して得られた伸長データおよび前記中間データ生成手段にて生成された前記中間データを用いて前記ラスタ画像を生成するレンダリング手段とを有し、
前記中間データ生成手段は、前記ＰＤＬデータを解釈して、対象画像の各画素における透過率の圧縮データと、透過特性に関する演算パラメータと、前記透過率の圧縮データを伸長して得られた透過率または前記演算パラメータを用いて導出した透過率の何れか一方を前記対象画像の画素毎に選択するための選択データとの少なくとも何れか、を含んだ前記中間データを生成し、
前記伸長手段は、
前記透過率の圧縮データを伸長し、
前記演算パラメータと、前記対象画像の画素の座標位置とから、前記対象画像の各画素の透過率を演算し、
前記選択データに基づいて、前記レンダリング手段に提供される、前記対象画像の各画素についての透過率を選択する
ことを特徴とする画像処理装置。
【請求項２】
前記伸長手段は、
前記透過率の圧縮データを伸長する透過率データ伸長手段と、
前記演算パラメータと、前記対象画像の画素の座標位置とから、前記対象画像の各画素の透過率の演算を行う演算手段と、
前記選択データに基づいて前記対象画像の各画素についての透過率を選択する選択手段と、
を有する、ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記演算手段は複数あり、前記複数の演算手段はそれぞれ異なる演算パラメータに基づき前記対象画像の各画素の透過率の演算を行う、ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記選択データは、透過率がグラデーション状に変化する階調領域に該当する各画素に対して、前記各画素の座標位置と前記演算パラメータとから演算して得られた透過率を選択するデータを有する、ことを特徴とする請求項１から３の何れか一項に記載の画像処理装置。
【請求項５】
前記選択データは、透過率が同じである領域に該当する各画素に対して、前記各画素の座標位置と前記演算パラメータとから演算して得られた透過率を選択するデータを有する、ことを特徴とする請求項１から４の何れか一項に記載の画像処理装置。
【請求項６】
前記選択データは、前記対象画像に、透過率がグラデーション状に変化する階調領域が複数ある場合、前記複数の階調領域のうち、横方向にて透過率がグラデーション状に変化する領域に該当する各画素に対して、前記各画素の座標位置と前記演算パラメータとから演算して得られた透過率を選択するデータを有する、ことを特徴とする請求項１から５の何れか一項に記載の画像処理装置。
【請求項７】
前記選択データは、前記複数の階調領域のうち最も大きい最大階調領域に該当する各画素に対して、前記各画素の座標位置と前記演算パラメータとから演算して得られた透過率を選択するデータを有する、ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記演算パラメータは、前記透過率の圧縮データが小さくなるように設定される、ことを特徴とする請求項１から６の何れか一項に記載の画像処理装置。
【請求項９】
前記透過特性は、前記対象画像に該当する複数の画素にて、透過率がグラデーション状に変化する、ことを特徴とする請求項１から７の何れか一項に記載の画像処理装置。
【請求項１０】
前記中間データ生成手段は、前記対象画像に、透過率がグラデーション状に変化する領域がない場合、前記演算パラメータを含まず、前記対象画像の全ての領域の画素に対して、前記透過率の圧縮データを伸長して得られた透過率を選択する前記選択データを含んだ前記中間データを生成する、ことを特徴とする請求項１から９の何れか一項に記載の画像処理装置。
【請求項１１】
前記中間データ生成手段は、前記対象画像に、透過率がグラデーション状に変化する領域のみがある場合、前記透過率の圧縮データを含まず、前記対象画像の全ての領域の画素に対して、前記対象画像の全ての領域に該当する各画素の座標位置と前記演算パラメータとから演算して得られた透過率を選択する前記選択データを含む前記中間データを生成する、ことを特徴とする請求項１から１０の何れか一項に記載の画像処理装置。
【請求項１２】
ＰＤＬデータからラスタ画像を生成する画像処理方法であって、
前記ＰＤＬデータから中間データを生成する中間データ生成工程と、
前記中間データに含まれる圧縮データを伸長する伸長工程と、
前記伸長工程にて伸長して得られた伸長データおよび前記中間データ生成工程にて生成された前記中間データを用いて前記ラスタ画像を生成するレンダリング工程とを有し、
前記中間データ生成工程にて、前記ＰＤＬデータを解釈して、対象画像の各画素における透過率の圧縮データと、透過特性に関する演算パラメータと、前記透過率の圧縮データを伸長して得られた透過率または前記演算パラメータを用いて導出した透過率の何れか一方を前記対象画像の画素毎に選択するための選択データとの少なくとも何れか、を含んだ前記中間データを生成し、
前記伸長工程にて、
前記透過率の圧縮データを伸長し、
前記演算パラメータと、前記対象画像の画素の座標位置とから、前記対象画像の各画素の透過率を演算し、
前記選択データに基づいて、前記レンダリング工程に提供される、前記対象画像の各画素についての透過率を選択する
ことを特徴とする画像処理方法。
【請求項１３】
コンピュータを、請求項１から請求項１１の何れか一項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ページ記述言語で記述されたデータから生成した中間データを基に画像データを生成する技術に関する。
【背景技術】
【０００２】
ページ記述言語（ＰＤＬ：Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で記述されたデータ（以下、ＰＤＬデータともいう）を解釈して得られた中間データを基に画像データを生成して印刷出力する画像形成装置が広く普及している。
【０００３】
ＰＤＬデータに含まれる画像データは、透過率（α）を有する場合がある。一般的に、色と透過率は特性が大きく異なることから、データ量と画質の面で別々のデータとして圧縮した方が好ましいとされている。そのため、画像形成装置では、画素毎に異なる透過率を有する画像データを、ＲＧＢなどの色情報を表すデータ（以下、色データともいう）と透過率を表すデータ（以下、透過率データともいう）を別々に圧縮した２つの圧縮データとして扱うことが適している。画像データの透過率は、例えば、所定の領域にて、グラデーション状など規則的に変化し、画素毎に異なる場合がある。また、画像データの透過率は、全透過または全不透過を示す所定値であってマスク処理に利用される場合がある。すなわち、画像データは、所定の領域にて、透過特性を有する場合がある。
【０００４】
一方、透過特性を有する画像データを色データおよび透過率データの２つの圧縮データとして扱う場合、画素数が多くなると圧縮データ数が急増して圧縮データの伸長処理負荷の増加を招いてしまう。そこで、ＰＤＬデータに含まれる、色データと透過率データを有する画像データを効率よく処理する技術が色々検討されている。
【０００５】
特許文献１は、所定数のピクセルで構成されるブロック単位で１つの透明度を算出し、周囲のブロックのα値と補間処理によってピクセル毎のα値を計算する技術を開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１５−１９１３１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、画像データが上述の透過特性を有する場合、特許文献１のようにブロック単位で１つのα値の導出や補間処理では、α値を画素毎に正確に導出できず、画質を劣化させてしまう虞がある。
【０００８】
本発明は、画質を劣化させることなく、透過特性を有する画像データを効率よく処理することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一態様にかかる画像処理装置は、ＰＤＬデータからラスタ画像を生成する画像処理装置であって、前記ＰＤＬデータから中間データを生成する中間データ生成手段と、前記中間データに含まれる圧縮データを伸長する伸長手段と、前記伸長手段にて伸長して得られた伸長データおよび前記中間データ生成手段にて生成された前記中間データを用いて前記ラスタ画像を生成するレンダリング手段とを有し、前記中間データ生成手段は、前記ＰＤＬデータを解釈して、対象画像の各画素における透過率の圧縮データと、透過特性に関する演算パラメータと、前記透過率の圧縮データを伸長して得られた透過率または前記演算パラメータを用いて導出した透過率の何れか一方を前記対象画像の画素毎に選択するための選択データとの少なくとも何れか、を含んだ前記中間データを生成し、前記伸長手段は、前記透過率の圧縮データを伸長し、前記演算パラメータと、前記対象画像の画素の座標位置とから、前記対象画像の各画素の透過率を演算し、前記選択データに基づいて、前記レンダリング手段に提供される、前記対象画像の各画素についての透過率を選択することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、画質を劣化させることなく、透過特性を有する画像データを効率よく処理することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態１における画像形成装置の構成例を示す図である。
【図２】画像形成部の機能構成例を示す図である。
【図３】伸長部の機能構成例を示す図である。
【図４】選択部が出力するα値例を示す図である。
【図５】伸長部の各部が出力するα値例を示す図である。
【図６】透過率に関する可逆圧縮データ方式例を説明する図である。
【図７】選択データをランレングス方式で圧縮する方法を説明する図である。
【図８】透過率に関する情報のデータ構造例を示す図である。
【図９】マスクデータの合成例を示す図である。
【図１０】実施形態２における伸長部の機能構成例を示す図である。
【図１１】選択部が出力するα値例を示す図である。
【図１２】伸長部の各部が出力するα値例を示す図である。
【図１３】実施形態３における中間データ生成部による圧縮データ生成処理手順例を示すフローチャートである。
【図１４】グラデーションの方向ごとの符号データ量を示す図である。
【図１５】実施形態１の伸長部にヘッダー解析部を追加した図である。
【発明を実施するための形態】
【００１２】
本発明の実施形態の説明に先立ち、ＰＤＬについて説明する。
ＰＤＬでは画像をグラフィックオブジェクトの集合として表現しており、グラフィックオブジェクトは輪郭を成す境界と色によって表現される。画像形成装置において、専用のインタプリタによりＰＤＬデータを解釈し、ＲＩＰ処理を行ってラスタ画像を形成し、所定の画像処理を施して印字データを生成する。そして、生成した印字データを元にインクジェットやレーザービーム方式のプリンタエンジンを用いて印字出力をする。
【００１３】
ＲＩＰ処理においては、ＰＤＬデータを中間データに変換した後に、中間データをラスタ画像に変換する技術であるレンダリング処理が普及している。グラフィックやテキスト、圧縮・非圧縮のイメージ等の描画オブジェクトが埋め込まれたＰＤＬデータから、画素データを生成するための色情報や層情報や色合成命令を含む中間データを生成する。中間データに含まれる色合成命令に従い、複数スキャンライン（バンド）あるいはページ全体に対してレンダリング処理を行い、ラスタ画像データを生成する。
【００１４】
一方、ＰＤＬに含まれるイメージは透過率（α）を有する場合があり、例えば、アプリケーションで画像に半透明のエフェクトを付けると、そのエフェクトに応じた透過率が画像に付加される。反射やぼかしなどのエフェクトでは、画像に対してグラデーションのように変化する透過率が付加されるため、透過率は画素毎に異なる値となる。このような画素毎に異なる透過率を有するイメージは、例えば色を示すコンポーネントをＲＧＢとすると、ＲＧＢαの４コンポーネントの圧縮データや、ＲＧＢとαをそれぞれ別々の圧縮方法で圧縮した２つのデータとして扱われる。例えば、テキスト画像の透過率がグラデーションのように変化する場合を想定する。これをＲＧＢαの４コンポーネントデータとして圧縮する場合、テキストのＲＧＢの色データは、輪郭を鮮明にするために可逆圧縮が適する一方、グラデーション状に変化する透過率αを表すデータは、データ量の面から非可逆圧縮が適している。自然画のような画像においても、色データと透過率データとで適する圧縮形式が異なるという問題が起こり得る。透過率は、特定領域を透過にするマスク処理に使われることも多い。そのため、自然画のような画像の一部に対してマスク処理を施す場合には、データ量の面でＲＧＢの色データは非可逆圧縮が適する一方、マスク領域の輪郭を鮮明にしたい透過率αを表すデータは可逆圧縮が適している。
【００１５】
以下、本発明の実施形態について図面を参照して説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらに限定する趣旨のものではない。また、実施形態で説明されている構成要素の組み合わせのすべてが、課題を解決するための手段に必須のものとは限らず、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形及び変更が可能である。
【００１６】
［実施形態１］
図１は、本実施形態における画像形成装置の構成例を示す図である。
画像形成装置１００には、有線または無線のネットワーク１１０を介して相互に信号を送受信可能に外部装置１０９が接続される。なお、画像形成装置１００および外部装置１０９の接続数は、１台に限定されるものではなく、それぞれ複数でもよい。また、本実施形態では接続方法としてネットワーク１１０を適用しているが、これに限定されるものではない。例えば、ＵＳＢなどのシリアル伝送方式、セントロニクスやＳＣＳＩなどのパラレル伝送方式なども適用可能である。外部装置１０９は、例えばＰＣ（パーソナルコンピュータ）やスマートフォンやタブレットなどの端末である。外部装置１０９は、ユーザからの印刷指示を受けて、ＰＤＬデータから中間データを生成し、生成した中間データを画像形成装置１００に転送する。
【００１７】
画像形成装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、画像入出力部１０４、画像形成部１０５、画像処理部１０６、印字処理部１０７を有する。画像形成装置１００の各部は、バス１０８を介して相互にデータ送受信可能に接続されている。ＣＰＵ（Central Processing Unit）１０１はＲＯＭ（Read Only Memory）１０３に格納された制御プログラムを読み出して実行することにより、演算処理や画像形成装置１００の各部の動作を統括的に制御する。ＲＡＭ（Random Access Memory）１０２は、例えばＤＲＡＭなどの、読み出し及び書き込み可能なメモリであり、画像データなどの各種データを一時的に格納するための記憶媒体である。
【００１８】
画像入出力部１０４は、外部装置１０９から転送された中間データを受信し、受信した中間データをＲＡＭ１０２に格納する。中間データの詳細については後述する。また、画像入出力部１０４は、画像形成装置１００で生成した画像データを外部装置１０９に送信する。画像形成部１０５は、ＲＡＭ１０２に格納された中間データなどのデータを読み出し、読み出した中間データなどのデータを基に画素データ（ラスタ画像データ）２０４を生成する。画像形成部１０５の詳細については後述する。画像処理部１０６は、画像形成部１０５が生成した画素データ２０４に対して所定の画像処理を施し、印字データを生成する。印字処理部１０７は、インクジェットやレーザービーム方式のプリンタエンジンであり、画像処理部１０６が生成した印字データに従って、印字処理を実行する。
【００１９】
なお、中間データは、画像形成装置１００のＣＰＵ１０１により生成されてもよい。その場合、外部装置１０９は、ユーザからの印刷指示を受けて、ＰＤＬデータを画像形成装置１００に転送する。ＣＰＵ１０１は、外部装置１０９から画像入出力部１０４経由でＲＡＭ１０２に転送されたＰＤＬデータを読み出し、読み出したＰＤＬデータを基に中間データを生成し、生成した中間データをＲＡＭ１０２の別領域に格納する。以降の流れは前述したとおりである。本実施形態では、外部装置１０９とＣＰＵ１０１は区別せず、中間データを生成する処理部を、中間データ生成部２０６（図２を参照）と呼ぶこととする。
【００２０】
画像形成部１０５において実行される画像処理とデータの流れについて説明する。図２は、画像形成部１０５の機能構成例を示す図である。画像形成部１０５は、伸長部２００とレンダリング部２０１とを有する。伸長部２００およびレンダリング部２０１は、中間データ生成部２０６からＲＡＭ１０２に格納された中間データ２０２を処理する。
【００２１】
中間データ生成部２０６は、ＰＤＬデータ２０５を解釈して中間データ２０２を生成する。中間データ２０２は、イメージに関する情報と、レンダリング情報とを含むデータである。レンダリング情報については後述する。
【００２２】
中間データ２０２は、イメージの情報に関し、対象画像の各画素における透過率の圧縮データ（透過率データ）と、対象画像の複数の画素にて透過率がグラデーション状に変化するなどの透過特性に関する演算パラメータとの少なくとも一方を有する。中間データ２０２は、さらに、透過率の圧縮データを伸長して得られた透過率または演算パラメータを用いて導出した透過率の何れか一方を選択するための選択データと、色データとを有する。演算パラメータは、非圧縮データである。なお、演算パラメータは、圧縮データであってもよい。色データは、塗り情報などの色情報の圧縮データである。透過率データ、演算パラメータ、選択データ、色データの詳細については後述する。
【００２３】
選択データは、所定数の画素を有する領域（タイル領域）ごとに作成される。選択データでは、タイル領域において、透過特性で表せる領域に該当する各画素に対して後述の透過率データ演算部３０２の演算結果を選択するデータを有する。また、選択データでは、タイル領域において、透過特性で表せない領域に該当する各画素に対して後述の透過率データ伸長部３０１の伸長結果を選択するデータを有する。なお、選択データは、対象画像の各画素に対して、透過率データ演算部３０２の演算結果、または透過率データ伸長部３０１の伸長結果の何れか一方のみを選択するデータを有してよい。
【００２４】
伸長部２００は、レンダリング部２０１が中間データ２０２に含まれる色情報を読み出せるよう、中間データ２０２に含まれる圧縮データを先行的に伸長して得られた伸長データ２０３をＲＡＭ１０２に格納する。すなわち、伸長部２００は、レンダリング部２０１による処理に先行して、中間データ２０２に対する伸長処理を実行する。
【００２５】
レンダリング部２０１は、生成する画素の座標情報を基に、ＲＡＭ１０２に格納された中間データ２０２および伸長データ２０３を取得する。次に、レンダリング部２０１は、取得した中間データ２０２および伸長データ２０３から画素データ２０４を生成するのに必要な色情報やレンダリング情報を読み出す処理を実行する。すなわち、レンダリング部２０１は、伸長データ２０３から色情報を、中間データ２０２からレンダリング情報を読み出す処理を実行する。次に、レンダリング部２０１は、読み出した色情報やレンダリング情報を基に、重なりと透過率を考慮したブレンド処理を行って画素データ２０４を生成する。すなわち、レンダリング部２０１は、中間データ２０２および伸長データ２０３に対しレンダリング処理を行って、生成する画素の座標単位にて画素データ２０４を生成する。
【００２６】
伸長部２００において実行される画像処理とデータの流れについて説明する。図３は、伸長部２００の機能構成例を示す図である。伸長部２００は、色データ伸長部３００、透過率データ伸長部３０１、透過率データ演算部３０２、選択データ伸長部３０３、選択部３０４、結合部３０５を有する。
【００２７】
色データ伸長部３００は、中間データ２０２に含まれる圧縮データの色データをＲＡＭ１０２から読み出して伸長する。色データは、色情報をタイル領域単位に圧縮されたデータである。なお、色データは、ＧｒａｙやＲＧＢやＹＵＶやＣＭＹＫなどに代表される色を表現する１ｃｈ（チャネル）〜４ｃｈで構成される。例えば、１ｃｈはＧｒａｙ、４ｃｈはＣＭＹＫなどの色データである。タイル領域は、画像データ全体を領域分割した部分画像データであって、縦横にて任意の画素数からなる領域である。また、色データ伸長部３００は、ＪＰＥＧなどの非可逆圧縮データを伸長する機能、可逆圧縮データを伸長する機能を有し、タイル領域内に非可逆圧縮データおよび可逆圧縮データが混在するデータも伸長する。色データ伸長部３００は、これらの一部、あるいは全ての圧縮フォーマットに対応し、読み出した圧縮データのフォーマットに応じた伸長処理を行う。
【００２８】
透過率データ伸長部３０１は、中間データ２０２に含まれる透過率を表現する１ｃｈの可逆圧縮データをＲＡＭ１０２から読み出し、読み出した可逆圧縮データを伸長する。
【００２９】
透過率データ演算部３０２は、中間データ２０２に含まれる演算式のパラメータをＲＡＭ１０２から読み出し、読み出した演算式のパラメータとタイル領域内の画素座標とを基に、透過率を演算する。なお、演算式のパラメータは、ＣＰＵ１０１がＲＡＭ１０２から読み出して、透過率データ演算部３０２に設定してもよい。
【００３０】
なお、演算式のパラメータの読み出しに関し、優先順位を予め設定してもよい。例えば、透過率データ演算部３０２がＲＡＭ１０２から読み出せない場合にＣＰＵ１０１がＲＯＭ１０３から読み出してよいし、ＣＰＵ１０１がＲＯＭ１０３から読み出せない場合に透過率データ演算部３０２がＲＡＭ１０２から読み出してもよい。透過率データ演算部３０２による演算処理の詳細については後述する。
【００３１】
選択データ伸長部３０３は、中間データ２０２に含まれる圧縮された選択データ（以下、圧縮選択データという）をＲＡＭ１０２から読み出し、読み出した圧縮選択データを伸長して選択データを生成する。選択データは、上述の通り、各画素に対して、透過率データ伸長部３０１または透過率データ演算部３０２が出力するα値のうち何れか一方を選択することを示している。
【００３２】
選択部３０４は、マルチプレクサである。選択部３０４は、選択データ伸長部３０３が生成した選択データを基に、透過率データ伸長部３０１または透過率データ演算部３０２の何れか一方が出力するα値を画素毎に選択して結合部３０５に転送する。すなわち、選択部３０４は、選択データに基づいて、レンダリング部２０１に提供される、対象画像の各画素についての透過率を選択する。
【００３３】
結合部３０５は、色データ伸長部３００が出力する色データ（ここではＲＧＢとする）と、選択部３０４が選択して出力するα値を結合して、４ｃｈのＲＧＢαの伸長データ２０３を生成する。そして、結合部３０５は、生成した伸長データ２０３をＲＡＭ１０２に書き出す。例えば、色データ伸長部３００で処理した色データがＧｒａｙの１ｃｈであれば、ＲＡＭ１０２に書き出す伸長データ（結合データ）２０３はＧｒａｙαの２ｃｈの伸長データとなる。また、色データ伸長部３００で処理した色データがＣＭＹＫであれば、ＲＡＭ１０２に書き出す伸長データ２０３はＣＭＹＫαの５チャネルの伸長データとなる。
【００３４】
以下、選択部３０４によるα値の選択方法について詳述する。
＜透過率（α値）が線形グラデーション状に変化する階調領域が大部分を占める場合＞
まず、典型的な例として、透過率（α値）が線形グラデーション状に変化する階調領域がタイル領域内の大部分を占める場合について説明する。
【００３５】
図４および図５は、縦横８画素×８画素のタイル処理を例に、各部の出力（α値もしくは選択データ）を１チャネルのＧｒａｙスケールで表現した図である。図４および図５では、α値は、例えば８ビットのデータであり、透過を示す０を白、不透過を示す２５５を黒で表現し、半透過を示す０と２５５の間の数値をＧｒａｙの階調を付けて表現している。より具体的には、図４（ａ）では、選択部３０４の出力であり、期待するα値を示している。１つのタイル領域４００では、１つの画素４０１単位で、選択部３０４が出力するα値（以下、出力α値ともいう）を表現している。
【００３６】
図４（ｂ）では、図４（ａ）に示す１つのタイル領域全体を、出力α値を基に、第１の領域４１１、第２の領域４１２、第３の領域４１３の３つに分割した状態を示している。第１の領域４１１は、出力α値が左上の画素から右下の画素にかけてなだらかに増加する、一次式で表現可能な数値となる出力α値をもった領域である。第２および第３の領域４１２、４１３は、それぞれ一定の出力α値をもった領域である。ただし、第２の領域４１２と第３の領域４１３とは、互いの出力α値の数値が異なる領域である。
【００３７】
図５（ａ）〜（ｃ）では、図４のα値を生成するための各部の出力を表現している。図５（ａ）は、透過率データ伸長部３０１が出力するα値（出力α値）を表現した図である。１つのタイル領域５１０は、各画素にて白で示されるα値を有する縦横６画素×８画素の第１の領域５１１と、各画素にて黒で示されるα値を有する縦横２画素×８画素の第２の領域５１２とで有する。選択データ伸長部３０３が生成する選択データにおいて、透過率データ伸長部３０１の出力が、選択される画素についてのみ正しいα値を有した伸長データ（以下、α伸長データと呼ぶ）を示している。すなわち、図４（ｂ）の第２および第３の領域４１２、４１３の画素について、それぞれ正しいα値をもっていることを示している。
【００３８】
図５（ｂ）は、透過率データ演算部３０２が出力するα値を表現した図である。図５（ｂ）では、左上の画素から右下の画素に向けて白から黒へグラデーション状に変化するα値を有する１つのタイル領域５２０を示している。１つのタイル領域５２０の各画素は、８×８の画素座標と、設定されたパラメータを基に演算されたα値（以下、α演算データと呼ぶ）で表現される。
【００３９】
図５（ｃ）は、選択データ伸長部３０３が出力する２値データを表現した図である。図５（ｃ）では、右上と左下にて黒のα値を有する縦横２画素×３画素の第２および第３の領域５３２、５３３と、それ以外の白のα値を有する第１の領域５３１とで構成される１つのタイル領域５３０を示している。黒のα値を有する第２および第３の領域５３２、５３３の画素がα伸長データ（透過率伸長データ）を選択する出力α値を示し、白のα値を有する第１の領域５３１の画素がα演算データ（透過率演算データ）を選択する出力α値を示している。なお、説明を簡単にするために８画素×８画素で構成されるタイル領域を用いて説明したが、伸長部２００が処理する単位はこれに限定されない。例えば、一般的には３２画素×３２画素や６４画素×６４画素など、２のべき乗の縦横幅で構成されるタイル領域単位で伸長部２００による処理を実行してもよい。
【００４０】
以下、透過率データ伸長部３０１、透過率データ演算部３０２、選択データ伸長部３０３および選択部３０４の各部の動作の詳細について説明する。
【００４１】
先ず、透過率データ演算部３０２によるα演算データの導出処理について説明する。
透過率データ演算部３０２は、例えば、以下の式１に示すような一次式（演算式）の演算パラメータＡ、Ｂ、Ｃと、画素の座標位置（ｘ、ｙ）を基に式１の演算にて透過率αを導出する。
α=Ａｘ＋Ｂｙ＋Ｃ  ・・・（式１）
【００４２】
Ａ、Ｂ、Ｃとして、ＲＡＭ１０２から読み出された、中間データに含まれる演算パラメータが用いられる。Ａ、Ｂは、６４画素×６４画素のタイル処理である場合、例えば符号ビットおよび７ビットの小数部を含む１６ビットの固定小数点数であることが好ましい。ただし、Ａ、Ｂは、演算回路規模を考慮すると、これに限定されない。また、Ｃは、０〜２５５までの透過率αの値を全て表現できるよう、８ビットの整数であることが好ましい。ｘ、ｙは、１つのタイル領域にて、左上の画素を（ｘ、ｙ）＝（０、０）とし、右下の画素を（ｘ、ｙ）＝（７、７）とした画素座標を示している。ラスタ順にα演算データを出力するため、座標位置を基に式１の演算を行う方法でも、または、画素位置が移動する度にＡまたはＢの値を足し合わせる方法でも実現できる。
【００４３】
図５（ｂ）は、ラスタ順で最初の画素（０、０）のα値が０、最後の画素（７、７）のα値が２５２で、ｘ方向（主走査方向）とｙ方向（副走査方向）それぞれに線形に値が変化しているものとする。この場合のパラメータは、Ａ＝１８、Ｂ＝１８、Ｃ＝０となる。なお、ここでは、一次式を用いた透過率データ演算部３０２の演算例について説明したが、透過率データ演算部３０２の演算はこれに限定されない。例えば、透過率が画素座標に対し二次曲線的に変化する場合への対応を考慮して、透過率データ演算部３０２は、以下の式２に示すような二次式の演算で透過率αを導出してもよい。すなわち、透過率データ演算部３０２は、例えば、以下の式２に示すような二次式（演算式）の演算パラメータＤ、Ｅ、Ｆ、Ｇ、Ｈと、画素の座標位置（ｘ、ｙ）を基に式２の演算で透過率αを導出してもよい。
α=Ｄｘ＾２＋Ｅｙ＾２＋Ｆｘ＋Ｇｙ＋Ｈ  ・・・（式２）
【００４４】
Ｄ、Ｅ、Ｆ、Ｇ、Ｈとして、ＲＡＭ１０２から読み出された、中間データに含まれる演算パラメータが用いられる。Ｄ、Ｅは、任意の数値であることが好ましい。Ｆ、Ｇは、６４画素×６４画素のタイル処理である場合、例えば符号ビットおよび７ビットの小数部を含む１６ビットの固定小数点数であることが好ましい。また、Ｈは、０〜２５５までの透過率αの値を全て表現できるよう、８ビットの整数であることが好ましい。ｘ、ｙは、式１と同様、１つのタイル領域にて、左上の画素を（ｘ、ｙ）＝（０、０）とし、右下の画素を（ｘ、ｙ）＝（７、７）とした画素座標を示している。ラスタ順にα演算データを出力するため、座標位置を基に式２の演算を行う方法でも、または、画素位置が移動する度にＤまたはＥまたはＦまたはＧの値を足し合わせる方法でも実現できる。なお、式２の演算を行う透過率データ演算部３０２が、上述の式１のような一次式の演算を行う場合、上述の式２におけるパラメータＤ、Ｅに０を設定すればよい。
【００４５】
続いて、透過率データ伸長部３０１によるα伸長データの導出処理について説明する。
透過率データ伸長部３０１は、中間データ２０２に含まれる透過率に関する可逆圧縮データ（以下、圧縮透過率データと呼ぶ）をＲＡＭ１０２から読み出し、読み出した圧縮透過率データを伸長する。図６は、透過率に関する可逆圧縮データ方式例を説明する図である。以下、可逆圧縮方式例について説明するが、本実施形態はこれに限定されない。すなわち、図６の圧縮方式と異なる単一の圧縮方式や複数の圧縮方式に対応するものでもよい。
【００４６】
図６（ａ）は、８画素×８画素のタイル領域において、数値の異なるα１〜α５の５種類の透過率α値を有する透過率データ例を示した図である。図６（ａ）では、同一のα値を有する画素について、同じ種類のハッチングパターンまたはドットパターンまたは白地または黒地で示している。
【００４７】
１つのタイル領域６００は、領域毎に透過率α値が異なり、それぞれ複数の画素を有する第１〜第５の領域６０１〜６０５を有する。第１の領域６０１の各画素はα１の透過率、第２の領域６０２の各画素はα２の透過率、第３の領域６０３の各画素はα３の透過率、第４の領域６０４の各画素はα４の透過率、第５の領域６０５の各画素はα５の透過率を有する。
【００４８】
図６（ｂ）は、図６（ａ）の透過率データ例を圧縮したときの各画素の符号データを説明する図である。Ｒｏｗ０の８つの数字は、図６（ａ）の１ライン目の各画素におけるα値の符号データであり、ラスタ順（ライン順）に上から並べている。具体的には、Ｒｏｗ０の一番上の数字は、図６（ａ）の１ライン目の一番左端の画素のα値を示し、Ｒｏｗ０の上から二番目の数字は、図６（ａ）の１ライン目の左端から二番目の画素のα値を示している。以降、Ｒｏｗ０の上から三番目以降であるＮ（Ｎ≧３）番目の数字は、一番目や二番目の数字と同様、図６（ａ）の１ライン目の左端からＭ（＝Ｎ）番目の画素のα値を示している。
【００４９】
符号データの割り当て方法として、例えば、タイル領域のα値をラスタ順にスキャンしたときに、出現するα値の順に「０」から「１」、「２（２進数で１０）」、「３（２進数で１１）」、「４（２進数で１００）」と順々に値を割り当てる方法が用いられる。
【００５０】
図６（ｃ）は、図６（ｂ）で符号化されたデータとα値の割り当てを示す図である。図６（ｂ）と図６（ｃ）は、１ライン目に、「０」で符号化されたα１が３画素連続し、そのあと「１」で符号化されたα２が５画素連続することを意味する。Ｒｏｗ１は２ライン目のα値で、Ｒｏｗ０と同じ符号データである。Ｒｏｗ２は３ライン目のα値であるが、図６（ａ）から分かるように、α１が３画素続いたのち、３つ目（３種類目）のα値であるα３が出現する。３つ目のα値には、符号データとして「１０」が割り当てられるが、α１とα２の符号データ「１」「０」が連続する場合と区別するため、全ての符号データが１ビットから２ビットに拡張される。すなわち、α１の符号データは「００」となり、α２の符号データは「０１」となる。
【００５１】
また、透過率に関するデータは、オフセット情報を有する。このオフセット情報を参照することにより、連続する符号データの中で、どの位置から符号ビットが増えたのかを判断することができる。
【００５２】
例えば、図６ではＲｏｗ２の４画素目に３つ目のα値が出現するため、タイル領域の初めからラスタ順に数えると２０画素目に符号ビットが１ビットから２ビットに拡張されることになる。そのため、Ｏｆｆｓｅｔ０には１９を示す値が入る。同様に、Ｒｏｗ４（５ライン目）の７画素目から５種類目のα値が出現するため、タイル領域の初めからラスタ順に数えると３９画素目に符号ビットが２ビットから３ビットに拡張されることになり、次のＯｆｆｓｅｔ１には３８画素目を示す３８が入る。このようにα値の出現順に符号データを割り当てる方法を用いることで、少ない符号量で可逆圧縮データを生成することができる。なお、本圧縮方式の圧縮データには、図６（ｂ）に示した符号データとＯｆｆｓｅｔ、図６（ｃ）に示した符号データとα値の対応、α値の数量やＯｆｆｓｅｔの数量を示す数値が含まれる。この圧縮方式で図５（ａ）のデータを生成すると、２種類のα値のみで構成されているため、α値の数量は２、Ｏｆｆｓｅｔの数量は０で、符号データは１ビットで全て表現できる。
【００５３】
続いて、選択データ伸長部３０３による選択データの伸長処理について説明する。
選択データ伸長部３０３は、中間データ２０２に含まれる圧縮選択データをＲＡＭ１０２から読み出し、読み出した圧縮選択データを伸長して選択データを生成する。選択データは、上述したとおり、α伸長データまたはα演算データの何れか一方を、対象画像の画素毎に選択するためのデータである。例えば、選択データは、「１」であればα伸長データを選択し、「０」であればα演算データを選択する、という対象画像の画素毎に設定される２値データである。α値がなだらかに変化する領域はα演算データが選択されやすく、それ以外の領域はα伸長データが選択されやすい。透過率の特性上、なだらかに変化する領域は連続するため、結果として選択データの値も領域ごとに同一の値が選択されやすい。そのため、一般的なランレングス方式での圧縮が有効である。２値のランレングス方式（ランレングス圧縮されたデータ）の場合、１画素目の選択データが「０」と「１」のどちらから始まるかを示す情報と、８画素×８画素のタイル領域であれば６ビットのラン情報が、ランの個数分あればよい。
【００５４】
図７は、図５（ｃ）の選択データを、ランレングス方式で圧縮する方法を説明する図である。この例では、ラスタ順にみて「０」から始まり、９個のランで構成されているため、始まりの値を示す１ビットと、９個のランを示す９×６＝５４ビットの合計５５ビットで表現できる。９個のランはそれぞれ、５（白）、３（黒）、５（白）、３（黒）、３２（白）、３（黒）、５（白）、３（黒）、５（白）という値となる。なお、中間データに含まれる選択データに関する情報は、これに限定されない。例えば、圧縮方式として別の方式でもよく、また、選択データが画素毎に１ビットであり比較的データ量が小さいことから、圧縮せずにＲＡＷデータとしてもよい。
【００５５】
続いて、選択部３０４による透過率データの選択処理について説明する。
選択部３０４は、α伸長データ、α演算データ、選択データを対象画像の画素毎に受け取り、選択データを基に、α伸長データまたはα演算データの何れか一方のα値を選択し、選択したα値を結合部３０５に出力する。
【００５６】
また、圧縮透過率データ、演算パラメータ、選択データは、互いに連携して、圧縮透過率データをより高圧縮のデータに変換することができる。すなわち、圧縮透過率データは、グラデーション状に変化するなどの、一次式または二次式などの演算で導出可能で、α演算データが選択される領域については、どのような透過率データが圧縮されても演算結果に影響を与えない。そこで、より圧縮率の高まる透過率データに置換して圧縮することで、好適な圧縮透過率データを生成することができる。本実施形態で説明した圧縮方式の場合、直前に出現した色と同色にすることで、高い圧縮率での圧縮が可能となる。
【００５７】
＜全画素の透過率が同じ数値である場合＞
タイル領域内の全画素の透過率が同じ数値である場合について説明する。この場合、透過率データ演算部３０２に与える式１の演算パラメータを、Ａ、Ｂ＝０とし、Ｃに所望のα値を与える。そして、選択部３０４が全ての画素に対してα演算データを選択すればよい。選択部３０４が全ての画素に対してα演算データを選択するためには、選択データ伸長部３０３が出力する選択データを、ＣＰＵ１０１から設定して切り替えてもよいし、ヘッダー部の情報等で一律にどちらかを選択できるようにしてもよい。また、選択データを、α演算かα慎重かを選択する２値データと同一のフォーマットで圧縮データを生成してもよい。
【００５８】
以下、ヘッダー部の情報を基に透過率伸長データまたは透過率演算データのどちらかを一律で選択する方法について、図８及び図１５を用いて説明する。図８（ａ）は、中間データの一部であって、透過率αに関する情報のデータ構造例を示す図である。図８（ｂ）は、図８（ａ）のヘッダー部の符号データを説明するための図である。透過率αに関する情報８１０は、ヘッダー部８１１、圧縮選択データのアドレス情報８１２、パラメータ８１３、圧縮透過率データ８１４、圧縮選択データ８１５を有する。ヘッダー部８１１は、パラメータ８１３、圧縮透過率データ８１４、圧縮選択データ８１５の有無を示す情報を符号化したデータ（以下、「符号データ」という）であり、２ビットで示される。図１５は、図３に示した伸長部２００の機能構成例に、ヘッダー解析部１５００を追加したものである。ヘッダー解析部１５００は、ヘッダー部８１１を中間データから読み出し、以下の通り解釈する。ヘッダー部８１１における符号データの「００」は、パラメータ（演算パラメータ）８１３、圧縮透過率データ８１４、圧縮選択データ８１５のいずれのデータも含まれることを示す。符号データの「０１」はパラメータ８１３のみ、符号データの「１０」は圧縮透過率データ８１４のみ含まれることを示す。符号データが「０１」または「１０」である場合、タイル領域内の全画素がα伸長データあるいはα演算データの何れか一つを選択することを示すため、圧縮選択データ８１５が必要なく不要となる。圧縮選択データのアドレス情報８１２は、圧縮選択データ８１５のデータ量が可変であるため、圧縮選択データ８１５の先頭アドレスを示している。圧縮選択データ８１５のアドレス情報も、圧縮選択データ８１５がない場合は省略できる。そのため、ヘッダー解析部１５００は、圧縮選択データ８１５及びそのアドレス情報が不要であると解釈した場合、その旨を選択データ伸長部３０３に通知する。すなわち、選択データ伸長部３０３は、ヘッダー解析部１５００からの通知を受けて、圧縮選択データのアドレス情報８１２及び圧縮選択データ８１５の読み出しを行わない。
【００５９】
ヘッダー部８１１の情報を基に符号データが「０１」の場合、ヘッダー解析部１５００は、圧縮透過率データが不要である旨を透過率データ伸長部３０１に通知する。すなわち、透過率データ伸長部３０１は、ヘッダー解析部１５００からの通知を受けて、透過率データの読み出しを行わない。
【００６０】
また、選択部３０４でα伸長データとα演算データの何れを選択するかは、ヘッダー解析部１５００からの通知を受けて決めてもよいし、選択データ伸長部３０３がヘッダー解析部１５００からの通知を受けて、対応する信号を選択部３０４に送る方式でもよい。
【００６１】
パラメータ８１３、圧縮透過率データ８１４、圧縮選択データ８１５は、これまで説明したとおりであって、その説明を省略する。
【００６２】
よって、全画素の透過率が一律同じ数値である場合、ヘッダー部８１１が「０１」と設定され、圧縮選択データのアドレス情報８１２、圧縮透過率データ８１４、圧縮選択データ８１５は省略される。
【００６３】
＜全ての画素の透過率α値が線形グラデーションで表現される場合＞
タイル領域内の全ての画素の透過率α値が線形グラデーションで表現される場合について説明する。この場合、透過率データ演算部３０２に与える式１の演算パラメータを、全ての画素の透過率α値が所望の線形グラデーションとなるように設定する。そして、選択部３０４が全ての画素でα演算データを選択すればよい。選択部３０４が全ての画素でα演算データを選択する方法は、前述したとおりである。
【００６４】
＜透過領域と不透過領域が混在したマスクデータを有する場合＞
タイル領域内の各画素のα値が、透過領域と不透過領域が混在したマスクデータを有する場合について説明する。図９は、マスクデータの合成例を示す図である。図９（ａ）は、背景であり、合成する際の下地の画である。図９（ｂ）と図９（ｃ）は、背景に重ね合わせる星形のオブジェクトを持ったイメージの、ＲＧＢデータとαデータを示した画である。図９（ｄ）は、背景に対して、星形のオブジェクトを持ったイメージの星形部分のみを合成した出力結果を示した画である。この例では、背景に対して星形イメージの星形部分のみを重ね合わせた画を生成するために、図９（ｃ）のように星形部分のみの透過率α値を不透過（黒）とし、星形イメージの星形部分以外の領域の透過率α値を透過（白）としている。
【００６５】
このように、イメージの透過率α値は画素毎に異なるが、α値がなだらかに変化する領域がない場合、演算式のパラメータを使用せず、タイル領域内の全ての透過率α値を表現する圧縮透過率データを生成する。そして、選択部３０４によって全ての画素でα伸長データを選択すればよい。マスクデータとして扱われる透過率α値は、ほとんどの領域が０の透過か、２５５の不透過のどちらかで表現されるため、圧縮率は高くなることが一般的である。選択部３０４が全ての画素でα伸長データを選択するためには、図８に示したヘッダー部８１１を「１０」と設定すればよく、圧縮選択データのアドレス情報８１２、パラメータ８１３、圧縮選択データ８１５を省略できる。
【００６６】
次に、ヘッダー解析部１５００、透過率データ伸長部３０１、透過率データ演算部３０２の処理を示す。ヘッダー解析部１５００は、パラメータ８１３が不要であると解釈した場合、その旨を透過率データ演算部３０２に通知する。すなわち、透過率データ演算部３０２は、ヘッダー解析部１５００からの通知を受けて、パラメータ８１３の読み出し、及び演算を行わない。また、ヘッダー解析部１５００は、圧縮選択データのアドレス情報８１２及びパラメータ８１３が不要であると解釈した場合、その旨を透過率データ伸長部３０１に通知する。透過率データ伸長部３０１は、ヘッダー解析部１５００からの通知を受けて、固定長である圧縮選択データのアドレス情報８１２とパラメータ８１３のデータ量から、圧縮透過率データ８１４の先頭アドレスを計算する。こうすることで、圧縮選択データのアドレス情報８１２とパラメータ８１３の有無に関わらず、圧縮透過率データの先頭アドレスを中間データから省略することができる。
【００６７】
＜上記以外のα値を有する場合＞
タイル領域内の各画素のα値が、例えばランダムな値であるように、これまで説明したケースに当てはまらない場合について説明する。ランダムな数値は演算式の演算では表現できないため、演算パラメータを使用せず、タイル領域内の全てのα値を表現する圧縮透過率データを生成する。そして、選択部３０４が全ての画素でα伸長データを選択すればよい。選択部３０４が全ての画素でα伸長データを選択する方法は、前述したとおりである。
【００６８】
ランダムな数値であるため、圧縮率は低くなるが、本実施形態で示した圧縮方法であれば、圧縮率のオーバーヘッドは現実的な範囲に収まる。
【００６９】
上述したとおり、画像形成装置１００の画像形成部１０５にて伸長部２００が図３に示す機能部を有することで、あらゆるケースの透過率α値を画質劣化させることなく導出できる。また、透過率データ伸長部３０１や選択データ伸長部３０３による伸長処理は、可逆圧縮データのみに対応するため、回路規模も小さく実現できる。さらに、多くの場合、透過率データ伸長部３０１が伸長する圧縮データの圧縮率は高くすることができ、選択データ伸長部３０３が伸長する圧縮データも２値データであるため、データ量を非常に小さくできる。
【００７０】
以上説明したように、本実施形態によれば、画質を劣化させることなく、透過特性を有する画像データを効率よく処理することができる。そのため、色データと透過率データを並列処理するレンダリングシステムを、画質を劣化させることなく、低コストで実現できる。
【００７１】
［実施形態２］
実施形態１では、透過率データ伸長部３０１のα伸長データ、または透過率データ演算部３０２のα演算データのうち、何れか一方を対象画像の画素毎に選択してα値の出力とする場合について説明した。透過率データ演算部３０２を複数有し、それらの演算結果とα伸長データの中から何れか一つの値を、対象画像の画素毎に選択してα値の出力とするとしてもよい。以下、本実施形態の伸長部２００において実行される画像処理とデータの流れについて説明する。
【００７２】
図１０は、本実施形態における伸長部２００の機能構成例を示す図である。本実施形態の伸長部２００は、色データ伸長部３００、透過率データ伸長部３０１、第一の透過率データ演算部１０００、第二の透過率データ演算部１００１、選択データ伸長部１００２、選択部１００３、結合部３０５を有する。なお、不図示の中間データ生成部は、色データ伸長部３００、透過率データ伸長部３０１、第一、第二の透過率データ演算部１０００、１００１、選択データ伸長部１００２の各部で用いられる圧縮データおよび非圧縮データを含む中間データ２０２を生成する。
【００７３】
色データ伸長部３００、透過率データ伸長部３０１、結合部３０５の処理は、実施形態１と同様であるため、その説明を省略する。
【００７４】
第一および第二の透過率データ演算部１０００、１００１は、実施形態１の透過率データ演算部３０２と同様の処理を行う。すなわち、第一および第二の透過率データ演算部１０００、１００１は、中間データ２０２に含まれる演算パラメータを読み出し、読み出した演算パラメータとタイル領域内の画素座標とを基に、透過率を演算する。なお、演算式のパラメータは、ＣＰＵ１０１がＲＡＭ１０２から読み出して、第一および第二の透過率データ演算部１０００、１００１に設定してもよい。ただし、第一の透過率データ演算部１０００に設定される演算パラメータと、第二の透過率データ演算部１００１に設定される演算パラメータとは異なる。また、第一および第二の透過率データ演算部１０００、１００１で行う演算がそれぞれ違うものであってもよい。例えば、第一の透過率データ演算部１０００は、式１に示すような一次式の演算を行い、第二の透過率データ演算部１００１は、式２に示すような二次式の演算を行う構成であってもよい。
【００７５】
選択データ伸長部１００２は、中間データ２０２に含まれる圧縮選択データをＲＡＭ１０２から読み出し、読み出した圧縮選択データを伸長して選択データを生成する。選択データは、透過率データ伸長部３０１、第一、第二の透過率データ演算部１０００、１００１それぞれが出力する３つのα値のうち、何れか一つを選択することを対象画像の画素毎に示すデータを有する。
【００７６】
選択部１００３は、マルチプレクサである。選択部１００３は、選択データ伸長部１００２にて伸長して得られた選択データを基に、透過率データ伸長部３０１、第一、第二の透過率データ演算部１０００、１００１それぞれが出力する３つのα値の何れか一つを対象画像の画素毎に選択する。そして、選択部１００３は、選択したα値を結合部３０５に転送する。
【００７７】
図１１および図１２は、本実施形態を説明する具体的な例として、縦横８画素×８画素のタイル処理を前提に、各部の出力（α値もしくは選択データ）を１ｃｈのＧｒａｙスケール、あるいは画素毎の数値で表現した図である。α値は、実施形態１と同様に例えば８ビットデータであり、透過を示す０を白、不透過を示す２５５を黒とし、半透過を示す０と２５５の間の半透過の数値をＧｒａｙの階調を付けて表現している。より具体的には、図１１（ａ）では、選択部１００３の出力であり、期待するα値を示している。
【００７８】
図１１（ｂ）は、図１１（ａ）に示す１つのタイル領域１１００全体を、出力α値を基に、第１の領域１１１１、第２の領域１１１２、第３の領域１１１３の３つに分割した状態を示している。第１の領域１１１１は、出力α値が左上の画素から右下の画素に向かってなだらかに増加する、一次式で表現可能な数値となる出力α値をもった領域である。第２の領域１１１２は、第１の領域１１１１の出力α値と異なり、一定の出力α値をもった領域である。第３の領域１１１３は、第１の領域１１１１とは反対に、出力α値が右下の画素から左上の画素に向かってなだらかに増加する、一次式で表現可能な数値となる出力α値をもった領域である。すなわち、第１および第３の領域１１１１、１１１３は、それぞれ透過率が段階的に変化する透過特性で表せる領域である。
【００７９】
図１２（ａ）〜（ｄ）では、図１１のα値を生成するための、透過率データ伸長部３０１、第一および第二の透過率データ演算部１０００、１００１、選択データ伸長部１００２および選択部１００３の各部の出力を表現した図である。図１２（ａ）は、透過率データ伸長部３０１が出力するα値を表現した図である。１つのタイル領域１２０１は、図１１（ｂ）の第２の領域１１１２のα値をα伸長データで表現するため、全面（全領域）が第２の領域１１１２のα値と同一のデータで構成される。
【００８０】
図１２（ｂ）は、第一の透過率データ演算部１０００の出力を表現した図である。図１２（ｂ）では、左上の画素から右下の画素に向けて白から黒へグラデーション状に変化する透過率α値で構成される１つのタイル領域１２０２を示している。１つのタイル領域１２０２は、図１１（ｂ）の第１の領域１１１１のα値を示している。これは、実施形態１と同様に、演算パラメータをＡ＝１８、Ｂ＝１８、Ｃ＝０としたときの式１によって導出されるα値である。
【００８１】
図１２（ｃ）は、第二の透過率データ演算部１００１の出力を表現した図である。図１２（ｃ）では、左上の画素から右下の画素に向けて黒から白へグラデーション状に変化する透過率α値で構成される１つのタイル領域１２０３を示している。１つのタイル領域１２０３は、図１１（ｂ）の第３の領域１１１３のα値を示している。これは、ラスタ順で最初の画素のα値が２５２で、最後の画素のα値が０となる、ｘ座標とｙ座標それぞれが線形に値が変化しているものとする。すなわち、演算パラメータをＡ＝−１８、Ｂ＝−１８、Ｃ＝２５２としたときの式１によって導出されるα値である。
【００８２】
図１２（ｄ）は、選択データ伸長部１００２の出力であり、画素毎に、透過率データ伸長部３０１のα伸長データ、第一および第二の透過率データ演算部１０００、１００１のα演算データの中から何れか一つのα値を選択する情報を２ビットの値で示している。
【００８３】
選択データ伸長部１００２は、中間データ２０２に含まれる圧縮選択データをＲＡＭ１０２から読み出し、読み出した圧縮選択データを伸長して選択データを生成する。選択データは、上述したとおり、α伸長データまたはα演算データの何れか一つを、対象画像の画素毎に選択するためのデータである。例えば、選択データは、「０」であれば透過率データ伸長部３０１の出力、「１」であれば第一の透過率データ演算部１０００の出力、「２」であれば第二の透過率データ演算部１００１の出力を選択する、という対象画像の画素毎に設定される２値データである。中間データ２０２に含まれる圧縮選択データは、例えば２ビットのデータを圧縮したデータである。実施形態１の圧縮選択データと同様、ランレングス方式で圧縮してもよいし、透過率データのような可逆圧縮データ方式であってもよい。なお、圧縮方式は、これに限定されない。
【００８４】
以上説明したように、本実施形態によれば、透過率データを演算する演算部を複数有する構成としたことで、より多くの領域のα値を演算処理によって表現することができる。これにより、透過率データの圧縮データが、多くの領域が単色で構成される単純なデータになり、圧縮効率向上により中間データのデータ容量を削減できる。
【００８５】
（変形例）
上記では、第一および第二の透過率データ演算部１０００、１００１を有する画像処理装置について説明したが、透過率を演算する機能部の数量は２つに限定されるものではない。例えば、第一、第二、第三の透過率データ演算部を有する画像処理装置とすることも可能である。この場合、中間データ生成部にて、第一、第二、第三の透過率データ演算部の演算に応じた演算パラメータおよび圧縮選択データを含む中間データを生成する。第一、第二、第三の透過率データ演算部は、演算パラメータを用いた演算にて、α演算データをそれぞれ導出する。そして、選択部は、選択データ生成部にて伸長して得られた選択データに基づいて、３つのα演算データおよび１つのα伸長データのうちの何れか一つを選択し、選択したデータを結合部に転送すればよい。
【００８６】
［実施形態３］
実施形態２では、複数の演算パラメータを用いることで、透過率データの圧縮率向上により中間データのデータ容量を小さくできることについて説明した。透過率データ演算部が複数あるかどうかに関わらず、中間データのデータ容量はできる限り小さい方が好ましい。一方、伸長データによって表現するα値の領域と、演算データによって表現するα値の領域は排他であるため、圧縮データのデータ容量は、パラメータの選択によって異なる。本実施形態では、中間データ生成時において、圧縮データのデータ容量が小さくなるような演算パラメータの選定方法について説明する。以下、本実施形態における処理の流れを説明する。
【００８７】
図１３は、中間データ生成部２０６による、イメージに関する中間データの生成処理手順例を示すフローチャートである。
【００８８】
イメージに関する中間データは、色（例えばＲＧＢ）や透過率（α）の圧縮データと演算パラメータと選択データなどの、伸長部２００が参照するデータを示す。中間データに含まれる、レンダリング部２０１が参照するレンダリング情報は、色情報の位置座標や重なりの上下関係を示す層情報や色合成命令を含む。本実施形態では関連がないため詳細な説明は省略する。以下、イメージに関する中間データの生成フローを、図１３を用いて詳細に説明する。フローチャートで示される一連の処理は、ＣＰＵ１０１がＲＯＭ１０３に格納されている制御プログラムをＲＡＭ１０２に読み込み、実行することにより行われる。あるいはまた、フローチャートにおけるステップの一部または全部の機能をＡＳＩＣや電子回路等のハードウェアで実現してもよい。以下の各記号Ｓは、フローチャートにおけるステップであることを意味する。
【００８９】
Ｓ１３００において、中間データ生成部２０６は、ＰＤＬデータ内のイメージデータを受信する。
【００９０】
Ｓ１３０１において、中間データ生成部２０６は、受信したイメージデータの全体を縦横にて任意の画素数からなる所定の領域（タイル領域）に分割する。
Ｓ１３０２において、中間データ生成部２０６は、受信したイメージデータが透過率αを有するα付きイメージであるか否かを判定する。α付きイメージであると判定した場合（Ｓ１３０２：ＹＥＳ）、処理をＳ１３０３に移行し、Ｓ１３０３〜Ｓ１３１５にて透過率αに関するデータ生成が行われる。α付きイメージではないと判定した場合（Ｓ１３０２：ＮＯ）、αに関するデータ生成処理は省略され、処理をＳ１３１６に移行する。
Ｓ１３０３において、分割した領域の中から、処理する領域（処理対象の領域）を選択する。すなわち、複数のタイル領域の中から、処理対象となる１つのタイル領域を選択する。
【００９１】
Ｓ１３０４において、選択した処理対象の領域（タイル領域）内に、透過特性で表せる領域、具体的には、透過率αがグラデーション状に変化するグラデーション領域（階調領域）があるかないかを判定する。選択した処理対象の領域（タイル領域）内にグラデーション領域があると判定した場合（Ｓ１３０４：ＹＥＳ）、処理をＳ１３０６に移行し、Ｓ１３０６〜１３０９にて演算パラメータの選定を行う。選択した処理対象の領域（タイル領域）内にグラデーション領域がないと判定した場合（Ｓ１３０４：ＮＯ）、処理をＳ１３０５に移行する。
【００９２】
Ｓ１３０５において、選択した処理対象の領域（タイル領域）には演算でα値を導出する領域（伸長領域）がない、すなわち、演算パラメータが無いことを示す情報を透過率αに関する情報に付加し、処理をＳ１３１２に移行する。付加する情報として、例えば、図８に示したヘッダー部８１１に入れられる「１０」などが挙げられる。
【００９３】
Ｓ１３０６において、選択した処理対象の領域（タイル領域）内に、互いに異なる透過特性で表せる領域が複数あるかないかを判定する。具体的には、選択した処理対象の領域（タイル領域）内に、演算パラメータの異なるグラデーション領域が複数（図１１（ｂ）では、第１の領域１１１１と第３の領域１１１３の２つ）あるかないかを判定する。選択した処理対象の領域（タイル領域）内に、グラデーション領域が複数あると判定した場合（Ｓ１３０６：ＹＥＳ）、処理をＳ１３０７に移行する。選択した処理対象の領域（タイル領域）内に、グラデーション領域が一つしかないと判定した場合（Ｓ１３０６：ＮＯ）、処理をＳ１３０８に移行する。
【００９４】
Ｓ１３０７において、圧縮透過率データが小さくなるように、複数のグラデーション領域の中から、演算でα値を導出する領域を選択する。なお、ここでは、実施形態１で示したような一つの透過率データ演算部を有する場合について説明をするが、実施形態２で説明したように、複数の透過率データ演算部を有してもよい。その場合は、画像形成装置が有する透過率データ演算部の数量に応じて、選択するグラデーション領域の数量も変更する。また、本Ｓ１３０７における、圧縮透過率データが小さくなるように演算領域を選択する方法についての詳細は、後述する。
【００９５】
Ｓ１３０８において、Ｓ１３０７で選択したグラデーション領域（Ｓ１３０６がＹＥＳの場合）、あるいは一つのグラデーション領域（Ｓ１３０６がＮＯの場合）に応じて、透過率データ演算部３０２に与える演算パラメータを決定する。すなわち、透過率αに関する情報に付加する情報を決定する。
【００９６】
Ｓ１３０９において、選択した処理対象の領域（タイル領域）には演算により透過率αを導出する領域がある、すなわち、演算パラメータがあることを示す情報を付加する。付加する情報として、例えば、図８に示したヘッダー部８１１に入れられる「００」あるいは「０１」などが挙げられる。
【００９７】
Ｓ１３１０において、選択した処理対象の領域（タイル領域）内に、透過率αがグラデーション状に変化しない非グラデーション領域があるかないかを判定する。選択した処理対象の領域（タイル領域）内に非グラデーション領域があると判定した場合（Ｓ１３１０：ＹＥＳ）、処理をＳ１３１２に移行する。選択した処理対象の領域（タイル領域）内に、非グラデーション領域がないと判定した場合（Ｓ１３１０：ＮＯ）、すなわち、領域内の透過率αが全てＳ１３０８で決定した演算パラメータによる演算で導出できる場合、処理をＳ１３１１に移行する。
【００９８】
Ｓ１３１１において、選択した処理対象の領域（タイル領域）には圧縮データの伸長により表現される領域（伸長領域）がない、すなわち、圧縮透過率データが無いことを示す情報を付加し、処理をＳ１３１４に移行する。付加する情報として、例えば、図８に示したヘッダー部８１１に入れられる「０１」などが挙げられる。この場合、圧縮透過率データの生成は行わない。また、透過率データ伸長部３０１は、ヘッダー部８１１の情報を確認する（参照する）ことで、透過率圧縮データを読み出し、伸長する処理を行わない。
【００９９】
Ｓ１３１２において、非グラデーション領域のα値を可逆圧縮する。すなわち、非グラデーション領域に該当する画素の透過率を可逆圧縮した可逆圧縮透過率データを生成する。非グラデーション領域に該当する画素の透過率の可逆圧縮方式については、本実施形態で説明しているため省略する。
【０１００】
Ｓ１３１３において、選択した処理対象の領域（タイル領域）には圧縮データの伸長により表現される透過率を有する領域（α領域）がある、すなわち、圧縮透過率データであることを示す情報を付加する。付加する情報は、例えば、図８に示すヘッダー部８１１に、領域内にグラデーション領域があると判定した場合（Ｓ１３０２：ＹＥＳ）は「００」を、領域内にグラデーション領域がないと判定した場合（Ｓ１３０２：ＮＯ）は「１０」を入れればよい。
【０１０１】
Ｓ１３１４において、Ｓ１３０７で選択した領域情報から、選択データを２値の圧縮データとして生成する。なお、Ｓ１３０５やＳ１３１１により、選択した処理対象の領域（タイル領域）全面が演算領域または伸長領域のいずれか一方のみであると判断できる場合、選択データの生成は行わない。
【０１０２】
Ｓ１３１５において、イメージデータを分割した全領域（複数のタイル領域全て）に対して透過率データを生成済みであるか否かを判定する。全領域（全タイル領域）の透過率データが生成済みであると判定した場合（Ｓ１３１５：ＹＥＳ）、透過率データの生成を完了し、処理をＳ１３１６へ移行する。全領域（全タイル領域）の透過率データが生成済みでないと判定した場合（Ｓ１３１５：ＮＯ）、処理をＳ１３０３へ移行し、次の領域（タイル領域）に対してＳ１３０４〜Ｓ１３１４の処理を行う。
【０１０３】
Ｓ１３１６において、再度、分割した領域の中から、処理する領域（処理対象の領域）を選択する。すなわち、未処理である複数のタイル領域の中から、処理対象となる１つのタイル領域を選択する。
【０１０４】
Ｓ１３１７において、Ｓ１３１６で選択した処理対象の領域（タイル領域）の色（ＲＧＢ）に関する圧縮データを生成する。色の圧縮データは、一般的に行われているように、可逆圧縮や非可逆圧縮、あるいはその混在した圧縮データとして生成する。
【０１０５】
Ｓ１３１８において、イメージデータを分割した全領域（複数のタイル領域全て）に対して色データを生成済みであるか否かを判定する。全領域（全タイル領域）の色データが生成済みであると判定した場合（Ｓ１３１８：ＹＥＳ）、イメージデータの圧縮処理を完了する。全領域の色データ（全タイル領域）が生成済みでないと判定した場合（Ｓ１３１８：ＮＯ）、処理をＳ１３１６へ移行し、次の領域（タイル領域）に対してＳ１３１７の処理を行う。
【０１０６】
このような処理により、色データ、圧縮透過率データ、演算パラメータ、選択データを含む中間データ２０２が生成される。
【０１０７】
次に、圧縮透過率データが小さくなるように演算領域を選定する方法について説明する。なお、圧縮データのデータ容量削減方法については、本実施形態では図６で示した圧縮方法を基に説明するが、あくまで一例であり、この手法に限定されない。
【０１０８】
＜グラデーション領域の大きさに応じて選択＞
グラデーション領域が大きいほうが、圧縮透過率データは小さくなりやすい傾向がある。そのため、透過率をグラデーションで表現できる領域に該当する画素数をそれぞれ比較して、より多くの画素数をグラデーションで表現できる領域を、演算パラメータで表現する。この場合、複数の階調領域のうち、より多くの画素数をグラデーションで表現できる領域（最大階調領域）を演算領域として選定した選択データが生成される。それによって、簡単な判定で圧縮透過率データを小さくすることができる。
【０１０９】
＜グラデーションの方向に応じて選択＞
図１４は、グラデーションの方向に応じて可逆圧縮データのデータ容量が変化することを示す図である。図１４（ａ）は、８画素×８画素のタイル領域に、横方向グラデーションのα値がかかっている様子を示しており、図１４（ｂ）は、それを符号化した符号データである。図１４（ｃ）は、図１４（ａ）と同様、８画素×８画素のタイル領域に、縦方向グラデーションのα値がかかっている様子を示しており、図１４（ｄ）は、それを符号化した符号データである。データの圧縮、伸長はスキャンライン順に行われるため、横方向のグラデーションで表現される領域（横方向階調領域）は縦方向のグラデーションで表現される領域（縦方向階調領域）に比べて圧縮率が低い。以下、具体例を用いて説明する。
【０１１０】
横方向のグラデーション領域例では、図１４（ｂ）で示すように、３画素目に３つ目のα値が出現しているため、２画素目に２ビットの符号データに拡張される。また、５画素目に５つ目のα値が出現しているため、４画素目に３ビットの符号データに拡張される。そのため、色（透過）値を含む圧縮データ容量は合わせて２７４ビットにのぼる。
【０１１１】
一方、縦方向のグラデーション領域例では、図１４（ｄ）に示すように、３つ目のα値が出現するのは１７画素目であり、５つ目のα値が出現するのは３３画素目である。符号データが小さいビット数で、より多くの画素を表現できるため、色（透過）値を含む圧縮データ容量は合わせて２３２ビットとなった。
【０１１２】
このように、グラデーションの方向によって可逆圧縮の圧縮率が異なる。そのため、横方向と縦方向のグラデーション領域が混在している場合では、圧縮率の低い横方向のグラデーション領域を優先的に、演算部用のパラメータで表現する。すなわち、選択データは、横方向のグラデーション領域に対して演算領域として優先的に選定するデータを有する。これにより、可逆圧縮データのデータ容量を小さくすることができる。
【０１１３】
＜圧縮した結果を比較して選択＞
複数のグラデーション領域が混在している場合、それぞれのグラデーション領域を演算部用のパラメータを基に演算で導出すると仮定して透過率の圧縮データを生成し、結果的に一番データ容量が小さくなった設定を選択することもできる。
【０１１４】
なお、透過率がグラデーション状に変化する領域を演算式の演算で表現できる演算パラメータがＰＤＬデータにない場合、演算パラメータを次のように設定することができる。ＰＤＬデータに含まれる複数のパラメータのうち、演算結果にて対象画像の各画素の透過率と最も多く一致した数量が多いパラメータを演算パラメータとして設定することができる。または、ＰＤＬデータに含まれる複数のパラメータのうち、演算結果にて、対象画像の各画素の透過率と連続して一致した数量の最も多いパラメータを演算パラメータとして設定することができる。また、透過率を近似してもよい場合には、最小二乗法を用いて演算パラメータを導出することもできる。これにより、圧縮データの容量を小さくできる可能性がある。
【０１１５】
以上説明したように、本実施形態によれば、１つのタイル領域内に異なるグラデーション領域が混在していた場合、より小さい圧縮透過率データとなるような演算パラメータを選択することで、中間データのデータ容量の削減できる。
【０１１６】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１１７】
２００  伸長部
２０２  中間データ
２０３  伸長データ
３００  色データ伸長部
３０１  透過率データ伸長部
３０２  透過率データ演算部
３０３  選択データ伸長部
３０４  選択部
３０５  結合部
【図１】
2020082455.tif 000003
【図２】
2020082455.tif 000004
【図３】
2020082455.tif 000005
【図４】
2020082455.tif 000006
【図５】
2020082455.tif 000007
【図６】
2020082455.tif 000008
【図７】
2020082455.tif 000009
【図８】
2020082455.tif 000010
【図９】
2020082455.tif 000011
【図１０】
2020082455.tif 000012
【図１１】
2020082455.tif 000013
【図１２】
2020082455.tif 000014
【図１３】
2020082455.tif 000015
【図１４】
2020082455.tif 000016
【図１５】
2020082455.tif 000017