(57)【要約】【課題】ＰＤＬデータを解釈してレンダリング処理を実行する画像処理において、中間データのデータ量と、レンダリング処理の処理負荷とを軽減する。【解決手段】本発明の画像処理装置は、ＰＤＬデータを解釈してレンダリング処理に用いられる中間データを生成する画像処理装置であって、入力されたＰＤＬデータを解釈して前記レンダリング処理が実行された場合に生成されるラスタ画像データのデフォルト属性を決定する決定手段と、前記決定されたデフォルト属性とは異なる属性を有する画素について、前記異なる属性に上書きすることを指示する属性マスク命令を生成する命令生成手段と、前記決定されたデフォルト属性を示す属性情報と、前記生成された属性マスク命令とを含む中間データを生成する中間データ生成手段と、を有することを特徴とする。【選択図】図２
2019111677.tif 000002
【特許請求の範囲】
【請求項１】
ＰＤＬデータを解釈してレンダリング処理に用いられる中間データを生成する画像処理装置であって、
入力されたＰＤＬデータを解釈して前記レンダリング処理が実行された場合に生成されるラスタ画像データのデフォルト属性を決定する決定手段と、
前記決定されたデフォルト属性とは異なる属性を有する画素について、前記異なる属性に上書きすることを指示する属性マスク命令を生成する命令生成手段と、
前記決定されたデフォルト属性を示す属性情報と、前記生成された属性マスク命令とを含む中間データを生成する中間データ生成手段と、を有する
ことを特徴とする画像処理装置。
【請求項２】
前記生成された中間データに対して前記レンダリング処理を実行するレンダリング手段をさらに有し、
前記レンダリング手段は、着目画素に対応する前記属性マスク命令が存在する場合、当該属性マスク命令に従って、前記着目画素に対応付けられている前記デフォルト属性を前記異なる属性に上書きする
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記レンダリング手段は、前記生成された中間データに含まれる前記属性情報に従って、前記属性情報が示すデフォルト属性を、前記レンダリング処理で生成されるラスタ画像データにおける画素に対応付けることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記入力されたＰＤＬデータを解釈して前記レンダリング処理を先行的に行うフラットニング手段をさらに有することを特徴とする請求項１から３のいずれか１項に記載の画像処理装置。
【請求項５】
前記中間データ生成手段は、前記フラットニング手段によって生成されたラスタ画像データをさらに含む中間データを生成することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記生成されたラスタ画像データに対して圧縮処理を実行する圧縮手段をさらに有することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記決定手段は、前記生成されたラスタ画像データの画素を走査して検出された画素ごとの属性に基づいて前記デフォルト属性を決定し、
前記圧縮手段は、前記生成されたラスタ画像データの画素を走査して検出された画素ごとの画素値に基づいて前記圧縮処理に適用される圧縮手法を決定し、
前記デフォルト属性の決定と、前記圧縮手法の決定とは、同一の前記走査で実行されることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記決定手段は、予め定められている属性を前記デフォルト属性に決定することを特徴とする請求項１から７のいずれか１項に記載の画像処理装置。
【請求項９】
前記決定手段は、前記入力されたＰＤＬデータにおける着目領域に属性を有するオブジェクトが含まれる場合、前記オブジェクトが有する属性に基づいて、前記着目領域に対して前記レンダリング処理が実行された場合に生成されるラスタ画像データのデフォルト属性を決定することを特徴とする請求項１から３のいずれか１項に記載の画像処理装置。
【請求項１０】
前記決定手段は、前記生成されるラスタ画像データにおいて最も多く検出される属性を前記デフォルト属性に決定することを特徴とする請求項１から９のいずれか１項に記載の画像処理装置。
【請求項１１】
前記属性は、前記入力されたＰＤＬデータに含まれるオブジェクトの種類であることを特徴とする請求項１から１０のいずれか１項に記載の画像処理装置。
【請求項１２】
前記属性は、前記生成されるラスタ画像データが表す画像の透過度であることを特徴とする請求項１から１０のいずれか１項に記載の画像処理装置。
【請求項１３】
ＰＤＬデータを解釈してレンダリング処理に用いられる中間データを生成する画像処理装置の制御方法であって、
入力されたＰＤＬデータを解釈して前記レンダリング処理が実行された場合に生成されるラスタ画像データのデフォルト属性を決定する決定ステップと、
前記決定されたデフォルト属性とは異なる属性を有する画素について、前記異なる属性に上書きすることを指示する属性マスク命令を生成する命令生成ステップと、
前記決定されたデフォルト属性を示す属性情報と、前記生成された属性マスク命令とを含む中間データを生成する中間データ生成ステップと、を有する
ことを特徴とする制御方法。
【請求項１４】
請求項１から請求項１２のいずれか１項に記載の画像処理装置によって生成されたラスタ画像データに対して印刷処理を実行する印刷手段を有する画像形成装置。
【請求項１５】
コンピュータを、請求項１から請求項１２のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＰＤＬデータを解釈してレンダリング処理を実行する画像処理技術に関する。
【背景技術】
【０００２】
ＰＤＬ（ページ記述言語：Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）対応型のプリンタが普及している。ＰＤＬ対応型のプリンタは、入力されたＰＤＬデータを解釈してレンダリング処理を実行する画像処理機能を搭載する。
【０００３】
ＰＤＬ対応型のプリンタは、レンダリング処理で生成されたラスタ画像データに対してさらに所定の画像処理を実行する。この画像処理の例として、テキストの輪郭を強調するエッジ強調や、グラフィック領域におけるトナー載り量調整などが挙げられる。ＰＤＬ対応型のプリンタは、オブジェクトの種類に応じて画像処理を切り替えるために、レンダリング処理において、ＲＧＢ画像データと属性データとからなるＲＧＢＡ（Ａは属性値）の４チャンネルのラスタ画像データを生成する技術が提案されている。
【０００４】
また、ＰＤＬ対応型のプリンタの中には、フラットニング機能を搭載する機種も提案されている。ここで、フラットニングとは、中間データを生成する段階でレンダリング処理を先行的に実行する技術をいう。このようなフラットニング技術は、例えば、オブジェクト同士の重なりが多く、オブジェクトの座標情報や重なり情報が複雑化する場合に、特に有効な技術である。
【０００５】
ところで、中間データのデータ量を軽減するために、フラットニング処理で生成されたラスタ画像データを圧縮した場合、ＲＧＢＡの４チャンネルのラスタ画像データから属性値Ａが失われてしまうという課題があった。この課題に対して、特許文献１に開示される画像処理装置は、圧縮されたＲＧＢ画像データと、属性値Ａを合成することを指示する画像合成命令とを含む中間データを生成する。レンダリングエンジンは、圧縮されたＲＧＢ画像データを伸長するとともに、画像合成命令を解釈（デコード）して伸長されたＲＧＢ画像データに属性値を合成し、ＲＧＢＡの４チャンネルのラスタ画像データを出力する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−３３１２８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１における画像処理技術では依然として、中間データのデータ量と、レンダリング処理の処理負荷とが増加してしまうという課題があった。
【０００８】
すなわち、特許文献１の画像処理装置は、オブジェクトが存在する画素ごとに画像合成命令を生成していたため、中間データのデータ量が増加してしまっていた。さらに、レンダリングエンジンは、オブジェクトが存在する画素ごとに画像合成命令を解釈して属性値を合成していたため、レンダリング処理の処理負荷が増加してしまっていた。
【０００９】
本発明は上記課題に鑑みなされたものであり、ＰＤＬデータを解釈してレンダリング処理を実行する画像処理において、中間データのデータ量と、レンダリング処理の処理負荷とを軽減することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の画像処理装置は、ＰＤＬデータを解釈してレンダリング処理に用いられる中間データを生成する画像処理装置であって、入力されたＰＤＬデータを解釈して前記レンダリング処理が実行された場合に生成されるラスタ画像データのデフォルト属性を決定する決定手段と、前記決定されたデフォルト属性とは異なる属性を有する画素について、前記異なる属性に上書きすることを指示する属性マスク命令を生成する命令生成手段と、前記決定されたデフォルト属性を示す属性情報と、前記生成された属性マスク命令とを含む中間データを生成する中間データ生成手段と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ＰＤＬデータを解釈してレンダリング処理を実行する画像処理において、中間データのデータ量と、レンダリング処理の処理負荷とを軽減することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態１における画像形成装置の構成例を示す図である。
【図２】実施形態１における画像形成装置の機能構成例を示す図である。
【図３】実施形態１における印刷データの生成手順例を示すフローチャートである。
【図４】実施形態１における中間データの生成手順例を示すフローチャートである。
【図５】実施形態１におけるレンダリング処理手順例を示すフローチャートである。
【図６】実施形態１における画像データの遷移例を示す模式図である。
【図７】実施形態１におけるオブジェクトの具体例を示す図である。
【図８】図８（ａ）は従来手法における画像合成命令を示す模式図である。図８（ｂ）は実施形態１における属性情報と属性マスク命令とを示す模式図である。
【図９】実施形態２における画像形成装置の機能構成例を示す図である。
【図１０】実施形態２における中間データの生成手順例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
［実施形態１］
以下、本発明を実施するための形態について図面を参照して説明する。ただし、この実施形態に記載されている構成はあくまで例示であり、本発明の範囲を必ずしもそれらに限定する趣旨のものではない。
【００１４】
図１は本実施形態における画像形成装置の構成例を示す図である。画像形成装置１００は、ＣＰＵ１０１と、ＲＡＭ１０２と、ＲＯＭ１０３と、入出力インターフェース（以下インターフェースは「Ｉ／Ｆ」と記す）１０４と、画像処理部１０５と、印刷データ生成部１０６と、印刷部１０７とを備える。これら構成はインターコネクト１０８を介して相互に接続されている。ＣＰＵ１０１は、ＲＯＭ１０３に格納された制御プログラムを読み出して実行することにより、画像形成装置１００の動作を統括的に制御する。ＲＡＭ１０２は、読み書き可能なメモリであり、各種データの一次記憶領域として用いられる。入出力Ｉ／Ｆ１０４は、不図示のＰＣなどの外部装置から送出される、ＰＤＬで記述されたＰＤＬデータを受信してＲＡＭ１０２に格納する。画像処理部１０５は、ＲＡＭ１０２に格納されたＰＤＬデータを解釈してラスタ画像データを生成する。印刷データ生成部１０６は、画像処理部１０５で生成されたラスタ画像データを印刷に適した印刷データに変換する。印刷部１０７は、インクジェットや電子写真方式などのプリンタエンジンを備え、印刷データ生成部１０６で生成された印刷データに対して印刷処理を実行する。印刷処理の結果、用紙などの記録媒体に画像が形成される。
【００１５】
図２は本実施形態における画像形成装置１００の機能構成例を示すブロック図である。図２における各ブロックの機能は、ＣＰＵ１０１がＲＯＭ１０３に格納されたプログラムコードをＲＡＭ１０２に読み出して実行することにより実現される。あるいはまた、図２におけるブロックの一部または全部の機能をＡＳＩＣや電子回路等のハードウェアで実現してもよい。これは図２以降のブロック図についても同様である。
【００１６】
画像処理部１０５は、ＰＤＬ解釈部２００と、中間データ生成部２１０と、レンダリング部２２０とを備える。さらに、中間データ生成部２１０は、レンダリング情報生成部２１１と、フラットニング判定部２１２と、フラットニング部２１３と、画像圧縮部２１４と、描画命令生成部２１６とを含む。このうち、画像圧縮部２１４はデフォルト属性決定部２１５を含み、描画命令生成部２１６は属性マスク命令生成部２１７と、画像合成命令生成部２１８とを含む。
【００１７】
ＰＤＬ解釈部２００は、ＰＣなどの外部装置から受信したＰＤＬデータを解釈する。中間データ生成部２１０は、ＰＤＬデータの解釈結果に基づいて中間データを生成する。フラットニング判定部２１２は、着目領域がフラットニング処理の対象領域であるか否かを判定する。フラットニング部２１３は、着目領域に対するフラットニング処理を実行する。画像圧縮部２１４は、フラットニング処理で生成されたラスタ画像データを圧縮する。デフォルト属性決定部２１５は、属性のカウント結果に基づいてデフォルト属性を決定する。属性マスク命令生成部２１７は属性マスク命令を生成する。画像合成命令生成部２１８は画像合成命令を生成する。レンダリング情報生成部２１１は、レンダリング処理で用いられるレンダリング情報を生成する。レンダリング部２２０は、中間データ生成部２１０で生成された中間データに対してレンダリング処理を実行してラスタ画像データを生成する。
【００１８】
図３は本実施形態において、ＰＤＬデータから印刷データを生成する画像処理の手順例を示すフローチャートである。図３のフローチャートにおける各ステップは、ＣＰＵ１０１がＲＯＭ１０３に格納されたプログラムコードをＲＡＭ１０２に読み出して実行することにより実現される。あるいはまた、図３におけるステップの一部または全部をＡＳＩＣや電子回路等のハードウェアで実現してもよい。以下の各記号Ｓは、フローチャートにおけるステップであることを意味する。これらは図３以降のフローチャートについても同様である。
【００１９】
Ｓ１００において、ＰＤＬ解釈部２００は、ＰＣなどの外部装置から受信したＰＤＬデータを解釈する。ＰＤＬデータには、テキスト、グラフィックおよびイメージなどの描画を指示する画像形成命令が含まれており、中間データ生成部２１０はこれらのような画像形成命令を解釈することができる。以下の説明において、ＰＤＬデータに含まれる画像形成命令に従って形成される像を「オブジェクト」と記す。
【００２０】
図６は本実施形態における画像データの遷移例を示す模式図である。以下、図６の模式図を参照してＰＤＬデータの具体例について説明する。ＰＤＬデータ６０１には、ＰＤＬデータの内容の具体例が示されている。ＰＤＬデータ６０１には、あるページ領域をＸＹ座標で表したとき、座標（ｘ，ｙ）＝（３０，１０）の位置にテキストオブジェクト６０４の描画を指示する画像形成命令が含まれる。同様に、ＰＤＬデータ６０１には、（ｘ，ｙ）＝（０，２０）の位置にイメージオブジェクト６０３の描画を指示する画像形成命令が含まれる。この他、ＰＤＬデータ６０１には、オブジェクトの拡大、縮小および回転などの描画条件（ＡＦＦＩＮＥ）、色に関する描画条件ならびに背景の描画に関する描画条件などが含まれる。上述の通り、ＰＤＬデータ６０１に含まれるイメージオブジェクト６０３と、テキストオブジェクト６０４とには、それぞれ座標が対応付けられている。中間データ生成部２１０は、このようなオブジェクトの座標を参照することにより、オブジェクト同士の重なりを認識することができる。
【００２１】
再び図３のフローチャートに戻り、Ｓ２００において、中間データ生成部２１０は、Ｓ１００におけるＰＤＬデータの解釈結果に基づいて中間データを生成する。中間データ生成処理の詳細は後述する。
【００２２】
Ｓ３００において、レンダリング部２２０は、Ｓ２００で生成された中間データに対してレンダリング処理を実行してラスタ画像データを生成する。レンダリング処理の詳細は後述する。
【００２３】
Ｓ４００において、印刷データ生成部１０６は、Ｓ３００で生成されたラスタ画像データを印刷に適した印刷データに変換する。生成された印刷データは印刷部１０７に送出される。その後、印刷部１０７は、印刷データに従って用紙などの記録媒体に画像を印刷する。Ｓ４００が終了すると、本フローチャートを終了する。
【００２４】
図４は本実施形態における中間データの生成手順例を示すフローチャートである。本実施形態の中間データ生成手順では、主に、フラットニング処理（Ｓ２０２〜Ｓ２０３）と、デフォルト属性決定処理（Ｓ２０４〜Ｓ２０７）と、描画命令生成処理（Ｓ２０８〜Ｓ２１２）との３種類の処理が行われる。
【００２５】
まず、フラットニング処理について説明する。  
Ｓ２０１において着目領域が選択される。着目領域は、例えばライン単位、タイル（ページを所定の大きさで分割した矩形領域）単位およびページ単位などで選択され得る。また、オブジェクトが存在する領域が着目領域として選択されてもよい。
【００２６】
Ｓ２０２において、フラットニング判定部２１２は、着目領域がフラットニング処理の対象領域であるか否かを判定する。ここで、フラットニング処理とは、中間データを生成する段階でレンダリング処理を先行的に行う処理をいう。フラットニング処理は、例えば以下のようなユースケースで行われる。  
【００２７】
１つ目は、生成される中間データのデータ量が所定の閾値以上となってしまう場合である。すなわち、ＰＤＬデータに含まれるオブジェクト同士の重なりが多くなると、オブジェクトごとの座標情報や重なり情報が増加してしまうため、上記のような場合が発生し得る。ラスタ画像データを先行的に生成することにより、圧縮したラスタ画像データを中間データに含めることができる。そうすると、後段のレンダリング処理において、レンダリング部２２０は圧縮したラスタ画像データを伸長するだけで済むようになり、中間データのデータ量を抑制することができる。  
【００２８】
２つ目は、生成される中間データに、レンダリング部２２０が解釈することができない特殊な描画命令が含まれる場合である。すなわち、レンダリング部（レンダリングエンジン）２２０が電子回路などのハードウェアで実装されていると、レンダリング部２２０は予め定められた種類以外の、特殊な描画命令を解釈することができない場合がある。ラスタ画像データを先行的に生成することにより、後段のレンダリング処理において、レンダリング部２２０は圧縮したラスタ画像データを伸長するだけで済むようになり、このような特殊な描画命令を解釈する必要がなくなる。
【００２９】
本実施形態において、着目領域がフラットニング処理の対象領域であるか否かの判定は、中間データを生成した場合に中間データのデータ量が所定の閾値以上となるか否かに基づいて行われる。ここで、図７を参照して本実施形態におけるオブジェクトの具体例について説明する。図７には、オブジェクトと、オブジェクトそれぞれに予め対応付けられている属性値とが示されている。属性値は２ビットの情報で示され、テキストオブジェクトには「０１」、グラフィックオブジェクトには「１０」、イメージオブジェクトには「１１」がそれぞれ対応付けられている。なお、グラフィックオブジェクトは、画像形成命令に含まれるエッジ情報と塗り情報（いずれも不図示）とに従って描画されるオブジェクトであり、イメージオブジェクトは、画像形成命令に従って描画される写真画像などを表すオブジェクトである。また、これらオブジェクトが存在しない領域については、レンダリング処理において、当該領域が背景であることを示す属性値「００」が対応付けられる。なお、レンダリング処理で画素ごとに対応付けられた属性値は、後段の印刷データ生成処理で参照される。例えば、テキストオブジェクトを示す属性値「０１」を有する画素領域に対して、エッジを強調する画像処理を実行することにより、テキストの輪郭を強調することができる。
【００３０】
本実施形態において、フラットニング判定部２１２は、中間データのデータ量が所定の閾値以上となる場合に、着目領域がフラットニング処理の対象領域であると判定する。なお、Ｓ２０２の判定は上記実施形態に限定されず、中間データに特殊な描画命令が含まれるか否かに基づいて行われてもよい。この場合、この特殊な描画命令を有するオブジェクトを含む領域が、フラットニング処理の対象領域となる。また、本実施形態では、テキスト、グラフィックおよびイメージオブジェクトが具体例として示されたが、オブジェクトは上記に限定されない。属性が異なるオブジェクトが重なっている場合、所定の合成アルゴリズムに基づいて出力属性値が決定される。つまり、ラスタ画像データにおける画素ごとの属性値は、レンダリング処理（フラットニング処理）で決定される。
【００３１】
着目領域がフラットニング処理の対象領域である場合（Ｓ２０２：ＹＥＳ）はＳ２０３に移行する。着目領域がフラットニング処理の対象領域ではない場合（Ｓ２０２：ＮＯ）はＳ２１４に移行する。
【００３２】
Ｓ２０３において、フラットニング部２１３は、着目領域に対するフラットニング処理を実行する。すなわち、着目領域に対してレンダリング処理が施されてラスタ画像データが生成される。フラットニング部２１３によって生成されるラスタ画像データは、後述のレンダリング部２２０によって生成されるラスタ画像データと略同一である。図６には、ラスタ画像データが模式的に示されている。本実施形態におけるラスタ画像データは、（ｘ，ｙ）＝（０，０）〜（ｉ，ｊ）の領域で画素を有し、ＲＧＢ８ビットの画素値を有する画像データ６２２と、２ビットの属性値を有する属性データ６２３とを含む。つまり、フラットニング処理で生成されるラスタ画像データは、ＲＧＢＡ（Ａは属性値）の４チャンネルのラスタ画像データであると言える。なお、ラスタ画像データはＲＧＢの色成分ではなくＣＭＹＫなどの色成分の画素値を有してもよい。
【００３３】
次いで、デフォルト属性決定処理について説明する。  
Ｓ２０４において、フラットニング処理で生成されたラスタ画像データにおける着目画素が選択される。なお、着目画素を選択する手法は走査以外であってもよく、例えば、ラスタ画像データから未処理の画素がランダムに選択されてもよい。
【００３４】
Ｓ２０５において、画像圧縮部２１４は、着目画素の属性をカウントする。具体的には、着目画素の属性値を特定して当該属性値に対応する属性がカウントアップされる。
【００３５】
Ｓ２０６において、画像圧縮部２１４は、全ての画素について処理が完了したか否かを判定する。全ての画素について処理が完了した場合（Ｓ２０６：ＹＥＳ）はＳ２０７に移行する。全ての画素について処理が完了していない場合（Ｓ２０６：ＮＯ）はＳ２０４に戻り、未処理の画素のなかから着目画素が選択され、Ｓ２０４〜Ｓ２０６の処理が繰り返される。
【００３６】
Ｓ２０７において、デフォルト属性決定部２１５は、属性のカウント結果に基づいてデフォルト属性を決定する。このとき、デフォルト属性決定部２１５は、最も多くカウントされた属性を基準としてデフォルト属性を決定する。なお、例えばタイルごとにフラットニング処理が実行される場合、タイルごとにデフォルト属性が決定されてもよいし、決定された複数のデフォルト属性のなかからページ全体に対応するデフォルト属性が選択されてもよい。一般的に、ある画像データに適用される圧縮手法を決定する場合、画像データを走査して検出された全画素値（全属性値）に基づいて圧縮手法が決定される。つまり、画像データを圧縮する際に、画像データの全画素が走査されることになる。本実施形態では、圧縮手法を決定するために行われる走査において、デフォルト属性を決定するために必要な属性値の取得も行われる。そのため、走査処理を重複して行う必要が無いため処理負荷を軽減することができる。
【００３７】
次いで、描画命令生成処理について説明する。  
Ｓ２０８において、フラットニング処理で生成されたラスタ画像データにおける着目画素が選択される。
【００３８】
Ｓ２０９において、属性マスク命令生成部２１７は、着目画素の属性がデフォルト属性であるか否かを判定する。着目画素の属性がデフォルト属性である場合（Ｓ２０９：ＹＥＳ）はＳ２１０をスキップしてＳ２１１に移行する。着目画素の属性がデフォルト属性ではない場合（Ｓ２０９：ＮＯ）はＳ２１０に移行する。
【００３９】
Ｓ２１０において、属性マスク命令生成部２１７は属性マスク命令を生成する。属性マスク命令は、レンダリング部２２０が解釈可能な描画命令であり、レンダリング部２２０に対してデフォルト属性値を所望の属性値に上書きすることを指示する。
【００４０】
Ｓ２１１において、画像合成命令生成部２１８は画像合成命令を生成する。画像合成命令は、レンダリング部２２０が解釈可能な描画命令であり、レンダリング部２２０に対して圧縮された画像データを伸長することや、オブジェクトの重なりが発生している場合に画素データを合成することなどを指示する。
【００４１】
Ｓ２１２において、全ての画素について処理が完了したか否かが判定される。全ての画素について処理が完了した場合（Ｓ２１２：ＹＥＳ）はＳ２１３に移行する。全ての画素について処理が完了していない場合（Ｓ２１２：ＮＯ）はＳ２０８に戻り、未処理の画素のなかから着目画素が選択され、Ｓ２０８〜Ｓ２１２の処理が繰り返される。
【００４２】
Ｓ２１３において、画像圧縮部２１４は、フラットニング処理で生成されたラスタ画像データを圧縮する。このとき、画像圧縮部２１４は、フラットニング処理で生成された画像データを走査して検出したＲＧＢ画素値に基づいて圧縮手法を決定する。例えば、画像データが自然画などの低コントラストの画像を表す場合はＬｏｓｓｙ圧縮が選択され、画像データがグラフィックなどの高コントラストの画像を表す場合はＬｏｓｓｌｅｓｓ圧縮が選択される。このとき、フラットニング処理で生成されたラスタ画像データが圧縮されると、圧縮前のラスタ画像データが画素ごとに有している属性値が失われてしまう。
【００４３】
Ｓ２１４において、描画命令生成部２１６は、描画命令生成処理で生成された描画命令を出力する。出力された描画命令はレンダリング情報に追加されてＲＡＭ１０２に書き込まれる。
【００４４】
一方、着目領域がフラットニング処理の対象領域ではない場合（Ｓ２０２：ＮＯ）、描画命令生成部２１６は、ＰＤＬデータに含まれていた、オブジェクトの描画を指示する描画命令や、背景の描画に関する描画条件などを出力する。オブジェクトの座標情報などと同様に、これらもレンダリング情報に追加されてＲＡＭ１０２に書き込まれる。
【００４５】
Ｓ２１５において、全ての領域について処理が完了したか否かが判定される。全ての領域について処理が完了した場合（Ｓ２１５：ＹＥＳ）はＳ２１６に移行する。全ての領域について処理が完了していない場合（Ｓ２１５：ＮＯ）はＳ２０１に戻り、未処理の領域のなかから着目領域が選択され、Ｓ２０１〜Ｓ２１５の処理が繰り返される。
【００４６】
Ｓ２１６において、中間データ生成部２１０は、Ｓ２０１〜Ｓ２１５で生成されたレンダリング情報を中間データに格納する。Ｓ２１６が終了すると、再び図３のフローチャートに戻る。
【００４７】
以下、図６の模式図を参照して中間データの具体例について説明する。中間データ６１１には、Ｓ２１１で生成された画像合成命令６１２と、Ｓ２０７で決定されたデフォルト属性を示す属性情報６１３と、Ｓ２１０で生成された属性マスク命令６１４とが含まれている。  
【００４８】
画像合成命令６１２は、レンダリング部２２０に対して、（ｘ，ｙ）＝（０，０）〜（ｉ，ｊ）に圧縮された画像データを伸長することを指示する。  
【００４９】
属性情報６１３は、レンダリング部２２０によって参照される情報であり、（ｘ，ｙ）＝（０，０）〜（ｉ，ｊ）の画素はイメージ属性を有することを示す。後述のレンダリング処理において、レンダリング部２２０は、属性情報６１３を参照することで、伸長された画像データの画素ごとにイメージ属性を示す属性値（１１）を対応付けることができる。  
【００５０】
属性マスク命令６１４は、レンダリング部２２０に対して、（ｘ，ｙ）＝（０，０）〜（ｘ１，ｙ１）を背景属性に、（３０，１０）〜（ｘ２，ｙ２）をテキスト属性に、（ｘ３，ｙ３）〜（ｉ，ｊ）を背景属性に上書きすることを指示する。  
【００５１】
図６において、画像合成命令６１２と属性情報６１３とを囲む１点鎖線は、画像合成命令６１２と属性情報６１３とが、フラットニング処理で生成された画像データと属性データとに基づいてそれぞれ生成されていることを表している。また、属性情報６１３と属性マスク命令６１４とを囲む点線は、属性情報６１３と属性マスク命令６１４とが画素ごとに対応関係を有していることを表している。また、画像合成命令６１２と属性マスク命令６１４とは階層的に示されている。階層は、レンダリング処理が実行される順番を表しており、本実施形態では、下側階層の画像合成命令６１２が先に、上側階層の属性マスク命令６１４が後に実行される。
【００５２】
図５は本実施形態におけるレンダリング処理例を示すフローチャートである。以下、図５のフローチャートを参照して本実施形態のレンダリング処理の詳細について説明する。
【００５３】
Ｓ３０１において処理対象の階層が選択される。本実施形態では、図６に示される通り、画像合成命令６１２が含まれる階層が先に、属性マスク命令６１４が含まれる階層が後に選択される。なお、レンダリング処理の対象となる階層は３階層以上であってもよい。
【００５４】
Ｓ３０２において着目領域が選択される。レンダリング処理の対象となる領域は、主走査方向に順番に選択されるのが一般的であるが、実施形態はこれに限定されず任意の順番で選択されてもよい。また、レンダリング処理の対象となる領域は画素単位であっても、複数の画素からなる領域単位であってもよい。
【００５５】
Ｓ３０３において、レンダリング部２２０は、中間データの記述に基づいて着目領域に対応する画像合成命令が存在するか否かを判定する。画像合成命令が存在する場合（Ｓ３０３：ＹＥＳ）はＳ３０４に移行する。画像合成命令が存在しない場合（Ｓ３０３：ＮＯ）はＳ３０５に移行する。
【００５６】
Ｓ３０４において、レンダリング部２２０は、画像合成命令に従って画素値を生成する。具体的には、中間データを生成する段階で圧縮されていた画像データが伸長されて、着目領域における画素の画素値として出力される。このとき、レンダリング部２２０は、中間データに含まれる属性情報に従って、デフォルト属性を、着目領域における全ての画素に対応付ける。中間データに含まれる属性情報を読み込み、着目領域における全ての画素に対応付ける処理は、画像合成命令を解釈（デコード）して画素値を生成する処理と比較して、定型的な処理であると言える。このような対応付け処理を実行する処理部を回路などのハードウェアで実装することにより、レンダリング処理をより高速化することができる。また、Ｓ３０４において、フラットニング処理が行われていない領域に対してレンダリング処理を実行する場合、従来手法と同様にレンダリング処理が行われる。例えば、最下層の領域をレンダリングして得られた暫定画素値を、その上位階層の領域をレンダリングして得られた画素値と合成することにより、出力画素値を決定する、などの処理が行われる。
【００５７】
一方、着目領域に対応する画像形成命令が存在しない場合（Ｓ３０３：ＮＯ）、Ｓ３０５において、レンダリング部２２０は、中間データの記述に基づいて着目領域に対応する属性マスク命令が存在するか否かを判定する。属性マスク命令が存在する場合（Ｓ３０５：ＹＥＳ）はＳ３０６に移行する。属性マスク命令が存在しない場合（Ｓ３０５：ＮＯ）はＳ３０７に移行する。
【００５８】
Ｓ３０６において、レンダリング部２２０は、Ｓ３０５で読み出した属性マスク命令に従って、着目領域に対応付けられているデフォルト属性を、デフォルト属性とは異なる属性に上書きする。
【００５９】
一方、着目領域に対応する属性マスク命令が存在しない場合（Ｓ３０５：ＮＯ）、Ｓ３０７において、Ｓ３０４で説明した従来手法と同様のレンダリング処理が実行される。
【００６０】
Ｓ３０８において、レンダリング部２２０は、全ての領域について処理が完了したか否かを判定する。全ての領域について処理が完了していない場合（Ｓ３０８：ＮＯ）はＳ３０２に戻り、未処理の領域のなかから着目領域が選択され、Ｓ３０２〜Ｓ３０８の処理が繰り返される。全ての領域について処理が完了した場合（Ｓ３０８：ＹＥＳ）はＳ３０９に移行する。
【００６１】
Ｓ３０９において、レンダリング部２２０は、全ての階層について処理が完了したか否かを判定する。全ての階層について処理が完了していない場合（Ｓ３０９：ＮＯ）はＳ３０１に戻り、未処理の階層のなかから処理対象となる階層が選択され、Ｓ３０１〜Ｓ３０９の処理が繰り返される。全ての階層について処理が完了した場合（Ｓ３０９：ＹＥＳ）は再び図３のフローチャートに戻る。
【００６２】
ここで、図６の模式図を参照して、レンダリング処理で生成されたラスタ画像データの具体例について説明する。ラスタ画像データ６２１には、レンダリング処理で生成されたラスタ画像データの内容の具体例が示されている。このラスタ画像データ６２１には、フラットニング処理で生成されたラスタ画像データと同様に、ＲＧＢ８ビットの画素値を有する画像データ６２２と、２ビットの属性値を有する属性データ６２３とが含まれる。
【００６３】
図８は本実施形態における画像処理手法の効果を示す図である。  
図８（ａ）では、従来の画像処理手法において生成される画像合成命令８０１を模式的に示した図である。画像合成命令８０１は、レンダリング部２２０に対して属性値を合成することを指示する描画命令である。上述の通り、フラットニング処理で生成されたラスタ画像データが圧縮された場合、画素ごとの属性値が失われてしまう。従来の画像処理手法では、喪失した属性値を補完するために、レンダリング部２２０は画素位置（ｘ，ｙ）＝（０，０）〜（ｉ，ｊ）それぞれに対して、画像合成命令８０１で指定されている属性値を合成する。図８（ａ）では、ラスタ画像データにおける画素位置と、画素位置それぞれに対して合成される属性値との対応関係が示されている。
【００６４】
図８（ｂ）では、本実施形態の画像処理手法において生成される属性情報６１３と、属性マスク命令６１４とを模式的に示した図である。本実施形態のレンダリング部２２０は、描画命令を解釈することなく、属性情報６１３が示すデフォルト属性を、画素位置（ｘ，ｙ）＝（０，０）〜（ｉ，ｊ）に対応付ける。次いで、レンダリング部２２０は、画素位置（ｘ，ｙ）＝（０，０）のように、非デフォルト属性を有する画素位置についてのみ、属性マスク命令６１４を解釈して属性値を上書きする。図８（ｂ）の属性マスク命令６１４では、非デフォルト属性を有する画素位置と、画素位置それぞれに対して上書きされる属性値との対応関係が示されている。図８（ａ）（ｂ）に示される通り、イメージ属性値の合成を指示する画像合成命令を生成する必要がないため、中間データのデータ量と、レンダリング処理の処理負荷を軽減することができる。
【００６５】
このように、本実施形態の画像処理手法では、フラットニング処理で生成されたラスタ画像データのデフォルト属性と、非デフォルト属性を有する画素について属性マスク命令とが生成される。そのため、本実施形態の画像処理手法によれば、中間データのデータ量と、レンダリング処理の処理負荷とを軽減することができる。
【００６６】
［実施形態２］
実施形態１では、中間データを生成する段階でフラットニング処理が行われる例について説明した。しかしながら、ＰＤＬデータの種別によっては、予め属性が付与されたオブジェクトを含む場合がある。本実施形態では、オブジェクトが有する属性に基づいてデフォルト属性を決定する例について説明する。なお、本実施形態の説明において、実施形態１と同一の構成については、同一符号を付し、重複する内容については説明を簡略化または省略する。
【００６７】
図９は本実施形態における画像形成装置１００の機能構成例を示すブロック図である。実施形態１の機能構成と異なり、本実施形態の画像形成装置１００は、フラットニング判定部２１２と、フラットニング部２１３と、画像圧縮部２１４とに代えて、属性判定部９０１と、デフォルト属性決定部９０２とを備える。属性判定部９０１は、着目領域に属性を有するオブジェクトが含まれているか否かを判定する。デフォルト属性決定部９０２は、画素位置に対応付けられた属性のカウント結果に基づいてデフォルト属性を決定する。
【００６８】
図１０は本実施形態における中間データ生成手順例を示すフローチャートである。  
まず、属性判定処理について説明する。  
Ｓ１００１において、属性判定部９０１は、着目領域には属性を有するオブジェクトが含まれているか否かを判定する。着目領域に属性を有するオブジェクトが含まれている場合（Ｓ１００１：ＹＥＳ）はＳ１００２に移行する。着目領域に属性を有するオブジェクトが含まれていない場合（Ｓ１００１：ＮＯ）はＳ２１４に移行する。
【００６９】
Ｓ１００２において、画素位置ごとに属性が対応付けられる。属性判定部９０１は、オブジェクトの座標からどの画素位置にどの属性が対応付けられるかを認識することができる。また、同じ画素位置に複数のオブジェクトが存在する場合、オブジェクトの階層などの所定の優先順位に従って、当該画素位置に対応付けられる属性が決定される。
【００７０】
次いで、デフォルト属性決定処理について説明する。  
Ｓ１００３において、属性値を読み出す対象となる着目画素位置が選択される。
【００７１】
Ｓ１００４において、デフォルト属性決定部９０２は、着目画素位置の属性をカウントする。具体的には、着目画素位置の属性値を特定して当該属性値に対応する属性がカウントアップされる。
【００７２】
Ｓ１００５において、デフォルト属性決定部９０２は、全ての画素位置について処理が完了したか否かを判定する。全ての画素位置について処理が完了した場合（Ｓ１００５：ＹＥＳ）はＳ１００６に移行する。全ての画素位置について処理が完了していない場合（Ｓ１００５：ＮＯ）はＳ１００３に戻り、未処理の画素位置のなかから着目画素位置が選択され、Ｓ１００３〜Ｓ１００５の処理が繰り返される。
【００７３】
Ｓ１００６において、デフォルト属性決定部９０２は、属性のカウント結果に基づいてデフォルト属性を決定する。このとき、デフォルト属性決定部９０２は、最も多くカウントされた属性を基準としてデフォルト属性を決定する。
【００７４】
次いで、描画命令生成処理について説明する。  
Ｓ１００７において、属性値を読み出す対象となる着目画素位置が選択される。
【００７５】
Ｓ１００８において、属性マスク命令生成部２１７は、着目画素位置の属性がデフォルト属性であるか否かを判定する。着目画素位置の属性がデフォルト属性である場合（Ｓ１００８：ＹＥＳ）はＳ１００９をスキップしてＳ１０１０に移行する。着目画素位置の属性がデフォルト属性ではない場合（Ｓ１００８：ＮＯ）はＳ１００９に移行する。
【００７６】
Ｓ１００９において、属性マスク命令生成部２１７は属性マスク命令を生成する。属性マスク命令は、レンダリング部２２０が解釈可能な描画命令であり、レンダリング部２２０に対してデフォルト属性値を所望の属性値に上書きすることを指示する。
【００７７】
Ｓ１０１０において、画像合成命令生成部２１８は画像合成命令を生成する。画像合成命令は、レンダリング部２２０が解釈可能な描画命令であり、レンダリング部２２０に対して画素データを合成することを指示する。
【００７８】
Ｓ１０１１において、全ての画素位置について処理が完了したか否かが判定される。全ての画素位置について処理が完了した場合（Ｓ１０１１：ＹＥＳ）、実施形態１で行われていた画像データの圧縮処理（Ｓ２１３）は行われずにＳ２１４に移行する。全ての画素位置について処理が完了していない場合（Ｓ１０１１：ＮＯ）はＳ１００７に戻り、未処理の画素位置のなかから着目画素位置が選択され、Ｓ１００７〜Ｓ１０１１の処理が繰り返される。Ｓ２１４以降の手順は実施形態１と同様である。
【００７９】
以上説明した通り、本実施形態の画像処理手法では、入力されたＰＤＬデータに予め属性が付与されているオブジェクトが含まれている場合であっても、オブジェクトが有する属性に基づいてデフォルト属性を決定することができる。そのため、実施形態１と同様に、中間データのデータ量と、レンダリング処理の処理負荷とを軽減することができる。
【００８０】
（その他の実施例）
上述の実施形態において、属性は、画像処理部１０５に入力されたＰＤＬデータに含まれるオブジェクトの種類である例について説明した。しかしながら、属性はオブジェクトの種類に限定されず、例えば、レンダリング処理が実行された場合に生成されるラスタ画像データが表す画像の透過度であってもよい。画像データに透過度を合成するために必要な中間データのデータ量と、レンダリング処理の処理負荷とを軽減することができる。
【００８１】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８２】
１００・・画像形成装置
１０１・・ＣＰＵ
１０５・・画像処理部
１０６・・印刷データ生成部
１０７・・印刷部
２１０・・中間データ生成部
２１５・・デフォルト属性決定部
２１７・・属性マスク命令生成部
２２０・・レンダリング部
【図１】
2019111677.tif 000003
【図２】
2019111677.tif 000004
【図３】
2019111677.tif 000005
【図４】
2019111677.tif 000006
【図５】
2019111677.tif 000007
【図６】
2019111677.tif 000008
【図７】
2019111677.tif 000009
【図８】
2019111677.tif 000010
【図９】
2019111677.tif 000011
【図１０】
2019111677.tif 000012