(57)【要約】      （修正有）【課題】ＦＩＦＯメモリを利用してのレンダリングにおいて、その一部が除去される背面画像のデータを適切に読み出すことができ、高速な画像形成を実現する。【解決手段】スキャンライン上にあるオブジェクトの輪郭で区切られたスパンに対応するスパンデータを生成するスパン処理手段と、そのスパンにおける描画に不要なオブジェクトの除去処理を行う除去手段と、除去処理後のスパンデータに基づき、ページ単位のビットマップ画像を生成する生成手段と、を備え、生成手段は、ページ内の特定のイメージオブジェクトについてＦＩＦＯメモリを介してそのピクセルデータを取得し、除去処理によって特定のイメージオブジェクトの一部が除去されていた場合には、除去処理後のスパンデータに含まれる当該一部の読み捨て指示に従って、当該一部に対応するピクセルデータをＦＩＦＯメモリから取得した上で破棄することで各スパンの描画に必要なピクセルデータを生成する。【選択図】図５
2019010817.tif 000002
【特許請求の範囲】
【請求項１】
スキャンライン手法によって画像形成するためのレンダリング処理を行う画像処理装置であって、
スキャンライン上にあるオブジェクトの輪郭で区切られたスパンに対応するスパンデータを生成するスパン処理手段と、
生成されたスパンデータに対し、そのスパンにおける描画に不要なオブジェクトの除去処理を行う除去手段と、
前記除去処理後のスパンデータに基づき、各スパンの描画に必要なピクセルデータを用いて、ページ単位のビットマップ画像を生成する生成手段と、
を備え、
前記生成手段は、
ページ内の特定のイメージオブジェクトについて、ＦＩＦＯメモリを介してそのピクセルデータを取得し、
前記除去処理によって前記特定のイメージオブジェクトの一部が除去されていた場合には、前記除去処理後のスパンデータに含まれる当該一部の読み捨て指示に従って、当該一部に対応するピクセルデータを前記ＦＩＦＯメモリから取得した上で破棄することで、各スパンの描画に必要なピクセルデータを生成する
ことを特徴とする画像処理装置。
【請求項２】
前記特定のイメージオブジェクトの圧縮された画像データを伸長してピクセルデータに変換する伸長処理手段をさらに備え、
前記生成手段は、前記伸長処理手段で伸長されたピクセルデータを、前記ＦＩＦＯメモリを介して取得する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記特定のイメージオブジェクトは、ページの背景画像であることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記特定のイメージオブジェクトは、フォールバック処理で生成されるフォールバック画像であることを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記特定のイメージオブジェクトは、地紋印刷における下地地紋画像であることを特徴とする請求項２に記載の画像処理装置。
【請求項６】
前記特定のイメージオブジェクトは、フォームオーバーレイ印刷におけるフォーム画像であることを特徴とする請求項２に記載の画像処理装置。
【請求項７】
前記除去処理によって前記特定のイメージオブジェクトの一部が除去された後のスパンデータに対し、前記読み捨て指示を付加する付加手段をさらに備え、
前記生成手段は、前記付加手段によって読み捨て指示が付加されたスパンデータに基づいてページ単位のビットマップ画像を生成する
ことを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記除去手段が、前記除去処理において、処理対象のスパンに存在するオブジェクトが前記特定のイメージオブジェクトであってその前面に別オブジェクトが重なる場合に、前記特定のイメージオブジェクトにおける当該重なり部分を除去する代わりにその読み捨て指示をスパンデータに付加し、
前記生成手段は、前記除去手段によって読み捨て指示が付加されたスパンデータに基づいてページ単位のビットマップ画像を生成する
ことを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項９】
スキャンライン手法によって画像形成するためのレンダリング処理の方法であって、
スキャンライン上にあるオブジェクトの輪郭で区切られたスパンに対応するスパンデータを生成するステップと、
生成されたスパンデータに対し、そのスパンにおける描画に不要なオブジェクトの除去処理を行うステップと、
前記除去処理後のスパンデータに基づき、各スパンの描画に必要なピクセルデータを用いて、ページ単位のビットマップ画像を生成するステップと、
を含み、
前記ビットマップ画像を生成するステップでは、
ページ内の特定のイメージオブジェクトについて、ＦＩＦＯメモリを介してそのピクセルデータを取得し、
前記除去処理によって前記特定のイメージオブジェクトの一部が除去されていた場合には、前記除去処理後のスパンデータに含まれる当該一部の読み捨て指示に従って、当該一部に対応するピクセルデータを前記ＦＩＦＯメモリから取得した上で破棄することで、各スパンの描画に必要なピクセルデータを生成する
ことを特徴とするレンダリング処理の方法。
【請求項１０】
コンピュータを、請求項１乃至８のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャンライン画像形成手法におけるレンダリング処理に関する。
【背景技術】
【０００２】
従来、印刷対象ページ内に存在するイメージ、グラフィック、テキストといったオブジェクトをスキャンライン単位で画像形成する手法が存在する。このスキャンライン画像形成手法では、ページ内に複数のオブジェクトが含まれる場合は、まず、オブジェクトの輪郭で区切られた閉領域（スパン）を検出する。そして、検出したスパンに含まれる各オブジェクトの合成指示から、各スパンの描画において不要なオブジェクトを除去する処理（陰面除去処理）を行なった上で画像形成がなされる。例えば特許文献１には、不要な重複エッジを消去することでオブジェクトの数を削減し、グラフィックなどのオブジェクトが重なったページを高速に処理する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−００４０３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
印刷指示としてのＰＤＬデータを受け取った印刷装置は、いったん中間データを生成して最終的な印刷データを生成する（レンダリング処理）。この中間データを格納しておくためのメモリ容量はその最大値が予め決められている。例えば、あるページの中間データの生成中に生成済み中間データのサイズが最大値を越える場合、その生成を一旦止め、生成済み中間データからビットマップ形式の画像（フォールバック画像）を生成する。そして、生成済み中間データを削除することでメモリの空きを作り、生成されたフォールバック画像のデータを圧縮し、圧縮後の画像データを中間データとして、空きができたメモリに格納する。そして、当該ページの中間データの生成を再開する。この一連の処理はフォールバック処理と呼ばれる。
【０００５】
フォールバック処理で生成・圧縮されたフォールバック画像のデータをその後に伸長してページ全体のビットマップ画像の生成を行う際、従来は伸張された画像データをＲＡＭ領域に展開してその受け渡しを行っていた。しかしながら、ＲＡＭ領域へのアクセスはバス経由で行なわれるため、その読出し処理に多くの時間を要する。そこで、ＲＡＭ領域に代えて、バスを介さずアクセス可能な先入れ先出し形式のメモリ（以下、ＦＩＦＯメモリ）を、伸長された画像データの受け渡しに利用することが考えられる。ところが、ＦＩＦＯメモリを伸長された画像データの受け渡しに利用する場合、そのままではフォールバック画像の伸長された画像データをスパン単位で適切に読み出すことができない。そして、このような画像データの読み出し不良の問題は、例えば地紋印刷やフォームオーバーレイ印刷の場面でも同様に起こり得る。
【課題を解決するための手段】
【０００６】
本発明に係る画像処理装置は、スキャンライン手法によって画像形成するためのレンダリング処理を行う画像処理装置であって、スキャンライン上にあるオブジェクトの輪郭で区切られたスパンに対応するスパンデータを生成するスパン処理手段と、生成されたスパンデータに対し、そのスパンにおける描画に不要なオブジェクトの除去処理を行う除去手段と、前記除去処理後のスパンデータに基づき、各スパンの描画に必要なピクセルデータを用いて、ページ単位のビットマップ画像を生成する生成手段と、を備え、前記生成手段は、ページ内の特定のイメージオブジェクトについて、ＦＩＦＯメモリを介してそのピクセルデータを取得し、前記除去処理によって前記特定のイメージオブジェクトの一部が除去されていた場合には、前記除去処理後のスパンデータに含まれる当該一部の読み捨て指示に従って、当該一部に対応するピクセルデータを前記ＦＩＦＯメモリから取得した上で破棄することで、各スパンの描画に必要なピクセルデータを生成することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、スキャンライン画像形成手法におけるレンダリングにおいて、ＦＩＦＯメモリを利用した画像データのスパン単位での適切な読み出しを可能にして、より高速な画像形成を実現することができる。
【図面の簡単な説明】
【０００８】
【図１】画像形成装置のハードウェア構成の一例を示す図
【図２】印刷システムにおける印刷処理のシーケンスの一例を示す図
【図３】画像形成装置のソフトウェア構成を示す機能ブロック図
【図４】ＲＩＰの内部構成を示す図
【図５】実施例１に係るレンダリング処理の流れを示すフローチャート
【図６】ＲＩＰ内での各構成要素間のデータの流れを示すシーケンス図
【図７】印刷対象ページとその中間データの具体例
【図８】スパンデータの説明図
【図９】陰面除去後のスパンデータの説明図
【図１０】読み捨て指示付加処理の詳細を示すフローチャート
【図１１】陰面除去後のスパンデータに対して読み捨て指示が付加された状態を示す図
【図１２】ピクセルデータ生成処理の詳細を示すフローチャート
【図１３】変形例に係る陰面除去処理の流れを示すフローチャート
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、本発明を好適な実施例に従って詳細に説明する。なお、以下の実施例において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【実施例１】
【００１０】
まず、本実施例に係る画像形成装置のハードウェア構成について説明する。図１は、画像形成装置のハードウェア構成の一例を示す図である。図１に示す画像形成装置１００は、ホストＰＣ１３０とＬＡＮ１２０を介して接続されている。印刷を行いたいユーザは、ホストＰＣ１３０において印刷対象の文書についての印刷ジョブを生成し、ホストＰＣ１３０からＬＡＮ１２０を介して画像形成装置１００に対して送信する。印刷ジョブにはページ記述言語（Page Description Language）で記述された、文字、写真（イメージ）、図形といったオブジェクトをページ内にどのように配置するかを指定するＰＤＬデータを含んでいる。そのため印刷ジョブは印刷データとも呼ばれる。なお、画像形成装置１００は、ＳＦＰ（Single Function Printer）でも、複数の機能を備えたＭＦＰ（Multi Function Printer）であってもよい。以下、本実施例の画像形成装置１００を構成する各部について説明する。
【００１１】
図１において、破線の矩形は画像形成装置１００のコントローラを示す。コントローラは、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、大容量記憶装置１０４、操作部Ｉ／Ｆ１０６、ネットワークＩ／Ｆ１０７、システムバス１０８、イメージバス１０９Ｉ／Ｆ、ＲＩＰ１１１，デバイスＩ／Ｆ１１３で構成される。ＣＰＵ１０１は各種演算処理を行なうプロセッサであり、画像形成装置１００全体の制御を司る。ＲＡＭ１０２は、ＣＰＵ１０１が動作するためのシステムワークメモリである。また、ＲＡＭ１０２は、ホストＰＣ１３０から受け取った印刷ジョブ内のＰＤＬデータを解釈して生成される中間データを一時的に格納する。また、ＲＡＭ１０２は中間データをレンダリング処理する際の作業領域でもある。ＲＯＭ１０３は、システムのブートプログラムなどを格納する。大容量記憶部１０４は、例えばハードディスクドライブであり、各種処理のためのシステムソフトウェアやホストＰＣ１３０から受信した印刷ジョブを格納する。
【００１２】
操作部１０５は、各種メニューや印刷データ情報等を表示するためのディスプレイ及びユーザが各種入力操作を行うためのボタンやキーを有し、操作部Ｉ／Ｆ１０６を介してシステムバス１０９と接続される。ネットワークＩ／Ｆ１０７は、ＬＡＮ１２０を介してホストＰＣ１３０を含む外部装置との間で各種データ・情報のやり取りを行うインターフェースである。これら各部は、システムバス１０８に接続されている。イメージバスＩ／Ｆ１０９は、システムバス１０８と画像データを高速に転送するイメージバス１１０とを接続するインターフェースであって、データ構造を変換するバスブリッジである。イメージバス１１０には、ＲＩＰ（Raster Image Processor）１１１とプリンタ部１１２が接続されている。ＲＩＰ１１１は、ＣＰＵ１０１からの指示に従って、ＰＤＬデータから生成された中間データ（ＤＬ：Display List）に基づき、プリンタ部１１２での画像形成に供されるラスタ形式の画像データ（ビットマップ画像データ）を生成する。プリンタ部１１２は、ＲＩＰ１１１で生成されたビットマップ画像データをデバイスＩ／Ｆ１１３を介して受け取って、紙等の記録媒体に画像を形成して出力する。
【００１３】
図２は、本実施例に係る、印刷システムにおける印刷処理のシーケンスの一例を示す図である。ユーザは、ホストＰＣ１３０上で印刷を行いたいドキュメントを指定して印刷指示を行う（Ｓ２０１）。すると、ホストＰＣ１３０上のプリンタドライバ（不図示）は、ユーザが印刷指示を行ったドキュメントの印刷ジョブを作成し（Ｓ２０２）、画像形成装置１００に対して印刷ジョブを送信する（Ｓ２０３）。画像形成装置１００は、ホストＰＣ１３０から印刷ジョブを受信すると（Ｓ２０４）、まず、当該印刷ジョブに含まれるＰＤＬの解析処理を行う（Ｓ２０５）。次に、画像形成装置１００は、解析したＰＤＬの情報を元に中間データを生成する（Ｓ２０６）。そして、画像形成装置１００は、生成した中間データに基づいてレンダリング処理を行なって、ビットマップ画像データをページ単位で生成する（Ｓ２０７）。生成されたビットマップ画像データは、所定の画像処理が施されてプリンタ部１１２に転送され、印刷処理が実行される（Ｓ２０８）。
【００１４】
＜画像形成装置のソフトウェア構成＞
図３は、本実施例に係る、画像形成装置１００のソフトウェア構成を示す機能ブロック図である。ＰＤＬ解釈部３１０、中間データ生成部３２０、レンダリング部３３０の3つのモジュールによって、印刷処理における主要な画像処理を実現する。
【００１５】
ＰＤＬ解釈部３１０は、ネットワークＩ／Ｆ１０７を介してホストＰＣ１３０から受信した印刷ジョブ内のＰＤＬを解釈して、ページ情報と当該ページ情報に含まれるオブジェクト情報とを取得する。取得したページ情報とオブクジェト情報は、中間データ生成部３２０に送られる。
【００１６】
中間データ生成部３２０は、ＰＤＬ解釈部３１０から受け取ったページ情報及びオブジェクト情報に基づいて、オブジェクトの描画命令等で構成される中間データを生成する。生成した中間データは、レンダリング部３３０に送られる。
【００１７】
レンダリング部３３０は、中間データ生成部３２０から受け取った中間データに基づいて、ページ単位でビットマップ画像データを生成する。レンダリング部３３０は、スパン処理部３３１、陰面除去処理部３３２、背面画像処理部３３３、ピクセルデータ生成部３３４、合成処理部３３５の5つのモジュールからなる。
【００１８】
スパン処理部３３１は、中間データに基づきスパンデータを生成する。スパンデータは、スキャンライン上にあるオブジェクトの輪郭で区切られた閉領域（スパン）を示す情報と、スパン内のフィル情報とで構成される。
【００１９】
陰面除去処理部３３２は、スパン処理部３３１で生成されたスパンデータに対して、当該スパンに存在するオブジェクトについての合成指示に基づき、その前面に別オブジェクトが重なることで隠れてしまうオブジェクトを取り除く処理（陰面除去処理）を行う。この陰面除去処理によって、他のオブジェクトの背面に来るオブジェクトは削除され、描画に必要な前面に来るオブジェクトのみで構成されるスパンデータが生成される。
【００２０】
背面画像処理部３３３は、他のオブジェクトの背面に来るためにその一部が陰面除去の対象となった特定のイメージオブジェクトが存在するスパンデータに対して、当該一部の画像データの読み捨てを可能にするための処理を行う。本明細書において、このような特定のイメージオブジェクトを、「背面画像」と呼ぶこととする。なお、背面画像のデータは、所定サイズ（メモリ領域を圧迫するサイズ）を越える場合は、圧縮されて所定の記憶部で保持されるのが通常である。本実施例では、背面画像は圧縮された状態で保持されるものとして説明を行うが、これに限定されるものではない。
【００２１】
ピクセルデータ生成部３３４は、各スパンにおいて実際に描画されるオブジェクトを、画素単位で表現した画像データ（以下、ピクセルデータ）を、スパンデータに基づき生成する処理を行う。この場合において、上述の背面画像については、後述の伸長処理回路４２０からＦＩＦＯ形式のデータ転送用メモリ（以下、ＦＩＦＯメモリ）経由で送られてくる伸長されたピクセルデータの不要部分の読み捨てを行いながら取得する。
【００２２】
合成処理部３３５は、ピクセルデータ生成部３３４によって生成されたスパン毎のピクセルデータを合成して、最終的なページのビットマップ画像を生成する処理を行う。
【００２３】
＜ＲＩＰの内部構成＞
続いて、上述のレンダリング部３３０を実現するＲＩＰ１１１について詳しく説明する。図４は、本実施例に係る、ＲＩＰ１１１の内部構成を示す図である。ＲＩＰ１１１は、３つの画像形成プロセッサ、４つのＦＩＦＯメモリ、１つの伸張処理回路で構成される。
【００２４】
第１プロセッサ４０１は、前述のレンダリング部３３０の5つのモジュールのうち、スパン処理部３３１と陰面除去処理部３３２の機能を担う。また、第２プロセッサ４０２は、背面画像処理部３３３とピクセルデータ生成部３３４の機能を担う。また、第３プロセッサ４０３は、合成処理部３３５の機能を担う。そして、各プロセッサの間でなされる各種指示やデータ転送は、第１〜第４のＦＩＦＯメモリ４１１〜４１４を介してなされる。ＦＩＦＯメモリは、ＦＩＦＯ形式による通信によって高速アクセス可能なＳＲＡＭなどで実現される。なお、図４の構成は一例に過ぎない。本実施例では３つのプロセッサを用いているが、プロセッサの数は限定されるものではなく、1つのプロセッサでＲＩＰ１１１内の全モジュールすべてを実現しても良いし、例えば上記5つのモジュールにそれぞれ対応した５つのプロセッサで実現しても良い。
【００２５】
伸長処理回路４２０は、上述した背面画像の圧縮データを伸長する。圧縮の対象となり得る背面画像には、前述のフォールバック処理で生成されるフォールバック画像の他、様々な画像が含まれる。例えばマイクロソフト社のOfficeアプリケーションで作成された文書等のページにおける背景画像、地紋印刷における下地地紋画像、フォームオーバーレイ印刷におけるフォーム画像などである。これらの画像は、そのデータサイズが比較的大きいことから、通常は圧縮されて保持される。伸長後のラスタ形式の画像データは、第２プロセッサ４０２に第２ＦＩＦＯメモリ４１２を介して転送される。ＦＩＦＯメモリによるデータ転送では、転送する側がＦＩＦＯメモリに対してデータを投入する順に、受信する側がデータを取得する。つまり、データ受信側の第２プロセッサ４０２が取得するデータは、転送側の伸長処理回路４２０による投入順によって一意に決まるため、第２プロセッサ４０２はその受信のための事前準備することが可能で、高速なデータ取得が可能となる。但し、ＦＩＦＯメモリによるデータ転送では、送信されてくるデータの一部が不要な場合でも、データ受信側において一旦は当該不要部分のデータを取得しないとそれ以降に送信されてくる必要部分のデータを取得できないという制約がある。本発明は、このようなＦＩＦＯメモリに内在する制約を前提とするものである。なお、データ受信のための事前準備やデータの転送制御に関しては、ＦＩＦＯメモリ自体に制御のための仕組みがハード的に組み込まれているものとする。また、ＲＩＰ１１１内の構成の全部又は一部（例えば伸長処理回路４２０）を、ソフトウェア的に実現してもよい。
【００２６】
＜印刷処理全体の流れ＞
本実施例の特徴であるレンダリング処理の説明に入る前に、画像形成装置１００における印刷処理全体の流れを確認しておく。印刷処理は、ＲＯＭ１０３内に格納された所定のプログラムを読み出してＲＡＭ１０２へロードし、ＣＰＵ１０１がこれを実行することで実現される。
【００２７】
ホストＰＣ１３０から印刷ジョブが送信されると、まず、ＰＤＬ解釈部３１０において、印刷ジョブに含まれるＰＤＬの解析処理がなされる。そして、中間データ生成部３２０において、解析結果に基づき中間データが生成される。この際、中間データを格納するためのメモリ領域の容量が不足すると、前述のフォールバック処理が実行される。すなわち、中間データ用のメモリ領域に格納された中間データの総量が所定の閾値を超えたと判断されると、まずページ内の複数のオブジェクトの一部分に対応するビットマップ形式の画像（フォールバック画像）が生成される。生成されたフォールバック画像は、ＪＰＥＧ圧縮などの圧縮処理によってデータサイズを小さくした上で、中間データ用のメモリ領域に格納される。次に、ページ内の残りのオブジェクトから、圧縮後のフォールバック画像を背景として含む中間データが生成され、中間データ用のメモリ領域に格納される。その後、最終的な中間データに基づき、レンダリング部３３０においてページ全体のビットマップ画像が生成される。この場合において、例えば中間データ生成段階でフォールバック処理が実行されていれば、圧縮されたフォールバック画像を伸長した上で、当該フォールバック画像を背景としたページ単位のビットマップ画像が生成されることになる。生成されたページ単位のビットマップ画像は、所定の画像処理が施された後、プリンタ部１１２に転送されて印刷処理が実行される。以上が、画像形成装置１００における印刷処理全体の流れである。
【００２８】
＜レンダリング処理の詳細＞
次に、本実施例の特徴である、ＲＩＰ１１１が行うレンダリング処理について詳しく説明する。図５は本実施例に係るレンダリング処理の流れを示すフローチャート、図６はＲＩＰ１１１内での各構成要素間のデータの流れを示すシーケンス図である。また、図７は、印刷対象ページとその中間データの具体例である。中間データ生成部３２０から中間データがＲＩＰ１１１に入力されると、図５のフローに示す一連の処理が実行される。中間データに従って最終的な印刷データを生成する手法として、本発明ではスキャンライン手法を用いる。スキャンライン手法では、主走査方向のライン毎に陰面除去を行いながら、印刷対象ページのビットマップ画像が生成される。以下、図５のフローに沿って詳しく説明する。
【００２９】
ステップ５０１では、スパン処理部３３１としての第１プロセッサ４０１が、入力された中間データに基づき、スキャンライン毎にスパンデータを生成する。前述のとおり、スパンとは、単一のスキャンラインにおいて、ページ内に描画されるオブジェクト同士の境界またはオブジェクトと背景との境界であるエッジで囲まれる閉じた領域を意味する。そして、スパンデータは、このスパンを示す情報と、スパン内に存在するオブジェクトのフィル情報とで構成される。スパンの長さは例えばピクセル数によって表現される。こうして、先頭スキャンラインから順に、各スキャンラインに対応するスパンデータが生成される。
【００３０】
ここで、図７に示す印刷対象ページの場合を例に具体的に説明する。図７（ａ）のページ７００は、ページ全面の背景である背景画像７１１、斜め格子と縦線の2種類のパターン画像７１２及び７１３の３つのイメージオブジェクトで構成される。ページ７００に対応する図７（ｂ）に示す中間データは、ページ開始命令で始まり、ページ終了命令で終わる。ページ開始命令には、当該ページ内に前述の背面画像がある場合を“1”、ない場合を“0”で示す“背面画像有無情報”が含まれる。ページ開始命令の次には、背景画像７１１の描画命令、その次にパターン画像７１２の描画命令、その次にパターン画像７１３の描画命令が続く。背景画像７１１の描画命令には、当該背景画像の輪郭をその左端と右端の位置座標で特定する“輪郭情報”と、当該背面画像の内容を示す“Fill情報”とを含む。Fill情報には、オブジェクトの属性を示す“Fill種別”、そのオブジェクトをどのように合成するのかを示す“合成種別”及び“合成方法”、当該オブジェクトが背面画像であるかどうかを示す“背面フラグ”を含む。Fill種別は２ビットで表され、オブジェクト属性が文字の場合“00”、イメージの場合“01”、グラフィックの場合“11”である。ページ７００の例では、オブジェクト属性はいずれもイメージなので、Fill種別はどれも“10”となっている。合成種別も2ビットで表され、四則演算の場合が“00”、アルファ透過の場合が“01”である。そして、合成種別が四則演算であれば、その合成方法を特定する値として、上書きの場合“00”、AND書きの場合“01”、OR書きの場合“10”、XOR書きの場合“11”が付加される。ページ７００の例では、どのオブジェクトも四則演算による上書きなので、どのオブジェクトについても合成種別が“00”、合成方法が“00”となっている。なお、ページ７００には存在しないが、オブジェクトの合成種別がアルファ透過であれば、合成方法としてその透過率を示す値が付加される。そして、背面フラグについては、背景画像７１１について“1”、パターン画像７１２及び７１３について“0”がそれぞれ設定されている。このような中間データに基づき各スキャンラインについてスパンデータが生成される。
【００３１】
図８に、ページ７００における処理対象のスキャンライン（以下、処理ライン）についてのスパンデータの具体例を示す。図８（ａ）に示す処理ラインＮに対し、上記３つのイメージオブジェクト７１１〜７１３の輪郭情報を参照して、スパン１〜スパン４に対応するスパンデータが生成される。各スパンを構成するオブジェクトは、図８（ｂ）で示すようにそれぞれ異なっている。例えば、スパン１は、背景画像７１１のみで構成される。スパン２は、背景画像７１１及びパターン画像７１２構成される。スパン３は、背景画像７１１、パターン画像７１２及びパターン画像７１３で構成される。スパン４は、スパン１と同様、背景画像７１１のみで構成される。図８（ｃ）は、処理ラインＮにおけるスパン１〜スパン４のスパンデータのデータ構造を示している。スパンデータは、基本データとオブジェクトデータの２種類のデータで構成される。基本データは、そのスパンの領域長を示す“Pixel長”と、当該スパンに存在するオブジェクトの数を示す“オブジェクト数”とを含む。オブジェクトデータは、オブジェクトの数だけ生成され、そのオブジェクトの“Fill種”と“合成”の情報とを含む。例えば、スパン２の場合であれば２つのオブジェクトデータが生成される。１つ目のオブジェクトデータは背面画像７１１に対応し、「Fill種」にはそのオブジェクトがイメージ属性であって背面画像であることを示す情報、「合成」には上書きの四則演算であることを示す情報が入る。2つ目のオブジェクトデータはパターン画像７１２に対応し、「Fill種」にはそのオブジェクトがイメージ属性であることを示す情報とその実データ、「合成」には上書きの四則演算であることを示す情報が入る。なお、スキャンラインをスパンに区切って画像形成を行う手法は広く知られており、スパンデータのデータ構造は上述の例に限定されるものではない。
【００３２】
続くステップ５０２では、陰面除去処理部３３２としての第１プロセッサ４０１が、ステップ５０１で生成したスパンデータに対して前述の陰面除去処理を行って、描画に必要なオブジェクトのみで構成されるスパンデータを生成する。陰面除去処理部３３２とは別に背面画像処理部３３３を備える本実施例の構成においては、一般的に知られている公知の技術を適用して陰面除去処理を行えばよい。図９は、処理ラインＮについての陰面除去後のスパンデータを説明する図である。図９（ａ）は図８（ａ）と同じである。図９（ｂ）は図８（ｂ）に対応する図であり、最前面に来るオブジェクト以外のオブジェクトが除去されているのが分かる。例えば、スパン２に関しては、最前面に来るパターン画像７１２について“上書き”による合成が指定されているため、当該パターン画像７１２の背面に来る背景画像７１１の描画は不要となる。従って、スパン２の陰面除去後のスパンデータにおけるオブジェクトデータは、図９（ｃ）で示すように、パターン画像７１２に対応するオブジェクトデータのみとなる。同様に、スパン３に関しても、最前面に来るパターン画像７１３において“上書き”による合成が指定されているため、当該パターン画像７１３の背面に来るパターン画像７１２と背景画像７１１は不要となる。従って、スパン３の陰面除去後のスパンデータにおけるオブジェクトデータは、図９（ｃ）で示すように、パターン画像７１３に対応する１個のオブジェクトデータのみとなる。こうして陰面除去処理が施されたスパンデータは、第１ＦＩＦＯメモリ４１４を介して第２プロセッサ４０２に転送される。
【００３３】
ステップ５０３では、背面画像処理部３３３としての第２プロセッサ４０２が、処理対象ページ内に、描画するオブジェクトとして背面画像が存在するか否かを判定する。ここで、処理対象ページ内に背面画像が存在するか否かは、中間データに含まれる背面フラグを参照して行われる。背面フラグは、前述のフォールバック画像の他、下地地紋画像やフォーム画像が存在する場合に、背面画像を示す値“1”が付与されて、その他の場合に“0”が付与されて、中間データに組み込まれる。背面フラグの値が“1”であれば背面画像ありと判定し、ステップ５０４に進む。一方、背面フラグの値が“0”であれば背面画像なしと判定し、ステップ５０６に進む。
【００３４】
ステップ５０４では、背面画像処理部３３３としての第２プロセッサ４０２が、伸長処理回路４２０に対して、背面画像の圧縮データの伸長を指示する。伸長後の背面画像のデータはビットマップ形式のピクセルデータであり、例えば上述の背景画像オブジェクト７１１の場合であればページ全面の画像データになるため、非常にサイズが大きい。伸長処理回路４２０は、伸長処理によって得られた背面画像のピクセルデータを、第２ＦＩＦＯメモリ４１２を介して第２プロセッサ４０２に直接受け渡す。
【００３５】
次に、ステップ５０５では、背面画像処理部３３３としての第２プロセッサ４０２が、陰面除去処理後のスパンデータに対して、背面画像の伸長されたピクセルデータのうち不要部分を読み捨てるための指示を付加する処理（以下、読み捨て指示付加処理）を行う。この処理は、陰面除去によって当該スパンにおける描画に不要であるとして除去された背面画像について、第２ＦＩＦＯメモリ４１２から送られてくる不要部分のデータを適切に読み飛ばすことで、スパン単位のピクセルデータを誤りなく生成するために行う。この読み捨て指示付加処理の詳細は後述する。
【００３６】
ステップ５０６では、ピクセルデータ生成部３３４としての第２プロセッサ４０２が、読み捨て指示付加処理後のスパンデータに基づいて、各スパンに存在するオブジェクトのピクセルデータを生成する。このピクセルデータの生成処理の詳細については後述する。そして、ステップ５０７では、合成処理部３３５としての第３プロセッサ４０３が、ステップ５０６で生成したピクセルデータを元に必要な合成処理を行い、最終的なページ全体のビットマップ画像を生成する。以上が、本実施例に係る、ＲＩＰ１１１が行うレンダリング処理の概要である。
【００３７】
＜読み捨て指示付加処理の詳細＞
図１０は、図５のフローのステップ５０５における、読み捨て指示付加処理の詳細を示すフローチャートである。前述のとおり、この処理は背面画像処理部３３３としての第２プロセッサ４０２によってなされる。以下、図１０のフローに沿って説明する。
【００３８】
ステップ１００１では、ページ内の処理対象とするスキャンライン（処理ライン）を決定する。処理開始直後の段階では、ページの画像形成領域における先頭スキャンラインが最初の処理ラインに決定される。
【００３９】
ステップ１００２では、処理ラインにおける陰面除去処理が施されたスパンデータを、スキャン開始位置に近い方のスパン（図６の例では、スパン１）から順に第１ＦＩＦＯメモリ４１１から受け取る。続くステップ１００３では、受け取ったスパンデータからオブジェクトデータを取得する。この際、当該スパンにおいて背面にあるオブジェクトからZ軸上に前面方向に向かって順次取得していく。
【００４０】
次に、ステップ１００４では、取得したオブジェクトデータ内のFill種の情報を参照し、処理対象のオブジェクトが背面画像であるか否かが判定される。背面画像でなかった場合はステップ１００５に進み、背面画像であった場合はステップ１００７に進む。
【００４１】
ステップ１００５では、ステップ１００２で受け取ったスパンデータ内に未処理のオブジェクトデータがあるか否かが判定される、全てのオブジェクトデータの処理が完了していた場合はステップ１００６に進む。一方、未処理のオブジェクトデータがあればステップ１００３に戻って次のオブジェクトデータを取得して処理を続行する。
【００４２】
ステップ１００６では、第２ＦＩＦＯメモリ４１２から転送されてくる背面画像の伸長後の画像データを、ピクセルデータ生成部３３４において適宜読み捨てるための指示（読み捨て指示）を、スパンデータに付加する処理を行う。図１１は、陰面除去後のスパンデータ（図９（ｃ）を参照）に対して上記読み捨て指示が付加された状態を示す。図１１（ａ）が図９（ｂ）に、図１１（ｂ）が図９（ｃ）にそれぞれ対応している。この例では、スパン２とスパン３において背面画像が除去されているため、当該背面画像の読み捨て指示を含んだ新たなオブジェクトデータ１１０１及び１１０２が、スパン２とスパン３のスパンデータに対しそれぞれ付加されているのが分かる。
【００４３】
ステップ１００７では、処理ライン上のすべてのスパンデータの処理が完了したか否かが判定される。処理ライン上のすべてのスパンデータの処理が完了していればステップ１００８に進む。一方、未処理のスパンデータがあればステップ１００２に戻って次のスパンデータを取得して処理を続行する。
【００４４】
ステップ１００８では、処理対象ページのすべてのスキャンラインについて処理が完了したか否かが判定される。処理対象ページのすべてのスキャンラインについて処理が完了していれば本処理を終える。一方、未処理のスキャンラインがあればステップ１００１に戻って次のスキャンラインを処理ラインに決定して処理を続行する。以上が、読み捨て指示付加処理の内容である。
【００４５】
＜ピクセルデータ生成処理の詳細＞
図１２は、図５のフローのステップ５０６における、ピクセルデータ生成処理の詳細を示すフローチャートである。前述のとおり、この処理はピクセルデータ生成部３３４としての第２プロセッサ４０２によってなされる。以下、図１２のフローに沿って説明する。
【００４６】
ステップ１２０１では、ページ内における処理対象とするスキャンライン（処理ライン）を決定する。処理開始直後の段階では、ページ内の画像形成領域における先頭スキャンラインが最初の処理ラインに決定される。
【００４７】
ステップ１２０２では、処理ラインにおける、読み捨て指示付加処理後のスパンデータを、スキャン開始位置に近い方のスパン（前述の具体例では、スパン１）から順に取得する。また、取得したスパンデータを、第３ＦＩＦＯメモリ４１３を介して第３プロセッサ４０３に転送する処理も併せて行う。
【００４８】
ステップ１２０３では、取得したスパンデータに含まれるオブジェクトデータを取得する。この際、当該スパンにおいて背面にあるオブジェクトからZ軸上に前面方向に向かって順次取得していく。また、取得したオブジェクトデータを、ステップ１２０２におけるスパンデータ同様、第３ＦＩＦＯメモリ４１３を介して第３プロセッサ４０３に転送する処理も併せて行う。
【００４９】
ステップ１２０４では、取得したオブジェクトデータを解析し、解析結果に応じて処理の切り分けを行う。解析の結果、背面画像以外のオブジェクトであればステップ１２０５へ、読み捨て指示のある背面画像のオブジェクトであればステップ１２０６へ、読み捨て指示のない背面画像のオブジェクトであればステップ１２０７へ進む。
【００５０】
ステップ１２０５では、オブジェクトの属性に応じたピクセルデータを公知の技術を利用して生成する。この場合において、背面画像以外のイメージ属性のオブジェクトであれば、オブジェクトデータに含まれるピクセルデータがそのまま利用される。そして、ステップ１２０６では、まず、背面画像の伸長されたピクセルデータを第２ＦＩＦＯメモリ４１２を介して取得する。しかし、取得したピクセルデータは、読み捨て指示があり、当該スパンにおける描画には不要である。そのため、合成処理を行う第３プロセッサ４０３に転送することなく破棄する。一方、ステップ１２０７でも、まず、背面画像の伸長されたピクセルデータを第２ＦＩＦＯメモリ４１２を介して取得する。取得したピクセルデータは、読み捨て指示がないので、当該スパンにおける描画に必要である。よって、合成処理を行う第３プロセッサ４０３に第４ＦＩＦＯメモリ４１４を介して転送する。
【００５１】
ステップ１２０８では、ステップ１２０２で取得したスパンデータ内に未処理のオブジェクトデータがあるかどうか判定する。未処理のオブジェクトデータがあれば、ステップ１２０３に戻って次のオブジェクトデータを取得し、処理を続行する。一方、すべてのオブジェクトデータについて処理が完了していれば、ステップ１２０９に進む。
【００５２】
ステップ１２０９では、ステップ１２０１で決定した処理ライン内に未処理のスパンがあるかどうか判定する。未処理のスパンがあれば、ステップ１２０２に戻って次のスパンデータを取得し、処理を続行する。一方、すべてのスキャンについて処理が完了していれば、ステップ１２１０に進む。
【００５３】
ステップ１２１０では、ページ内に未処理のスキャンラインがあるかどうか判定する。未処理のスキャンラインがあれば、ステップ１２０１に戻って次のスキャンラインを決定し、処理を続行する。一方、ページ内の全スキャンラインについて処理が完了していれば、本処理を終える。以上が、ピクセルデータ生成処理の内容である。
【００５４】
＜変形例＞
上述の例では、陰面除去処理部３３２とは独立した背面画像処理部３３３において、陰面除去後のスパンデータに対し不要な背面画像の読み捨て指示を付加する処理を行っていた。次に、陰面除去処理部３３２が背面画像処理部３３３の機能を兼ね備えた態様を、変形例として説明する。
【００５５】
図１３は、本変形例に係る陰面除去処理の流れを示すフローチャートである。なお、本変形例の場合は、陰面除去処理の中で不要な背面画像についての読み捨て指示の付加まで行うため、図５のフローにおけるステップ５０５が不要になることはいうまでもない。以下、図１３のフローに沿って詳しく説明する。
【００５６】
ステップ１３０１では、印刷対象ページの中間データを取得する。続いて、ステップ１３０２では、ページ内における処理対象とするスキャンライン（処理ライン）を決定する。処理開始直後の段階では、ページ最上端の先頭スキャンラインが最初の処理ラインに決定される。
【００５７】
ステップ１３０３では、処理ラインにおける、スパン処理部３３１で生成されたスパンデータを、スキャン開始位置に近い方のスパン（前述の具体例では、スパン１）から順に取得する。そして、ステップ１３０４では、取得したスパンデータに含まれるオブジェクトデータを取得する。この際、当該スパンにおいて前面にあるオブジェクトからZ軸上に背面方向に向かって順次取得していく。
【００５８】
ステップ１３０５では、ステップ１３０４で取得したオブジェクトデータにおいて“上書き”が合成方法として指定されているかどうかが判定される。合成方法が上書きであればステップ１３０７に進む。一方、上書きでなければステップ１３０６に進む。
【００５９】
ステップ１３０６では、ステップ１３０３で取得したスパンデータ内に未処理のオブジェクトデータがあるかどうか判定する。未処理のオブジェクトデータがあれば、ステップ１３０４に戻って次のオブジェクトデータを取得し、処理を続行する。一方、すべてのオブジェクトデータについて処理が完了していれば、ステップ１３１４に進む。
【００６０】
ステップ１３０７では、ページ内に背面画像のオブジェクトが存在するかどうかを判定する。この判定は、ステップ１３０１で取得した中間データにおけるページ開始命令の背面画像有無情報を参照してなされる。ページ内に背面画像が存在する場合はステップ１３０９に進む。一方、ページ内に背面画像が存在しない場合はステップ１３０８に進む。
【００６１】
ステップ１３０８では、ステップ１３０３で取得したスパンデータに残った未処理のオブジェクトデータを削除する。オブジェクトデータが残っていなければ、本ステップはスルーされ、ステップ１３１４に進む。
【００６２】
ステップ１３０９では、ステップ１３０３で取得したスパンデータに残った未処理のオブジェクトデータの中から次のオブジェクトデータを取得する。続くステップ１３１０では、ステップ１３０９におけるオブジェクトデータの取得結果によって処理の切り分けがなされる。具体的には、背面画像のオブジェクトデータが取得された場合はステップ１３１２へ、背面画像以外のオブジェクトデータが取得された場合はステップ１３１１へ、オブジェクトデータが残っておらず取得できなかった場合はステップ１３１４へ進む。
【００６３】
背面画像以外のオブジェクトであったときのステップ１３１１では、ステップ１３０９で取得したそのオブジェクトデータをスパンデータから削除する。そして、背面画像のオブジェクトであったときのステップ１３１２では、ステップ１３０９で取得したそのオブジェクトデータのFill種別を、読み捨て指示付きのイメージに変更する。
【００６４】
ステップ１３１３では、ステップ１３０３で取得したスパンデータ内に未処理のオブジェクトデータがあるかどうか判定する。未処理のオブジェクトデータがあれば、ステップ１３０９に戻ってさらに次のオブジェクトデータを取得し、処理を続行する。一方、すべてのオブジェクトデータについて処理が完了していれば、ステップ１３１４に進む。
【００６５】
ステップ１３１４では、処理ライン上のすべてのスパンデータの処理が完了したか否かが判定される。処理ライン上のすべてのスパンデータの処理が完了していればステップ１３１５に進む。一方、未処理のスパンデータがあればステップ１３０３に戻って次のスパンデータを取得して処理を続行する。
【００６６】
ステップ１３１５では、処理対象ページのすべてのスキャンラインについて処理が完了したか否かが判定される。処理対象ページのすべてのスキャンラインについて処理が完了していれば本処理を終える。一方、未処理のスキャンラインがあればステップ１３０２に戻って次のスキャンラインを処理ラインに決定して処理を続行する。以上が、本変形例に係る陰面除去処理の内容である。このように、背面画像処理部３３３の機能を陰面除去処理部３３２の中に組み込んでしまっても構わない。
【００６７】
以上のとおり本実施例によれば、ＦＩＦＯメモリを利用してのレンダリングにおいて、陰面除去処理でその一部が除去される背面画像のデータを適切に読み出すことができ、スキャンライン手法でのより高速な画像形成を実現することができる。
【００６８】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2019010817.tif 000003
【図２】
2019010817.tif 000004
【図３】
2019010817.tif 000005
【図４】
2019010817.tif 000006
【図５】
2019010817.tif 000007
【図６】
2019010817.tif 000008
【図７】
2019010817.tif 000009
【図８】
2019010817.tif 000010
【図９】
2019010817.tif 000011
【図１０】
2019010817.tif 000012
【図１１】
2019010817.tif 000013
【図１２】
2019010817.tif 000014
【図１３】
2019010817.tif 000015