(57)【特許請求の範囲】
【請求項１】
同じパタンの繰り返し描画するタイリングパタン機能を有する画像処理方法であって、
入力されたタイリングパラメータに基き、入力イメージをスケーリングするとき、該タイリングパラメータによる実行不可のタイルサイズよりも小さい第１タイル幅を持つ第１タイルイメージ及び実行不可のタイルサイズよりも大きい第２タイル幅を持つ第２タイルイメージを作成し、
出力イメージの指定位置へ前記第１タイルイメージを幅方向に貼り付けるときの絶対値誤差よりも、前記第２タイルイメージを幅方向に貼り付けるときの絶対値誤差が大きい場合は、前記第１タイルイメージを貼り付け、
前記出力イメージの指定位置へ前記第１タイルイメージを幅方向に貼り付けるときの絶対値誤差よりも、前記第２タイルイメージを幅方向に貼り付けるときの絶対値誤差が大きくならない場合は、前記第２タイルイメージを貼り付けて、タイリングパタンを描画すること
を特徴とする画像処理方法。
【請求項２】
前記実行不可のタイルサイズは整数値ではないタイルサイズであること
を特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記第１タイルイメージは、前記タイリングパラメータのタイルサイズにつき、小数部を切り捨てた値のタイルイメージであり、前記第２タイルイメージは、小数部を切り上げた値のタイルイメージであること
を特徴とする請求項１または２に記載の画像処理方法。
【請求項４】
前記タイリングパラメータに基づき算出したタイリングパタンのずれ量より、前記第１タイルイメージと前記第２タイルイメージとを作成するか否かを判定し、判定結果に基づいて作成するタイルイメージの数を決定すること
を特徴とする請求項１乃至３の何れか１項に記載の画像処理方法。
【請求項５】
前記タイリングパタンのずれ量は、入力された前記タイルサイズを使用したときのタイリングパタンサイズと該タイルサイズの小数部を切り上げた値を使用した前記第２タイルイメージに基づくタイリングパタンサイズとの差分であること
を特徴とする請求項４に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイリングパタン機能を有する画像処理方法に関するものである。
【背景技術】
【０００２】
従来、三角形や円のように「内部」を有する面図形の描画については、図形の内部をタイルと呼ばれるパタンを繰り返し描画して塗りつぶすようにした、所謂、タイリングパタン機能を備える画像処理装置が知られている（特許文献１）。
【０００３】
このタイリングパタンの描画とは、図１４に示すように、入力されたイメージをタイリングパラメータ（入力イメージ、タイルサイズ：例えば、６×６（ピクセル）、タイリング枚数：例えば、１０×１０（枚）、パタンサイズ：例えば、６０×６０（ピクセル））
に基づいて繰り返し規則的に敷き詰めていく手法である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−２０５０７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記した従来の描画手法では、入力されるタイルのサイズは全て整数値であると想定して、敷き詰めていた。
このため、例えば、Microsoft社のページ記述言語であるＸＰＳ（XML  Paper  Specification）等をラスタライズした結果、タイルのサイズが小数値になったとしても、タイル
サイズに最も近い整数値のタイルを作成して敷き詰めることが行われていた。
【０００６】
その理由は、ラスタライズされたイメージの最小単位はピクセルであって、小数値となるタイルサイズは実現不可であるからである。その結果、作成されたタイリングパタンの描画は、実値サイズによるタイリングパタンに対してずれが生じており、期待する描画結果を得ることができなかった。
【０００７】
本発明は、上記問題に鑑みてなされたもので、ずれの量が抑制されたタイリングパタンの描画が行える画像処理方法を提供することを目的としている。
【課題を解決するための手段】
【０００８】
すなわち、本発明は、同じパタンの繰り返し描画するタイリングパタン機能を有する画像処理方法であって、入力されたタイリングパラメータに基き、入力イメージをスケーリングするとき、該タイリングパラメータによる実行不可のタイルサイズよりも小さい第１タイル幅を持つ第１タイルイメージ及び実行不可のタイルサイズよりも大きい第２タイル幅を持つ第２タイルイメージを作成し、出力イメージの指定位置へ前記第１タイルイメージを幅方向に貼り付けるときの絶対値誤差よりも、前記第２タイルイメージを幅方向に貼り付けるときの絶対値誤差が大きい場合は、前記第１タイルイメージを貼り付け、前記出力イメージの指定位置へ前記第１タイルイメージを幅方向に貼り付けるときの絶対値誤差よりも、前記第２タイルイメージを幅方向に貼り付けるときの絶対値誤差が大きくならない場合は、前記第２タイルイメージを貼り付けて、タイリングパタンを描画することを特徴としている。
【発明の効果】
【０００９】
本発明によれば、サイズの異なる複数のタイルイメージを作成し、これらより、期待する描画結果が得られるサイズのタイルイメージを選択して使用するように構成したので、ずれの量を極力抑制したタイリングパタンを描画することができる。
【図面の簡単な説明】
【００１０】
【図１】実施例１による画像形成装置の構成を示すブロック図である。
【図２】使用するタイルの選択手順を示す図で、（ａ）はタイリングパタン、（ｂ）はイメージ参照リスト、（ｃ）はイメージ参照テーブル、（ｄ）はイメージ保持リストある。
【図３】実施例１によるタイルパタン作成処理を示すフローチャートである。
【図４】実施例１によるタイルサイズ算出処理を示すフローチャートである。
【図５】実施例１によるタイル作成処理を示すフローチャートである。
【図６】実施例１によるイメージ参照テーブル作成処理を示すフローチャートである。
【図７】パタン参照テーブルとイメージ保持リストの組合せを示す図で、（ａ）はＸ、Ｙ方向ともに小数値の場合、（ｂ）はＸ方向のみ小数値の場合、（ｃ）はＹ方向のみ小数値の場合、（ｄ）はＸ、Ｙ方向ともに整数値の場合を示す。
【図８】実施例１によるイメージ参照リスト作成処理を示すフローチャートである。
【図９】イメージ参照リスト作成処理の説明図である。
【図１０】実施例１によるタイル貼り付け処理を示すフローチャートである。
【図１１】実施例２による画像形成装置の構成を示すブロック図である。
【図１２】実施例２によるタイルパラメータ判定処理を示すフローチャートである。
【図１３】実施例２によるタイルサイズ算出処理を示すフローチャートである。
【図１４】タイリングパタンの描画手順を示す図である。
【図１５】解像度変換によるパタンサイズの変化を示す図である。
【図１６】タイルサイズの違いによるタイリングパタンの描画結果を示す図で、（ａ）は期待する描画結果を示し、（ｂ）はタイルサイズの小数部を切り捨てた場合の描画結果を示し、（ｃ）タイルサイズの小数部を切り上げた場合の描画結果を示す。
【発明を実施するための形態】
【００１１】
以下、図１〜図１６に基づいて本発明に係る画像処理方法を実現する画像形成装置の実施の形態を説明する。
【実施例１】
【００１２】
先ず、図１、図２を用いて、実施例１による画像形成装置の構成を説明する。図１は、実施例１による画像形成装置の構成を示すブロック図、図２は、使用するタイルの選択手順を示す図である。
図１に示すように、本実施例の画像形成装置は、ホストＰＣ１００およびプリンタ５００により構成されている。
【００１３】
ホストＰＣ１００は、アプリケーション２００、ＯＳ（Operating  System）３００、プリンタドライバ４００を備える。
本構成の画像形成装置では、アプリケーション２００より文書データの印刷が指示されると、ＯＳ３００のスプールファイル生成部３１０にてスプールファイルが作成される。該スプールファイルは、プリンタドライバ４００にてプリンタで印字可能なラスタライズデータに変換された後、プリンタ５００に送信される。
【００１４】
上記スプールファイルは、描画する図形の形状と、該図形の塗りつぶし手法を定義するための図形データを所定のページ記述言語にて記述したファイルである。
本実施例の塗りつぶし手法では、タイルと呼ばれる縦横数ピクセルで構成される微細なパタンを出力イメージ上に繰り返し敷き詰めることによりタイリングパタンを作成する。
【００１５】
尚、上記タイリングパタンは、ＯＳ３００から入力される入力イメージ、タイルサイズ
、タイリング枚数、パタンサイズの４つのパラメータ（タイリングパラメータ）によって定義されている。
すなわち、図１４に示すように、入力イメージをタイルサイズに応じてスケーリングすることでタイルを生成し、該タイルをパタンサイズに基づいて指定された領域内にタイリング枚数分繰り返し描画することで、上記タイリングパタンを作成する。
【００１６】
プリンタドライバ４００は、スプールファイル受信部４１０、構文解析部４２０、編集部４３０、ラスタライズ部４４０、ラスタライズデータ送信部４５０、タイリングパタン作成部４６０、スケーリング部４６１で構成される。更に、データ構造として、イメージ保持リスト４６４、イメージ参照テーブル４６３、イメージ参照リスト４６２等のデータ保持手段を備える。
【００１７】
スプールファイル受信部４１０は、スプールファイル生成部３１０が生成したスプールファイルを受信する部分である。
【００１８】
構文解析部４２０は、スプールファイルに記述された図形データを解析する部分である。
【００１９】
編集部４３０は、所定形式の言語にて記述された図形データを、ラスタライズ部４４０で処理可能な形式に変換し、登録しておく部分である。また、編集部４３０は、後述するタイリングパタン作成部４６０にて作成されたタイリングパタン（イメージデータ）を登録されている図形データとともにラスタライズ部４４０に送出する部分である。
【００２０】
ラスタライズ部４４０は、編集部４３０より取得した図形データに基づいて、プリンタで印刷可能なラスタ形式のデータ（ラスタライズデータ）を作成する部分である。
【００２１】
ラスタライズデータ送信部４５０は、ラスタライズ部４４０で作成されたラスタライズデータをプリンタに送信する部分である。
【００２２】
タイリングパタン作成部（描画部）４６０は、編集部４３０から送られるタイリングパタンの描画指示により、タイリングパタンを作成する部分である。
【００２３】
スケーリング部４６１は、入力イメージをタイルサイズに応じてスケーリングして、タイルのイメージデータ（タイルイメージ）を作成する部分である。
【００２４】
イメージ保持リスト（イメージ保持部）４６４は、タイリングパタン作成部４６０にて作成されたタイルイメージを格納する部分である。該イメージ保持リスト４６４では、タイルイメージとそのＩＤを一次元配列で格納するようになっており、最大４種類のイメージを保持可能である（図２（ｄ）参照）。
【００２５】
イメージ参照テーブル４６３は、タイリングパタンの描画時に参照するタイルを決定するために使用する。該イメージ参照テーブル４６３は、イメージ保持リスト４６４を参照するためのＩＤを２ｘ２の２次元配列で格納するようになっている（図２（ｃ）参照）。
【００２６】
イメージ参照リスト４６２は、タイリングパタン中の各行、各列でタイルとして使用するイメージを参照するために、イメージ参照テーブル４６３のどの要素を参照するかを決定するために使用する。イメージ参照リスト４６２は、可変長の１次元配列を有し、Ｘ（行）方向、Ｙ（列）方向のそれぞれについて用意されている。
イメージ参照リスト４６２に格納される値は、タイリングパタンの各行および各列に割り当てられたタイル番号と、それらに対応するイメージ参照テーブル４６３のインデックスである（図２（ｂ）参照）。
【００２７】
ここで、図２を用い、上記したイメージ保持リスト４６４、イメージ参照テーブル４６３、イメージ参照リスト４６２の各データ構造を用いて、使用するタイルイメージの選択手順を説明する。ここでは、例えば、図２（ａ）に示すタイリングパタンの内の、２行３列目のタイルにつき、タイルイメージを選択する場合を説明する。
【００２８】
先ず、Ｘ方向のイメージ参照リストからインデックス１を取得し、Ｙ方向のイメージ参照リストからインデックス２を取得する（図２（ｂ））。
【００２９】
次ぎに、取得したインデックス１、インデックス２を使用し、イメージ参照テーブル４６３の２行１列目に格納されているＩＤ３を取得する（図２（ｃ））。
【００３０】
次いで、取得したＩＤ３を使用し、イメージ保持リスト４６４のＩＤ３に対応するイメ−ジ３を選択すべきタイルイメージとする（図２（ｄ））。
【００３１】
次に、図３を用い、図２を参照して上記構成の画像形成装置によるタイリングパタンの作成について概略を説明する。図３は、タイルパタン作成処理を示すフローチャートである。尚、以下の処理は、タイリングパタン作成部４６０とスケーリング部４６１の制御により実行されるものである。
【００３２】
先ず、タイリングパタン作成部４６０は、ＯＳ３００のスプールファイル生成部３１０より入力された図形データのタイリングパラメータに基づいて、タイルサイズを算出する（Ｓ１０１）。
次に、Ｓ１０１で算出したタイルサイズに基づいて、スケーリング部４６１は、タイルを作成する（Ｓ１０２）。
次に、タイリングパタン作成部４６０は、Ｓ１０２で作成したタイルへの参照を行うためのイメージ参照テーブル４６３を作成する（Ｓ１０３）。
次に、タイリングパタン作成部４６０は、Ｓ１０３で作成したイメージ参照テーブル４６３への参照を行うためのイメージ
参照リスト４６２を作成する（Ｓ１０４）。
次に、タイリングパタン作成部４６０は、先の処理で作成したイメージ参照テーブル４６３とイメージ参照リスト４６２に基づいてタイルの貼り付けを行い、タイリングパタンを作成する（Ｓ１０５）。
【００３３】
次に、上記したＳ１０１〜Ｓ１０４の各処理（図３）につき、詳細を説明する。
【００３４】
図４は、タイルサイズ算出処理（Ｓ１０１の詳細処理）を示すフローチャートである。
係る処理は、タイリングパタン作成部４６０（図１）の制御により実行される。
【００３５】
先ず、タイリングパタン作成部４６０は、Ｘ方向（タイルの幅方向）におけるタイルサイズの算出を行う。
図４において、タイリングパタン作成部４６０は、ＯＳ３００より入力されたタイリングパラメータのタイル幅の値が整数値であるか否かを判定し（Ｓ２０１）、整数値の場合は、作成するタイル幅として入力されたタイル幅を採用し、該幅入力値をタイル幅１とする（Ｓ２０２）。また、タイル幅２は使用しないため、０としておく（Ｓ２０３）。
【００３６】
一方、先のＳ２０１の判定で、入力されたタイル幅の値が小数値の場合は、タイリングパタン作成部４６０は、作成するタイル幅の値として計算値を採用し、入力されたタイル幅の小数部を切り捨てた値をタイル幅１とする（Ｓ２０４）。また、該タイル幅の小数部を切り上げた値をタイル幅２とする
（Ｓ２０５）。
すなわち、本実施例では、入力されたタイル幅の値が小数値の場合は、小数部を切り捨てた値（ｆｌｏｏｒ（タイル幅））と、切り上げた値（ｃｅｉｌ（タイル幅））の２種類のタイル幅を使用するようにしている。
【００３７】
ここで、Ｓ２０４のｆｌｏｏｒ（・）は、引数以下の最大の整数を計算する関数（床関数）であり、Ｓ２０５のｃｅｉｌ（・）は、引数以上の最小の整数を計算する関数（天井関数）である。引数とは、上記床関数や天井関数を利用して計算する際に、これらの関数に受け渡す値のことであり、ここでは、タイルサイズが渡される。各関数は、受け渡されたタイルサイズの値を元に切り捨て値や切り上げ値の計算を行う。
【００３８】
続いて、タイリングパタン作成部４６０は、Ｙ方向（タイルの高さ方向）におけるタイルサイズの算出を行う。算出手順は、Ｘ方向の場合と同様である。
先ず、タイリングパタン作成部４６０は、入力されたタイル高の値が整数値であるか否かを判定し（Ｓ２０６）、整数値の場合は、作成するタイル高として入力されたタイル高を採用し、該高さ入力値をタイル高１とする（Ｓ２０７）。また、タイル幅２は使用しないため、０としておく（Ｓ２０８）。
【００３９】
一方、先のＳ２０６の判定で、入力されたタイル高の値が小数値の場合は、タイリングパタン作成部４６０は、作成するタイル高の値として計算値を採用し、入力されたタイル高の小数部を切り捨てた値をタイル高１とし（Ｓ２０９）、該タイル高の小数部を切り上げた値をタイル高２とする（Ｓ２１０）。
すなわち、本実施例では、入力されたタイル高の値が小数値の場合は、小数部を切り捨てた値（ｆｌｏｏｒ（タイル高））と、切り上げた値（ｃｅｉｌ（タイル高））の２種類のタイル高を使用するようにしている。
尚、タイル高の算出の際は、上記幅の算出処理と同様に、ｆｌｏｏｒ（・）、ｃｅｉｌ（・）の各関数が利用される。
【００４０】
図５は、タイル作成処理（Ｓ１０２の詳細処理）を示すフローチャートである。係る処理は、スケーリング部４６１（図１）の制御により実行される。
先ず、スケーリング部４６１は、イメージ保持リスト４６４（図１）にタイルイメージを格納しておく際のインデックス（ｉｎｄｅｘ）と、Ｘ方向のループカウンタｉと、Ｙ方向のループカウンタｊを初期化する（Ｓ３０１〜Ｓ３０３）。
【００４１】
次に、スケーリング部４６１は、タイル幅iとタイル高jを判定し（Ｓ３０４）、タイル幅i、タイル高jの少なくとも何れか一方が０の場合は、処理をＳ３０９に移行する。尚、タイル幅iは、図４のタイルサイズ算出処理で作成されたタイル幅１、タイル幅２に対応し、タイル高jは、同じくタイル高１、タイル幅２に対応している。
【００４２】
一方、先のＳ３０４の判定で、タイル幅iとタイル高jが０でない場合は、スケーリング部４６１は、次のスケーリング処理（Ｓ３０６）のスケーリングサイズを指定するためのスケーリング幅にタイル幅iを、スケーリング高にタイル高jを設定する（Ｓ３０５）。
【００４３】
Ｓ３０６では、スケーリング部４６１は、先のＳ３０５で設定されたスケーリングサイズに基づいてイメージのスケーリング処理を行う。尚、本実施例では、スケーリング処理として、最近傍法やバイリニアフィルタリング法等、公知のアルゴリズムを使用する。
【００４４】
次に、スケーリング処理されたイメージを、スケーリング部４６１は、イメージ参照リスト４６２の現在のインデックスが指定している箇所に格納し（Ｓ３０７）、インデックスを更新する（Ｓ３０８）。
【００４５】
以上の記処理（Ｓ３０４〜Ｓ３０８）を、スケーリング部４６１は、小数部の切り捨てと切り上げで２回ずつ、それぞれＸ方向とＹ方向について繰り返し実行する（Ｓ３０９〜Ｓ３１２）。
【００４６】
図６は、イメージ参照テーブル作成処理（Ｓ１０３の詳細処理）を示すフローチャートである。係る処理は、タイリングパタン作成部４６０の制御により実行される。以下、図７を参照して詳細を説明する。図７は、イメージ参照テーブルとイメージ保持リストの組合せを示す図である。
【００４７】
図６において、先ず、タイリングパタン作成部４６０は、タイル幅２とタイル高２について判定を行う（Ｓ４０１〜Ｓ４０３）。
【００４８】
タイル幅２とタイル高２の値が何れも０の場合、タイル幅とタイル高は整数値で、作成されるタイルも１種類であるから、イメージ保持リスト４６４に格納されるタイルイメージは１種類（イメージ１のみ）となる。よって、イメージ参照テーブル４６３には、図７（ｄ）に示すように、全て同じタイルイメージを参照するようにＩＤ１が設定される（Ｓ４０４〜Ｓ４０７）。
【００４９】
また、タイル幅２が０でタイル高２が０でない場合、タイル幅は整数値で、タイル高は小数値であり、それぞれ幅が同じで高さが異なる２種類のタイルが作成されることになる。
この場合は、図７（ｃ）で示すように、イメージ保持リスト４６４には、２種類のタイルイメージ（イメージ１、イメージ２）が格納される。イメージ参照テーブル４６３には、Ｘ方向（Ｘインデックス１、２）について、同じタイルイメージが参照されるように、それぞれＩＤ１とＩＤ２がそれぞれ設定される（Ｓ４０８〜Ｓ４１１）。
【００５０】
また、タイル幅２が０でなく、タイル高２が０の場合は、入力されたタイル高は整数値、タイル幅は小数値であり、高さが同じで幅の異なる２種類のタイルが作成されることになる。
この場合は、図７（ｂ）に示すように、イメージ保持リスト４６４には、２種類のタイルイメージ（イメージ１、イメージ２）が格納される。イメージ参照テーブル４６３には、Ｙ方向（Ｙインデックス１、２）について、同じタイルイメージが参照されるように、それぞれＩＤ１とＩＤ２が設定される（Ｓ４１２〜Ｓ４１５）。
【００５１】
また、タイル幅２とタイル高２が何れも０でない場合は、入力されたタイル幅とタイル高は小数値であり、それぞれ高さと幅が異なる４種類のタイルが作成されることになる。
この場合は、図７（ａ）で示すように、イメージ保持リスト４６４に格納されるタイルイメージは４種類となる。イメージ参照テーブル４６３には、全て異なるタイルイメージが参照されるように、ＩＤ１〜ＩＤ４が設定される（Ｓ４１６〜Ｓ４１９）。
【００５２】
図８は、イメージ参照リスト作成処理（Ｓ１０４の詳細処理）を示すフローチャートである。係る処理は、タイリングパタン作成部４６０の制御により実行される。以下、図９を参照して詳細を説明する。図９は、イメージ参照リスト作成処理の説明図である。
【００５３】
先ず、タイリングパタン作成部４６０は、Ｘ方向について、イメージ参照リストの作成を行う。
図８において、先ず、タイリングパタン作成部４６０は、作成したイメージ参照リスト４６２につき、追加されたタイル幅の合計を記録するための一次変数ｓｕｍを初期化し（Ｓ５０１）、次いで、ループ用のカウンタｉを初期化する（Ｓ５０２）。
【００５４】
次に、タイリングパタン作成部４６０は、タイルサイズ算出処理（図３のＳ１０１）で算出したタイル幅２の値が０であるか否かを判定する（Ｓ５０３）。タイル幅２の値が０の場合は、作成されるタイルの幅は全て等しく、Ｘ方向に敷き詰めるタイルは全て同一幅のタイルとなるため、イメージ参照リスト４６２には、常に１（リストＸ［ｉ］＝１）を設定する（Ｓ５０４）。
【００５５】
一方、先のＳ５０３の判定で、タイル幅２の値が０でない場合は、タイリングパタン作成部４６０は、幅の異なる複数のタイルが作成されているため、複数のタイルの内、どのタイルを参照するかを決定する。
【００５６】
この場合、タイリングパタン作成部４６０は、先ず、下式（１）により、これまでに作成されたイメージ参照リスト４６２に新たにタイル幅１（小数部の切り捨てにて算出）のタイルを追加した場合の幅の合計値（ｓｕｍ＋タイル幅１）と、小数部を有する本来のタイル幅の合計値（ｉ×タイル幅）の差Ａを求める（Ｓ５０５）。
［式１］
Ａ＝ｉ×タイル幅−（ｓｕｍ＋タイル幅１）
【００５７】
続いて、タイリングパタン作成部４６０は、下式（２）により、これまでに作成されたイメージ参照リスト４６２に新たにタイル幅２（小数部の切り上げにて算出）のタイルを追加した場合のタイル幅の合計値（ｓｕｍ＋タイル幅２）と、小数部を有する本来のタイル幅の合計値（ｉ×タイル幅）の差Ｂを求める（Ｓ５０６）。
［式２］
Ｂ＝ｉ×タイル幅−（ｓｕｍ＋タイル幅２）
【００５８】
次に、タイリングパタン作成部４６０は、Ａの絶対値「ａｂｓ（Ａ）」とＢの絶対値「ａｂｓ（Ｂ）」を比較する（Ｓ５０７）。尚、比較の結果、絶対値が小さい値を持つ方のタイル幅が本来のタイリングパタンに近い結果を得られる採用すべきタイルの幅となる（図９参照）。
【００５９】
先のＳ５０７の判定で、ａｂｓ（Ａ）＜ａｂｓ（Ｂ）の場合は、タイリングパタン作成部４６０は、タイル幅１のタイルを採用することとし、イメージ参照リスト４６２にタイル幅１のタイルを参照することを意味する１（リストＸ［ｉ］＝１）を設定する（Ｓ５０８）。また、タイル幅の合計値（ｓｕｍ）に採用するタイル幅１を加える（Ｓ５０９）。
【００６０】
一方、先のＳ５０７の判定で、ａｂｓ（Ａ）≧ａｂｓ（Ｂ）の場合（もしくは、ａｂｓ（Ａ）＜ａｂｓ（Ｂ）でない場合）は、タイリングパタン作成部４６０は、タイル幅２のタイルを採用することとし、イメージ参照リスト４６２にタイル幅２のタイルを参照することを意味する２（リストＸ［ｉ］＝２）を設定する（Ｓ５１０）。また、タイル幅の合計値（ｓｕｍ）に採用するタイル幅２を加える（Ｓ５１１）。
【００６１】
以上の処理（Ｓ５０３〜Ｓ５１１）を、タイリングパタン作成部４６０は、Ｘ方向のタイル枚数分繰り返し実行する（Ｓ５１２〜Ｓ５１３）。
【００６２】
次に、タイリングパタン作成部４６０は、Ｙ方向についてイメージ参照リストの作成を行う。作成手順は、Ｘ方向の場合と同様である。
先ず、タイリングパタン作成部４６０は、作成したイメージ参照リスト４６２につき、追加されたタイル高の合計を記録するための一次変数ｓｕｍを初期化し（Ｓ５１４）、次いで、ループ用のカウンタｉを初期化する（Ｓ５１５）。
【００６３】
次に、タイリングパタン作成部４６０は、先のタイルサイズ算出処理（図３のＳ１０１）で算出したタイル高２の値が０であるか否かを判定する（Ｓ５１６）。タイル高２の値が０の場合は、作成されるタイルの高さは全て等しく、Ｙ方向に敷き詰めるタイルは全て同一高さのタイルとなるため、タイリングパタン作成部４６０は、イメージ参照リスト４６２には、常１（リストＹ［ｉ］＝１）を設定する（Ｓ５１７）。
【００６４】
一方、先のＳ５１６の判定で、タイル高２の値が０でない場合、高さの異なる複数のタイルが作成されることになるため、タイリングパタン作成部４６０は、複数のタイルの内、どのタイルを参照するかを決定する。
【００６５】
この場合、タイリングパタン作成部４６０は、先ず、下式（３）により、これまでに作成されたイメージ参照リスト４６２に新たにタイル高１（小数部の切り捨てにて算出）のタイルを追加した場合のタイル高の合計値（ｓｕｍ＋タイル高１）と、小数部を有する本来のタイル高の合計値（ｉ×タイル高）の差を求める（Ｓ５１８）。
［式３］
Ａ'＝ｉ×タイル高−（ｓｕｍ＋タイル高１）
【００６６】
続いて、タイリングパタン作成部４６０は、下式（４）により、これまでに作成されたイメージ参照リスト４６２に新たにタイル高２（小数部の切り上げにて算出）のタイルを追加した場合のタイル高の合計値（ｓｕｍ＋タイル高２）と、小数部を有する本来のタイル高の合計値（ｉ×タイル高）の差Ｂ'を求める（Ｓ５１９）。
［式４］
Ｂ'＝ｉ×タイル高−（ｓｕｍ＋タイル高２）
【００６７】
次に、タイリングパタン作成部４６０は、Ａ'の絶対値「ａｂｓ（Ａ'）」とＢ'の絶対値「ａｂｓ（Ｂ'）」を比較する（Ｓ５２０）。比較の結果、絶対値が小さい値を持つ方のタイル高が本来のタイリングパタンに近い結果を得られる採用すべきタイルの高さとなる。尚、図９では、Ｙ方向（タイル高）のＡ'、Ｂ'について省略している。
【００６８】
先のＳ５２０の判定で、ａｂｓ（Ａ'）＜ａｂｓ（Ｂ'）の場合は、タイリングパタン作成部４６０は、タイル高１のタイルを採用することとし、イメージ参照リスト４６２にタイル高１のタイルを参照することを意味する１（リストＹ［ｉ］＝１）を設定する（Ｓ５２１）。また、タイルの高さ合計値（ｓｕｍ）に採用するタイル高１を加える（Ｓ５２２）。
【００６９】
一方、先のＳ５２０の判定で、ａｂｓ（Ａ'）≧ａｂｓ（Ｂ'）の場合（もしくは、ａｂｓ（Ａ'）＜ａｂｓ（Ｂ'）でない場合）は、タイリングパタン作成部４６０は、タイル高２のタイルを採用することとし、イメージ参照リスト４６２にタイル高２のタイルを参照することを意味する２（リストＹ［ｉ］＝２）を設定する（Ｓ５２３）。また、タイルの高さ合計値（ｓｕｍ）に採用するタイル高２を加える（Ｓ５２４）。
【００７０】
以上の処理（Ｓ５１６〜Ｓ５２４）を、タイリングパタン作成部４６０は、Ｙ方向のタイル枚数分繰り返し実行する（Ｓ５２５〜Ｓ５２６）。
【００７１】
図１０は、タイル貼り付け処理（１０５の詳細処理）を示すフローチャートである。係る処理は、タイリングパタン作成部４６０の制御により実行される。以下、図２を参照して詳細を説明する。
先ず、タイリングパタン作成部４６０は、作業用の変数であるＹ方向のタイル番号用カウンタｊ、タイルのＹ方向の貼り付け位置Ｙ、Ｘ方向のタイル番号用カウンタｉ、タイルのＸ方向の貼り付け位置Ｘをそれぞれ初期化する（Ｓ６０１〜Ｓ６０４）。
【００７２】
次に、タイリングパタン作成部４６０は、タイル番号に基づき、使用するイメージの選択を行う。
【００７３】
先ず、タイリングパタン作成部４６０は、Ｘ方向のタイル番号用カウンタｉを使用して、Ｙ方向のイメージ参照リスト４６２からイメージ参照テーブル４６３のＹ方向のインデックスＹ(貼り付け位置Ｙ)を取得する（Ｓ６０５）。
【００７４】
次に、タイリングパタン作成部４６０は、Ｙ方向のタイル番号用カウンタｊを使用して、Ｘ方向のイメージ参照リスト４６２からイメージ参照テーブル４６３のＸ方向のインデックスＸ（貼り付け位置Ｘ）を取得する（Ｓ６０６）。
【００７５】
タイリングパタン作成部４６０は、先のＳ６０５、Ｓ６０６で取得したインデックスＸ、インデックスＹを使用して、イメージ参照テーブル４６３からタイルとして使用するイメージのＩＤを取得する（Ｓ６０７）。また、取得したＩＤを使用して、イメージ保持リスト４６４から使用するタイルイメージを取得する（Ｓ６０８）。
【００７６】
次に、タイリングパタン作成部４６０は、取得したタイルを貼り付け位置（位置Ｘ、位置Ｙ）に貼り付け（Ｓ６０９）、現在の貼り付け位置Ｘに現在のタイルの幅を加えて次のタイルの貼り付け開始位置を設定し（Ｓ６１０）、Ｘ方向のタイル番号用カウンタｉを更新する（Ｓ６１１）。
【００７７】
タイリングパタン作成部４６０は、以上の処理（Ｓ６０６〜Ｓ６１０）をＸ方向のタイリング処理が終了する（ｉ＞Ｘ方向のタイル枚数）まで繰り返し実行する（Ｓ６１１〜Ｓ６１２）。
【００７８】
Ｘ方向１行分のタイリング処理を終了すると、タイリングパタン作成部４６０は、次の行のタイリング処理を行うために、位置Ｙに現在のタイル高Ｙを加え（Ｓ６１３）、Ｙ方向のタイル番号用カウンタｊを更新する（Ｓ６１４）。
タイリングパタン作成部４６０は、以上の処理（Ｓ６０３〜Ｓ６１３）を、Ｙ方向のタイリング処理が終了する（ｊ＞Ｙ方向のタイル枚数）まで繰り返し実行し、タイリング処理（タイルの貼り付け）が完了する（Ｓ６１４〜Ｓ６１５）。
【００７９】
ところで、例えば、Microsoft社のＸＰＳでは、座標系の単位として１／９６インチが
使用されている。
このため、例えば、６×６単位のパタンを縦横に１０枚づつ敷き詰めた６０×６０単位のタイルをプリンタで印刷解像度６００ｄｐｉ（１単位が１／６００インチ）でラスタライズする場合は、タイルサイズとパタンサイズに６．２５（＝６００／９６）を乗じて解像度を変換し（スケーリング）、３７．５×３７．５単位（ピクセル）のタイルを敷き詰めて、３７５×３７５単位のパタンを作成する必要がある（図１５参照）。
【００８０】
ところが、既述したように、ラスタライズされたイメージの最小単位はピクセルであって、小数値となるタイルサイズは実現不可であるから、従来は、小数値の切り捨てにより、最も近い整数値である３７ピクセルのタイルを作成して敷き詰める（図１６（ｂ）参照）か、若しくは、小数値の切り上げにより、最も近い整数値である３８ピクセルのタイル
を作成して敷き詰める（図１６（ｃ）参照）かの何れかが行われていた。
このため、何れの場合においても描画したタイリングパタンにずれが生じ、期待する描画結果（図１６（ａ）参照）が得られないという問題があった。
【００８１】
そこで、実施例１では、タイルサイズが小数値となる場合は、サイズの異なる複数のタイルを作成し、タイルの貼り付けの都度、これら複数のタイルより期待する描画結果が得られるサイズのタイルを選択して使用するようにした。これにより、ずれの量を極力抑制したタイリングパタンを描画することができる。
【実施例２】
【００８２】
次に、図１１を用いて、実施例２による画像形成装置の構成を説明する。図１１は、実施例２による画像形成装置の構成を示すブロック図である。
図１１に示すように、実施例２による画像形成装置は、実施例１（図１）の構成に加え、タイルパラメータ判定部４６５を備える点が実施例１と相異している。また、タイルパラメータ判定部４６５の追加により、タイリングパタン作成部４６０によるタイルサイズ算出処理が一部変更されている。実施例１と同様の部分については説明を省略する。
【００８３】
上記タイルパラメータ判定部４６５は、編集部４３０から入力されタイリングパラメータに基づいて、複数のタイル（タイルサイズの小数部を切り捨てしたサイズのタイルと、小数部を切り上げしたサイズのタイル）を作成するか否かを判定する部分である。
【００８４】
次に、図１３を用い、本実施例によるタイルサイズの算出処理を説明する。図１３は、実施例２によるタイルサイズ算出処理を示すフローチャートである。係る処理は、タイリングパタン作成部４６０（図１１）の制御により実行される。
【００８５】
先ず、タイリングパタン作成部４６０は、Ｘ方向におけるタイルサイズの算出を行う。
図１３において、タイリングパタン作成部４６０は、入力されたタイル幅の値が整数値であるか否かを判定し（Ｓ８０１）、整数値の場合は、作成するタイル幅として入力されたタイル幅を採用し、該幅入力値をタイル幅１とする（Ｓ８０２）。また、タイル幅２は使用しないめ、０としておく（Ｓ８０３）。
【００８６】
一方、先のＳ８０１の判定で、入力されたタイル幅の値が小数値の場合は、タイリングパタン作成部４６０は、タイル幅の小数部を切り上げた値を使用したときのタイリングパタンのずれ量が許容範囲内であるか否かを判定する（Ｓ８０４）。この判定処理の詳細は後述する。
【００８７】
Ｓ８０５で、判定結果がＮＧであれば、タイリングパタン作成部４６０は、作成するタイル幅の値として計算値を採用し、入力されたタイル幅の小数部を切り捨てた値をタイル幅１とする（Ｓ８０６）。また、該タイル幅の小数部を切り上げた値をタイル幅２とする（Ｓ８０７）。
すなわち、入力されたタイル幅の値が小数値となる場合は、タイリングパタン作成部４６０は、小数部を切り捨てた値（ｆｌｏｏｒ（タイル幅））と、小数部を切り上げた値（ｃｅｉｌ（タイル幅））の２種類のタイル幅を使用する。
尚、ｆｌｏｏｒ（・）は、引数以下の最大の整数を計算する関数であり、ｃｅｉｌ（・）は、引数以上の最小の整数をそれぞれ計算する関数である。
【００８８】
また、先のＳ８０５の判定結果がＯＫであれば、タイリングパタン作成部４６０は、作成するタイル幅の値として計算値を採用し、入力されたタイル幅の少数値を切り上げた値をタイル幅１とする（Ｓ８０８）。また、タイル幅２は使用しないため、０としておく（Ｓ８０９）。
すなわち、入力されたタイル幅の値が小数値であっても、使用するタイル幅は１種類となる。
【００８９】
続いて、上記同様の手順にて、タイリングパタン作成部４６０は、Ｙ方向におけるタイルサイズの算出を行う。
先ず、タイリングパタン作成部４６０は、入力されたタイル高の値が整数値であるか否かを判定し（Ｓ８１０）、整数値の場合は、作成するタイル高として入力されたタイル高を採用し、該高さ入力値をタイル高１とする（Ｓ８１１）。また、タイル高２は使用しないめ、０としておく（Ｓ８１２）。
【００９０】
一方、先のＳ８１０の判定で、入力されたタイル高の値が小数値の場合は、タイリングパタン作成部４６０は、タイル高の小数部を切り上げた値を使用したときのタイリングパタンのずれ量が許容範囲内であるか否かを判定する（Ｓ８１３）。係る判定処理の詳細は後述する。
【００９１】
Ｓ８１４で、判定結果がＮＧであれば、タイリングパタン作成部４６０は、作成するタイル高の値として、入力されたタイル高の小数部を切り捨てた値をタイル高１とし（Ｓ８１５）、該タイル高の小数部を切り上げた値をタイル高２とする（Ｓ８１６）。
すなわち、入力されたタイル高の値が小数値である場合は、タイリングパタン作成部４６０は、小数部を切り捨てた値（ｆｌｏｏｒ（タイル高））と、小数部を切り上げた値（ｃｅｉｌ（タイル高））の２種類のタイル高を使用するようにしている。
【００９２】
また、先のＳ８１４の判定結果がＯＫであれば、タイリングパタン作成部４６０は、入力されたタイル高の少数値を切り上げた値をタイル高１とし（Ｓ８１７）、タイル高２は使用しないように、０としておく（Ｓ８１８）。
すなわち、入力されたタイル高の値が小数値であっても、使用するタイル高は１種類となる。
【００９３】
以上のように、本実施例のタイルサイズ算出処理では、実施例１（図４）と相異し、入力されたタイルサイズが小数値であっても、タイルサイズの小数部を切り上げた値を使用したときのタイリングパタンのずれが許容範囲内であれば、１種類のタイルにてタイリングが行われる。
【００９４】
次に、図１２を用いて、先のＳ８０４、Ｓ８１３（図１３）の判定処理につき、その詳細を説明する。図１２は、タイルパラメータ判定処理を示すフローチャートである。係る処理は、タイルパラメータ判定部４６５（図１１）の制御により実行される。
【００９５】
図１２において、タイルパラメータ判定部４６５は、先ず、入力されたタイリングパラメータのタイルサイズから小数部を切り上げた値、「タイルサイズＡ」を計算する（Ｓ７０１）。
【００９６】
次に、タイルパラメータ判定部４６５は、タイリングパラメータのタイル枚数より、Ｓ７０１で算出した「タイルサイズＡ」の値のタイルを用いてタイリングした場合のパタンサイズ「ｓｕｍＢ＝タイル枚数×タイルサイズＡ」を計算する（Ｓ７０２）。
【００９７】
次に、タイルパラメータ判定部４６５は、Ｓ７０２で算出したパタンサイズｓｕｍＢと小数値をそのまま使用した本来のパタンサイズとの差、すなわち、描画パタンのずれ量「ｄｉｆｆ＝ｓｕｍＢ−パタンサイズ」を計算する（Ｓ７０３）。次いで、該描画パタンのずれ量「ｄｉｆｆ」と「タイルサイズ」の比を計算し、その比の値が所定の許容範囲内であるか否かを判定する（Ｓ７０４）。
【００９８】
本実施例では、目視でずれの目立たないずれの量、すなわち、タイルサイズＡの１％未満を許容範囲とし（Ｓ７０５）、１％以上であれば判定結果をＮＧとしている（Ｓ７０６）。
【００９９】
尚、このずれの許容範囲は、１％未満に限るものではなく、適宜変更可能である。
また、タイルサイズＡの算出に小数部の切り上げ値を用いることで、タイルの欠けを生じさせなくできる。
【０１００】
以上、実施例２によれば、タイルサイズが小数値であっても、タイリングの結果、描画パタンのずれが許容範囲内であれば、小数部を切り上げた１種類のタイルサイズにてタイルパタンの作成を行うので、実施例１に比べ、作成及び保持するタイルの数（すなわち、イメージデータ量）を少なくでき、処理速度の向上とメモリ消費量の低減を図ることができる。特に、描画パタンのずれの判定に、小数部を切り上げたタイルサイズを使用することで、描画したときのタイルの欠けを防止できる。
【産業上の利用可能性】
【０１０１】
本実施形態では、図形データの出力機器としてプリンタを例示したが、これに限定されるものではなく、その他、ＦＡＸ、ＭＰＦ（Multi  Function  Peripheral）等にも適用可能である。
また、処理対象としてスプールファイルを説明したが、その他、Ｐｏｓｔｓｃｒｉｐｔ、ＰＣＬ、ＸＰＳ等のページ記述言語にも適用可能である。
【符号の説明】
【０１０２】
４６０  タイリングパタン作成部（描画部）
４６１  スケーリング部
４６４  イメージ保持リスト（イメージ保持部）
４６５  タイルパラメータ判定部（判定部）
【図１】
0005690887.tif 000002
【図２】
0005690887.tif 000003
【図３】
0005690887.tif 000004
【図４】
0005690887.tif 000005
【図５】
0005690887.tif 000006
【図６】
0005690887.tif 000007
【図７】
0005690887.tif 000008
【図８】
0005690887.tif 000009
【図９】
0005690887.tif 000010
【図１０】
0005690887.tif 000011
【図１１】
0005690887.tif 000012
【図１２】
0005690887.tif 000013
【図１３】
0005690887.tif 000014
【図１４】
0005690887.tif 000015
【図１５】
0005690887.tif 000016
【図１６】
0005690887.tif 000017