(57)【要約】【課題】  ブロック単位でベクトル化したオブジェクトのベクトルデータを、ベクトル化前のラスタデータに忠実に再現可能なベクトル化を実現することができる画像処理装置及びその制御方法、プログラムを提供する。【解決手段】  画像データを、設定されたブロックサイズのブロック毎に分割する際に、該画像データ中に複数ブロックに跨がるオブジェクトが存在する場合、オブジェクトに関するオブジェクト情報に基づいて、該オブジェクトを分割する。ブロック毎に分割されたオブジェクトに関するオブジェクト情報に基づいて、分割されたオブジェクトのオブジェクト情報を再設定する。再設定されたオブジェクト情報を有するオブジェクトを用いて、ブロックベクタ画像データを生成する。【選択図】  図１０
2007323611.tif 000002
【特許請求の範囲】
【請求項１】
入力された画像データに対する処理を実行する画像処理装置であって、
画像データを入力する入力手段と、
前記入力手段で入力された画像データを、設定されたブロックサイズのブロック毎に分割する際に、前記画像データ中にその分割するブロックの複数ブロックに跨がるオブジェクトが存在する場合、前記オブジェクトに関するオブジェクト情報に基づいて、該オブジェクトを分割する分割手段と、
前記分割手段によってブロック毎に分割されたオブジェクトに関するオブジェクト情報に基づいて、前記分割されたオブジェクトのオブジェクト情報を再設定する設定手段と、
前記設定手段で再設定されたオブジェクト情報を用いて、ブロック毎のブロックベクタ画像データを生成する生成手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記設定手段は、前記分割手段によってブロック毎に分割されたオブジェクトのオブジェクト情報に含まれる座標情報に基づいて、前記分割されたオブジェクトの座標情報を再設定する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記設定手段は、前記分割手段によってブロック毎に分割されたオブジェクトのオブジェクト情報に含まれる属性情報に基づいて、前記分割されたオブジェクトの属性情報を再設定する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記オブジェクトのオブジェクト情報に基づいて、そのオブジェクトは１つのブロック内に描画可能であるが、前記オブジェクト情報に含まれる属性情報を適用した際、該オブジェクトを複数ブロックに跨って描画する必要がある場合、該オブジェクトを隣接ブロックにも描画するよう、各ブロック内のオブジェクトを再構成する再構成手段を更に備える
ことを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記生成手段は、前記再構成手段で再構成されたオブジェクトが存在する場合には、そのオブジェクトが属するブロック毎に、ベクトル化処理を実行して、ブロックベクタ画像データを生成する
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記オブジェクト情報に含まれる属性情報は、線幅である
ことを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記オブジェクト情報に含まれる属性情報は、オブジェクトの端点の補間方法である
ことを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記設定手段は、更に、前記分割手段による分割後のオブジェクトの端点に対して、その分割によって生じた端点と、分割前のオブジェクトのオリジナルの端点と区別するためのフラグを、前記分割されたオブジェクトのオブジェクト情報として再設定する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項９】
前記生成手段で生成されたブロックベクタ画像データを記憶する記憶手段と、
前記記憶手段に記憶されたブロックベクタ画像データをラスタ画像データに展開する展開手段と
を更に備えることを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記展開手段は、処理対象のブロックベクタ画像データに含まれるオブジェクトのオブジェクト情報に基づいて、前記オブジェクトをラスタ画像データに展開する
ことを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記展開手段は、前記オブジェクト情報に含まれるフラグのフラグ値に基づいて、処理対象のオブジェクトの端点を描画するための端点処理を実行する
ことを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
入力された画像データに対する処理を実行する画像処理装置の制御方法であって、
画像データを入力する入力工程と、
前記入力工程で入力された画像データを、設定されたブロックサイズのブロック毎に分割する際に、前記画像データ中にその分割するブロックの複数ブロックに跨がるオブジェクトが存在する場合、前記オブジェクトに関するオブジェクト情報に基づいて、該オブジェクトを分割する分割工程と、
前記分割工程によってブロック毎に分割されたオブジェクトに関するオブジェクト情報に基づいて、前記分割されたオブジェクトのオブジェクト情報を再設定する設定工程と、
前記設定工程で再設定されたオブジェクト情報を用いて、ブロック毎のブロックベクタ画像データを生成する生成工程と
を備えることを特徴とする画像処理装置の制御方法。
【請求項１３】
入力された画像データに対する処理を実行する画像処理装置の制御をコンピュータに実行させるためのプログラムであって、
画像データを入力する入力工程と、
前記入力工程で入力された画像データを、設定されたブロックサイズのブロック毎に分割する際に、前記画像データ中にその分割するブロックの複数ブロックに跨がるオブジェクトが存在する場合、前記オブジェクトに関するオブジェクト情報に基づいて、該オブジェクトを分割する分割工程と、
前記分割工程によってブロック毎に分割されたオブジェクトに関するオブジェクト情報に基づいて、前記分割されたオブジェクトのオブジェクト情報を再設定する設定工程と、
前記設定工程で再設定されたオブジェクト情報を用いて、ブロック毎のブロックベクタ画像データを生成する生成工程と
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された画像データに対する処理を実行する画像処理装置及びその制御方法、プログラムに関するものである。
【背景技術】
【０００２】
ネットワーク上に接続され、外部あるいは内部の画像データに対する画像データ処理を実行し、その処理した画像データを出力する画像データ入出力システムが知られている。
【０００３】
この画像データ入出力システムとしては、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）と呼ばれるものがある。
【０００４】
ここで、従来のＭＦＰを制御するコントローラ１００を図２０に示す。コントローラ１００は、システムバスブリッジ（ＳＢＢ）１０１により、ＣＰＵ１０２、メモリコントローラ（ＭＣ）１０３、汎用バス１０５、画像処理部１１０、画像データ展開部（ＲＩＰ）１１３が接続されている。ここで、ＲＩＰは、Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒの略称である。
【０００５】
汎用バス１０５には、画像データを蓄積するための大容量記憶部（ＨＤＤ（ハードディスクドライブ））１０７を制御するハードディスクコントローラ（ＨＤＤＣｏｎｔ）１０６が接続されている。また、汎用バス１０５には、ＭＦＰが接続されているネットワーク１０８を介して、外部機器間との画像データの転送を行うインターフェースになるネットワークＩ／Ｆ１０９が接続されている。この画像データとしては、ページベクタ形式（ＰＤＬ（ページ記述言語）、ＰＤＦ、ＳＶＧ等）の画像データがある。
【０００６】
ＨＤＤＣｏｎｔ１０６には、ＨＤＤ（ハードディスクドライブ）１０７が接続されており、画像データの記憶媒体として使われる。同様に、ＭＣ１０３には、システムメモリ（Ｍｅｍｏｒｙ）１０４が接続されており、画像データを一時記憶するための媒体として使われる。システムメモリ１０４には、一般的には、ＤＩＭＭが用いられる。
【０００７】
画像処理部１１０には、スキャナ１１１及びプリンタ１１２が接続されている。スキャナ１１１から入力された画像データは、画像処理部１１０によって所定の画像処理が実施された後、コントローラ１００へ入力される。また、コントローラ１００内に記憶されている画像データは、画像処理部１１０によって所定の画像処理が実施され、プリンタ１１２へ出力される。
【０００８】
コントローラ１００でハンドリングされる画像データは、ネットワーク経由での外部機器との入出力はページベクタ形式（ＰＤＬやＰＤＦ、ＳＶＧ等）、スキャナ１１１やプリンタ１１２との入出力はラスタデータ形式である。外部機器から入力されたページベクタ形式の画像データは、ＣＰＵ１０２により、プリミティブなオブジェクトにインタプリットされ、ＤＬ（ＤｉｓｐｌａｙＬｉｓｔ）と呼ばれる中間データ（ＤＬデータ）に変換されてから、ＲＩＰ１１３に入力される。
【０００９】
これらの画像データはコントローラ１００の内部のシステムメモリ１０４に一旦記憶される。そのため、システムメモリ１０４上には、ラスタデータ、ページベクタデータ（ＰＤＬ等）、ＤＬデータ等の多種類のデータが存在する。
【００１０】
ＨＤＤ１０７には、画像データとしてスキャナ１１３から入力された画像データとＲＩＰ１１３でレンダリングされたラスタ画像データが記憶される。
【００１１】
また、ＲＩＰ１１３では、ページ単位で処理するのではなく、予め定めたバンドやタイル等の所定サイズのブロック単位を処理領域として処理する方法がしばしば用いられる。この処理領域を、ページよりも小さいバンドやタイル等のブロック単位にすることで、ＲＩＰ１１３におけるラスタライズの処理時に必要となる画像データ展開用のメモリ容量を削減することができるという利点がある。更には、ブロック単位の処理を並列動作させることで、ＲＩＰ１１３におけるラスタライズの処理を高速化することができるという利点がある。
【００１２】
以上のような画像処理システムにおいて、例えば、ページ内で、複数ブロックに跨がる直線または曲線オブジェクトが存在する場合がある。この場合のラスタライズ処理方法を大きく分類すると、当該オブジェクトを各ブロックに含まれる部分だけ切り出してラスタライズする方法と、当該オブジェクトを予めブロック単位のオブジェクトとして分割してラスタライズする方法２通りの方法が考えられる。
【００１３】
前者の方法の場合、各ブロックの処理として、当該オブジェクトをＲＩＰ１１３にてラスタライズ処理する際、当該オブジェクトが有する制御点座標及び属性情報を元に、当該オブジェクトを途中までラスタライズする。そして、当該オブジェクトが各ブロックに含まれるか否かを判別し、ブロック内に含まれるならば、含まれる部分だけをラスタライズして、各ブロックにおける当該オブジェクトのラスタライズ処理を終了する。
【００１４】
後者の方法の場合、当該オブジェクトが有する制御点座標及び属性情報から、当該オブジェクトがブロック単位で有する制御点座標及び属性情報に変換され、一時記憶される。その後に、当該オブジェクトをＲＩＰ１１３にてラスタライズ処理する際、当該オブジェクトがブロック単位で有する制御点座標及び属性情報を元に、ラスタライズして、各ブロックにおける当該オブジェクトのラスタライズ処理を終了する。
【００１５】
尚、直線及び曲線オブジェクトのラスタライズ処理としては、主に３種類の処理がある。（１）当該オブジェクトのアウトライン座標を算出するアウトライン処理、（２）アウトラインから一定距離だけ離れた座標を算出する線幅処理、（３）アウトラインの端点から属性情報に基づく形状の座標を算出する端点処理である。そして、これらの処理によって、当該オブジェクトの塗りつぶし処理を行う。
【特許文献１】特開２００４−１２０６３９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
従来例において、直線及び曲線オブジェクトを各ブロックに含まれる部分だけ切り出してラスタライズする場合には、処理単位がある程度大きなバンドやタイルならば有効である。しかしながら、処理単位を小さくしすぎると、各ブロックでラスタライズ対象とするオブジェクトの数は減少せず、逆に、処理ブロック数が増加する分だけ処理量が増加してしまう。従って、更なる処理時間の短縮と記憶容量の削減を実現することは難しい。
【００１７】
一方、従来例において、直線及び曲線オブジェクトを予めブロック単位のオブジェクトとして分割してラスタライズする場合には、処理単位を更に小さくすれば、各ブロックでラスタライズ対象とするオブジェクト数が減少する。これにより、単位ブロック当たりの処理時間を短縮することができる。しかしながら、オリジナルのオブジェクトをブロック単位に分割し、それをブロック単位で、ビットマップ画像にラスタライズを行う場合、分割されたブロックがそれぞれ、独立にラスタライズされるために問題が生じる場合がある。
【００１８】
その問題について、図２１を例に挙げて説明する。
【００１９】
２００１はページベクタデータの一部分であり、実際にラスタライズされた場合のイメージを元にした模式図である。この例においては、線分のオブジェクトデータ２００２を有している。オブジェクトデータ２００２は、始点座標と終点座標とを直線で結ぶ命令が指定されたベクタデータ（図２１では白線で模式的に示されている）と、そのベクタデータの線幅（白線と垂直な方向の線幅）とで構成される。このページベクタデータ２００１をブロックベクタデータ２００３とブロックベクタデータ２００４に分割したとする。
【００２０】
オブジェクトデータ２００２は、オブジェクトデータ２００５と２００６に分割され、それぞれ、ブロックベクタデータ２００３とブロックベクタデータ２００４に保持される。ブロックベクタデータ２００３とブロックベクタデータ２００４はラスタライズを行う際に、それぞれに含まれるオブジェクトデータ２００５，２００６だけを用いて、独立にラスタライズが行われる。そのため、ラスタライズ後の結果、２００７のように、ブロック間の境界において、画像の欠損が生じてしまうという問題点があった（第一の課題）。
【００２１】
線オブジェクトの別の問題として、破線オブジェクトのように、オブジェクトの属性値として、破線の線分部と、各線分の空白部分を指定するような属性を持っている場合がある。破線オブジェクトを有するページベクタのブロックベクタへの分割では、図２２に示すように、所望の出力結果２１０１に対して、２１０２のように破線の空白部分がずれてしまうといった問題を生じる場合があった（第二の課題）。
【００２２】
また、従来例において、グラデーションパターンのように、除々に色値が変化するようなパターンを有したオブジェクトのページベクタから、ブロックベクタへの変換を施した場合を考える。
【００２３】
通常、グラデーションの描画命令は、始点と終点の座標値、所定の色値の変化量で表される。ページベクタ内のグラデーションオブジェクトをブロックベクタに分割する際、色値の異なる細い線分を複数並べて、グラデーションを表現していた。
【００２４】
この方法によれば、オブジェクトが分割された場合でも、ブロックベクタ単位でグラデーションパターンを表現することができる。しかし、ブロックベクタデータを再利用し、ページベクタに戻したり、ブロックベクタ単位で編集を行おうとした場合、グラデーションパターンが細分化されすぎていて、ページベクタに戻せなかったり、編集が行えないといった問題があった（第三の課題）。
【００２５】
本発明は上記の課題を解決するためになされたものである。その目的は、ブロック単位でベクトル化したオブジェクトのベクトルデータを、ベクトル化前のラスタデータに忠実に再現可能なベクトル化を実現することができる画像処理装置及びその制御方法、プログラムを提供することにある。
【課題を解決するための手段】
【００２６】
上記の目的を達成するための本発明による画像処理装置は以下の構成を備える。即ち、
入力された画像データに対する処理を実行する画像処理装置であって、
画像データを入力する入力手段と、
前記入力手段で入力された画像データを、設定されたブロックサイズのブロック毎に分割する際に、前記画像データ中にその分割するブロックの複数ブロックに跨がるオブジェクトが存在する場合、前記オブジェクトに関するオブジェクト情報に基づいて、該オブジェクトを分割する分割手段と、
前記分割手段によってブロック毎に分割されたオブジェクトに関するオブジェクト情報に基づいて、前記分割されたオブジェクトのオブジェクト情報を再設定する設定手段と、
前記設定手段で再設定されたオブジェクト情報を用いて、ブロック毎のブロックベクタ画像データを生成する生成手段と
を備える。
【００２７】
また、好ましくは、前記設定手段は、前記分割手段によってブロック毎に分割されたオブジェクトのオブジェクト情報に含まれる座標情報に基づいて、前記分割されたオブジェクトの座標情報を再設定する。
【００２８】
また、好ましくは、前記設定手段は、前記分割手段によってブロック毎に分割されたオブジェクトのオブジェクト情報に含まれる属性情報に基づいて、前記分割されたオブジェクトの属性情報を再設定する。
【００２９】
また、好ましくは、前記オブジェクトのオブジェクト情報に基づいて、そのオブジェクトは１つのブロック内に描画可能であるが、前記オブジェクト情報に含まれる属性情報を適用した際、該オブジェクトを複数ブロックに跨って描画する必要がある場合、該オブジェクトを隣接ブロックにも描画するよう、各ブロック内のオブジェクトを再構成する再構成手段を更に備える。
【００３０】
また、好ましくは、前記生成手段は、前記再構成手段で再構成されたオブジェクトが存在する場合には、そのオブジェクトが属するブロック毎に、ベクトル化処理を実行して、ブロックベクタ画像データを生成する。
【００３１】
また、好ましくは、前記オブジェクト情報に含まれる属性情報は、線幅である。
【００３２】
また、好ましくは、前記オブジェクト情報に含まれる属性情報は、オブジェクトの端点の補間方法である。
【００３３】
また、好ましくは、前記設定手段は、更に、前記分割手段による分割後のオブジェクトの端点に対して、その分割によって生じた端点と、分割前のオブジェクトのオリジナルの端点と区別するためのフラグを、前記分割されたオブジェクトのオブジェクト情報として再設定する。
【００３４】
また、好ましくは、前記生成手段で生成されたブロックベクタ画像データを記憶する記憶手段と、
前記記憶手段に記憶されたブロックベクタ画像データをラスタ画像データに展開する展開手段と
を更に備える。
【００３５】
また、好ましくは、前記展開手段は、処理対象のブロックベクタ画像データに含まれるオブジェクトのオブジェクト情報に基づいて、前記オブジェクトをラスタ画像データに展開する。
【００３６】
また、好ましくは、前記展開手段は、前記オブジェクト情報に含まれるフラグのフラグ値に基づいて、処理対象のオブジェクトの端点を描画するための端点処理を実行する。
【００３７】
上記の目的を達成するための本発明による画像処理装置の制御方法は以下の構成を備える。即ち、
入力された画像データに対する処理を実行する画像処理装置の制御方法であって、
画像データを入力する入力工程と、
前記入力工程で入力された画像データを、設定されたブロックサイズのブロック毎に分割する際に、前記画像データ中にその分割するブロックの複数ブロックに跨がるオブジェクトが存在する場合、前記オブジェクトに関するオブジェクト情報に基づいて、該オブジェクトを分割する分割工程と、
前記分割工程によってブロック毎に分割されたオブジェクトに関するオブジェクト情報に基づいて、前記分割されたオブジェクトのオブジェクト情報を再設定する設定工程と、
前記設定工程で再設定されたオブジェクト情報を用いて、ブロック毎のブロックベクタ画像データを生成する生成工程と
を備える。
【００３８】
上記の目的を達成するための本発明によるプログラムは以下の構成を備える。即ち、
入力された画像データに対する処理を実行する画像処理装置の制御をコンピュータに実行させるためのプログラムであって、
画像データを入力する入力工程と、
前記入力工程で入力された画像データを、設定されたブロックサイズのブロック毎に分割する際に、前記画像データ中にその分割するブロックの複数ブロックに跨がるオブジェクトが存在する場合、前記オブジェクトに関するオブジェクト情報に基づいて、該オブジェクトを分割する分割工程と、
前記分割工程によってブロック毎に分割されたオブジェクトに関するオブジェクト情報に基づいて、前記分割されたオブジェクトのオブジェクト情報を再設定する設定工程と、
前記設定工程で再設定されたオブジェクト情報を用いて、ブロック毎のブロックベクタ画像データを生成する生成工程と
をコンピュータに実行させる。
【発明の効果】
【００３９】
本発明によれば、ブロック単位でベクトル化したオブジェクトのベクトルデータを、ベクトル化前のラスタデータに忠実に再現可能なベクトル化を実現することができる画像処理装置及びその制御方法、プログラムを提供できる。
【発明を実施するための最良の形態】
【００４０】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００４１】
［実施形態１］
［ＭＦＰ装置概要］
図１は本発明の実施形態１の画像処理システムを構成するＭＦＰのコントローラの詳細を示すブロック図である。
【００４２】
ＭＦＰ１０００を制御するコントローラ１は、システムバスブリッジ（ＳＢＢ）２により、ＣＰＵ３、メモリコントローラ（ＭＣ）４、汎用バス６が接続されている。更に、ＳＢＢ２には、タイル／ページベクタ変換部１３、ラスタ／ベクタ変換部１４、画像処理部１５、画像データ展開部（ＲＩＰ）１８が接続されている。
【００４３】
ここで、このＲＩＰ１８は、タイルベクタデータを展開することが可能であり、内部には、複数の小画像データ展開部（μＲＩＰ）１８ａ〜１８ｄが構成されている。
【００４４】
ＭＣ４には、システムメモリ（Ｍｅｍｏｒｙ）５が接続されており、画像データを一時記憶するための媒体として使われる。
【００４５】
汎用バス６には、画像データを蓄積するためのＨＤＤ８を制御するハードディスクコントローラ（ＨＤＤＣｏｎｔ）７及び操作部（例えば、ＬＣＤ等から構成されるタッチパネル）１０を制御する操作部コントローラ９が接続されている。更に、汎用バス６には、ＭＦＰ１０００が接続されているネットワーク１２を介して、外部機器間との画像データの転送を行うインターフェースになるネットワークＩ／Ｆ１１が接続されている。
【００４６】
尚、操作部１０では、実施形態１及び後述する各実施形態の各種処理の実行指示の入力や、処理結果等を表示するための操作画面が表示され、ユーザは、この操作画面を介して各種操作を実現することができる。
【００４７】
ラスタ／タイルベクタ変換部１４には、画像処理部１５が接続されている。また、画像処理部１５には、スキャナ１６及びプリンタ１７が接続されている。
【００４８】
また、ＳＢＢ２には、ＲＩＰ１８が接続されている。また、ＲＩＰ１８には、ＲＩＰ１８から出力されるデータを記憶するローカルメモリ（ＬｏｃａｌＭｅｍｏｒｙ）１９が接続されている。
【００４９】
コントローラ１でハンドリングされる画像データは、外部機器との入出力はベクタ（ＰＤＬ、ＰＤＦ、ＳＶＧ等）形式の画像データ（以下、ベクタデータとも言う）でインタフェースされる。また、スキャナ１６やプリンタ１７との入出力はラスタ形式の画像データ（以下、ラスタデータとも言う）でインターフェースされる。
【００５０】
コントローラ１では、スキャンデータ（ラスタデータ）はラスタ／タイルベクタ変換部１４でタイルベクタデータに変換される。また、このタイルベクタデータからＲＩＰ１８の処理によって得られるタイルＤＬデータは、ＲＩＰ１８に接続されたローカルメモリ１９に記憶される。
【００５１】
従って、システムメモリ５上には、ページベクタデータとタイルベクタデータの２種類の画像のみが記憶される。つまり、画像サイズの大きいラスタデータ及びＤＬデータをシステムメモリ５に記憶する必要がなくなる。そのため、システムメモリ５上で確保しなければならない画像データ領域を削減することができる。
【００５２】
また、ＲＩＰ１８から出力されるＤＬデータはタイル単位に分割された、タイルＤＬデータで記憶される。そのため、従来のページ単位のページＤＬデータに比べ、非常に少ないメモリ容量で記憶できる。従って、ローカルメモリ１９はオンチップ上に実装することが可能になり、メモリレイテンシを小さくできる。その結果、タイルデータ展開速度を高速化することが可能となる。
【００５３】
また、タイルベクタデータのみを画像データとして、ＨＤＤ８上に記憶すれば良いので、ＨＤＤ８へのアクセス速度のボトルネックが緩和され、データ処理の高速化が図れる。同時に、タイル単位で処理することにより、ＲＩＰ１８のコストダウンも可能となる。
【００５４】
より高い処理能力が要求される場合は、ＲＩＰ１８内に備えるμＲＩＰ１８ａ〜１８ｄを並列に複数実装することで、処理能力を可変にすることができる。このようにすることで、コントローラ１の処理能力がシンプルに調整できることから、スケーラビリティの確保が容易なシステムを構築できる。
【００５５】
尚、本発明では、ネットワークＩ／Ｆ１１及びスキャナ１６がコントローラ１内へ画像データを入力する画像入力部として機能する。また、ネットワークＩ／Ｆ１１及びプリンタ１７が画像データを出力する画像出力部として機能する。
【００５６】
以下に、ＭＦＰ１０００が実現可能な各種処理のデータフローについて説明する。
【００５７】
［コピー］
図２は本発明の実施形態１の画像処理システムでのコピー動作に係るデータフローを示す図である。
【００５８】
尚、このデータフローは、ＣＰＵ３の制御の下、ＭＦＰ１０００を構成する各種構成要素を協調動作させることで実現される。
【００５９】
また、図２中に示す矢印は、各種データフローを示している。特に、実線矢印はラスタデータ（ラスタ画像データ）、破線矢印はタイルベクタデータ（タイルベクタ画像データ）、１点鎖線矢印はページベクタデータ（ページベクタ画像データ）のデータフローを示している。ページベクタデータ及びタイルベクタデータについては、後述のタイル／ページベクタ変換部１３で詳細に説明する。
【００６０】
（Ｓ２１）：操作部１０より、ユーザがコピー開始を指示すると、スキャナ１６は原稿画像の読取動作を開始する。スキャナ１６より画像処理部１５へ入力された画像（Ｒ、Ｇ、Ｂ画像）は画像処理部１５のクロック同期に周波数変換された後、例えば、以下の処理が実行される。
【００６１】
１）スキャナ１６内のＣＣＤセンサのラインピッチや色収差等のスキャナ特性の補正処理
２）色空間補正やシャープネス等の入力画像データの画質補正処理
３）入力画像データの枠消やブック枠消等の画像加工処理
（Ｓ２２）：画像処理部１５による画像処理が終了し、画像処理部１５から出力された画像データはラスタ／タイルベクタ変換部１４に入力され、タイルベクタ変換処理が実行される。即ち、ラスタ／タイルベクタ変換部１４は、画像データを所定の大きさのブロック（タイル）に分割する。そして、各ブロック内のラスタデータに対して、ベクトル化処理を実行して、ブロック（タイル）単位のベクタデータ（タイルベクタデータ（ブロックベクタデータ））を生成する。
【００６２】
生成されたタイルベクタデータは、ＳＢＢ２によりバスの調停を受け、システムメモリ５へのバス権を取得し、ＭＣ４を介して、システムメモリ５に記憶される。尚、ＳＢＢ２経由でデータパスが接続される場合は、基本的にバスの調停を受け、バス権を取得する手続きを踏むが、以降のフロー説明では省略する。
【００６３】
（Ｓ２３）：システムメモリ５に記憶されたタイルベクタデータは、ＨＤＤＣｏｎｔ７とＭＣ４を介して、ＳＢＢ２経由でＨＤＤ８に記憶される。ＨＤＤ８にタイルベクタデータを記憶することにより、複数部の原稿をコピーする時にソーティングをして、ページ順を変えて出力したり、ＭＦＰ１０００内に保存画像データとして記憶したりすることができる。
【００６４】
（Ｓ２４）：ＨＤＤ８に記憶されたタイルベクタデータは、プリンタ１７内のプリンタＣＰＵ（不図示）から送られてくるプリンタレディのタイミングに合わせて、ＨＤＤＣｏｎｔ７により読み出される。そして、ＳＢＢ２、ＭＣ４を経由してシステムメモリ５に一時的に記憶される。
【００６５】
仮に、読み取ったタイルベクタデータをＨＤＤ８からダイレクトにプリンタ１７へ出力する場合、ＨＤＤ８のアクセススピードが律則したり、汎用バス６のバスの混雑度合によりプリンタ１７に同期して出力することが保証できなくなる。そのため、プリンタ１７に同期してデータ転送を行う前に、システムメモリ５にページベクタデータをスプールしておくことで、リアルタイムなスループットを保証する。
【００６６】
（Ｓ２５）：システムメモリ５に記憶されたタイルベクタデータは、プリンタ１７からコントローラ１に送られる起動信号に従って、ＭＣ４によって読み出され、ＳＢＢ２を介してＲＩＰ１８に転送される。
【００６７】
ＲＩＰ１８では、まず、タイルベクタデータを解析し、タイル単位の描画オブジェクト（タイルＤＬデータ）の生成（インタプリット）を実行する。生成されたタイルＤＬデータはローカルメモリ１９に一旦記憶される。
【００６８】
ＲＩＰ１８はローカルメモリ１９からタイルＤＬデータを読み出して、タイル単位のラスタデータ（タイルラスタデータ）へと展開し、出力する。
【００６９】
実施形態１では、上述のように、ＲＩＰ１８内に４つの小画像データ展開部（μＲＩＰ）１８ａ〜１８ｄを備えている。コントローラ１は、μＲＩＰ１８ａ〜μＲＩＰ１８ｄを並列に動作させることにより、タイルベクタデータの展開を高速に行わせることができる。
【００７０】
ここで、画像処理システムの全体パフォーマンスは、ベクタデータ展開時間が支配的であり、このμＲＩＰの構成数を増やすことで、パフォーマンスアップが見込める。そのため、本発明のような構成を用いると、その構成数あるいは動作させる構成数を増減させることで、容易にスケーラブルなシステムを構築することが可能となる。
【００７１】
（Ｓ２６）：ＲＩＰ１８によって生成されたタイルラスタデータは、画像処理部１５に転送され、例えば、以下の処理が実行される。
【００７２】
１）タイルラスタデータからページラスタデータへの変換処理
２）プリンタの特性に合わせた出力画像の色や濃度の補正処理
３）画像データを量子化して出力画像の階調変換を行う中間調処理
４）プリンタＩ／Ｆクロックに同期して画像を出力するための周波数変換処理
そして、画像処理部１５で、１）〜４）の画像処理が実行されて得られたラスタデータは、プリンタ１７に転送され、記録媒体上に印刷され出力される。
【００７３】
［プリント］
図３は本発明の実施形態１の画像処理システムでのプリント動作に係るデータフローを示す図である。
【００７４】
尚、このデータフローは、ＣＰＵ３の制御の下、ＭＦＰ１０００を構成する各種構成要素を協調動作させることで実現される。
【００７５】
（Ｓ３１）：ネットワーク１２に接続された外部機器より、汎用バス６に接続されたネットワークＩ／Ｆ１１がページベクタデータを受信する。そして、ＳＢＢ２の先に接続されたＭＣ４を介してシステムメモリ５に転送する。
【００７６】
（Ｓ３２）：システムメモリ５に記憶されたページベクタデータは、タイル／ページベクタ変換部１３より読み出され、タイルベクタ変換処理が実行される。即ち、タイル／ページベクタ変換部１３は、ページベクタデータ内に存在するオブジェクトを所定の大きさのブロック（タイル）内に収まるオブジェクトに分割する。そして、タイル単位のベクタデータ（タイルベクタデータ）を生成する。
【００７７】
（Ｓ３３）：生成されたタイルベクタデータは、ＳＢＢ２を介して再度システムメモリ５に記憶される。
【００７８】
（Ｓ３４）：システムメモリ５に記憶されたタイルベクタデータは、ＨＤＤＣｏｎｔ７とＭＣ４を介して、ＳＢＢ２経由でＨＤＤ８に記憶される。ＨＤＤ８にタイルベクタデータを記憶することにより、複数部の原稿をコピーする時にソーティングをして、ページ順を変えて出力したり、ＭＦＰ１０００内に保存画像データとして記憶したりすることができる。
【００７９】
（Ｓ３５）：ＨＤＤ８に記憶されたタイルベクタデータは、プリンタ１７内のＣＰＵ（不図示）から送られてくるプリンタレディのタイミングに合わせて、ＨＤＤＣｏｎｔ７により読み出される。そして、ＳＢＢ２、ＭＣ４を経由してシステムメモリ５に一時的に記憶される。
【００８０】
読み取ったタイルベクタデータをＨＤＤ８からダイレクトにプリンタ１７へ出力する場合、ＨＤＤ８のアクセススピードが律則したり、汎用バス６のバスの混雑度合によりプリンタ１７に同期して出力することが保証できなくなる。そのため、プリンタ１７に同期してデータ転送を行う前に、システムメモリ５に１ページ分のベクタ画像データをスプールすることにより、リアルタイムなスループットを保証する。
【００８１】
（Ｓ３６）：システムメモリ５に記憶されたタイルベクタデータは、プリンタ１７からコントローラ１に送られる起動信号に従って、ＭＣ４によって読み出され、ＳＢＢ２を介してＲＩＰ１８に転送される。
【００８２】
ＲＩＰ１８では、まず、タイルベクタデータを解析し、タイル単位の描画オブジェクト（タイルＤＬデータ）の生成（インタプリット）を実行する。生成されたタイルＤＬデータはローカルメモリ１９に一旦記憶される。
【００８３】
ＲＩＰ１８はローカルメモリ１９からタイルＤＬデータを読み出して、タイル単位のラスタデータ（タイルラスタデータ）へと展開し、出力する。
【００８４】
（Ｓ３７）：ＲＩＰ１８によって生成されたタイルラスタデータは、画像処理部１５に転送され、例えば、以下の処理が実行される。
【００８５】
１）タイルラスタデータからページラスタデータへの変換処理
２）プリンタの特性に合わせた出力画像の色や濃度の補正処理
３）画像データを量子化して出力画像の階調変換を実行する中間調処理
４）プリンタＩ／Ｆクロックに同期して画像を出力するための周波数変換処理
そして、画像処理部１５で、１）〜４）の画像処理が実行されて得られたラスタデータは、プリンタ１７に転送され、記録媒体上に印刷され出力される。
【００８６】
[送信]
図４は本発明の実施形態１の画像処理システムでの送信動作に係るデータフローを示す図である。
【００８７】
尚、このデータフローは、ＣＰＵ３の制御の下、ＭＦＰ１０００を構成する各種構成要素を協調動作させることで実現される。
【００８８】
また、画像データをＨＤＤ８に格納するまでのデータフローについては、ラスタデータの場合は［コピー］と、ネットワーク１２上の外部機器からの入力されたページベクタデータの場合は［プリント］と同一であるので、その説明は割愛する。
【００８９】
尚、画像データをＨＤＤ８に格納する処理は、ユーザからの格納指示によって実行されるようにしてもよいし、［コピー］や［プリント］の処理の際にＨＤＤ８に自動的に残しておくようにしてもよい。このようにして、ＨＤＤ８に格納された画像データの中から、ユーザによって指定された画像データを送信するように指示された際に行われる送信処理について説明する。
【００９０】
（Ｓ４１）：ＨＤＤ８に記憶されたタイルベクタデータはＳＢＢ２を介して、汎用バス６に接続されたＨＤＤＣｏｎｔ７より読み出され、システムメモリ５に一時的に記憶される。
【００９１】
（Ｓ４２）：システムメモリ５に記憶されたタイルベクタデータは、タイル／ページベクタ変換部１３より読み出され、タイルベクタ変換処理を実行する。即ち、ブロック単位に分割されたオブジェクトを結合し、ページ全体でオブジェクトを記述したページベクタデータを生成する。つまり、１ページ分のタイルベクタデータを、ページ全体のベクタデータを示すページベクタデータを生成する。
【００９２】
（Ｓ４３）：生成されたページベクタデータは、ＳＢＢ２を介して再度システムメモリ５に記憶される。
【００９３】
（Ｓ４４）：システムメモリ５中に記憶されたページベクタデータは、汎用バス６に接続されたネットワークＩ／Ｆ１１から読み出され、ネットワーク１２に接続された外部機器へと送信転送される。
【００９４】
本発明のように、外部機器に送信する際に、タイルベクタデータをページベクタデータに戻して、そのデータを構成するオブジェクト数を減らすことで、送信データ量を削減することができる。また、ＰＤＦやＳＶＧ等の汎用フォーマットへ容易に変換することができる。
【００９５】
尚、本発明では、スキャナ１６から入力したラスタデータを、外部機器に送信することも可能である。この場合は、そのラスタデータをページベクタに変換してから、外部機器へ送信することが好ましい。
【００９６】
［ラスタ／タイルベクタ変換部］
次に、ラスタ／タイルベクタ変換部１４の処理の詳細について説明する。
【００９７】
図５は本発明の実施形態１のラスタ／タイルベクタ変換部が実行する処理を示すフローチャートである。
【００９８】
（ステップＳ５１：ブロックセレクション（領域分割：ＢＳ）処理）
画像処理部１５より入力されたラスタデータ（イメージデータ）を、文字あるいは線画を含む文字・線画領域と、ハーフトーンの写真領域、不定形の画像領域その他に分割する。さらに、文字・線画領域については、主に文字を含む文字領域と、主に表、図形等を含む線画領域とに分離し、線画領域は表領域と図形領域に分割する。
【００９９】
尚、実施形態１では、処理対象中の画像の連結画素を検知し、その連結画素の外接矩形領域の形状・サイズ・画素密度等の特徴量を用いて、属性毎の領域に分離するものとするが、その他の領域分割手法を用いても構わない。
【０１００】
文字領域については、文字段落ごとの纏まった塊をブロックとして矩形ブロック（文字領域矩形ブロック）にセグメント化する。線画領域では、表、図形等の個々のオブジェクト（表領域矩形ブロック、線画領域矩形ブロック）ごとに矩形ブロックにセグメント化する。
【０１０１】
ハーフトーンで表現される写真領域は、画像領域矩形ブロック、背景領域矩形ブロック等のオブジェクトごとに、矩形ブロックにセグメント化する。
【０１０２】
分離された各領域は、さらに所定の大きさの領域（タイル）単位に分割され、タイル単位で、次のベクトル化処理でベクトル化される。
【０１０３】
（ステップＳ５２：ベクトル化処理）
ベクトル化処理により、各属性の領域のイメージデータをベクトルデータに変換する（ベクトル化する）。ベクトル化の方法は、例えば、以下、方法（ａ）〜（ｆ）等が存在する。
【０１０４】
（ａ）属性領域が文字領域のとき、さらにＯＣＲによる文字画像のコード変換を行ったり、あるいは文字のサイズ、スタイル、字体を認識し、原稿を走査して得られた文字に可視的に忠実なフォントデータに変換する。
【０１０５】
（ｂ）属性領域が文字領域であり、かつＯＣＲによる認識が不可能であったとき、文字の輪郭を追跡し、輪郭情報（アウトライン）を線分のつながりとして表現する形式に変換する。
【０１０６】
尚、実施形態１では、文字領域に対して、ＯＣＲ結果に応じて、方法（ａ）と方法（ｂ）とのいずれかを用いる例を示したが、これに限るものではなく、例えば、方法（ａ）は用いずに全ての文字領域に対して方法（ｂ）だけを用いるようにしても構わない。
【０１０７】
（ｃ）属性領域が図形領域のとき、図形オブジェクトの輪郭を追跡し、輪郭情報を線分のつながりとして表現する形式に変換する。
【０１０８】
（ｄ）方法（ｂ）及び（ｃ）の線分形式のアウトライン情報をベジエ関数等でフィッティングして、関数情報に変換する。
【０１０９】
（ｅ）方法（ｃ）の図形オブジェクトの輪郭情報から、図形の形状を認識し、円、矩形、多角形、等の図形定義情報に変換する。
【０１１０】
（ｆ）属性領域が図形領域であって、特定領域の表形式のオブジェクトの場合、罫線や枠線を認識し、所定のフォーマットの帳票フォーマット情報に変換する。
【０１１１】
（ステップＳ５３：タイルベクタデータ生成処理）
ステップＳ５２で、方法（ａ）〜（ｆ）のフォーマットコード情報、図形情報、関数情報等のコマンド定義形式情報にベクトル変換されたデータに対し、コントローラ１内でページベクタデータかタイルベクタデータかを判別するベクタタイプを生成する。更には、当該タイルのページ内の座標位置等の座標情報を判別するためのヘッダ情報を付加した、タイルベクタデータを生成する。このようにして、タイル単位に各種情報が付加されたタイルベクタデータをＳＢＢ２へ出力する。
【０１１２】
（ステップＳ５４：終了判定処理）
処理対象のラスタデータの有無を判定する。処理対象のラスタデータがある場合（ステップＳ５４でＮＯ）、ステップＳ５１に戻る。一方、処理対象のラスタデータがない場合（ステップＳ５４でＹＥＳ）、処理を終了する。
【０１１３】
［タイル／ページベクタ変換部］
次に、タイル／ページベクタ変換部１３の処理の詳細を説明するにあたり、処理対象となるドキュメントデータ（画像データ）について説明する。
【０１１４】
図６は本発明の実施形態１のネットワークから転送されてくるドキュメントデータの一例を示している。
【０１１５】
図６では、ドキュメントデータ８０１の短手方向を「Ｘ」方向、長手方向を「Ｙ」方向とするデバイス座標系を定義する。ドキュメントデータ８０１としては、ページベクタデータ、タイルベクタデータ、あるいはラスタデータ表現を含むページベクタデータ（タイルベクタデータ）、あるいはラスタデータのいずれかで構成される可能性がある。
【０１１６】
ここで、ドキュメントデータ８０１が、ページベクタデータである場合、その内容を構成する記述例について、図７を用いて説明する。
【０１１７】
図７は本発明の実施形態１のページベクタデータの記述例を示す図である。
【０１１８】
図７において、９０１はドキュメントデータ全体の設定に関わるドキュメント設定命令部分、９０２は文字の描画命令部分、９０３は図形の描画命令部分を示している。
【０１１９】
各描画命令部分の詳細について説明する。
【０１２０】
ドキュメント設定命令部分９０１において、Ｃ１〜Ｃ５は、ドキュメント全体に関係するコマンドである。従って、これらのコマンドＣ１〜Ｃ５は、ドキュメント１部について１ヶ所しか付いていない。
【０１２１】
これらドキュメントデータ全体に関係するコマンドには、例えば、キャラクタセットコマンド（フォント指定コマンド）がある。更には、スケーラブルフォントコマンド（スケーラブルフォントを使用するか否かを指定するコマンド）、ハードリセットコマンド（以前のプリンタ使用環境をリセットするコマンド）等がある。
【０１２２】
ここで、Ｃ１はドキュメント設定開始コマンドである。Ｃ２はドキュメントデータの出力用紙サイズを示すコマンドであり、この場合には、Ａ４の設定になっている。Ｃ３はドキュメントデータの方向を示すコマンドである。ここでは、ポートレートとランドスケープがあるが、この場合にはポートレート（ＰＯＲＴ）の設定になっている。
【０１２３】
Ｃ４はドキュメントデータのタイプを示すコマンドであり、ページベクタで構成されるドキュメントデータであるかタイルベクタで構成されるドキュメントデータであるかを示している。この場合には、ページ（ＰＡＧＥ）に設定されている。Ｃ５はドキュメント設定終了コマンドである。
【０１２４】
文字の描画命令部分９０２及び図形の描画命令部分９０３を構成するＣ６〜Ｃ２２は、ドキュメントデータを出力するための各種コマンドである。
【０１２５】
Ｃ６はページの開始を示すコマンドである。Ｃ７は文字のフォントの種類を選択するためのコマンドであり、この場合には「１」という番号の付けられたフォントセットに設定されている。Ｃ８はフォントの大きさを設定するコマンドであり、この場合には「１０ポイント」の大きさに設定されている。
【０１２６】
Ｃ９は文字の色を設定するコマンドであり、順にＲ（赤），Ｇ（緑），Ｂ（青）各色成分の輝度を示してある。この輝度は、例えば、０から２５５の２５６段階で量子化されているものとする。この場合は、｛０，０，０｝に設定されている。Ｃ１０は文字を描画する開始位置の座標を示すコマンドである。座標位置（Ｘ，Ｙ）は、ページの左上を原点に指定する。この場合は、ページの｛１０，５｝の位置から文字の描画を開始するように設定されている。Ｃ１１は実際に描画する文字列（ＸＸＸＸ・・・ＹＹ・・・）を示すコマンドである。
【０１２７】
Ｃ１２は図形描画の際の面の塗りつぶしの色を示すコマンドである。色の指定は、文字の色と同様である。Ｃ１３は図形描画の線の色を指定するコマンドである。Ｃ１４は図形描画位置の座標を示すコマンドである。
【０１２８】
Ｃ１５は円弧を描画する際の半径を指定するコマンドであり、この場合、「１０」座標単位を示している。Ｃ１６は閉円弧の描画をするコマンドである。コマンド内の２個のパラメータは円弧を描画する際の描画開始角度と終了角度を示している。垂直情報を０度として、この場合には０度から９０度の円弧を描画することを示している。
【０１２９】
Ｃ１７〜Ｃ２１は、Ｃ１２〜Ｃ１６までのコマンドと同様に、図形描画の際の面、線の色の指定、位置の指定等のコマンドである。Ｃ２２はページの終了を示すコマンドである。
【０１３０】
一方、ドキュメントデータ８０１がタイルベクタデータである場合について、図８を用いて説明する。
【０１３１】
図８は本発明の実施形態１のタイルベクタデータの例を示す図である。
【０１３２】
図８では、図６のドキュメントデータ８０１（ページベクタデータ）を、ブロック（タイル）単位で分割したタイルベクタデータ（ドキュメントデータ１００１）の一例を示している。
【０１３３】
図８では、ドキュメントデータ１００１の短手方向を「Ｘ」方向、長手方向を「Ｙ」とするデバイス座標系を定義する。また、図中のＸ方向に配列された数列は、Ｘ方向のタイルＩＤ、Ｙ方向に配列された数列は、Ｙ方向のタイルＩＤを表す。Ａ〜Ｄは、それぞれタイルＩＤ＝（０，０）、（１，０）、（２、４）、（１，５）の位置にあるタイルデータを示している。
【０１３４】
ここで、このドキュメントデータ１００１が、タイルベクタデータである場合、その内容を構成する記述例について、図９を用いて説明する。
【０１３５】
図９は本発明の実施形態１のタイルベクタデータの記述例を示す図である。
【０１３６】
図９において、１１０１はドキュメントデータ全体の設定に関わるドキュメント設定命令部分、１１０２は描画命令部分全体、１１０３〜１１０６はそれぞれタイルＡ，Ｂ，Ｃ，Ｄの描画命令部分を示している。１１０７、１１０８はそれぞれタイルＤの文字の描画命令部分、図形の描画命令部分を示している。
【０１３７】
各描画命令の詳細について説明する。
【０１３８】
ドキュメント設定命令部分１１０１において、Ｃ１〜Ｃ５は、ドキュメント全体に関係するコマンドである。従って、これらのコマンドＣ１〜Ｃ５は、ドキュメント１部について１ケ所しか付いていない。
【０１３９】
これらドキュメントデータ全体に関係するコマンドには、例えば、キャラクタセットコマンド（フォント指定コマンド）がある。更には、スケーラブルフォントコマンド（スケーラブルフォントを使用するか否かを指定するコマンド）、ハードリセットコマンド（以前のプリンタ使用環境をリセットするコマンド）等がある。
【０１４０】
ここで、Ｃ１はドキュメント設定開始コマンドである。Ｃ２はドキュメントデータの出力用紙サイズを示すコマンドであり、この場合には、Ａ４の設定になっている。Ｃ３はドキュメントデータの方向を示すコマンドである。ここでは、ポートレートとランドスケープがあるが、この場合にはポートレート（ＰＯＲＴ）の設定になっている。
【０１４１】
Ｃ４はドキュメントデータのタイプを示すコマンドであり、ページベクタで構成されるドキュメントデータあるのかタイルベクタで構成されるドキュメントデータあるかを示している。この場合には、タイル（ＴＩＬＥ）に設定されている。Ｃ５はドキュメント設定終了コマンドである。
【０１４２】
描画命令部分１１０２を構成するＣ６〜Ｃ５００は、ドキュメントデータを出力するための各種コマンドである。
【０１４３】
Ｃ６はページの開始を示すコマンドである。Ｃ７は図８のタイルＡの描画コマンドの開始を示すコマンドである。ここで、ＴｉｌｅＳｔａｒｔ（０，０）中の２個のパラメータは、ドキュメントデータ内におけるタイルＩＤを示している。Ｃ８はタイルＡの描画コマンドの終了を示すコマンドである。タイルＡのように、そのタイル内にオブジェクトが何も存在しない場合は、タイルの開始と終了を示すコマンドだけが記述される。
【０１４４】
Ｃ９は図８のタイルＢの描画コマンドの開始を示すコマンドである。Ｃ１０は文字のフォントの種類を選択するためのコマンドであり、この場合には「１」という番号の付けられたフォントセットに設定されている。Ｃ１１はフォントの大きさを設定するコマンドであり、この場合には「１０ポイント」の大きさに設定されている。
【０１４５】
Ｃ１２は文字の色を設定するコマンドであり、順にＲ（赤），Ｇ（緑），Ｂ（青）各色成分の輝度を示してある。この輝度は、例えば、０から２５５の２５６段階で量子化されているものとする。この場合は、｛０，０，０｝に設定されている。Ｃ１３は文字を描画する開始位置の座標を示すコマンドである。座標位置（Ｘ，Ｙ）は、タイルの左上を原点に指定する。この場合は、タイルの｛０，５｝の位置から文字の描画を開始するように設定されている。Ｃ１４は実際に描画する文字列（ＸＸＸＸ）を示すコマンドである。Ｃ１５はタイルＢの描画コマンドの終了を示すコマンドである。
【０１４６】
Ｃ１００は図８のタイルＣの描画コマンドの開始を示すコマンドである。Ｃ１０１は図形描画の際の面の塗りつぶしの色を示すコマンドである。色の指定は、文字の色と同様である。Ｃ１０２は図形描画の線の色を指定するコマンドである。Ｃ１０３は図形を描画する位置の座標を示すコマンドである。
【０１４７】
Ｃ１０４は円弧を描画する際の半径を指定するコマンドであり、この場合、「１０」座標単位を表している。Ｃ１０５は閉円弧の描画をするコマンドである。コマンド内の２個のパラメータは円弧を描画する際の描画開始角度と終了角度を示している。垂直情報を０度として、この場合には０度から９０度の円弧を描画することを示している。Ｃ１０６はタイルＣの描画コマンドの終了を示すコマンドである。
【０１４８】
Ｃ１２０は図８のタイルＤの描画コマンドの開始を示すコマンドである。Ｃ１２１〜Ｃ１３０は、Ｃ９〜Ｃ１５のコマンドと同様に文字の描画命令による文字のフォントの種類、色、大きさ等を指定するコマンド及びＣ１００〜Ｃ１０６まてのコマンドと同様に図形の描画命令による図形の面、線の色、位置等を指定するコマンドである。Ｃ１３１はタイルＤの描画コマンドの終了を示すコマンドである。
【０１４９】
Ｃ５００はページの終了を示すコマンドである。
【０１５０】
次に、タイル／ページベクタ変換部１３の処理の詳細について、図１０を用いて説明する。
【０１５１】
図１０は本発明の実施形態１のタイル／ページベクタ変換部が実行する処理を示すフローチャートである。
【０１５２】
尚、このタイル／ページベクタ変換部１３では、ページベクタデータとタイルベクタデータ間での相互変換を行うことができる。あるいは、タイル／ページベクタ変換部１３は、ページベクタデータからタイルベクタデータへ変換する変換部と、タイルベクタデータからページベクタデータへ変換する変換部で構成されていても良い。
【０１５３】
（ステップＳ６０１）
まず、システムメモリ５中に記憶されたドキュメントデータ（ベクタデータ）から、ヘッダ部分に相当するコマンド列を読み込み、処理対象となるドキュメントデータ全体に関するコマンド部分を解析する。具体的には、図７または図９のＣ１〜Ｃ５に相当する部分の内容を解析する。
【０１５４】
（ステップＳ６０２）
解析の結果に基づいて、ドキュメントデータのタイプが、ページベクタデータであるか否かを判定する。ページベクタデータである場合（ステップＳ６０２でＹＥＳ）、ステップＳ６０３以降のステップに進み、ページベクタ→タイルベクタ変換を実行する。一方、ページベクタデータでない場合、つまり、タイルベクタデータである場合（ステップＳ６０２でＮＯ）、ステップＳ６１０以降のステップに進み、タイルベクタ→ページベクタ変換を実行する。
【０１５５】
（ステップＳ６０３）
ページベクタデータから、オブジェクトを記述するコマンド列を読み込む。
【０１５６】
（ステップＳ６０４）
ステップＳ６０３で読み込んだコマンド列を解析し、記述されているオブジェクトの大きさが分割したいタイルサイズを超えているか否かを判定する。つまり、オブジェクトの更なる分割が必要であるか否かを判定する。
【０１５７】
オブジェクトの大きさが分割したいタイルサイズを超えていない場合（ステップＳ６０４でＮＯ）、ステップＳ６０５をスキップして、ステップＳ６０６に進む。一方、オブジェクトの大きさが分割したいタイルサイズを超えている場合（ステップＳ６０４でＹＥＳ）、ステップＳ６０５に進む。
【０１５８】
（ステップＳ６０５）
ここでは、入力されたオブジェクトの分割処理を実行する。
【０１５９】
例えば、図７のページベクタデータでは、文字の描画命令部分９０２で、「ＸＸＸＸ・・・ＹＹ・・・」を含む全ての文字列の描画命令を記述している。これに対して、図９のタイルベクタデータでは、例えば、タイルＢに対する描画命令１１０４では、「ＸＸＸＸ」の文字列の描画命令しか記述されていない。
【０１６０】
従って、タイルベクタデータでは、文字列が複数のタイルに跨がる場合は、その文字列を途中（タイル境界）で分割し、分割された後続の文字列は別の文字列として、次のタイルに記述を行う。次のタイルに記述が収まらなかったら、同様にまたタイルに含まれる文字列を分割し、分割された全ての文字列がタイルサイズに収まるまで繰り返す。文字列をどこで切るかは、フォントの種類、サイズからタイル内に収まる文字数を算出し、その数だけの文字を抽出する。
【０１６１】
例えば、図７のページベクタデータの文字の描画命令部分９０２に対して、タイル内に収まる文字数は４つとして算出され、図７のコマンドＣ１１の記述は、タイルＢに対する描画命令を構成するコマンドＣ１３の記述に変換される。
【０１６２】
また、図形の描画命令部分９０３では、コマンドＣ１７〜Ｃ２１で記述されている図形（図６の３／４円）は、図８のタイルベクタデータを構成するタイルの１つには収まらない。そのため、この図形は、タイルＤを含む複数のタイルに分割される。図形の分割は、図形の描画位置や図形の形、大きさからタイルの境界領域と接する部分を算出し、その境界とタイル内に収まっている図形の部分領域で構成される閉領域を新たな図形として記述し直す。
【０１６３】
図７の図形の描画命令部分９０３で記述される図形（図６の３／４円）は、図９では、その左下の部分領域が、図形の描画命令部分１１０８のコマンドＣ１２６からＣ１３０のような１／４円の記述に変換される。また、残りの領域も、同様な形の１／４円の記述に変換される。円と同様にして、直線及び直線からなる多角形等が一つのタイルに収まらない場合にも、オブジェクト毎に複数のタイルに分割される。
【０１６４】
ここで、複数タイルに跨がるオブジェクトがタイル分割される場合のオブジェクト分割処理について、図１１を用いて説明する。
【０１６５】
図１１は本発明の実施形態１の直線オブジェクトの分割処理の例を示す模式図である。
【０１６６】
図１１において、２２０１はページベクタデータの一部分であり、実際にラスタライズされた場合のイメージを元にした模式図である。この例においては、線分のオブジェクトデータ２２０２を有している。線分のオブジェクトデータ２２０２は、その制御点座標である端点Ｅ１を表す始点座標（ｘ１，ｙ１）と端点Ｅ２を表す終点座標（Ｘ１，Ｙ１）を結ぶベクタデータで表され、線幅を有している。また、属性値として、線幅２８ｐｔを有している。ここで、これらの制御点座標及び属性値は、オブジェクトに関するオブジェクト情報として捉えることができる。
【０１６７】
このページベクタデータ２２０１をタイルベクタデータ２２０３とタイルベクタデータ２２０４に分割したとする。この場合、オブジェクトデータ２２０２はオブジェクト２２０５と２２０６に分割され、新たに端点ｅ１、ｅ２が生じる。この端点ｅ１、ｅ２は、線幅を考慮し、ラスタライズ後に欠損が生じないよう、各タイルの領域外の座標値を取るよう拡張され、座標の再設定が行われる。例えば、タイルの境界から垂直な方向に線幅分離れた位置に端点を再設定するようにしても良い。
【０１６８】
具体的には、オブジェクトデータ２２０５の座標情報は、始点（ａ１，ｂ１）→（Ａ１，Ｂ１）となる。また、オブジェクトデータ２２０６の座標情報は、始点（ａ２，ｂ２）→（Ａ２，Ｂ２）となる。
【０１６９】
こうして得られたオブジェクトデータ２２０５、２２０６はそれぞれ、タイルベクタデータ２２０３とタイルベクタデータ２２０４に保持される。タイルベクタデータ２２０３とタイルベクタデータ２２０４はラスタライズを行う際に、それぞれ、独立にラスタライズが行われる。その場合でも、端点ｅ１、ｅ２を再設定することによって、ラスタライズ後の結果２２０７は、図１１のように画像の欠損を生じることなく、所望の結果を得ることが可能となる。
【０１７０】
尚、図１１の例では、端点ｅ１、ｅ２の両方の座標情報を再設定する構成としているが、分割されるオブジェクトデータの種類や位置によっては、それらの少なくとも一方を再設定する構成もあり得ることは言うまでもない。
【０１７１】
（ステップＳ６０６）
入力されたオブジェクトのコマンドの記述に対し、タイルベクタデータ内での描画位置へ変更するために、座標位置の変換を行う。ページベクタデータでは、ページの左上からの位置を記述していたのに対し、タイルベクタデータではタイルの左上からの位置に記述し直す。描画位置をタイル内の座標で記述することにより、座標計算に要するデータ長を削減することが可能になる。また、オブジェクトの種類（例えば、線分オブジェクト）によっては、ここで、属性値の変換（例えば、座標情報）も同時に行う。
【０１７２】
（ステップＳ６０７）
１つのオブジェクトに対するコマンドの記述変換が終了したら、ページ内の全てのオブジェクトのコマンドの記述変換が終了したか否かを判定する。終了していない場合（ステップＳ６０７でＮＯ）、ステップＳ６０３に戻り、次のコマンドに対して、ステップＳ６０３〜ステップＳ６０７の処理を繰り返す。一方、終了した場合（ステップＳ６０７でＹＥＳ）、ステップＳ６０８へ進む。
【０１７３】
（ステップＳ６０８）
全てのコマンドの記述変換が終了したら、図８のように分割されたタイルベクタデータ中の各タイルに対し、ページの左上から順にタイルベクタデータとしてシステムメモリ５への書出を実行する。タイルベクタデータとしては、ステップＳ６０５及びステップＳ６０６で記述されたコマンドに対し、タイルの開始と終了を示すコマンドを追加するようなフォーマットで記述される。
【０１７４】
まず、ページの一番最初のコマンドの書出時点では、システムメモリ５内にオブジェクトがない状態のタイルベクタを生成しておく。オブジェクトがないタイルベクタとしては、例えば、図８のタイルＡがある。このタイルＡは、タイルの開始と終了を示すコマンドＣ７及びＣ８のみから構成される描画命令部分１１０３（図９）で記述される。
【０１７５】
次に、ステップＳ６０３〜ステップＳ６０７で処理されたコマンドが存在する座標のタイルに対し、オブジェクトの記述を追加する。例えば、図８のタイルＢの場合は、コマンドＣ９〜Ｃ１５から構成される描画命令部分１１０４（図９）で記述される。また、タイルＤのように、同じタイルに複数のオブジェクトが存在する場合には、描画命令部分１１０６のように、文字の描画命令部分１１０７を構成するオブジェクト記述と、図形の描画命令部分１１０８を構成するオブジェクト記述を列記する。
【０１７６】
（ステップＳ６０９）
１つのオブジェクトのタイルベクタへの書出が終了すると、そのページのオブジェクトの記述が全て終了したか否かを判定する。終了していない場合（ステップＳ６０９でＮＯ）、ステップＳ６０３に戻る。一方、終了した場合（ステップＳ６０９でＹＥＳ）、処理を終了する。
【０１７７】
一方、ステップＳ６０２で、ドキュメントデータのタイプが、タイルベクタデータである場合について説明する。
【０１７８】
（ステップＳ６１０）
タイルベクタデータから、オブジェクトを記述するコマンド列を読み込む。
【０１７９】
（ステップＳ６１１）
ステップＳ６１０で読み込んだコマンド列を解析し、記述されているオブジェクトがそれより以前に読み込まれたタイルと結合可能であるか否かを判定する。結合可能でない場合（ステップＳ６１１でＮＯ）、ステップＳ６１２をスキップし、ステップＳ６１３に進む。一方、結合可能である場合（ステップＳ６１１でＹＥＳ）、ステップＳ６１２に進む。
【０１８０】
尚、オブジェクトが結合可能であるか否かの判定は、読み込んだコマンドの座標位置や、図形の種別等を基に判定する。また、文字列の場合は、フォントサイズやフォントの種類を基に判定する。
【０１８１】
（ステップＳ６１２）
オブジェクトの結合処理を実行する。この処理は、基本的には、ステップＳ６０５の処理手順を逆にすることで実現する。
【０１８２】
（ステップＳ６１３）
入力されたオブジェクトのコマンドの記述に対し、ページベクタデータ内での描画位置へ変更するために、座標位置の変換を行う。タイルベクタデータでは、タイルの左上からの位置を記述していたのに対し、ページベクタデータでは、ページの左上からの位置に記述し直す。また、オブジェクトの種類によっては、ここで、属性値の変換も行われる。
【０１８３】
（ステップＳ６１４）
１つのオブジェクトに対するコマンドの記述変換が終了したら、タイル内の全てのオブジェクトのコマンドの記述変換が終了したか否かを判定する。終了していない場合（ステップＳ６１４でＮＯ）、ステップＳ６１０に戻り、次のコマンドに対して、ステップＳ６１０〜ステップＳ６１３の処理を繰り返す。一方、終了した場合（ステップＳ６１４でＹＥＳ）、ステップＳ６１５へ進む。
【０１８４】
（ステップＳ６１５）
全てのコマンドの記述変換が終了したら、ページベクタデータとしてシステムメモリ５への書出を実行する。ページベクタデータとしては、ステップＳ６１２及びステップＳ６１３で記述されたコマンドに対し、タイルの開始と終了を示すコマンドを削除したようなフォーマットで記述される。
【０１８５】
まず、ページ内の一番最初のタイルに記述されたコマンドの書出時点では、システムメモリ５内にオブジェクトがない状態のページベクタを生成しておく。これは、図７の記述を用いて説明すると、コマンドＣ１〜Ｃ６、コマンドＣ２２だけで記述されるページベクタである。
【０１８６】
次に、ステップＳ６１０〜ステップＳ６１３で処理されたオブジェクトの記述を追加する。図７の記述の場合、文字の描画命令部分９０２を構成するコマンドＣ７〜Ｃ１１がそれにあたる。この場合のオブジェクトは、文字列｛ＸＸＸＸ・・・ＹＹ・・｝を示しているが、これは、ステップＳ６１２で、図９の文字の描画命令部分１１０４や１１０７等で記述される各タイル中の文字列を順次結合したオブジェクトの記述である。
【０１８７】
（ステップＳ６１６）
１つコマンドのページベクタへの書出が終了すると、そのタイルのオブジェクトの記述が全て終了したか否かを判定する。終了していない場合（ステップＳ６１６でＮＯ）、ステップＳ６１０に戻る。一方、終了した場合（ステップＳ６１６でＹＥＳ）、ステップＳ６１７に進む。
【０１８８】
（ステップＳ６１７）
１つのタイルベクタデータの書出が終了すると、そのページのタイルベクタデータの記述に対する処理が全て終了したか否かを判定する。終了していない場合（ステップＳ６１７でＮＯ）、ステップＳ６１０に戻る。一方、終了した場合（ステップＳ６１７でＹＥＳ）、処理を終了する。
【０１８９】
[画像データ展開部（ＲＩＰ）]
次に、コントローラ１中の画像データ展開部１８の詳細について説明する。
【０１９０】
まず、コピーやプリント、送信等の画像データに対する処理を開始する前に、ローカルメモリ１９の初期化と、作成するオブジェクトの解像度の設定を行っておく。実施形態１では、生成解像度は６００ｄｐｉとし、ポイントサイズやｍｍ等の単位系で指定された印刷コマンドは、この値を用いてドット数に変換されることになる。
【０１９１】
以下では、画像データ展開部１８によって、タイルベクタデータ展開を実行する場合の処理について、図１２を用いて説明する。
【０１９２】
図１２は本発明の実施形態１の画像データ展開部が実行する処理を示すフローチャートである。
【０１９３】
（ステップＳ７１）
システムメモリ５より、ＳＢＢ２を経由して、ＲＩＰ１８に一定サイズ分入力されたタイルベクタデータは、ローカルメモリ１９のタイルベクタ領域に一時的に格納する。
【０１９４】
（ステップＳ７２）
タイルベクタデータをローカルメモリ１９に格納したら、ＲＩＰ１８内のμＲＩＰ１８ａ〜１８ｄのいずれかが、タイルベクタデータを展開可能（処理可能）であるか否かを判定する。μＲＩＰ１８ａ〜１８ｄのいずれもタイルベクタデータの展開（処理）中である場合（ステップＳ７２でＮＯ）、それらのいずれかが展開可能になるまで待機する。
【０１９５】
（ステップＳ７３）
μＲＩＰ１８ａ〜１８ｄのいずれかがタイルベクタデータを展開可能になれば、予め定められた文法に従って、ローカルメモリ１９に格納されたタイルベクタデータのコマンド解析を実行する。
【０１９６】
（ステップＳ７４）
コマンド解析結果に基づいて、コマンドが描画命令であるか排紙命令であるかを判定する。描画命令である場合（ステップＳ７４でＹＥＳ）、ステップＳ７５に進む。一方、排紙命令である場合（ステップＳ７４でＮＯ）、ステップＳ７６に進む。
【０１９７】
（ステップＳ７５）
コマンドが描画命令である場合、描画オブジェクト（ＤＬデータ）の生成を実行する。タイルベクタデータ内のコマンドが文字の描画命令である場合、そのコマンドで指定されるフォントの書体や、文字サイズ、文字コードを元にフォントオブジェクトを生成して、ローカルメモリ１９のＤＬデータ領域に格納する。また、文字以外の描画命令、つまり、図形の描画命令である場合、そのコマンドで指定された図形（ラインや円、多角形等）の描画オブジェクトを生成し、ローカルメモリ１９のＤＬデータ領域に格納する。
【０１９８】
また、コマンドが描画命令で指定されない印刷データである場合には、この印刷データに応じて印刷位置移動や印刷環境設定等の印刷制御処理を実行し、一単位分のコマンド解釈を終了する。
【０１９９】
これは、タイルベクタデータ内のコマンド全ての解釈が終了するまで、上記処理を繰り返す。
【０２００】
（ステップＳ７６）
コマンドが排紙命令である場合、μＲＩＰは、ローカルメモリ１９上のタイルラスタ領域に空き領域があるか否かを判定する。空き領域がない場合（ステップＳ７６でＮＯ）、他のμＲＩＰの処理が終了して、タイルラスタ領域が解放されて、空き領域ができるまで待機する。一方、空き領域がある場合（ステップＳ７６でＹＥＳ）、ステップＳ７７に進む。
【０２０１】
（ステップＳ７７）
タイルラスタ領域に空き領域がある場合、ステップＳ７５で生成された描画オブジェクトを読み出し、タイルラスタ領域に描画（ラスタライズ）する。この時、生成解像度が６００ｄｐｉであれば、タイルラスタ領域には６００ｄｐｉの画像としてラスタライズされる。そして、描画が終了したタイルラスタ画像は、ＳＢＢ２を介して、画像処理部１５に出力する。
【０２０２】
（ステップＳ７８）
ステップＳ７５またはステップＳ７７で一つのタイルベクタデータに対する、コマンド解析または描画処理が終了したら、タイルベクタ領域に格納したタイルベクタデータのすべてに対して処理が終了したか否かを判定する。未処理のタイルベクタデータがある場合（ステップＳ７８でＮＯ）、ステップＳ７２に戻り、次のタイルベクタデータの処理を続ける。一方、未処理のタイルベクタデータがない場合（ステップＳ７８でＹＥＳ）、ステップＳ７９に進む。
【０２０３】
（ステップＳ７９）
１ページ分のタイルベクタデータに対し、全ての処理が終了したか否かを判定する。未処理のタイルベクタデータがある場合（ステップＳ７９でＮＯ）、ステップＳ７１に戻り、システムメモリ５から、タイルベクタデータを読み出して、処理を続ける。一方、未処理のタイルベクタデータがない場合（ステップＳ７９でＹＥＳ）、処理を終了する。
【０２０４】
以上説明したように、実施形態１によれば、ページベクタデータをブロックタイルベクタデータに分割する場合に、分割されたブロックベクタデータのラスタライズ処理におけるオブジェクトの欠損なしに、オブジェクトの連続性を保ったまま、分割を行う。
【０２０５】
具体的には、分割対象のオブジェクトデータが線分オブジェクトデータである場合には、分割後の線分オブジェクトデータそれぞれについて、ブロックの領域内外に依存することなく、その線分オブジェクトデータを規定する端点（始点及び終点）を再設定する。
【０２０６】
これにより、ブロックに属する各線分オブジェクトデータのラスタライズ処理においては、分割時に発生し得るオブジェクトの欠損を生じることなく、分割前の線分オブジェクトを再現することができる。
【０２０７】
また、ページベクタデータをブロックベクタデータに分割する際、保持するベクタオブジェクトの形態を引き継いだ形で、ブロックベクタデータを生成することができるため、再度ページベクタデータに再構成しやすいという利点がある。
【０２０８】
［実施形態２］
実施形態２では、図１０のステップＳ６０５のオブジェクト分割において、処理対象のオブジェクトが破線オブジェクトである場合について説明する。
【０２０９】
図１３は本発明の実施形態２の破線オブジェクトの分割処理の例を示す模式図である。
【０２１０】
図１３において、２３０１はページベクタデータの一部分であり、実際にラスタライズされた場合のイメージを元にした模式図である。この例においては、破線のオブジェクトデータ２３０２を有している。破線のオブジェクトデータ２３０２は、その制御点座標である始点座標（ｘ１，ｙ１）と終点座標（Ｘ１，Ｙ１）を結ぶベクタデータで表される。また、属性値として、破線を形成するための情報、線分が始まる位置のオフセット情報、線分の長さ、間隔の長さ等の情報を有している。
【０２１１】
このページベクタデータ２３０１をタイルベクタデータ２３０３とタイルベクタデータ２３０４に分割したとする。この場合、オブジェクトデータ２３０２はオブジェクトデータ２３０５と２３０６に分割される。このとき、オブジェクトデータ２３０６は、破線における線分の開始点を所望の値とするために、属性値のひとつである、オフセット値の値を０から１に書き換える。こうして得られたオブジェクトデータ２３０５及び２３０６はそれぞれ、タイルベクタデータ２３０３とタイルベクタデータ２３０４に保持される。
【０２１２】
タイルベクタデータ２３０３とタイルベクタデータ２３０４はラスタライズを行う際に、それぞれ、独立にラスタライズが行われる。その場合でも、破線オブジェクトの属性値を再設定することによって、ラスタライズ後の結果２３０７は、図１３のように画像の欠損を生じることなく、所望の結果を得ることが可能となる。
【０２１３】
以上説明したように、実施形態２によれば、実施形態１で説明した効果を、破線オブジェクトについても得ることができる。特に、破線オブジェクトの場合には、線分が始まる位置のオフセット情報を再設定する。これにより、ブロックに属する各破線オブジェクトデータのラスタライズ処理においては、分割時に発生し得るオブジェクトの欠損を生じることなく、分割前の破線オブジェクトを再現することができる。
【０２１４】
［実施形態３］
実施形態３では、図１０のステップＳ６０５のオブジェクト分割において、処理対象のオブジェクトがグラデーションオブジェクトである場合について説明する。
【０２１５】
図１４は本発明の実施形態３のグラフィックオブジェクトの分割処理の例を示す模式図である。
【０２１６】
図１４において、２４０１はページベクタデータの一部分であり、実際にラスタライズされた場合のイメージを元にした模式図である。この例においては、グラデーションを付加したオブジェクトデータを有している。オブジェクトデータは始点座標と終点座標、属性情報として、色を表現するための色空間、始点色と終点色の情報を有しており、始点から終点まで、所定の色値の変化をこれらの情報によって表現する。
【０２１７】
ここで、このページベクタデータ２４０１は、始点色白（０ｘｆｆｆｆｆｆ）から、終点色赤（０ｘｆｆ７ｆ７ｆ）の色の変化を左下４５度方向に変化させ、グラデーションを表現している。
【０２１８】
このページベクタデータ２４０１をタイルベクタデータ２４０２とタイルベクタデータ２４０３に分割したとする。この場合、グラデーションオブジェクトデータ２４０２は、その制御点座標である始点座標値をタイルの右上、終点座標値をタイルの左下に設定し、始点色を０ｘｆｆｆｆｆｆ、終点色を０ｘｆｆａ９ａ９と設定する。分割されたもう一方のグラデーションオブジェクトデータ２４０３は始点座標値をタイルの右上、終点座標値をタイルの左下に設定し、始点色を０ｘｆｆｄ４ｄ４、終点色を０ｘｆｆ７ｆ７ｆと設定する。こうして得られたグラデーションオブジェクトデータ２４０２及び２４０３はそれぞれ、個別のタイルベクタデータとして保持される。
【０２１９】
これらのタイルベクタデータはラスタライズを行う際に、それぞれ、独立にラスタライズが行われる。ラスタライズ処理後の結果は、ひとつながりのグラデーションとして得られる。
【０２２０】
以上説明したように、実施形態３によれば、実施形態１で説明した効果を、グラデーションオブジェクトについても得ることができる。特に、グラデーションオブジェクトの場合には、グラデーションが始まる始点座標値及び終点座標値を再設定する。これにより、ブロックに属する各グラデーションオブジェクトデータのラスタライズ処理においては、分割時に発生し得るオブジェクトの欠損を生じることなく、分割前のグラデーションオブジェクトを再現することができる。
【０２２１】
［実施形態４］
線分オブジェクトの別の問題点について、図１５を用いて説明する。
【０２２２】
１５０１はページベクタデータの一部分であり、実際にラスタライズされた場合のイメージを元にした模式図である。この例においては、線幅を持った線分のオブジェクトデータが５つ並んだデータを示している。ページベクタデータ１５０１をブロックベクタデータ１５０２、１５０３に分割する際、２つのブロックベクタデータ１５０２、１５０３の境界に隣接して、直線オブジェクト１５０６が存在している。
【０２２３】
この直線オブジェクト１５０６は、その始点、終点の座標位置は、ブロックベクタデータ１５０２の領域内に収まっているが、オブジェクトに線幅の属性データを適用した際に、オブジェクトの一部がブロックベクタデータの境界を超えてしまう例を示している。
【０２２４】
この場合、ブロックベクタデータ１５０３には、直線オブジェクトの線幅の情報が反映されない。そのため、ブロックベクタデータ１５０３とブロックベクタデータ１５０４が独立にラスタライズを行われたときに、結果として、１５０４に示すように、直線オブジェクトの線幅が一部欠落した状態となってしまう。
【０２２５】
そこで、このような場合のオブジェクト分割処理について、図１６を用いて説明する。
【０２２６】
図１６は本発明の実施形態４の直線オブジェクトの分割処理の例を示す模式図である。
【０２２７】
図１６において、２１０１はページベクタデータの一部分であり、実際にラスタライズされた場合のイメージを元にした模式図である。この例においては、直線のオブジェクトが５つ並んだ場合を示している。直線オブジェクトは、その制御点座標である始点と終点の座標情報、あるいは、直線の属性を示す属性情報から構成される。
【０２２８】
例えば、この直線オブジェクトは、以下のような情報を保持している。
【０２２９】
座標情報      始点（ｘ１，ｙ１）→終点（Ｘ１，Ｙ１）
パターン      実線
色            黒
線幅          ２８ｐｔ
ここで、直線オブジェクト２１０７に注目すると、この直線オブジェクト２１０７は、その始点、終点の座標値は、タイルベクタに分割される際、上側のタイルベクタの領域に収まっている。しかし、直線オブジェクトに線幅を適用した場合、ラスタライズ後のイメージとしては、下側のタイルベクタの領域にも描画が必要となる。このときの条件式としては、直線オブジェクトの場合、オブジェクトが持つ座標値に対して、ｘ方向と、ｙ方向に線幅の１／２の長さを正方向に加算、負の方向に減算した場合にタイルの領域内にその座標が入っているか否かを判定する。
【０２３０】
つまり、実施形態４では、ベクタデータが有するオブジェクトの属性情報を解析する。また、オブジェクトの座標情報より、分割されるブロックベクタの各々の境界との位置関係を計算する。次に、その解析結果と、計算した位置関係により、オブジェクトそのもののは１つのブロックベクタ内に描画可能であるが、当該オブジェクトの属性情報を適用した際、ブロックベクタの境界を跨ってオブジェクトを描画する必要があるか否かを判定する。そして、必要がある場合、オブジェクトを隣接したブロックベクタにも描画するよう、ブロックベクタ内のオブジェクトを再構成する。
【０２３１】
図１６の場合、次のように処理する。ページベクタデータ２１０１を複数のタイルベクタデータ２１０２、２１０２に分割する際、当該線分オブジェクトは２１０８ａ、２１０８ｂのように、上側のタイルベクタ２１０２と下側のタイルベクタ２１０３に２重に保持されるようベクタデータを構成する。タイルベクタデータ２１０２と２１０３は、それぞれ、独立にラスタライズが行われる。そのときのラスタライズのイメージを示したのが、２１０４と２１０５である。２１０５には、線幅が適用された直線オブジェクトの一部が描画される。その結果、最終出力は、２１０６のようになり、図１５のように画像の欠損を生じることなく、所望の結果を得られる。
【０２３２】
このように、属性値によって、オブジェクトが複数のタイルベクタに跨がる場合には、当該オブジェクトを２重に別々のタイルベクタデータに保持する。但し、跨がるタイルベクタデータが多くなればなるほど、同じオブジェクトを複数のタイルベクタで保持することになり、オーバーヘッドが生じる。
【０２３３】
そこで、このような場合、跨がるタイルベクタデータの数によって、オブジェクトを複数持つか、オブジェクト自体に属性情報を適用した上で、複数のアウトラインのベクタとして各タイルベクタに分割して保持するかを選択するようにすれば良い。
【０２３４】
この例においては、直線オブジェクトを例に挙げて説明しているが、曲線オブジェクトについても、同様の処理を行うことが可能である。その場合は、タイル分割する際に、オブジェクトを２重に保持する条件式をオブジェクトに応じて、変更するようにすれば良い。
【０２３５】
以上説明したように、実施形態４によれば、ページベクタデータをブロックタイルベクタデータに分割する場合に、分割されたブロックベクタデータのラスタライズ処理におけるオブジェクトの欠損なしに、オブジェクトの連続性を保ったまま、分割を行う。
【０２３６】
具体的には、属性値によって、オブジェクトが複数のタイルベクタに跨がる場合には、当該オブジェクトを２重に別々のタイルベクタデータに保持する。これにより、ブロックに属する各直線オブジェクトデータのラスタライズ処理においては、分割時に発生し得るオブジェクトの欠損を生じることなく、分割前の直線オブジェクトを再現することができる。
【０２３７】
［実施形態５］
別のオブジェクト分割処理について、図１７を用いて説明する。
【０２３８】
図１７は本発明の実施形態５のオブジェクト分割処理の例を示す模式図である。
【０２３９】
図１７に示す例では、オブジェクトの座標データそのものは複数のタイルの境界を跨がないが、オブジェクトに属性値を適用した後に、タイルの境界を跨いでしまうような場合がある。このような場合における、オブジェクト分割処理について説明する。
【０２４０】
図１７において、２２０１、２２０２はページベクタデータをタイルベクタデータに分割する際のタイル境界を示している。ここで、オブジェクトデータ２２０３は２つの直線が結合し、その結合部に補間処理を施したオブジェクトを示している。このオブジェクトは、その制御点座標である始点と終点の座標情報、あるいは、直線の属性を示す属性情報から構成される。
【０２４１】
例えば、このオブジェクトは、以下のような情報を保持している。
【０２４２】
座標情報      始点（ｘ１，ｙ１）→（ｘ２，ｙ２）→終点（Ｘ１，Ｙ１）
パターン      実線
色            黒
線幅          ２８ｐｔ
補間方法      ラウンドジョイン
ここで、補間方法のラウンドジョインとは、直線の結合部を丸くなめらかに結合させるような補間方法である。この例において、オブジェクト２２０３はタイルベクタデータ２２０１内に全て収まっているため、タイルベクタデータ２２０２においては、オブジェクトは存在しない。
【０２４３】
同様のオブジェクトで、以下のような属性を持つオブジェクトの処理を説明する。
【０２４４】
座標情報      始点（ｘ１，ｙ１）→（ｘ２，ｙ２）→終点（Ｘ１，Ｙ１）
パターン      実線
色            黒
線幅          ２８ｐｔ
補間方法      マイタージョイン
ここで、補間方法のマイタージョインとは、直線の結合部を尖った形に結合させるような補間方法である。この例において、オブジェクト２２０６はタイルベクタデータ２２０４のみならず、結合部の補間方法を適用した結果、隣接するタイルベクタデータ２２０５の領域内まで、そのオブジェクトの描画が必要となっている。このような場合に、タイルベクタデータ２２０５は、オブジェクト２２０６の情報を保持するよう構成される。タイルベクタデータ２２０４と２２０５がそれぞれ、独立にラスタライズが行われた場合でも、結合部の補間処理を含めて、所望の結果が得られる。
【０２４５】
以上説明したように、実施形態５によれば、オブジェクト分割処理時に、属性値として、ラスタライズ処理におけるデータ補間方法を設定する。これにより、オブジェクトの座標データそのものは複数のタイルの境界を跨がないが、オブジェクトに属性値を適用した後に、タイルの境界を跨いでしまうような場合でも、分割前の正常なオブジェクトを制限することができる。
【０２４６】
［実施形態６］
オリジナルのオブジェクトをブロック単位に分割し、それをブロック単位で、ビットマップ画像にラスタライズを行う場合、分割されたブロックがそれぞれ、独立にラスタライズされる場合、次のようなことが発生し得る。つまり、各ブロック内に、当該オブジェクトのオリジナルの端点とは別に、分割によって生じた端点が多く含まれる。そのため、当該オブジェクトをＲＩＰ１１３（図２０）にてラスタライズ処理する際に、分割によって生じた端点にも、オリジナルの端点に対する端点処理と同様の端点処理を実行してしまう可能性がある。
【０２４７】
一般に、直線及び曲線オブジェクトのラスタライズ処理の内、この端点処理は比較的重く、処理時間が長い。従って、処理領域をページよりも小さいバンドやタイル等のブロック単位にすることで、分割によって生じた端点に対する無駄な端点処理が頻繁に発生してしまい、オブジェクトのラスタライズ処理に要する時間が長くなってしまう欠点がある。
【０２４８】
そこで、実施形態６では、この端点処理の負荷を軽減するためのオブジェクト分割処理の一例として、複数タイルに跨がる直線及び曲線オブジェクトがタイル分割される場合のオブジェクト分割処理について、図１８及び図１９を用いて説明する。
【０２４９】
図１８は従来の直線及び曲線オブジェクトの分割処理の例を示す模式図である。図１９は本発明の実施形態６の直線及び曲線オブジェクトの分割処理の例を示す模式図である。
【０２５０】
図１８及び図１９は、１つの直線オブジェクトがタイルＴ１、Ｔ２、Ｔ３という３つのタイルベクタデータに跨がっている場合のオブジェクト分割処理を示している。当該直線オブジェクトは、制御点座標として端点Ｅ１、Ｅ２という２つの端点の座標を持ち、属性情報として、少なくとも以下の項目を持つものとする。
【０２５１】
座標情報（アウトライン）      始点（ｘ１，ｙ１）→終点（Ｘ１，Ｙ１）
パターン                      実線
色                            黒
線幅                          ４２ｐｔ
端点                          ラウンドキャップ
図１８で示す従来例では、オブジェクト分割の前後において、制御点座標は、タイルベクタデータ毎の位置座標を基準とする新たな制御点座標に変換されるが、属性情報は、分割前のオブジェクトからそのまま引き継がれる。
【０２５２】
一方、図１９で示す実施形態６の構成では、オブジェクト分割の前後において、制御点座標は、タイル毎の位置座標に変換される。但し、属性情報は、分割前のオブジェクトから引き継いだ上で、分割によって生じた端点に対して、分割前のオブジェクトがもともと持っていたオリジナルの端点と区別するための端点処理不要フラグを付与する。
【０２５３】
即ち、この構成によれば、各端点が有する端点処理不要フラグの値が「０」または「１」であるかを検出すれば、当該端点がオリジナルの端点Ｅ１、Ｅ２であるか、分割によって生じた端点ｅ１、ｅ２、ｅ３、ｅ４であるかを容易に区別することができる。
【０２５４】
ここで、端点処理不要フラグは、図１２のステップＳ７５（描画オブジェクト（ＤＬ）データの生成）において、端点を描画するための端点処理の実行の有無を示すことになる。特に、この端点処理は、「１」の場合は、処理対象の端点に対して端点処理を実行し、「０」の場合は、処理対象の端点に対して端点処理を実行しない。
【０２５５】
特に、実施形態６では、分割前のオブジェクトのオリジナルの端点については、端点処理不要フラグのフラグ値として「０」を設定し、分割によって生じた新たな端点については、端点処理不要フラグのフラグ値として「１」を設定する。また、端点処理不要フラグのフラグ値は、例えば、システムメモリ５に記憶される。
【０２５６】
端点処理不要フラグを付与した場合には、そのフラグ値に応じて、図１２のステップＳ７５の処理内容を制御する。
【０２５７】
具体的には、ステップＳ７５において、処理対象のコマンドで指定された図形が直線または曲線である場合には、それに付与されている端点処理不要フラグのフラグ値が「０」であるか「１」であるかを検出する。
【０２５８】
フラグ値が「０」である場合、端点処理に関わる描画命令を従来通り実行して描画オブジェクトを生成する。一方、フラグ値が「１」である場合、端点処理に関わる描画命令をスキップして描画オブジェクトを生成する。図１９の例では、オリジナルの端点Ｅ１、Ｅ２については、そのフラグ値が「０」であるので、従来通り描画し、分割によって生じた端点ｅ１、ｅ２、ｅ３、ｅ４については、そのフラグ値が「１」であるので、描画をスキップした描画オブジェクトを生成する。
【０２５９】
以上説明したように、実施形態６によれば、タイル分割された直線及び曲線オブジェクトを並列にラスタライズ処理する場合でも、タイル分割によって生じた端点に対する無駄な端点処理を省き、当該オブジェクトの描画処理時間を短縮することができる。
【０２６０】
［実施形態７］
実施形態１乃至６の構成は、その用途や目的に応じて、任意に組み合わせ、その組み合わせによって得られる実施形態を実現しても良いことは言うまでもない。
【０２６１】
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０２６２】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０２６３】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０２６４】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０２６５】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスクがある。また、更に、記録媒体としては、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０２６６】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、その接続先のホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０２６７】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０２６８】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。また、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【０２６９】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０２７０】
【図１】本発明の実施形態１の画像処理システムを構成するＭＦＰのコントローラの詳細を示すブロック図である。
【図２】本発明の実施形態１の画像処理システムでのコピー動作に係るデータフローを示す図である。
【図３】本発明の実施形態１の画像処理システムでのプリント動作に係るデータフローを示す図である。
【図４】本発明の実施形態１の画像処理システムでの送信動作に係るデータフローを示す図である。
【図５】本発明の実施形態１のラスタ／タイルベクタ変換部が実行する処理を示すフローチャートである。
【図６】本発明の実施形態１のネットワークから転送されてくるドキュメントデータの一例を示している。
【図７】本発明の実施形態１のページベクタデータの記述例を示す図である。
【図８】本発明の実施形態１のタイルベクタデータの例を示す図である。
【図９】本発明の実施形態１のタイルベクタデータの記述例を示す図である。
【図１０】本発明の実施形態１のタイル／ページベクタ変換部が実行する処理を示すフローチャートである。
【図１１】本発明の実施形態１の直線オブジェクトの分割処理の例を示す模式図である。
【図１２】本発明の実施形態１の画像データ展開部が実行する処理を示すフローチャートである。
【図１３】本発明の実施形態２の破線オブジェクトの分割処理の例を示す模式図である。
【図１４】本発明の実施形態３のグラフィックオブジェクトの分割処理の例を示す模式図である。
【図１５】オブジェクト分割処理の問題点を説明するための図である。
【図１６】本発明の実施形態４の直線オブジェクトの分割処理の例を示す模式図である。
【図１７】本発明の実施形態５のオブジェクト分割処理の例を示す模式図である。
【図１８】従来の直線及び曲線オブジェクトの分割処理の例を示す模式図である。
【図１９】本発明の実施形態６の直線及び曲線オブジェクトの分割処理の例を示す模式図である。
【図２０】従来の画像処理システムの構成を示す図である。
【図２１】オブジェクト分割処理の問題点を説明するための図である。
【図２２】オブジェクト分割処理の問題点を説明するための図である。
【符号の説明】
【０２７１】
１  コントローラ
２  システムバスブリッジ
３  ＣＰＵ
４  メモリコントローラ
５  システムメモリ
６  汎用バス
７  ハードディスクコントローラ
８  ハードディスクドライブ
９  操作部コントローラ
１０  操作部
１１  ネットワークＩ／Ｆ
１２  ネットワーク
１３  タイル／ページベクタ変換部
１４  ラスタ／タイルベクタ変換部
１５  画像処理部
１６  スキャナ
１７  プリンタ
１８  画像データ展開部
１８ａ〜１８ｄ  小画像データ展開部
１９  ローカルメモリ
【図１】
2007323611.tif 000003
【図２】
2007323611.tif 000004
【図３】
2007323611.tif 000005
【図４】
2007323611.tif 000006
【図５】
2007323611.tif 000007
【図６】
2007323611.tif 000008
【図７】
2007323611.tif 000009
【図８】
2007323611.tif 000010
【図９】
2007323611.tif 000011
【図１０】
2007323611.tif 000012
【図１１】
2007323611.tif 000013
【図１２】
2007323611.tif 000014
【図１３】
2007323611.tif 000015
【図１５】
2007323611.tif 000016
【図１６】
2007323611.tif 000017
【図１７】
2007323611.tif 000018
【図１８】
2007323611.tif 000019
【図１９】
2007323611.tif 000020
【図２０】
2007323611.tif 000021
【図２１】
2007323611.tif 000022
【図２２】
2007323611.tif 000023
【図１４】
2007323611.tif 000024