(57)【要約】【課題】  タイル分割したベクタデータをレンダリングする際、多くの処理時間がかかってしまうことがある。【解決手段】  ページベクタデータにおける閉領域塗りつぶしオブジェクトをタイルベクタに分割する際に、前記オブジェクトに完全に内包されるタイルが存在した場合には、自身の全領域をあらわす矩形領域の塗りつぶしオブジェクトを、そのタイルベクタに追加する。これにより、タイルベクタのラスタライズ処理をおこなう際に、閉領域を塗りつぶしてタイルを形成する外枠によってクリッピング処理をおこなうといった複雑な処理をおこなうことなく、単に矩形領域の塗りつぶし処理をおこなえば元の画像データが復元可能となるため、レンダリング時の処理時間が短縮することができる。【選択図】  図１４
2008153764.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも、画像データ入力手段、画像データ出力手段、画像データ制御手段によって構成される画像処理システムであり、
前記画像データ制御手段は少なくとも、
前記画像入力手段で読み取ったラスタ画像を所定の大きさのブロック毎のベクタ画像データに変換する第１の変換手段と、
ネットワークI/F手段と、
所定の大きさのブロックのベクタ画像を、ページ全体をあらわすベクタ画像データに変換する、もしくは、ページ全体をあらわすベクタ画像データを、所定の大きさのブロックのベクタ画像データに変換する第２の変換手段と、
前記所定の大きさのブロックのベクタ画像をラスタ画像データに展開する展開手段と、
を備え、
前記画像データ制御手段内部では、1ページのベクタ画像または所定の大きさのブロック毎のベクタ画像に変換してから、内部のデータ転送を行うことを特徴とする画像処理システム。
【請求項２】
前記第２の変換手段は、ページ全体をあらわすベクタ画像データを所定の大きさのブロックのベクタ画像データに変換する際に、前記ブロックのベクタ画像データの全領域が、ページ全体をあらわすベクタ画像データの閉領域塗りつぶし命令が塗りつぶす閉領域に、内包されるかどうかを判断する判断手段を備え、
内包されると判断された場合、前記ブロックのベクタ画像データに、その全領域を示す矩形領域の塗りつぶし命令を付加することを特徴とした請求項１記載の画像処理システム。
【請求項３】
前記ページ全体をあらわすベクタ画像データの閉領域塗りつぶし命令は、円もしくは凸多角形の塗りつぶし命令であることを特徴とした請求項２記載の画像処理システム。
【請求項４】
前記判断手段は、前記ブロックのベクタ画像データの矩形領域を形成する４点が、ページ全体をあらわすベクタ画像データの閉領域塗りつぶし命令が塗りつぶす閉領域に含まれると判断された場合に、内包されると判断することを特徴とした請求項３記載の画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はベクタデータを扱うことのできるＭＦＰ（Multi Function Peripheral）に関する。
【背景技術】
【０００２】
図１２にＭＦＰのコントローラ１００を示す。コントローラ１００はシステムバスブリッジ（SBB）１０１によりCPU１０２、メモリコントローラ（MC）１０３、汎用バス１０５、画像処理部１１０、画像データ展開部（RIP）１１３が接続されている。
【０００３】
汎用バス１０５にはハードディスクコントローラ（HDDCont）１０６及びLANI/F１０９が接続されており、ネットワーク１０８からページベクタ形式（PDL（ページ記述言語）、PDF、SVG等）の画像データが転送される。
【０００４】
HDDCont１０６の先にはHDD１０７が接続されており、画像データの記憶媒体として使われる。同様にMC１０３の先には、システムメモリ（Memory）１０４が接続されており、画像データを一時記憶するための媒体として使われる。システムメモリ１０４には、一般的にはDIMMが用いられる。
【０００５】
画像処理部１１０にはスキャナ１１１及びプリンタ１１２が接続されている。スキャナから入力された画像データは画像処理部１１０によって所定の画像処理が実施された後、コントローラへ入力され、またコントローラ内に記憶されている画像データは画像処理部１０８によって所定の画像処理が実施され、プリンタ１１２へ出力される。
【０００６】
コントローラ１００でハンドリングされる画像データは、ネットワーク経由での外部機器との入出力はページベクタ（PDLやPDF、SVG等）、スキャナやプリンタとの入出力はラスターデータ形式でインターフェースされる。外部機器から入力されたページベクタはCPU１０２により、プリミティブなオブジェクトにインタプリットされ、DL（DisplayList）と呼ばれる中間データに変換されてから、RIPに入力される。
【０００７】
これらの画像データはコントローラ１００の内部のシステムメモリ１０４に一旦記憶されるため、システムメモリ１０４上には、ラスターデータ、ページベクタデータ（PDL等）、DLデータなど多種類のデータが存在する。
【０００８】
HDD１０５には、画像データとしてスキャナから入力された画像データとRIP１１３でレンダリングされたラスタ画像データが記憶される。
【特許文献１】特開２００４−１２０６３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
一般的にラスタ画像データはデータサイズが大きい。そのため、図１２におけるシステムメモリ１０４のメモリサイズや汎用バス１０５及びHDDCont１０６−HDD１０７間のバンド幅といったシステム・リソースを多く消費する。
【００１０】
それに加え、PDLデータ等ベクタ画像では、システム中でインタプリットを行い、描画オブジェクトを生成するDisplayList（DL）に展開する。その際、DLデータをシステムメモリ１０４にスプールするため、それによるメモリリソースの消費量も莫大なものとなっている。
【００１１】
最近では、ユーザーからの出力画像の画質への要求がますます高くなり、ラスター画像の高解像度化が促進されている。また、画質と並行してシステムの処理速度向上も要求される。
【００１２】
そのため、従来のような構成のMFPのままでは要求仕様を満足するために必要なシステム・リソースが肥大化してしまう。従って、コスト面での折り合いをつけることが課題となっている。
【００１３】
さらに、前述のようなプロダクトのコストパフォーマンスに対する課題とは別に、複雑、多様化するシステムを開発するための人的リソースの問題も解決しなければならない。そのためには、さまざまな要求仕様に対し、１つの基本システムをスケーラブルな形で構成することにより、製品ラインナップを効率良く整備することが課題である。
【００１４】
例えば、図１２における画像処理部１１０やRIP１１３などのモジュールをハイエンドな機種では複数個実装し、分散処理できるようなシステムが必要となってくる。
【００１５】
他方、オフィスにおいてはペーパーレス化が進行しており、紙の出力物と電子データをシームレスに扱えるような要求も生まれてきている。そのためには、紙と電子データとのI/F機器であるMFPにおいても、例えば蓄積文書の検索性の向上や、ラスタライズされた画像をスキャン後にオブジェクト化して再利用する、POD印刷に対応するために画像加工を高速化する、といったよりインテリジェントな機能を持つことが必要となっている。
【００１６】
上記課題を解決するために、
１．MFP内のデータ処理を高速化するために、システム内をベクトルデータでハンドリングする。
【００１７】
２．MFP内のベクタデータをタイル化することにより、データ処理時間を高速化するとともに、並列処理に適応させる。
【００１８】
３．外部機器に出力する時はタイルベクタをページベクタに戻してから出力することにより再利用性を高める。というようなMFPシステムを考えている。
【００１９】
一方、MFP内部でハンドリングするためのタイルベクタデータを生成するには、ページベクタデータをタイル分割する処理が必要である。その際に、ページベクタデータに含まれる各オブジェクトを一部もしくは全部含む分割後タイルすべてに、オブジェクトデータをコピーして持たせる手法が考えられる。
【００２０】
先の手法におけるベクタデータの分割方法において、図１０に記載の円形塗りつぶしオブジェクトは、それを一部もしくは全部含む計９つのタイルに、その円形塗りつぶしオブジェクトがコピーされる。出力時には、これらのタイルベクタデータは、それぞれラスタライズ処理されるが、すべてのタイルベクタデータに対して、円形塗りつぶし処理と、タイルの外枠によるクリッピング処理をおこなうことになる。
【００２１】
ところで、例えば図１０のタイル（Ｘ，Ｙ）＝（２，４）に注目した場合、タイル単位の観点では、矩形領域塗りつぶしと等価であり、レンダリング時に、より簡単な処理で領域塗りつぶし処理を実行することが可能である。にもかかわらず、本タイルにおけるラスタライズ処理時には、円形塗りつぶしに対するタイル外枠のクリッピング処理をおこなっているため、レンダリング処理に無駄な時間を費やしてしまうという問題点がある。
【課題を解決するための手段】
【００２２】
そこで、上記課題を解決するための手段として、本発明のMFPは以下のような用件で構成される。すなわち、
少なくとも、画像データ入力手段、画像データ出力手段、画像データ制御手段によって構成される画像処理システムであり、
前記画像データ制御手段は少なくとも、
前記画像入力手段で読み取ったラスタ画像を所定の大きさのブロック毎のベクタ画像データに変換する第１の変換手段と、
ネットワークI/F手段と、
所定の大きさのブロックのベクタ画像を、ページ全体をあらわすベクタ画像データに変換する、もしくは、ページ全体をあらわすベクタ画像データを、所定の大きさのブロックのベクタ画像データに変換する第２の変換手段と、
前記所定の大きさのブロックのベクタ画像をラスタ画像データに展開する展開手段と、
を備え、
前記画像データ制御手段内部では、1ページのベクタ画像または所定の大きさのブロック毎のベクタ画像に変換してから、内部のデータ転送を行うことを特徴とする画像処理システムである。
【００２３】
また、前記第２の変換手段は、ページ全体をあらわすベクタ画像データを所定の大きさのブロックのベクタ画像データに変換する際に、前記ブロックのベクタ画像データの全領域が、ページ全体をあらわすベクタ画像データの閉領域塗りつぶし命令が塗りつぶす閉領域に、内包されるかどうかを判断する判断手段を備え、
内包されると判断された場合、前記ブロックのベクタ画像データに、その全領域を示す矩形領域の塗りつぶし命令を付加することを特徴とする。
【００２４】
また、前記ページ全体をあらわすベクタ画像データの閉領域塗りつぶし命令は、円もしくは凸多角形の塗りつぶし命令であることを特徴とする。
【００２５】
また、前記判断手段は、前記ブロックのベクタ画像データの矩形領域を形成する４点が、ページ全体をあらわすベクタ画像データの閉領域塗りつぶし命令が塗りつぶす閉領域に含まれると判断された場合に、内包されると判断することを特徴とする。
【発明の効果】
【００２６】
本発明によれば、ベクタデータを効率よく内部処理するためにページベクタデータからタイルベクタデータへ変換をおこなってハンドリングするＭＦＰ装置において、ページベクタデータにおける閉領域塗りつぶしオブジェクトをタイルベクタに分割する際に、前記オブジェクトに完全に内包されるタイルが存在した場合には、自身の全領域をあらわす矩形領域の塗りつぶしオブジェクトを、そのタイルベクタに追加する。
【００２７】
これによって、μＲＩＰを用いてタイルベクタのラスタライズ処理をおこなう際に、閉領域を塗りつぶしてタイルを形成する外枠によってクリッピング処理をおこなうといった複雑な処理をおこなうことなく、単に矩形領域の塗りつぶし処理をおこなえば元の画像データが復元可能となるため、レンダリング時の処理時間が短縮することができる。
【発明を実施するための最良の形態】
【００２８】
（実施例１）
[MFP装置概要]
以下に図を用いて、本発明の装置及びその動作について詳細に説明する。
【００２９】
図１は、本発明に係るMFPコントローラの第１実施形態を示すブロック図である。
【００３０】
MFPコントローラ１はシステムバスブリッジ（SBB）２によりCPU３、メモリコントローラ（MC）４、汎用バス６、タイル⇔ページベクタ変換部１３、ラスタ→タイルベクタ変換部１４、タイルベクタ展開部（RIP）１８、が接続されている。RIP１８は複数の小展開部（μRIPａ〜ｄ）で構成される。
【００３１】
MC４の先にはシステムメモリ（Memory）５が接続されており、画像データを一時記憶するための媒体として使われる。
【００３２】
汎用バス６には画像データを蓄積するためのHDD８を制御するハードディスクコントローラ（HDDCont）７及び操作部（LCD）１０を制御する操作部コントローラ（LCDC）９及び、MFPが接続されているネットワーク１２を介して、外部機器間との画像データの転送を行うインターフェースになるLANI/F１１が接続されている。
【００３３】
ラスタ→タイルベクタ変換部１４の先には画像処理部１５が接続され、さらに画像処理部１５にはスキャナ１６及びプリンタ１７が接続されている。
【００３４】
また、SBB2にはRIP１８が接続され、その先にはRIP18から出力されるデータを記憶するローカルメモリ（LocalMemory）19が接続されている。
【００３５】
コントローラ１でハンドリングされる画像データは、外部機器との入出力はページベクタ（PDL、PDF、SVGなど）、スキャナやプリンタとの入出力はラスターデータでインターフェースされる。コントローラ１では、従来のMFPと異なり、スキャン画像はラスタ→タイルベクタ変換部１４でタイルベクタに変換される。また、DLデータはRIP１８に接続されたローカルメモリ１９に記憶される。従って、システムメモリ５上には、ページベクタとタイルベクタデータの２種類の画像のみが記憶される。つまり、画像サイズの大きいラスターデータ及びDLデータをシステムメモリ５に記憶する必要がなくなるため、システムメモリ上で確保しなければならない画像データ領域を削減することができる。
【００３６】
また、RIP１８から出力されるDLデータはタイル単位に分割されたDLデータで記憶されるため、従来のページ単位のDLデータに比べ、非常に少ないメモリ容量で記憶できる。従って、ローカルメモリ１９はオンチップ上に実装することが可能になり、メモリレイテンシを小さくできる。その結果、タイルデータ展開速度を高速化することが可能となる。かつ、タイリングされたデータのみを画像データとしてHDD８上に記憶すれば良いので、HDDへのアクセス速度のボトルネックが緩和され、データ処理の高速化が図れる。同時に、タイル化することによりRIPのコストダウンも可能となる。
【００３７】
より、高い処理能力が要求される場合は、RIP内に備えるμRIPを並列に複数実装することで処理能力を可変できる。すなわち、コントローラの処理能力がシンプルに調整できることから、スケーラビリティの確保が容易なシステムを構築できる。
【００３８】
以下に、本発明に係るMFPを動作させた時の各画像処理フローについて説明する。
【００３９】
[コピー]
図２にコピー動作させた時のMFP内のデータフローを示す。図２中に描かれた矢印はデータの流れを表す。実線で描かれた矢印はラスタ画像、破線で描かれた矢印はタイル化されたベクタ画像、1点鎖線で描かれた矢印はページ全体を記述したベクタ画像が流れることを意味する。ページベクタ及びタイルベクタ画像については、後述のタイル⇔ページベクタ変換部で詳細に説明する。
【００４０】
（Ｓ２１）：
操作部（LCD）１０より、ユーザがコピー開始を指示すると、スキャナ１６は原稿画像の読み取り動作を開始する。
【００４１】
スキャナ１６より画像処理部１５へ入力された画像（R、G、B）は画像処理ブロックのクロック同期に周波数変換された後、以下の処理をされる。
【００４２】
CCDセンサのラインピッチや色収差などスキャナ特性の補正。
【００４３】
色空間補正やシャープネスといった入力画像データの画質補正。
入力画像データの枠消しやブック枠消しといった、画像加工。
【００４４】
（Ｓ２２）：
前記画像処理が終了し、画像処理部１５から出力された画像データはラスタ→タイルベクタ変換部１４に入力され、タイルベクタ変換処理を行う。すなわち、画像データを所定の大きさのブロックに分割し、各ブロック内のラスター画像に対して、ベクトル化処理を行いブロック単位のベクタ画像を生成する。
【００４５】
生成されたベクタ画像はSBB２によりバスの調停を受け、システムメモリ５へのバス権を取得し、MC４を介して、前記タイルベクタをシステムメモリ５に記憶させる。（なお、SBB2経由でデータパスが接続される場合は、基本的にバスの調停を受け、バス権を取得する手続きを踏むが以降のフロー説明では省略する。）
（Ｓ２３）：
システムメモリ５に記憶されたタイルベクタ画像は、HDDCont７とMC４を介してSBB２経由でHDD８に記憶される。HDD８に画像データを記憶することにより、複数部の原稿をコピーする時にソーティングをして、ページ順を変えて出力したり、MFP内に保存文書として記憶したりすることができる。
【００４６】
（Ｓ２４）：
HDD８に記憶されたタイルベクタ画像はプリンタ１７内の不図示のCPUから送られてくるプリンタレディのタイミングに合わせて、HDDCont７により読み出され、SBB２、MC４を経由してシステムメモリ５に一時的に記憶される。
【００４７】
仮に、読み取った画像データをHDD８からダイレクトにプリンタへ読み出した場合、HDD８のアクセススピードが律則になったり、汎用バス６のバスの混雑度合によりプリンタに同期して出力することが保証できなくなる。そのため、プリンタに同期してデータ転送を行う前に、システムメモリ５にページデータをスプールしておくことで、リアルタイムなスループットを保証する。
【００４８】
（Ｓ２５）：
システムメモリ５に記憶されたタイルベクタ画像は、プリンタ１７からコントローラ１に送られる起動信号に従って、MC４によって読み出され、SBB２を介してRIP１８に転送される。
【００４９】
RIP１８ではまず、タイルベクタを解析し、タイル単位の描画オブジェクト（タイルDLデータ）の生成（インタプリット）を行う。生成されたタイルDLデータはローカルメモリ１８に一旦記憶される。
【００５０】
RIP18はローカルメモリからタイルDLデータを読み出して、タイル単位のラスタ画像へと展開し、出力する。
【００５１】
本実施例では前述のように、RIP１８内にμRIPa〜μRIPdの４つを備えている。コントローラ１はμRIPa〜μRIPdを並列に動作させることにより、タイルベクタの展開を高速に行わせる。システムのパフォーマンスはベクタ展開時間が支配的であり、このμRIPを増やすことでパフォーマンスアップが見込めるため、本発明のような構成を用いると容易にスケーラブルなシステムを構築することが可能となる。
【００５２】
（Ｓ２６）：
RIP１８によってタイル単位にラスタライズされた画像データは、画像処理部に転送され、以下の処理が実行される。
【００５３】
タイル単位のラスタ画像からページ単位のラスタ画像への変換処理。
【００５４】
プリンタの特性に合わせた出力画像の色や濃度の補正処理。
【００５５】
画像データを量子化して出力画像の階調変換を行う中間調処理。
【００５６】
プリンタI/Fクロックに同期して画像を出力するための周波数変換処理。
【００５７】
画像処理部１５で前記画像処理を実行されたラスタ画像データはプリンタ１５に転送され、記録媒体上に印字され出力される。
【００５８】
[プリント]
図３にプリント動作させた時のMFP内のデータフローを示す。
【００５９】
（Ｓ３１）：
ネットワーク１２に接続された外部機器より、汎用バス６に接続されたＬＡＮ I/F１１がページベクタ形式の画像データを受信する。そしてSBB２の先に接続されたMC４を介してシステムメモリ５に転送する。
【００６０】
（Ｓ３２）：
システムメモリ５に記憶されたページベクタ画像はタイル⇔ページベクタ変換部１３より読み出され、タイルベクタ変換処理を行う。すなわち、ページベクタ内に存在するオブジェクトを所定の大きさのブロック（タイル）内に収まるオブジェクトに分割し、タイル単位のベクタ画像を生成する。
【００６１】
（Ｓ３３）：
生成されたベクタ画像はSBB２を介して再びシステムメモリ５に記憶される。
【００６２】
（Ｓ３４）：
システムメモリ５に記憶されたタイルベクタ画像は、HDDCont７とMC４を介してSBB２経由でHDD８に記憶される。HDD８に画像データを記憶することにより、複数部の原稿をコピーする時にソーティングをして、ページ順を変えて出力したり、MFP内に保存文書として記憶したりすることができる。
【００６３】
（Ｓ３５）：
HDD８に記憶されたタイルベクタ画像はプリンタ１７内の不図示のCPUから送られてくるプリンタレディのタイミングに合わせて、HDDCont７により読み出され、SBB２、MC４を経由してシステムメモリ５に一時的に記憶される。
【００６４】
読み取った画像データをHDD８からダイレクトにプリンタへ読み出した場合、HDD８のアクセススピードが律則になったり、汎用バス６のバスの混雑度合によりプリンタに同期して出力することが保証できなくなる。そのため、プリンタに同期してデータ転送を行う前に、システムメモリ５に１ページ分のタイルベクタデータをスプールすることにより、リアルタイムなスループットを保証する。
【００６５】
（Ｓ３６）：
システムメモリ５に記憶されたタイルベクタ画像は、プリンタ１７からコントローラ１に送られる起動信号に従って、MC４によって読み出され、SBB２を介してRIP１８に転送される。
【００６６】
RIP１８ではまず、タイルベクタを解析し、タイル単位の描画オブジェクト（タイルDLデータ）の生成（インタプリット）を行う。生成されたタイルDLデータはローカルメモリ１９に一旦記憶される。
【００６７】
RIP１８はローカルメモリからタイルDLデータを読み出して、タイル単位のラスタ画像へと展開し、出力する。本実施例では、RIP１８内に小展開部μRIPa〜μRIPdの４つを備えている。
【００６８】
前記μRIPa〜μRIPdを並列に動作させることにより、タイルベクタの展開を高速に行わせる。システムのパフォーマンスはベクタ展開時間が支配的であり、このμRIPを増やすことでパフォーマンスアップが見込めるため、本発明のような構成を用いると容易にスケーラブルなシステムを構築することが可能となる。
【００６９】
（Ｓ３７）：
RIP１８によってタイル単位にラスタライズされた画像データは、画像処理部に転送され、以下の処理が実行される。
【００７０】
タイル単位のラスタ画像からページ単位のラスタ画像への変換処理。
【００７１】
プリンタの特性に合わせた出力画像の色や濃度の補正処理。
【００７２】
画像データを量子化して出力画像の階調変換を行う中間調処理。
【００７３】
プリンタI/Fクロックに同期して画像を出力するための周波数変換処理。
【００７４】
画像処理部１５で前記画像処理を実行されたラスタ画像データはプリンタ１７に転送され、記録媒体上に印字され出力される。
【００７５】
図４にネットワーク送信させた時のMFP内のデータフローを示す。画像データをHDD８に格納するまでのフローについては、スキャン画像の場合は［コピー］とネットワーク上の外部機器からの入力された画像の場合は［プリント］と同じなので割愛する。
【００７６】
（Ｓ４１）：
HDD８に記憶されたタイルベクタ画像はSBB２を介して、汎用バス６に接続されたHDDCont７より読み出され、システムメモリ５に一時的に記憶される。
【００７７】
（Ｓ４２）：
システムメモリ５に記憶されたタイルベクタ画像はタイル⇔ページベクタ変換部１３より読み出され、タイルベクタ変換処理を行う。すなわち、ブロック単位に分割されたオブジェクトを結合し、ページ全体でオブジェクトを記述したページベクタ画像を生成する。
【００７８】
（Ｓ４３）：
生成されたページベクタ画像はSBB２を介して再びシステムメモリ５に記憶される。
【００７９】
（Ｓ４４）：
システムメモリ５中に記憶されたページベクタ画像は、汎用バス６に接続されたＬＡＮ I/F１１から読み出され、ネットワーク１２に接続された外部機器へと転送される。
【００８０】
本発明のように、外部機器に送信する際にタイルベクタ画像をページベクタ画像に戻し、オブジェクト数を減らすことで、送信データ量が削減できる。また、PDFやSVG等の汎用フォーマットへ容易に変換することができる。
【００８１】
[ラスタ−タイルベクタ変換部]
コントローラ１中のラスタ→タイルベクタ変換部１４の詳細について説明する。図５はラスタータイル変換部１４の内部処理フローを表す。
【００８２】
ラスタ→タイルベクタ変換部１４は以下の各ステップにより実行される。
【００８３】
（Ｓ５１）BS（ブロックセレクション）：
画像処理部１５より入力されたラスタイメージデータを、文字あるいは線画を含む文字・線画領域と、ハーフトーンの写真領域、不定形の画像領域その他に分ける。さらに文字・線画領域について、主に文字を含む文字領域と、主に表、図形等を含む線画領域とを分離し、線画領域は表領域と図形領域に分離する。なお、本実施形態では連結画素を検知し、該連結画素の外接矩形領域の形状・サイズ・画素密度等を用いて、属性毎の領域に分離する。
【００８４】
文字領域については、文字段落ごとの纏まった塊をブロックとして矩形ブロック（文字領域矩形ブロック）にセグメント化される。線画領域では、表、図形等の個々のオブジェクト（表領域矩形ブロック、線画領域矩形ブロック）ごとに矩形ブロックにセグメント化される。
【００８５】
ハーフトーンで表現される写真領域は、画像領域矩形ブロック、背景領域矩形ブロック等のオブジェクトごとに、矩形ブロックにセグメント化される。
【００８６】
分離された各領域は、さらに所定の大きさの領域（タイル）単位に分割され、タイル単位で次のベクトル化ステップでベクトル化処理される。
【００８７】
（Ｓ５２）ベクトル化ステップ：
ベクトル化処理により各属性領域のイメージデータをベクトルデータに変換する。ベクトル化の方法は、以下（ａ）〜（ｆ）等が存在する。
【００８８】
（ａ）属性領域が文字領域のとき、さらにＯＣＲによる文字画像のコード変換を行ったり、あるいは文字のサイズ、スタイル、字体を認識し、原稿を走査して得られた文字に可視的に忠実なフォントデータに変換する。
【００８９】
（ｂ）属性領域が文字領域であり、かつＯＣＲによる認識が不可能であったとき、文字の輪郭を追跡し、輪郭情報（アウトライン）を線分のつながりとして表現する形式に変換する。
【００９０】
（ｃ）属性領域が図形領域のとき、図形オブジェクトの輪郭を追跡し、輪郭情報を線分のつながりとして表現する形式に変換する。
【００９１】
（ｄ）ｂ、ｃの線分形式のアウトライン情報をベジエ関数などでフィッティングして、関数情報に変換する。
【００９２】
（ｅ）ｃの図形オブジェクトの輪郭情報から、図形の形状を認識し、円、矩形、多角形、等の図形定義情報に変換する。
【００９３】
（ｆ）属性領域が図形領域であって、特定領域の表形式のオブジェクトの場合、罫線や枠線を認識し、所定のフォーマットの帳票フォーマット情報に変換する。
【００９４】
（S５３）タイルベクタ生成：
S５２で（ａ）〜（ｆ）のフォーマットコード情報、図形情報、関数情報といったコマンド定義形の情報にベクトル変換されたデータに対し、コントローラ1内でページベクタかタイルベクタかを判別するベクタタイプや当該タイルのページ内の座標位置など判別するためのヘッダ情報を付加する。このようにして、タイル単位にパッキングされたタイルベクタデータをＳＢＢ２へ出力する。
【００９５】
[タイル⇔ページベクタ変換部]
コントローラ１中のタイル⇔ページベクタ変換部１３の詳細について説明する。
【００９６】
図８は、ネットワーク上の外部機器のアプリケーションで作成されたドキュメントである。便宜上、ドキュメントの短手方向を‘Ｘ’方向、長手方向を‘Ｙ’方向と定義する。
【００９７】
図９は図８のドキュメントのプリンタ出力を指示するページベクタ（ＰＤＬコマンド）の記述例である。
【００９８】
図９において、９０１はドキュメント全体の設定に関わるドキュメント設定コマンド、９０２は文字列８０２の描画コマンド、９０３、９０４は、図形８０３、８０４の描画・塗りつぶしコマンドを示している。
【００９９】
９０１から９０４の描画・塗りつぶしコマンドの詳細について説明する。
【０１００】
Ｃ１〜Ｃ５は、ドキュメント全体に関係するコマンドである。従って、これらのコマンドＣ１〜Ｃ５はドキュメント１部について１ケ所しか付いていない。これらドキュメント全体に関係するコマンドには、例えば、キャラクタセットコマンド（フォント指定コマンド）、スケーラブルフォントコマンド（スケーラブルフォントを使用するか否かを指定するコマンド）、ハードリセットコマンド（以前のプリンタ使用環境をリセットするコマンド）、などがある。Ｃ１はドキュメント設定開始コマンドである。Ｃ２はドキュメントの出力用紙サイズを表すコマンドで、この場合にはＡ４の設定になっている。次のＣ３はドキュメントの方向を示している。ポートレートとランドスケープがあるが、この場合にはポートレート(PORT)を示している。Ｃ４はドキュメントのタイプを表すコマンドで、ページベクタで構成されるドキュメントなのかタイルベクタで構成されるドキュメントなのかを表す。この場合にはページ（PAGE）となっている。Ｃ５はドキュメント設定終了コマンドである。
【０１０１】
図９の９０２〜９０４（Ｃ６〜Ｃ２３）は、ドキュメント８０１を出力するためのコマンドである。
【０１０２】
９０２は、図８の文字列８０２を描画するためのコマンド列である。Ｃ６はページの開始を示すためのものである。Ｃ７は文字のフォントの種類を選択するためのコマンドでこの場合には“１”という番号の付けられたフォントセットを選択している。Ｃ８はフォントの大きさを設定するもので“１０ポイント”の大きさを選んでいる。Ｃ９は文字の色を設定するコマンドで、順にＲ（赤），Ｇ（緑），Ｂ（青）各色成分の輝度を示してある。この輝度は、０から２５５の２５６段階で量子化されているものとする。したがって、コマンドC９以降で記述される文字列の色は赤である。Ｃ１０は文字を描画する開始位置の座標を示している。座標位置はページの左上を原点に指定する。この場合は、Ｘ座標10、Ｙ座標2の位置（以降、{10,2}と表すこととする。）の位置から文字の描画を開始するように設定されている。Ｃ１１は実際に描画する文字列(あいうえおかきくけこさしすせそたちつてと) を示している。
【０１０３】
９０３は、図８の円弧と内部の塗りつぶし８０３を描画するためのコマンド列である。Ｃ１２は図形描画の際の面の塗りつぶしの色を示している。色の指定は文字の色と同様である。Ｃ１３は図形描画の線の色を指定するものである。すなわち、これらのコマンド以降に描画される図形の線と塗りつぶしの色は共に緑となる。Ｃ１４は図形を描画する開始位置の座標を示している。Ｃ１５は円弧を描画する際の中心座標と半径を指定するコマンド、C１６は、円弧を描画する際の描画開始角度と終了角度を指定するコマンドである。コマンド列９０２は、全体として、中心座標{25,45}、半径10の円弧を座標{40,45} を開始点として0度から360度の円弧を描画して、内部を塗りつぶすコマンドを表している。
【０１０４】
９０４は、図８の三角形８０４とその内部の塗りつぶし８０４を描画するためのコマンド列である。Ｃ１７〜Ｃ１９は、Ｃ１２〜Ｃ１４までのコマンドと同様に面、線の色の指定、図形描画の開始点の指定などを行なっている。Ｃ２０〜Ｃ２１は、三角形８０４の外形を形成するための、開始点以外の２頂点を指定するコマンド列である。すなわち、Ｃ１９〜Ｃ２１によって、座標{20,80}, {60,90}, {50,60} を３頂点とする三角形が指定される。Ｃ２２は、Ｃ１９〜Ｃ２１で指定された頂点をもつ多角形閉領域を形成するコマンドであり、これにより、最後に指定された頂点{50,60} と開始点{20,80} を結ぶ直線および、三角形８０４内部の塗りつぶし処理がおこなわれる。
【０１０５】
最後に、Ｃ２３はコマンドの終了を指定している。
【０１０６】
図８のドキュメントを図１０で表されるようなブロック単位のタイルベクタで記述した例が図１１である。図１０中の２つの矢印はドキュメントの短手方向‘Ｘ’、長手方向‘Ｙ’を表す。また図中のＸ方向に配列された数列はＸ方向のタイルＩＤ、Ｙ方向に配列された数列はＹ方向のタイルＩＤを表し、各タイルＩＤは（Ｙ，Ｘ）という形式で表されるものとする。すなわち、Ａ，Ｂ，Ｃ，Ｄ，Ｅの各タイルベクタを表すタイルＩＤはそれぞれタイルＩＤ（０，０）、（０，１）、（０，２）、（３，１）、（６，３）などと表される。
【０１０７】
図１１において、１１０１はドキュメント全体の設定に関わるドキュメント設定コマンド、１１０２は描画コマンド全体をあらわす、１１０３〜１１０７はタイルＡ，Ｂ，Ｃ，Ｄ，Ｅの描画コマンドを示している。
【０１０８】
以下に１１０１〜１１０７の描画コマンドの詳細について説明する。
【０１０９】
コマンド列１１０１を構成するＣ１〜Ｃ５は、ドキュメント全体に関係するコマンドである。従って、これらのコマンドＣ１〜Ｃ５はドキュメント１部について１ケ所しか付いていない。これらドキュメント全体に関係するコマンドには、例えば、キャラクタセットコマンド（フォント指定コマンド）、スケーラブルフォントコマンド（スケーラブルフォントを使用するか否かを指定するコマンド）、ハードリセットコマンド（以前のプリンタ使用環境をリセットするコマンド）、などがある。Ｃ１はドキュメント設定開始コマンドである。Ｃ２はドキュメントの出力用紙サイズを表すコマンドで、この場合にはＡ４の設定になっている。次のＣ３はドキュメントの方向を示している。ポートレートとランドスケープがあるが、この場合にはポートレート(PORT)を示している。Ｃ４はドキュメントのタイプを表すコマンドで、ページベクタで構成されるドキュメントなのかタイルベクタで構成されるドキュメントなのかを表す。この場合にはタイル（TILE）となっている。Ｃ５はドキュメント設定終了コマンドである。
【０１１０】
コマンド列１１０２を構成するＣ６〜Ｃ４００は、ドキュメント１００１を出力するためのコマンドである。Ｃ６はページの開始を示すためのものである。
【０１１１】
コマンド列１１０３を構成するＣ７〜Ｃ８は、図１０のタイルＡの描画コマンド列である。Ｃ７は図１０のタイルAの描画コマンドの開始を示すものである。２個のパラメータはページ内におけるタイルのＩＤを、Ｙ方向、Ｘ方向の順に示すものである。Ｃ８はタイルＡの描画コマンドの終わりを表す。タイルAのようにオブジェクトが何も存在しない場合は、タイルの開始と終了だけが記述される。
【０１１２】
コマンド列１１０４を構成するＣ９〜Ｃ１６および、コマンド列１１０５を構成するＣ１７〜Ｃ２４は、図１０のタイルＢおよびタイルＣの描画コマンド列である。Ｃ９は図１０のタイルＢの描画コマンドの開始を示すものである。Ｃ１０は文字のフォントの種類を選択するためのコマンドでこの場合には“１”という番号の付けられたフォントセットを選択している。Ｃ１１はフォントの大きさを設定するもので“１０ポイント”の大きさを選んでいる。Ｃ１２は文字の色を設定するコマンドで、順にＲ（赤），Ｇ（緑），Ｂ（青）各色成分の輝度を示してある。この輝度は、０から２５５の２５６段階で量子化されているものとする。Ｃ１３は文字を描画する開始位置の座標を示している。座標位置はタイルの左上を原点に指定する。Ｃ１４は実際に描画する文字列(あいう) を示している。座標位置はタイルの左上を原点に指定する。この場合は、{0,2}の位置から文字の描画を開始するように設定されている。Ｃ１５は、Ｃ１０〜Ｃ１４で示される文字列が、タイル化する前のページベクタデータのいずれの文字列に含まれる文字列であるかを識別するＩＤである。Ｃ１６はタイルＢの描画コマンドの終わりを示すものである。また、タイルＣの描画コマンド列を表すコマンド列１１０５を構成するＣ１７〜Ｃ２４も、上記Ｃ９〜Ｃ１６までのコマンドと同様に、フォントセット、フォントの大きさ、文字の色等を指定している。
【０１１３】
コマンド列１１０６を構成するＣ１００〜Ｃ１０６は、図１０のタイルＤの描画コマンド列である。Ｃ１００は図１０のタイルＤの描画コマンドの開始を示すものである。Ｃ１０１は図形描画の際の面の塗りつぶしの色を示している。色の指定は文字の色と同様である。Ｃ１０２は図形描画の線の色を指定するものである。Ｃ１０３は図形を描画する開始位置の座標を示している。座標位置は、前記したように、タイルの左上を原点に指定する。Ｃ１０４は円弧を描画する際の中心座標と半径を指定するコマンド、C１０５は、描画開始角度と終了角度を指定するコマンドであり、これにより図８の８０３に相当する塗りつぶしオブジェクトの、タイルＤの外枠によるクリッピングがおこなわれる。
【０１１４】
コマンド列１１０７を構成するＣ２００〜Ｃ２０７は、図１０のタイルＥの描画コマンド列である。Ｃ２００は図１０のタイルＥの描画コマンドの開始を示すものである。Ｃ２０１〜Ｃ２０３は、Ｃ１０１〜Ｃ１０３までのコマンドと同様に面、線の色の指定、図形描画の開始点の指定などを行なっている。Ｃ２０４〜Ｃ２０５は、タイルＥが含む三角形の外形を形成するための、開始点以外の２頂点を指定するコマンド列である。すなわち、Ｃ２０３〜Ｃ２０５によって、タイルＥの原点に対する相対座標{-10,20}, {30,30}, {20,0} を３頂点とする三角形が指定される。Ｃ２０６は、Ｃ２０３〜Ｃ２０５で指定された頂点をもつ多角形閉領域を形成するコマンドであり、これにより、図８の三角形８０４に相当するオブジェクトの、タイルＥの外枠によるクリッピング処理がおこなわれる。
【０１１５】
図９のコマンド列９０３と図１１コマンド列１１０６、および、図９のコマンド列９０４と図１１コマンド列１１０７を比較してわかるように、通常、ページベクタデータからタイルベクタデータへの分割に際して、ページベクタデータのオブジェクト情報は、それを含むタイルベクタデータに、基本的にコピーされる。すなわち、異なる部分はページベクタ座標系から各タイルベクタの座標系に座標変換された描画図形の座標情報のみである。
【０１１６】
しかし、本発明の実施形態においては、ページベクタデータの円塗りつぶしオブジェクト８０３に完全に内包された図１０のタイルＸ（タイルＩＤ（４，２））と、三角形塗りつぶしオブジェクト８０４に完全に内包されたタイルＹ（タイルＩＤ（７，４））に関しては、それぞれ円塗りつぶしオブジェクト描画コマンド９０３、三角形塗りつぶし描画コマンド９０４をベースとした描画コマンドをコピーせず、別のコマンド列に置き換えてタイルベクタデータを生成する。
【０１１７】
以下で、本発明の主眼をなす上記コマンド列について説明する。
【０１１８】
図１３のコマンド列１３０１および１３０３は、円の塗りつぶしオブジェクト８０３と三角形の塗りつぶしオブジェクト８０４を含むタイルＸ，Ｙのタイルベクタを、上記で示した他のタイルベクタと同様の手法で生成したタイルベクタである。また、コマンド列１３０２および１３０４は、円の塗りつぶしオブジェクト８０３と三角形の塗りつぶしオブジェクト８０４を含むタイルＸ，Ｙのタイルベクタを、後述する本発明の特徴をなす手法によって生成したタイルベクタである。
【０１１９】
コマンド列１３０１を構成するＣ１００〜Ｃ１０６、およびコマンド列１３０３を構成するＣ２００〜Ｃ２０７は、コマンド列１１０６を構成するＣ１００〜Ｃ１０６、およびコマンド列１１０７を構成するＣ２００〜Ｃ２０７と同様なので、説明を省略する。
【０１２０】
コマンド列１３０２およびコマンド列１３０４は、それぞれタイルＸ、Ｙの全領域を塗りつぶすための矩形塗りつぶしオブジェクトである。Ｃ３０３、Ｃ４０３は、図形を描画する開始位置の座標を示している。Ｃ３０４、Ｃ４０４は、Ｃ３０３、Ｃ４０３で設定した開始点から、右方向に10，下方向に10の矩形を描画するオブジェクトである。Ｃ３０５、Ｃ４０５は、Ｃ３０４、Ｃ４０４で形成した矩形閉領域を塗りつぶすオブジェクトである。
【０１２１】
これらのコマンド列の置換処理は、後述するタイル⇔ベクタ変換部においておこなわれる。
【０１２２】
タイル⇔ページベクタ変換部１３は、前述のようなページベクタとタイルベクタの変換を行う。図６はタイル⇔ページベクタ変換の内部処理フローを表す。
【０１２３】
タイル⇔ページベクタ変換は以下のステップで実行される。
【０１２４】
（Ｓ６０１）：
まず、システムメモリ５中に記憶されたベクタ画像から、ヘッダ部分に相当するコマンド列を読み込み、ドキュメント全体に関するコマンド部分を解析する。前述の図９または図１１のＣ１〜Ｃ５に相当する部分である。
【０１２５】
（Ｓ６０２）：
解析した結果、ドキュメントのタイプがページベクタ（PAGE）である場合はＳ６０３以降のステップに進み、ページベクタ→タイルベクタ変換が実行される。ドキュメントのタイプが(TILE)である場合は、Ｓ６１０以降のステップに進み、タイルベクタ→ページベクタ変換が実行される。
【０１２６】
（Ｓ６０３）：
オブジェクトを記述するコマンド列を読み込む。
【０１２７】
（Ｓ６０４）：
Ｓ６０３で読み込まれたコマンド列を解析し、記述されているオブジェクトの大きさが分割したいタイルサイズを超えているかどうかの判断を行う。オブジェクトの分割を行わない場合は、Ｓ６０５をスキップしＳ６０６に進み、オブジェクトの分割を行う場合はＳ６０５に進む。
【０１２８】
（Ｓ６０５）：
このステップでは、入力されたオブジェクトの分割処理を行う。
【０１２９】
例えば、図９では、９０２で“あいう”を含む全ての文字列の描画コマンドを記述しているが、図１０のようにタイル化した場合にはタイルBには“あいう”以外の文字は含まれない。従って、タイルベクタでは文字列を途中で分割し、分割された後続の文字列は別の文字列として、次のタイルに記述を行う。次のタイルに記述が収まらなかったら、同様にまたタイルに含まれる文字列に分割し、分割された全ての文字列がタイルサイズに収まるまで繰り返す。文字列をどこで切るかは、フォントの種類、サイズからタイル内に収まる文字数を算出し、その数だけの文字を抽出する。９０２では、文字数が４つということになり、図９のＣ１１の文字列はタイルベクタＢとしては図１１のＣ１４のような記述に変換される。
【０１３０】
また、上記方法によれば、各タイルの文字列間の連続性に関する情報がなくなってしまい、タイルベクタデータのページベクタデータへの再結合時に、元の文字列情報（図８、図９の例で言えば、“あいうえおかきく…たちつてと”）が復元できない。そこで、分割前の元の文字列情報“あいうえおかきく…たちつてと”に一意の文字列ID = 0を付加し、生成するタイルベクタデータとは別に、システムメモリ５等に保持しておく。そして、当該文字列IDを、分割後の文字列と対にしてタイルベクタデータに持たせることで、後の再結合時の文字列情報再現性を持たせることができる。
【０１３１】
一方、コマンド列９０３では図形の描画を記述しているが、９０３のＣ１２〜Ｃ１６で記述されている図形は、図８の円塗りつぶしオブジェクト８０３に相当する。該オブジェクト８０３は、図１０では一つのタイルに収まらないので、それを含むタイルDをはじめとする複数のタイルに、オブジェクト８０３のコマンド列９０３の座標変換をおこなったオブジェクト情報をコピーする。また、前述したように、円塗りつぶしオブジェクト８０３に完全に内包されるタイルに対しては、円塗りつぶしオブジェクトのコマンド列をコピーするのではなく、タイル全体を表す矩形の塗りつぶしオブジェクトのコマンド列を該当するタイルベクタに付加する。コマンド列９０４に関しても同様である。
【０１３２】
以上のオブジェクト分割処理のより詳細なフローチャートを図１４に示し、これに基づいて説明する。
【０１３３】
まず、ある描画コマンドが複数タイルへの分割を必要とする場合、当該コマンドが文字列描画に関するものか、図形描画に関するものかの判別をおこなう（Ｓ１４０１）。
【０１３４】
＜コマンドが文字列描画の場合＞
コマンドが文字列描画に関するものである場合（Ｓ１４０１のＹ）の処理を、図９の９０２を例に説明する。
【０１３５】
Ｓ１４０１でコマンド９０２が文字列描画に関するものであると判別されると、当該コマンドに含まれる文字列“あいうえおかきく…たちつてと”に対して一意な文字列ＩＤ = ０を割り当て、システムメモリ５に保持する（Ｓ１４０２）。
【０１３６】
次に、文字列“あいうえおかきく…たちつてと”が含まれるタイルのタイルＩＤ （０，１）〜（０，４）、（１，１）〜（１，４）をすべて抽出する（Ｓ１４０３）。そして、抽出したタイルの１つに注目し、当該注目タイルに一部もしくは全部含まれる文字のみを文字列“あいうえおかきく…たちつてと”から抽出する（Ｓ１４０４）。たとえば、タイルＩＤ（０，１）のタイルに対しては文字列“あいう”を抽出し、タイルＩＤ（０，２）のタイルに対しては文字列“うえお”を抽出する。抽出した文字列の描画情報は、各タイルＩＤのタイルベクタデータに追加され（Ｓ１４０５）、さらに、当該文字列の属する文字列ＩＤがタイルベクタデータに追加される（Ｓ１４０６）。Ｓ１４０２において、図１０の文字列“あいうえおかきく…たちつてと”にはＩＤ＝０が割り当てられたので、図９のコマンド９０２に対して、文字列描画コマンドのオブジェクト分割処理をおこなった場合、図１０のタイルＢ，Ｃのタイルベクタ中間データは、それぞれ図１１の１１０４、１１０５のようになる。
【０１３７】
以上のＳ１４０４〜Ｓ１４０６の処理を、Ｓ１４０３で抽出したすべてのタイルに対しておこない、文字列描画コマンドに対するオブジェクト分割処理は終了する。
【０１３８】
＜コマンドが図形描画の場合＞
Ｓ１４０１でコマンド９０３が図形描画に関するものであると判別されると、次に当該コマンドが閉領域塗りつぶしコマンドに関するものであるかどうかを判別する（Ｓ１４０８）。
【０１３９】
当該コマンドが閉領域塗りつぶしコマンドに関するものでなかった場合（Ｓ１４０８のＮ）、図形が含まれるタイルのタイルＩＤをすべて抽出する（Ｓ１４０９）。そして、抽出したタイルに対し、当該コマンドを、抽出したタイルの各タイルベクタデータに追加する（Ｓ１４１０）。
【０１４０】
次に、本発明の主眼をなす、コマンドが閉領域塗りつぶしコマンドに関するものである場合（Ｓ１４０１のＹ）の処理を、図９のコマンド９０３を例に説明する。
【０１４１】
まず描画する円が含まれるタイルのタイルＩＤ （１，３）〜（３，５）をすべて抽出する（Ｓ１４１２）。そして、抽出したタイルの１つに注目し、当該コマンド９０３によって塗りつぶされる閉領域にタイルが完全に内包されるかどうかを判断する（Ｓ１４１３）。図１０のタイルＤのように、完全には内包されない場合（Ｓ１４１３のＮ）、コマンド９０３をタイルＤのタイルベクタデータに追加する。図１０のタイルＸのように、完全に内包される場合（Ｓ１４１３のＹ）、タイルＸのタイルベクタデータには、図１３の１３０２のような、タイルＸ全面の矩形領域の塗りつぶしをあらわす中間コマンドをタイルＸのタイルベクタに追加する。
【０１４２】
以上のような処理をＳ１４１２で抽出したタイルすべてに対しておこなった後に、閉領域塗りつぶしオブジェクトに対するオブジェクト分割処理を終了する。
【０１４３】
（Ｓ６０６）
入力されたオブジェクトのコマンド記述に対し、タイルベクタ内での描画位置へ変更するために、座標位置の変換を行う。ページベクタでは、ページの左上からの位置を記述していたのに対し、タイルベクタではタイルの左上からの位置に記述し直す。描画位置をタイル内の座標で記述することにより、座標計算に要するデータ長を削減することが可能になる。
【０１４４】
（Ｓ６０７）
１つのオブジェクトに対するコマンドの記述変換が終了したら、ページ内の全てのオブジェクトのコマンドの記述変換が終了したかどうかを判断し、終了していない場合には、Ｓ６０３に戻り次のコマンドに対して、Ｓ６０３〜Ｓ６０７の処理を繰り返す。１つのオブジェクトに対するコマンドの処理が終了した場合には、Ｓ６０８へ進む。
【０１４５】
（Ｓ６０８）
全ての描画コマンドの記述変換が終了したら、図１０のように分割された各タイル領域に対し、ページの左上から順にタイルベクタとしてシステムメモリ５への書き出しを行う。タイルベクタとしては、前述のＳ６０５、Ｓ６０６で記述されたコマンドに対し、タイルの始まりと終わりを示すコマンドを追加するようなフォーマットで記述される。
【０１４６】
まず、ページの一番最初のコマンドを書き出す時点では、システムメモリ５内にオブジェクトがない状態のタイルベクタを生成しておく。オブジェクトがないタイルベクタ、例えば図１０のタイルAは、１１０３のように始まりと終わりのコマンドのみのＣ７〜Ｃ８のように記述される。次に、S６０３〜S６０７で処理されたコマンドが存在する座標のタイルに対し、オブジェクトの記述を追加する。タイルBの場合は、図１１の１１０４のＣ９〜Ｃ１５のような記述となる。同様に、タイルＣの場合は図１１の１１０５、タイルＤの場合は図１１の１１０６、タイルＥの場合は図１１の１１０７、タイルＸの場合は、図１３の１３０２、タイルＹの場合は図１３の１３０４のような記述となる。
【０１４７】
（Ｓ６０９）
１つのオブジェクトのタイルベクタへの書き出しが終わるとそのページのオブジェクトの記述が全て終了したかどうかを判断する。終了していない、と判断された場合にはＳ６０３に戻る。ページ内の全ての処理が終了した場合には、ページ→ベクタタイル変換を終了する。
【０１４８】
Ｓ６０２でドキュメントタイプがタイル（TILE）であると判断された場合の処理について述べる。
【０１４９】
（Ｓ６１０）：
オブジェクトを記述するコマンド列を読み込む。
【０１５０】
（Ｓ６１１）
Ｓ６１０で読み込まれたコマンド列を解析し、記述されているオブジェクトがそれより以前に読み込まれたタイルと結合可能かどうかを判断する。オブジェクトの結合を行わない場合は、Ｓ６１２をスキップしＳ６１３に進み、オブジェクトの分割を行う場合はＳ６１２に進む。
【０１５１】
（Ｓ６１２）
オブジェクトが結合できるかどうかは読み込んだコマンドの座標位置や、図形の種別等を基に判断する。文字列の場合はフォントサイズやフォントの種類をもとに判断する。基本的にはＳ６０５の流れを逆にしたような形で結合を行う。
【０１５２】
（Ｓ６１３）
入力されたオブジェクトのコマンド記述に対し、タイルベクタ内での描画位置へ変更するために、座標位置の変換を行う。タイルベクタではタイルの左上からの位置を記述していたのに対し、ページベクタでは、ページの左上からの位置に記述し直す。
【０１５３】
（Ｓ６１４）
１つのオブジェクトに対するコマンドの記述変換が終了したら、タイル内の全てのオブジェクトのコマンドの記述変換が終了したかどうかを判断し、終了していない場合には、Ｓ６１０に戻り、次のコマンドに対してＳ６１０〜Ｓ６１３の処理を繰り返す。１つのオブジェクトに対するコマンドの処理が終了した場合には、Ｓ６１５へ進む。
【０１５４】
（Ｓ６１５）
描画コマンドの記述変換が終了したら、ページベクタとしてシステムメモリ５への書き出しを行う。タイルベクタとしては、前述のＳ６０５、Ｓ６０６で記述されたコマンドに対し、タイルの始まりと終わりを示すコマンドを削除したようなフォーマットで記述される。
【０１５５】
まず、ページ内の一番最初のタイルに記述されたコマンドを書き出す時点では、システムメモリ５内にオブジェクトがない状態のページベクタを生成しておく。図９でいうと、Ｃ１〜Ｃ６、Ｃ２３だけで記述されるページである。次に、S６１０〜S６１３で処理されたオブジェクトの記述を追加する。図９でいうと、９０２のＣ７〜Ｃ１１の記述の部分がそれにあたる。この場合のオブジェクトは文字列｛あいうえおかき・・・｝を表しているがこれは、Ｓ６１２で図１１の１１０４や１１０５等で記述される各タイルの文字列を順次結合したオブジェクトの記述に変更されている。
【０１５６】
（Ｓ６１６）
１つコマンドのページベクタへの書き出しが終わるとそのタイルのオブジェクトの記述が全て終了したかどうかを判断する。終了していない、と判断された場合にはＳ６１０に戻る。タイル内の全ての処理が終了した場合には、Ｓ６１７に進む。
【０１５７】
（Ｓ６１７）
１つのタイルベクタの書き出しが終わるとそのページのタイルの記述が全て終了したかどうかを判断する。終了していない、と判断された場合にはＳ６１０に戻る。ページ内の全てのタイルの処理が終了した場合には、タイル→ページベクタ変換を終了する。
【０１５８】
[タイルベクタ展開部（RIP）]
コントローラ１中のRIP１８の詳細について説明する。
【０１５９】
まず、コピーやプリント、送信といった画像データの処理を開始する前に、ローカルメモリ１９の初期化と、作成する描画オブジェクトの解像度の設定を行っておく。本実施例では、生成解像度は６００ｄｐｉとし、ポイントサイズやｍｍ等の単位系で指定された印刷コマンドは、この値を用いてドット数に変換されることになる。
【０１６０】
タイルベクタの展開は図７に示され、以下のステップで行われる。
【０１６１】
（Ｓ７１）：
システムメモリ５よりSBB２を経由してRIP１８に一定サイズ分入力されたタイルベクタはローカルメモリ１９のタイルベクタ領域に一時的に格納される。
【０１６２】
（Ｓ７２）：
タイルベクタがローカルメモリ１９に取り込まれたら、μRIPａ〜ｄはタイル展開処理が終了しているかどうかを判断する。μRIPがベクタデータの展開中であれば、展開可能になるまで、S７２の状態で待機する。
【０１６３】
（Ｓ７３）：
μRIPａ〜ｄのいずれかがベクタデータの展開可能になれば、予め定められた文法に従ってローカルメモリ１９に格納されたタイルベクタのコマンド解析を行う。
【０１６４】
（Ｓ７４）：
解釈されたコマンドが、描画コマンドか排紙コマンドかを判断し、描画コマンドと判断された場合にはＳ７５に、排紙コマンドと判断された場合にはＳ７６に分岐する。
【０１６５】
（Ｓ７５）：
Ｓ７４にて、前記データが描画コマンドであると判断された場合には、描画オブジェクト（ＤＬ）生成を行う。タイルベクタ内のコマンドが文字描画コマンドであれば、前記コマンドで指定されるフォントの書体や、文字サイズ、文字コードを元にフォントオブジェクトを生成し、文字以外の描画コマンドであれば、前記コマンドで指定された図形（ラインや円、多角形等）の描画オブジェクトを生成し、ローカルメモリ１９のＤＬ領域に格納する。
【０１６６】
また、前記描画コマンドで指定されない印刷データであると判断された場合には、前記印刷データに応じて印字位置移動や印字環境設定等の処理がなされ、一単位分のコマンド解釈を終了する。
【０１６７】
タイルベクタ内のコマンド全ての解釈が終了するまで前記処理を繰り返す。
【０１６８】
（Ｓ７６）：
コマンドが排紙コマンドと判断された場合には、μRIPはローカルメモリ１９上のタイルラスタメモリ領域に空き領域があるかどうかを判断する。空き領域がない場合は、他のRIPの処理が終了し、空き領域が出来るまで待機する。
【０１６９】
（Ｓ７７）
タイルラスタメモリに空き領域がある場合は、Ｓ７５で生成された描画オブジェクトを読み出し、タイルラスタ領域に描画（ラスタライズ）する。この時、生成解像度が６００ｄｐｉであれば、タイルラスタ領域には６００ｄｐｉの画像としてラスタライズされる。そして描画が終了したタイルラスタ画像は、ＳＢＢ２を介して、画像処理部１５に出力される。
【０１７０】
図１４のフローの処理Ｓ１４１５でおこなった本発明の主眼をなす処理は、本ステップＳ７７の描画処理を高速化するという効果がある。
【０１７１】
（Ｓ７８）
Ｓ７５またはＳ７７で一つのタイルベクタに対する、コマンド解析または描画処理が終了したら、読み込まれたタイルベクタメモリに対し全てが終了したかどうかを判断し、まだ処理が残っているようであれば、Ｓ７２に戻り、次のタイルベクタの処理を続ける。終了している場合はＳ７９に進む。
【０１７２】
（Ｓ７９）
１ページ分のタイルベクタに対し、全ての処理が終了したかどうかを判断し、まだ未処理のデータが残っている場合は、Ｓ７１に戻りシステムメモリからタイルベクタを読み出して、処理を続ける。
【０１７３】
１ページの処理が全て終了した場合はタイルベクタ展開を終了する。
【０１７４】
以上、説明したように本発明によれば、ベクタデータを効率よく内部処理するためにページベクタデータからタイルベクタデータへ変換をおこなってハンドリングするＭＦＰ装置において、ページベクタデータにおける閉領域塗りつぶしオブジェクトをタイルベクタに分割する際に、前記オブジェクトに完全に内包されるタイルが存在した場合には、自身の全領域をあらわす矩形領域の塗りつぶしオブジェクトを、そのタイルベクタに追加する。
【０１７５】
これによって、μＲＩＰを用いてタイルベクタのラスタライズ処理をおこなう際に、閉領域を塗りつぶしてタイルを形成する外枠によってクリッピング処理をおこなうといった複雑な処理をおこなうことなく、単に矩形領域の塗りつぶし処理をおこなえば元の画像データが復元可能となるため、レンダリング時の処理時間が短縮することができる。
【図面の簡単な説明】
【０１７６】
【図１】本発明のシステム構成図である。
【図２】本発明のシステムのコピーの動作フローを説明する図である。
【図３】本発明のシステムのプリントの動作フローを説明する図である。
【図４】本発明の第1の実施例におけるシステムの送信の動作フローを説明する図である。
【図５】本発明のラスタ→タイルベクタ変換部のフローを説明する図である。
【図６】本発明のタイル⇔ページベクタ変換部のフローを説明する図である。
【図７】本発明のRIP（ベクタ展開部）のフローを説明する図である。
【図８】本発明で取り扱われる画像データの例を表す図である。
【図９】本発明で取り扱われるページベクタデータの例を表す図である。
【図１０】本発明で取り扱われるタイルベクタのタイル領域を表す図である。
【図１１】本発明で取り扱われるタイルベクタデータの例を表す図である。
【図１２】従来のMFPシステムの例を表す図である。
【図１３】本発明において、ページベクタの閉領域塗りつぶしオブジェクトに、分割後のタイルが完全に内包される場合に、元の閉領域塗りつぶしオブジェクトをコピーする替わりにタイルベクタに追加する矩形領域塗りつぶしオブジェクトを表す図である。
【図１４】本発明におけるオブジェクト分割処理の動作フローを説明する図である。
【図１】
2008153764.tif 000003
【図２】
2008153764.tif 000004
【図３】
2008153764.tif 000005
【図４】
2008153764.tif 000006
【図５】
2008153764.tif 000007
【図６】
2008153764.tif 000008
【図７】
2008153764.tif 000009
【図８】
2008153764.tif 000010
【図９】
2008153764.tif 000011
【図１０】
2008153764.tif 000012
【図１１】
2008153764.tif 000013
【図１２】
2008153764.tif 000014
【図１３】
2008153764.tif 000015
【図１４】
2008153764.tif 000016