(57)【要約】【課題】  大量のオブジェクトを含むページ画像に対してベクタ形式でタイル順変換処理を実行する際に、使用されるメモリサイズが飛躍的に増大してしまうことがある。【解決手段】  ベクタ形式でタイル順変換処理およびラスタ形式でタイル順変換処理のうち、それぞれの形式でのタイル順変換処理で使用されるメモリ量が少なくなる形式でのタイル順変換処理を実行するように制御する。【選択図】  図１０
2014000753.tif 000002
【特許請求の範囲】
【請求項１】
メモリに格納された画像データをタイルごとに分割する変換処理を行う画像処理装置であって、
前記画像を表すページラインのスパン情報を前記メモリに格納して、タイルごとのスパン情報に変換するタイル順変換処理を実行する第一の変換手段と、
前記画像を表すページラインのピクセル情報を前記メモリに格納して、タイルごとのピクセル情報に変換するタイル順変換処理を実行する第二の変換手段と、
前記第一の変換手段が前記画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量が、前記第二の変換手段が前記画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量以下である場合、前記第一の変換手段にタイル順変換処理を実行させ、前記第一の変換手段が前記画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量が、前記第二の変換手段が前記画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量より多い場合、前記第二の変換手段にタイル順変換処理を実行させるように制御する制御手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記制御手段は、
前記第一の変換手段が前記画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量を、前記画像を表すページラインのスパン情報を構成するスパンヘッダー情報および前記スパン情報に含まれるオブジェクト識別情報に基づいて求め、
前記第二の変換手段が前記画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量を、前記画像を表すピクセル情報を構成するピクセル数および１ピクセルあたりのデータサイズに基づいて求めることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記制御手段は、
前記第一の変換手段が前記画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量を、前記画像に含まれる描画オブジェクトの数と前記スパンヘッダー情報および前記オブジェクト識別情報のデータサイズとに基づいて求めることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記画像は、ページ画像であることを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記画像は、ページ画像の分割単位であるバンド領域の画像であることを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項６】
前記ページ画像は、複数のバンド領域の画像に分割され、
前記制御手段は、前記複数のバンド領域のそれぞれの画像について前記第一の変換手段が前記画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量と前記第二の変換手段が前記画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量とを比較することによって、前記第一の変換手段にタイル順変換処理を実行させるかまたは前記第二の変換手段にタイル順変換処理を実行させるかをバンド領域ごとに制御することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記複数のバンド領域のそれぞれのバンド高さは、同一であり、
前記タイル順に変換された後の画像のタイル高さは、前記バンド高さと同一であることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記画像が印刷される際の印刷設定に所定の印刷設定が設定されているかを判定する判定手段をさらに有し、
前記制御手段は、
前記判定手段によって前記所定の印刷設定が設定されていると判定された場合、前記第一の変換手段にタイル順変換処理を実行させ、前記判定手段によって前記所定の印刷設定が設定されていないと判定された場合、前記第二の変換手段にタイル順変換処理を実行させることを特徴とする請求項１乃至７の何れか１項に記載の画像処理装置。
【請求項９】
前記画像が印刷される際の印刷設定として設定される項目は、カラー設定、印刷解像度設定、用紙サイズ設定、ページ向き設定の少なくとも何れかを含み、
前記判定手段は、前記項目における印刷設定の設定値に基づいて、前記画像が印刷される際の印刷設定に所定の印刷設定が設定されているかを判定することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記制御手段は、
前記メモリに前記画像を重ね合わせるための被重畳画像が格納されている場合、前記第二の変換手段にタイル順変換処理を実行させることを特徴とする請求項１乃至９の何れか１項に記載の画像処理装置。
【請求項１１】
前記制御手段は、
前記第一の変換手段が前記画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量が、前記第二の変換手段が前記画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量以下である場合、前記タイル順変換処理を前記第一の変換手段に実行させると判定し、前記第一の変換手段が前記画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量が、前記第二の変換手段が前記ページ画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量より多い場合、前記タイル順変換処理を前記第二の変換手段に実行させると判定するタイル順変換方式判定手段と、
中間言語データから、ページライン順のスパン情報を生成するスパン生成手段と、
スパン情報から、ピクセル情報を生成するピクセル生成手段と、
を有し、
前記タイル順変換方式判定手段によって前記タイル順変換処理を前記第一の変換手段に実行させると判定された場合、
前記第一の変換手段は、前記スパン生成手段で生成されたページライン順のスパン情報に対して、タイル順変換処理を実行し、
前記ピクセル生成手段は、前記第一の変換手段によってタイル順変換処理された、タイル順のスパン情報からタイル順のピクセル情報を生成して、前記生成したタイル順のピクセル情報を印刷手段に送信し、
前記タイル順変換方式判定手段によって前記タイル順変換処理を前記第二の変換手段に実行させると判定された場合、
前記ピクセル生成手段は、前記スパン生成手段で生成されたページライン順のスパン情報からページライン順のピクセル情報を生成し、
前記第二の変換手段は、前記ピクセル生成手段によって生成された、ページライン順のピクセル情報に対して、タイル順変換処理を実行して、タイル順のピクセル情報を前記印刷手段に送信することを特徴とする請求項１乃至１０の何れか１項に記載の画像処理装置。
【請求項１２】
メモリに格納された画像データをタイルごとに分割する変換処理を行う画像処理方法であって、
第一の変換手段が、前記画像を表すページラインのスパン情報を前記メモリに格納して、タイルごとのスパン情報に変換するタイル順変換処理を実行する第一の変換工程と、
第二の変換手段が、前記画像を表すページラインのピクセル情報を前記メモリに格納して、タイルごとのピクセル情報に変換するタイル順変換処理を実行する第二の変換工程と、
制御手段が、前記第一の変換工程で前記画像に対してタイル順変換処理が実行される場合に用いられる前記メモリの使用量が、前記第二の変換工程で前記画像に対してタイル順変換処理が実行される場合に用いられる前記メモリの使用量以下である場合、前記第一の変換工程でタイル順変換処理を実行させ、前記第一の変換工程で前記画像に対してタイル順変換処理が実行される場合に用いられる前記メモリの使用量が、前記第二の変換工程で前記画像に対してタイル順変換処理が実行される場合に用いられる前記メモリの使用量より多い場合、前記第二の変換工程でタイル順変換処理を実行させるように制御する制御工程と、
を有することを特徴とする画像処理方法。
【請求項１３】
請求項１乃至１１の何れか１項に記載の各手段として、コンピュータを機能させることを特徴とするコンピュータプログラム。
【請求項１４】
メモリを有する画像処理装置であって、
ページラインのスパン情報で表現された画像データを、前記メモリに格納した後、タイルごとのスパン情報に変換する変換処理を実行する第一の変換手段と、
ページラインのピクセル情報で表現された画像データを、前記メモリに格納した後、タイルごとのピクセル情報に変換する変換処理を実行する第二の変換手段と、
前記第一の変換手段および前記第二の変換手段のうち、処理対象の画像データをタイルごとに変換する際に使用される前記メモリ量が少なくなる変換手段に、前記処理対象の画像データに対する変換処理を実行させるように制御する制御手段と、
を有することを特徴とする画像処理装置。
【請求項１５】
前記制御手段は、
前記処理対象の画像データを前記第一の変換手段を用いて変換する際に使用される前記メモリ量に関する情報または前記処理対象の画像データを前記第二の変換手段を用いて変換する際に使用される前記メモリ量に関する情報の少なくとも何れか一方の情報に基づいて、前記第一の変換手段および前記第二の変換手段のうちいずれか一方の変換手段に前記処理対象の画像データに対する変換処理を実行させるように制御することを特徴とする請求項１４に記載の画像処理装置。
【請求項１６】
前記処理対象の画像データを前記第一の変換手段を用いて変換する際に使用される前記メモリ量に関する情報は、前記画像データに含まれる描画オブジェクトの数であることを特徴とする請求項１５に記載の画像処理装置。
【請求項１７】
前記処理対象の画像データを前記第二の変換手段を用いて変換する際に使用される前記メモリ量に関する情報は、前記画像データを印刷手段で印刷する際の印刷設定の情報であることを特徴とする請求項１５または１６に記載の画像処理装置。
【請求項１８】
前記制御手段は、
前記メモリに前記処理対象の画像データを重ね合わせるための被重畳画像が格納されている場合、前記第二の変換手段にタイル順変換処理を実行させることを特徴とする請求項１４乃至１７の何れか１項に記載の画像処理装置。
【請求項１９】
メモリを有する画像処理装置の実行する画像処理方法であって、
ページラインのスパン情報で表現された画像データを、前記メモリに格納した後、タイルごとのスパン情報に変換する変換処理を実行する第一の変換工程と、
ページラインのピクセル情報で表現された画像データを、前記メモリに格納した後、タイルごとのピクセル情報に変換する変換処理を実行する第二の変換工程と、
前記第一の変換工程および前記第二の変換工程のうち、処理対象の画像データをタイルごとに変換する際に使用される前記メモリ量が少なくなる変換工程で、前記処理対象の画像データに対する変換処理を実行させるように制御する制御工程と、
を有することを特徴とする画像処理方法。
【請求項２０】
請求項１４乃至１８の何れか１項に記載の各手段としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、画像処理方法、プログラムに関するものである。特にページ画像データをタイル順に変換する技術に関するものである。
【背景技術】
【０００２】
従来、画像形成処理において、画像データを矩形のタイルごとの画像データに変換し、後段の画像処理をタイル単位で並列に行うことで、高速に印刷を行う技術がある。画像データをタイルごとの画像データに変換する処理をタイル順変換処理と呼ぶ。タイル順変換処理は、ページライン順にワークバッファに入力し、所定のタイル高さ分バッファされた画像データを、タイルごとの画像データに分割して、タイル順に出力する処理である。このようにタイル順変換処理では、画像データをワークバッファに一時的に格納する必要があり、所定のバッファサイズが必要となる。
【０００３】
特許文献１は、画像データを、ラスタライズ後のラスタ形式でなく、ラスタライズ前のベクタ形式でワークバッファに格納して、ベクタ形式でタイル順変換処理を行うことで、必要となるバッファサイズを削減する技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２６９３５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のベクタ形式でのタイル順変換処理を行う場合、大量のオブジェクトを含むページ画像に対しては、必要とするワークバッファのメモリサイズが飛躍的に増大してしまうことがある。
【０００６】
上記事情に鑑みて本発明は、タイル順変換処理において、ページ画像の内容に起因するメモリサイズの飛躍的な増大を抑制することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の画像処理装置は、メモリに格納された画像データをタイルごとに分割する変換処理を行う画像処理装置であって、前記画像を表すページラインのスパン情報を前記メモリに格納して、タイルごとのスパン情報に変換するタイル順変換処理を実行する第一の変換手段と、前記画像を表すページラインのピクセル情報を前記メモリに格納して、タイルごとのピクセル情報に変換するタイル順変換処理を実行する第二の変換手段と、前記第一の変換手段が前記画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量が、前記第二の変換手段が前記画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量以下である場合、前記第一の変換手段にタイル順変換処理を実行させ、前記第一の変換手段が前記画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量が、前記第二の変換手段が前記画像に対してタイル順変換処理を実行する場合に用いられる前記メモリの使用量より多い場合、前記第二の変換手段にタイル順変換処理を実行させるように制御する制御手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、タイル順変換処理において、ページ画像の内容に起因するメモリサイズの飛躍的な増大を抑制することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態における、画像処理装置１００の一実施形態を示すブロック図
【図２】本発明に関わる、ページ画像データを、ページライン順からタイル順に変換する際の一例を示す概念図
【図３】本発明に関わる、ページライン順及びタイル順のラスタ情報のデータ形式の一例を示す概念図
【図４】本発明に関わる、ページ内に含まれるスパン情報の一例を示す概念図
【図５】本発明に関わる、ページライン順及びタイル順のスパン情報のデータ形式の一例を示す概念図
【図６】本発明に関わる、スパン情報のデータサイズが飛躍的に膨大なサイズになる一例を示す図
【図７】本発明の実施例における、画像処理装置１００の、ページ画像に対する画像形成処理の一連の処理フローを示す図
【図８】本発明の実施例における、中間言語生成処理（Ｓ７０２）の詳細なフローを示す図
【図９】本発明の実施例における、オブジェクト分布テーブル更新処理（８０３）で用いるオブジェクト分布テーブルの概念図及び更新処理の一例を示す図。
【図１０】本発明の実施例における、タイル順変換方式選択処理（Ｓ８０５）の、第一の実施形の詳細なフローを示す図
【図１１】本発明の実施例における、タイル順変換方式選択処理（Ｓ８０５）の、第二の実施形の詳細なフローを示す図
【図１２】本発明の実施例における、レンダリング処理（Ｓ７０３）の、第一の実施形の詳細なフローを示す図
【図１３】本発明の実施例における、レンダリング処理（Ｓ７０３）の、第二の実施形の詳細なフローを示す図
【発明を実施するための形態】
【００１０】
（実施例１）
以下、本発明の実施の形態を、図面を参照して説明する。
【００１１】
本実施例の、画像処理装置１００はＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）である。しかし本発明はＭＦＰに限定されず、ＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）やＬＢＰ（Ｌａｓｅｒ  Ｂｅａｍ  Ｐｒｉｎｔｅｒ）、インクジェットプリンタ、その他のプリント方式のプリンタに適用されてもよい。
【００１２】
＜画像処理装置のハードウェア構成＞
図１は、画像処理装置１００の一実施形態を示すブロック図である。画像処理装置１００は、イーサネット等のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）にて、ホストコンピュータである情報処理装置１６０に接続されている。前記画像処理装置１００は、リーダー部１４０、プリンタ部１５０、操作／表示部１２０、データ記憶部１３０、さらに、これら各構成要素を制御する制御部（コントローラ）１１０によって構成されている。
【００１３】
制御部１１０は、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３等を有する。ＣＰＵ１１１はＲＯＭ１１２または他の記憶媒体に格納されたプログラムに基づいて、画像処理装置１００全体の制御処理及び、画像形成の指示に従い、ページ画像に対する画像形成処理を行う。この画像形成処理について図７を用いて後述する。ＲＡＭ１１３はバンド領域の画像を一時的に格納するワークバッファとしても機能する。バンド領域の画像は、ページ画像のレンダリング処理を行う際に、所定サイズの分割単位でページ画像を複数の領域（バンド領域）に分割した、分割画像のことである。なおワークバッファのことを単にメモリと呼ぶこともある。なお、以下でいう画像とは、概念としての画像だけでなく、データとしての画像データのことも指すこともある。
【００１４】
操作／表示部１２０は、画像形成処理を行うための各種印刷設定を印刷ジョブ（印刷データ）に対して設定するための操作を行うキーボード、及び印刷設定を行う操作ボタン等の表示を行う液晶パネルを備える。なおの項目の種類は、例えば、「カラー設定」、「印刷解像度設定」、「用紙サイズ設定」、「ページ向き設定」等の項目がある。「カラー設定」とは、画像形成処理によって例えばＣＭＹＫの４色カラー画像を生成するのか、或いはモノクロ画像を生成するのかの設定である。「印刷解像度設定」とは、画像形成処理において生成される画像の解像度の設定である。「用紙サイズ設定」とは、画像形成処理によって生成される画像が印刷される用紙の大きさの設定である。「ページ向き設定」とは、画像形成処理によって生成される画像が印刷される際の用紙の向きの設定である。以下で明らかになるように、これらの印刷設定は、タイル順変換処理におけるワークバッファのメモリ使用量に影響を与える。
【００１５】
プリンタ部１５０は、制御部１１０から画像データを受信して、設定された各種印刷設定に基づいて画像データの印刷を行う。
【００１６】
データ記憶部１３０は、画像データやドキュメントデータ、印刷装置制御言語（例えば、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ））などの印刷データの格納／保存ができる。例えば、データ記憶部１３０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を介して情報処理装置１６０より受信した画像データ・ドキュメントデータ・ＰＤＬデータや、リーダー部１４０を制御して読み込む画像データの格納／保存ができる。
【００１７】
＜画像処理装置における画像形成処理＞
図７は、本実施例における画像処理装置１００の、ページ単位の画像（ページ画像）に対する画像形成処理の一連の処理フローであって、制御部１１０によって実行される。ＣＰＵ１１１が図７の処理を実行するためのプログラムをＲＯＭ１１２からＲＡＭ１１３へロードし、実行することにより、制御部１１０は図７の処理を実行することになる。
【００１８】
まず、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で示されたページ画像の印刷データが、情報処理装置１６０から画像処理装置１００に送信される。そして制御部１１０は、受信したＰＤＬの印刷データを、データ記憶部１３０に格納する。次に、印刷処理を行うため、制御部１１０は、データ記憶部１３０から印刷データを取得して画像形成処理を開始する。
【００１９】
まず制御部１１０は、取得した印刷データの解析処理を行い、ページ画像に含まれる図形オブジェクト（グラフィック）や写真オブジェクト（イメージ）などの描画オブジェクトを抽出する（Ｓ７０１）。描画オブジェクトは単にオブジェクトと呼ばれることがある。
【００２０】
次に制御部１１０は、解析した印刷データから、レンダリング可能な中間言語データを生成する（Ｓ７０２）。ここで述べる中間言語生成処理（図８参照）では公知の技術による中間言語生成処理と、本発明の特徴である、タイル順変換処理方式選択処理（図１０参照）の二つの処理が行われる。
【００２１】
続いて、制御部１１０は、Ｓ７０２で変換された中間言語およびタイル順変換処理方式選択処理による選択結果に基づいて、タイル順変換処理（後述）を伴うレンダリング処理（図１２参照）を行う（Ｓ７０３）。その結果として、ページ画像を表すラスタデータの生成が行われる。なお生成されたラスタデータは、ページ画像をタイル状に分割したタイル画像データであり、このタイル画像データは、タイル単位で後段の画像処理が施される。そしてこの後段の画像処理が施された後、タイル画像データはプリンタ部１５０へ送信され、プリンタ部１５０は受信したタイル画像データに従って、画像の印刷を行う。
【００２２】
なお本実施例では、制御部１１０が処理する構成を示しているが、専用のハードウェアで一連の処理を行う構成であっても構わない。
【００２３】
＜タイル順変換処理の概要＞
本発明の特徴であるタイル順変換方式選択処理を説明する前に、以下で各データ形式でのタイル順変換処理について説明する。
【００２４】
＜ラスタ形式でのタイル順変換処理＞
まず、レンダリング処理におけるタイル順変換処理をラスタ形式で行う場合について図２、３を用いて説明する。このラスタ形式でのタイル順変換処理は、後述する図１２のＳ１２０６の処理と同様であり、レンダリング後のピクセル情報（ラスタ情報）に対して行われる。
【００２５】
図２は、本実施例におけるページ画像及びタイルの概念図であり、さらにタイル順変換処理で行うデータの並び替えの概念図である。
【００２６】
本発明において制御部１１０は、図２（ａ）の「ページ画像概念図」で示すページ画像を、図２（ｃ）の「タイル分割概念図」で示すように、所定サイズのタイル領域に分割する。分割の際、レンダリング後のラスタ形式のページ画像の画像データの並びは図２（ｂ）の「データ順（ページライン順）概念図」で示すように、ページ幅分のライン単位でワークバッファに入力される。ここでいうページ幅は、図２（ｂ）の「データ順（ページライン順）概念図」において１つの矢印の横方向の長さに相当する。入力される順番は、上からのライン順（ライン１、ライン２、ライン３、ライン４、ライン５、ライン６の順）でワークバッファに入力される構成をとる。
【００２７】
そして制御部１１０は、タイル順変換処理によって、図２（ｄ）の「データ順（タイル順）概念図」に示すように、ワークバッファに格納された画像データの並びを、所定のタイル幅分のライン単位の順（タイルライン順）に変換してワークバッファから出力する。ここでいうタイル幅は、図２（ｄ）の「データ順（タイル順）概念図」において１つの矢印の横方向の長さに相当する。ワークバッファから出力されるタイルライン順の画像データは、「タイル分割概念図」に示す所定サイズのタイル領域の画像データとして分割されたタイル画像データである。図２（ｃ）の「タイル分割概念図」、図２（ｄ）の「データ順（タイル順）概念図」を参照すると、タイル１は、タイル幅分のラインであるタイルライン１−１およびタイルライン１−２で構成されていることが分かる。タイル２〜５についても同様である。すなわち、タイル順変換処理は、ページ幅分のライン単位の順（ページライン順）の並びで表現される画像データ（ページライン順の画像データ）を、タイル幅分のライン単位の順（タイル順）の並びで表現される画像データ（タイル順の画像データ）に変換する処理である。
【００２８】
なお図２（ｄ）「データ順（タイル順）概念図」で示した例では、１つのタイルはタイル幅分の２つのラインで構成されており、この２ライン分の高さがタイル高さとなる。すなわち、１つのタイルを構成するために必要なタイル幅分のライン数をタイル高さと呼ぶ。また、このタイル高さは、複数のタイル（図２（ｃ）の「タイル分割概念図」ではタイル１〜タイル５）で構成されるバンド領域の高さにも相当するため、バンド高さとも呼ばれることもある。なお、上述のタイル高さ、タイル幅、ページ幅は一例であり、本発明は、これに限定されることはない。以上で説明したタイル幅、タイル高さの概念については、図４、５を用いて説明されるベクタ形式でのタイル順変換処理においても同様である。
【００２９】
図３は、本実施例における図２で示したページライン順及びタイル順のラスタデータの概念図である。
【００３０】
前記ページ画像データは、図３（ａ）の「ラスタ情報（ページライン順）概念図」で示すようにピクセルデータが、ページ幅分のライン単位で左端から右端方向に続く順番のデータフォーマットとなる。このデータフォーマットにおけるピクセルデータの順番は、図３に示すようにＰｉｘｅｌ１−１、Ｐｉｘｅｌ１−２、・・・Ｐｉｘｅｌ１−４９６０、Ｐｉｘｅｌ２−１、Ｐｉｘｅｌ２−２、・・・Ｐｉｘｅｌ２−４９６０、・・・の順である。
【００３１】
制御部１１０は、タイル順変換処理において、図３（ａ）のような並びにピクセルデータを、図３（ｂ）の「ラスタ情報（タイル順）概念図」で示すような、タイル幅分のライン（タイルライン）単位で、タイル領域ごとのピクセルデータを上から順に並べる。このようなページライン順のデータフォーマットであるピクセルデータをタイル順のデータフォーマットであるピクセルデータに並べ替えることで、タイル順変換処理を実現する。
【００３２】
タイル順のデータフォーマットにおけるピクセルデータの順番は、図３に示すように、タイルライン１−１、タイルライン１−２、・・・タイルライン１−ｎ、・・・タイルライン１−３２、タイルライン２−１、タイルライン２−２、・・・タイルライン２−ｎ、・・・タイルライン２−３２、・・・の順である。つまり、ピクセルデータは、Ｐｉｘｅｌ１−１、Ｐｉｘｅｌ１−２、・・・Ｐｉｘｅｌ１−１０２４、Ｐｉｘｅｌ２−１、Ｐｉｘｅｌ２−２、・・・Ｐｉｘｅｌ２−１０２４、・・・Ｐｉｘｅｌ３２−１、・・・Ｐｉｘｅｌ３２−１０２４、Ｐｉｘｅｌ１−１０２５、Ｐｉｘｅｌ１−１０２６、・・・Ｐｉｘｅｌ１−２０４８、Ｐｉｘｅｌ２−１０２５、・・・Ｐｉｘｅｌ２−２０４８、・・・の順番に並ぶ。
【００３３】
このように、ページライン順のピクセルデータを、タイル順のピクセルデータに分割、変換する処理を以降、「タイル順変換（ラスタ方式）処理」と称す。タイル順変換（ラスタ方式）処理により、タイルごとにまとまったピクセルデータを後段の処理部へと受け渡すことが容易となる。タイル順変換（ラスタ方式）処理を実行する場合、制御部１１０は、まず、図３（ａ）の「ラスタ情報（ページライン順）概念図」で示すタイル高さ分のページライン順のラスタ画像を一時的にワークバッファに格納する。そして制御部１１０は、タイル順に読みだすことでタイル順変換（ラスタ方式）処理を実現する。その際に必要なワークバッファの使用量（バッファメモリサイズ）の算出方法は、以下の式で表わされる。
【００３４】
バッファメモリサイズ（ラスタ方式）  ＝  
（主走査方向ピクセル数）  ×  （タイル高さ分ピクセル数）  
×  （１ｐｉｘｅｌ当たりのデータサイズ（例えばＣＭＹＫ（１ｃｈａｎｎｅｌ辺り８ｂｉｔ）の際：４ｂｙｔｅ）    （式１）
例えば１ピクセルの画素データが１色当たり８ｂｉｔ（＝１ｂｙｔｅ）のシアン（Ｃ）・マゼンタ（Ｍ）・イエロー（Ｙ）・ブラック（Ｋ）のＣＭＹＫ４つの色版で構成される場合、１ｐｉｘｅｌ当たりのデータサイズは４ｂｙｔｅである。また本実施例では、６００ｄｐｉの印刷解像度におけるＡ４サイズの主走査方向のピクセル数は４９６０であり、タイル高さ分のピクセル数は３２ピクセルである。したがって本実施例におけるＡ４サイズの縦向き画像（４９６０ｐｉｘｅｌ×３２ｐｉｘｅｌ）のラスタ方式におけるバッファメモリサイズは、式１によれば、６３４，８８０  ｂｙｔｅ（＝４９６０×３２×４）となる。
【００３５】
すなわちバッファメモリサイズ（ラスタ方式）は、ページ画像中のオブジェクト数やオブジェクト配置といった画像内容に関わらず、色版数、印刷解像度、用紙サイズ、ページ向き、タイル高さによって決定される。本実施例のようにタイル高さ（バンド高さ）がバンドごとに同一である場合、ひとつの印刷ジョブ中で、印刷設定は同一であるはずだから、バッファメモリサイズ（ラスタ方式）は全てのバンド領域について一定の値となる。
【００３６】
＜ベクタ形式でのタイル順変換処理＞
次に、レンダリング処理におけるタイル順変換処理をベクタ形式で行う場合について図４、５を用いて説明する。このベクタ形式でのタイル順変換処理は、後述する図１２のＳ１２０３の処理と同様であり、レンダリング前のスパン情報（ベクタ情報）に対して行われる。
【００３７】
図４は、本実施例におけるベクタ情報の概念図である。図４（ａ）は、ページ画像におけるバンド４０１に含まれる各オブジェクトによるスパン情報を示す図である。図４（ｂ）は、バンド４０１をタイル分割した際の、バンド４０１に含まれるタイル順のスパン情報を示す図である。スパン情報とは、１つのラインをオブジェクトのエッジで区切った場合の、エッジを端点として持つライン中の閉領域を示す。また図４（ａ）は後述する図５（ａ）のデータ順を表す概念図であり、図４（ｂ）は図５（ｂ）のデータ順を表す概念図である。
【００３８】
図４（ａ）に示されるバンド４０１中のスパン情報のように、各バンドに含まれるスパン情報の種類は、オブジェクトの位置に従って縦方向（副走査方向）に３つに分割された各領域によって、異なる。
【００３９】
例えば、ページ４００のように描画オブジェクトである図形オブジェクト（グラフィック）４０２と写真オブジェクト（イメージ）４０３が含まれるページの描画を説明する。その際、所定のバンド高さを持つバンド４０１に着目すると、バンド内のラインは、図に示すように、スパン１、スパンｍ、スパンｍ＋１、スパンｎ、スパンｎ＋１、スパンｎ＋２、スパンｎ＋３のように複数の種類のスパンに分割される。詳細には、領域１は、領域１の高さに相当するライン数分のスパン１で構成される。また領域２は、領域２の高さに相当するライン数分のスパンｍ、スパンｍ＋１で構成される。また領域３は、領域３の高さに相当するライン数分のスパンｎ、スパンｎ＋１、スパンｎ＋２、スパンｎ＋３で構成される。
【００４０】
図４（ｂ）に示される破線で囲まれた領域は、図４（ａ）のバンド４０１に対応する領域である。また図４（ｂ）に示される破線領域内の各タイル領域は、図２（ｃ）で説明した各タイル領域と対応しており、所定のタイル幅およびタイル高さを有する。また、図４（ｂ）に示されるタイル領域のサイズは、図２（ｃ）で説明したタイル領域のサイズと等しい。
【００４１】
例えば、図４（ｂ）のタイル１は、領域４の高さに相当するライン数分のスパンａ、領域５の高さに相当するライン数分のスパンｂ、領域６の高さに相当するライン数分のスパンｃおよびスパンｃ＋１のセットを含む。またタイル２は、領域７の高さに相当するライン数分のスパンｘ、領域８の高さに相当するライン数分のスパンｙおよびスパンｙ＋１のセット、領域９の高さに相当するライン数分のスパンｚおよびスパンｚ＋１のセットを含む。
【００４２】
図５（ａ）、（ｂ）は、本実施例における図４（ａ）、（ｂ）で示したページライン順及びタイル順のスパン情報で表された画像データのデータフォーマットを示す概念図である。なお図５（ａ）に示されるスパン情報は、ステップＳ７０２で生成される中間言語データをもとに生成される、ページライン順のスパン情報である。中間言語データからページライン順のスパン情報の生成方法は様々な方法があり、本発明は中間言語データからページライン順のスパン情報の生成方法の違いによって限定されるわけではない。
【００４３】
各スパン情報は、図５（ａ）の「スパン情報（ページライン順）概念図」で示すように、各スパン番号で示されるスパンのスパンヘッダー情報と、スパンに含まれるオブジェクトの識別情報（オブジェクト識別情報）から構成される。スパンヘッダー情報は、各スパン番号で示されるスパンのスパン長やスパンに含まれるオブジェクト数を示す情報である。例えば、図４（ａ）に示されるタイル順変換処理前の領域２におけるスパンｍのスパンヘッダー情報は、図５（ａ）に示される通り、スパン長１５３６ｐｉｘｅｌであり、このスパンｍに含まれるオブジェクト数は１つのため、Ｎｕｍ：１となる。またスパンｍには、グラフィック（４０２）が含まれるため、スパンｍのスパン情報にはグラフィック（４０２）を示すオブジェクト識別情報（グラフィック）が含まれる構成となる。また、図４（ａ）の領域３におけるスパンｎ＋１は、グラフィック（４０２）とイメージ（４０３）が重なる領域となる。従って、オブジェクト数は２つになるため、スパンｎ＋１のスパンヘッダー情報はＮｕｍ：２となる。そしてスパンｎ＋１のスパン情報は、オブジェクト識別情報としてグラフィック（４０２）を示す識別情報と、イメージ（４０３）を示す識別情報を含む構成をとる。
【００４４】
そして制御部１１０は、図５（ａ）に示すようなページライン順のスパンデータを、図５（ｂ）の「スパン情報（タイル順）概念図」に示すようなタイル順のスパンデータに並び変える処理を行う。この処理のことをタイル順変換（ベクタ方式）処理と呼ぶ。
【００４５】
例えば、図４（ｂ）に示されるタイル順変換処理後の領域５におけるスパンａのスパンヘッダー情報は、図５（ｂ）に示される通り、スパン長１０２４ｐｉｘｅｌであり、このスパンａに含まれるオブジェクト数は１つであるため、Ｎｕｍ：１となる。そしてスパンａには、グラフィック（４０２）が含まれるため、スパンａのスパン情報にはグラフィック（４０２）を示すオブジェクト識別情報が含まれる。また、例えば図４（ｂ）に示される領域６スパンｃ＋１のスパンヘッダー情報は、図５（ｂ）に示される通り、スパン長２５６ｐｉｘｅｌである。またスパンｃ＋１にはグラフィック（４０２）とイメージ（４０３）の２つのオブジェクトが重なって含まれるため、スパンヘッダー情報の示すオブジェクト数は２つであり、Ｎｕｍ：２となる。そしてスパンｃ＋１のスパン情報にはグラフィック（４０２）とイメージ（４０３）を示すオブジェクト識別情報が含まれる。
【００４６】
すなわち、タイル順変換（ベクタ方式）処理は、ページライン順のスパンデータで表現されるデータフォーマットの画像データを、タイル順のスパンデータで表現されるデータフォーマットに変換する処理であることがわかる。ページライン順のスパンデータで表現されるデータフォーマットにおいて、スパンデータの順番は、例えば図５（ａ）に示すようにスパン１、スパン１、・・・スパンｍ、スパンｍ＋１、スパンｍ、スパンｍ＋１、・・・スパンｎ、スパンｎ＋１、スパンｎ＋２、スパンｎ＋３、スパンｎ、スパンｎ＋１、スパンｎ＋２、スパンｎ＋３、・・・の順である。また、タイル順のスパンデータの順番は、例えば図５（ｂ）に示すように、スパンａ、スパンａ、・・・スパンｂ、スパンｂ、・・・スパンｃ、スパンｃ＋１、スパンｃ、スパンｃ＋１、・・・スパンｘ、スパンｘ、・・・スパンｙ、スパンｙ＋１、スパンｙ、スパンｙ＋１、・・・スパンｚ、スパンｚ＋１、スパンｚ、スパンｚ＋１、・・・の順である。
【００４７】
このような、ページライン順のスパンデータを、タイル順のスパンデータに分割、変換する処理が、タイル順変換（ベクタ方式）処理である。タイル順変換（ベクタ方式）処理により、タイルごとにまとまったスパンデータを後段の処理部へと受け渡すことが容易となる。タイル順変換（ベクタ方式）処理を実行する場合、制御部１１０は、図５（ａ）の「スパン情報（ページライン順）概念図」で示すタイル高さ分のページライン順のスパンデータを一時的にワークバッファに格納する。そして制御部１１０は、スパンデータをタイル幅に分割してタイル順に読みだすことでタイル順変換（ベクタ方式）処理を実現する。その際に必要なバッファメモリサイズは、ページラインごとの（スパン数×スパンヘッダー情報のサイズ＋各スパン内に含まれるオブジェクト数×オブジェクト識別情報のサイズ）を、タイル高さ分足し合わせた総和の値となる。
【００４８】
すなわちバッファメモリサイズ（ベクタ方式）は、画像中に含まれるオブジェクトの数や配置によって決定されるスパン情報に基づいて求められる。そしてこのバッファメモリサイズ（ベクタ方式）は、ページ画像中のオブジェクト数やオブジェクト配置といった画像内容によって変動する。
【００４９】
＜大量のオブジェクトを含むページ画像のタイル順変換処理＞
図６は、本実施例におけるスパン情報のデータサイズが飛躍的に膨大なサイズになる一例を示す図である。
【００５０】
例えば図６のように、所定の領域内に１×１の大量の異なるイメージを描画するような場合、スパンデータは図５（ａ）の「スパン情報（ページライン順）概念図」が示すような構造となり、スパンとしては１５８７２０個（４９６０×３２個）存在することとなる。すると、例えば前記スパンヘッダー情報のサイズが４バイト、オブジェクト識別情報のサイズが４バイトである場合、一時格納するバッファメモリのサイズは、以下のサイズになる。
【００５１】
バッファメモリサイズ（ベクタ方式）  ＝  
（スパン数×４＋スパン内に含まれるオブジェクト数×４）    ×（タイル高さ分ピクセル数）      （式２）
したがって、タイル高さ（バンド高さ）を３２ピクセルとした場合の、図６のページ画像に対するベクタ形式でのタイル順変換処理に必要なワークバッファの使用量であるバッファメモリサイズは、
バッファメモリサイズ（ベクタ方式）  ＝  
（（４９６０ｓｐａｎ  ×  ４）  ＋  （４９６０ｏｂｊｅｃｔｓ  ×  ４））  ×  ３２  ＝  １，２６９，７６０  ｂｙｔｅ
となる。
【００５２】
一方で、バンド高さを３２ピクセルとした場合の、このページ画像に対してラスタ形式でタイル順変換処理を行う際に必要となるバッファメモリサイズは、先に計算したように６３４，８８０  ｂｙｔｅとなり、ベクタ形式でのタイル順変換処理で必要なメモリサイズよりも小さい。
【００５３】
なお、ページ画像中の描画オブジェクトはユーザが自由に追加可能のため、上記以上のサイズのワークバッファのサイズが必要になるケースが存在する。
【００５４】
このように、ページ画像にオブジェクトが大量に含まれている場合にベクタ形式でのタイル順変換処理を行うと、ラスタ形式でのタイル順変換処理よりもワークバッファのサイズが必要になることがある。
【００５５】
また、スパン情報の性質上、オブジェクトが重なっている場合、スパン情報の数およびスパンに含まれるオブジェクトの識別情報が増加するため、オブジェクトの重なり合い方によっても、必要なワークバッファのバッファメモリサイズが膨大になることがある。
【００５６】
そこで、必要なワークバッファのバッファメモリサイズを抑制するために、タイル順変換処理をベクタ形式で行うかラスタ形式で行うかを、タイル順変換処理の実行前（図７のＳ７０２での中間言語生成処理を行う際）に判定する。そして、この判定結果に応じて、図７のＳ７０３でのレンダリング処理でのタイル順変換処理を行うようにする。
【００５７】
＜中間言語生成処理＞
図８は、本実施例における図７で示した中間言語生成処理（Ｓ７０２）の詳細なフローを示す図である。この中間言語生成処理には、本発明の特徴であるタイル順変換方式選択処理が含まれる。
【００５８】
まず制御部１１０は、Ｓ７０１の解析処理で抽出したページ画像に含まれる描画オブジェクトを取得する（Ｓ８０１）。
【００５９】
次に制御部１１０は、Ｓ８０１で取得した描画オブジェクトを所定の中間言語フォーマットに変換する（Ｓ８０２）。
【００６０】
次に制御部１１０は、オブジェクト分布テーブルの更新処理を行う（Ｓ８０３）。オブジェクト分布テーブルは、図９のオブジェクト分布テーブル９１０のように、ページ画像のタイル高さに分割した際の各バンド領域に含まれるオブジェクト数を管理するテーブルとする。また後述するが、バンド毎にタイル順変換方式を切り替える実施系を利用する場合は、選択された方式を保存しておく、「タイル順変換方式」の情報も保持する構成をとる。そして例えば、Ｓ７０１で抽出したオブジェクトがオブジェクト９０１の場合、原点座標９０２（座標（１００，４８））と、バゥンディングＢＯＸ９０３と呼ばれるオブジェクトの幅高情報（本例では幅３２、高さ３２）からどのバンド領域に含まれるオブジェクトか判定する。そして、前記判定結果に基づき、オブジェクト分布テーブルのオブジェクト数の更新処理を行う。図９ではバンド領域１には、オブジェクト９０１が１つ含まれるので、オブジェクト数は１となる。また同様にバンド領域２のオブジェクト数は１となる。またオブジェクトの分布情報は様々な公知の技術が存在し、それらの技術を利用してオブジェクトの分布を判定しても構わない構成とする。
【００６１】
次に制御部１１０は、ページ画像内の全オブジェクトに対してＳ８０１〜Ｓ８０３の処理を行ったか否かを判定する（Ｓ８０４）。行っていないと判定した場合（Ｓ８０４でＮｏ）、Ｓ８０１に進む。また全オブジェクト分のＳ８０１〜Ｓ８０３の処理が完了したと判定した場合（Ｓ８０４でＹｅｓ）、処理はＳ８０５に進む。
【００６２】
次に制御部１１０は、タイル順変換処理の方式の選択処理を行う（Ｓ８０５）。本処理は、前記した「タイル順変換（ラスタ方式）処理」と「タイル順変換（ベクタ方式）処理」のどちらが少ないバッファメモリサイズでタイル順変換処理が可能であるか、またメモリ帯域的にメリットがあるかを判定する処理である。このステップＳ８０５の処理を実行する制御部１１０は、タイル順変換方式判定手段として機能している。そして、レンダリング処理（Ｓ７０３）に選択された最適なタイル順変換処理を指示する。詳細は図１０で後述する。
【００６３】
＜タイル順変換方式選択処理＞
図１０は、本実施例における図８で示したタイル順変換方式選択処理（Ｓ８０５）の、第一の実施形の詳細なフローを示す図である。
【００６４】
まず制御部１１０は、画像形成処理の指示がされたページ画像に、等倍全面画像がＲＡＭ１１３に存在するか否かを判定する（Ｓ１００１）。ここでの等倍全面画像とは、既にレンダリング済みのラスタ形式のページ全面幅高の画像のことである。このページ全面幅高の画像に対して所定のオブジェクトを含むバンド領域の画像をオーバレイするような処理が実行される場合、制御部１１０は、ページ画像生成時に既に等倍全面画像というのは存在すると判定する。このオーバレイされる対象の画像を被重畳画像とも呼ぶ。所定のオブジェクトを含むバンド領域の画像をオーバレイする（重ね合わせる）ために一度ＲＡＭ１１３から読み出した全面画像の占めていたメモリ領域は空く。そのため、例えばタイル順変換（ラスタ方式）処理を行う場合、オーバレイによるレンダリング終了後の時点で、ＲＡＭ１１３に格納されていた画像データは不要となる。そしてこの空いたＲＡＭ１１３のメモリ領域は、タイル順変換（ラスタ方式）処理のためのワークバッファとして利用可能となる。そのため、新規にワークバッファのメモリ領域を確保する必要がなくなる。
【００６５】
すなわち、このような場合タイル順変換（ラスタ方式）処理の方が、必要メモリサイズの点で有利になる。従って、等倍全面画像がＲＡＭ１１３に存在すると判定された場合、処理は（Ｓ１００８）に進む。等倍全面画像が存在しないと判定された場合、処理は（Ｓ１００２）に進む。
【００６６】
次に制御部１１０は、画像形成処理を行うページ画像の印刷設定が所定の印刷設定であるかを判定する（Ｓ１００２）。この所定の印刷設定とは、タイル順変換（ラスタ方式）処理でタイル順の画像を生成する場合に用いられるワークバッファのメモリサイズが、タイル順変換（ベクタ方式）処理の場合に用いられるワークバッファのメモリサイズより大きくなりやすい印刷設定である。
【００６７】
なお、ここで判定する印刷設定とは、タイル順変換（ラスタ方式）処理で必要となるワークバッファのサイズに影響する印刷設定を判定する設定とする。例えば、印刷設定の各項目である「カラー設定」、「印刷解像度設定」、「用紙サイズ設定」、「ページ向き設定」等の設定は、タイル順変換（ラスタ方式）処理で必要となるワークバッファのサイズに大きく影響する。例えば、印刷設定の設定値が、カラー／モノクロ：ＣＭＹＫカラー、印刷解像度：１２００ｄｐｉ、用紙サイズ：Ａ３、ページ向き：Ｌａｎｄｓｃａｐｅの場合、（式１）より以下のサイズが必要となる。
【００６８】
Ａ３  １２００ｄｐｉ  Ｌａｎｄｓｃａｐｅ時のバッファメモリサイズ（ラスタ方式）  ＝１９８４０ｐｉｘｅｌ  ×  ３２ｐｉｘｅｌ  ×  ４ｂｙｔｅ／ｐｉｘｅｌ  ＝  ２，５３９，５２０  ｂｙｔｅ
すなわち、Ａ４サイズの用紙サイズ、６００ｄｐｉの解像度、Ｌａｎｄｓｃａｐｅのページの向きのときの４倍のバッファメモリサイズが必要となる。
【００６９】
このように印刷設定に応じて、タイル順変換処理の際に、タイル順変換（ラスタ方式）処理に必要なワークバッファサイズが非常に膨大なサイズとなるケースが存在する。このような場合は、方式選択のための判定処理を省いて、処理をより高速化する。つまり、Ｓ１００２の処理は、印刷ジョブに設定された印刷設定が所定の印刷設定（上記のような、ラスタ方式でのタイル順変換処理に要するバッファメモリサイズが極めて膨大となり、ベクタ方式でのタイル順変換処理が選択されやすい印刷設定）であるか否かを判定する処理である。
【００７０】
印刷ジョブに設定された印刷設定が所定の印刷設定であると判定した場合、処理は（Ｓ１００７）に進む。また印刷ジョブに設定された印刷設定が所定の印刷設定でないと判定した場合、処理は（Ｓ１００３）に進む。
【００７１】
次に制御部１１０は、（Ｓ８０３）で生成したオブジェクト分布テーブルから、オブジェクト数が最大のバンド領域を探索し、そのバンド領域のオブジェクト数（最大オブジェクト数）の取得処理を行う（Ｓ１００３）。
【００７２】
次に制御部１１０は、タイル順変換（ベクタ方式）処理をバンド単位で行う際に必要となるワークバッファのサイズの算出処理を行う（Ｓ１００４）。ここで制御部１１０は、バッファメモリサイズ（ベクタ方式）を求める導出手段として機能する。算出式は式（２）を参考にすれば例えば以下の算出処理により、サイズ算出を行う。なお本実施例のバッファメモリサイズ（ベクタ方式）の見積もり方法は一例であり、ラスタ方式でタイル順変換処理を実行する場合のバッファメモリサイズと比較するためのサイズを算出できる方法であればよい。
【００７３】
最大バッファメモリサイズ（ベクタ方式）
＝  （最大スパン数×４  ＋  最大スパン数×最大重なり数×４）×タイル高さ
＝  （（２×ｎ＋１）×４  ＋  （２×ｎ＋１）×ｎ×４）×タイル高さ・・・  （式３）
ここで制御部１１０は、ｎに（Ｓ１００３）で取得した最大オブジェクト数を用いることで、ページ画像をベクタ方式でタイル変換処理する場合に不足しない量の最大バッファメモリサイズ（ベクタ方式）を算出する。
【００７４】
次に制御部１１０は、タイル順変換（ラスタ方式）処理をバンド単位で行う際に必要となるワークバッファのサイズの算出処理を行う（Ｓ１００５）。ここで制御部１１０は、バッファメモリサイズ（ラスタ方式）を求める導出手段として機能する。算出処理の計算式は前述した（式１）を用いて算出する。
【００７５】
次に制御部１１０は、（Ｓ１００４）及び（Ｓ１００５）で算出した各必要なワークバッファの使用量（バッファメモリサイズ）の大小関係を比較する（Ｓ１００６）。タイル順変換（ベクタ方式）処理に必要なバッファメモリサイズがタイル順変換（ラスタ方式）処理に必要なバッファメモリサイズ以下（メモリの使用量以下）であると判定された場合、処理は（Ｓ１００７）に進む。タイル分変換（ベクタ方式）処理に必要なバッファメモリサイズがタイル順変換（ラスタ方式）処理に必要なバッファメモリサイズより大きいと判定された場合、処理は（Ｓ１００８）に進む。
【００７６】
次に制御部１１０は、（Ｓ１００７）に進んだ場合、レンダリング処理（Ｓ７０３）でタイル順変換処理にタイル順変換（ベクタ方式）処理が選択されるように、オブジェクト分布テーブル９１０のタイル順変換方式を「ベクタ方式」に設定する（Ｓ１００７）。また制御部１１０は、（Ｓ１００８）に進んだ場合、レンダリング処理（Ｓ７０３）でタイル順変換処理にタイル順変換（ラスタ方式）処理が選択されるように、オブジェクト分布テーブル９１０のタイル順変換方式を「ラスタ方式」に設定する（Ｓ１００８）。このようにタイル順変換方式選択処理（Ｓ７０３）の第一の実施形態は、（Ｓ７０３）で利用するタイル順変換処理をページ画像内で一律どちらの方式で行うかを選択する。
【００７７】
以上が図１０のタイル順変換方式選択処理の処理フローである。上記のフローでは、Ｓ１００３で画像データに含まれるオブジェクト数を取得し、Ｓ１００４でオブジェクト数に基づいてベクタ方式のタイル順変換処理に必要なバッファメモリサイズを算出する。Ｓ１００５で算出されるラスタ方式のタイル順変換処理は印刷設定の影響を受けるものの、オブジェクト数には影響されない。つまり、ベクタ方式の場合のバッファメモリサイズはオブジェクト数の影響を受け、ラスタ方式の場合のバッファメモリサイズは印刷設定に応じた所定の値をとる。そこで、本実施例のタイル順変換方式選択処理の変形例として、Ｓ１００３で取得されるオブジェクト数が所定の閾値以上であった場合、ラスタ方式のタイル順変換処理を実行するよう選択し、そうでない場合、ベクタ方式のタイル順変換処理を実行するよう選択してもよい。また、オブジェクト数と比較する所定の閾値は、印刷設定に応じて可変としてもよい。
【００７８】
＜レンダリング処理＞
図１２は、本実施例におけるタイル順変換方式選択処理（Ｓ８０５）で、第一の実施形を実施した際のレンダリング処理（Ｓ７０３）の詳細なフローを示す図である。本実施例において、レンダリング処理は、ページ画像中の各バンド領域に対応する、バンド領域ごとの中間言語データを順次レンダリングすることによって行われる。すなわち後述のステップＳ１２０１〜Ｓ１２０６の処理は、１つの処理対象のバンド領域に対して実行されることになる。
【００７９】
まず制御部１１０は、処理対象のバンド領域について、（Ｓ７０２）で生成された前記中間言語データを読み出し、図５（ａ）で示す「スパン情報（ページライン順）概念図」で示すスパン情報の生成を行う（Ｓ１２０１）。ここで制御部１１０は、中間言語データからページライン順のスパン情報を生成するスパン生成手段として機能する。
【００８０】
次に制御部１１０は、オブジェクト分布テーブル９１０を参照して、タイル順変換方式選択処理（Ｓ８０５）で、タイル順変換（ベクタ方式）処理が選択されたか否かを判定する（Ｓ１２０２）。タイル順変換（ベクタ方式）処理が選択されたと判定した場合、処理は（Ｓ１２０３）に進み、一方、タイル順変換（ラスタ方式）処理が選択されたと判定した場合、処理は（Ｓ１２０４）に進む。
【００８１】
次に制御部１１０は、（Ｓ１２０３）に進んだ場合、（Ｓ１２０１）で生成した、処理対象のバンド領域についてのスパン情報をワークバッファに格納して、タイル順変換（ベクタ方式）処理を行う（Ｓ１２０３）。ここで制御部１１０は、ワークバッファ（メモリ）を用いて、スパン情報をタイル順のスパン情報に変換する第一の変換処理として機能する。
【００８２】
具体的には、図５（ａ）のスパン情報（ページライン順）概念図に示すスパンデータ順から、図５（ｂ）のスパン情報（タイル順）概念図に示すタイルごとのスパンデータ順に変換する処理を行うことで、実現する。この際、前述したように、処理対象のバンド領域に対応するページライン順のスパン情報をワークバッファに格納し、読み出し時にタイル順のスパン情報に変換していく。この処理によって、ステップＳ１２０４の処理および不図示の後段の画像処理を、タイル単位の画像データに対して行うことができるようになる。
【００８３】
次に制御部１１０は、（Ｓ１２０２）から渡されるページライン順のスパン情報もしくは（Ｓ１２０３）から渡されるタイル順のスパン情報から、所定のレンダリング処理を行うことで、ピクセルデータの生成処理を行う（Ｓ１２０４）。ここで制御部１１０は、スパン情報からピクセル情報を生成するピクセル生成手段として機能する。
【００８４】
次に制御部１１０は、タイル順変換方式選択処理（Ｓ８０５）で、タイル順変換（ラスタ方式）処理が選択されたか否かを判定する（Ｓ１２０５）。タイル順変換（ラスタ方式）処理が選択されたと判定した場合、処理は（Ｓ１２０６）に進む。一方、タイル順変換（ベクタ方式）処理が選択されたと判定した場合、制御部１１０は、生成したタイル順のピクセル情報をプリンタ部１５０へ送信して処理を終了する。
【００８５】
次に制御部１１０は、ステップＳ１２０６において、（Ｓ１２０４）で生成した、処理対象のバンド領域についてのピクセル情報（ラスタ情報）をワークバッファに格納して、タイル順変換（ラスタ方式）処理を行う。ここで制御部１１０は、ワークバッファ（メモリ）を用いて、ピクセル情報をタイル順のピクセル情報に変換する第二の変換処理として機能する。
【００８６】
具体的には、図３（ａ）のラスタ情報（ページライン順）概念図に示すピクセルデータ順から、図３（ｂ）のラスタ情報（タイル順）概念図に示すタイルごとのピクセルデータ順に変換する処理を行うことで、実現する。この際、前述したように、処理対象のバンド領域に対応するページライン順のラスタ情報をワークバッファに格納し、読み出し時にタイル順のラスタ情報に変換していく。この処理によって、不図示の後段の画像処理を、タイル単位の画像データに対して行うことができるようになる。
【００８７】
次に制御部１１０は、ページ画像内の全処理対象のバンド領域分について、バンド領域ごとのレンダリング処理が完了したか否かを判定する（Ｓ１２０７）。制御部１１０は、全バンド領域分のレンダリング処理が終了していないと判定した場合、（Ｓ１２０１）に進み、処理対象のバンド領域を次のバンド領域として、ステップＳ１２０１〜Ｓ１２０６の処理を繰り返す。制御部１１０が全バンド領域分のレンダリング処理が終了したと判定した場合、レンダリング処理（Ｓ７０３）を終了する。
【００８８】
以上で説明した図１２の処理フローでは、バンド領域の画像に対してタイル順変換処理が実行される。しかし、本発明はバンド領域の画像の代わりに１ページ分のページ画像に対してタイル順変換処理が実行されてもよい。この場合、タイル順変換処理の処理方式を選択するステップＳ８０５では、ページ画像についてバッファメモリサイズの比較が行われ、その結果に応じてページ画像に対するタイル順変換処理が実行される。このときステップＳ１２０１で、制御部１１０は、ページ画像全体のラインデータ順のスパン情報を生成することになる。またステップＳ１２０７の判定処理によるループ処理が省かれることになる。
【００８９】
また図１２の処理フローにおいて、ステップＳ１２０２およびＳ１２０５で、タイル順変換処理の処理方式がベクタ方式かラスタ方式かを、バンド領域ごとに判定している。このバンド処理ごとの判定処理を省くべく、レンダリング処理Ｓ７０３が開始する前に、タイル順変換処理の処理方式を図１０の処理フローに従って決定し、決定された処理方式に従って後続の処理を切り替えてもよい。例えばステップＳ１２０１の後に、決定された処理方式がベクタ方式であればステップＳ１２０３、Ｓ１２０４、Ｓ１２０７の連続した処理が実行される構成であればよく。また、決定された処理方式がラスタ方式であればステップＳ１２０４、Ｓ１２０６、Ｓ１２０７の連続した処理が実行されるように構成してもよい。
【００９０】
以上説明したように、本実施例の画像処理装置は、ワークバッファを用いるタイル順変換処理の処理方式をページ単位で決定する。そのため、タイル順変換処理の処理方式に切り替えの負荷を小さく抑えつつ、ページ画像の内容に応じてワークバッファの使用メモリ量を抑制したタイル順変換処理が可能になる。
【００９１】
（実施例２）
実施例１は、ページ単位で一意にタイル順変換処理の方式を決定する手法であった。本実施例では、バンド単位に最適なタイル順変換処理の方式を決定する手法について説明する。これにより、本実施例はバンド単位で利用するワークバッファのサイズを、より小さくする効果がある。なお、本実施例の画像処理装置は実施例１の画像処理装置１００と構成が同様であるため、説明は省略する。
【００９２】
＜バンドごとのタイル順変換方式選択処理＞
図１１は、本実施例における図８で示したタイル順変換方式選択処理（Ｓ８０５）の、第二の実施形の詳細なフローを示す図である。本フローは、ページ画像に含まれる１つ以上の各バンド領域について、タイル順変換処理の処理方式を選択する処理フローである。
【００９３】
まず制御部１１０は、タイル順変換（ラスタ方式）処理を行う際に必要となるワークバッファのサイズの算出処理を行う（Ｓ１１０１）。算出処理の計算式は前述した（式１）を用いて算出する。なお各バンド領域のバンドサイズが異なっている場合、処理対象のバンド領域について、ラスタ方式で行うタイル順変換処理に必要なワークバッファのサイズを逐次算出してもよい。
【００９４】
次に制御部１１０は、（Ｓ８０３）で生成したオブジェクト分布テーブルから、タイル順変換方式選択処理によってタイル順変換方式が選択されていない未処理のバンドを処理対象のバンド領域とする。そして、制御部１１０は、この処理対象のバンド領域に含まれるオブジェクト数をオブジェクト分布テーブル９１０から取得する（Ｓ１１０２）。
【００９５】
次に、制御部１１０は、（Ｓ１１０２）で取得したオブジェクト数から、処理対象のバンド領域のタイル順変換（ベクタ方式）処理を行う際に必要となるワークバッファのサイズの算出処理を行う（Ｓ１１０３）。算出式は前述の（式３）を利用して算出する。
【００９６】
次に制御部１１０は、（Ｓ１１０１）及び（Ｓ１１０３）で算出した各必要なワークバッファのサイズの大小関係を比較する（Ｓ１１０４）。タイル順変換（ベクタ方式）処理に必要なワークバッファサイズが、タイル順変換（ラスタ方式）処理に必要なワークバッファサイズ以下であると判定された場合、（Ｓ１１０５）に処理は進む。タイル順変換（ベクタ方式）処理に必要なワークバッファサイズが、タイル順変換（ラスタ方式）処理に必要なワークバッファサイズよりも大きいと判定された場合、（Ｓ１１０６）に処理は進む。
【００９７】
次に制御部１１０は、（Ｓ１１０５）に進んだ場合、処理対象のバンド領域のレンダリング処理（Ｓ７０３）におけるタイル順変換処理に、タイル順変換（ベクタ方式）処理が選択されるようにする（Ｓ１１０５）。
【００９８】
また制御部１１０は、（Ｓ１１０６）に進んだ場合、処理対象のバンド領域のレンダリング処理（Ｓ７０３）におけるタイル順変換処理に、タイル順変換（ラスタ方式）処理が選択されるようにする（Ｓ１１０６）。
【００９９】
制御部１１０は、（Ｓ１１０５）及び（Ｓ１１０６）で、処理対象のバンド領域について選択されたバンド領域毎のタイル順変換処理の処理方式を、オブジェクト分布テーブル９１０に、バンド毎に記憶する。
【０１００】
次に制御部１１０は、ページ画像内の全バンド領域について、バンド領域ごとのタイル順変換方式選択処理が完了したか否かを判定する（Ｓ１１０７）。完了していないと判定された場合、（Ｓ１１０２）に進み、完了したと判定した場合、タイル順変換方式選択処理（Ｓ８０５）を終了する。
【０１０１】
＜バンドごとのレンダリング処理＞
図１３は、本実施例におけるタイル順変換方式選択処理（Ｓ８０５）で、第二の実施形を実施した際のレンダリング処理（Ｓ７０３）の詳細なフローを示す図である。本フローは制御部１１０によって実行される。本フローは処理対象のバンドごとに順次レンダリングを行っていく処理である。
【０１０２】
まず制御部１１０は、（Ｓ７０２）で生成された中間言語データを入力とし、図５（ａ）の「スパン情報（ページライン順）概念図」で示すスパン情報の生成を行う（Ｓ１３０１）。
【０１０３】
次に制御部１１０は、（Ｓ１３０１）で生成されたスパン情報から、処理対象のバンド領域内のスパン情報と、取得したスパン情報に該当する、タイル順変換方式選択処理（Ｓ１３０２）で選択された、タイル順変換処理の処理方式の選択情報を取得する。
【０１０４】
次に制御部１１０は、（Ｓ１３０２）で取得した、処理対象のバンド領域に対するタイル順変換処理の処理方式の選択情報が、タイル順変換（ベクタ方式）処理を選択することを示すか否かを判定する（Ｓ１３０３）。タイル順変換（ベクタ方式）処理が選択されたと判定した場合、（Ｓ１３０４）に処理は進む。また、タイル順変換（ラスタ方式）処理が選択されたと判定した場合、（Ｓ１３０５）に処理は進む。
【０１０５】
次に制御部１１０は、（Ｓ１３０４）に進んだ場合、（Ｓ１３０２）で取得した、処理対象のバンド領域のスパン情報をワークバッファに格納して、タイル順変換（ベクタ方式）処理を行う（Ｓ１３０４）。
【０１０６】
具体的には、図５（ａ）で示した「スパン情報（ページライン順）概念図」のスパンデータから、図５（ｂ）で示した「スパン情報（タイル順）概念図」のタイル順のスパンデータに変換する処理を行う。この際、前述したように、スパン情報（ページライン順）概念図のデータをワークバッファに格納し、読み出し時にスパン情報（タイル順）概念図に変換していくことで実現する。この処理によって、ステップＳ１３０５の処理および不図示の後段の画像処理を、タイル単位の画像データに対して行うことができるようになる。
【０１０７】
次に制御部１１０は、（Ｓ１３０２）から渡されるページライン順のスパン情報もしくは（Ｓ１３０３）から渡されるタイル順のスパン情報から、所定のレンダリング処理を行うことで、ピクセルデータの生成処理を行う（Ｓ１３０５）。
【０１０８】
次に制御部１１０は、（Ｓ１３０２）で取得した、処理対象のバンド領域に対するタイル順変換処理の処理方式の選択情報が、タイル順変換（ラスタ方式）処理を選択することを示すか否かを判定する（Ｓ１３０６）。タイル順変換（ラスタ方式）処理が選択されたと判定した場合、（Ｓ１３０７）に処理は進む。また、タイル順変換（ベクタ方式）処理が選択されたと判定した場合、（Ｓ１３０８）に処理は進む。
【０１０９】
次に制御部１１０は、（Ｓ１３０７）に進んだ場合、（Ｓ１３０５）で生成したピクセル情報（ラスタ情報）をワークバッファに格納して、タイル順変換（ラスタ方式）処理を行う（Ｓ１３０７）。
【０１１０】
具体的には、図３で示すようにラスタ情報（ページライン順）概念図から、ラスタ情報（タイル順）概念図に変換する処理を行うことで、実現する。この際、前述したように、ラスタ情報（ページライン順）概念図のデータをワークバッファに格納し、読み出し時にラスタ情報（タイル順）概念図に変換していくことで実現する。この処理によって、不図示の後段の画像処理を、タイル単位の画像データに対して行うことができるようになる。
【０１１１】
次に制御部１１０は、ページ画像内の全処理対象のバンド領域分について、バンド領域ごとのレンダリング処理が完了したか否かを判定する（Ｓ１３０８）。制御部１１０は、終了していないと判定した場合、（Ｓ１３０１）に進み、処理対象のバンド領域を次のバンド領域として、ステップＳ１３０１〜Ｓ１３０７の処理を繰り返す。制御部１１０がＳ１３０８で終了したと判定した場合、レンダリング処理（Ｓ７０３）を終了する。
【０１１２】
以上説明したように、実施例２の画像処理装置は、バンド領域の画像の内容に応じてバンド領域に対して行われるタイル順変換処理の処理方式をバンド単位で決定する。そのため本実施例は、バンド単位で利用するワークバッファのサイズを、より小さくする効果がある。
【０１１３】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア（コンピュータプログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014000753.tif 000003
【図２】
2014000753.tif 000004
【図３】
2014000753.tif 000005
【図４】
2014000753.tif 000006
【図５】
2014000753.tif 000007
【図６】
2014000753.tif 000008
【図７】
2014000753.tif 000009
【図８】
2014000753.tif 000010
【図９】
2014000753.tif 000011
【図１０】
2014000753.tif 000012
【図１１】
2014000753.tif 000013
【図１２】
2014000753.tif 000014
【図１３】
2014000753.tif 000015