(57)【要約】【課題】ブロック分割時でも最適化の可否を適切に判定可能とし、ブロック時の画像形成処理の高速化を実現することが課題とされている。【解決手段】画像データを所定のブロック単位に分割し、画像形成を行う画像形成装置であって、ブロック分割時に、ブロックに含まれる複数のブロックラインうち、閉領域の構成が同一である連続するブロックラインを判別するブロック構成判別手段と、前記ブロック構成判別手段にて判別した判別結果と、前記複数のブロックラインそれぞれの情報とを用いて、ブロックそれぞれの中間言語のデータを生成するブロック中間言語生成手段と、前記ブロック中間言語生成手段にて生成したブロックそれぞれの中間言語のデータに対応する画像形成方法を選択するブロック画像形成方法選択手段と、前記ブロック画像形成方法選択手段にて選択した画像形成方法に従い、前記ブロックそれぞれの中間言語のデータに対する画像形成を行う画像形成手段とを有する。【選択図】  図１２
2013001043.tif 000002
【特許請求の範囲】
【請求項１】
画像データを所定のブロック単位に分割し、画像形成を行う画像形成装置であって、
ブロック分割時に、ブロックに含まれる複数のブロックラインうち、閉領域の構成が同一である連続するブロックラインを判別するブロック構成判別手段と、
前記ブロック構成判別手段にて判別した判別結果と、前記複数のブロックラインそれぞれの情報とを用いて、ブロックそれぞれの中間言語のデータを生成するブロック中間言語生成手段と、
前記ブロック中間言語生成手段にて生成したブロックそれぞれの中間言語のデータに対応する画像形成方法を選択するブロック画像形成方法選択手段と、
前記ブロック画像形成方法選択手段にて選択した画像形成方法に従い、前記ブロックそれぞれの中間言語のデータに対する画像形成を行う画像形成手段と
を有することを特徴とする画像形成装置。
【請求項２】
前記ブロック構成判別手段は、判別するブロックにおいて、当該ブロックに含まれる複数のブロックラインが全て同一の閉領域の構成であるか否かを判定することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記ブロック構成判別手段は、判別するブロックにおいて、当該ブロックに含まれる複数のブロックラインのうち、所定ライン数以上が同一の閉領域の構成であるか否かを判定することを特徴とする請求項１または２に記載の画像形成装置。
【請求項４】
前記ブロック構成判別手段は、判別するブロックにおいて、当該ブロックに含まれる複数のブロックラインが全て単色にて画像形成が可能か否かを判定することを特徴とする請求項１乃至３のいずれか一項に記載の画像形成装置。
【請求項５】
前記ブロック構成判別手段は、判別するブロックにおいて、当該ブロックに含まれる複数のブロックラインそれぞれに含まれる閉領域数を判別することを特徴とする請求項１乃至４のいずれか一項に記載の画像形成装置。
【請求項６】
前記ブロック構成判別手段は、判別するブロックにおいて、当該ブロックに含まれる複数のブロックラインそれぞれの閉領域内のレイヤの組み合わせを判別することを特徴とする請求項１乃至５のいずれか一項に記載の画像形成装置。
【請求項７】
前記ブロック構成判別手段は、判別するブロックにおいて、当該ブロックに単色以外の閉領域のレイヤが存在するか否かを判別することを特徴とする請求項１乃至６のいずれか一項に記載の画像形成装置。
【請求項８】
前記ブロック構成判別手段は、判別するブロックにおいて、当該ブロックの最初のブロックラインの閉領域の構成が直前に判別したブロックの最後のブロックラインの閉領域の構成と同一であるか否かを判定することを特徴とする請求項１乃至７のいずれか一項に記載の画像形成装置。
【請求項９】
前記ブロック構成判別手段は、ブロックに含まれる複数のブロックラインが全て同一の閉領域の構成であるか否かを判別する際に、ブロック内の閉領域数および閉領域内のレイヤの組み合わせが同一であるブロックライン数を示す同一ブロックライン数が、ブロックに含まれるブロックライン数と同一であるかで判定することを特徴とする請求項２に記載の画像形成装置。
【請求項１０】
前記ブロック構成判別手段は、ブロックに含まれる複数のブロックラインのうち所定ライン数以上が同一の閉領域の構成であるか否かを判別する際に、ブロック内の閉領域数および閉領域内のレイヤの組み合わせが同一であるブロックライン数を示す同一ブロックライン数から判定することを特徴とする請求項３に記載の画像形成装置。
【請求項１１】
前記ブロック構成判別手段は、ブロックに含まれる複数のブロックラインが全て単色にて画像形成が可能か否かを判別する際に、ブロックに含まれる複数のブロックラインの最大閉領域数が１であり、且つ単色以外のレイヤが当該ブロックに含まれるかを元に判定することを特徴とする請求項４に記載の画像形成装置。
【請求項１２】
前記ブロック構成判別手段がブロックに含まれる複数のブロックラインが全て同一の構成であると判別した場合、前記ブロック中間言語生成手段は、１ライン目のブロックラインの情報のみを用いて中間言語のデータを生成することを特徴とする請求項２に記載の画像形成装置。
【請求項１３】
前記ブロック構成判別手段がブロックに含まれる複数のブロックラインのうち、前記所定ライン数以上が同一の閉領域の構成であると判別した場合、前記ブロック中間言語生成手段は、１ライン目のブロックラインの情報と、当該複数のブロックラインにおける１ライン目から前記所定ライン数よりも後のブロックラインの情報とから中間言語のデータを生成することを特徴とする請求項３に記載の画像形成装置。
【請求項１４】
前記ブロック構成判別手段がブロックに含まれる複数のブロックラインが全て単色にて画像形成が可能であると判別した場合、前記ブロック中間言語生成手段は、単色情報を生成し、該単色情報のみを用いて中間言語のデータを生成することを特徴とする請求項４に記載の画像形成装置。
【請求項１５】
前記ブロック構成判別手段がブロックの最初のブロックラインの構成が直前に判別したブロックの最後のブロックラインの閉領域の構成と同一であると判定した場合、前記ブロック中間言語生成手段は、ブロックの１ライン目のブロックラインの情報を省略し、同一である旨を示す中間言語のデータを生成することを特徴とする請求項８に記載の画像形成装置。
【請求項１６】
前記ブロック画像形成方法選択手段は、画像形成の対象となるブロックの最初のブロックラインに対する中間言語のデータが直前に画像形成を行ったブロックの最後のブロックラインと同一である旨の中間言語のデータである場合、前記直前に画像形成を行ったブロックと同一の画像形成方法を選択することを特徴とする請求項１５に記載の画像形成装置。
【請求項１７】
画像データを所定のブロック単位に分割し、画像形成を行う画像形成方法であって、
ブロック構成判別手段が、ブロック分割時に、ブロックに含まれる複数のブロックラインうち、閉領域の構成が同一である連続するブロックラインを判別するブロック構成判別工程と、
ブロック中間言語生成手段が、前記ブロック構成判別工程にて判別した判別結果と、前記複数のブロックラインそれぞれの情報とを用いて、ブロックそれぞれの中間言語のデータを生成するブロック中間言語生成工程と、
ブロック画像形成方法選択手段が、前記ブロック中間言語生成工程にて生成したブロックそれぞれの中間言語のデータに対応する画像形成方法を選択するブロック画像形成方法選択工程と、
画像形成手段が、前記ブロック画像形成方法選択工程にて選択した画像形成方法に従い、前記ブロックそれぞれの中間言語のデータに対する画像形成を行う画像形成工程と
を有することを特徴とする画像形成方法。
【請求項１８】
コンピュータを、
画像データを所定のブロック単位に分割し、ブロックに含まれる複数のブロックラインうち、閉領域の構成が同一である連続するブロックラインを判別するブロック構成判別手段、
前記ブロック構成判別手段にて判別した判別結果と、前記複数のブロックラインそれぞれの情報とを用いて、ブロックそれぞれの中間言語のデータを生成するブロック中間言語生成手段、
前記ブロック中間言語生成手段にて生成したブロックそれぞれの中間言語のデータに対応する画像形成方法を選択するブロック画像形成方法選択手段、
前記ブロック画像形成方法選択手段にて選択した画像形成方法に従い、前記ブロックそれぞれの中間言語のデータに対する画像形成を行う画像形成手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、画像形成方法、およびプログラムに関する。特に、画像データ及び該画像データを出力する際の、中間言語生成処理及びレンダリング処理を所定のブロック単位で行う際の画像形成技術に関する。
【背景技術】
【０００２】
従来、画像データの画像形成方法として、ライン単位で画像形成処理を行うスキャンラインモデルと呼ばれる画像形成方法が存在する。従来技術におけるスキャンラインモデルについては本願発明の前提として後述する。
【０００３】
また、スキャンラインモデルでの画像形成方法の高速化手法として、ラインの画像形成処理毎に、ライン中間言語の所定の情報を共有することで高速化を実現する技術が既に存在する（特許文献１等参照）。
【０００４】
高速化手法により、メモリアクセスも削減可能となり、処理に用いられる帯域が削減でき、装置の負荷及び他システムへの影響も削減することが可能となる。また、この他にも分割されたバンド領域間で跨る描画オブジェクト情報は、バンド間で共有する等の様々な高速化手法が提案されている。
【０００５】
また近年、画像形成に利用するリソース（主にメモリ使用量）の削減を目的とし、画像データを所定サイズのブロック単位に分割し、画像形成処理を行う技術が用いられるようになってきている。こういった、ブロック単位による画像形成の技術が提案されている。従来技術におけるブロック単位の画像形成手法については本願発明の前提として後述する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−０７２１６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、ブロック単位での画像形成処理に対して、スキャンラインモデルでの画像形成方法の高速化手法の適用を行う場合を考える。このとき、従来のページ上におけるライン上のエッジを元に高速化処理を適用するか否かを判定すると、最適なブロックの画像形成処理が行えない場合がある。
【０００８】
例えば、図６に示すブロック１（５０１）の画像形成の場合、ブロック描画ライン１（５０２）のブロック描画ライン情報は、ブロックライン中間言語５０６の形式をとる。また、前述の高速化手法の適用を行った場合、２ライン目以降のブロック描画ライン（例えばブロック描画ライン５０３）のブロックライン情報は、ブロックライン中間言語５０７の形式をとる。ここで、ブロックライン毎に、閉領域数・閉領域に含まれるレイヤ数・レイヤ情報の組み合わせは変わらないため、２ライン目以降のブロック描画ラインでは、省略が可能となるため、ブロックライン中間言語５０７の形式をとる。このように、ブロック１（５０１）に対しては、前述の高速化手法をそのまま適用が可能となる。
【０００９】
しかし、ブロック２（６０１）は、ブロック描画ライン１（６０２）ではブロックライン中間言語６０６の形式をとる。またブロック描画ライン２（６０３）では、ブロックライン中間言語６０７の形式をとる。すると、ブロック描画ライン１（６０２）に含まれる閉領域数は１つだったのに対し、ブロック描画ライン２（６０３）では閉領域数が２つになる。従って、エッジ追加ラインで示されるライン情報同一領域２（４０５）内に含まれても、ブロックに分割されることにより、ブロック内のライン毎の特性が異なる現象が発生する。
【００１０】
また、図７に示すエッジ追加頻度の高い領域７０１のような個所の描画の際、左端の文字情報によりエッジ追加が頻発する。ここで、ブロック３（７０２）の描画の際、従来のエッジ追加ラインで高速化を判定すると、ブロック描画ライン１（７０３）のブロック中間言語は、ブロックライン中間言語７１０の形式をとる。同様に、ブロック描画ライン２（７０４）以降のブロックラインに対しても、同一のブロックライン中間言語７１０の形式をとる。しかし、エッジ追加頻度の高い領域７０１では、例えば毎ラインエッジの追加ラインとして判定されることにより、前記高速化手法が適用出来ないと判定されてしまい、ブロックライン中間言語の省略が出来ないと判定されてしまう。
【００１１】
さらに、ブロック３（７０２）のブロック描画ラインＮにおけるブロックライン中間言語と、ブロック４（７０５）のブロック描画ライン１（７０７）のブロックライン中間言語は、共にブロックライン中間言語７１０に示す形式をとる。しかし、従来の副走査方向に同一か否かで省略を判定する技術では、例えブロック４のブロック描画ライン１（７０７）で直前に処理したブロック描画ライン情報と同一の描画を行う際でも、使い回せないという問題があった。
【００１２】
以上のように、ブロック分割時でも各ブロックに対するデータの最適化の可否を適切に判定でき、高速化が可能なブロック画像形成処理を提供することが課題とされている。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本願発明に係る画像形成装置は以下の構成を有する。すなわち、画像データを所定のブロック単位に分割し、画像形成を行う画像形成装置であって、ブロック分割時に、ブロックに含まれる複数のブロックラインうち、閉領域の構成が同一である連続するブロックラインを判別するブロック構成判別手段と、前記ブロック構成判別手段にて判別した判別結果と、前記複数のブロックラインそれぞれの情報とを用いて、ブロックそれぞれの中間言語のデータを生成するブロック中間言語生成手段と、前記ブロック中間言語生成手段にて生成したブロックそれぞれの中間言語のデータに対応する画像形成方法を選択するブロック画像形成方法選択手段と、前記ブロック画像形成方法選択手段にて選択した画像形成方法に従い、前記ブロックそれぞれの中間言語のデータに対する画像形成を行う画像形成手段とを有する。
【発明の効果】
【００１４】
本発明によれば、ブロック分割時でも各ブロックに対する適切なブロックライン中間言語を利用した画像形成処理、及び処理の高速化が可能となる。
【図面の簡単な説明】
【００１５】
【図１】画像形成装置の一実施形態を示すブロック図。
【図２】ライン単位で画像形成処理を行うスキャンラインモデルの画像形成方法と、ブロック単位での画像形成方法を実現するブロックの一例を示す図。
【図３】ライン単位で画像形成処理を行うスキャンラインモデルの画像形成方法と、その高速化手法の一例を示す図。
【図４】ライン単位で画像形成処理を行うスキャンラインモデルの画像形成方法と、その高速化手法の一例を示す図。
【図５】ブロック単位での画像形成処理に対して、スキャンラインモデルでの高速化手法を適用した際の一例を示す図。
【図６】課題を説明するための、ブロック単位での画像形成処理に対してスキャンラインモデルでの高速化手法を適用した際の一例を示す図。
【図７】課題を説明するための、ブロック単位での画像形成処理に対してスキャンラインモデルでの高速化手法を適用した際の一例を示す図。
【図８】画像形成装置のページ画像に対する画像形成処理の一連の処理フローを示す図。
【図９】ブロック画像形成方法選択処理の詳細なフローを示す図。
【図１０】ブロック先頭モード選択処理の詳細なフローを示す図。
【図１１】ブロックライン比較処理の詳細なフローを示す図。
【図１２】ブロックモード選択処理の詳細なフローを示す図。
【図１３】ブロック構成判別処理の詳細なフローを示す図。
【図１４】従来例に係る各ブロックの構成に応じて生成されるブロック中間言語の概念を示す図。
【図１５】ブロック中間言語生成処理の詳細なフローを示す図。
【図１６】ブロック中間言語生成処理の際に生成される各ブロックのブロック中間言語の概念を示す図。
【図１７】ブロック中間言語生成処理の際に生成される各ブロックのブロック中間言語の概念を示す図。
【図１８】ブロックレンダリング処理の詳細なフローを示す図。
【図１９】ブロックライン初期化処理の詳細なフローを示す図。
【図２０】キャッシュブロックラインレンダリング処理の詳細なフローを示す図。
【図２１】ブロックラインレンダリング処理の詳細なフローを示す図。
【発明を実施するための形態】
【００１６】
［本願発明の前提となる従来技術］
従来の画像データの画像形成方法の一つとしてライン単位で画像形成処理を行うスキャンラインモデルと呼ばれる画像形成方法が存在する。ここで、本願発明に適用可能な画像形成方法について述べる。
【００１７】
例えば、図３に示すページ３００のような画像データの画像形成を行う場合、ページ上端から主走査方向にライン単位で画像形成処理を行っていく。ライン毎の描画は、例えば描画ライン３０１の描画を行う場合、図２に示すエッジ処理部２００が、ページ両端及びオブジェクト（ここではイメージ３０３）の輪郭情報から閉領域３０５，３０６，３０７を検出する。そして、エッジ処理部２００は、その情報を元に、ラインごとに中間言語で定義されたデータとして、ライン中間言語３１０を生成する。
【００１８】
図３に示すように、ライン中間言語３１０は、ラインに含まれる閉領域数を含むライン情報３１１と、閉領域の領域長や重なるオブジェクト数（レイヤ数）を含む閉領域情報３１２，３１３，３１４とからなる。さらに、ライン中間言語３１０は、重なるオブジェクト（レイヤ）の描画情報（白色背景情報３１５，イメージ描画情報３１６）を保持する。白色背景情報３１５は、白背景３０２の描画情報を示す。また、イメージ描画情報３１６は、イメージ３０３の描画情報を示す。そして、図２に示す閉領域描画部２０２は、ライン中間言語２１０（描画ライン３０１の画像形成の際はライン中間言語３１０）を元に所定の閉領域のピクセルデータの生成を行い、バンドピクセルデータ２１１を生成する。ブロック圧縮部２０３は、バンドピクセルデータ２１１が所定の高さ分だけ格納されたことを検知した時点で所定のブロック単位の圧縮処理２２０，２２１を行う。
【００１９】
ここで、ＪＰＥＧ等は幅高８ピクセル単位で圧縮するため、最低８ピクセル高のピクセルデータが完成した時点で圧縮処理を行う。他圧縮の際は、その所定の高さ分の格納が完了した時点で圧縮を行う。この際、閉領域描画部２０２はバンド分のピクセルデータを、メモリに展開している。従って生のピクセルデータをメモリへ展開しているため、システムの帯域を消費する。
【００２０】
次に、本願発明に適用可能なスキャンラインモデルでの画像形成方法の高速化手法について説明する。例えば、図４に示すように、ページ３００を描画する際、ライン上のオブジェクトの輪郭が変化する点はそれぞれ、エッジ追加ライン１（４０１）、エッジ追加ライン２（４０２）、エッジ追加ライン３（４０３）の個所となる。すると、該エッジ追加ラインに囲まれる、ライン情報同一領域１（４０４）、ライン情報同一領域２（４０５）、ライン情報同一領域３（４０６）は、存在するオブジェクトが同一な領域となる。従って、例えばライン情報同一領域２（４０５）の一番上端の描画ライン１（４０７）のライン中間言語は、ライン中間言語４１０になる。
【００２１】
また、描画ライン２（４０８）において、閉領域１情報４１２，閉領域２情報４１３，閉領域３情報４１４それぞれの領域長は変わる。しかし、ライン情報４１１に含まれる閉領域数や、閉領域１情報４１２，閉領域２情報４１３，閉領域３情報４１４それぞれのレイヤ数は変化しない。この特性を利用し、描画ライン４０８からライン情報同一領域２（４０５）の最終ラインのライン情報まで、“描画ライン２〜Ｎ情報”の形式で、各領域長のみ変更した値のライン中間言語を生成し、それを元に画像形成処理を行う構成をとる。
【００２２】
これにより、閉領域描画部２０２に転送するライン中間言語２１０のデータサイズの削減、通信処理のトラフィック、さらに閉領域情報やオブジェクト情報に対する各種処理を削減することで高速化を実現する。これにより、メモリアクセスも削減可能となり、前述した帯域の利用が削減でき、閉領域描画部２０２の負荷及び他システムへの影響も削減することが可能となる。
【００２３】
次に、本願発明に適用可能な画像データを所定サイズのブロック単位に分割する画像形成処理について説明する。例えば、前述のブロック単位での圧縮を行う場合、最低でも所定のブロック高さ分のバンドピクセルデータ２１１を一旦メモリに格納する必要があり、格納に要するメモリが非常に大きいものとなっていた。そこで、図２の“ブロック描画時”に記載のように、ライン中間言語２１２の形式でブロック高さ分、メモリに一旦格納する。これにより、同じブロック高さ分であっても、ベクタ形式で格納することで、メモリを削減する。
【００２４】
図２に示すブロック分割部２０１は、ライン中間言語２１２を所定のブロック幅に分割したブロック中間言語２１３を生成する。閉領域描画部２０２は、ブロック中間言語２１３の画像形成を行うことでブロック単位のピクセルデータを生成する。これにより、ピクセルデータの格納も、所定のブロックサイズに削減できる構成が可能となるのである。ブロック中間言語２１３は、ライン中間言語３１０の中の所定の幅の領域に該当する閉領域情報からなる。
【００２５】
例えば、図５に示すように、ブロック１（５０１）は、複数のブロック描画ライン１，２・・Ｎ（５０２，５０３，５０４等）から構成される。ブロック描画ライン１（５０２）は、全て白色背景の描画である。従って、ブロックライン中間言語５０６のように、閉領域数１つのライン情報５１１と、閉領域情報５１２及び白色背景情報３１５とから構成される。また、ブロック描画ライン１，２，・・・，Ｎ共に同様の閉領域のため、ここでのブロック中間言語５０５は、Ｎ個分のブロックライン中間言語５０６から構成される。
【００２６】
本実施形態において、入力データに対して分割するブロック単位は８×８ピクセルからなる構成として説明をするが、これに限定するものではない。また、入力データとして、図３のページ３００に示すように、１または複数の描画オブジェクトを含むものとする。これにより、画像データは、複数のレイヤを構成することとなる。
【００２７】
以上に説明した従来技術を前提として、以下に本願発明の特徴となる処理について説明する。
【００２８】
［機器構成］
本発明の実施の形態を、図面を参照して説明する。本実施形態では、画像形成装置１００のようなＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）を例として用いた。もちろん、ＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）やＬＢＰ（Ｌａｓｅｒ  Ｂｅａｍ  Ｐｒｉｎｔｅｒ）、その他のプリント方式のプリンタでもよいことは言うまでもない。
【００２９】
図１は、本発明に係る電子部品としてのコントローラが搭載された画像形成装置の一実施形態としての構成を示すブロック図である。画像形成装置１００は、イーサネット(登録商標)等のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）にて、ホストコンピュータ（ＰＣ）１６０に接続されている。画像形成装置１００は、リーダ装置１４０、プリンタ装置１５０、操作／表示部１２０、データ記憶部１３０、さらに、これら各構成要素を制御する制御装置（コントローラ部）１１０によって構成されている。
【００３０】
制御装置１１０は、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３等を有し、ＣＰＵ１１１がＲＯＭ１１２または他の記憶媒体に格納されたプログラムに基づいて、画像形成装置１００全体を統括制御する。例えば、制御装置１１０は、ＣＰＵ１１１に、それぞれＰＤＬ解析処理・中間言語生成処理、及びレンダリング処理等を行うための予め決められたプログラムをロードする構成をとる。またレンダリング処理に関しては、ここでは記述しないが専用のハードウェアを利用しても構わない。プリンタ装置１５０は、画像データの出力を行う。操作／表示部１２０は、画像出力処理を行うための各種印刷設定の操作を行うキーボード、及び画像出力設定を行う操作ボタン等の表示を行う液晶パネルを備える。
【００３１】
データ記憶部１３０は、画像データやドキュメントデータ、印刷装置制御言語（例えば、ＥＳＣコード、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ））などの印刷データの格納／保存ができる。例えば、データ記憶部１３０は、ＬＡＮを介してホストコンピュータ（ＰＣ）１６０より受信した画像データ・ドキュメント・ＰＤＬや、リーダ装置１４０を制御して読み込む画像データの格納／保存ができる。
【００３２】
上述のような構成の画像形成装置を例に挙げ、本発明の具体的な実施形態を以下に述べる。また、本実施形態におけるソフトウェア構成については、図２を用いて述べたもとと同様の構成を用いるものとする。
【００３３】
［全体処理フロー］
図８は、本実施形態における画像形成装置１００の、ページ画像に対する画像形成処理の一連の処理フローを示す図である。本処理は、画像形成装置１００に搭載されたＣＰＵ１１１が記憶部であるＲＯＭ１１２等に格納されたプログラムを読み出し、実行することにより実現される。また、処理を行う各部位については、図２に示したものと同様とする。
【００３４】
まず、ＰＤＬで示されたページ画像情報の印刷指示が、ＰＣ１６０から転送され、画像形成装置１００は、転送されたＰＤＬを、データ記憶部１３０に格納する。次に、画像の生成処理を行うため、ＣＰＵ１１１は、データ記憶部１３０からＰＤＬを取得し、解析処理を行う（Ｓ８０１）。
【００３５】
次にＣＰＵ１１１は、解析したＰＤＬから、所定のレンダリング可能なページ中間言語の生成処理を行う（Ｓ８０２）。続いて、ＣＰＵ１１１にロードされるプログラムの一部を指すエッジ処理部２００は、Ｓ８０２で生成されたページ中間言語を元に、ライン中間言語２１２の生成処理を行う（Ｓ８０３）。そして、エッジ処理部２００は、所定のブロック高さ分のライン中間言語２１２の生成処理が完了するまで処理を行う（Ｓ８０４にてＹＥＳ）。
【００３６】
次に、ＣＰＵ１１１にロードされるプログラムの一部を指すブロック分割部２０１は、ブロック高さ分のライン中間言語２１２から、所定の幅高のブロックデータを示すブロック中間言語２１３を生成するブロック分割処理を行う（Ｓ８０５）。
【００３７】
次に、ブロック分割部２０１は、ブロック分割処理（Ｓ８０５）で生成されたブロック中間言語２１３を解析し、解析したブロックに対する画像形成方法を判定するブロック画像形成方法選択処理を行う（Ｓ８０６）。ここでの処理についての詳細は、図９を用いて後述する。
【００３８】
次に、ブロック分割部２０１は、ブロック画像形成方法選択処理（Ｓ８０６）で選択された画像形成方法を指示する識別情報の付加と、選択された画像形成方法に応じたブロック中間言語２１３の生成処理を行う（Ｓ８０７）。ここでの処理についての詳細は、図１５を用いて後述する。
【００３９】
次に閉領域描画部２０２は、ブロックデータ中間言語生成処理（Ｓ８０７）で生成されたブロック中間言語２１３が指示する画像形成方法で、所定のブロックの画像形成処理を行い、ブロックピクセルデータ２１４を生成する（Ｓ８０８）。ここでの処理についての詳細は、図１８を用いて後述する。閉領域描画部２０２は、ＣＰＵ１１１にロードされるプログラムの一部、もしくは制御装置（コントローラ部）１１０に搭載のハードウェアのどちらでも構わない構成をとる。
【００４０】
ＣＰＵ１１１は、上記のＳ８０５〜Ｓ８０８の処理をページの幅分繰り返し処理を行う（Ｓ８０９）。さらに、ＣＰＵ１１１は、Ｓ８０３〜Ｓ８０９の処理をページ高さ分繰り返す（Ｓ８１０）ことにより、ページ画像の形成処理を行う。
【００４１】
［ブロック画像形成方法選択処理］
図９は、本実施形態における図８で示したブロック画像形成方法選択処理（Ｓ８０６）の詳細なフローを示す図である。
【００４２】
まず、ブロック分割部２０１は、画像形成処理を行うブロックの先頭ブロックラインの画像形成方法を選択するブロック先頭モード選択処理を行う（Ｓ９０１）。ここでは、例えば本実施形態では、直前に画像形成の対象となったブロックの最終ブロックラインの描画情報が利用可能かを判定する処理を行う。ここでの処理についての詳細は、図１０を用いて後述する。次に、ブロック分割部２０１は、画像形成の対象となるブロックの画像形成方法を選択するブロックモード選択処理を行う（Ｓ９０２）。ここでは、例えば本実施形態では、ブロック内に含まれる各ブロックラインの画像形成にて、先頭ブロックラインの描画情報が利用可能か、またどのように利用可能かを判定する処理を行う。ここでの処理についての詳細は、図１２を用いて後述する。
【００４３】
［ブロック先頭モード選択処理］
図１０は、本実施形態における図９で示したブロック先頭モード選択処理（Ｓ９０１）の詳細なフローを示す図である。
【００４４】
まず、ブロック分割部２０１は、直前に画像形成の対象となったブロックの最終ブロックラインの情報と、今回、画像形成の対象であるブロックの先頭ブロックラインの情報との、ブロックラインの比較処理を行う（Ｓ１００１）。ここでの処理についての詳細は、図１１を用いて後述する。次に、ブロック分割部２０１は、ブロックライン比較処理（Ｓ１００１）での二つのブロックラインの比較処理の結果が、同一であると判定されたか否かを判定する（Ｓ１００２）。
【００４５】
同一であると判定された場合（Ｓ１００２にてＹＥＳ）、Ｓ１００３に進む。ここで、ブロック分割部２０１は、直前に画像形成の対象となったブロックの最終ブロックラインの情報を、今回、画像形成の対象となるブロックの先頭のブロックラインの画像形成処理時にも利用可能と判定する。そこで、ブロック分割部２０１は、判定結果を識別可能にするブロック先頭モードへ所定の設定（ここでは“１”を指定）を行う（Ｓ１００３）。同一でないと判定された場合（Ｓ１００２にてＮＯ）、Ｓ１００４に進む。ここで、ブロック分割部２０１は、直前に画像形成の対象となったブロックの最終ブロックラインの情報を、今回、画像処理の対象となるブロックの先頭のブロックラインの画像形成処理時では利用不可と判定する。そこで、ブロック分割部２０１は、判定結果を識別可能にするブロック先頭モードへ所定の設定（ここでは“０”を指定）を行う（Ｓ１００４）。
【００４６】
［ブロックライン比較処理］
図１１は、本実施形態における図１０及び図１３で示すブロックライン比較処理（Ｓ１００１、Ｓ１３０５）の詳細なフローを示す図である。
【００４７】
ブロック分割部２０１は、まず比較するブロックライン同士の閉領域数が同一であるか否かを判定する（Ｓ１１０１）。同一であると判定した場合（Ｓ１１０１にてＹＥＳ）、Ｓ１１０２に進む。また同一でないと判定した場合（Ｓ１１０１にてＮＯ）、Ｓ１１０５に進み、ブロック分割部２０１は、比較した二つのブロックラインは異なるブロックラインであると判定する。ブロック分割部２０１は、ここでの判定結果を保持しておく。
【００４８】
ブロック分割部２０１は、ブロックラインに含まれる閉領域が保持するレイヤの組み合わせが全て同一であるかを判定する（Ｓ１１０２）。同一であると判定した場合（Ｓ１１０２にてＹＥＳ）、Ｓ１１０３に進む。また同一でないと判定した場合（Ｓ１１０２にてＮＯ）、Ｓ１１０５に進み、ブロック分割部２０１は、比較した二つのブロックラインは異なるブロックラインであると判定する。ブロック分割部２０１は、ここでの判定結果を保持しておく。ブロック分割部２０１は、Ｓ１１０２における判定処理を、ブロックラインに含まれる閉領域数分だけ処理を繰り返す（Ｓ１１０３）。そして、全ての閉領域にてレイヤの組み合わせが同一であった場合（Ｓ１１０３にてＹＥＳ）、Ｓ１１０４に進み、ブロック分割部２０１は、同一のブロックラインであり、同一の閉領域の構成を有するブロックラインが連続していると判定する（Ｓ１１０４）。ブロック分割部２０１は、ここでの判定結果を保持しておく。
【００４９】
［ブロックモード選択処理］
図１２は、本実施形態における図９で示したブロックモード選択処理（Ｓ９０２）の詳細なフローを示す図である。また図１４は、各ブロックの構成に応じて、上述した従来技術の手法により生成されるブロック中間言語の概念を示す図である。
【００５０】
図１２において、ブロック分割部２０１は、まず画像形成処理を行うブロックの構成の判別処理を行う（Ｓ１２０１）。ここでの処理についての詳細は、図１３を用いて後述するが、本実施形態では、ブロックの構成判別処理（Ｓ１２０１）は、例えばブロックライン毎の閉領域数及び閉領域毎に含まれるレイヤの組み合わせが同一であるかを判定する。
【００５１】
次に、ブロック分割部２０１は、ブロック構成判別処理（Ｓ１２０１）で取得する同一ブロックライン数が、画像形成処理の対象となるブロックの高さ（ブロックライン数）と同一であるかを判定する（Ｓ１２０２）。つまり、ブロックに含まれる全てのブロックラインの閉領域数及び各閉領域に含まれるレイヤの組み合わせが同一であるかをこの判定処理で判定する。
【００５２】
例えば、従来技術において、図１４で示すブロック２（１４０２）のブロックライン中間言語は、それぞれブロックライン中間言語１４２２〜１４２４の形式をとる。この時、ブロックライン中間言語１４２２〜１４２４の閉領域数及び各閉領域内に含まれるレイヤの組み合わせは同一となる。従って、このような場合、ブロックの先頭ラインのブロックライン中間言語１（１４２２）の情報を２ライン目以降のブロックラインでも利用可能であると分かる。また、図１４で示すブロック３（１４０３）のブロックライン中間言語は、それぞれブロックライン中間言語１４３２〜１４３４の形式をとる。同様にこの時、ブロックライン中間言語１４３２〜１４３４の閉領域数及び各閉領域内に含まれるレイヤの組み合わせは同一となる。従って、このような場合、ブロックの先頭ラインのブロックライン中間言語１（１４３２）の情報を２ライン目以降のブロックラインでも利用可能であると分かる。
【００５３】
ブロック分割部２０１は、判定処理（Ｓ１２０２、Ｓ１２０３）にて、このように閉領域数及び各閉領域内のレイヤ情報を最適化可能であるブロック構成であることを判定する。そして、ブロック分割部２０１は、その旨を識別可能なブロックモードの設定（ここでは“２”を設定）を行う（Ｓ１２０６）。
【００５４】
次に、ブロック分割部２０１は、ブロック構成判別処理（Ｓ１２０１）で取得するＭＡＸ閉領域数が“１”、且つＩｍａｇｅＦｌａｇ情報の値が“ＦＡＬＳＥ”であるかを判定する（Ｓ１２０３）。つまり、ここでブロックに含まれる全てのブロックラインの閉領域数が“１”で、各閉領域に含まれるレイヤの組み合わせが同一で且つ単色のレイヤのみで構成されることを判定することができる。これにより、ブロック内のブロックピクセルデータ２１４が１色の単色で示せることが分かる。
【００５５】
例えば、図１４で示すブロック１（１４０１）のブロックライン中間言語は、それぞれブロックライン中間言語１４１２〜１４１４の形式をとる。この時、ブロックライン中間言語１４１２〜１４１４は、全て白色描画となる。従って、１色の単色でブロックを表現可能となる。この場合、ブロック分割部２０１は、特に閉領域の情報を保持しなくても、単色情報でブロックの画像形成が可能であると判定し（Ｓ１２０３にてＹＥＳ）、その旨を識別可能なブロックモードの設定（ここでは“１”を設定）を行う（１２０５）。
【００５６】
次に、ブロック分割部２０１は、ブロック構成判別処理（Ｓ１２０１）で取得する同一ブロックライン数が、所定数以上であるかを判定する（Ｓ１２０４）。つまり、ブロックに含まれるブロックラインは、全てでなくとも、所定ライン数以上が閉領域数及び各閉領域に含まれるレイヤの組み合わせが同一であるかをこの判定処理で判定する。ここでの所定数は予め定義され、記憶部に保持されているものとする。
【００５７】
例えば、図１４で示すブロック４（１４０４）のブロックライン中間言語は、それぞれブロックライン中間言語１４２２〜１４２５の形式をとる。この時、ブロックライン中間言語１４２２〜１４２５の閉領域数及び各閉領域内に含まれるレイヤの組み合わせは例えば、Ｍ−１ライン目まで同一となる。従って、このような場合、ブロックの先頭ラインのブロックライン中間言語１の情報をＭ−１ライン目まで利用可能であると分かる。
【００５８】
ブロック分割部２０１は、Ｍ−１ライン目まで閉領域数及び各閉領域内のレイヤ情報を最適化可能であるブロック構成であることを判定し（Ｓ１２０４にてＹＥＳ）、その旨を識別可能なブロックモードの設定（ここでは“３”を設定）を行う（Ｓ１２０７）。また、所定数未満であると判定した場合（Ｓ１２０４にてＮＯ）、ブロック分割部２０１は、前述したような最適化が不可であるとして、ブロックライン中間言語の生成を行うブロックモードの設定（ここでは“４”を設定）を行う（Ｓ１２０８）。
【００５９】
最後に、ブロック分割部２０１は、次のブロックのブロック先頭モード選択処理（Ｓ９０１）の処理を行うための、最終ブロックラインのライン中間言語を内部に保持する処理を行う（Ｓ１２０９）。
【００６０】
［ブロック構成判別処理］
図１３は、本実施形態における図１２で示したブロック構成判別処理（Ｓ１２０１）の詳細なフローを示す図である。
【００６１】
ブロック分割部２０１は、まず画像形成を行うブロックの先頭ブロックラインの情報を取得する（Ｓ１３０１）。次に、ブロック分割部２０１は、ブロック構成判別処理で判別するブロックの構成情報を格納する各種変数の初期化を行う（Ｓ１３０２）。ここで初期化される変数は、ＭＡＸ閉領域数、同一ブロックライン数、ＩｍａｇｅＦｌａｇ情報、および全ブロックライン同一Ｆｌａｇが対象となる。ここで、各変数について説明する。ＭＡＸ閉領域数は、ブロックに含まれる各ブロックラインにおいて、閉領域の数が最も多い最大閉領域数を示す。同一ブロックライン数は、ブロックに含まれるブロックラインのうち、同一のブロックラインの数を示す。ＩｍａｇｅＦｌａｇ情報は、当該ブロックがイメージか否かを示す。全ブロックライン同一Ｆｌａｇは、ブロックに含まれるブロックラインが全て同一か否かを示す。
【００６２】
次に、ブロック分割部２０１は、次のブロックライン情報を取得する（Ｓ１３０３）。次に、ブロック分割部２０１は、前回取得したブロックラインとＳ１３０３で取得したブロックラインの閉領域数の比較を行う（Ｓ１３０４）。ブロック分割部２０１は、ブロックの最初の処理の場合は、先頭ブロックライン及び次のブロックラインの双方の閉領域数を識別する。その際、閉領域数が所定数以上と判定された場合、Ｓ１３０７に進み、ブロック分割部２０１は、ＭＡＸ閉領域数の更新を行う（Ｓ１３０７）。また閉領域数が所定数未満と判定された場合、Ｓ１３０５に進み、前回処理したブロックラインと、今回処理するブロックラインの比較処理を示すブロックライン比較処理を行う。ここでのブロックライン比較処理は、図１１を用いて説明したものと同様である。なお、Ｓ１３０４にて用いられる所定数の情報については、予め定義され、記憶部にて保持されているものとする。
【００６３】
次に、ブロック分割部２０１は、Ｓ１３０５のブロックライン比較処理で比較したブロックラインが同一であると判定されたか否かを判定する（Ｓ１３０６）。同一であると判定された場合（Ｓ１３０６にてＹＥＳ）、Ｓ１３０７に進む。また同一でないと判定された場合（Ｓ１３０６にてＮＯ）、Ｓ１３１５に進み、ブロック分割部２０１は、全ブロックライン同一Ｆｌａｇの更新処理を行う（Ｓ１３１５）。ここでの更新処理では、全ブロックライン同一Ｆｌａｇに“ＦＡＬＳＥ”を代入する。
【００６４】
次に、ブロック分割部２０１は、ＭＡＸ閉領域数と、現在のブロックラインの閉領域数との大小関係を比較する（Ｓ１３０７）。現在のブロックラインの閉領域数の方が大きい場合（Ｓ１３０７にてＹＥＳ）、Ｓ１３０８に進み、ブロック分割部２０１は、ＭＡＸ閉領域数の更新を行う（Ｓ１３０８）。ここでの更新処理は、ＭＡＸ閉領域数に現在のブロックラインの閉領域数を代入する。その後、Ｓ１３０９へ進む。ＭＡＸ閉領域数の方が大きい場合（Ｓ１３０７にてＮＯ）、Ｓ１３０９に進む。
【００６５】
次に、ブロック分割部２０１は、処理するブロックラインに単色以外のレイヤが存在するか否かを判定する（Ｓ１３０９）。存在すると判定された場合（Ｓ１３０９にてＹＥＳ）、Ｓ１３１０に進み、ＩｍａｇｅＦｌａｇ情報の更新処理を行う（Ｓ１３１０）。ここでの更新処理は、ＩｍａｇｅＦｌａｇ情報に“ＯＮ”を代入する。その後、Ｓ１３１１へ進む。存在しないと判定された場合（Ｓ１３０９にてＮＯ）、Ｓ１３１０に進む。ブロック分割部２０１は、同一ブロックライン数の更新処理を行う（Ｓ１３１１）。
【００６６】
次に、ブロック分割部２０１は、ブロックに含まれるライン数分の判定処理が完了したか否かを判定する（Ｓ１３１２）。完了していないと判定された場合（Ｓ１３１２にてＮＯ）、Ｓ１３０３に進み、ブロック分割部２０１は、ブロックライン数分処理を繰り返す。また完了したと判定された場合（Ｓ１３１２にてＹＥＳ）、Ｓ１３１３に進み、ブロック分割部２０１は、全ブロックライン同一Ｆｌａｇ情報を更新する（Ｓ１３１３）。ここでの更新処理では、全ブロックライン同一Ｆｌａｇに“ＴＲＵＥ”を代入する。
【００６７】
［ブロック中間言語生成処理］
図１５は、本実施形態における図８で示したブロック中間言語生成処理（Ｓ８０７）の詳細なフローを示す図である。また図１６は、その際に生成される本実施形態に係る各ブロックのブロック中間言語の概念を示す図である。
【００６８】
ここで、本実施形態におけるブロック中間言語の特徴として、図１４に示す従来のデータ構造とは異なり、各ブロックにおけるブロック中間言語の構成を示す情報を含んでいる。これは、ブロック内に含まれる各ブロックラインの構成を判別し、その判別結果に基づいた、ブロック中間言語のデータ構造を示す。この情報を用いることで、ブロック中間言語を用いて描画処理を行う際にどのようなデータ構造であるかを特定することができる。また、この本願発明に特有のデータ構造とすることで、中間言語のデータ量を削減しつつ、画像生成方法を選択する際の指標とすることができる。また、図１７についても、本実施形態において特徴とするデータ構造を示している。図１６、図１７についての詳細な説明は、フローと併せて後述する。
【００６９】
ブロック分割部２０１は、まず図１２にて示したブロックモード選択処理（Ｓ９０２）で選択されたブロックモードにどのモードが選択されているかを判定する処理を行う（Ｓ１５０１）。ブロック分割部２０１は、図９にて示したブロック画像形成方法選択処理（Ｓ８０６）で選択されたブロックモードに対応するブロック中間言語の生成処理を行う。まず、ブロックモードに“１”が設定されていた場合、そのブロックは単色情報で示すことが可能である。従って、ブロック分割部２０１は、閉領域に含まれるレイヤ情報から、ブロックの単色情報の算出処理を行う（Ｓ１５０２）。例えば、図１６に示すブロック１（１４０１）の場合は、白色が算出される。
【００７０】
次に、ブロック分割部２０１は、算出した単色情報及びブロック画像形成方法選択処理（Ｓ８０６）で選択されたブロックモードに応じたブロック中間言語１６１０の生成処理を行う（Ｓ１５０３）。例えばブロック１（１４０１）の場合、単色情報を示すブロックライン中間言語１６１２とブロックモードを示すブロックライン中間言語１６１１から構成されるブロック中間言語１６１０が生成される。
【００７１】
次に、ブロックモードに“２”が設定されていた場合、そのブロックは判定処理（Ｓ１２０２）で判定したように、ブロックの先頭ラインのブロックライン中間言語のみで画像形成可能である。従って、ブロック分割部２０１は、ブロックの先頭ラインのブロックライン中間言語で構成されるブロック中間言語１６２０の生成処理を行う（Ｓ１５０４）。
【００７２】
ブロック中間言語１６２０は、ブロック２（１４０２）の場合、該ブロックの先頭ラインのブロックライン中間言語１６２２を保持する構成をとる。さらに、ブロック中間言語１６２０は、ブロックライン中間言語１６２２を利用してブロックラインの画像形成を指示するブロックライン中間言語２〜Ｎ（１６２３）から構成される。さらに、ブロック中間言語１６２０は、ブロックモード１６２１を示す情報を付加したブロック中間言語として生成される。
【００７３】
またブロック中間言語１６２０は、ブロック３（１４０３）の場合、該ブロックの先頭ラインのブロックライン中間言語１６３２を保持する構成をとる。さらに、ブロックライン中間言語１６３２を利用してブロックラインの画像形成を指示するブロックライン中間言語２〜Ｎ（１６３３）から構成される。さらに、ブロックモードを示すブロックライン中間言語１６３１を付加したブロック中間言語として生成される。
【００７４】
次に、ブロックモードに“３”が設定されていた場合、そのブロックは判定処理（Ｓ１２０４）で判定したように、ブロックの先頭ラインのブロックライン中間言語で、所定のブロックラインまでの画像形成が可能である。従って、ブロック分割部２０１は、ブロックの先頭ラインのブロックライン中間言語と、所定のブロックラインからのブロックライン中間言語で構成されるブロック中間言語１６４０の生成処理を行う（Ｓ１５０５）。
【００７５】
ブロック中間言語１６４０は、例えばブロック４（１４０２）の場合、該ブロックの先頭ラインのブロックライン中間言語１６４２と、ブロックライン中間言語１６４２を利用して画像形成を指示するブロックライン中間言語２〜Ｍ−１（１６４３）から構成される。さらに所定ライン以降のブロックラインの画像形成を指示するブロックライン中間言語Ｍ〜Ｎ（１６４４）から構成される。ここでの所定ライン以降とは、同一ブロックライン数よりも後のブロックラインを意味する。さらに、ブロックモードを示すブロックライン中間言語１６４１を付加したブロック中間言語として生成される。
【００７６】
次に、ブロックモードに“４”が設定されていた場合、ブロック分割部２０１は、従来技術で示したように全ブロックライン分のブロックライン中間言語で構成されるブロック中間言語を生成する。
【００７７】
次に、ブロック分割部２０１は、図１０にて示したブロック先頭モード選択処理（Ｓ９０１）で選択されたブロック先頭モードにどのモードが選択されているかを判定する処理を行う（Ｓ１５０７）。ブロック先頭モードに、“１”が設定されていた場合、ブロック分割部２０１は、ブロック内の先頭ブロックラインのブロック中間言語も最適化したブロック中間言語の生成処理を行う（Ｓ１５０８）。例えば、図１７で示すブロック６（１７０１）の画像形成を行う場合、ブロック１（１４０１）とブロック６（１７０１）のブロック中間言語は共にブロック中間言語１６１０の形式をとる。従って、ブロックライン中間言語１〜Ｎも同一となるため、ブロック分割部２０１は、単色情報も省略したブロック中間言語１７１０へ再生成処理を行う。
【００７８】
またブロック７（１７０２）の画像形成を行う場合、ブロック３（１４０３）とブロック７（１７０２）のブロック中間言語は共にブロック中間言語１６３０の形式をとる。従って、ブロックライン中間言語１〜Ｎも同一となるため、ブロック分割部２０１は、ブロック３（１４０３）の先頭ブロックライン中間言語を利用することを指示するブロック中間言語１７１１の生成処理を行う（Ｓ１５０８）。
【００７９】
［ブロックレンダリング処理］
図１８は、本実施形態における図８で示したブロックレンダリング処理（Ｓ８０８）の詳細なフローを示す図である。
【００８０】
まず閉領域描画部２０２は、ブロック中間言語に含まれるブロック先頭モードに指定される値を判定する（Ｓ１８０１）。“０”が指定されていた場合（Ｓ１８０１にてＹＥＳ）、Ｓ１８０２に進む。そして、閉領域描画部２０２は、直前に画像形成処理を行ったブロックの最終ブロックラインにおけるブロックライン情報を格納するキャッシュブロックラインと呼ぶ領域情報を今回のブロックの画像形成でも利用すると判定する（Ｓ１８０２）。この場合、前回のブロックの画像形成処理時に既にブロックライン初期化処理（Ｓ１８０３）が行われ、継続と判定することで該キャッシュブロックラインに既に必要な情報が格納されていることとする。また“０”以外（すなわち“１”）が設定されていた場合（Ｓ１８０１にてＮＯ）、Ｓ１８０３に進み、閉領域描画部２０２は、ブロックライン初期化処理（Ｓ１８０３）を行う。ここでの処理についての詳細は、図１９を用いて後述するが、画像形成するブロックの先頭ブロックライン中間言語を元に、内部で処理可能な形式に変換など行う初期化処理をここで行う。
【００８１】
次に、閉領域描画部２０２は、ブロック中間言語に指定されるブロックモードに指定される値を判定する（Ｓ１８０４）。ブロックモードが“１”、“２”、“３”以外であった場合、Ｓ１８０５に進む。
【００８２】
次に、閉領域描画部２０２は、ブロック中間言語に指定されるブロックラインのレンダリング処理を行う。ここでの処理についての詳細は図２１を用いて後述するが、ここでは最適化されていない従来のブロック中間言語を元にレンダリング処理を行う。そして、閉領域描画部２０２は、ブロック高のレンダリング処理が完了したかを判定し（Ｓ１８０６）、ブロック高分のレンダリング処理を繰り返す（Ｓ１８０６にてＮＯ）。
【００８３】
次に、Ｓ１８０４にてブロックモードが“１”であった場合、Ｓ１８０７に進む。そして、閉領域描画部２０２は、ブロック中間言語に指定される単色情報の取得処理を行う（Ｓ１８０７）。例えば、ブロック１（１４０１）の画像形成の際は、閉領域描画部２０２は、単色情報（ブロックライン中間言語１６１２）を取得する（Ｓ１８０７）。次に、閉領域描画部２０２は、Ｓ１８０７で取得した単色情報（ブロックライン中間言語１６１２）がレンダリング後の結果であるため、その単色情報をそのままレンダリング結果として出力処理を行う（Ｓ１８０８）。そして、閉領域描画部２０２は、ブロック高のレンダリング処理が完了したかを判定し（Ｓ１８０９）、ブロック高分のレンダリング処理を繰り返す（Ｓ１８０９にてＮＯ）。
【００８４】
次に、Ｓ１８０４にてブロックモードが“２”であった場合、Ｓ１８１０に進む。そして、閉領域描画部２０２は、ブロック中間言語の先頭ブロックラインのブロックライン中間言語を利用した最適化したレンダリング処理を示す、キャッシュブロックラインレンダリング処理を行う（Ｓ１８１０）。ここでの処理についての詳細は、図２０を用いて後述する。そして、閉領域描画部２０２は、ブロック高分のレンダリング処理が完了したかを判定し（Ｓ１８１１）、ブロック高分のレンダリング処理が完了するまで繰り返す（Ｓ１８１１にてＮＯ）。
【００８５】
次に、Ｓ１８０４にてブロックモードが“３”であった場合、Ｓ１８１２に進む。そして、閉領域描画部２０２は、ブロック中間言語の先頭ブロックラインのブロックライン中間言語を利用した最適化したレンダリング処理を示す、キャッシュブロックラインレンダリング処理を行う（Ｓ１８１２）。ここでの処理は、Ｓ１８０１と同様であり、図２０を用いて後述する。ブロックモードが“３”が指定される場合は、所定ラインまでしか、キャッシュブロックラインレンダリング処理（図１２）を行えない。従って、閉領域描画部２０２は、所定ライン数分のキャッシュブロックラインレンダリング処理を繰り返し行う（Ｓ１８１３にてＮＯ）。
【００８６】
次に、閉領域描画部２０２は、ブロックラインレンダリング処理（Ｓ１８１４）を行う。ここでの処理は、Ｓ１８０５と同様であり、図２１を用いて後述する。そして、閉領域描画部２０２は、ブロック高のレンダリング処理が完了したかを判定し（Ｓ１８１５）、ブロック高分のレンダリングが完了するまでブロックラインレンダリング処理を繰り返す（Ｓ１８０６）。
【００８７】
［ブロックライン初期化処理］
図１９は、本実施形態における図１８で示したブロックライン初期化処理（Ｓ１８０３）の詳細なフローを示す図である。
【００８８】
閉領域描画部２０２は、まず画像形成を行うブロックの先頭ブロックライン中間言語の取得処理を行う（Ｓ１９０１）。次に、閉領域描画部２０２は、先頭ブロックライン中間言語から閉領域情報の取得及び必要な情報をキャッシュブロックラインに格納する（Ｓ１９０２）。次に、閉領域描画部２０２は、閉領域内に含まれるレイヤの初期化処理及びキャッシュブロックラインへの格納処理を行う（Ｓ１９０３）。閉領域描画部２０２は、ブロックライン内に含まれる閉領域数回分、Ｓ１９０２〜Ｓ１９０３の処理を繰り返し（Ｓ１９０４）、ブロックライン初期化処理を終了する。
【００８９】
［キャッシュブロックラインレンダリング処理］
図２０は、本実施形態における図１８で示したキャッシュブロックラインレンダリング処理（Ｓ１８１０、Ｓ１８１２）の詳細なフローを示す図である。
【００９０】
閉領域描画部２０２は、まずキャッシュブロックラインから必要な閉領域情報を取得する（Ｓ２００１）。ここでは既にブロックライン初期化処理（Ｓ１８０３）でレンダリング可能な形式に変換されていることとなるため、ここでは取得処理のみ行う。次に、閉領域描画部２０２は、Ｓ２００１で取得した閉領域情報を取得し、それを元にレンダリング処理を行う（Ｓ２００２）。閉領域描画部２０２は、ブロックライン内に含まれる閉領域数回分、Ｓ２００１〜Ｓ２００２の処理を繰り返し（Ｓ２００３）、キャッシュブロックラインレンダリング処理を終了する。
【００９１】
［ブロックラインレンダリング処理］
図２１は、本実施形態における図１８で示したブロックラインレンダリング処理（Ｓ１８０５、Ｓ１８１４）の詳細なフローを示す図である。
【００９２】
閉領域描画部２０２は、まずブロック中間言語から画像形成を行うブロックライン中間言語の取得処理を行う（Ｓ２１０１）。次に、閉領域描画部２０２は、Ｓ２１０１で取得したブロックライン中間言語から、閉領域情報を取得する（Ｓ２１０２）。次に、閉領域描画部２０２は、閉領域内に含まれるレイヤ情報の初期化処理を行う（Ｓ２１０３）。ここで、キャッシュブロックラインに格納される場合は本処理が省略可能であるが、本処理は毎ライン初期化処理を行う構成とする。
【００９３】
次に、閉領域描画部２０２は、Ｓ２１０２で取得した閉領域情報を元にレンダリング処理を行う（Ｓ２１０４）。閉領域描画部２０２は、ブロックライン内に含まれる閉領域数回分、Ｓ２１０１〜Ｓ２１０４の処理を繰り返し（Ｓ２１０５）、キャッシュブロックラインレンダリング処理を終了する。
【００９４】
なお、本実施形態において、例えば、図１６のブロック４で示したように、ブロックに含まれるブロックラインの構成が１回だけ変化する例を用いた。しかし、例えば、ブロックのサイズによっては、ブロック内において複数回、ブロックラインの構成が変化することが考えられる。この場合には、ブロックライン中間言語１６４１等に含まれる情報を増やすことなどにより対応することができる。
【００９５】
以上の処理により、ブロック分割時でも適切なブロックライン中間言語を利用した画像形成処理、及び処理の高速化が可能となる。
【００９６】
また、以上の処理、データ構造により、画像形成時に保持するデータ量の削減実現することができる。
【００９７】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013001043.tif 000003
【図２】
2013001043.tif 000004
【図３】
2013001043.tif 000005
【図４】
2013001043.tif 000006
【図５】
2013001043.tif 000007
【図６】
2013001043.tif 000008
【図７】
2013001043.tif 000009
【図８】
2013001043.tif 000010
【図９】
2013001043.tif 000011
【図１０】
2013001043.tif 000012
【図１１】
2013001043.tif 000013
【図１２】
2013001043.tif 000014
【図１３】
2013001043.tif 000015
【図１４】
2013001043.tif 000016
【図１５】
2013001043.tif 000017
【図１６】
2013001043.tif 000018
【図１７】
2013001043.tif 000019
【図１８】
2013001043.tif 000020
【図１９】
2013001043.tif 000021
【図２０】
2013001043.tif 000022
【図２１】
2013001043.tif 000023