(57)【要約】【課題】イメージデータに対するフィルタ処理を、その効果を減少させることなく効率的に行う。【解決手段】ＰＤＬデータを解析して得られた中間データをレンダリングするレンダリング処理手段を備えた画像処理装置であって、前記レンダリング手段は、前記中間データの属性がイメージで、且つ、当該イメージの拡大が指定されている場合に、前記イメージのうち印刷結果に反映されるイメージ部分のみにシャープネスフィルタ処理を適用するためのマスクを生成し、前記イメージのデータに対し、レンダリング処理を実行する前に、前記マスクを用いて前記シャープネスフィルタ処理を実行する、ことを特徴とする。【選択図】図６
2014013497.tif 000002
【特許請求の範囲】
【請求項１】
ＰＤＬデータを解析して得られた中間データをレンダリングするレンダリング処理手段を備えた画像処理装置であって、
前記レンダリング手段は、前記中間データの属性がイメージで、且つ、当該イメージの拡大が指定されている場合に、
前記イメージのうち印刷結果に反映されるイメージ部分のみにシャープネスフィルタ処理を適用するためのマスクを生成し、
前記イメージのデータに対し、レンダリング処理を実行する前に、前記マスクを用いて前記シャープネスフィルタ処理を実行する、
ことを特徴とする画像処理装置。
【請求項２】
前記レンダリング手段は、前記マスクを、前記中間データに含まれるクリップ情報に基づいて生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記レンダリング手段は、前記クリップ情報で特定されるクリップ枠に対し、前記指定されている拡大の逆の倍率を掛ける逆倍率処理を行い、当該逆倍率処理後のクリップ枠内の領域に対し前記シャープネスフィルタ処理が適用されるようなマスクを生成することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記レンダリング手段は、前記クリップ情報で特定されるクリップ枠の形状が非矩形の場合、当該クッリプ枠を包含する最小矩形を求め、当該最小矩形に基づいて前記マスクを生成することを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
前記レンダリング手段は、複数の前記中間データにおいて共通する同一のイメージについて生成された複数の前記マスクを統合することを特徴とする請求項１〜４のいずれか1項に記載の画像処理装置。
【請求項６】
前記レンダリング手段は、生成された前記マスクにおけるフィルタ処理実行画素数の、前記イメージにおけるフィルタ処理が可能な画素数に対する割合を求め、求められた当該割合を所定の閾値と比較し、当該割合が前記閾値以上の場合には当該割合が最大値となるような前記マスクを生成することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
ＰＤＬデータを解析して得られた中間データをレンダリングするレンダリング処理手段を備えた画像処理装置における画像処理方法であって、
前記中間データの属性がイメージで、且つ、当該イメージの拡大が指定されている場合に、
前記イメージのうち印刷結果に反映されるイメージ部分のみにシャープネスフィルタ処理を適用するためのマスクを生成するステップと、
前記イメージのデータに対し、レンダリング処理を実行する前に、前記マスクを用いて前記シャープネスフィルタ処理を実行するステップと、
ことを特徴とする画像処理方法。
【請求項８】
コンピュータを、請求項１〜６のいずれか1項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イメージデータに対して効率よくフィルタ処理を適用するための画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
画像処理の従来技術として、イメージデータに対して各種のフィルタ処理を適用することで目視による見栄えを変化させる技術がある。例えば、色の変化部分を強調して、画像内の物体の輪郭を目立たせるシャープネスフィルタ（アンシャープマスクとも呼ばれる）がある。特許文献１は、フィルタ処理の適用範囲を特定の条件判定により自動的に絞り込み、ユーザ操作を簡単にする技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−０７０２６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
画像形成システムにおいてイメージデータにフィルタ処理を適用する場合、画像処理ＡＳＩＣ等のハードリソースを使用して、最終的に印刷結果に反映される部分のみとなっているレンダリング後のラスタデータを対象に行うのが効率的である。しかしながら、レンダリング後のラスタデータにおけるイメージは、解像度の違いなどの理由により、アプリケーションやドライバ等で作成されたイメージ（以下、「元イメージ」と呼ぶ。）から拡大される場合がある。元イメージが拡大されたラスタデータに対してフィルタ処理を施した場合、フィルタ処理の効果は、減少する可能性がある。例えば、元イメージが縦横５倍に拡大されたイメージのラスタデータに対して５×５のフィルタを適用することは、元イメージに換算すると１×１のフィルタを適用するのにほぼ等しい。これを避けるためには、拡大率に合わせたフィルタ処理や、最終的に印刷結果に反映されない部分も含んだレンダリング前のイメージデータに対するフィルタ処理が必要となる。しかしながら、拡大率に合わせたフィルタ処理を行ったり、レンダリング前のイメージデータにフィルタ処理を適用することは、パフォーマンスの低下に繋がってしまう。例えば、拡大率に合わせてフィルタも拡大すると、フィルタ処理そのもののパフォーマンスが低下する。また、レンダリング前のイメージデータに対しフィルタ処理を適用すると、無駄なフィルタ処理が発生してしまう。レンダリング前のイメージデータには、クリップ情報（枠で表現され、その内部領域のみを印刷結果に反映させるための情報）によって排除されてしまうデータ部分、すなわち、最終的な印刷結果に反映されないデータ部分を含み得るためである。
【０００５】
このような問題に上述の特許文献１に記載された発明は対処することができない。
【課題を解決するための手段】
【０００６】
本発明に係る画像処理装置は、ＰＤＬデータを解析して得られた中間データをレンダリングするレンダリング処理手段を備えた画像処理装置であって、前記レンダリング手段は、前記中間データの属性がイメージで、且つ、当該イメージの拡大が指定されている場合に、前記イメージのうち印刷結果に反映されるイメージ部分のみにシャープネスフィルタ処理を適用するためのマスクを生成し、前記イメージのデータに対し、レンダリング処理を実行する前に、前記マスクを用いて前記シャープネスフィルタ処理を実行する、ことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、イメージデータに対するフィルタ処理を、その効果を減少させることなく効率的に行うことができる。
【図面の簡単な説明】
【０００８】
【図１】本実施例に係る画像形成システムのシステム構成例を示した図である。
【図２】画像形成装置のコントローラユニットの内部構成を示す図である。
【図３】画像形成装置のＣＰＵで実行されるアプリケーションプログラムの機能ブロック図である。
【図４】画像形成装置において印刷ジョブが処理される様子を説明する図である。
【図５】拡大されたイメージとクリップ枠との関係を説明する図である。
【図６】実施例１に係るレンダリング処理の流れを示すフローチャートである。
【図７】クリップ情報からフィルタ適用マスクを生成する様子を示した図である。
【図８】回転情報を含む場合における、クリップ情報からフィルタ適用マスクを生成する様子を示した図である。
【図９】画像処理ＡＳＩＣにおける画像処理の流れを示すフローチャートである。
【図１０】実施例２に係る、クリップ枠の形状を矩形に変換してからフィルタ適用マスク生成する処理の流れを示すフローチャートである。
【図１１】非矩形のクリップ枠を包含する最小矩形を求める様子を説明する図である。
【図１２】同一の元イメージに対し倍率を変化させたパターン及び同倍率で変化させつつ右４５度回転させたパターンで同一ページ内に配置した印刷ジョブを対象として、ＰＤＬ処理した様子を示す図である。
【図１３】実施例３に係るレンダリング処理の流れを示すフローチャートである。
【図１４】クリップ情報毎に複数のフィルタ適用マスクが生成される様子を示す図である。
【図１５】実施例４に係るレンダリング処理の流れを示すフローチャートである。
【図１６】面積比率が0.5となるようなイメージデータとフィルタ適用マスクの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【００１０】
[画像形成システムの構成]
図１は、本実施例に係る画像形成システムのシステム構成例を示した図である。画像形成システム１００は、ネットワーク１３０を介して接続されたクライアントＰＣ１２０と画像形成装置１１０から成る。ここで紹介する画像形成システム１００は一例であり、例えば、ネットワーク１３０を介さず、直接にＵＳＢメモリやＳＤカード等の記憶媒体を接続することで印刷可能な画像形成装置においても、本発明は適用可能である。
【００１１】
[クライアントＰＣの構成]
クライアントＰＣ１２０は、様々なアプリケーション１２１を用いてイメージデータを含む印刷データを作成・編集する。ここで、印刷データには、イメージ、グラフィック、テキスト等の属性の異なるデータが含まれる。アプリケーション１２１で作成された印刷データは、印刷ドライバ１２２を通し、ページ記述言語（ＰＤＬ：Page Description Languageの略。）で記述されたデータ（ＰＤＬデータ）に変換される。ＰＤＬには、一般的にPostScript、PDF、XPS等の様々な言語が存在する。ＰＤＬデータは、付加情報（ファイル名、ユーザ名、印刷時間、ＩＰアドレスなどの情報）と共に、印刷ジョブとして画像形成装置１１０へネットワーク１３０を介して送信される。
【００１２】
[画像形成装置の構成]
画像形成装置１１０は、データ送受信部１１１、コントローラユニット１１２、操作部１１３、給紙部１１４、画像形成部１１５、排紙部１１６を備える。なお、画像形成装置１１０は、印刷機能を有していればよく、複写機や複合機など様々なタイプの装置が該当するものである。
【００１３】
データ送受信部１１１は、クライアントＰＣ１２０からネットワーク１３０を介して受信した印刷ジョブをコントコーラユニット１１２へ送る。また、データ送受信部１１１は、コントローラユニット１１２からの印刷結果をクライアントＰＣ１２０や操作部１１３へ送る。
【００１４】
コントローラユニット１１２は、装置各部を統括的に制御し、印刷ジョブを処理するユニットであり、独立した画像処理装置としても成立し得るものである。
【００１５】
操作部１１３は、印刷設定の参照・変更や印刷ジョブの状態確認等、ユーザが各種操作を行うためのユーザインタフェースである。この操作部１１３は、例えばタッチスクリーン機能を有する液晶ディスプレイで構成され、受信した印刷ジョブの状態等の各種情報を表示すると共に、タッチスクリーンによってユーザ指示を受け付ける。
【００１６】
給紙部１１４は、紙等の記録媒体を給紙するための各種手段、例えばカセット給紙段、手差し給紙段、ＰＯＤデッキ等で構成される。
【００１７】
画像形成部１１５は、レーザや感光ドラム、定着器等の画像形成に必要なデバイスで構成され、印刷画像を紙等の記録媒体に形成する。
【００１８】
排紙部１１６は、画像形成部１１５で画像が形成（印刷）された紙等を排紙する。
【００１９】
図２は、コントローラユニット１１２の内部構成を示す図である。コントローラユニット１１２は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、ＨＤＤ２０４、画像処理ＡＳＩＣ２０５、システムバス２０６から成る。
【００２０】
ＣＰＵ２０１は、ＲＯＭ２０３又はＨＤＤ２０４に格納されたプログラム（ブートプログラム、オペレーティングシステム、アプリケーションプログラム）をＲＡＭ２０２上に読み出し、実行する。
【００２１】
ＨＤＤ２０４は、各種データを格納する記憶手段であり、印刷ジョブ実行時の一時記憶領域としても使用される。アプリケーションに従って演算された演算結果等は、ＲＡＭ２０２やＨＤＤ２０４に格納される。
【００２２】
画像処理ＡＳＩＣ２０５は、アプリケーションプログラムによって生成されたレンダリング後のラスタデータに各種の画像処理を施す。画像処理には、シャープネスフィルタのようなフィルタ処理や、色の濃度を0%、100%の２極に変換（２値化）するハーフトーン処理などが含まれる。画像処理ＡＳＩＣ２０５は、画像処理専用の集積回路であるため、ＣＰＵ２０１で実行されるアプリケーションプログラムよりも高速な画像処理を実行できる。
【００２３】
図３は、ＣＰＵ２０１で実行されるアプリケーションプログラムの機能ブロック図である。アプリケーションプログラム３００は、本体制御部３０１、ＰＤＬ処理部３０２、ＲＩＰ（Raster Image Processer）部３０３から成る。これら各部について図４を参照しつつ説明する。
【００２４】
クライアントＰＣ１２０から送られた印刷ジョブ４００は、本体制御部３０１によってＰＤＬ処理部３０２へ送られる。
【００２５】
ＰＤＬ処理部３０２は、受け取った印刷ジョブ４００に含まれているＰＤＬデータ４０１を解析し、中間データとしてのＤＬ(DisplayList)データ４０２及び４０３を生成し、生成したＤＬデータ４０２及び４０３をＲＩＰ部３０３へ送る。ここで、ＤＬデータについて詳しく説明する。
【００２６】
ＤＬデータ４０２及び４０３には、ＰＤＬデータ４０１に含まれていたレンダリング処理に関係する情報（属性、位置、倍率、回転、クリップ等）が含まれる。例えば、ＤＬデータ４０３の場合、属性：イメージ、位置：（X2,Y2）、倍率：XY共に2.0倍、回転：右へ45度、クリップ：（X3,Y3）…(Xn,Yn)の頂点を結んだ枠、の各情報が含まれる。印刷結果に反映させる範囲を指定するクリップ情報は、その形状を特定するための複数の座標（X3,Y3）…（Xn,Yn）で構成され、各座標点を結んだ枠（以下、「クリップ枠」と呼ぶ。）内に含まれるイメージ部分のみが印刷対象となる。なお、クリップ情報は点座標で有る必要はなく、例えば線分式で表しても良い。元イメージに対する倍率を指定する倍率情報は、XとYで異なる場合があり、クリップ情報には反映されない。クリップ情報を含まないＤＬデータの場合、拡大等されたイメージの全部が印刷結果に反映される。もちろん、倍率、回転、クリップに関する各情報は、ＤＬデータに含まれない場合もあり得る。
【００２７】
以上説明したとおり、クリップ情報を含むＤＬデータの場合は、印刷結果に反映されない部分のイメージデータを含み得ることになる。図５は、倍率情報によって拡大されたイメージとクリップ枠との関係を説明する図である。ここで、元イメージ５００の左上の頂点座標（X2,Y2）とクリップ情報で特定される矩形状のクリップ枠５０１の左上の頂点座標（X3,Y3）とは、同一座標であるとする。いま、クリップ情報の各座標（X3,Y3）（X4,Y4）（X5,Y5）（X6,Y6）を結んだ矩形状のクリップ枠５０１内に元イメージ５００が収まっている（クリップ枠５０１の縦横サイズ＞元イメージ５００の縦横サイズ）。この状況において、ＤＬデータにＮ倍（Ｎ＞1.0）に拡大する旨の倍率情報が含まれている場合、倍率処理後のイメージの縦横サイズは、クリップ枠５０１より大きくなることがある。例えば、図５のように２倍に拡大する旨の倍率情報が含まれていた場合、倍率処理後のイメージ５０３はクリップ枠５０１内に収まらない。このような場合、クリップ枠内に収まらなかったイメージ部分（破線で示される部分）５０４が、印刷結果に反映されないことになる。
【００２８】
ＲＩＰ部３０３は、受け取った中間データ（ここではＤＬデータ４０２及び４０３）を基にレンダリング処理を実行し、全データを平坦化したラスタ画像４０４（ラスタデータ）を生成する。その際、ＲＩＰ部３０３は、ＤＬデータ４０３に含まれる倍率情報に従って拡大／縮小処理を、回転情報に従って回転処理を、クリップ情報に従って切り抜き処理を実行する。さらに、ＲＩＰ部３０３は、画像処理用の属性情報４０５を生成する。画像処理用属性情報４０５には、ラスタ画像４０４のどの位置にどのような属性の描画が存在するのかを示す情報を含む。生成されたラスタ画像４０４と画像処理用属性情報４０５は画像処理ＡＳＩＣ２０５に送られ、そこで各属性に沿った画像処理が施されて、印刷画像４０６が生成される。例えば、イメージ属性部分のラスタ画像４０４に対してはシャープネスフィルタ処理やハーフトーン処理などの画像処理が実行される。そして、生成された印刷画像４０６は本体制御部３０１に送られ、紙等の記録媒体に印刷される。
【００２９】
[シャープネスフィルタ処理]
シャープネスフィルタ処理（以下、「フィルタ処理」と呼ぶ。）とは、一般的には、イメージデータの任意の画素を選択し、選択された画素を中心としてその周辺の画素から色情報を取得し、その色情報から中心画素の色情報を調整する処理を意味する。例えば、５×５のシャープネスフィルタの場合、イメージデータから５×５の画素群を取得し、その中心画素の色情報を周辺の色情報を基に調整する。そのため、イメージのエッジ部分（シャープネスフィルタが５×５の場合、上下左右の各エッジの２画素）の領域においては、その領域の画素を中心とした周辺５×５の画素群が取得できないため、フィルタ処理が実行できないことになる。もちろん、フィルタ処理に必要とする画素数を変更する（例えば、３×３のシャープネスフィルタにする）ことで、この処理不可能な領域は変化する。
【００３０】
次に、ＲＩＰ部３０３における中間データのレンダリング処理について説明する。
【００３１】
図６は、本実施例に係るレンダリング処理の流れを示すフローチャートである。
【００３２】
ステップ６０１において、ＲＩＰ部３０３は、中間データであるＤＬデータに含まれる属性情報を確認し、ＤＬデータの属性がイメージかどうかを判定する。属性がイメージではないと判定された場合、ステップ６０２に進む。一方、属性がイメージであると判定された場合、ステップ６０４に進む。
【００３３】
ステップ６０２において、ＲＩＰ部３０３は、ＤＬデータを基に従来通りのレンダリング処理（倍率、回転、クリップ処理等）を実行する。
【００３４】
ステップ６０３において、ＲＩＰ部３０３は、レンダリングによって生成されたラスタデータについて画像処理用属性情報を生成する。
【００３５】
ステップ６０４において、ＲＩＰ部３０３は、ＤＬデータに含まれる倍率情報を確認し、拡大が指定されているかどうかを判定する。拡大が指定されていない場合（例えば、XY共に等倍或いは縮小が指定されている場合）は、ステップ６０２に移行する。一方、拡大が指定されている場合は、ステップ６０５に進む。なお、ステップ６０４での判定処理によって、例えば倍率情報で等倍が指定されているイメージデータの縦横サイズがクリップ枠の縦横サイズよりも大きい様なケースにおいても、ステップ６０２に移行することになる。つまり、クリップ枠内にイメージデータが収まりきらないケースではあるが、このような場合にフィルタ適用マスクを用いたフィルタ処理がレンダリング処理の前に実行されることはない。このようなケースにおいては、後述の画像処理ＡＳＩＣによるフィルタ処理（図９のフローチャートのステップ９０５）を行えば足りるためである。
【００３６】
ステップ６０５において、ＲＩＰ部３０３は、ＤＬデータにクリップ情報を含むかどうかを判定する。クリップ情報を含まないと判定された場合は、ステップ６０６に進む。一方、クリップ情報を含むと判定された場合は、ステップ６０７に進む。
【００３７】
ステップ６０６において、ＲＩＰ部３０３は、前述したフィルタ処理不可能な領域にフィルタ処理が施されないようにするためのフィルタ適用マスクを生成する。
【００３８】
ステップ６０７において、ＲＩＰ部３０３は、クリップ情報に基づいてフィルタ適用マスクを生成する。図７は、クリップ情報からフィルタ適用マスクを生成する様子を示した図であり、前述の図５で示した例（２倍を指定する倍率情報を持ち、かつクリップ情報も存在する場合）を用いて説明している。まず、４つの頂点座標（X3,Y3）（X4,Y4）（X5,Y5）（X6,Y6）で画定されるクリップ枠５０１に対して、指定された倍率（２倍）の逆の倍率（１／２倍）にする処理がなされる。この逆倍率処理により、元イメージ５００と同じ尺度の領域（以下、逆倍率処理後のクリップ領域を「逆倍率領域」と呼ぶ。）７０１とその各頂点座標（X3,Y3）（X4/N,Y4）（X5/N,Y5/N）（X6,Y6/N）が得られる。そして、この逆倍率領域の座標を基に、元イメージ５００の画素数に対応するデータ配列（画素数と同じ数の0又は1の値を持つ）のフィルタ適用マスク７０２が生成される。具体的には、逆倍率領域７０１の内側にある画素については1を、外側にある画素については0を割り当てて、フィルタ適用マスク７０２を生成する。ここで、前述の[シャープネスフィルタ処理]で説明したとおり、逆倍率領域の内側に位置する画素であっても、フィルタの適用が不可能な画素（エッジ部分など）も存在する。その場合は、逆倍率領域の内側であっても0が割り当てられる。なお、イメージの幅或いは高さの画素数がフィルタ処理に必要な画素数を満たしていないようなケースでは、全画素に対してフィルタ処理を行わないような（全ての画素に0を割り当てた）フィルタ適用マスクが生成されることになる。
【００３９】
また、属性がイメージのＤＬデータは、回転情報を含む場合がある。図８は、回転情報を含む場合における、クリップ情報からフィルタ適用マスクを生成する様子を示した図である。例えば回転情報として「右へ45度」が指定されていた場合、矩形のクリップ枠５０１に対して、「左へ45度」回転させる処理（つまり、指定された向きとは逆の向きに回転させる処理）が、アフィン変換等のアルゴリズムを用いてなされる。この逆回転処理により、逆回転後のクリップ枠（以下、「逆回転クッリプ枠」と呼ぶ。）８０１の各頂点座標（X3,Y3）、（X4’,Y4’）、（X5’,Y5’）、（X6’,Y6’）が得られる。そして、逆回転クリップ枠８０１の内側については1を、外側については0を割り当てて、フィルタ適用マスク８０２を生成する。
【００４０】
図６のフローチャートの説明に戻る。
【００４１】
ステップ６０８において、ＲＩＰ部３０３は、ステップ６０６又はステップ６０７で生成されたフィルタ適用マスクを用いて、ＤＬデータ内のイメージデータに対しフィルタ処理を実行する。具体的には、各画素に対応するフィルタ適用マスクの値を確認し、値が1であれば実施、値が0であれば不実施といった具合に切り替えて、フィルタ処理を行う。
【００４２】
ステップ６０９において、ＲＩＰ部３０３は、フィルタ処理の施されたイメージデータを含むＤＬデータを基に、レンダリング処理を実行する。
【００４３】
ステップ６１０において、ＲＩＰ部３０３は、既にフィルタ処理がされたイメージの領域とフィルタ処理がされていないイメージの領域とを区別可能な画像処理用属性情報を、生成されたラスタデータについて生成する。
【００４４】
ステップ６１１において、ＲＩＰ部３０３は、すべてのＤＬデータの処理を終了したかどうかを判定する。未処理のＤＬデータがあればステップ６０１に戻り、次のＤＬデータの処理を開始する。一方、すべてのＤＬデータの処理が完了していた場合は、本処理を終了する。
【００４５】
このように本実施例においては、所定の条件下、中間データに対し、レンダリング処理の前にフィルタ処理が実行される。
【００４６】
次に、画像処理ＡＳＩＣ２０５における画像処理について説明する。画像処理ＡＳＩＣ２０５では、ＲＩＰ部３０３から受け取ったラスタデータと画像処理用属性情報とに従って、各種の画像処理が実行される。
【００４７】
図９は、画像処理ＡＳＩＣ２０５における画像処理の流れを示すフローチャートである。
【００４８】
ステップ９０１において、画像処理ＡＳＩＣ２０５は、ラスタ画像内の所定の処理対象画素を決定し、当該画素に対応する部分の画像処理用属性情報を取得する。
【００４９】
ステップ９０２において、画像処理ＡＳＩＣ２０５は、取得した画像処理用属性情報で示される属性がイメージであるかどうかを判定する。属性がイメージではなかった場合、ステップ９０３に進む。一方、属性がイメージであった場合は、ステップ９０４に進む。
【００５０】
ステップ９０３において、画像処理ＡＳＩＣ２０５は、グラフィックやテキストなど、イメージ以外の各属性に応じた画像処理を処理対象画素について実行する。
【００５１】
ステップ９０４において、画像処理ＡＳＩＣ２０５は、画像処理用属性情報に基づいて、処理対象画素に対しフィルタ処理が既に施されているかどうかを判定する。フィルタ処理が実施済みであれば、ステップ９０６に進む。一方、フィルタ処理が未実施であれば、ステップ９０５に進む。
【００５２】
ステップ９０５において、画像処理ＡＳＩＣ２０５は、処理対象画素に対しフィルタ処理を実行する。
【００５３】
ステップ９０６において、画像処理ＡＳＩＣ２０５は、属性がイメージの場合に必要となるハーフトーン処理など、フィルタ処理以外の他の画像処理を処理対象画素について実行する。
【００５４】
ステップ９０７において、画像処理ＡＳＩＣ２０５は、ラスタ画像の全ての画素について処理が完了したかどうかを判定する。未処理の画素がある場合はステップ９０１に戻って次の画素を処理対象に設定して、同様の処理を繰り返す。一方、ラスタ画像の全ての画素について処理が完了している場合は、本処理を終了する。
【００５５】
本実施例によれば、倍率情報、回転情報、クリップ情報を含んだイメージデータに対するフィルタ処理の適用範囲が実際に印刷される部分に絞り込まれ、効率的にフィルタ処理を実行することができる。
【実施例２】
【００５６】
実施例１では、クリップ情報を基にフィルタ適用マスクを生成して、レンダリング処理の前にフィルタ処理を行う態様について説明した。次に、クッリプ情報で特定されるクリップ枠の形状が矩形以外の場合に矩形化処理を行う態様を実施例２として説明する。なお、実施例１と共通する部分については説明を省略し、以下では違いが表れる、クリップ情報からフィルタ適用マスク生成する処理の中身を中心に説明する。
【００５７】
図１０は、本実施例に係る、クリップ枠の形状が矩形以外の場合にクリップ枠の形状を矩形に変換してからフィルタ適用マスク生成する処理の流れを示すフローチャートである。本フローチャートで行う処理は、実施例１に係る図６のフローチャートのステップ６０７部分に相当するものである。すなわち、以下で説明する処理に先立って、前述の図６のフローチャートにおける判定処理（ステップ６０１、ステップ６０４及びステップ６０５）のすべてでＹｅｓと判定されていることになる。
【００５８】
ステップ１００１において、ＲＩＰ部３０３は、クリップ情報が示すクリップ枠の形状が矩形以外であるかどうか、具体的には、クリップ情報の各頂点の座標を結んで得られる形状に傾きのある線分が含まれるかどうかを判定する。クリップ枠の形状が矩形以外であると判定された場合は、ステップ１００３に進む。一方、クリップ領域の形状が矩形であると判定された場合は、ステップ１００２に進む。
【００５９】
ステップ１００２において、ＲＩＰ部３０３は、実施例１におけるステップ６０７と同様の方法でフィルタ適用マスクを生成する。
【００６０】
ステップ１００３において、ＲＩＰ部３０３は、クリップ情報内の各座標点から、最小のX座標（Xmin）、最大のX座標（Xmax）、最小のY座標（Ymin）、最大のY座標（Ymax）をそれぞれ求める。
【００６１】
ステップ１００４において、ＲＩＰ部３０３は、求めたXmin、Xmax、Ymin、Ymaxから、クリップ情報のすべての座標点を囲むような最小の矩形を求める。すなわち、非矩形のクリップ枠を包含する最小矩形の各頂点座標（Xmin, Ymin）（Xmax, Ymin）（Xmax,Ymax）（Xmin,Ymax）を求める。図１１は、非矩形のクリップ枠を包含する最小矩形を求める様子を説明する図である。図１１の（ａ）では台形のクリップ枠１１０１に対してこれを包含する最小矩形１１０２が、同様に図１１の（ｂ）では星型のクリップ枠１１０３に対してこれを包含する最初矩形１１０４がそれぞれ求められている。
【００６２】
ステップ１００５において、ＲＩＰ部３０３は、求めた最小矩形を基にフィルタ適用マスクを生成する。
【００６３】
本実施例の場合、このようにして生成されたフィルタ適用マスクを用いて、図６のフローチャートのステップ６０８において、フィルタ処理が実行されることになる。
【００６４】
さらに、ＤＬデータが例えば回転情報を含む場合は、前述の逆回転処理をクリップ枠に施した後に上記矩形化処理を実行することで演算コストが低減される。
【００６５】
本実施例によれば、クリップ情報からフィルタ適用マスクを生成する際に、演算コストのかかる非矩形のクリップ枠の形状を矩形化することで、効率的にフィルタ適用マスクを生成することができる。
【実施例３】
【００６６】
次に、同一ページ内の同一イメージについて複数のフィルタ適用マスクが生成される場合に、これらを１つに統合する態様を実施例３として説明する。
【００６７】
クライアントＰC１２０の印刷ドライバ１２２は、同一のイメージが同一ページ内に複数存在する場合、それぞれの位置、倍率、回転、クリップ情報を記述したＰＤＬデータを生成する。そして、画像形成装置側のＰＤＬ処理部３０２では、同一のイメージデータを含むＰＤＬデータであっても、位置、倍率、回転、クリップ情報が異なっている場合、それぞれについて別個の中間データ（ＤＬデータ）を生成する。図１２は、同一の元イメージに対し倍率を変化させたパターン及び同倍率で変化させつつ右４５度回転させたパターンで同一ページ内に配置した印刷ジョブを対象として、ＰＤＬ処理した様子を示す図である。１．５倍に拡大されたイメージ１２０１と、同じく１．５倍に拡大され且つ右４５度回転したイメージ１２０２とが同じページ内の上下にそれぞれ配置され、それがＰＤＬ処理によって別個のＤＬデータ１２０３／１２０４が生成されている。
【００６８】
上記のとおり、同一ページ内の同一のイメージデータであっても、それぞれについてＤＬデータが生成される。しかしながら、ＲＩＰ部３０３では、同一のイメージデータに関する複数のＤＬデータにおいて倍率情報が共通（つまり、同じ倍率が指定）であれば、別個にフィルタ処理を施す必要はない。
【００６９】
そこで、本実施例では、同一イメージ・同一倍率のイメージデータを持つ中間データのフィルタ適用マスクを統合することで効率的にフィルタ処理を実施する。
【００７０】
なお、実施例１と共通する部分については説明を省略し、以下では差異点である、複数のフィルタ適用マスクを統合する処理を中心に説明する。
【００７１】
図１３は、本実施例に係るレンダリング処理の流れを示すフローチャートである。実施例１に係る図６のフローチャートと共通する部分については同じ参照符号（ステップ）を付し、本実施例に特有の処理（ステップ１３０１〜ステップ１３０３）を追加している。以下、追加されたステップ１３０１〜ステップ１３０３の処理を中心に説明する。
【００７２】
フィルタ適用マスクの生成を終えた後（ステップ６０６或いはステップ６０７）、ステップ１３０１において、ＲＩＰ部３０３は、生成されたフィルタ適用マスクが複数存在しているかどうかを判定する。後述のステップ１３０３を経て、フィルタ適用マスクの生成処理（ステップ６０６又は６０７）が複数回実行されていると、複数のフィルタ適用マスクが存在することになる。複数のフィルタ適用マスクが存在していると判定された場合は、ステップ１３０２に進む。一方、複数のフィルタ適用マスクが存在していないと判定された場合は、ステップ１３０３に進む。
【００７３】
ステップ１３０２において、ＲＩＰ部３０３は、複数のフィルタ適用マスクを統合する処理を実行する。具体的には、０と１の２値で構成されるマスクの場合（図７及び図８参照）、マスク間で対応する位置（同じ位置）にある画素の値の論理和（ＯＲ）を求める処理を行う。
【００７４】
ステップ１３０３において、ＲＩＰ部３０３は、同一ページについて、同一イメージデータかつ同一倍率情報を含むＤＬデータが存在するかどうかを判定する。同一のイメージデータで、かつ、同一の倍率情報を含むＤＬデータが存在する場合、ステップ６０５に戻り、再びフィルタ適用マスクの生成（ステップ６０６又は６０７）を行う。一方、同一のイメージデータで、かつ、同一の倍率情報を含むＤＬデータが存在しない場合は、ステップ６０８に進む。以降の処理は、実施例１と同様である。
【００７５】
本実施例によれば、同一ページ内における同一倍率の同一イメージについてはフィルタ適用マスクが１つに統合されるので、効率的なフィルタ処理が可能となる。
【実施例４】
【００７６】
実施例３では、同一のイメージデータに対し複数の中間データが生成される場合のフィルタ適用マスクの統合について説明した。次に、同一のイメージデータに対し複数の中間データが生成される場合の処理をさらに効率的に行う態様について実施例４として説明する。
【００７７】
図１４は、同一のイメージデータに対して複数のクリップ情報が存在し、クリップ情報毎に複数のフィルタ適用マスクが生成される様子を示す図である。
【００７８】
まず、ＲＩＰ部３０３は、上部の略２／３を印刷対象に指定するクリップ情報を持つイメージデータ１４００に対応するフィルタ適用マスク１４０１を生成する。さらに、ＲＩＰ部３０３は、左下部の略１／５を印刷対象に指定するクリップ情報を持つイメージデータ１４０２に対応するフィルタ適用マスク（不図示）を生成した後、生成済みのフィルタ適用マスク１４０１と統合し、フィルタ適用マスク１４０３を生成する。以降も同様に、異なる内容のクリップ情報を持つイメージデータ１４０４、１４０６、１４０８にそれぞれ対応するフィルタ適用マスクを生成する。そして、当該生成の時点での統合済みフィルタ適用マスクと順次統合したフィルタ適用マスク１４０５、１４０７、１４０９を生成する。
【００７９】
この場合において、それぞれ異なる内容のクリップ情報を持つイメージデータであっても、当該イメージデータにおいて描画される部分（印刷対象となる部分）が、生成・統合済みのフィルタ適用マスクで既に覆われている可能性がある。例えば、図１４の例の場合、イメージデータ１４０６及び１４０８については、統合済みフィルタ適用マスク１４０５が生成された時点で、その描画される部分について既に値１が設定されている。そうなると、イメージデータ１４０６及び１４０８についてフィルタ適用マスクの生成・統合処理を繰り返し行っても、フィルタ適用マスク１４０５からは変化しない（フィルタ適用マスク１４０７、１４０９を参照）。このようなケースでは、イメージデータのフィルタ適用可能な全画素を覆うようなフィルタ適用マスク１４１０を一定の段階で生成して、以降はフィルタ適用マスクの生成・統合処理を実行しない方が、効率的に処理できる。
【００８０】
そこで、本実施例では、イメージデータにおけるフィルタ処理の実行可能な画素数に対する、統合されたフィルタ適用マスクにおけるフィルタ処理実行画素数の割合が、一定の比率を超えた場合に、以降はフィルタ適用マスクの生成や統合を行わないように制御する。
【００８１】
図１５は、本実施例に係るレンダリング処理の流れを示すフローチャートである。実施例３に係る図１３のフローチャートと共通する部分については同じ参照符号（ステップ）を付し、本実施例に特有の処理（ステップ１５０１〜ステップ１５０５）を追加している。以下、追加されたステップ１５０１〜ステップ１５０５の処理を中心に説明する。
【００８２】
ステップ６０４で拡大が指定されていると判定されると、ステップ１５０１において、ＲＩＰ部３０３は、既に生成或いは統合されたフィルタ適用マスクが存在するかどうかを判定する。既にフィルタ適用マスクが存在すると判定された場合、ステップ１５０２に進む。一方、フィルタ適用マスクは存在しないと判定された場合は、クッリプ情報の有無の確認処理に進む（ステップ６０５）。
【００８３】
ステップ１５０２において、ＲＩＰ部３０３は、イメージデータにおけるフィルタ処理の実行可能な画素数に対する、統合されたフィルタ適用マスクにおけるフィルタ処理実行画素数の割合（面積比率）を以下の式（１）から求める。
【００８４】
【数１】
2014013497.tif 000003
【００８５】
ここで、“フィルタ適用マスクのフィルタ処理実行画素数”は、現時点でのフィルタ適用マスクにおいてフィルタ処理の対象となっている画素の数（値1が設定されている画素の数）である。“Ｘ方向総画素数”はイメージデータにおける横（幅）方向の画素の数を指し、“Ｙ方向総画素数”はイメージデータにおける縦（高さ）方向の画素の数を指す。“Ｘ方向適用不可画素数”はイメージデータにおけるフィルタの適用が不可能な横方向の画素の数を指し、“Ｙ方向適用不可画素数”はイメージデータにおけるフィルタの適用が不可能な縦方向の画素の数を指す。
【００８６】
図１６は、上記式（１）による算出の結果、面積比率が0.5となるようなイメージデータとフィルタ適用マスクの一例を示す図である。図１６において、元イメージ１６００は、X方向（幅）の画素数が２２、Y方向（高さ）の画素数が８のイメージデータであるとする。ここで、フィルタ処理に使用するフィルタが３×３のフィルタであったとすると、フィルタの適用には処理対象画素に隣接する周辺１画素が必要となり、元イメージ１６００の上下左右端に位置する１画素に対してはフィルタを適用できない。つまり、上下左右の端１画素ずつがフィルタを適用できない範囲となり、Ｘ方向適用不可画素数及びＹ方向適用不可画素数はそれぞれ２となる。いま、元イメージ１６００に対するクリップ情報では、当該イメージの上半分のみが描画されることになるクリップ枠１６０１が指定されているとする。この場合、上端の１画素分と左右の１画素分をそれぞれ除外した、幅２０画素×高さ３画素の領域をフィルタ適用領域とするフィルタ適用マスク１６０２が生成される。そして、このフィルタ適用マスク１６０２の面積比率が、上記式（１）から、以下のように求められる。
【００８７】
【数２】
2014013497.tif 000004
【００８８】
図１５のフローチャートの説明に戻る。
【００８９】
ステップ１５０３において、ＲＩＰ部３０３は、現時点のフィルタ適用マスクの面積比率が最大値である１．０になっているかどうかを判定する。面積比率が最大値であると判定された場合は、ステップ６０８に進む。その結果、それ以上のフィルタ適用マスクの生成処理や統合処理が行われることはなく、面積比率が最大のフィルタ適用マスクを用いたフィルタ処理が実行されることになる。一方、面積比率が最大値ではないと判定された場合は、ステップ１５０４に進む。
【００９０】
ステップ１５０４において、ＲＩＰ部３０３は、現時点のフィルタ適用マスクの面積比率と予め設定された所定の閾値（例えば、0.8）と比較し、面積比率が閾値以上であるかどうかを判定する。ここで、閾値は、例えばアプリケーションプログラムに内包された固定値としてもよいし、操作部１１３を介してユーザによって任意に設定・変更が可能なようにしてもよい。面積比率が閾値未満であると判定された場合は、ステップ６０５に進む。すなわち、クリップ情報の有無に応じたフィルタ適用マスクの生成（ステップ６０６及び６０７）や、フィルタ適用マスクの統合処理（ステップ１３０１及び１３０２）が適宜実行される。一方、面積比率が閾値以上であると判定された場合は、ステップ１５０５に進む。
【００９１】
ステップ１５０５において、ＲＩＰ部３０３は、現時点のフィルタ適用マスクを面積比率が最大値（つまり、1.0）となるように変更する。もちろん、既にあるフィルタ適用マスクを変更するのではなく、新たに面積比率が1.0のフィルタ適用マスクを生成してこれと差し替えてもよい。
【００９２】
以降の処理は、実施例３と同様である。
【００９３】
なお、本実施例は、中間データが複数ある場合に限定されるものではなく、１つの中間データに複数のクリップ情報が含まれるようなケースにも応用可能であることはいうまでもない。
【００９４】
本実施例によれば、無駄なフィルタ適用マスクの生成・統合処理を省くことができ、効率良くレンダリング処理を実行できる。
【００９５】
（その他の実施形態）
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
2014013497.tif 000005
【図２】
2014013497.tif 000006
【図３】
2014013497.tif 000007
【図４】
2014013497.tif 000008
【図５】
2014013497.tif 000009
【図６】
2014013497.tif 000010
【図７】
2014013497.tif 000011
【図８】
2014013497.tif 000012
【図９】
2014013497.tif 000013
【図１０】
2014013497.tif 000014
【図１１】
2014013497.tif 000015
【図１２】
2014013497.tif 000016
【図１３】
2014013497.tif 000017
【図１４】
2014013497.tif 000018
【図１５】
2014013497.tif 000019
【図１６】
2014013497.tif 000020